diff --git a/homeassistant/components/zha/core/channels/homeautomation.py b/homeassistant/components/zha/core/channels/homeautomation.py index 5c3ef3a0f6c..02fa835dc20 100644 --- a/homeassistant/components/zha/core/channels/homeautomation.py +++ b/homeassistant/components/zha/core/channels/homeautomation.py @@ -70,6 +70,8 @@ class ElectricalMeasurementChannel(ZigbeeChannel): {"attr": "rms_current_max", "config": REPORT_CONFIG_DEFAULT}, {"attr": "rms_voltage", "config": REPORT_CONFIG_OP}, {"attr": "rms_voltage_max", "config": REPORT_CONFIG_DEFAULT}, + {"attr": "ac_frequency", "config": REPORT_CONFIG_OP}, + {"attr": "ac_frequency_max", "config": REPORT_CONFIG_DEFAULT}, ) ZCL_INIT_ATTRS = { "ac_current_divisor": True, @@ -78,6 +80,8 @@ class ElectricalMeasurementChannel(ZigbeeChannel): "ac_power_multiplier": True, "ac_voltage_divisor": True, "ac_voltage_multiplier": True, + "ac_frequency_divisor": True, + "ac_frequency_multiplier": True, "measurement_type": True, "power_divisor": True, "power_multiplier": True, @@ -123,6 +127,16 @@ class ElectricalMeasurementChannel(ZigbeeChannel): """Return ac voltage multiplier.""" return self.cluster.get("ac_voltage_multiplier") or 1 + @property + def ac_frequency_divisor(self) -> int: + """Return ac frequency divisor.""" + return self.cluster.get("ac_frequency_divisor") or 1 + + @property + def ac_frequency_multiplier(self) -> int: + """Return ac frequency multiplier.""" + return self.cluster.get("ac_frequency_multiplier") or 1 + @property def ac_power_divisor(self) -> int: """Return active power divisor.""" diff --git a/homeassistant/components/zha/sensor.py b/homeassistant/components/zha/sensor.py index 302bbc2a054..718dab329aa 100644 --- a/homeassistant/components/zha/sensor.py +++ b/homeassistant/components/zha/sensor.py @@ -25,6 +25,7 @@ from homeassistant.const import ( ELECTRIC_CURRENT_AMPERE, ELECTRIC_POTENTIAL_VOLT, ENERGY_KILO_WATT_HOUR, + FREQUENCY_HERTZ, LIGHT_LUX, PERCENTAGE, POWER_VOLT_AMPERE, @@ -346,6 +347,35 @@ class ElectricalMeasurementRMSVoltage(ElectricalMeasurement, id_suffix="rms_volt return False +@MULTI_MATCH(channel_names=CHANNEL_ELECTRICAL_MEASUREMENT) +class ElectricalMeasurementFrequency(ElectricalMeasurement, id_suffix="ac_frequency"): + """Frequency measurement.""" + + SENSOR_ATTR = "ac_frequency" + _device_class: SensorDeviceClass = SensorDeviceClass.FREQUENCY + _unit = FREQUENCY_HERTZ + _div_mul_prefix = "ac_frequency" + + @property + def should_poll(self) -> bool: + """Poll indirectly by ElectricalMeasurementSensor.""" + return False + + +@MULTI_MATCH(channel_names=CHANNEL_ELECTRICAL_MEASUREMENT) +class ElectricalMeasurementPowerFactor(ElectricalMeasurement, id_suffix="power_factor"): + """Frequency measurement.""" + + SENSOR_ATTR = "power_factor" + _device_class: SensorDeviceClass = SensorDeviceClass.POWER_FACTOR + _unit = PERCENTAGE + + @property + def should_poll(self) -> bool: + """Poll indirectly by ElectricalMeasurementSensor.""" + return False + + @MULTI_MATCH( generic_ids=CHANNEL_ST_HUMIDITY_CLUSTER, stop_on_match_group=CHANNEL_HUMIDITY ) diff --git a/tests/components/zha/test_sensor.py b/tests/components/zha/test_sensor.py index 03a88c3560e..0d476fb8bda 100644 --- a/tests/components/zha/test_sensor.py +++ b/tests/components/zha/test_sensor.py @@ -604,7 +604,11 @@ async def test_electrical_measurement_init( ( homeautomation.ElectricalMeasurement.cluster_id, {"apparent_power", "rms_voltage", "rms_current"}, - {"electrical_measurement"}, + { + "electrical_measurement", + "electrical_measurement_ac_frequency", + "electrical_measurement_power_factor", + }, { "electrical_measurement_apparent_power", "electrical_measurement_rms_voltage", @@ -613,11 +617,13 @@ async def test_electrical_measurement_init( ), ( homeautomation.ElectricalMeasurement.cluster_id, - {"apparent_power", "rms_current"}, + {"apparent_power", "rms_current", "ac_frequency", "power_factor"}, {"electrical_measurement_rms_voltage", "electrical_measurement"}, { "electrical_measurement_apparent_power", "electrical_measurement_rms_current", + "electrical_measurement_ac_frequency", + "electrical_measurement_power_factor", }, ), ( @@ -628,6 +634,8 @@ async def test_electrical_measurement_init( "electrical_measurement", "electrical_measurement_apparent_power", "electrical_measurement_rms_current", + "electrical_measurement_ac_frequency", + "electrical_measurement_power_factor", }, set(), ), @@ -905,6 +913,9 @@ async def test_elec_measurement_skip_unsupported_attribute( "rms_current_max", "rms_voltage", "rms_voltage_max", + "power_factor", + "ac_frequency", + "ac_frequency_max", } for attr in all_attrs - supported_attributes: cluster.add_unsupported_attribute(attr) diff --git a/tests/components/zha/zha_devices_list.py b/tests/components/zha/zha_devices_list.py index 873c213527d..9a32a1670b6 100644 --- a/tests/components/zha/zha_devices_list.py +++ b/tests/components/zha/zha_devices_list.py @@ -181,6 +181,8 @@ DEVICES = [ "sensor.centralite_3210_l_77665544_electrical_measurement_apparent_power", "sensor.centralite_3210_l_77665544_electrical_measurement_rms_current", "sensor.centralite_3210_l_77665544_electrical_measurement_rms_voltage", + "sensor.centralite_3210_l_77665544_electrical_measurement_ac_frequency", + "sensor.centralite_3210_l_77665544_electrical_measurement_power_factor", "sensor.centralite_3210_l_77665544_smartenergy_metering", "sensor.centralite_3210_l_77665544_smartenergy_metering_summation_delivered", "switch.centralite_3210_l_77665544_on_off", @@ -218,6 +220,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.centralite_3210_l_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3210_l_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.centralite_3210_l_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { DEV_SIG_CHANNELS: ["smartenergy_metering"], DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", @@ -2231,6 +2243,8 @@ DEVICES = [ "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_apparent_power", "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_rms_current", "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_rms_voltage", + "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_ac_frequency", + "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_power_factor", "sensor.lumi_lumi_plug_maus01_77665544_analog_input", "sensor.lumi_lumi_plug_maus01_77665544_analog_input_2", "binary_sensor.lumi_lumi_plug_maus01_77665544_binary_input", @@ -2275,6 +2289,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_plug_maus01_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor", @@ -2332,6 +2356,8 @@ DEVICES = [ "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_apparent_power", "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_rms_current", "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_rms_voltage", + "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_ac_frequency", + "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_power_factor", "sensor.lumi_lumi_relay_c2acn01_77665544_basic_rssi", "sensor.lumi_lumi_relay_c2acn01_77665544_basic_lqi", "sensor.lumi_lumi_relay_c2acn01_77665544_device_temperature", @@ -2372,6 +2398,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.lumi_lumi_relay_c2acn01_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor", @@ -3934,6 +3970,8 @@ DEVICES = [ "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_apparent_power", "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_rms_current", "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_rms_voltage", + "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_ac_frequency", + "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_power_factor", "sensor.osram_lightify_rt_tunable_white_77665544_basic_rssi", "sensor.osram_lightify_rt_tunable_white_77665544_basic_lqi", ], @@ -3968,6 +4006,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-3-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-3-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.osram_lightify_rt_tunable_white_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-3-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor", @@ -4001,6 +4049,8 @@ DEVICES = [ "sensor.osram_plug_01_77665544_electrical_measurement_apparent_power", "sensor.osram_plug_01_77665544_electrical_measurement_rms_current", "sensor.osram_plug_01_77665544_electrical_measurement_rms_voltage", + "sensor.osram_plug_01_77665544_electrical_measurement_ac_frequency", + "sensor.osram_plug_01_77665544_electrical_measurement_power_factor", "switch.osram_plug_01_77665544_on_off", "sensor.osram_plug_01_77665544_basic_rssi", "sensor.osram_plug_01_77665544_basic_lqi", @@ -4036,6 +4086,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.osram_plug_01_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-3-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.osram_plug_01_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-3-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.osram_plug_01_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-3-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor", @@ -4393,6 +4453,8 @@ DEVICES = [ "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_apparent_power", "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_rms_current", "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_rms_voltage", + "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_ac_frequency", + "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_power_factor", "switch.securifi_ltd_unk_model_77665544_on_off", "sensor.securifi_ltd_unk_model_77665544_basic_rssi", "sensor.securifi_ltd_unk_model_77665544_basic_lqi", @@ -4423,6 +4485,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.securifi_ltd_unk_model_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor", @@ -4524,6 +4596,8 @@ DEVICES = [ "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_apparent_power", "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_rms_current", "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_rms_voltage", + "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_ac_frequency", + "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_power_factor", "sensor.sercomm_corp_sz_esw01_77665544_smartenergy_metering", "sensor.sercomm_corp_sz_esw01_77665544_smartenergy_metering_summation_delivered", "light.sercomm_corp_sz_esw01_77665544_on_off", @@ -4561,6 +4635,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.sercomm_corp_sz_esw01_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-1794"): { DEV_SIG_CHANNELS: ["smartenergy_metering"], DEV_SIG_ENT_MAP_CLASS: "SmartEnergyMetering", @@ -4666,6 +4750,8 @@ DEVICES = [ "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_apparent_power", "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_rms_current", "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_rms_voltage", + "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_ac_frequency", + "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_power_factor", "switch.sinope_technologies_rm3250zb_77665544_on_off", "sensor.sinope_technologies_rm3250zb_77665544_basic_rssi", "sensor.sinope_technologies_rm3250zb_77665544_basic_lqi", @@ -4696,6 +4782,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_rm3250zb_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor", @@ -4741,6 +4837,8 @@ DEVICES = [ "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_apparent_power", "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_rms_current", "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_rms_voltage", + "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_ac_frequency", + "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_power_factor", "sensor.sinope_technologies_th1123zb_77665544_temperature", "sensor.sinope_technologies_th1123zb_77665544_thermostat_hvac_action", "climate.sinope_technologies_th1123zb_77665544_thermostat", @@ -4778,6 +4876,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1123zb_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { DEV_SIG_CHANNELS: ["temperature"], DEV_SIG_ENT_MAP_CLASS: "Temperature", @@ -4828,6 +4936,8 @@ DEVICES = [ "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_apparent_power", "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_rms_current", "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_rms_voltage", + "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_ac_frequency", + "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_power_factor", "sensor.sinope_technologies_th1124zb_77665544_temperature", "sensor.sinope_technologies_th1124zb_77665544_thermostat_hvac_action", "climate.sinope_technologies_th1124zb_77665544_thermostat", @@ -4865,6 +4975,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.sinope_technologies_th1124zb_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-1026"): { DEV_SIG_CHANNELS: ["temperature"], DEV_SIG_ENT_MAP_CLASS: "Temperature", @@ -4908,6 +5028,8 @@ DEVICES = [ "sensor.smartthings_outletv4_77665544_electrical_measurement_apparent_power", "sensor.smartthings_outletv4_77665544_electrical_measurement_rms_current", "sensor.smartthings_outletv4_77665544_electrical_measurement_rms_voltage", + "sensor.smartthings_outletv4_77665544_electrical_measurement_ac_frequency", + "sensor.smartthings_outletv4_77665544_electrical_measurement_power_factor", "binary_sensor.smartthings_outletv4_77665544_binary_input", "switch.smartthings_outletv4_77665544_on_off", "sensor.smartthings_outletv4_77665544_basic_rssi", @@ -4944,6 +5066,16 @@ DEVICES = [ DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementRMSVoltage", DEV_SIG_ENT_MAP_ID: "sensor.smartthings_outletv4_77665544_electrical_measurement_rms_voltage", }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-ac_frequency"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementFrequency", + DEV_SIG_ENT_MAP_ID: "sensor.smartthings_outletv4_77665544_electrical_measurement_ac_frequency", + }, + ("sensor", "00:11:22:33:44:55:66:77-1-2820-power_factor"): { + DEV_SIG_CHANNELS: ["electrical_measurement"], + DEV_SIG_ENT_MAP_CLASS: "ElectricalMeasurementPowerFactor", + DEV_SIG_ENT_MAP_ID: "sensor.smartthings_outletv4_77665544_electrical_measurement_power_factor", + }, ("sensor", "00:11:22:33:44:55:66:77-1-0-rssi"): { DEV_SIG_CHANNELS: ["basic"], DEV_SIG_ENT_MAP_CLASS: "RSSISensor",