Add support for new energy sensor entities for TDQ (socket/outlet) devices in the Tuya integration (#151553)

This commit is contained in:
yufeng
2025-09-02 19:10:36 +08:00
committed by GitHub
parent 12ab84a5d9
commit ceda62f6ea
3 changed files with 63 additions and 0 deletions

View File

@@ -98,6 +98,7 @@ class DPCode(StrEnum):
https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
"""
ADD_ELE = "add_ele" # energy
AIR_QUALITY = "air_quality"
AIR_QUALITY_INDEX = "air_quality_index"
ALARM_DELAY_TIME = "alarm_delay_time"

View File

@@ -1133,6 +1133,12 @@ SENSORS: dict[str, tuple[TuyaSensorEntityDescription, ...]] = {
suggested_unit_of_measurement=UnitOfElectricPotential.VOLT,
entity_registry_enabled_default=False,
),
TuyaSensorEntityDescription(
key=DPCode.ADD_ELE,
translation_key="total_energy",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
),
TuyaSensorEntityDescription(
key=DPCode.VA_TEMPERATURE,
translation_key="temperature",

View File

@@ -11600,6 +11600,62 @@
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[sensor.socket3_total_energy-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.socket3_total_energy',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
}),
'original_device_class': <SensorDeviceClass.ENERGY: 'energy'>,
'original_icon': None,
'original_name': 'Total energy',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'total_energy',
'unique_id': 'tuya.7zogt3pcwhxhu8upqdtadd_ele',
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
})
# ---
# name: test_platform_setup_and_discovery[sensor.socket3_total_energy-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'energy',
'friendly_name': 'Socket3 Total energy',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfEnergy.KILO_WATT_HOUR: 'kWh'>,
}),
'context': <ANY>,
'entity_id': 'sensor.socket3_total_energy',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[sensor.socket3_voltage-entry]
EntityRegistryEntrySnapshot({
'aliases': set({