Add tuya snapshots for more humidifiers (cs category) (#148797)

This commit is contained in:
epenet 2025-07-16 08:11:55 +02:00 committed by GitHub
parent 9c933ef01f
commit 27ad459ae0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 699 additions and 0 deletions

View File

@ -31,6 +31,20 @@ DEVICE_MOCKS = {
Platform.SENSOR,
Platform.SWITCH,
],
"cs_emma_dehumidifier": [
# https://github.com/home-assistant/core/issues/119865
Platform.BINARY_SENSOR,
Platform.FAN,
Platform.HUMIDIFIER,
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
],
"cs_smart_dry_plus": [
# https://github.com/home-assistant/core/issues/119865
Platform.FAN,
Platform.HUMIDIFIER,
],
"cwwsq_cleverio_pf100": [
# https://github.com/home-assistant/core/issues/144745
Platform.NUMBER,

View File

@ -0,0 +1,129 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "mock_terminal_id",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "mock_device_id",
"name": "Dehumidifer",
"category": "cs",
"product_id": "ka2wfrdoogpvgzfi",
"product_name": "Emma Dehumidifier - eeese air care",
"online": false,
"sub": false,
"time_zone": "+01:00",
"active_time": "2024-11-06T18:25:00+00:00",
"create_time": "2024-11-06T18:25:00+00:00",
"update_time": "2024-11-06T18:25:00+00:00",
"function": {
"switch": {
"type": "Boolean",
"value": {}
},
"dehumidify_set_value": {
"type": "Integer",
"value": {
"unit": "%",
"min": 25,
"max": 80,
"scale": 0,
"step": 5
}
},
"fan_speed_enum": {
"type": "Enum",
"value": {
"range": ["low", "high"]
}
},
"anion": {
"type": "Boolean",
"value": {}
},
"child_lock": {
"type": "Boolean",
"value": {}
},
"countdown_set": {
"type": "Enum",
"value": {
"range": ["cancel", "1h", "2h", "3h"]
}
}
},
"status_range": {
"switch": {
"type": "Boolean",
"value": {}
},
"dehumidify_set_value": {
"type": "Integer",
"value": {
"unit": "%",
"min": 25,
"max": 80,
"scale": 0,
"step": 5
}
},
"fan_speed_enum": {
"type": "Enum",
"value": {
"range": ["low", "high"]
}
},
"anion": {
"type": "Boolean",
"value": {}
},
"child_lock": {
"type": "Boolean",
"value": {}
},
"humidity_indoor": {
"type": "Integer",
"value": {
"unit": "%",
"min": 0,
"max": 100,
"scale": 0,
"step": 1
}
},
"countdown_set": {
"type": "Enum",
"value": {
"range": ["cancel", "1h", "2h", "3h"]
}
},
"countdown_left": {
"type": "Integer",
"value": {
"unit": "h",
"min": 0,
"max": 24,
"scale": 0,
"step": 1
}
},
"fault": {
"type": "Bitmap",
"value": {
"label": ["tankfull", "defrost", "E1", "E2", "L3", "L4", "L2"]
}
}
},
"status": {
"switch": false,
"dehumidify_set_value": 25,
"fan_speed_enum": "low",
"anion": false,
"child_lock": false,
"humidity_indoor": 48,
"countdown_set": "cancel",
"countdown_left": 0,
"fault": 0
},
"set_up": true,
"support_local": true
}

View File

@ -0,0 +1,32 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "mock_terminal_id",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "mock_device_id",
"name": "Dehumidifier ",
"category": "cs",
"product_id": "vmxuxszzjwp5smli",
"product_name": "the Smart Dry Plus\u2122 Connect Dehumidifier ",
"online": true,
"sub": false,
"time_zone": "+10:00",
"active_time": "2024-05-28T01:57:58+00:00",
"create_time": "2024-05-28T01:57:58+00:00",
"update_time": "2024-05-28T01:57:58+00:00",
"function": {},
"status_range": {
"fault": {
"type": "Bitmap",
"value": {
"label": ["E1", "E2"]
}
}
},
"status": {
"fault": 0
},
"set_up": true,
"support_local": true
}

View File

