| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- """Tests for multiple sensors encoded together in a single dp."""
- from homeassistant.components.sensor import SensorDeviceClass
- from homeassistant.const import (
- UnitOfElectricCurrent,
- UnitOfElectricPotential,
- UnitOfPower,
- )
- from ..const import TOMPD63LW_SOCKET_PAYLOAD
- from ..mixins.sensor import MultiSensorTests
- from .base_device_tests import TuyaDeviceTestCase
- ENERGY_DP = "1"
- PHASEA_DP = "6"
- FAULT_DP = "9"
- PREPAY_DP = "11"
- RESET_DP = "12"
- BALANCE_DP = "13"
- CHARGE_DP = "14"
- LEAKAGE_DP = "15"
- SWITCH_DP = "16"
- ALARM1_DP = "17"
- ALARM2_DP = "18"
- IDNUM_DP = "19"
- TEST_DP = "21"
- class TestTOMPD63lw(MultiSensorTests, TuyaDeviceTestCase):
- __test__ = True
- def setUp(self):
- self.setUpForConfig("tompd_63lw_breaker.yaml", TOMPD63LW_SOCKET_PAYLOAD)
- self.subject = self.entities.get("switch")
- self.setUpMultiSensors(
- [
- {
- "name": "sensor_voltage",
- "dps": PHASEA_DP,
- "unit": UnitOfElectricPotential.VOLT,
- "device_class": SensorDeviceClass.VOLTAGE,
- "testdata": ("CPwAFGEAAu4=", 230.0),
- },
- {
- "name": "sensor_current",
- "dps": PHASEA_DP,
- "unit": UnitOfElectricCurrent.AMPERE,
- "device_class": SensorDeviceClass.CURRENT,
- "testdata": ("CPwAFGEAAu4=", 5.217),
- },
- {
- "name": "sensor_power",
- "dps": PHASEA_DP,
- "unit": UnitOfPower.KILO_WATT,
- "device_class": SensorDeviceClass.POWER,
- "testdata": ("CPwAFGEAAu4=", 0.75),
- },
- ]
- )
- self.mark_secondary(
- [
- "binary_sensor_problem",
- "button_clear_energy",
- "button_earth_leak_test",
- "button_energy_reset",
- "button_factory_reset",
- "button_refresh_sensors",
- "number_charge_energy",
- "sensor_balance_energy",
- "sensor_current",
- "sensor_frequency",
- "sensor_leakage_current",
- "sensor_power",
- "sensor_power_factor",
- "sensor_voltage",
- "switch_prepayment",
- ]
- )
- def test_phasea_encoding(self):
- self.dps[PHASEA_DP] = "CQQAFGkAAu4="
- self.assertEqual(self.multiSensor["sensor_voltage"].native_value, 230.8)
- self.assertEqual(self.multiSensor["sensor_current"].native_value, 5.225)
- self.assertEqual(self.multiSensor["sensor_power"].native_value, 0.75)
- def test_phasea_missing(self):
- self.dps[PHASEA_DP] = None
- self.assertIsNone(self.multiSensor["sensor_voltage"].native_value)
- self.assertIsNone(self.multiSensor["sensor_current"].native_value)
- self.assertIsNone(self.multiSensor["sensor_power"].native_value)
|