Add more switches to Tuya tdq category (#150090)

This commit is contained in:
epenet
2025-08-06 11:03:26 +02:00
committed by GitHub
parent 13828f6713
commit 863e2074b6
10 changed files with 1573 additions and 0 deletions

View File

@@ -758,6 +758,18 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
translation_placeholders={"index": "4"},
device_class=SwitchDeviceClass.OUTLET,
),
SwitchEntityDescription(
key=DPCode.SWITCH_5,
translation_key="indexed_switch",
translation_placeholders={"index": "5"},
device_class=SwitchDeviceClass.OUTLET,
),
SwitchEntityDescription(
key=DPCode.SWITCH_6,
translation_key="indexed_switch",
translation_placeholders={"index": "6"},
device_class=SwitchDeviceClass.OUTLET,
),
SwitchEntityDescription(
key=DPCode.CHILD_LOCK,
translation_key="child_lock",

View File

@@ -356,11 +356,35 @@ DEVICE_MOCKS = {
Platform.SIREN,
Platform.SWITCH,
],
"tdq_1aegphq4yfd50e6b": [
# https://github.com/home-assistant/core/issues/143209
Platform.SELECT,
Platform.SWITCH,
],
"tdq_9htyiowaf5rtdhrv": [
# https://github.com/home-assistant/core/issues/143209
Platform.SELECT,
Platform.SWITCH,
],
"tdq_cq1p0nt0a4rixnex": [
# https://github.com/home-assistant/core/issues/146845
Platform.SELECT,
Platform.SWITCH,
],
"tdq_nockvv2k39vbrxxk": [
# https://github.com/home-assistant/core/issues/145849
Platform.SWITCH,
],
"tdq_pu8uhxhwcp3tgoz7": [
# https://github.com/home-assistant/core/issues/141278
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
],
"tdq_uoa3mayicscacseb": [
# https://github.com/home-assistant/core/issues/128911
# SDK information is empty
],
"tyndj_pyakuuoc": [
# https://github.com/home-assistant/core/issues/149704
Platform.LIGHT,

View File

@@ -0,0 +1,139 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "REDACTED",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bfa008a4f82a56616c69uz",
"name": "jardin Fraises",
"category": "tdq",
"product_id": "1aegphq4yfd50e6b",
"product_name": "1-433",
"online": true,
"sub": false,
"time_zone": "+02:00",
"active_time": "2024-09-13T12:26:55+00:00",
"create_time": "2024-09-13T12:26:55+00:00",
"update_time": "2024-09-13T12:26:55+00:00",
"function": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"random_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"cycle_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_inching": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_type": {
"type": "Enum",
"value": {
"range": ["flip", "sync", "button"]
}
},
"remote_add": {
"type": "Raw",
"value": {}
},
"remote_list": {
"type": "Raw",
"value": {}
}
},
"status_range": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"random_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"cycle_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_inching": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_type": {
"type": "Enum",
"value": {
"range": ["flip", "sync", "button"]
}
},
"remote_add": {
"type": "Raw",
"value": {}
},
"remote_list": {
"type": "Raw",
"value": {}
}
},
"status": {
"switch_1": false,
"countdown_1": 0,
"relay_status": 2,
"random_time": "",
"cycle_time": "",
"switch_inching": "AAAC",
"switch_type": "button",
"remote_add": "",
"remote_list": "AA=="
},
"set_up": true,
"support_local": true
}

View File

@@ -0,0 +1,139 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "REDACTED",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bff35871a2f4430058vs8u",
"name": "Framboisiers",
"category": "tdq",
"product_id": "9htyiowaf5rtdhrv",
"product_name": "1-433",
"online": true,
"sub": false,
"time_zone": "+02:00",
"active_time": "2024-09-08T13:46:46+00:00",
"create_time": "2024-09-08T13:46:46+00:00",
"update_time": "2024-09-08T13:46:46+00:00",
"function": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"random_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"cycle_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_inching": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_type": {
"type": "Enum",
"value": {
"range": ["flip", "sync", "button"]
}
},
"remote_add": {
"type": "Raw",
"value": {}
},
"remote_list": {
"type": "Raw",
"value": {}
}
},
"status_range": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"random_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"cycle_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_inching": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_type": {
"type": "Enum",
"value": {
"range": ["flip", "sync", "button"]
}
},
"remote_add": {
"type": "Raw",
"value": {}
},
"remote_list": {
"type": "Raw",
"value": {}
}
},
"status": {
"switch_1": false,
"countdown_1": 0,
"relay_status": 2,
"random_time": "",
"cycle_time": "",
"switch_inching": "AAAC",
"switch_type": "button",
"remote_add": "",
"remote_list": "AA=="
},
"set_up": true,
"support_local": true
}

