Add support for tuya ywcgq category (liquid level) (#150096)

Thanks @joostlek / @frenck
This commit is contained in:
epenet
2025-08-06 15:38:50 +02:00
committed by GitHub
parent 260ea9a3be
commit 124e7cf4c8
9 changed files with 1031 additions and 18 deletions

View File

@@ -222,6 +222,7 @@ class DPCode(StrEnum):
HUMIDITY_OUTDOOR_3 = "humidity_outdoor_3" # Outdoor humidity
HUMIDITY_SET = "humidity_set" # Humidity setting
HUMIDITY_VALUE = "humidity_value" # Humidity
INSTALLATION_HEIGHT = "installation_height"
IPC_WORK_MODE = "ipc_work_mode"
LED_TYPE_1 = "led_type_1"
LED_TYPE_2 = "led_type_2"
@@ -232,12 +233,18 @@ class DPCode(StrEnum):
LEVEL_CURRENT = "level_current"
LIGHT = "light" # Light
LIGHT_MODE = "light_mode"
LIQUID_DEPTH = "liquid_depth"
LIQUID_DEPTH_MAX = "liquid_depth_max"
LIQUID_LEVEL_PERCENT = "liquid_level_percent"
LIQUID_STATE = "liquid_state"
LOCK = "lock" # Lock / Child lock
MASTER_MODE = "master_mode" # alarm mode
MASTER_STATE = "master_state" # alarm state
MACH_OPERATE = "mach_operate"
MANUAL_FEED = "manual_feed"
MATERIAL = "material" # Material
MAX_SET = "max_set"
MINI_SET = "mini_set"
MODE = "mode" # Working mode / Mode
MOODLIGHTING = "moodlighting" # Mood light
MOTION_RECORD = "motion_record"

View File

@@ -339,6 +339,32 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
entity_category=EntityCategory.CONFIG,
),
),
# Tank Level Sensor
# Note: Undocumented
"ywcgq": (
NumberEntityDescription(
key=DPCode.MAX_SET,
translation_key="alarm_maximum",
entity_category=EntityCategory.CONFIG,
),
NumberEntityDescription(
key=DPCode.MINI_SET,
translation_key="alarm_minimum",
entity_category=EntityCategory.CONFIG,
),
NumberEntityDescription(
key=DPCode.INSTALLATION_HEIGHT,
translation_key="installation_height",
device_class=NumberDeviceClass.DISTANCE,
entity_category=EntityCategory.CONFIG,
),
NumberEntityDescription(
key=DPCode.LIQUID_DEPTH_MAX,
translation_key="maximum_liquid_depth",
device_class=NumberDeviceClass.DISTANCE,
entity_category=EntityCategory.CONFIG,
),
),
# Vibration Sensor
# https://developer.tuya.com/en/docs/iot/categoryzd?id=Kaiuz3a5vrzno
"zd": (

View File

@@ -1301,6 +1301,25 @@ SENSORS: dict[str, tuple[TuyaSensorEntityDescription, ...]] = {
),
*BATTERY_SENSORS,
),
# Tank Level Sensor
# Note: Undocumented
"ywcgq": (
TuyaSensorEntityDescription(
key=DPCode.LIQUID_STATE,
translation_key="liquid_state",
),
TuyaSensorEntityDescription(
key=DPCode.LIQUID_DEPTH,
translation_key="depth",
device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.MEASUREMENT,
),
TuyaSensorEntityDescription(
key=DPCode.LIQUID_LEVEL_PERCENT,
translation_key="liquid_level",
state_class=SensorStateClass.MEASUREMENT,
),
),
# Vibration Sensor
# https://developer.tuya.com/en/docs/iot/categoryzd?id=Kaiuz3a5vrzno
"zd": BATTERY_SENSORS,

View File

