From 28c08722dd5fb8ee85f5b2d2d4ebb98bd782cf28 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 15 Dec 2025 10:23:12 +0000 Subject: [PATCH] Adjust code accordingly --- .../components/tuya/alarm_control_panel.py | 5 +- .../components/tuya/binary_sensor.py | 7 +- homeassistant/components/tuya/button.py | 2 +- homeassistant/components/tuya/camera.py | 2 +- homeassistant/components/tuya/climate.py | 4 +- homeassistant/components/tuya/cover.py | 4 +- homeassistant/components/tuya/event.py | 2 +- homeassistant/components/tuya/fan.py | 2 +- homeassistant/components/tuya/humidifier.py | 2 +- homeassistant/components/tuya/light.py | 2 +- homeassistant/components/tuya/models.py | 41 --- homeassistant/components/tuya/number.py | 2 +- homeassistant/components/tuya/select.py | 2 +- homeassistant/components/tuya/sensor.py | 139 ++--------- homeassistant/components/tuya/siren.py | 2 +- homeassistant/components/tuya/switch.py | 2 +- homeassistant/components/tuya/vacuum.py | 5 +- homeassistant/components/tuya/valve.py | 2 +- .../tuya/snapshots/test_sensor.ambr | 236 +++++++++--------- 19 files changed, 160 insertions(+), 303 deletions(-) delete mode 100644 homeassistant/components/tuya/models.py diff --git a/homeassistant/components/tuya/alarm_control_panel.py b/homeassistant/components/tuya/alarm_control_panel.py index 3fa33d21f73..fcaa914060e 100644 --- a/homeassistant/components/tuya/alarm_control_panel.py +++ b/homeassistant/components/tuya/alarm_control_panel.py @@ -5,7 +5,10 @@ from __future__ import annotations from base64 import b64decode from typing import Any -from tuya_device_handlers.device_wrapper import DPCodeEnumWrapper, DPCodeRawWrapper +from tuya_device_handlers.device_wrapper.common import ( + DPCodeEnumWrapper, + DPCodeRawWrapper, +) from tuya_device_handlers.type_information import EnumTypeInformation from tuya_sharing import CustomerDevice, Manager diff --git a/homeassistant/components/tuya/binary_sensor.py b/homeassistant/components/tuya/binary_sensor.py index 1d9ae363c41..86b4de98400 100644 --- a/homeassistant/components/tuya/binary_sensor.py +++ b/homeassistant/components/tuya/binary_sensor.py @@ -4,7 +4,11 @@ from __future__ import annotations from dataclasses import dataclass -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper, DPCodeWrapper +from tuya_device_handlers.device_wrapper.binary_sensor import DPCodeBitmapBitWrapper +from tuya_device_handlers.device_wrapper.common import ( + DPCodeBooleanWrapper, + DPCodeWrapper, +) from tuya_sharing import CustomerDevice, Manager from homeassistant.components.binary_sensor import ( @@ -20,7 +24,6 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from . import TuyaConfigEntry from .const import TUYA_DISCOVERY_NEW, DeviceCategory, DPCode from .entity import TuyaEntity -from .models import DPCodeBitmapBitWrapper @dataclass(frozen=True) diff --git a/homeassistant/components/tuya/button.py b/homeassistant/components/tuya/button.py index c17c17d8ab5..d6c63ba0243 100644 --- a/homeassistant/components/tuya/button.py +++ b/homeassistant/components/tuya/button.py @@ -2,7 +2,7 @@ from __future__ import annotations -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeBooleanWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components.button import ButtonEntity, ButtonEntityDescription diff --git a/homeassistant/components/tuya/camera.py b/homeassistant/components/tuya/camera.py index 81642f6e4ab..3667b42d605 100644 --- a/homeassistant/components/tuya/camera.py +++ b/homeassistant/components/tuya/camera.py @@ -2,7 +2,7 @@ from __future__ import annotations -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeBooleanWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components import ffmpeg diff --git a/homeassistant/components/tuya/climate.py b/homeassistant/components/tuya/climate.py index b22959d28f9..3c201d75ca1 100644 --- a/homeassistant/components/tuya/climate.py +++ b/homeassistant/components/tuya/climate.py @@ -5,8 +5,8 @@ from __future__ import annotations from dataclasses import dataclass from typing import Any, Self -from tuya_device_handlers.device_wrapper import ( - DeviceWrapper, +from tuya_device_handlers.device_wrapper import DeviceWrapper +from tuya_device_handlers.device_wrapper.common import ( DPCodeBooleanWrapper, DPCodeEnumWrapper, DPCodeIntegerWrapper, diff --git a/homeassistant/components/tuya/cover.py b/homeassistant/components/tuya/cover.py index 9c08b34d5ad..2517e49853e 100644 --- a/homeassistant/components/tuya/cover.py +++ b/homeassistant/components/tuya/cover.py @@ -5,8 +5,8 @@ from __future__ import annotations from dataclasses import dataclass from typing import Any -from tuya_device_handlers.device_wrapper import ( - DeviceWrapper, +from tuya_device_handlers.device_wrapper import DeviceWrapper +from tuya_device_handlers.device_wrapper.common import ( DPCodeBooleanWrapper, DPCodeEnumWrapper, DPCodeIntegerWrapper, diff --git a/homeassistant/components/tuya/event.py b/homeassistant/components/tuya/event.py index 1ae39ada436..d91b05fd722 100644 --- a/homeassistant/components/tuya/event.py +++ b/homeassistant/components/tuya/event.py @@ -6,7 +6,7 @@ from base64 import b64decode from dataclasses import dataclass from typing import Any -from tuya_device_handlers.device_wrapper import ( +from tuya_device_handlers.device_wrapper.common import ( DPCodeEnumWrapper, DPCodeRawWrapper, DPCodeStringWrapper, diff --git a/homeassistant/components/tuya/fan.py b/homeassistant/components/tuya/fan.py index 773e5e502fd..a9ba9b0a506 100644 --- a/homeassistant/components/tuya/fan.py +++ b/homeassistant/components/tuya/fan.py @@ -4,7 +4,7 @@ from __future__ import annotations from typing import Any -from tuya_device_handlers.device_wrapper import ( +from tuya_device_handlers.device_wrapper.common import ( DPCodeBooleanWrapper, DPCodeEnumWrapper, DPCodeIntegerWrapper, diff --git a/homeassistant/components/tuya/humidifier.py b/homeassistant/components/tuya/humidifier.py index 7e441fb9772..11d1a7c24fd 100644 --- a/homeassistant/components/tuya/humidifier.py +++ b/homeassistant/components/tuya/humidifier.py @@ -5,7 +5,7 @@ from __future__ import annotations from dataclasses import dataclass from typing import Any -from tuya_device_handlers.device_wrapper import ( +from tuya_device_handlers.device_wrapper.common import ( DPCodeBooleanWrapper, DPCodeEnumWrapper, DPCodeIntegerWrapper, diff --git a/homeassistant/components/tuya/light.py b/homeassistant/components/tuya/light.py index 607040f38a9..125e3039769 100644 --- a/homeassistant/components/tuya/light.py +++ b/homeassistant/components/tuya/light.py @@ -7,7 +7,7 @@ from enum import StrEnum import json from typing import Any, cast -from tuya_device_handlers.device_wrapper import ( +from tuya_device_handlers.device_wrapper.common import ( DPCodeBooleanWrapper, DPCodeEnumWrapper, DPCodeIntegerWrapper, diff --git a/homeassistant/components/tuya/models.py b/homeassistant/components/tuya/models.py deleted file mode 100644 index 6aa6a1a4a8e..00000000000 --- a/homeassistant/components/tuya/models.py +++ /dev/null @@ -1,41 +0,0 @@ -"""Tuya Home Assistant Base Device Model.""" - -from __future__ import annotations - -from typing import Self - -from tuya_device_handlers.device_wrapper import DPCodeWrapper -from tuya_device_handlers.type_information import BitmapTypeInformation -from tuya_sharing import CustomerDevice - - -class DPCodeBitmapBitWrapper(DPCodeWrapper): - """Simple wrapper for a specific bit in bitmap values.""" - - def __init__(self, dpcode: str, mask: int) -> None: - """Init DPCodeBitmapWrapper.""" - super().__init__(dpcode) - self._mask = mask - - def read_device_status(self, device: CustomerDevice) -> bool | None: - """Read the device value for the dpcode.""" - if (raw_value := device.status.get(self.dpcode)) is None: - return None - return (raw_value & (1 << self._mask)) != 0 - - @classmethod - def find_dpcode( - cls, - device: CustomerDevice, - dpcodes: str | tuple[str, ...], - *, - bitmap_key: str, - ) -> Self | None: - """Find and return a DPCodeBitmapBitWrapper for the given DP codes.""" - if ( - type_information := BitmapTypeInformation.find_dpcode(device, dpcodes) - ) and bitmap_key in type_information.label: - return cls( - type_information.dpcode, type_information.label.index(bitmap_key) - ) - return None diff --git a/homeassistant/components/tuya/number.py b/homeassistant/components/tuya/number.py index 0f32432a073..da097a9dac9 100644 --- a/homeassistant/components/tuya/number.py +++ b/homeassistant/components/tuya/number.py @@ -2,7 +2,7 @@ from __future__ import annotations -from tuya_device_handlers.device_wrapper import DPCodeIntegerWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeIntegerWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components.number import ( diff --git a/homeassistant/components/tuya/select.py b/homeassistant/components/tuya/select.py index ab962e926f3..2fba9662e43 100644 --- a/homeassistant/components/tuya/select.py +++ b/homeassistant/components/tuya/select.py @@ -2,7 +2,7 @@ from __future__ import annotations -from tuya_device_handlers.device_wrapper import DPCodeEnumWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeEnumWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components.select import SelectEntity, SelectEntityDescription diff --git a/homeassistant/components/tuya/sensor.py b/homeassistant/components/tuya/sensor.py index 8e41a757171..891e5fb308e 100644 --- a/homeassistant/components/tuya/sensor.py +++ b/homeassistant/components/tuya/sensor.py @@ -4,16 +4,21 @@ from __future__ import annotations from dataclasses import dataclass -from tuya_device_handlers.device_wrapper import ( +from tuya_device_handlers.device_wrapper.common import ( DPCodeEnumWrapper, DPCodeIntegerWrapper, - DPCodeJsonWrapper, - DPCodeRawWrapper, DPCodeTypeInformationWrapper, DPCodeWrapper, ) -from tuya_device_handlers.raw_data_model import ElectricityData -from tuya_device_handlers.type_information import EnumTypeInformation +from tuya_device_handlers.device_wrapper.sensor import ( + ElectricityCurrentJsonWrapper, + ElectricityCurrentRawWrapper, + ElectricityPowerJsonWrapper, + ElectricityPowerRawWrapper, + ElectricityVoltageJsonWrapper, + ElectricityVoltageRawWrapper, + WindDirectionEnumWrapper, +) from tuya_sharing import CustomerDevice, Manager from homeassistant.components.sensor import ( @@ -49,125 +54,9 @@ from .const import ( ) from .entity import TuyaEntity - -class _WindDirectionWrapper(DPCodeTypeInformationWrapper[EnumTypeInformation]): - """Custom DPCode Wrapper for converting enum to wind direction.""" - - _DPTYPE = EnumTypeInformation - - _WIND_DIRECTIONS = { - "north": 0.0, - "north_north_east": 22.5, - "north_east": 45.0, - "east_north_east": 67.5, - "east": 90.0, - "east_south_east": 112.5, - "south_east": 135.0, - "south_south_east": 157.5, - "south": 180.0, - "south_south_west": 202.5, - "south_west": 225.0, - "west_south_west": 247.5, - "west": 270.0, - "west_north_west": 292.5, - "north_west": 315.0, - "north_north_west": 337.5, - } - - def read_device_status(self, device: CustomerDevice) -> float | None: - """Read the device value for the dpcode.""" - if (raw_value := device.status.get(self.dpcode)) in self.type_information.range: - return self._WIND_DIRECTIONS.get(raw_value) - return None - - -class _JsonElectricityCurrentWrapper(DPCodeJsonWrapper): - """Custom DPCode Wrapper for extracting electricity current from JSON.""" - - native_unit = UnitOfElectricCurrent.AMPERE - - def read_device_status(self, device: CustomerDevice) -> float | None: # type: ignore[override] - """Read the device value for the dpcode.""" - if (status := super().read_device_status(device)) is None: - return None - return status.get("electricCurrent") - - -class _JsonElectricityPowerWrapper(DPCodeJsonWrapper): - """Custom DPCode Wrapper for extracting electricity power from JSON.""" - - native_unit = UnitOfPower.KILO_WATT - - def read_device_status(self, device: CustomerDevice) -> float | None: # type: ignore[override] - """Read the device value for the dpcode.""" - if (status := super().read_device_status(device)) is None: - return None - return status.get("power") - - -class _JsonElectricityVoltageWrapper(DPCodeJsonWrapper): - """Custom DPCode Wrapper for extracting electricity voltage from JSON.""" - - native_unit = UnitOfElectricPotential.VOLT - - def read_device_status(self, device: CustomerDevice) -> float | None: # type: ignore[override] - """Read the device value for the dpcode.""" - if (status := super().read_device_status(device)) is None: - return None - return status.get("voltage") - - -class _RawElectricityDataWrapper(DPCodeRawWrapper): - """Custom DPCode Wrapper for extracting ElectricityData from base64.""" - - def _convert(self, value: ElectricityData) -> float: - """Extract specific value from T.""" - raise NotImplementedError - - def read_device_status(self, device: CustomerDevice) -> float | None: # type: ignore[override] - """Read the device value for the dpcode.""" - if (raw_value := super().read_device_status(device)) is None or ( - value := ElectricityData.from_bytes(raw_value) - ) is None: - return None - return self._convert(value) - - -class _RawElectricityCurrentWrapper(_RawElectricityDataWrapper): - """Custom DPCode Wrapper for extracting electricity current from base64.""" - - native_unit = UnitOfElectricCurrent.MILLIAMPERE - suggested_unit = UnitOfElectricCurrent.AMPERE - - def _convert(self, value: ElectricityData) -> float: - """Extract specific value from ElectricityData.""" - return value.current - - -class _RawElectricityPowerWrapper(_RawElectricityDataWrapper): - """Custom DPCode Wrapper for extracting electricity power from base64.""" - - native_unit = UnitOfPower.WATT - suggested_unit = UnitOfPower.KILO_WATT - - def _convert(self, value: ElectricityData) -> float: - """Extract specific value from ElectricityData.""" - return value.power - - -class _RawElectricityVoltageWrapper(_RawElectricityDataWrapper): - """Custom DPCode Wrapper for extracting electricity voltage from base64.""" - - native_unit = UnitOfElectricPotential.VOLT - - def _convert(self, value: ElectricityData) -> float: - """Extract specific value from ElectricityData.""" - return value.voltage - - -CURRENT_WRAPPER = (_RawElectricityCurrentWrapper, _JsonElectricityCurrentWrapper) -POWER_WRAPPER = (_RawElectricityPowerWrapper, _JsonElectricityPowerWrapper) -VOLTAGE_WRAPPER = (_RawElectricityVoltageWrapper, _JsonElectricityVoltageWrapper) +CURRENT_WRAPPER = (ElectricityCurrentRawWrapper, ElectricityCurrentJsonWrapper) +POWER_WRAPPER = (ElectricityPowerRawWrapper, ElectricityPowerJsonWrapper) +VOLTAGE_WRAPPER = (ElectricityVoltageRawWrapper, ElectricityVoltageJsonWrapper) @dataclass(frozen=True) @@ -1067,7 +956,7 @@ SENSORS: dict[DeviceCategory, tuple[TuyaSensorEntityDescription, ...]] = { translation_key="wind_direction", device_class=SensorDeviceClass.WIND_DIRECTION, state_class=SensorStateClass.MEASUREMENT, - wrapper_class=(_WindDirectionWrapper,), + wrapper_class=(WindDirectionEnumWrapper,), ), TuyaSensorEntityDescription( key=DPCode.DEW_POINT_TEMP, diff --git a/homeassistant/components/tuya/siren.py b/homeassistant/components/tuya/siren.py index 60ae8b4d43c..b014776c87f 100644 --- a/homeassistant/components/tuya/siren.py +++ b/homeassistant/components/tuya/siren.py @@ -4,7 +4,7 @@ from __future__ import annotations from typing import Any -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeBooleanWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components.siren import ( diff --git a/homeassistant/components/tuya/switch.py b/homeassistant/components/tuya/switch.py index d4c2fc72e0b..092bb3f5cd3 100644 --- a/homeassistant/components/tuya/switch.py +++ b/homeassistant/components/tuya/switch.py @@ -5,7 +5,7 @@ from __future__ import annotations from dataclasses import dataclass from typing import Any -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeBooleanWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components.switch import ( diff --git a/homeassistant/components/tuya/vacuum.py b/homeassistant/components/tuya/vacuum.py index 4fea7469e85..f702671ee1a 100644 --- a/homeassistant/components/tuya/vacuum.py +++ b/homeassistant/components/tuya/vacuum.py @@ -4,7 +4,10 @@ from __future__ import annotations from typing import Any -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper, DPCodeEnumWrapper +from tuya_device_handlers.device_wrapper.common import ( + DPCodeBooleanWrapper, + DPCodeEnumWrapper, +) from tuya_sharing import CustomerDevice, Manager from homeassistant.components.vacuum import ( diff --git a/homeassistant/components/tuya/valve.py b/homeassistant/components/tuya/valve.py index f1beac46670..58fd1809b36 100644 --- a/homeassistant/components/tuya/valve.py +++ b/homeassistant/components/tuya/valve.py @@ -2,7 +2,7 @@ from __future__ import annotations -from tuya_device_handlers.device_wrapper import DPCodeBooleanWrapper +from tuya_device_handlers.device_wrapper.common import DPCodeBooleanWrapper from tuya_sharing import CustomerDevice, Manager from homeassistant.components.valve import ( diff --git a/tests/components/tuya/snapshots/test_sensor.ambr b/tests/components/tuya/snapshots/test_sensor.ambr index 7253e2f6a4c..808fc70a15b 100644 --- a/tests/components/tuya/snapshots/test_sensor.ambr +++ b/tests/components/tuya/snapshots/test_sensor.ambr @@ -5602,7 +5602,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -5614,7 +5614,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.qi94v9dmdx4fkpncqldphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.duan_lu_qi_ha_phase_a_current-state] @@ -5623,7 +5623,7 @@ 'device_class': 'current', 'friendly_name': '断路器HA Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.duan_lu_qi_ha_phase_a_current', @@ -5661,7 +5661,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -5673,7 +5673,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.qi94v9dmdx4fkpncqldphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.duan_lu_qi_ha_phase_a_power-state] @@ -5682,7 +5682,7 @@ 'device_class': 'power', 'friendly_name': '断路器HA Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.duan_lu_qi_ha_phase_a_power', @@ -5729,7 +5729,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.qi94v9dmdx4fkpncqldphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.duan_lu_qi_ha_phase_a_voltage-state] @@ -5738,7 +5738,7 @@ 'device_class': 'voltage', 'friendly_name': '断路器HA Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.duan_lu_qi_ha_phase_a_voltage', @@ -6114,7 +6114,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -6126,7 +6126,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_a_current-state] @@ -6135,7 +6135,7 @@ 'device_class': 'current', 'friendly_name': 'Edesanya Energy Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_a_current', @@ -6173,7 +6173,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -6185,7 +6185,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_a_power-state] @@ -6194,7 +6194,7 @@ 'device_class': 'power', 'friendly_name': 'Edesanya Energy Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_a_power', @@ -6241,7 +6241,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_a_voltage-state] @@ -6250,7 +6250,7 @@ 'device_class': 'voltage', 'friendly_name': 'Edesanya Energy Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_a_voltage', @@ -6288,7 +6288,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -6300,7 +6300,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_current', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_belectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_b_current-state] @@ -6309,7 +6309,7 @@ 'device_class': 'current', 'friendly_name': 'Edesanya Energy Phase B current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_b_current', @@ -6347,7 +6347,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -6359,7 +6359,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_power', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_bpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_b_power-state] @@ -6368,7 +6368,7 @@ 'device_class': 'power', 'friendly_name': 'Edesanya Energy Phase B power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_b_power', @@ -6415,7 +6415,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_voltage', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_bvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_b_voltage-state] @@ -6424,7 +6424,7 @@ 'device_class': 'voltage', 'friendly_name': 'Edesanya Energy Phase B voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_b_voltage', @@ -6462,7 +6462,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -6474,7 +6474,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_current', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_celectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_c_current-state] @@ -6483,7 +6483,7 @@ 'device_class': 'current', 'friendly_name': 'Edesanya Energy Phase C current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_c_current', @@ -6521,7 +6521,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -6533,7 +6533,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_power', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_cpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_c_power-state] @@ -6542,7 +6542,7 @@ 'device_class': 'power', 'friendly_name': 'Edesanya Energy Phase C power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_c_power', @@ -6589,7 +6589,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_voltage', 'unique_id': 'tuya.vcrfgwvbuybgnj3zqldphase_cvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.edesanya_energy_phase_c_voltage-state] @@ -6598,7 +6598,7 @@ 'device_class': 'voltage', 'friendly_name': 'Edesanya Energy Phase C voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.edesanya_energy_phase_c_voltage', @@ -11996,7 +11996,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -12008,7 +12008,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.6pd3bkidqldphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_a_current-state] @@ -12017,7 +12017,7 @@ 'device_class': 'current', 'friendly_name': 'Medidor de Energia Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_a_current', @@ -12055,7 +12055,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -12067,7 +12067,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.6pd3bkidqldphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_a_power-state] @@ -12076,7 +12076,7 @@ 'device_class': 'power', 'friendly_name': 'Medidor de Energia Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_a_power', @@ -12123,7 +12123,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.6pd3bkidqldphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_a_voltage-state] @@ -12132,7 +12132,7 @@ 'device_class': 'voltage', 'friendly_name': 'Medidor de Energia Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_a_voltage', @@ -12170,7 +12170,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -12182,7 +12182,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_current', 'unique_id': 'tuya.6pd3bkidqldphase_belectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_b_current-state] @@ -12191,7 +12191,7 @@ 'device_class': 'current', 'friendly_name': 'Medidor de Energia Phase B current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_b_current', @@ -12229,7 +12229,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -12241,7 +12241,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_power', 'unique_id': 'tuya.6pd3bkidqldphase_bpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_b_power-state] @@ -12250,7 +12250,7 @@ 'device_class': 'power', 'friendly_name': 'Medidor de Energia Phase B power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_b_power', @@ -12297,7 +12297,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_voltage', 'unique_id': 'tuya.6pd3bkidqldphase_bvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_b_voltage-state] @@ -12306,7 +12306,7 @@ 'device_class': 'voltage', 'friendly_name': 'Medidor de Energia Phase B voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_b_voltage', @@ -12344,7 +12344,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -12356,7 +12356,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_current', 'unique_id': 'tuya.6pd3bkidqldphase_celectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_c_current-state] @@ -12365,7 +12365,7 @@ 'device_class': 'current', 'friendly_name': 'Medidor de Energia Phase C current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_c_current', @@ -12403,7 +12403,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -12415,7 +12415,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_power', 'unique_id': 'tuya.6pd3bkidqldphase_cpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_c_power-state] @@ -12424,7 +12424,7 @@ 'device_class': 'power', 'friendly_name': 'Medidor de Energia Phase C power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_c_power', @@ -12471,7 +12471,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_voltage', 'unique_id': 'tuya.6pd3bkidqldphase_cvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.medidor_de_energia_phase_c_voltage-state] @@ -12480,7 +12480,7 @@ 'device_class': 'voltage', 'friendly_name': 'Medidor de Energia Phase C voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.medidor_de_energia_phase_c_voltage', @@ -12686,7 +12686,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -12698,7 +12698,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.nnqlg0rxryraf8ezbdnzphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.meter_phase_a_current-state] @@ -12707,7 +12707,7 @@ 'device_class': 'current', 'friendly_name': 'Meter Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.meter_phase_a_current', @@ -12745,7 +12745,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -12757,7 +12757,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.nnqlg0rxryraf8ezbdnzphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.meter_phase_a_power-state] @@ -12766,7 +12766,7 @@ 'device_class': 'power', 'friendly_name': 'Meter Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.meter_phase_a_power', @@ -12813,7 +12813,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.nnqlg0rxryraf8ezbdnzphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.meter_phase_a_voltage-state] @@ -12822,7 +12822,7 @@ 'device_class': 'voltage', 'friendly_name': 'Meter Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.meter_phase_a_voltage', @@ -12972,7 +12972,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -12984,7 +12984,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_a_current-state] @@ -12993,7 +12993,7 @@ 'device_class': 'current', 'friendly_name': 'Metering_3PN_WiFi_stable Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_a_current', @@ -13031,7 +13031,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -13043,7 +13043,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_a_power-state] @@ -13052,7 +13052,7 @@ 'device_class': 'power', 'friendly_name': 'Metering_3PN_WiFi_stable Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_a_power', @@ -13099,7 +13099,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_a_voltage-state] @@ -13108,7 +13108,7 @@ 'device_class': 'voltage', 'friendly_name': 'Metering_3PN_WiFi_stable Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_a_voltage', @@ -13146,7 +13146,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -13158,7 +13158,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_current', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_belectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_b_current-state] @@ -13167,7 +13167,7 @@ 'device_class': 'current', 'friendly_name': 'Metering_3PN_WiFi_stable Phase B current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_b_current', @@ -13205,7 +13205,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -13217,7 +13217,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_power', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_bpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_b_power-state] @@ -13226,7 +13226,7 @@ 'device_class': 'power', 'friendly_name': 'Metering_3PN_WiFi_stable Phase B power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_b_power', @@ -13273,7 +13273,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_voltage', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_bvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_b_voltage-state] @@ -13282,7 +13282,7 @@ 'device_class': 'voltage', 'friendly_name': 'Metering_3PN_WiFi_stable Phase B voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_b_voltage', @@ -13320,7 +13320,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -13332,7 +13332,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_current', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_celectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_c_current-state] @@ -13341,7 +13341,7 @@ 'device_class': 'current', 'friendly_name': 'Metering_3PN_WiFi_stable Phase C current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_c_current', @@ -13379,7 +13379,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -13391,7 +13391,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_power', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_cpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_c_power-state] @@ -13400,7 +13400,7 @@ 'device_class': 'power', 'friendly_name': 'Metering_3PN_WiFi_stable Phase C power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_c_power', @@ -13447,7 +13447,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_voltage', 'unique_id': 'tuya.obb7p55c0us6rdxkqldphase_cvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.metering_3pn_wifi_stable_phase_c_voltage-state] @@ -13456,7 +13456,7 @@ 'device_class': 'voltage', 'friendly_name': 'Metering_3PN_WiFi_stable Phase C voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.metering_3pn_wifi_stable_phase_c_voltage', @@ -14324,7 +14324,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -14336,7 +14336,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_a_current-state] @@ -14345,7 +14345,7 @@ 'device_class': 'current', 'friendly_name': 'P1 Energia Elettrica Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_a_current', @@ -14383,7 +14383,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -14395,7 +14395,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_a_power-state] @@ -14404,7 +14404,7 @@ 'device_class': 'power', 'friendly_name': 'P1 Energia Elettrica Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_a_power', @@ -14451,7 +14451,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_a_voltage-state] @@ -14460,7 +14460,7 @@ 'device_class': 'voltage', 'friendly_name': 'P1 Energia Elettrica Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_a_voltage', @@ -14498,7 +14498,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -14510,7 +14510,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_current', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_belectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_b_current-state] @@ -14519,7 +14519,7 @@ 'device_class': 'current', 'friendly_name': 'P1 Energia Elettrica Phase B current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_b_current', @@ -14557,7 +14557,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -14569,7 +14569,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_power', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_bpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_b_power-state] @@ -14578,7 +14578,7 @@ 'device_class': 'power', 'friendly_name': 'P1 Energia Elettrica Phase B power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_b_power', @@ -14625,7 +14625,7 @@ 'supported_features': 0, 'translation_key': 'phase_b_voltage', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_bvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_b_voltage-state] @@ -14634,7 +14634,7 @@ 'device_class': 'voltage', 'friendly_name': 'P1 Energia Elettrica Phase B voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_b_voltage', @@ -14672,7 +14672,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'A', }), }), 'original_device_class': , @@ -14684,7 +14684,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_current', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_celectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_c_current-state] @@ -14693,7 +14693,7 @@ 'device_class': 'current', 'friendly_name': 'P1 Energia Elettrica Phase C current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_c_current', @@ -14731,7 +14731,7 @@ 'suggested_display_precision': 2, }), 'sensor.private': dict({ - 'suggested_unit_of_measurement': , + 'suggested_unit_of_measurement': 'kW', }), }), 'original_device_class': , @@ -14743,7 +14743,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_power', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_cpower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_c_power-state] @@ -14752,7 +14752,7 @@ 'device_class': 'power', 'friendly_name': 'P1 Energia Elettrica Phase C power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_c_power', @@ -14799,7 +14799,7 @@ 'supported_features': 0, 'translation_key': 'phase_c_voltage', 'unique_id': 'tuya.bcyciyhhu1g2gk9rqldphase_cvoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.p1_energia_elettrica_phase_c_voltage-state] @@ -14808,7 +14808,7 @@ 'device_class': 'voltage', 'friendly_name': 'P1 Energia Elettrica Phase C voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.p1_energia_elettrica_phase_c_voltage', @@ -22543,7 +22543,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_current', 'unique_id': 'tuya.9oh1h1uyalfykgg4bdnzphase_aelectriccurrent', - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }) # --- # name: test_platform_setup_and_discovery[sensor.xoca_dac212xc_v2_s1_phase_a_current-state] @@ -22552,7 +22552,7 @@ 'device_class': 'current', 'friendly_name': 'XOCA-DAC212XC V2-S1 Phase A current', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'A', }), 'context': , 'entity_id': 'sensor.xoca_dac212xc_v2_s1_phase_a_current', @@ -22599,7 +22599,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_power', 'unique_id': 'tuya.9oh1h1uyalfykgg4bdnzphase_apower', - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }) # --- # name: test_platform_setup_and_discovery[sensor.xoca_dac212xc_v2_s1_phase_a_power-state] @@ -22608,7 +22608,7 @@ 'device_class': 'power', 'friendly_name': 'XOCA-DAC212XC V2-S1 Phase A power', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'kW', }), 'context': , 'entity_id': 'sensor.xoca_dac212xc_v2_s1_phase_a_power', @@ -22655,7 +22655,7 @@ 'supported_features': 0, 'translation_key': 'phase_a_voltage', 'unique_id': 'tuya.9oh1h1uyalfykgg4bdnzphase_avoltage', - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }) # --- # name: test_platform_setup_and_discovery[sensor.xoca_dac212xc_v2_s1_phase_a_voltage-state] @@ -22664,7 +22664,7 @@ 'device_class': 'voltage', 'friendly_name': 'XOCA-DAC212XC V2-S1 Phase A voltage', 'state_class': , - 'unit_of_measurement': , + 'unit_of_measurement': 'V', }), 'context': , 'entity_id': 'sensor.xoca_dac212xc_v2_s1_phase_a_voltage',