Skip to content

Commit d475f76

Browse files
authored
Fix Tuya illuminance/valve enum sensor entity type, add test (#4112)
* Fix Tuya illuminance sensor entity type * Fix Tuya valve status entity type * Add test ensuring correct entity category for enum sensors
1 parent 44ae1d0 commit d475f76

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

tests/test_quirks_v2.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44
import itertools
55

66
import zigpy.quirks
7-
from zigpy.quirks.v2 import QuirksV2RegistryEntry
7+
from zigpy.quirks.v2 import (
8+
EntityPlatform,
9+
EntityType,
10+
QuirksV2RegistryEntry,
11+
ZCLEnumMetadata,
12+
)
813

914
import zhaquirks
1015

@@ -70,3 +75,21 @@ def test_manufacturer_model_metadata_unique() -> None:
7075
assert len(quirk_locations) == 1, (
7176
f"Manufacturer-model pair '{manufacturer}' '{model}' is shared by multiple quirks: {quirk_locations}"
7277
)
78+
79+
80+
def test_enum_sensor_category() -> None:
81+
"""Ensure enum metadata with sensor entity platform has valid entity category."""
82+
for quirk in ALL_QUIRK_V2_CLASSES:
83+
for entity_metadata in quirk.entity_metadata:
84+
if (
85+
isinstance(entity_metadata, ZCLEnumMetadata)
86+
and entity_metadata.entity_platform is EntityPlatform.SENSOR
87+
):
88+
assert entity_metadata.entity_type in (
89+
EntityType.STANDARD,
90+
EntityType.DIAGNOSTIC,
91+
), (
92+
f"Enum sensor '{entity_metadata.translation_key}' in "
93+
f"{quirk.quirk_file}:{quirk.quirk_file_line} "
94+
f"has invalid entity type '{entity_metadata.entity_type}'"
95+
)

zhaquirks/tuya/tuya_illuminance.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Tuya illuminance sensors."""
22

3-
from zigpy.quirks.v2 import EntityPlatform
3+
from zigpy.quirks.v2 import EntityPlatform, EntityType
44
from zigpy.types import t
55

66
from zhaquirks.tuya.builder import TuyaQuirkBuilder
@@ -23,6 +23,7 @@ class BrightnessLevel(t.enum8):
2323
dp_id=1,
2424
attribute_name="brightness_level",
2525
enum_class=BrightnessLevel,
26+
entity_type=EntityType.STANDARD,
2627
entity_platform=EntityPlatform.SENSOR,
2728
translation_key="brightness_level",
2829
fallback_name="Brightness level",

zhaquirks/tuya/tuya_valve.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,7 @@ class GiexIrrigationStatus(t.enum8):
510510
dp_id=3,
511511
attribute_name="valve_status",
512512
enum_class=TuyaValveStatus,
513+
entity_type=EntityType.STANDARD,
513514
entity_platform=EntityPlatform.SENSOR,
514515
translation_key="valve_status",
515516
fallback_name="Valve status",

0 commit comments

Comments
 (0)