|
|
@@ -0,0 +1,228 @@
|
|
|
+"""Tests for the PC321-TY Power Clamp Energy meter"""
|
|
|
+from homeassistant.components.sensor import (
|
|
|
+ SensorDeviceClass,
|
|
|
+ STATE_CLASS_MEASUREMENT,
|
|
|
+ STATE_CLASS_TOTAL_INCREASING,
|
|
|
+)
|
|
|
+from homeassistant.const import (
|
|
|
+ ELECTRIC_CURRENT_AMPERE,
|
|
|
+ ELECTRIC_POTENTIAL_VOLT,
|
|
|
+ ENERGY_KILO_WATT_HOUR,
|
|
|
+ FREQUENCY_HERTZ,
|
|
|
+ POWER_WATT,
|
|
|
+ TEMP_CELSIUS,
|
|
|
+)
|
|
|
+
|
|
|
+from ..const import PC321TY_POWERCLAMP_PAYLOAD
|
|
|
+from ..mixins.sensor import MultiSensorTests
|
|
|
+from .base_device_tests import TuyaDeviceTestCase
|
|
|
+
|
|
|
+VOLTAGE1_DP = "101"
|
|
|
+CURRENT1_DP = "102"
|
|
|
+POWER1_DP = "103"
|
|
|
+PFACTOR1_DP = "104"
|
|
|
+ENERGY1_DP = "106"
|
|
|
+VOLTAGE2_DP = "111"
|
|
|
+CURRENT2_DP = "112"
|
|
|
+POWER2_DP = "113"
|
|
|
+PFACTOR2_DP = "114"
|
|
|
+ENERGY2_DP = "116"
|
|
|
+VOLTAGE3_DP = "121"
|
|
|
+CURRENT3_DP = "122"
|
|
|
+POWER3_DP = "123"
|
|
|
+PFACTOR3_DP = "124"
|
|
|
+ENERGY3_DP = "126"
|
|
|
+TOTALENERGY_DP = "131"
|
|
|
+TOTALCURRENT_DP = "132"
|
|
|
+TOTALPOWER_DP = "133"
|
|
|
+FREQUENCY_DP = "135"
|
|
|
+TEMPERATURE_DP = "136"
|
|
|
+
|
|
|
+
|
|
|
+class TestPC321TYPowerClamp(MultiSensorTests, TuyaDeviceTestCase):
|
|
|
+ __test__ = True
|
|
|
+
|
|
|
+ def setUp(self):
|
|
|
+ self.setUpForConfig(
|
|
|
+ "pc321ty_energy_meter.yaml",
|
|
|
+ PC321TY_POWERCLAMP_PAYLOAD,
|
|
|
+ )
|
|
|
+ self.setUpMultiSensors(
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "dps": TOTALENERGY_DP,
|
|
|
+ "name": "sensor",
|
|
|
+ "unit": ENERGY_KILO_WATT_HOUR,
|
|
|
+ "device_class": SensorDeviceClass.ENERGY,
|
|
|
+ "state_class": STATE_CLASS_TOTAL_INCREASING,
|
|
|
+ "testdata": (12345, 123.45),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": VOLTAGE1_DP,
|
|
|
+ "name": "sensor_voltage_a",
|
|
|
+ "unit": ELECTRIC_POTENTIAL_VOLT,
|
|
|
+ "device_class": SensorDeviceClass.VOLTAGE,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (2348, 234.8),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": CURRENT1_DP,
|
|
|
+ "name": "sensor_current_a",
|
|
|
+ "unit": ELECTRIC_CURRENT_AMPERE,
|
|
|
+ "device_class": SensorDeviceClass.CURRENT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (4567, 4.567),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": POWER1_DP,
|
|
|
+ "name": "sensor_power_a",
|
|
|
+ "unit": POWER_WATT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "device_class": SensorDeviceClass.POWER,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": PFACTOR1_DP,
|
|
|
+ "name": "sensor_power_factor_a",
|
|
|
+ "device_class": SensorDeviceClass.POWER_FACTOR,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (5000, 50.00),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": ENERGY1_DP,
|
|
|
+ "name": "sensor_energy_a",
|
|
|
+ "unit": ENERGY_KILO_WATT_HOUR,
|
|
|
+ "device_class": SensorDeviceClass.ENERGY,
|
|
|
+ "state_class": STATE_CLASS_TOTAL_INCREASING,
|
|
|
+ "testdata": (12345, 123.45),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": VOLTAGE2_DP,
|
|
|
+ "name": "sensor_voltage_b",
|
|
|
+ "unit": ELECTRIC_POTENTIAL_VOLT,
|
|
|
+ "device_class": SensorDeviceClass.VOLTAGE,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (2348, 234.8),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": CURRENT2_DP,
|
|
|
+ "name": "sensor_current_b",
|
|
|
+ "unit": ELECTRIC_CURRENT_AMPERE,
|
|
|
+ "device_class": SensorDeviceClass.CURRENT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (4567, 4.567),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": POWER2_DP,
|
|
|
+ "name": "sensor_power_b",
|
|
|
+ "unit": POWER_WATT,
|
|
|
+ "device_class": SensorDeviceClass.POWER,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": PFACTOR2_DP,
|
|
|
+ "name": "sensor_power_factor_b",
|
|
|
+ "device_class": SensorDeviceClass.POWER_FACTOR,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (5000, 50.00),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": ENERGY2_DP,
|
|
|
+ "name": "sensor_energy_b",
|
|
|
+ "unit": ENERGY_KILO_WATT_HOUR,
|
|
|
+ "device_class": SensorDeviceClass.ENERGY,
|
|
|
+ "state_class": STATE_CLASS_TOTAL_INCREASING,
|
|
|
+ "testdata": (12345, 123.45),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": VOLTAGE3_DP,
|
|
|
+ "name": "sensor_voltage_c",
|
|
|
+ "unit": ELECTRIC_POTENTIAL_VOLT,
|
|
|
+ "device_class": SensorDeviceClass.VOLTAGE,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (2348, 234.8),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": CURRENT3_DP,
|
|
|
+ "name": "sensor_current_c",
|
|
|
+ "unit": ELECTRIC_CURRENT_AMPERE,
|
|
|
+ "device_class": SensorDeviceClass.CURRENT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (4567, 4.567),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": POWER3_DP,
|
|
|
+ "name": "sensor_power_c",
|
|
|
+ "unit": POWER_WATT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "device_class": SensorDeviceClass.POWER,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": PFACTOR3_DP,
|
|
|
+ "name": "sensor_power_factor_c",
|
|
|
+ "device_class": SensorDeviceClass.POWER_FACTOR,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (5000, 50.00),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": ENERGY3_DP,
|
|
|
+ "name": "sensor_energy_c",
|
|
|
+ "unit": ENERGY_KILO_WATT_HOUR,
|
|
|
+ "device_class": SensorDeviceClass.ENERGY,
|
|
|
+ "state_class": STATE_CLASS_TOTAL_INCREASING,
|
|
|
+ "testdata": (12345, 123.45),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": TOTALCURRENT_DP,
|
|
|
+ "name": "sensor_total_current",
|
|
|
+ "unit": ELECTRIC_CURRENT_AMPERE,
|
|
|
+ "device_class": SensorDeviceClass.CURRENT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (12345, 12.345),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": TOTALPOWER_DP,
|
|
|
+ "name": "sensor_total_active_power",
|
|
|
+ "unit": POWER_WATT,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "device_class": SensorDeviceClass.POWER,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": FREQUENCY_DP,
|
|
|
+ "name": "sensor_frequency",
|
|
|
+ "unit": FREQUENCY_HERTZ,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "device_class": SensorDeviceClass.FREQUENCY,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "dps": TEMPERATURE_DP,
|
|
|
+ "name": "sensor_temperature",
|
|
|
+ "unit": TEMP_CELSIUS,
|
|
|
+ "device_class": SensorDeviceClass.TEMPERATURE,
|
|
|
+ "state_class": STATE_CLASS_MEASUREMENT,
|
|
|
+ "testdata": (234, 23.4),
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ )
|
|
|
+ self.mark_secondary(
|
|
|
+ [
|
|
|
+ "sensor_voltage_a",
|
|
|
+ "sensor_current_a",
|
|
|
+ "sensor_power_a",
|
|
|
+ "sensor_power_factor_a",
|
|
|
+ "sensor_energy_a",
|
|
|
+ "sensor_voltage_b",
|
|
|
+ "sensor_current_b",
|
|
|
+ "sensor_power_b",
|
|
|
+ "sensor_power_factor_b",
|
|
|
+ "sensor_energy_b",
|
|
|
+ "sensor_voltage_c",
|
|
|
+ "sensor_current_c",
|
|
|
+ "sensor_power_c",
|
|
|
+ "sensor_power_factor_c",
|
|
|
+ "sensor_energy_c",
|
|
|
+ "sensor_total_current",
|
|
|
+ "sensor_total_active_power",
|
|
|
+ "sensor_frequency",
|
|
|
+ "sensor_temperature",
|
|
|
+ ]
|
|
|
+ )
|