1 """Support for monitoring OctoPrint binary sensors."""
3 from __future__
import annotations
5 from abc
import abstractmethod
7 from pyoctoprintapi
import OctoprintPrinterInfo
15 from .
import OctoprintDataUpdateCoordinator
16 from .const
import DOMAIN
21 config_entry: ConfigEntry,
22 async_add_entities: AddEntitiesCallback,
24 """Set up the available OctoPrint binary sensors."""
25 coordinator: OctoprintDataUpdateCoordinator = hass.data[DOMAIN][
28 device_id = config_entry.unique_id
30 assert device_id
is not None
32 entities: list[BinarySensorEntity] = [
41 CoordinatorEntity[OctoprintDataUpdateCoordinator], BinarySensorEntity
43 """Representation an OctoPrint binary sensor."""
47 coordinator: OctoprintDataUpdateCoordinator,
51 """Initialize a new OctoPrint sensor."""
60 """Return true if binary sensor is on."""
61 if not (printer := self.coordinator.data[
"printer"]):
68 """Return if entity is available."""
69 return self.coordinator.last_update_success
and self.coordinator.data[
"printer"]
73 """Return the value of the sensor flag."""
77 """Representation an OctoPrint binary sensor."""
80 self, coordinator: OctoprintDataUpdateCoordinator, device_id: str
82 """Initialize a new OctoPrint sensor."""
83 super().
__init__(coordinator,
"Printing", device_id)
86 return bool(printer_info.state.flags.printing)
90 """Representation an OctoPrint binary sensor."""
93 self, coordinator: OctoprintDataUpdateCoordinator, device_id: str
95 """Initialize a new OctoPrint sensor."""
96 super().
__init__(coordinator,
"Printing Error", device_id)
99 return bool(printer_info.state.flags.error)
None __init__(self, OctoprintDataUpdateCoordinator coordinator, str sensor_type, str device_id)
bool|None _get_flag_state(self, OctoprintPrinterInfo printer_info)
None __init__(self, OctoprintDataUpdateCoordinator coordinator, str device_id)
bool|None _get_flag_state(self, OctoprintPrinterInfo printer_info)
bool|None _get_flag_state(self, OctoprintPrinterInfo printer_info)
None __init__(self, OctoprintDataUpdateCoordinator coordinator, str device_id)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)