@@ -213,6 +213,18 @@
},
"siren_duration": {
"name": "Siren duration"
},
"alarm_maximum": {
"name": "Alarm maximum"
},
"alarm_minimum": {
"name": "Alarm minimum"
},
"installation_height": {
"name": "Installation height"
},
"maximum_liquid_depth": {
"name": "Maximum liquid depth"
}
},
"select": {
@@ -711,6 +723,20 @@
"charging": "[%key:common::state::charging%]",
"charge_done": "Charge done"
}
},
"liquid_state": {
"name": "Liquid state",
"state": {
"normal": "[%key:common::state::normal%]",
"lower_alarm": "[%key:common::state::low%]",
"upper_alarm": "[%key:common::state::high%]"
}
},
"liquid_depth": {
"name": "Liquid depth"
},
"liquid_level": {
"name": "Liquid level"
}
},
"switch": {

View File

@@ -434,9 +434,15 @@ DEVICE_MOCKS = {
Platform.BINARY_SENSOR,
Platform.SENSOR,
],
"ywcgq_h8lvyoahr6s6aybf": [
# https://github.com/home-assistant/core/issues/145932
Platform.NUMBER,
Platform.SENSOR,
],
"ywcgq_wtzwyhkev3b4ubns": [
# https://community.home-assistant.io/t/something-is-wrong-with-tuya-tank-level-sensors-with-the-new-official-integration/689321
# not (yet) supported
# https://github.com/home-assistant/core/issues/103818
Platform.NUMBER,
Platform.SENSOR,
],
"zndb_ze8faryrxr0glqnn": [
# https://github.com/home-assistant/core/issues/138372

View File

@@ -0,0 +1,148 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "REDACTED",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bf3d16d38b17d7034ddxd4",
"name": "Rainwater Tank Level",
"category": "ywcgq",
"product_id": "h8lvyoahr6s6aybf",
"product_name": "Tank A Level",
"online": true,
"sub": false,
"time_zone": "+01:00",
"active_time": "2025-05-31T09:55:19+00:00",
"create_time": "2025-05-31T09:55:19+00:00",
"update_time": "2025-05-31T09:55:19+00:00",
"function": {
"max_set": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
},
"mini_set": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
},
"upper_switch": {
"type": "Boolean",
"value": {}
},
"installation_height": {
"type": "Integer",
"value": {
"unit": "m",
"min": 100,
"max": 3000,
"scale": 3,
"step": 1
}
},
"liquid_depth_max": {
"type": "Integer",
"value": {
"unit": "m",
"min": 100,
"max": 2700,
"scale": 3,
"step": 1
}
}
},
"status_range": {
"liquid_state": {
"type": "Enum",
"value": {
"range": ["normal", "lower_alarm", "upper_alarm"]
}
},
"liquid_depth": {
"type": "Integer",
"value": {
"unit": "m",
"min": 0,
"max": 10000,
"scale": 3,
"step": 1
}
},
"max_set": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
},
"mini_set": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
},
"upper_switch": {
"type": "Boolean",
"value": {}
},
"installation_height": {
"type": "Integer",
"value": {
"unit": "m",
"min": 100,
"max": 3000,
"scale": 3,
"step": 1
}
},
"liquid_depth_max": {
"type": "Integer",
"value": {
"unit": "m",
"min": 100,
"max": 2700,
"scale": 3,
"step": 1
}
},
"liquid_level_percent": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
}
},
"status": {
"liquid_state": "normal",
"liquid_depth": 455,
"max_set": 90,
"mini_set": 10,
"upper_switch": false,
"installation_height": 1350,
"liquid_depth_max": 100,
"liquid_level_percent": 36
},
"set_up": false,
"support_local": true
}

View File