View File

@@ -0,0 +1,227 @@
{
"endpoint": "https://apigw.tuyain.com",
"terminal_id": "REDACTED",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "d7ca553b5f406266350poc",
"name": "Seating side 6-ch Smart Switch ",
"category": "tdq",
"product_id": "nockvv2k39vbrxxk",
"product_name": "6 Switch Smart RetroFit Module",
"online": true,
"sub": false,
"time_zone": "+05:30",
"active_time": "2025-05-12T06:36:18+00:00",
"create_time": "2025-05-12T06:36:18+00:00",
"update_time": "2025-05-12T06:36:18+00:00",
"function": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"switch_2": {
"type": "Boolean",
"value": {}
},
"switch_3": {
"type": "Boolean",
"value": {}
},
"switch_4": {
"type": "Boolean",
"value": {}
},
"switch_5": {
"type": "Boolean",
"value": {}
},
"switch_6": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_2": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_3": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_4": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_5": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_6": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"child_lock": {
"type": "Boolean",
"value": {}
}
},
"status_range": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"switch_2": {
"type": "Boolean",
"value": {}
},
"switch_3": {
"type": "Boolean",
"value": {}
},
"switch_4": {
"type": "Boolean",
"value": {}
},
"switch_5": {
"type": "Boolean",
"value": {}
},
"switch_6": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_2": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_3": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_4": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_5": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"countdown_6": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"child_lock": {
"type": "Boolean",
"value": {}
}
},
"status": {
"switch_1": false,
"switch_2": true,
"switch_3": false,
"switch_4": true,
"switch_5": false,
"switch_6": true,
"countdown_1": 0,
"countdown_2": 0,
"countdown_3": 0,
"countdown_4": 0,
"countdown_5": 0,
"countdown_6": 0,
"child_lock": false
},
"set_up": true,
"support_local": true
}

View File

@@ -0,0 +1,169 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "REDACTED",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bf0dc19ab84dc3627ep2un",
"name": "Socket3",
"category": "tdq",
"product_id": "pu8uhxhwcp3tgoz7",
"product_name": "Smart Plug +",
"online": false,
"sub": false,
"time_zone": "+01:00",
"active_time": "2025-01-16T18:48:20+00:00",
"create_time": "2025-01-16T18:48:20+00:00",
"update_time": "2025-01-16T18:48:20+00:00",
"function": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"random_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"cycle_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_inching": {
"type": "String",
"value": {
"maxlen": 255
}
}
},
"status_range": {
"switch_1": {
"type": "Boolean",
"value": {}
},
"countdown_1": {
"type": "Integer",
"value": {
"unit": "s",
"min": 0,
"max": 86400,
"scale": 0,
"step": 1
}
},
"add_ele": {
"type": "Integer",
"value": {
"unit": "kW·h",
"min": 0,
"max": 50000,
"scale": 3,
"step": 100
}
},
"cur_current": {
"type": "Integer",
"value": {
"unit": "mA",
"min": 0,
"max": 30000,
"scale": 0,
"step": 1
}
},
"cur_power": {
"type": "Integer",
"value": {
"unit": "W",
"min": 0,
"max": 50000,
"scale": 1,
"step": 1
}
},
"cur_voltage": {
"type": "Integer",
"value": {
"unit": "V",
"min": 0,
"max": 5000,
"scale": 1,
"step": 1
}
},
"test_bit": {
"type": "Integer",
"value": {
"min": 0,
"max": 5,
"scale": 0,
"step": 1
}
},
"fault": {
"type": "Bitmap",
"value": {
"label": ["ov_cr", "ov_vol", "ov_pwr", "ls_cr", "ls_vol", "ls_pow"]
}
},
"relay_status": {
"type": "Enum",
"value": {
"range": ["0", "1", "2"]
}
},
"random_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"cycle_time": {
"type": "String",
"value": {
"maxlen": 255
}
},
"switch_inching": {
"type": "String",
"value": {
"maxlen": 255
}
}
},
"status": {
"switch_1": true,
"countdown_1": 0,
"add_ele": 1,
"cur_current": 0,
"cur_power": 0,
"cur_voltage": 2381,
"test_bit": 2,
"fault": 0,
"relay_status": 2,
"random_time": "",
"cycle_time": "",
"switch_inching": "AAAC"
},
"set_up": true,
"support_local": true
}

