mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Add state classes to Toon (#50978)
This commit is contained in:
parent
8721675218
commit
394e044c66
@ -1,14 +1,17 @@
|
||||
"""Constants for the Toon integration."""
|
||||
from datetime import timedelta
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from homeassistant.components.binary_sensor import (
|
||||
DEVICE_CLASS_CONNECTIVITY,
|
||||
DEVICE_CLASS_PROBLEM,
|
||||
)
|
||||
from homeassistant.components.sensor import (
|
||||
ATTR_LAST_RESET,
|
||||
ATTR_STATE_CLASS,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
ATTR_DEVICE_CLASS,
|
||||
@ -127,6 +130,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -136,6 +141,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -145,6 +152,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -154,6 +163,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -163,6 +174,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -172,6 +185,8 @@ SENSOR_ENTITIES = {
|
||||
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),
|
||||
},
|
||||
"gas_value": {
|
||||
ATTR_NAME: "Current Gas Usage",
|
||||
@ -181,6 +196,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -190,6 +207,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -199,6 +218,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -208,6 +229,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -217,6 +240,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -226,6 +251,8 @@ SENSOR_ENTITIES = {
|
||||
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),
|
||||
},
|
||||
"power_meter_reading_low": {
|
||||
ATTR_NAME: "Electricity Meter Feed IN Tariff 2",
|
||||
@ -235,6 +262,8 @@ SENSOR_ENTITIES = {
|
||||
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),
|
||||
},
|
||||
"power_value": {
|
||||
ATTR_NAME: "Current Power Usage",
|
||||
@ -244,6 +273,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -253,6 +284,8 @@ SENSOR_ENTITIES = {
|
||||
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),
|
||||
},
|
||||
"solar_meter_reading_low_produced": {
|
||||
ATTR_NAME: "Electricity Meter Feed OUT Tariff 2",
|
||||
@ -262,6 +295,8 @@ SENSOR_ENTITIES = {
|
||||
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),
|
||||
},
|
||||
"solar_value": {
|
||||
ATTR_NAME: "Current Solar Power Production",
|
||||
@ -271,6 +306,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -280,6 +317,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -289,6 +328,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -298,6 +339,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -307,6 +350,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -316,6 +361,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -325,6 +372,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -334,6 +383,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -343,6 +394,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -352,6 +405,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -361,6 +416,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -370,6 +427,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -379,6 +438,8 @@ SENSOR_ENTITIES = {
|
||||
ATTR_DEVICE_CLASS: None,
|
||||
ATTR_ICON: "mdi:water",
|
||||
ATTR_DEFAULT_ENABLED: False,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
ATTR_LAST_RESET: datetime.fromtimestamp(0),
|
||||
},
|
||||
"water_value": {
|
||||
ATTR_NAME: "Current Water Usage",
|
||||
@ -388,6 +449,8 @@ SENSOR_ENTITIES = {
|
||||
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",
|
||||
@ -397,6 +460,8 @@ SENSOR_ENTITIES = {
|
||||
ATTR_DEVICE_CLASS: None,
|
||||
ATTR_ICON: "mdi:water-pump",
|
||||
ATTR_DEFAULT_ENABLED: False,
|
||||
ATTR_STATE_CLASS: None,
|
||||
ATTR_LAST_RESET: None,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,11 @@
|
||||
"""Support for Toon sensors."""
|
||||
from __future__ import annotations
|
||||
|
||||
from homeassistant.components.sensor import SensorEntity
|
||||
from homeassistant.components.sensor import (
|
||||
ATTR_LAST_RESET,
|
||||
ATTR_STATE_CLASS,
|
||||
SensorEntity,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
@ -124,6 +128,11 @@ class ToonSensor(ToonEntity, SensorEntity):
|
||||
name=SENSOR_ENTITIES[key][ATTR_NAME],
|
||||
)
|
||||
|
||||
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."""
|
||||
@ -140,16 +149,6 @@ class ToonSensor(ToonEntity, SensorEntity):
|
||||
)
|
||||
return getattr(section, SENSOR_ENTITIES[self.key][ATTR_MEASUREMENT])
|
||||
|
||||
@property
|
||||
def unit_of_measurement(self) -> str | None:
|
||||
"""Return the unit this state is expressed in."""
|
||||
return SENSOR_ENTITIES[self.key][ATTR_UNIT_OF_MEASUREMENT]
|
||||
|
||||
@property
|
||||
def device_class(self) -> str | None:
|
||||
"""Return the device class."""
|
||||
return SENSOR_ENTITIES[self.key][ATTR_DEVICE_CLASS]
|
||||
|
||||
|
||||
class ToonElectricityMeterDeviceSensor(ToonSensor, ToonElectricityMeterDeviceEntity):
|
||||
"""Defines a Electricity Meter sensor."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user