diff --git a/homeassistant/components/toon/binary_sensor.py b/homeassistant/components/toon/binary_sensor.py index 4a55911dcfc..de756225d57 100644 --- a/homeassistant/components/toon/binary_sensor.py +++ b/homeassistant/components/toon/binary_sensor.py @@ -61,27 +61,21 @@ class ToonBinarySensor(ToonEntity, BinarySensorEntity): def __init__(self, coordinator: ToonDataUpdateCoordinator, *, key: str) -> None: """Initialize the Toon sensor.""" + super().__init__(coordinator) self.key = key - super().__init__( - coordinator, - enabled_default=BINARY_SENSOR_ENTITIES[key][ATTR_DEFAULT_ENABLED], - icon=BINARY_SENSOR_ENTITIES[key][ATTR_ICON], - name=BINARY_SENSOR_ENTITIES[key][ATTR_NAME], + sensor = BINARY_SENSOR_ENTITIES[key] + self._attr_name = sensor[ATTR_NAME] + self._attr_icon = sensor.get(ATTR_ICON) + self._attr_entity_registry_enabled_default = sensor.get( + ATTR_DEFAULT_ENABLED, True + ) + self._attr_device_class = sensor.get(ATTR_DEVICE_CLASS) + self._attr_unique_id = ( + # This unique ID is a bit ugly and contains unneeded information. + # It is here for legacy / backward compatible reasons. + f"{DOMAIN}_{coordinator.data.agreement.agreement_id}_binary_sensor_{key}" ) - - @property - def unique_id(self) -> str: - """Return the unique ID for this binary sensor.""" - agreement_id = self.coordinator.data.agreement.agreement_id - # This unique ID is a bit ugly and contains unneeded information. - # It is here for legacy / backward compatible reasons. - return f"{DOMAIN}_{agreement_id}_binary_sensor_{self.key}" - - @property - def device_class(self) -> str: - """Return the device class.""" - return BINARY_SENSOR_ENTITIES[self.key][ATTR_DEVICE_CLASS] @property def is_on(self) -> bool | None: @@ -94,7 +88,7 @@ class ToonBinarySensor(ToonEntity, BinarySensorEntity): if value is None: return None - if BINARY_SENSOR_ENTITIES[self.key][ATTR_INVERTED]: + if BINARY_SENSOR_ENTITIES[self.key].get(ATTR_INVERTED, False): return not value return value diff --git a/homeassistant/components/toon/climate.py b/homeassistant/components/toon/climate.py index e69c178e595..a1201f85f7c 100644 --- a/homeassistant/components/toon/climate.py +++ b/homeassistant/components/toon/climate.py @@ -37,29 +37,26 @@ async def async_setup_entry( ) -> None: """Set up a Toon binary sensors based on a config entry.""" coordinator = hass.data[DOMAIN][entry.entry_id] - async_add_entities( - [ToonThermostatDevice(coordinator, name="Thermostat", icon="mdi:thermostat")] - ) + async_add_entities([ToonThermostatDevice(coordinator)]) class ToonThermostatDevice(ToonDisplayDeviceEntity, ClimateEntity): """Representation of a Toon climate device.""" _attr_hvac_mode = HVAC_MODE_HEAT + _attr_icon = "mdi:thermostat" _attr_max_temp = DEFAULT_MAX_TEMP _attr_min_temp = DEFAULT_MIN_TEMP + _attr_name = "Thermostat" _attr_supported_features = SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE _attr_temperature_unit = TEMP_CELSIUS def __init__( self, coordinator: ToonDataUpdateCoordinator, - *, - name: str, - icon: str, ) -> None: """Initialize Toon climate entity.""" - super().__init__(coordinator, name=name, icon=icon) + super().__init__(coordinator) self._attr_hvac_modes = [HVAC_MODE_HEAT] self._attr_preset_modes = [ PRESET_AWAY, diff --git a/homeassistant/components/toon/const.py b/homeassistant/components/toon/const.py index 2946aacaa72..4d298f114c0 100644 --- a/homeassistant/components/toon/const.py +++ b/homeassistant/components/toon/const.py @@ -51,17 +51,13 @@ BINARY_SENSOR_ENTITIES = { ATTR_NAME: "Boiler Module Connection", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "boiler_module_connected", - ATTR_INVERTED: False, ATTR_DEVICE_CLASS: DEVICE_CLASS_CONNECTIVITY, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, }, "thermostat_info_burner_info_1": { ATTR_NAME: "Boiler Heating", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "heating", - ATTR_INVERTED: False, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:fire", ATTR_DEFAULT_ENABLED: False, }, @@ -69,17 +65,12 @@ BINARY_SENSOR_ENTITIES = { ATTR_NAME: "Hot Tap Water", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "hot_tapwater", - ATTR_INVERTED: False, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water-pump", - ATTR_DEFAULT_ENABLED: True, }, "thermostat_info_burner_info_3": { ATTR_NAME: "Boiler Preheating", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "pre_heating", - ATTR_INVERTED: False, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:fire", ATTR_DEFAULT_ENABLED: False, }, @@ -87,25 +78,19 @@ BINARY_SENSOR_ENTITIES = { ATTR_NAME: "Boiler Burner", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "burner", - ATTR_INVERTED: False, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:fire", - ATTR_DEFAULT_ENABLED: True, }, "thermostat_info_error_found_255": { ATTR_NAME: "Boiler Status", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "error_found", - ATTR_INVERTED: False, ATTR_DEVICE_CLASS: DEVICE_CLASS_PROBLEM, ATTR_ICON: "mdi:alert", - ATTR_DEFAULT_ENABLED: True, }, "thermostat_info_ot_communication_error_0": { ATTR_NAME: "OpenTherm Connection", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "opentherm_communication_error", - ATTR_INVERTED: False, ATTR_DEVICE_CLASS: DEVICE_CLASS_PROBLEM, ATTR_ICON: "mdi:check-network-outline", ATTR_DEFAULT_ENABLED: False, @@ -114,10 +99,7 @@ BINARY_SENSOR_ENTITIES = { ATTR_NAME: "Thermostat Program Override", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "program_overridden", - ATTR_INVERTED: False, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gesture-tap", - ATTR_DEFAULT_ENABLED: True, }, } @@ -128,76 +110,54 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "current_display_temperature", ATTR_UNIT_OF_MEASUREMENT: TEMP_CELSIUS, ATTR_DEVICE_CLASS: DEVICE_CLASS_TEMPERATURE, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, - ATTR_LAST_RESET: None, }, "gas_average": { ATTR_NAME: "Average Gas Usage", ATTR_SECTION: "gas_usage", ATTR_MEASUREMENT: "average", ATTR_UNIT_OF_MEASUREMENT: VOLUME_CM3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gas-cylinder", - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "gas_average_daily": { ATTR_NAME: "Average Daily Gas Usage", ATTR_SECTION: "gas_usage", ATTR_MEASUREMENT: "day_average", ATTR_UNIT_OF_MEASUREMENT: VOLUME_M3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gas-cylinder", ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "gas_daily_usage": { ATTR_NAME: "Gas Usage Today", ATTR_SECTION: "gas_usage", ATTR_MEASUREMENT: "day_usage", ATTR_UNIT_OF_MEASUREMENT: VOLUME_M3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gas-cylinder", - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "gas_daily_cost": { ATTR_NAME: "Gas Cost Today", ATTR_SECTION: "gas_usage", ATTR_MEASUREMENT: "day_cost", ATTR_UNIT_OF_MEASUREMENT: CURRENCY_EUR, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gas-cylinder", - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "gas_meter_reading": { ATTR_NAME: "Gas Meter", ATTR_SECTION: "gas_usage", ATTR_MEASUREMENT: "meter", ATTR_UNIT_OF_MEASUREMENT: VOLUME_M3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gas-cylinder", - ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_LAST_RESET: datetime.fromtimestamp(0), + ATTR_DEFAULT_ENABLED: False, }, "gas_value": { ATTR_NAME: "Current Gas Usage", ATTR_SECTION: "gas_usage", ATTR_MEASUREMENT: "current", ATTR_UNIT_OF_MEASUREMENT: VOLUME_CM3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:gas-cylinder", - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_average": { ATTR_NAME: "Average Power Usage", @@ -205,10 +165,7 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "average", ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_average_daily": { ATTR_NAME: "Average Daily Energy Usage", @@ -216,21 +173,14 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "day_average", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_daily_cost": { ATTR_NAME: "Energy Cost Today", ATTR_SECTION: "power_usage", ATTR_MEASUREMENT: "day_cost", ATTR_UNIT_OF_MEASUREMENT: CURRENCY_EUR, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:power-plug", - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_daily_value": { ATTR_NAME: "Energy Usage Today", @@ -238,10 +188,6 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "day_usage", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_meter_reading": { ATTR_NAME: "Electricity Meter Feed IN Tariff 1", @@ -249,10 +195,9 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "meter_high", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_LAST_RESET: datetime.fromtimestamp(0), + ATTR_DEFAULT_ENABLED: False, }, "power_meter_reading_low": { ATTR_NAME: "Electricity Meter Feed IN Tariff 2", @@ -260,10 +205,9 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "meter_low", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_LAST_RESET: datetime.fromtimestamp(0), + ATTR_DEFAULT_ENABLED: False, }, "power_value": { ATTR_NAME: "Current Power Usage", @@ -271,10 +215,7 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "current", ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: True, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, - ATTR_LAST_RESET: None, }, "solar_meter_reading_produced": { ATTR_NAME: "Electricity Meter Feed OUT Tariff 1", @@ -282,10 +223,9 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "meter_produced_high", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_LAST_RESET: datetime.fromtimestamp(0), + ATTR_DEFAULT_ENABLED: False, }, "solar_meter_reading_low_produced": { ATTR_NAME: "Electricity Meter Feed OUT Tariff 2", @@ -293,10 +233,9 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "meter_produced_low", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, ATTR_LAST_RESET: datetime.fromtimestamp(0), + ATTR_DEFAULT_ENABLED: False, }, "solar_value": { ATTR_NAME: "Current Solar Power Production", @@ -304,10 +243,7 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "current_solar", ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: True, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, - ATTR_LAST_RESET: None, }, "solar_maximum": { ATTR_NAME: "Max Solar Power Production Today", @@ -315,10 +251,6 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "day_max_solar", ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "solar_produced": { ATTR_NAME: "Solar Power Production to Grid", @@ -326,10 +258,7 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "current_produced", ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: True, ATTR_STATE_CLASS: ATTR_MEASUREMENT, - ATTR_LAST_RESET: None, }, "power_usage_day_produced_solar": { ATTR_NAME: "Solar Energy Produced Today", @@ -337,10 +266,6 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "day_produced_solar", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, - ATTR_DEFAULT_ENABLED: True, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_usage_day_to_grid_usage": { ATTR_NAME: "Energy Produced To Grid Today", @@ -348,10 +273,7 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "day_to_grid_usage", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "power_usage_day_from_grid_usage": { ATTR_NAME: "Energy Usage From Grid Today", @@ -359,10 +281,7 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "day_from_grid_usage", ATTR_UNIT_OF_MEASUREMENT: ENERGY_KILO_WATT_HOUR, ATTR_DEVICE_CLASS: DEVICE_CLASS_ENERGY, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "solar_average_produced": { ATTR_NAME: "Average Solar Power Production to Grid", @@ -370,72 +289,54 @@ SENSOR_ENTITIES = { ATTR_MEASUREMENT: "average_produced", ATTR_UNIT_OF_MEASUREMENT: POWER_WATT, ATTR_DEVICE_CLASS: DEVICE_CLASS_POWER, - ATTR_ICON: None, ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "thermostat_info_current_modulation_level": { ATTR_NAME: "Boiler Modulation Level", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "current_modulation_level", ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:percent", ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, - ATTR_LAST_RESET: None, }, "power_usage_current_covered_by_solar": { ATTR_NAME: "Current Power Usage Covered By Solar", ATTR_SECTION: "power_usage", ATTR_MEASUREMENT: "current_covered_by_solar", ATTR_UNIT_OF_MEASUREMENT: PERCENTAGE, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:solar-power", - ATTR_DEFAULT_ENABLED: True, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, - ATTR_LAST_RESET: None, }, "water_average": { ATTR_NAME: "Average Water Usage", ATTR_SECTION: "water_usage", ATTR_MEASUREMENT: "average", ATTR_UNIT_OF_MEASUREMENT: VOLUME_LMIN, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water", ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "water_average_daily": { ATTR_NAME: "Average Daily Water Usage", ATTR_SECTION: "water_usage", ATTR_MEASUREMENT: "day_average", ATTR_UNIT_OF_MEASUREMENT: VOLUME_M3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water", ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "water_daily_usage": { ATTR_NAME: "Water Usage Today", ATTR_SECTION: "water_usage", ATTR_MEASUREMENT: "day_usage", ATTR_UNIT_OF_MEASUREMENT: VOLUME_M3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water", ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, "water_meter_reading": { ATTR_NAME: "Water Meter", ATTR_SECTION: "water_usage", ATTR_MEASUREMENT: "meter", ATTR_UNIT_OF_MEASUREMENT: VOLUME_M3, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water", ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, @@ -446,22 +347,17 @@ SENSOR_ENTITIES = { ATTR_SECTION: "water_usage", ATTR_MEASUREMENT: "current", ATTR_UNIT_OF_MEASUREMENT: VOLUME_LMIN, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water-pump", ATTR_DEFAULT_ENABLED: False, ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT, - ATTR_LAST_RESET: None, }, "water_daily_cost": { ATTR_NAME: "Water Cost Today", ATTR_SECTION: "water_usage", ATTR_MEASUREMENT: "day_cost", ATTR_UNIT_OF_MEASUREMENT: CURRENCY_EUR, - ATTR_DEVICE_CLASS: None, ATTR_ICON: "mdi:water-pump", ATTR_DEFAULT_ENABLED: False, - ATTR_STATE_CLASS: None, - ATTR_LAST_RESET: None, }, } @@ -470,16 +366,12 @@ SWITCH_ENTITIES = { ATTR_NAME: "Holiday Mode", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "holiday_mode", - ATTR_INVERTED: False, ATTR_ICON: "mdi:airport", - ATTR_DEFAULT_ENABLED: True, }, "thermostat_program": { ATTR_NAME: "Thermostat Program", ATTR_SECTION: "thermostat", ATTR_MEASUREMENT: "program", - ATTR_INVERTED: False, ATTR_ICON: "mdi:calendar-clock", - ATTR_DEFAULT_ENABLED: True, }, } diff --git a/homeassistant/components/toon/models.py b/homeassistant/components/toon/models.py index 18b44db45a8..7fb45af4d53 100644 --- a/homeassistant/components/toon/models.py +++ b/homeassistant/components/toon/models.py @@ -11,35 +11,7 @@ from .coordinator import ToonDataUpdateCoordinator class ToonEntity(CoordinatorEntity): """Defines a base Toon entity.""" - def __init__( - self, - coordinator: ToonDataUpdateCoordinator, - *, - name: str, - icon: str, - enabled_default: bool = True, - ) -> None: - """Initialize the Toon entity.""" - super().__init__(coordinator) - self._enabled_default = enabled_default - self._icon = icon - self._name = name - self._state = None - - @property - def name(self) -> str: - """Return the name of the entity.""" - return self._name - - @property - def icon(self) -> str | None: - """Return the mdi icon of the entity.""" - return self._icon - - @property - def entity_registry_enabled_default(self) -> bool: - """Return if the entity should be enabled when first added to the entity registry.""" - return self._enabled_default + coordinator: ToonDataUpdateCoordinator class ToonDisplayDeviceEntity(ToonEntity): diff --git a/homeassistant/components/toon/sensor.py b/homeassistant/components/toon/sensor.py index 0e269c0bff3..90f74ceae87 100644 --- a/homeassistant/components/toon/sensor.py +++ b/homeassistant/components/toon/sensor.py @@ -120,26 +120,23 @@ class ToonSensor(ToonEntity, SensorEntity): def __init__(self, coordinator: ToonDataUpdateCoordinator, *, key: str) -> None: """Initialize the Toon sensor.""" self.key = key + super().__init__(coordinator) - super().__init__( - coordinator, - enabled_default=SENSOR_ENTITIES[key][ATTR_DEFAULT_ENABLED], - icon=SENSOR_ENTITIES[key][ATTR_ICON], - name=SENSOR_ENTITIES[key][ATTR_NAME], + sensor = SENSOR_ENTITIES[key] + self._attr_entity_registry_enabled_default = sensor.get( + ATTR_DEFAULT_ENABLED, True + ) + self._attr_icon = sensor.get(ATTR_ICON) + self._attr_last_reset = sensor.get(ATTR_LAST_RESET) + self._attr_name = sensor[ATTR_NAME] + self._attr_state_class = sensor.get(ATTR_STATE_CLASS) + self._attr_unit_of_measurement = sensor[ATTR_UNIT_OF_MEASUREMENT] + self._attr_device_class = sensor.get(ATTR_DEVICE_CLASS) + self._attr_unique_id = ( + # This unique ID is a bit ugly and contains unneeded information. + # It is here for legacy / backward compatible reasons. + f"{DOMAIN}_{coordinator.data.agreement.agreement_id}_sensor_{key}" ) - - self._attr_last_reset = SENSOR_ENTITIES[key][ATTR_LAST_RESET] - self._attr_state_class = SENSOR_ENTITIES[key][ATTR_STATE_CLASS] - self._attr_unit_of_measurement = SENSOR_ENTITIES[key][ATTR_UNIT_OF_MEASUREMENT] - self._sttr_device_class = SENSOR_ENTITIES[key][ATTR_DEVICE_CLASS] - - @property - def unique_id(self) -> str: - """Return the unique ID for this sensor.""" - agreement_id = self.coordinator.data.agreement.agreement_id - # This unique ID is a bit ugly and contains unneeded information. - # It is here for legacy / backward compatible reasons. - return f"{DOMAIN}_{agreement_id}_sensor_{self.key}" @property def state(self) -> str | None: diff --git a/homeassistant/components/toon/switch.py b/homeassistant/components/toon/switch.py index b830f53179e..06ca9c6631b 100644 --- a/homeassistant/components/toon/switch.py +++ b/homeassistant/components/toon/switch.py @@ -13,9 +13,7 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from .const import ( - ATTR_DEFAULT_ENABLED, ATTR_ICON, - ATTR_INVERTED, ATTR_MEASUREMENT, ATTR_NAME, ATTR_SECTION, @@ -44,19 +42,12 @@ class ToonSwitch(ToonEntity, SwitchEntity): def __init__(self, coordinator: ToonDataUpdateCoordinator, *, key: str) -> None: """Initialize the Toon switch.""" self.key = key + super().__init__(coordinator) - super().__init__( - coordinator, - enabled_default=SWITCH_ENTITIES[key][ATTR_DEFAULT_ENABLED], - icon=SWITCH_ENTITIES[key][ATTR_ICON], - name=SWITCH_ENTITIES[key][ATTR_NAME], - ) - - @property - def unique_id(self) -> str: - """Return the unique ID for this binary sensor.""" - agreement_id = self.coordinator.data.agreement.agreement_id - return f"{agreement_id}_{self.key}" + switch = SWITCH_ENTITIES[key] + self._attr_icon = switch[ATTR_ICON] + self._attr_name = switch[ATTR_NAME] + self._attr_unique_id = f"{coordinator.data.agreement.agreement_id}_{key}" @property def is_on(self) -> bool: @@ -64,12 +55,7 @@ class ToonSwitch(ToonEntity, SwitchEntity): section = getattr( self.coordinator.data, SWITCH_ENTITIES[self.key][ATTR_SECTION] ) - value = getattr(section, SWITCH_ENTITIES[self.key][ATTR_MEASUREMENT]) - - if SWITCH_ENTITIES[self.key][ATTR_INVERTED]: - return not value - - return value + return getattr(section, SWITCH_ENTITIES[self.key][ATTR_MEASUREMENT]) class ToonProgramSwitch(ToonSwitch, ToonDisplayDeviceEntity):