1 """Binary sensors for renson."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
7 from renson_endura_delta.field_enum
import (
8 AIR_QUALITY_CONTROL_FIELD,
12 FROST_PROTECTION_FIELD,
13 HUMIDITY_CONTROL_FIELD,
18 from renson_endura_delta.renson
import RensonVentilation
22 BinarySensorEntityDescription,
29 from .const
import DOMAIN
30 from .coordinator
import RensonCoordinator
31 from .entity
import RensonEntity
34 @dataclass(frozen=True, kw_only=True)
36 """Description of binary sensor."""
41 BINARY_SENSORS: tuple[RensonBinarySensorEntityDescription, ...] = (
43 translation_key=
"frost_protection_active",
44 key=
"FROST_PROTECTION_FIELD",
45 field=FROST_PROTECTION_FIELD,
46 entity_category=EntityCategory.DIAGNOSTIC,
49 key=
"BREEZE_ENABLE_FIELD",
50 translation_key=
"breeze",
51 field=BREEZE_ENABLE_FIELD,
52 entity_category=EntityCategory.DIAGNOSTIC,
55 key=
"BREEZE_MET_FIELD",
56 translation_key=
"breeze_conditions_met",
57 field=BREEZE_MET_FIELD,
60 key=
"HUMIDITY_CONTROL_FIELD",
61 translation_key=
"humidity_control",
62 field=HUMIDITY_CONTROL_FIELD,
63 entity_category=EntityCategory.DIAGNOSTIC,
66 key=
"AIR_QUALITY_CONTROL_FIELD",
67 translation_key=
"air_quality_control",
68 field=AIR_QUALITY_CONTROL_FIELD,
69 entity_category=EntityCategory.DIAGNOSTIC,
72 key=
"CO2_CONTROL_FIELD",
73 translation_key=
"co2_control",
74 field=CO2_CONTROL_FIELD,
75 entity_category=EntityCategory.DIAGNOSTIC,
78 key=
"PREHEATER_FIELD",
79 translation_key=
"preheater",
80 field=PREHEATER_FIELD,
81 entity_category=EntityCategory.DIAGNOSTIC,
88 config_entry: ConfigEntry,
89 async_add_entities: AddEntitiesCallback,
91 """Call the Renson integration to setup."""
93 api: RensonVentilation = hass.data[DOMAIN][config_entry.entry_id].api
94 coordinator: RensonCoordinator = hass.data[DOMAIN][
100 for description
in BINARY_SENSORS
105 """Get sensor data from the Renson API and store it in the state of the class."""
107 _attr_has_entity_name =
True
111 description: RensonBinarySensorEntityDescription,
112 api: RensonVentilation,
113 coordinator: RensonCoordinator,
115 """Initialize class."""
116 super().
__init__(description.key, api, coordinator)
123 """Handle updated data from the coordinator."""
124 all_data = self.coordinator.data
126 value = self.
apiapiapi.get_field_value(all_data, self.
fieldfield.name)
None __init__(self, RensonBinarySensorEntityDescription description, RensonVentilation api, RensonCoordinator coordinator)
None _handle_coordinator_update(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)