@@ -1,20 +1,22 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "REDACTED",
"endpoint": "https://openapi.tuyaus.com",
"auth_type": 0,
"country_code": "1",
"app_type": "tuyaSmart",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bf27a4********368f4w",
"name": "Nivel del tanque A",
"name": "House Water Level",
"model": "EPT_Ultrasonic level sensor",
"category": "ywcgq",
"product_id": "wtzwyhkev3b4ubns",
"product_name": "Tank A Level",
"online": true,
"sub": false,
"time_zone": "+01:00",
"active_time": "2024-01-05T10:22:24+00:00",
"create_time": "2024-01-05T10:22:24+00:00",
"update_time": "2024-01-05T10:22:24+00:00",
"time_zone": "-06:00",
"active_time": "2023-11-02T22:48:03+00:00",
"create_time": "2023-11-02T22:48:03+00:00",
"update_time": "2023-11-09T13:32:38+00:00",
"function": {
"max_set": {
"type": "Integer",
@@ -126,14 +128,13 @@
}
},
"status": {
"liquid_state": "normal",
"liquid_depth": 77,
"liquid_state": "upper_alarm",
"liquid_depth": 42,
"max_set": 100,
"mini_set": 10,
"installation_height": 980,
"liquid_depth_max": 140,
"liquid_level_percent": 97
"mini_set": 0,
"installation_height": 560,
"liquid_depth_max": 100,
"liquid_level_percent": 100
},
"set_up": false,
"support_local": true
"terminal_id": "REDACTED"
}

View File

@@ -817,3 +817,471 @@
'state': '-1.5',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_alarm_maximum-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.rainwater_tank_level_alarm_maximum',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Alarm maximum',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'alarm_maximum',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4max_set',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_alarm_maximum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Rainwater Tank Level Alarm maximum',
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'number.rainwater_tank_level_alarm_maximum',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '90.0',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_alarm_minimum-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.rainwater_tank_level_alarm_minimum',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Alarm minimum',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'alarm_minimum',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4mini_set',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_alarm_minimum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Rainwater Tank Level Alarm minimum',
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'number.rainwater_tank_level_alarm_minimum',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '10.0',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_installation_height-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 3.0,
'min': 0.1,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.rainwater_tank_level_installation_height',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <NumberDeviceClass.DISTANCE: 'distance'>,
'original_icon': None,
'original_name': 'Installation height',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'installation_height',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4installation_height',
'unit_of_measurement': 'm',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_installation_height-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'Rainwater Tank Level Installation height',
'max': 3.0,
'min': 0.1,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
'unit_of_measurement': 'm',
}),
'context': <ANY>,
'entity_id': 'number.rainwater_tank_level_installation_height',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1.35',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_maximum_liquid_depth-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 2.7,
'min': 0.1,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.rainwater_tank_level_maximum_liquid_depth',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <NumberDeviceClass.DISTANCE: 'distance'>,
'original_icon': None,
'original_name': 'Maximum liquid depth',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'maximum_liquid_depth',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4liquid_depth_max',
'unit_of_measurement': 'm',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][number.rainwater_tank_level_maximum_liquid_depth-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'Rainwater Tank Level Maximum liquid depth',
'max': 2.7,
'min': 0.1,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
'unit_of_measurement': 'm',
}),
'context': <ANY>,
'entity_id': 'number.rainwater_tank_level_maximum_liquid_depth',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.1',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_alarm_maximum-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.house_water_level_alarm_maximum',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Alarm maximum',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'alarm_maximum',
'unique_id': 'tuya.mocked_device_idmax_set',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_alarm_maximum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'House Water Level Alarm maximum',
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'number.house_water_level_alarm_maximum',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '100.0',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_alarm_minimum-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.house_water_level_alarm_minimum',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Alarm minimum',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'alarm_minimum',
'unique_id': 'tuya.mocked_device_idmini_set',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_alarm_minimum-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'House Water Level Alarm minimum',
'max': 100.0,
'min': 0.0,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 1.0,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'number.house_water_level_alarm_minimum',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_installation_height-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 2.5,
'min': 0.2,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.house_water_level_installation_height',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <NumberDeviceClass.DISTANCE: 'distance'>,
'original_icon': None,
'original_name': 'Installation height',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'installation_height',
'unique_id': 'tuya.mocked_device_idinstallation_height',
'unit_of_measurement': 'm',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_installation_height-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'House Water Level Installation height',
'max': 2.5,
'min': 0.2,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
'unit_of_measurement': 'm',
}),
'context': <ANY>,
'entity_id': 'number.house_water_level_installation_height',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.56',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_maximum_liquid_depth-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 2.4,
'min': 0.1,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.house_water_level_maximum_liquid_depth',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <NumberDeviceClass.DISTANCE: 'distance'>,
'original_icon': None,
'original_name': 'Maximum liquid depth',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'maximum_liquid_depth',
'unique_id': 'tuya.mocked_device_idliquid_depth_max',
'unit_of_measurement': 'm',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][number.house_water_level_maximum_liquid_depth-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'House Water Level Maximum liquid depth',
'max': 2.4,
'min': 0.1,
'mode': <NumberMode.AUTO: 'auto'>,
'step': 0.001,
'unit_of_measurement': 'm',
}),
'context': <ANY>,
'entity_id': 'number.house_water_level_maximum_liquid_depth',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.1',
})
# ---

