mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Fix plugwise longterm statistics (#58127)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
This commit is contained in:
parent
5a102d793e
commit
1aa7a8170c
@ -31,8 +31,8 @@ ZEROCONF_MAP = {
|
||||
|
||||
# Sensor mapping
|
||||
SENSOR_MAP_DEVICE_CLASS = 2
|
||||
SENSOR_MAP_ICON = 3
|
||||
SENSOR_MAP_MODEL = 0
|
||||
SENSOR_MAP_STATE_CLASS = 3
|
||||
SENSOR_MAP_UOM = 1
|
||||
|
||||
# Default directives
|
||||
|
@ -2,14 +2,20 @@
|
||||
|
||||
import logging
|
||||
|
||||
from homeassistant.components.sensor import SensorEntity
|
||||
from homeassistant.const import (
|
||||
from homeassistant.components.sensor import (
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_GAS,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
STATE_CLASS_TOTAL,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
SensorEntity,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
ENERGY_WATT_HOUR,
|
||||
PERCENTAGE,
|
||||
@ -29,6 +35,7 @@ from .const import (
|
||||
IDLE_ICON,
|
||||
SENSOR_MAP_DEVICE_CLASS,
|
||||
SENSOR_MAP_MODEL,
|
||||
SENSOR_MAP_STATE_CLASS,
|
||||
SENSOR_MAP_UOM,
|
||||
UNIT_LUMEN,
|
||||
)
|
||||
@ -40,18 +47,26 @@ ATTR_TEMPERATURE = [
|
||||
"Temperature",
|
||||
TEMP_CELSIUS,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
]
|
||||
ATTR_BATTERY_LEVEL = [
|
||||
"Charge",
|
||||
PERCENTAGE,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
]
|
||||
ATTR_ILLUMINANCE = [
|
||||
"Illuminance",
|
||||
UNIT_LUMEN,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
]
|
||||
ATTR_PRESSURE = [
|
||||
"Pressure",
|
||||
PRESSURE_BAR,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
]
|
||||
ATTR_PRESSURE = ["Pressure", PRESSURE_BAR, DEVICE_CLASS_PRESSURE]
|
||||
|
||||
TEMP_SENSOR_MAP = {
|
||||
"setpoint": ATTR_TEMPERATURE,
|
||||
@ -64,97 +79,138 @@ TEMP_SENSOR_MAP = {
|
||||
}
|
||||
|
||||
ENERGY_SENSOR_MAP = {
|
||||
"electricity_consumed": ["Current Consumed Power", POWER_WATT, DEVICE_CLASS_POWER],
|
||||
"electricity_produced": ["Current Produced Power", POWER_WATT, DEVICE_CLASS_POWER],
|
||||
"electricity_consumed": [
|
||||
"Current Consumed Power",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"electricity_produced": [
|
||||
"Current Produced Power",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"electricity_consumed_interval": [
|
||||
"Consumed Power Interval",
|
||||
ENERGY_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"electricity_consumed_peak_interval": [
|
||||
"Consumed Power Interval",
|
||||
ENERGY_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"electricity_consumed_off_peak_interval": [
|
||||
"Consumed Power Interval (off peak)",
|
||||
ENERGY_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"electricity_produced_interval": [
|
||||
"Produced Power Interval",
|
||||
ENERGY_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"electricity_produced_peak_interval": [
|
||||
"Produced Power Interval",
|
||||
ENERGY_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"electricity_produced_off_peak_interval": [
|
||||
"Produced Power Interval (off peak)",
|
||||
ENERGY_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"electricity_consumed_off_peak_point": [
|
||||
"Current Consumed Power (off peak)",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"electricity_consumed_peak_point": [
|
||||
"Current Consumed Power",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"electricity_consumed_off_peak_cumulative": [
|
||||
"Cumulative Consumed Power (off peak)",
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
],
|
||||
"electricity_consumed_peak_cumulative": [
|
||||
"Cumulative Consumed Power",
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
],
|
||||
"electricity_produced_off_peak_point": [
|
||||
"Current Produced Power (off peak)",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"electricity_produced_peak_point": [
|
||||
"Current Produced Power",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"electricity_produced_off_peak_cumulative": [
|
||||
"Cumulative Produced Power (off peak)",
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
],
|
||||
"electricity_produced_peak_cumulative": [
|
||||
"Cumulative Produced Power",
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
],
|
||||
"gas_consumed_interval": [
|
||||
"Current Consumed Gas Interval",
|
||||
VOLUME_CUBIC_METERS,
|
||||
None,
|
||||
DEVICE_CLASS_GAS,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
"gas_consumed_cumulative": [
|
||||
"Consumed Gas",
|
||||
VOLUME_CUBIC_METERS,
|
||||
DEVICE_CLASS_GAS,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
],
|
||||
"net_electricity_point": [
|
||||
"Current net Power",
|
||||
POWER_WATT,
|
||||
DEVICE_CLASS_POWER,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"gas_consumed_cumulative": ["Cumulative Consumed Gas", VOLUME_CUBIC_METERS, None],
|
||||
"net_electricity_point": ["Current net Power", POWER_WATT, DEVICE_CLASS_POWER],
|
||||
"net_electricity_cumulative": [
|
||||
"Cumulative net Power",
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
STATE_CLASS_TOTAL,
|
||||
],
|
||||
}
|
||||
|
||||
MISC_SENSOR_MAP = {
|
||||
"battery": ATTR_BATTERY_LEVEL,
|
||||
"illuminance": ATTR_ILLUMINANCE,
|
||||
"modulation_level": ["Heater Modulation Level", PERCENTAGE, None],
|
||||
"valve_position": ["Valve Position", PERCENTAGE, None],
|
||||
"modulation_level": [
|
||||
"Heater Modulation Level",
|
||||
PERCENTAGE,
|
||||
None,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
],
|
||||
"valve_position": ["Valve Position", PERCENTAGE, None, STATE_CLASS_MEASUREMENT],
|
||||
"water_pressure": ATTR_PRESSURE,
|
||||
}
|
||||
|
||||
@ -249,6 +305,7 @@ class SmileSensor(SmileGateway, SensorEntity):
|
||||
self._dev_class = None
|
||||
self._icon = None
|
||||
self._state = None
|
||||
self._state_class = None
|
||||
self._unit_of_measurement = None
|
||||
|
||||
if dev_id == self._api.heater_id:
|
||||
@ -282,6 +339,11 @@ class SmileSensor(SmileGateway, SensorEntity):
|
||||
"""Return the unit of measurement of this entity, if any."""
|
||||
return self._unit_of_measurement
|
||||
|
||||
@property
|
||||
def state_class(self):
|
||||
"""Return the state_class of this entity."""
|
||||
return self._state_class
|
||||
|
||||
|
||||
class PwThermostatSensor(SmileSensor):
|
||||
"""Thermostat (or generic) sensor devices."""
|
||||
@ -294,6 +356,7 @@ class PwThermostatSensor(SmileSensor):
|
||||
self._model = sensor_type[SENSOR_MAP_MODEL]
|
||||
self._unit_of_measurement = sensor_type[SENSOR_MAP_UOM]
|
||||
self._dev_class = sensor_type[SENSOR_MAP_DEVICE_CLASS]
|
||||
self._state_class = sensor_type[SENSOR_MAP_STATE_CLASS]
|
||||
|
||||
@callback
|
||||
def _async_process_data(self):
|
||||
@ -363,6 +426,7 @@ class PwPowerSensor(SmileSensor):
|
||||
|
||||
self._unit_of_measurement = sensor_type[SENSOR_MAP_UOM]
|
||||
self._dev_class = sensor_type[SENSOR_MAP_DEVICE_CLASS]
|
||||
self._state_class = sensor_type[SENSOR_MAP_STATE_CLASS]
|
||||
|
||||
if dev_id == self._api.gateway_id:
|
||||
self._model = "P1 DSMR"
|
||||
|
Loading…
x
Reference in New Issue
Block a user