View File

@@ -0,0 +1,23 @@
{
"endpoint": "https://apigw.tuyaeu.com",
"terminal_id": "REDACTED",
"mqtt_connected": true,
"disabled_by": null,
"disabled_polling": false,
"id": "bfb3c90d87dac93d2bdxn3",
"name": "Living room left",
"category": "tdq",
"product_id": "uoa3mayicscacseb",
"product_name": "Curtain switch",
"online": true,
"sub": false,
"time_zone": "+01:00",
"active_time": "2024-10-30T16:55:40+00:00",
"create_time": "2024-10-30T16:55:40+00:00",
"update_time": "2024-10-30T16:55:40+00:00",
"function": {},
"status_range": {},
"status": {},
"set_up": false,
"support_local": true
}

View File

@@ -1301,6 +1301,124 @@
'state': 'unknown',
})
# ---
# name: test_platform_setup_and_discovery[tdq_1aegphq4yfd50e6b][select.jardin_fraises_power_on_behavior-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'0',
'1',
'2',
]),
}),
'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.jardin_fraises_power_on_behavior',
'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': 'Power on behavior',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'relay_status',
'unique_id': 'tuya.bfa008a4f82a56616c69uzrelay_status',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_1aegphq4yfd50e6b][select.jardin_fraises_power_on_behavior-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'jardin Fraises Power on behavior',
'options': list([
'0',
'1',
'2',
]),
}),
'context': <ANY>,
'entity_id': 'select.jardin_fraises_power_on_behavior',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_platform_setup_and_discovery[tdq_9htyiowaf5rtdhrv][select.framboisiers_power_on_behavior-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'0',
'1',
'2',
]),
}),
'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.framboisiers_power_on_behavior',
'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': 'Power on behavior',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'relay_status',
'unique_id': 'tuya.bff35871a2f4430058vs8urelay_status',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_9htyiowaf5rtdhrv][select.framboisiers_power_on_behavior-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Framboisiers Power on behavior',
'options': list([
'0',
'1',
'2',
]),
}),
'context': <ANY>,
'entity_id': 'select.framboisiers_power_on_behavior',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_platform_setup_and_discovery[tdq_cq1p0nt0a4rixnex][select.4_433_power_on_behavior-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@@ -1360,3 +1478,62 @@
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][select.socket3_power_on_behavior-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'options': list([
'0',
'1',
'2',
]),
}),
'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.socket3_power_on_behavior',
'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': 'Power on behavior',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'relay_status',
'unique_id': 'tuya.bf0dc19ab84dc3627ep2unrelay_status',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][select.socket3_power_on_behavior-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Socket3 Power on behavior',
'options': list([
'0',
'1',
'2',
]),
}),
'context': <ANY>,
'entity_id': 'select.socket3_power_on_behavior',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---

View File

