Add Shelly Pro 3EM sensors (#86403)

* Add Shelly Pro 3EM sensors

* Fix Apparent Power sensor device class

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>

* Adapt entity naming to new style

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
This commit is contained in:
Shay Levy 2023-01-23 18:59:55 +02:00 committed by GitHub
parent 51001ad1e1
commit e3b81ad170
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,6 +20,7 @@ from homeassistant.const import (
LIGHT_LUX,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
UnitOfApparentPower,
UnitOfElectricCurrent,
UnitOfElectricPotential,
UnitOfEnergy,
@ -318,10 +319,78 @@ RPC_SENSORS: Final = {
sub_key="apower",
name="Power",
native_unit_of_measurement=UnitOfPower.WATT,
value=lambda status, _: None if status is None else round(float(status), 1),
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"a_act_power": RpcSensorDescription(
key="em",
sub_key="a_act_power",
name="Phase A active power",
native_unit_of_measurement=UnitOfPower.WATT,
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"b_act_power": RpcSensorDescription(
key="em",
sub_key="b_act_power",
name="Phase B active power",
native_unit_of_measurement=UnitOfPower.WATT,
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"c_act_power": RpcSensorDescription(
key="em",
sub_key="c_act_power",
name="Phase C active power",
native_unit_of_measurement=UnitOfPower.WATT,
device_class=SensorDeviceClass.POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"a_aprt_power": RpcSensorDescription(
key="em",
sub_key="a_aprt_power",
name="Phase A apparent power",
native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
device_class=SensorDeviceClass.APPARENT_POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"b_aprt_power": RpcSensorDescription(
key="em",
sub_key="b_aprt_power",
name="Phase B apparent power",
native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
device_class=SensorDeviceClass.APPARENT_POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"c_aprt_power": RpcSensorDescription(
key="em",
sub_key="c_aprt_power",
name="Phase C apparent power",
native_unit_of_measurement=UnitOfApparentPower.VOLT_AMPERE,
device_class=SensorDeviceClass.APPARENT_POWER,
state_class=SensorStateClass.MEASUREMENT,
),
"a_pf": RpcSensorDescription(
key="em",
sub_key="a_pf",
name="Phase A power factor",
device_class=SensorDeviceClass.POWER_FACTOR,
state_class=SensorStateClass.MEASUREMENT,
),
"b_pf": RpcSensorDescription(
key="em",
sub_key="b_pf",
name="Phase B power factor",
device_class=SensorDeviceClass.POWER_FACTOR,
state_class=SensorStateClass.MEASUREMENT,
),
"c_pf": RpcSensorDescription(
key="em",
sub_key="c_pf",
name="Phase C power factor",
device_class=SensorDeviceClass.POWER_FACTOR,
state_class=SensorStateClass.MEASUREMENT,
),
"voltage": RpcSensorDescription(
key="switch",
sub_key="voltage",
@ -332,6 +401,60 @@ RPC_SENSORS: Final = {
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"a_voltage": RpcSensorDescription(
key="em",
sub_key="a_voltage",
name="Phase A voltage",
native_unit_of_measurement=UnitOfElectricPotential.VOLT,
device_class=SensorDeviceClass.VOLTAGE,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"b_voltage": RpcSensorDescription(
key="em",
sub_key="b_voltage",
name="Phase B voltage",
native_unit_of_measurement=UnitOfElectricPotential.VOLT,
device_class=SensorDeviceClass.VOLTAGE,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"c_voltage": RpcSensorDescription(
key="em",
sub_key="c_voltage",
name="Phase C voltage",
native_unit_of_measurement=UnitOfElectricPotential.VOLT,
device_class=SensorDeviceClass.VOLTAGE,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"a_current": RpcSensorDescription(
key="em",
sub_key="a_current",
name="Phase A current",
native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
device_class=SensorDeviceClass.CURRENT,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"b_current": RpcSensorDescription(
key="em",
sub_key="b_current",
name="Phase B current",
native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
device_class=SensorDeviceClass.CURRENT,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"c_current": RpcSensorDescription(
key="em",
sub_key="c_current",
name="Phase C current",
native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
device_class=SensorDeviceClass.CURRENT,
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
),
"energy": RpcSensorDescription(
key="switch",
sub_key="aenergy",