@ -146,6 +146,104 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][binary_sensor.dehumidifer_defrost-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': 'binary_sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'binary_sensor.dehumidifer_defrost',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
'original_icon': None,
'original_name': 'Defrost',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'defrost',
'unique_id': 'tuya.mock_device_iddefrost',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][binary_sensor.dehumidifer_defrost-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'problem',
'friendly_name': 'Dehumidifer Defrost',
}),
'context': <ANY>,
'entity_id': 'binary_sensor.dehumidifer_defrost',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][binary_sensor.dehumidifer_tank_full-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': 'binary_sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'binary_sensor.dehumidifer_tank_full',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
'original_icon': None,
'original_name': 'Tank full',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'tankfull',
'unique_id': 'tuya.mock_device_idtankfull',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][binary_sensor.dehumidifer_tank_full-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'problem',
'friendly_name': 'Dehumidifer Tank full',
}),
'context': <ANY>,
'entity_id': 'binary_sensor.dehumidifer_tank_full',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[mcs_door_sensor][binary_sensor.door_garage_door-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -49,6 +49,110 @@
'state': 'on',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][fan.dehumidifer-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'preset_modes': list([
]),
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'fan',
'entity_category': None,
'entity_id': 'fan.dehumidifer',
'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': None,
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <FanEntityFeature: 49>,
'translation_key': None,
'unique_id': 'tuya.mock_device_id',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][fan.dehumidifer-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Dehumidifer',
'preset_modes': list([
]),
'supported_features': <FanEntityFeature: 49>,
}),
'context': <ANY>,
'entity_id': 'fan.dehumidifer',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cs_smart_dry_plus][fan.dehumidifier-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'fan',
'entity_category': None,
'entity_id': 'fan.dehumidifier',
'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': None,
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tuya.mock_device_id',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_smart_dry_plus][fan.dehumidifier-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Dehumidifier ',
'supported_features': <FanEntityFeature: 0>,
}),
'context': <ANY>,
'entity_id': 'fan.dehumidifier',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_platform_setup_and_discovery[kj_bladeless_tower_fan][fan.bree-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -56,3 +56,113 @@
'state': 'on',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][humidifier.dehumidifer-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max_humidity': 80,
'min_humidity': 25,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'humidifier',
'entity_category': None,
'entity_id': 'humidifier.dehumidifer',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <HumidifierDeviceClass.DEHUMIDIFIER: 'dehumidifier'>,
'original_icon': None,
'original_name': None,
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tuya.mock_device_idswitch',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][humidifier.dehumidifer-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'dehumidifier',
'friendly_name': 'Dehumidifer',
'max_humidity': 80,
'min_humidity': 25,
'supported_features': <HumidifierEntityFeature: 0>,
}),
'context': <ANY>,
'entity_id': 'humidifier.dehumidifer',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cs_smart_dry_plus][humidifier.dehumidifier-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max_humidity': 100,
'min_humidity': 0,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'humidifier',
'entity_category': None,
'entity_id': 'humidifier.dehumidifier',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <HumidifierDeviceClass.DEHUMIDIFIER: 'dehumidifier'>,
'original_icon': None,
'original_name': None,
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': 'tuya.mock_device_idswitch',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_smart_dry_plus][humidifier.dehumidifier-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'dehumidifier',
'friendly_name': 'Dehumidifier ',
'max_humidity': 100,
'min_humidity': 0,
'supported_features': <HumidifierEntityFeature: 0>,
}),
'context': <ANY>,
'entity_id': 'humidifier.dehumidifier',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---

View File

@ -117,6 +117,67 @@
'state': 'cancel',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][select.dehumidifer_countdown-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'cancel',
'1h',
'2h',
'3h',
]),
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'select',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'select.dehumidifer_countdown',
'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': 'Countdown',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'countdown',
'unique_id': 'tuya.mock_device_idcountdown_set',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][select.dehumidifer_countdown-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Dehumidifer Countdown',
'options': list([
'cancel',
'1h',
'2h',
'3h',
]),
}),
'context': <ANY>,
'entity_id': 'select.dehumidifer_countdown',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[kj_bladeless_tower_fan][select.bree_countdown-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -52,6 +52,59 @@
'state': '47.0',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][sensor.dehumidifer_humidity-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.dehumidifer_humidity',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
'original_icon': None,
'original_name': 'Humidity',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'humidity',
'unique_id': 'tuya.mock_device_idhumidity_indoor',
'unit_of_measurement': '%',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][sensor.dehumidifer_humidity-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'humidity',
'friendly_name': 'Dehumidifer Humidity',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.dehumidifer_humidity',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cwwsq_cleverio_pf100][sensor.cleverio_pf100_last_amount-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@ -48,6 +48,104 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][switch.dehumidifer_child_lock-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': 'switch',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'switch.dehumidifer_child_lock',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': 'mdi:account-lock',
'original_name': 'Child lock',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'child_lock',
'unique_id': 'tuya.mock_device_idchild_lock',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][switch.dehumidifer_child_lock-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Dehumidifer Child lock',
'icon': 'mdi:account-lock',
}),
'context': <ANY>,
'entity_id': 'switch.dehumidifer_child_lock',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][switch.dehumidifer_ionizer-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': 'switch',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'switch.dehumidifer_ionizer',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': 'mdi:atom',
'original_name': 'Ionizer',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'ionizer',
'unique_id': 'tuya.mock_device_idanion',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[cs_emma_dehumidifier][switch.dehumidifer_ionizer-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Dehumidifer Ionizer',
'icon': 'mdi:atom',
}),
'context': <ANY>,
'entity_id': 'switch.dehumidifer_ionizer',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[cwysj_pixi_smart_drinking_fountain][switch.pixi_smart_drinking_fountain_filter_reset-entry]
EntityRegistryEntrySnapshot({
'aliases': set({