@@ -3624,6 +3624,180 @@
'state': '80.0',
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][sensor.socket3_current-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.socket3_current',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 2,
}),
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfElectricCurrent.AMPERE: 'A'>,
}),
}),
'original_device_class': <SensorDeviceClass.CURRENT: 'current'>,
'original_icon': None,
'original_name': 'Current',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'current',
'unique_id': 'tuya.bf0dc19ab84dc3627ep2uncur_current',
'unit_of_measurement': <UnitOfElectricCurrent.AMPERE: 'A'>,
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][sensor.socket3_current-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'current',
'friendly_name': 'Socket3 Current',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfElectricCurrent.AMPERE: 'A'>,
}),
'context': <ANY>,
'entity_id': 'sensor.socket3_current',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][sensor.socket3_power-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.socket3_power',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
}),
}),
'original_device_class': <SensorDeviceClass.POWER: 'power'>,
'original_icon': None,
'original_name': 'Power',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'power',
'unique_id': 'tuya.bf0dc19ab84dc3627ep2uncur_power',
'unit_of_measurement': 'W',
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][sensor.socket3_power-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'power',
'friendly_name': 'Socket3 Power',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'W',
}),
'context': <ANY>,
'entity_id': 'sensor.socket3_power',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][sensor.socket3_voltage-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.socket3_voltage',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor': dict({
'suggested_display_precision': 0,
}),
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfElectricPotential.VOLT: 'V'>,
}),
}),
'original_device_class': <SensorDeviceClass.VOLTAGE: 'voltage'>,
'original_icon': None,
'original_name': 'Voltage',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'voltage',
'unique_id': 'tuya.bf0dc19ab84dc3627ep2uncur_voltage',
'unit_of_measurement': <UnitOfElectricPotential.VOLT: 'V'>,
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][sensor.socket3_voltage-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'voltage',
'friendly_name': 'Socket3 Voltage',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfElectricPotential.VOLT: 'V'>,
}),
'context': <ANY>,
'entity_id': 'sensor.socket3_voltage',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[tyndj_pyakuuoc][sensor.solar_zijpad_battery-entry]
EntityRegistryEntrySnapshot({
'aliases': set({

View File

@@ -2510,6 +2510,104 @@
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_1aegphq4yfd50e6b][switch.jardin_fraises_switch_1-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': None,
'entity_id': 'switch.jardin_fraises_switch_1',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 1',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.bfa008a4f82a56616c69uzswitch_1',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_1aegphq4yfd50e6b][switch.jardin_fraises_switch_1-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'jardin Fraises Switch 1',
}),
'context': <ANY>,
'entity_id': 'switch.jardin_fraises_switch_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_9htyiowaf5rtdhrv][switch.framboisiers_switch_1-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': None,
'entity_id': 'switch.framboisiers_switch_1',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 1',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.bff35871a2f4430058vs8uswitch_1',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_9htyiowaf5rtdhrv][switch.framboisiers_switch_1-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Framboisiers Switch 1',
}),
'context': <ANY>,
'entity_id': 'switch.framboisiers_switch_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_cq1p0nt0a4rixnex][switch.4_433_switch_1-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@@ -2706,6 +2804,397 @@
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_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.seating_side_6_ch_smart_switch_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': None,
'original_name': 'Child lock',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'child_lock',
'unique_id': 'tuya.d7ca553b5f406266350pocchild_lock',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_child_lock-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Seating side 6-ch Smart Switch Child lock',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_child_lock',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_1-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': None,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_1',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 1',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.d7ca553b5f406266350pocswitch_1',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_1-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Seating side 6-ch Smart Switch Switch 1',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_2-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': None,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_2',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 2',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.d7ca553b5f406266350pocswitch_2',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_2-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Seating side 6-ch Smart Switch Switch 2',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_2',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_3-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': None,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_3',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 3',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.d7ca553b5f406266350pocswitch_3',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_3-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Seating side 6-ch Smart Switch Switch 3',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_3',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_4-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': None,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_4',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 4',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.d7ca553b5f406266350pocswitch_4',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_4-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Seating side 6-ch Smart Switch Switch 4',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_4',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_5-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': None,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_5',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 5',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.d7ca553b5f406266350pocswitch_5',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_5-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Seating side 6-ch Smart Switch Switch 5',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_5',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_6-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': None,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_6',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 6',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.d7ca553b5f406266350pocswitch_6',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_nockvv2k39vbrxxk][switch.seating_side_6_ch_smart_switch_switch_6-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Seating side 6-ch Smart Switch Switch 6',
}),
'context': <ANY>,
'entity_id': 'switch.seating_side_6_ch_smart_switch_switch_6',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][switch.socket3_switch_1-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': None,
'entity_id': 'switch.socket3_switch_1',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
'original_icon': None,
'original_name': 'Switch 1',
'platform': 'tuya',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'indexed_switch',
'unique_id': 'tuya.bf0dc19ab84dc3627ep2unswitch_1',
'unit_of_measurement': None,
})
# ---
# name: test_platform_setup_and_discovery[tdq_pu8uhxhwcp3tgoz7][switch.socket3_switch_1-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'outlet',
'friendly_name': 'Socket3 Switch 1',
}),
'context': <ANY>,
'entity_id': 'switch.socket3_switch_1',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unavailable',
})
# ---
# name: test_platform_setup_and_discovery[tyndj_pyakuuoc][switch.solar_zijpad_energy_saving-entry]
EntityRegistryEntrySnapshot({
'aliases': set({