View File

@@ -4421,6 +4421,318 @@
'state': 'low',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][sensor.rainwater_tank_level_distance-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.rainwater_tank_level_distance',
'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.DISTANCE: 'distance'>,
'original_icon': None,
'original_name': 'Distance',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'depth',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4liquid_depth',
'unit_of_measurement': 'm',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][sensor.rainwater_tank_level_distance-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'Rainwater Tank Level Distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'm',
}),
'context': <ANY>,
'entity_id': 'sensor.rainwater_tank_level_distance',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.455',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][sensor.rainwater_tank_level_liquid_level-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.rainwater_tank_level_liquid_level',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Liquid level',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'liquid_level',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4liquid_level_percent',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][sensor.rainwater_tank_level_liquid_level-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Rainwater Tank Level Liquid level',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.rainwater_tank_level_liquid_level',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '36.0',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][sensor.rainwater_tank_level_liquid_state-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'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.rainwater_tank_level_liquid_state',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Liquid state',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'liquid_state',
'unique_id': 'tuya.bf3d16d38b17d7034ddxd4liquid_state',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_h8lvyoahr6s6aybf][sensor.rainwater_tank_level_liquid_state-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Rainwater Tank Level Liquid state',
}),
'context': <ANY>,
'entity_id': 'sensor.rainwater_tank_level_liquid_state',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'normal',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][sensor.house_water_level_distance-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.house_water_level_distance',
'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.DISTANCE: 'distance'>,
'original_icon': None,
'original_name': 'Distance',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'depth',
'unique_id': 'tuya.mocked_device_idliquid_depth',
'unit_of_measurement': 'm',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][sensor.house_water_level_distance-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'distance',
'friendly_name': 'House Water Level Distance',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'm',
}),
'context': <ANY>,
'entity_id': 'sensor.house_water_level_distance',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.42',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][sensor.house_water_level_liquid_level-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'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.house_water_level_liquid_level',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Liquid level',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'liquid_level',
'unique_id': 'tuya.mocked_device_idliquid_level_percent',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][sensor.house_water_level_liquid_level-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'House Water Level Liquid level',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.house_water_level_liquid_level',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '100.0',
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][sensor.house_water_level_liquid_state-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'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.house_water_level_liquid_state',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Liquid state',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'liquid_state',
'unique_id': 'tuya.mocked_device_idliquid_state',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[ywcgq_wtzwyhkev3b4ubns][sensor.house_water_level_liquid_state-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'House Water Level Liquid state',
}),
'context': <ANY>,
'entity_id': 'sensor.house_water_level_liquid_state',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'upper_alarm',
})
# ---
# name: test_platform_setup_and_discovery[zndb_ze8faryrxr0glqnn][sensor.meter_phase_a_current-entry]
EntityRegistryEntrySnapshot({
'aliases': set({