|
|
|
@@ -13,9 +13,13 @@ from esphome.const import (
|
|
|
|
|
STATE_CLASS_NONE,
|
|
|
|
|
STATE_CLASS_TOTAL_INCREASING,
|
|
|
|
|
UNIT_AMPERE,
|
|
|
|
|
UNIT_CUBIC_METER,
|
|
|
|
|
UNIT_EMPTY,
|
|
|
|
|
UNIT_KILOWATT,
|
|
|
|
|
UNIT_KILOWATT_HOURS,
|
|
|
|
|
UNIT_KILOVOLT_AMPS_REACTIVE_HOURS,
|
|
|
|
|
UNIT_KILOVOLT_AMPS_REACTIVE,
|
|
|
|
|
UNIT_VOLT,
|
|
|
|
|
UNIT_WATT,
|
|
|
|
|
)
|
|
|
|
|
from . import Dsmr, CONF_DSMR_ID
|
|
|
|
|
|
|
|
|
@@ -26,40 +30,80 @@ CONFIG_SCHEMA = cv.Schema(
|
|
|
|
|
{
|
|
|
|
|
cv.GenerateID(CONF_DSMR_ID): cv.use_id(Dsmr),
|
|
|
|
|
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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
"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(
|
|
|
|
|
"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(
|
|
|
|
|
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
|
|
|
|
|
),
|
|
|
|
|
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(
|
|
|
|
|
UNIT_EMPTY, ICON_EMPTY, 0, DEVICE_CLASS_EMPTY, STATE_CLASS_NONE
|
|
|
|
|
),
|
|
|
|
|
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(
|
|
|
|
|
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
|
|
|
|
|
),
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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(
|
|
|
|
|
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
|
|
|
|
|
),
|
|
|
|
|
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(
|
|
|
|
|
"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)
|
|
|
|
|