mirror of
https://github.com/esphome/esphome.git
synced 2024-11-27 01:08:03 +01:00
Fix unit of measurement fields for DSMR power consumed/delivered fields (#2304)
Co-authored-by: Jos Suanet <jos@suanet.net>
This commit is contained in:
parent
896654aaef
commit
3b9d126322
2 changed files with 107 additions and 29 deletions
|
@ -13,9 +13,13 @@ from esphome.const import (
|
||||||
STATE_CLASS_NONE,
|
STATE_CLASS_NONE,
|
||||||
STATE_CLASS_TOTAL_INCREASING,
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
UNIT_AMPERE,
|
UNIT_AMPERE,
|
||||||
|
UNIT_CUBIC_METER,
|
||||||
UNIT_EMPTY,
|
UNIT_EMPTY,
|
||||||
|
UNIT_KILOWATT,
|
||||||
|
UNIT_KILOWATT_HOURS,
|
||||||
|
UNIT_KILOVOLT_AMPS_REACTIVE_HOURS,
|
||||||
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
UNIT_VOLT,
|
UNIT_VOLT,
|
||||||
UNIT_WATT,
|
|
||||||
)
|
)
|
||||||
from . import Dsmr, CONF_DSMR_ID
|
from . import Dsmr, CONF_DSMR_ID
|
||||||
|
|
||||||
|
@ -26,40 +30,80 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
{
|
{
|
||||||
cv.GenerateID(CONF_DSMR_ID): cv.use_id(Dsmr),
|
cv.GenerateID(CONF_DSMR_ID): cv.use_id(Dsmr),
|
||||||
cv.Optional("energy_delivered_lux"): sensor.sensor_schema(
|
cv.Optional("energy_delivered_lux"): sensor.sensor_schema(
|
||||||
"kWh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_TOTAL_INCREASING
|
UNIT_KILOWATT_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("energy_delivered_tariff1"): sensor.sensor_schema(
|
cv.Optional("energy_delivered_tariff1"): sensor.sensor_schema(
|
||||||
"kWh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_TOTAL_INCREASING
|
UNIT_KILOWATT_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("energy_delivered_tariff2"): sensor.sensor_schema(
|
cv.Optional("energy_delivered_tariff2"): sensor.sensor_schema(
|
||||||
"kWh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_TOTAL_INCREASING
|
UNIT_KILOWATT_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("energy_returned_lux"): sensor.sensor_schema(
|
cv.Optional("energy_returned_lux"): sensor.sensor_schema(
|
||||||
"kWh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_TOTAL_INCREASING
|
UNIT_KILOWATT_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("energy_returned_tariff1"): sensor.sensor_schema(
|
cv.Optional("energy_returned_tariff1"): sensor.sensor_schema(
|
||||||
"kWh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_TOTAL_INCREASING
|
UNIT_KILOWATT_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("energy_returned_tariff2"): sensor.sensor_schema(
|
cv.Optional("energy_returned_tariff2"): sensor.sensor_schema(
|
||||||
"kWh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_TOTAL_INCREASING
|
UNIT_KILOWATT_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("total_imported_energy"): sensor.sensor_schema(
|
cv.Optional("total_imported_energy"): sensor.sensor_schema(
|
||||||
"kvarh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_NONE
|
UNIT_KILOVOLT_AMPS_REACTIVE_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_NONE,
|
||||||
),
|
),
|
||||||
cv.Optional("total_exported_energy"): sensor.sensor_schema(
|
cv.Optional("total_exported_energy"): sensor.sensor_schema(
|
||||||
"kvarh", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_NONE
|
UNIT_KILOVOLT_AMPS_REACTIVE_HOURS,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
|
STATE_CLASS_NONE,
|
||||||
),
|
),
|
||||||
cv.Optional("power_delivered"): sensor.sensor_schema(
|
cv.Optional("power_delivered"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_returned"): sensor.sensor_schema(
|
cv.Optional("power_returned"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_delivered"): sensor.sensor_schema(
|
cv.Optional("reactive_power_delivered"): sensor.sensor_schema(
|
||||||
"kvar", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_NONE
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_returned"): sensor.sensor_schema(
|
cv.Optional("reactive_power_returned"): sensor.sensor_schema(
|
||||||
"kvar", ICON_EMPTY, 3, DEVICE_CLASS_ENERGY, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("electricity_threshold"): sensor.sensor_schema(
|
cv.Optional("electricity_threshold"): sensor.sensor_schema(
|
||||||
UNIT_EMPTY, ICON_EMPTY, 3, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
UNIT_EMPTY, ICON_EMPTY, 3, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
||||||
|
@ -77,13 +121,13 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
||||||
),
|
),
|
||||||
cv.Optional("electricity_sags_l2"): sensor.sensor_schema(
|
cv.Optional("electricity_sags_l2"): sensor.sensor_schema(
|
||||||
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_MEASUREMENT
|
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
||||||
),
|
),
|
||||||
cv.Optional("electricity_sags_l3"): sensor.sensor_schema(
|
cv.Optional("electricity_sags_l3"): sensor.sensor_schema(
|
||||||
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
||||||
),
|
),
|
||||||
cv.Optional("electricity_swells_l1"): sensor.sensor_schema(
|
cv.Optional("electricity_swells_l1"): sensor.sensor_schema(
|
||||||
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_MEASUREMENT
|
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
||||||
),
|
),
|
||||||
cv.Optional("electricity_swells_l2"): sensor.sensor_schema(
|
cv.Optional("electricity_swells_l2"): sensor.sensor_schema(
|
||||||
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
||||||
|
@ -101,40 +145,64 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
UNIT_AMPERE, ICON_EMPTY, 1, DEVICE_CLASS_CURRENT, STATE_CLASS_MEASUREMENT
|
UNIT_AMPERE, ICON_EMPTY, 1, DEVICE_CLASS_CURRENT, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_delivered_l1"): sensor.sensor_schema(
|
cv.Optional("power_delivered_l1"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_delivered_l2"): sensor.sensor_schema(
|
cv.Optional("power_delivered_l2"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_delivered_l3"): sensor.sensor_schema(
|
cv.Optional("power_delivered_l3"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_returned_l1"): sensor.sensor_schema(
|
cv.Optional("power_returned_l1"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_returned_l2"): sensor.sensor_schema(
|
cv.Optional("power_returned_l2"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("power_returned_l3"): sensor.sensor_schema(
|
cv.Optional("power_returned_l3"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOWATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_delivered_l1"): sensor.sensor_schema(
|
cv.Optional("reactive_power_delivered_l1"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_delivered_l2"): sensor.sensor_schema(
|
cv.Optional("reactive_power_delivered_l2"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_delivered_l3"): sensor.sensor_schema(
|
cv.Optional("reactive_power_delivered_l3"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_returned_l1"): sensor.sensor_schema(
|
cv.Optional("reactive_power_returned_l1"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_returned_l2"): sensor.sensor_schema(
|
cv.Optional("reactive_power_returned_l2"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("reactive_power_returned_l3"): sensor.sensor_schema(
|
cv.Optional("reactive_power_returned_l3"): sensor.sensor_schema(
|
||||||
UNIT_WATT, ICON_EMPTY, 3, DEVICE_CLASS_POWER, STATE_CLASS_MEASUREMENT
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_POWER,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
),
|
),
|
||||||
cv.Optional("voltage_l1"): sensor.sensor_schema(
|
cv.Optional("voltage_l1"): sensor.sensor_schema(
|
||||||
UNIT_VOLT, ICON_EMPTY, 1, DEVICE_CLASS_VOLTAGE, STATE_CLASS_NONE
|
UNIT_VOLT, ICON_EMPTY, 1, DEVICE_CLASS_VOLTAGE, STATE_CLASS_NONE
|
||||||
|
@ -146,10 +214,18 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
UNIT_VOLT, ICON_EMPTY, 1, DEVICE_CLASS_VOLTAGE, STATE_CLASS_NONE
|
UNIT_VOLT, ICON_EMPTY, 1, DEVICE_CLASS_VOLTAGE, STATE_CLASS_NONE
|
||||||
),
|
),
|
||||||
cv.Optional("gas_delivered"): sensor.sensor_schema(
|
cv.Optional("gas_delivered"): sensor.sensor_schema(
|
||||||
"m³", ICON_EMPTY, 3, DEVICE_CLASS_GAS, STATE_CLASS_TOTAL_INCREASING
|
UNIT_CUBIC_METER,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_GAS,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
cv.Optional("gas_delivered_be"): sensor.sensor_schema(
|
cv.Optional("gas_delivered_be"): sensor.sensor_schema(
|
||||||
"m³", ICON_EMPTY, 3, DEVICE_CLASS_GAS, STATE_CLASS_TOTAL_INCREASING
|
UNIT_CUBIC_METER,
|
||||||
|
ICON_EMPTY,
|
||||||
|
3,
|
||||||
|
DEVICE_CLASS_GAS,
|
||||||
|
STATE_CLASS_TOTAL_INCREASING,
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA)
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
|
|
|
@ -786,7 +786,9 @@ UNIT_KELVIN = "K"
|
||||||
UNIT_KILOGRAM = "kg"
|
UNIT_KILOGRAM = "kg"
|
||||||
UNIT_KILOMETER = "km"
|
UNIT_KILOMETER = "km"
|
||||||
UNIT_KILOMETER_PER_HOUR = "km/h"
|
UNIT_KILOMETER_PER_HOUR = "km/h"
|
||||||
|
UNIT_KILOVOLT_AMPS_REACTIVE = "kVAr"
|
||||||
UNIT_KILOVOLT_AMPS_REACTIVE_HOURS = "kVArh"
|
UNIT_KILOVOLT_AMPS_REACTIVE_HOURS = "kVArh"
|
||||||
|
UNIT_KILOWATT = "kW"
|
||||||
UNIT_KILOWATT_HOURS = "kWh"
|
UNIT_KILOWATT_HOURS = "kWh"
|
||||||
UNIT_LUX = "lx"
|
UNIT_LUX = "lx"
|
||||||
UNIT_METER = "m"
|
UNIT_METER = "m"
|
||||||
|
|
Loading…
Reference in a new issue