Skip to content

Add diagnostics support to Tuya#64374

Merged
balloob merged 2 commits intodevfrom
frenck-2022-0189
Jan 18, 2022
Merged

Add diagnostics support to Tuya#64374
balloob merged 2 commits intodevfrom
frenck-2022-0189

Conversation

@frenck
Copy link
Copy Markdown
Member

@frenck frenck commented Jan 18, 2022

Proposed change

Add diagnostics support to the Tuya integration.

Example dump:

{
    "endpoint": "https://openapi.tuyaeu.com",
    "auth_type": 0,
    "country_code": "31",
    "app_type": "tuyaSmart",
    "mqtt_connected": true,
    "disabled_by": null,
    "disabled_polling": false,
    "devices": [
        {
            "name": "LPL-15",
            "model": "LPL-15",
            "category": "qn",
            "product_id": "20qAGCEd0AxowwTA",
            "product_name": " Your Eurom Heater",
            "online": false,
            "sub": false,
            "time_zone": "+01:00",
            "active_time": "2021-10-04T13:12:16+00:00",
            "create_time": "2021-10-04T13:12:16+00:00",
            "update_time": "2021-12-12T15:46:09+00:00",
            "function": {
                "temp_set": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u2103",
                        "min": 0,
                        "max": 37,
                        "scale": 0,
                        "step": 1
                    }
                },
                "switch": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status_range": {
                "temp_current": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u2103",
                        "min": -9,
                        "max": 99,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temp_set": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u2103",
                        "min": 0,
                        "max": 37,
                        "scale": 0,
                        "step": 1
                    }
                },
                "switch": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status": {
                "switch": false,
                "temp_set": 23,
                "temp_current": 18
            },
            "home_assistant": {
                "name": " Your Eurom Heater",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "climate.your_eurom_heater",
                            "state": "unavailable",
                            "attributes": {
                                "hvac_modes": [
                                    "off",
                                    "heat"
                                ],
                                "min_temp": 0.0,
                                "max_temp": 37.0,
                                "target_temp_step": 1.0,
                                "friendly_name": " Your Eurom Heater",
                                "supported_features": 1
                            },
                            "last_changed": "2022-01-18T18:54:13.624417+00:00",
                            "last_updated": "2022-01-18T18:54:13.624417+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "",
            "model": "",
            "category": "sd",
            "product_id": "a6aigiyebahydi9q",
            "product_name": "Test stofzuigert",
            "online": true,
            "sub": false,
            "time_zone": "",
            "active_time": "2021-11-24T19:50:01+00:00",
            "create_time": "2021-11-24T19:50:01+00:00",
            "update_time": "2021-11-24T19:50:01+00:00",
            "function": {
                "power": {
                    "type": "Boolean",
                    "value": {}
                },
                "power_go": {
                    "type": "Boolean",
                    "value": {}
                },
                "mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "standby",
                            "random",
                            "smart",
                            "wall_follow",
                            "mop",
                            "spiral",
                            "left_spiral",
                            "right_spiral",
                            "left_bow",
                            "right_bow",
                            "partial_bow",
                            "chargego"
                        ]
                    }
                },
                "direction_control": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "forward",
                            "backward",
                            "turn_left",
                            "turn_right",
                            "stop"
                        ]
                    }
                },
                "reset_edge_brush": {
                    "type": "Boolean",
                    "value": {}
                },
                "reset_roll_brush": {
                    "type": "Boolean",
                    "value": {}
                },
                "reset_filter": {
                    "type": "Boolean",
                    "value": {}
                },
                "seek": {
                    "type": "Boolean",
                    "value": {}
                },
                "suction": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "gentle",
                            "normal",
                            "strong"
                        ]
                    }
                },
                "cistern": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "low",
                            "middle",
                            "high"
                        ]
                    }
                },
                "reset_duster_cloth": {
                    "type": "Boolean",
                    "value": {}
                },
                "volume_set": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "language": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "chinese_simplified",
                            "chinese_traditional",
                            "english",
                            "german",
                            "french",
                            "russian",
                            "spanish",
                            "korean",
                            "latin",
                            "portuguese",
                            "japanese",
                            "italian"
                        ]
                    }
                }
            },
            "status_range": {
                "power": {
                    "type": "Boolean",
                    "value": {}
                },
                "power_go": {
                    "type": "Boolean",
                    "value": {}
                },
                "mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "standby",
                            "random",
                            "smart",
                            "wall_follow",
                            "mop",
                            "spiral",
                            "left_spiral",
                            "right_spiral",
                            "left_bow",
                            "right_bow",
                            "partial_bow",
                            "chargego"
                        ]
                    }
                },
                "direction_control": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "forward",
                            "backward",
                            "turn_left",
                            "turn_right",
                            "stop"
                        ]
                    }
                },
                "status": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "standby",
                            "smart_clean",
                            "wall_clean",
                            "spot_clean",
                            "mop_clean",
                            "goto_charge",
                            "charging",
                            "charge_done",
                            "paused",
                            "cleaning",
                            "sleep"
                        ]
                    }
                },
                "electricity_left": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "edge_brush": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "roll_brush": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "filter": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "reset_edge_brush": {
                    "type": "Boolean",
                    "value": {}
                },
                "reset_roll_brush": {
                    "type": "Boolean",
                    "value": {}
                },
                "reset_filter": {
                    "type": "Boolean",
                    "value": {}
                },
                "seek": {
                    "type": "Boolean",
                    "value": {}
                },
                "suction": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "gentle",
                            "normal",
                            "strong"
                        ]
                    }
                },
                "clean_record": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                },
                "clean_area": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u33a1",
                        "min": 0,
                        "max": 9999,
                        "scale": 0,
                        "step": 1
                    }
                },
                "clean_time": {
                    "type": "Integer",
                    "value": {
                        "unit": "min",
                        "min": 0,
                        "max": 9999,
                        "scale": 0,
                        "step": 1
                    }
                },
                "fault": {
                    "type": "Bitmap",
                    "value": {
                        "label": [
                            "edge_sweep",
                            "middle_sweep",
                            "left_wheel",
                            "right_wheel",
                            "garbage_box",
                            "land_check",
                            "collision"
                        ]
                    }
                },
                "cistern": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "closed",
                            "low",
                            "middle",
                            "high"
                        ]
                    }
                },
                "duster_cloth": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "reset_duster_cloth": {
                    "type": "Boolean",
                    "value": {}
                },
                "total_clean_area": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u33a1",
                        "min": 0,
                        "max": 99999999,
                        "scale": 0,
                        "step": 1
                    }
                },
                "total_clean_count": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 99999999,
                        "scale": 0,
                        "step": 1
                    }
                },
                "total_clean_time": {
                    "type": "Integer",
                    "value": {
                        "unit": "min",
                        "min": 0,
                        "max": 99999999,
                        "scale": 0,
                        "step": 1
                    }
                },
                "volume_set": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "language": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "chinese_simplified",
                            "chinese_traditional",
                            "english",
                            "german",
                            "french",
                            "russian",
                            "spanish",
                            "korean",
                            "latin",
                            "portuguese",
                            "japanese",
                            "italian"
                        ]
                    }
                }
            },
            "status": {
                "power": false,
                "power_go": false,
                "mode": "standby",
                "direction_control": "forward",
                "status": "standby",
                "electricity_left": 0,
                "edge_brush": 0,
                "roll_brush": 0,
                "filter": 0,
                "reset_edge_brush": true,
                "reset_roll_brush": true,
                "reset_filter": true,
                "seek": false,
                "suction": "gentle",
                "clean_record": "",
                "clean_area": 0,
                "clean_time": 0,
                "fault": 0,
                "cistern": "closed",
                "duster_cloth": 0,
                "reset_duster_cloth": true,
                "total_clean_area": 0,
                "total_clean_count": 0,
                "total_clean_time": 0,
                "volume_set": 46,
                "language": "chinese_simplified"
            },
            "home_assistant": {
                "name": "Test stofzuigert-vdevo",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:restart",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "button.test_stofzuigert_vdevo_reset_duster_cloth",
                            "state": "unknown",
                            "attributes": {
                                "icon": "mdi:restart",
                                "friendly_name": "Test stofzuigert-vdevo Reset Duster Cloth"
                            },
                            "last_changed": "2022-01-18T18:54:13.900074+00:00",
                            "last_updated": "2022-01-18T18:54:13.900074+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:restart",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "button.test_stofzuigert_vdevo_reset_edge_brush",
                            "state": "unknown",
                            "attributes": {
                                "icon": "mdi:restart",
                                "friendly_name": "Test stofzuigert-vdevo Reset Edge Brush"
                            },
                            "last_changed": "2022-01-18T18:54:13.900954+00:00",
                            "last_updated": "2022-01-18T18:54:13.900954+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:air-filter",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "button.test_stofzuigert_vdevo_reset_filter",
                            "state": "unknown",
                            "attributes": {
                                "icon": "mdi:air-filter",
                                "friendly_name": "Test stofzuigert-vdevo Reset Filter"
                            },
                            "last_changed": "2022-01-18T18:54:13.901445+00:00",
                            "last_updated": "2022-01-18T18:54:13.901445+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:restart",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "button.test_stofzuigert_vdevo_reset_roll_brush",
                            "state": "unknown",
                            "attributes": {
                                "icon": "mdi:restart",
                                "friendly_name": "Test stofzuigert-vdevo Reset Roll Brush"
                            },
                            "last_changed": "2022-01-18T18:54:13.901930+00:00",
                            "last_updated": "2022-01-18T18:54:13.901930+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:volume-high",
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "number.test_stofzuigert_vdevo_volume",
                            "state": "46.0",
                            "attributes": {
                                "min": 0.0,
                                "max": 100.0,
                                "step": 1.0,
                                "mode": "auto",
                                "unit_of_measurement": "%",
                                "icon": "mdi:volume-high",
                                "friendly_name": "Test stofzuigert-vdevo Volume"
                            },
                            "last_changed": "2022-01-18T18:54:13.632397+00:00",
                            "last_updated": "2022-01-18T18:54:13.632397+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "vacuum.test_stofzuigert_vdevo",
                            "state": "idle",
                            "attributes": {
                                "fan_speed_list": [
                                    "gentle",
                                    "normal",
                                    "strong"
                                ],
                                "battery_level": null,
                                "battery_icon": "mdi:battery-unknown",
                                "fan_speed": "gentle",
                                "friendly_name": "Test stofzuigert-vdevo",
                                "supported_features": 13035
                            },
                            "last_changed": "2022-01-18T18:54:13.653913+00:00",
                            "last_updated": "2022-01-18T18:54:13.653913+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__vacuum_cistern",
                        "icon": null,
                        "original_icon": "mdi:water-opacity",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.test_stofzuigert_vdevo_water_tank_adjustment",
                            "state": "closed",
                            "attributes": {
                                "options": [
                                    "closed",
                                    "low",
                                    "middle",
                                    "high"
                                ],
                                "device_class": "tuya__vacuum_cistern",
                                "icon": "mdi:water-opacity",
                                "friendly_name": "Test stofzuigert-vdevo Water Tank Adjustment"
                            },
                            "last_changed": "2022-01-18T18:54:13.634852+00:00",
                            "last_updated": "2022-01-18T18:54:13.634852+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__vacuum_mode",
                        "icon": null,
                        "original_icon": "mdi:layers-outline",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.test_stofzuigert_vdevo_mode",
                            "state": "standby",
                            "attributes": {
                                "options": [
                                    "standby",
                                    "random",
                                    "smart",
                                    "wall_follow",
                                    "mop",
                                    "spiral",
                                    "left_spiral",
                                    "right_spiral",
                                    "left_bow",
                                    "right_bow",
                                    "partial_bow",
                                    "chargego"
                                ],
                                "device_class": "tuya__vacuum_mode",
                                "icon": "mdi:layers-outline",
                                "friendly_name": "Test stofzuigert-vdevo Mode"
                            },
                            "last_changed": "2022-01-18T18:54:13.635372+00:00",
                            "last_updated": "2022-01-18T18:54:13.635372+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:texture-box",
                        "unit_of_measurement": "\u33a1",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_cleaning_area",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "\u33a1",
                                "icon": "mdi:texture-box",
                                "friendly_name": "Test stofzuigert-vdevo Cleaning Area"
                            },
                            "last_changed": "2022-01-18T18:54:13.641523+00:00",
                            "last_updated": "2022-01-18T18:54:13.641523+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:progress-clock",
                        "unit_of_measurement": "min",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_cleaning_time",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "min",
                                "icon": "mdi:progress-clock",
                                "friendly_name": "Test stofzuigert-vdevo Cleaning Time"
                            },
                            "last_changed": "2022-01-18T18:54:13.642041+00:00",
                            "last_updated": "2022-01-18T18:54:13.642041+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:texture-box",
                        "unit_of_measurement": "\u33a1",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_total_cleaning_area",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "total_increasing",
                                "unit_of_measurement": "\u33a1",
                                "icon": "mdi:texture-box",
                                "friendly_name": "Test stofzuigert-vdevo Total Cleaning Area"
                            },
                            "last_changed": "2022-01-18T18:54:13.642576+00:00",
                            "last_updated": "2022-01-18T18:54:13.642576+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:history",
                        "unit_of_measurement": "min",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_total_cleaning_time",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "total_increasing",
                                "unit_of_measurement": "min",
                                "icon": "mdi:history",
                                "friendly_name": "Test stofzuigert-vdevo Total Cleaning Time"
                            },
                            "last_changed": "2022-01-18T18:54:13.643092+00:00",
                            "last_updated": "2022-01-18T18:54:13.643092+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:counter",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_total_cleaning_times",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "total_increasing",
                                "icon": "mdi:counter",
                                "friendly_name": "Test stofzuigert-vdevo Total Cleaning Times"
                            },
                            "last_changed": "2022-01-18T18:54:13.643597+00:00",
                            "last_updated": "2022-01-18T18:54:13.643597+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:ticket-percent-outline",
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_duster_cloth_life",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "%",
                                "icon": "mdi:ticket-percent-outline",
                                "friendly_name": "Test stofzuigert-vdevo Duster Cloth Life"
                            },
                            "last_changed": "2022-01-18T18:54:13.644105+00:00",
                            "last_updated": "2022-01-18T18:54:13.644105+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:ticket-percent-outline",
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_side_brush_life",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "%",
                                "icon": "mdi:ticket-percent-outline",
                                "friendly_name": "Test stofzuigert-vdevo Side Brush Life"
                            },
                            "last_changed": "2022-01-18T18:54:13.644614+00:00",
                            "last_updated": "2022-01-18T18:54:13.644614+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:ticket-percent-outline",
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_filter_life",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "%",
                                "icon": "mdi:ticket-percent-outline",
                                "friendly_name": "Test stofzuigert-vdevo Filter Life"
                            },
                            "last_changed": "2022-01-18T18:54:13.645186+00:00",
                            "last_updated": "2022-01-18T18:54:13.645186+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:ticket-percent-outline",
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "sensor.test_stofzuigert_vdevo_rolling_brush_life",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "%",
                                "icon": "mdi:ticket-percent-outline",
                                "friendly_name": "Test stofzuigert-vdevo Rolling Brush Life"
                            },
                            "last_changed": "2022-01-18T18:54:13.645683+00:00",
                            "last_updated": "2022-01-18T18:54:13.645683+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "MEKA",
            "model": "MEKA",
            "category": "dd",
            "product_id": "elsdethcwjoapr6v",
            "product_name": "",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-18T08:25:14+00:00",
            "create_time": "2021-10-15T11:11:12+00:00",
            "update_time": "2021-11-03T19:37:14+00:00",
            "function": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                },
                "work_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "white",
                            "colour",
                            "scene",
                            "music"
                        ]
                    }
                },
                "bright_value": {
                    "type": "Integer",
                    "value": {
                        "min": 10,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temp_value": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "colour_data": {
                    "type": "Json",
                    "value": {
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        }
                    }
                },
                "scene_data": {
                    "type": "Json",
                    "value": {
                        "scene_num": {
                            "min": 1,
                            "scale": 0,
                            "max": 8,
                            "step": 1
                        },
                        "scene_units": {
                            "unit_change_mode": {
                                "range": [
                                    "static",
                                    "jump",
                                    "gradient"
                                ]
                            },
                            "unit_switch_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "unit_gradient_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "bright": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "temperature": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "h": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 360,
                                "step": 1
                            },
                            "s": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            },
                            "v": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            }
                        }
                    }
                },
                "countdown": {
                    "type": "Integer",
                    "value": {
                        "unit": "s",
                        "min": 0,
                        "max": 86400,
                        "scale": 0,
                        "step": 1
                    }
                },
                "music_data": {
                    "type": "Json",
                    "value": {
                        "change_mode": {
                            "range": [
                                "direct",
                                "gradient"
                            ]
                        },
                        "bright": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "temperature": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        }
                    }
                },
                "control_data": {
                    "type": "Json",
                    "value": {
                        "change_mode": {
                            "range": [
                                "direct",
                                "gradient"
                            ]
                        },
                        "bright": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "temperature": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        }
                    }
                }
            },
            "status_range": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                },
                "work_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "white",
                            "colour",
                            "scene",
                            "music"
                        ]
                    }
                },
                "bright_value": {
                    "type": "Integer",
                    "value": {
                        "min": 10,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temp_value": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "colour_data": {
                    "type": "Json",
                    "value": {
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        }
                    }
                },
                "scene_data": {
                    "type": "Json",
                    "value": {
                        "scene_num": {
                            "min": 1,
                            "scale": 0,
                            "max": 8,
                            "step": 1
                        },
                        "scene_units": {
                            "unit_change_mode": {
                                "range": [
                                    "static",
                                    "jump",
                                    "gradient"
                                ]
                            },
                            "unit_switch_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "unit_gradient_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "bright": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "temperature": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "h": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 360,
                                "step": 1
                            },
                            "s": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            },
                            "v": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            }
                        }
                    }
                },
                "countdown": {
                    "type": "Integer",
                    "value": {
                        "unit": "s",
                        "min": 0,
                        "max": 86400,
                        "scale": 0,
                        "step": 1
                    }
                }
            },
            "status": {
                "switch_led": true,
                "work_mode": "colour",
                "bright_value": 336,
                "temp_value": 1000,
                "colour_data": {
                    "h": 0,
                    "s": 1000,
                    "v": 1000
                },
                "scene_data": {
                    "scene_num": 1,
                    "scene_units": [
                        {
                            "bright": 200,
                            "h": 0,
                            "s": 0,
                            "temperature": 0,
                            "unit_change_mode": "static",
                            "unit_gradient_duration": 13,
                            "unit_switch_duration": 14,
                            "v": 0
                        }
                    ]
                },
                "countdown": 0
            },
            "home_assistant": {
                "name": "LSC Moodlight RGB+CCT",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "light.lsc_moodlight_rgb_cct",
                            "state": "unavailable",
                            "attributes": {
                                "min_mireds": 153,
                                "max_mireds": 500,
                                "supported_color_modes": [
                                    "brightness",
                                    "color_temp",
                                    "hs",
                                    "onoff"
                                ],
                                "friendly_name": "LSC Moodlight RGB+CCT",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:13.627472+00:00",
                            "last_updated": "2022-01-18T18:54:13.627472+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "mengniu",
            "model": "mengniu",
            "category": "cz",
            "product_id": "ybcslrwtbwghwhot",
            "product_name": "Smart Plug ",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T11:16:07+00:00",
            "create_time": "2021-10-15T11:16:07+00:00",
            "update_time": "2021-11-03T19:37:06+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": [
                            "power_off",
                            "power_on",
                            "last"
                        ]
                    }
                }
            },
            "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": [
                            "power_off",
                            "power_on",
                            "last"
                        ]
                    }
                }
            },
            "status": {
                "switch_1": true,
                "countdown_1": 0,
                "relay_status": "power_off"
            },
            "home_assistant": {
                "name": "Smart plug",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__relay_status",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.smart_plug_power_on_behavior",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "power_off",
                                    "power_on",
                                    "last"
                                ],
                                "device_class": "tuya__relay_status",
                                "friendly_name": "Smart plug Power on Behavior"
                            },
                            "last_changed": "2022-01-18T18:54:13.636461+00:00",
                            "last_updated": "2022-01-18T18:54:13.636461+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__light_mode",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.smart_plug_indicator_light_mode",
                            "state": "unavailable",
                            "attributes": {
                                "restored": true,
                                "options": [
                                    "relay",
                                    "pos",
                                    "none"
                                ],
                                "device_class": "tuya__light_mode",
                                "friendly_name": "Smart plug Indicator Light Mode",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:23.572491+00:00",
                            "last_updated": "2022-01-18T18:54:23.572491+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:account-lock",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.smart_plug_child_lock",
                            "state": "unavailable",
                            "attributes": {
                                "restored": true,
                                "icon": "mdi:account-lock",
                                "friendly_name": "Smart plug Child Lock",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:23.572803+00:00",
                            "last_updated": "2022-01-18T18:54:23.572803+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": "outlet",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.smart_plug_socket_1",
                            "state": "unavailable",
                            "attributes": {
                                "device_class": "outlet",
                                "friendly_name": "Smart plug Socket 1"
                            },
                            "last_changed": "2022-01-18T18:54:13.648507+00:00",
                            "last_updated": "2022-01-18T18:54:13.648507+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "",
            "model": "",
            "category": "dj",
            "product_id": "eyj9bhggzm50emfd",
            "product_name": "Wifi Christmas light (RGB) ",
            "online": false,
            "sub": false,
            "time_zone": "+01:00",
            "active_time": "2021-10-15T11:42:43+00:00",
            "create_time": "2021-10-15T11:42:43+00:00",
            "update_time": "2021-11-03T19:36:15+00:00",
            "function": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status_range": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status": {
                "switch_led": true
            },
            "home_assistant": {
                "name": "Wifi Christmas light (RGB)",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "light.wifi_christmas_light_rgb",
                            "state": "unavailable",
                            "attributes": {
                                "supported_color_modes": [
                                    "onoff"
                                ],
                                "friendly_name": "Wifi Christmas light (RGB)",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:13.628468+00:00",
                            "last_updated": "2022-01-18T18:54:13.628468+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "MEKA",
            "model": "MEKA",
            "category": "dj",
            "product_id": "uosknlf6fkf8qlsw",
            "product_name": "LSC A60 CCT ",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-18T08:28:31+00:00",
            "create_time": "2021-10-18T08:28:31+00:00",
            "update_time": "2021-11-03T19:34:24+00:00",
            "function": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                },
                "work_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "white",
                            "colour",
                            "scene",
                            "music"
                        ]
                    }
                },
                "bright_value_v2": {
                    "type": "Integer",
                    "value": {
                        "min": 10,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temp_value_v2": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "scene_data_v2": {
                    "type": "Json",
                    "value": {
                        "scene_num": {
                            "min": 1,
                            "scale": 0,
                            "max": 8,
                            "step": 1
                        },
                        "scene_units": {
                            "unit_change_mode": {
                                "range": [
                                    "static",
                                    "jump",
                                    "gradient"
                                ]
                            },
                            "unit_switch_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "unit_gradient_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "bright": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "temperature": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "h": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 360,
                                "step": 1
                            },
                            "s": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            },
                            "v": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            }
                        }
                    }
                },
                "countdown_1": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 86400,
                        "scale": 0,
                        "step": 1
                    }
                },
                "control_data": {
                    "type": "Json",
                    "value": {
                        "change_mode": {
                            "range": [
                                "direct",
                                "gradient"
                            ]
                        },
                        "bright": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "temperature": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        }
                    }
                },
                "rhythm_mode": {
                    "type": "Raw",
                    "value": {
                        "maxlen": 255
                    }
                },
                "sleep_mode": {
                    "type": "Raw",
                    "value": {
                        "maxlen": 255
                    }
                },
                "wakeup_mode": {
                    "type": "Raw",
                    "value": {
                        "maxlen": 255
                    }
                }
            },
            "status_range": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                },
                "work_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "white",
                            "colour",
                            "scene",
                            "music"
                        ]
                    }
                },
                "bright_value_v2": {
                    "type": "Integer",
                    "value": {
                        "min": 10,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temp_value_v2": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "scene_data_v2": {
                    "type": "Json",
                    "value": {
                        "scene_num": {
                            "min": 1,
                            "scale": 0,
                            "max": 8,
                            "step": 1
                        },
                        "scene_units": {
                            "unit_change_mode": {
                                "range": [
                                    "static",
                                    "jump",
                                    "gradient"
                                ]
                            },
                            "unit_switch_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "unit_gradient_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "bright": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "temperature": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "h": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 360,
                                "step": 1
                            },
                            "s": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            },
                            "v": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            }
                        }
                    }
                },
                "countdown_1": {
                    "type": "Integer",
                    "value": {
                        "min": 0,
                        "max": 86400,
                        "scale": 0,
                        "step": 1
                    }
                },
                "control_data": {
                    "type": "Json",
                    "value": {
                        "change_mode": {
                            "range": [
                                "direct",
                                "gradient"
                            ]
                        },
                        "bright": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "temperature": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 255,
                            "step": 1
                        }
                    }
                },
                "rhythm_mode": {
                    "type": "Raw",
                    "value": {
                        "maxlen": "255"
                    }
                },
                "sleep_mode": {
                    "type": "Raw",
                    "value": {
                        "maxlen": "255"
                    }
                },
                "wakeup_mode": {
                    "type": "Raw",
                    "value": {
                        "maxlen": "255"
                    }
                }
            },
            "status": {
                "switch_led": true,
                "work_mode": "white",
                "bright_value_v2": 961,
                "temp_value_v2": 84,
                "scene_data_v2": {
                    "scene_num": 1,
                    "scene_units": [
                        {
                            "bright": 200,
                            "h": 0,
                            "s": 0,
                            "temperature": 0,
                            "unit_change_mode": "static",
                            "unit_gradient_duration": 13,
                            "unit_switch_duration": 14,
                            "v": 0
                        }
                    ]
                },
                "countdown_1": 0,
                "control_data": "",
                "rhythm_mode": "AAAAAAA=",
                "sleep_mode": "AAA=",
                "wakeup_mode": "AAA="
            },
            "home_assistant": {
                "name": "LSC A60 CCT",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "light.lsc_a60_cct",
                            "state": "unavailable",
                            "attributes": {
                                "min_mireds": 153,
                                "max_mireds": 500,
                                "supported_color_modes": [
                                    "brightness",
                                    "color_temp",
                                    "onoff"
                                ],
                                "friendly_name": "LSC A60 CCT",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:13.629452+00:00",
                            "last_updated": "2022-01-18T18:54:13.629452+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "",
            "model": "",
            "category": "sp",
            "product_id": "wkyfpsgtzkrjmsgr",
            "product_name": "Wifi video doorbell ",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T11:18:09+00:00",
            "create_time": "2021-10-15T11:18:09+00:00",
            "update_time": "2021-11-03T19:32:29+00:00",
            "function": {
                "basic_indicator": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_flip": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_osd": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_sensitivity": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "basic_nightvision": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "sd_format": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "record_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "record_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "1",
                            "2"
                        ]
                    }
                },
                "doorbell_ring_exist": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1"
                        ]
                    }
                },
                "chime_ring_tune": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ]
                    }
                },
                "chime_ring_volume": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 0,
                        "max": 100,
                        "scale": 1,
                        "step": 1
                    }
                },
                "basic_device_volume": {
                    "type": "Integer",
                    "value": {
                        "min": 1,
                        "max": 10,
                        "scale": 0,
                        "step": 1
                    }
                },
                "chime_settings": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "2"
                        ]
                    }
                },
                "motion_area_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_area": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                }
            },
            "status_range": {
                "basic_indicator": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_flip": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_osd": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_sensitivity": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "basic_nightvision": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "sd_storge": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                },
                "sd_status": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 1,
                        "max": 5,
                        "scale": 1,
                        "step": 1
                    }
                },
                "sd_format": {
                    "type": "Boolean",
                    "value": {}
                },
                "movement_detect_pic": {
                    "type": "Raw",
                    "value": {}
                },
                "sd_format_state": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": -20000,
                        "max": 20000,
                        "scale": 1,
                        "step": 1
                    }
                },
                "motion_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "doorbell_active": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                },
                "record_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "record_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "1",
                            "2"
                        ]
                    }
                },
                "doorbell_pic": {
                    "type": "Raw",
                    "value": {}
                },
                "doorbell_ring_exist": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1"
                        ]
                    }
                },
                "chime_ring_tune": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "1",
                            "2",
                            "3",
                            "4"
                        ]
                    }
                },
                "chime_ring_volume": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 0,
                        "max": 100,
                        "scale": 1,
                        "step": 1
                    }
                },
                "basic_device_volume": {
                    "type": "Integer",
                    "value": {
                        "min": 1,
                        "max": 10,
                        "scale": 0,
                        "step": 1
                    }
                },
                "chime_settings": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "2"
                        ]
                    }
                },
                "motion_area_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_area": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                },
                "alarm_message": {
                    "type": "String",
                    "value": {}
                }
            },
            "status": {
                "basic_indicator": true,
                "basic_flip": true,
                "basic_osd": true,
                "motion_sensitivity": 1,
                "basic_nightvision": 1,
                "sd_storge": "0|0|0",
                "sd_status": 5,
                "sd_format": false,
                "movement_detect_pic": "**REDACTED**",
                "sd_format_state": -20000,
                "motion_switch": false,
                "doorbell_active": "",
                "record_switch": true,
                "record_mode": 2,
                "doorbell_pic": "",
                "doorbell_ring_exist": 1,
                "chime_ring_tune": 2,
                "chime_ring_volume": 100,
                "basic_device_volume": 10,
                "chime_settings": 2,
                "motion_area_switch": false,
                "motion_area": "",
                "alarm_message": "**REDACTED**"
            },
            "home_assistant": {
                "name": "Wifi videodeurbel",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "camera.wifi_videodeurbel",
                            "state": "unavailable",
                            "attributes": {
                                "entity_picture": "**REDACTED**",
                                "friendly_name": "Wifi videodeurbel",
                                "supported_features": 2
                            },
                            "last_changed": "2022-01-18T18:54:13.621483+00:00",
                            "last_updated": "2022-01-18T18:59:12.274564+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "light.wifi_videodeurbel_indicator_light",
                            "state": "unavailable",
                            "attributes": {
                                "supported_color_modes": [
                                    "onoff"
                                ],
                                "friendly_name": "Wifi videodeurbel Indicator Light",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:13.629941+00:00",
                            "last_updated": "2022-01-18T18:54:13.629941+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:volume-high",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "number.wifi_videodeurbel_volume",
                            "state": "unavailable",
                            "attributes": {
                                "min": 1.0,
                                "max": 10.0,
                                "step": 1.0,
                                "mode": "auto",
                                "icon": "mdi:volume-high",
                                "friendly_name": "Wifi videodeurbel Volume"
                            },
                            "last_changed": "2022-01-18T18:54:13.632905+00:00",
                            "last_updated": "2022-01-18T18:54:13.632905+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__record_mode",
                        "icon": null,
                        "original_icon": "mdi:record-rec",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.wifi_videodeurbel_record_mode",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "1",
                                    "2"
                                ],
                                "device_class": "tuya__record_mode",
                                "icon": "mdi:record-rec",
                                "friendly_name": "Wifi videodeurbel Record Mode"
                            },
                            "last_changed": "2022-01-18T18:54:13.636963+00:00",
                            "last_updated": "2022-01-18T18:54:13.636963+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__basic_nightvision",
                        "icon": null,
                        "original_icon": "mdi:theme-light-dark",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.wifi_videodeurbel_night_vision",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "0",
                                    "1",
                                    "2"
                                ],
                                "device_class": "tuya__basic_nightvision",
                                "icon": "mdi:theme-light-dark",
                                "friendly_name": "Wifi videodeurbel Night Vision"
                            },
                            "last_changed": "2022-01-18T18:54:13.637465+00:00",
                            "last_updated": "2022-01-18T18:54:13.637465+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__motion_sensitivity",
                        "icon": null,
                        "original_icon": "mdi:motion-sensor",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.wifi_videodeurbel_motion_detection_sensitivity",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "0",
                                    "1",
                                    "2"
                                ],
                                "device_class": "tuya__motion_sensitivity",
                                "icon": "mdi:motion-sensor",
                                "friendly_name": "Wifi videodeurbel Motion Detection Sensitivity"
                            },
                            "last_changed": "2022-01-18T18:54:13.638016+00:00",
                            "last_updated": "2022-01-18T18:54:13.638016+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:record-rec",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.wifi_videodeurbel_video_recording",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:record-rec",
                                "friendly_name": "Wifi videodeurbel Video Recording"
                            },
                            "last_changed": "2022-01-18T18:54:13.648997+00:00",
                            "last_updated": "2022-01-18T18:54:13.648997+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:flip-horizontal",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.wifi_videodeurbel_flip",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:flip-horizontal",
                                "friendly_name": "Wifi videodeurbel Flip"
                            },
                            "last_changed": "2022-01-18T18:54:13.649477+00:00",
                            "last_updated": "2022-01-18T18:54:13.649477+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:watermark",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.wifi_videodeurbel_time_watermark",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:watermark",
                                "friendly_name": "Wifi videodeurbel Time Watermark"
                            },
                            "last_changed": "2022-01-18T18:54:13.649975+00:00",
                            "last_updated": "2022-01-18T18:54:13.649975+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:motion-sensor",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.wifi_videodeurbel_motion_alarm",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:motion-sensor",
                                "friendly_name": "Wifi videodeurbel Motion Alarm"
                            },
                            "last_changed": "2022-01-18T18:54:13.650468+00:00",
                            "last_updated": "2022-01-18T18:54:13.650468+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "A6121",
            "model": "A6121",
            "category": "qt",
            "product_id": "C5IaBuQl",
            "product_name": "Basic WFZIG Panel",
            "online": false,
            "sub": true,
            "time_zone": "+02:00",
            "active_time": "2021-10-16T14:14:01+00:00",
            "create_time": "2021-10-16T14:13:20+00:00",
            "update_time": "2021-11-03T19:32:18+00:00",
            "function": {},
            "status_range": {},
            "status": {},
            "home_assistant": {
                "name": "Basic WFZIG Panel",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": []
            }
        },
        {
            "name": "",
            "model": "",
            "category": "dj",
            "product_id": "s8gkrkxk",
            "product_name": "LED Light Chain",
            "online": false,
            "sub": true,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T19:29:00+00:00",
            "create_time": "2021-10-15T19:29:00+00:00",
            "update_time": "2021-11-03T19:32:18+00:00",
            "function": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                },
                "work_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "white",
                            "colour",
                            "scene",
                            "music"
                        ]
                    }
                },
                "bright_value_v2": {
                    "type": "Integer",
                    "value": {
                        "min": 10,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "colour_data_v2": {
                    "type": "Json",
                    "value": {
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        }
                    }
                },
                "scene_data_v2": {
                    "type": "Json",
                    "value": {
                        "scene_num": {
                            "min": 1,
                            "scale": 0,
                            "max": 8,
                            "step": 1
                        },
                        "scene_units": {
                            "unit_change_mode": {
                                "range": [
                                    "static",
                                    "jump",
                                    "gradient"
                                ]
                            },
                            "unit_switch_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "unit_gradient_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "bright": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "temperature": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "h": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 360,
                                "step": 1
                            },
                            "s": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            },
                            "v": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            }
                        }
                    }
                },
                "countdown_1": {
                    "type": "Integer",
                    "value": {
                        "unit": "s",
                        "min": 0,
                        "max": 43200,
                        "scale": 0,
                        "step": 1
                    }
                }
            },
            "status_range": {
                "switch_led": {
                    "type": "Boolean",
                    "value": {}
                },
                "work_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "white",
                            "colour",
                            "scene",
                            "music"
                        ]
                    }
                },
                "bright_value_v2": {
                    "type": "Integer",
                    "value": {
                        "min": 10,
                        "max": 1000,
                        "scale": 0,
                        "step": 1
                    }
                },
                "colour_data_v2": {
                    "type": "Json",
                    "value": {
                        "h": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 360,
                            "step": 1
                        },
                        "s": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        },
                        "v": {
                            "min": 0,
                            "scale": 0,
                            "unit": "",
                            "max": 1000,
                            "step": 1
                        }
                    }
                },
                "scene_data_v2": {
                    "type": "Json",
                    "value": {
                        "scene_num": {
                            "min": 1,
                            "scale": 0,
                            "max": 8,
                            "step": 1
                        },
                        "scene_units": {
                            "unit_change_mode": {
                                "range": [
                                    "static",
                                    "jump",
                                    "gradient"
                                ]
                            },
                            "unit_switch_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "unit_gradient_duration": {
                                "min": 0,
                                "scale": 0,
                                "max": 100,
                                "step": 1
                            },
                            "bright": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "temperature": {
                                "min": 0,
                                "scale": 0,
                                "max": 1000,
                                "step": 1
                            },
                            "h": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 360,
                                "step": 1
                            },
                            "s": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            },
                            "v": {
                                "min": 0,
                                "scale": 0,
                                "unit": "",
                                "max": 1000,
                                "step": 1
                            }
                        }
                    }
                },
                "countdown_1": {
                    "type": "Integer",
                    "value": {
                        "unit": "s",
                        "min": 0,
                        "max": 43200,
                        "scale": 0,
                        "step": 1
                    }
                }
            },
            "status": {
                "switch_led": true,
                "work_mode": "colour",
                "bright_value_v2": 196,
                "colour_data_v2": {
                    "h": 300,
                    "s": 1000,
                    "v": 251
                },
                "scene_data_v2": {
                    "scene_num": 15,
                    "scene_units": [
                        {
                            "bright": 0,
                            "h": 255,
                            "s": 65280,
                            "temperature": 65535,
                            "unit_change_mode": "static",
                            "unit_gradient_duration": 255,
                            "unit_switch_duration": 50,
                            "v": 255
                        }
                    ]
                },
                "countdown_1": 0
            },
            "home_assistant": {
                "name": "LED-lichtketting",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "light.led_lichtketting",
                            "state": "unavailable",
                            "attributes": {
                                "supported_color_modes": [
                                    "brightness",
                                    "hs",
                                    "onoff"
                                ],
                                "friendly_name": "LED-lichtketting",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:13.630948+00:00",
                            "last_updated": "2022-01-18T18:54:13.630948+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "341805",
            "model": "341805",
            "category": "pir",
            "product_id": "fcdjzz3s",
            "product_name": "Motion sensor",
            "online": false,
            "sub": true,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T15:38:46+00:00",
            "create_time": "2021-10-15T15:38:46+00:00",
            "update_time": "2021-11-03T19:32:18+00:00",
            "function": {},
            "status_range": {
                "pir": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "pir"
                        ]
                    }
                },
                "battery_percentage": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temper_alarm": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status": {
                "pir": "nopir",
                "battery_percentage": 99,
                "temper_alarm": true
            },
            "home_assistant": {
                "name": "Bewegingssensor",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": "motion",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "binary_sensor.bewegingssensor",
                            "state": "unavailable",
                            "attributes": {
                                "device_class": "motion",
                                "friendly_name": "Bewegingssensor"
                            },
                            "last_changed": "2022-01-18T18:54:13.611041+00:00",
                            "last_updated": "2022-01-18T18:54:13.611041+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "diagnostic",
                        "device_class": null,
                        "original_device_class": "tamper",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "binary_sensor.bewegingssensor_tamper",
                            "state": "unavailable",
                            "attributes": {
                                "device_class": "tamper",
                                "friendly_name": "Bewegingssensor Tamper"
                            },
                            "last_changed": "2022-01-18T18:54:13.611555+00:00",
                            "last_updated": "2022-01-18T18:54:13.611555+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "diagnostic",
                        "device_class": null,
                        "original_device_class": "battery",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "sensor.bewegingssensor_battery",
                            "state": "unavailable",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "%",
                                "device_class": "battery",
                                "friendly_name": "Bewegingssensor Battery"
                            },
                            "last_changed": "2022-01-18T18:54:13.646176+00:00",
                            "last_updated": "2022-01-18T18:54:13.646176+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "341809",
            "model": "341809",
            "category": "wfcon",
            "product_id": "b25mh8sxawsgndck",
            "product_name": "ZigBee Gateway",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T15:12:45+00:00",
            "create_time": "2021-10-15T15:12:45+00:00",
            "update_time": "2021-11-03T19:32:18+00:00",
            "function": {},
            "status_range": {},
            "status": {},
            "home_assistant": {
                "name": "ZigBee Gateway",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": []
            }
        },
        {
            "name": "",
            "model": "",
            "category": "pir",
            "product_id": "1vk8kaah",
            "product_name": "Test PIR",
            "online": true,
            "sub": false,
            "time_zone": "",
            "active_time": "2021-10-29T08:42:23+00:00",
            "create_time": "2021-10-29T08:42:23+00:00",
            "update_time": "2021-10-29T08:42:23+00:00",
            "function": {},
            "status_range": {
                "pir": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "pir",
                            "none"
                        ]
                    }
                },
                "battery_percentage": {
                    "type": "Integer",
                    "value": {
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "scale": 0,
                        "step": 1
                    }
                },
                "temper_alarm": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status": {
                "pir": "pir",
                "battery_percentage": 0,
                "temper_alarm": false
            },
            "home_assistant": {
                "name": "Test PIR-vdevo",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": "motion",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "binary_sensor.test_pir_vdevo",
                            "state": "on",
                            "attributes": {
                                "device_class": "motion",
                                "friendly_name": "Test PIR-vdevo"
                            },
                            "last_changed": "2022-01-18T18:54:13.612569+00:00",
                            "last_updated": "2022-01-18T18:54:13.612569+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "diagnostic",
                        "device_class": null,
                        "original_device_class": "tamper",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "binary_sensor.test_pir_vdevo_tamper",
                            "state": "off",
                            "attributes": {
                                "device_class": "tamper",
                                "friendly_name": "Test PIR-vdevo Tamper"
                            },
                            "last_changed": "2022-01-18T18:54:13.613064+00:00",
                            "last_updated": "2022-01-18T18:54:13.613064+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "diagnostic",
                        "device_class": null,
                        "original_device_class": "battery",
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": "%",
                        "state": {
                            "entity_id": "sensor.test_pir_vdevo_battery",
                            "state": "0.0",
                            "attributes": {
                                "state_class": "measurement",
                                "unit_of_measurement": "%",
                                "device_class": "battery",
                                "friendly_name": "Test PIR-vdevo Battery"
                            },
                            "last_changed": "2022-01-18T18:54:13.646696+00:00",
                            "last_updated": "2022-01-18T18:54:13.646696+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "HBUR-0100",
            "model": "HBUR-0100",
            "category": "qt",
            "product_id": "dagbdeg5n9hokayb",
            "product_name": "Hombli Smart IR Remote Control",
            "online": false,
            "sub": false,
            "time_zone": "+01:00",
            "active_time": "2021-10-25T14:54:12+00:00",
            "create_time": "2021-10-25T14:54:12+00:00",
            "update_time": "2021-10-28T20:21:17+00:00",
            "function": {},
            "status_range": {},
            "status": {},
            "home_assistant": {
                "name": "Hombli Smart IR Remote Control",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": []
            }
        },
        {
            "name": "MEARI",
            "model": "MEARI",
            "category": "sp",
            "product_id": "drezasavompxpcgm",
            "product_name": "Indoor camera ",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T11:45:25+00:00",
            "create_time": "2021-10-15T11:45:25+00:00",
            "update_time": "2021-10-27T02:15:06+00:00",
            "function": {
                "basic_indicator": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_flip": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_osd": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_sensitivity": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "basic_nightvision": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "sd_format": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "decibel_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "decibel_sensitivity": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1"
                        ]
                    }
                },
                "record_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "record_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "1",
                            "2"
                        ]
                    }
                }
            },
            "status_range": {
                "basic_indicator": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_flip": {
                    "type": "Boolean",
                    "value": {}
                },
                "basic_osd": {
                    "type": "Boolean",
                    "value": {}
                },
                "motion_sensitivity": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "basic_nightvision": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1",
                            "2"
                        ]
                    }
                },
                "sd_storge": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                },
                "sd_status": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 1,
                        "max": 5,
                        "scale": 1,
                        "step": 1
                    }
                },
                "sd_format": {
                    "type": "Boolean",
                    "value": {}
                },
                "movement_detect_pic": {
                    "type": "Raw",
                    "value": {}
                },
                "sd_format_state": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": -20000,
                        "max": 20000,
                        "scale": 1,
                        "step": 1
                    }
                },
                "motion_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "decibel_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "decibel_sensitivity": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "0",
                            "1"
                        ]
                    }
                },
                "decibel_upload": {
                    "type": "String",
                    "value": {
                        "maxlen": 255
                    }
                },
                "record_switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "record_mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "1",
                            "2"
                        ]
                    }
                }
            },
            "status": {
                "basic_indicator": true,
                "basic_flip": false,
                "basic_osd": true,
                "motion_sensitivity": 1,
                "basic_nightvision": 0,
                "sd_storge": "0|0|0",
                "sd_status": 5,
                "sd_format": true,
                "movement_detect_pic": "**REDACTED**",
                "sd_format_state": 100,
                "motion_switch": false,
                "decibel_switch": false,
                "decibel_sensitivity": 0,
                "decibel_upload": "",
                "record_switch": false,
                "record_mode": 2
            },
            "home_assistant": {
                "name": "LSC Smart Indoor Camera",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "camera.lsc_smart_indoor_camera",
                            "state": "unavailable",
                            "attributes": {
                                "entity_picture": "**REDACTED**",
                                "friendly_name": "LSC Smart Indoor Camera",
                                "supported_features": 2
                            },
                            "last_changed": "2022-01-18T18:54:13.622913+00:00",
                            "last_updated": "2022-01-18T18:59:12.275003+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "light.lsc_smart_indoor_camera_indicator_light",
                            "state": "unavailable",
                            "attributes": {
                                "supported_color_modes": [
                                    "onoff"
                                ],
                                "friendly_name": "LSC Smart Indoor Camera Indicator Light",
                                "supported_features": 0
                            },
                            "last_changed": "2022-01-18T18:54:13.631455+00:00",
                            "last_updated": "2022-01-18T18:54:13.631455+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__decibel_sensitivity",
                        "icon": null,
                        "original_icon": "mdi:volume-vibrate",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.lsc_smart_indoor_camera_sound_detection_sensitivity",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "0",
                                    "1"
                                ],
                                "device_class": "tuya__decibel_sensitivity",
                                "icon": "mdi:volume-vibrate",
                                "friendly_name": "LSC Smart Indoor Camera Sound Detection Sensitivity"
                            },
                            "last_changed": "2022-01-18T18:54:13.638579+00:00",
                            "last_updated": "2022-01-18T18:54:13.638579+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__record_mode",
                        "icon": null,
                        "original_icon": "mdi:record-rec",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.lsc_smart_indoor_camera_record_mode",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "1",
                                    "2"
                                ],
                                "device_class": "tuya__record_mode",
                                "icon": "mdi:record-rec",
                                "friendly_name": "LSC Smart Indoor Camera Record Mode"
                            },
                            "last_changed": "2022-01-18T18:54:13.639088+00:00",
                            "last_updated": "2022-01-18T18:54:13.639088+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__basic_nightvision",
                        "icon": null,
                        "original_icon": "mdi:theme-light-dark",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.lsc_smart_indoor_camera_night_vision",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "0",
                                    "1",
                                    "2"
                                ],
                                "device_class": "tuya__basic_nightvision",
                                "icon": "mdi:theme-light-dark",
                                "friendly_name": "LSC Smart Indoor Camera Night Vision"
                            },
                            "last_changed": "2022-01-18T18:54:13.639582+00:00",
                            "last_updated": "2022-01-18T18:54:13.639582+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": "tuya__motion_sensitivity",
                        "icon": null,
                        "original_icon": "mdi:motion-sensor",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.lsc_smart_indoor_camera_motion_detection_sensitivity",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "0",
                                    "1",
                                    "2"
                                ],
                                "device_class": "tuya__motion_sensitivity",
                                "icon": "mdi:motion-sensor",
                                "friendly_name": "LSC Smart Indoor Camera Motion Detection Sensitivity"
                            },
                            "last_changed": "2022-01-18T18:54:13.640084+00:00",
                            "last_updated": "2022-01-18T18:54:13.640084+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:microphone-outline",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.lsc_smart_indoor_camera_sound_detection",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:microphone-outline",
                                "friendly_name": "LSC Smart Indoor Camera Sound Detection"
                            },
                            "last_changed": "2022-01-18T18:54:13.650984+00:00",
                            "last_updated": "2022-01-18T18:54:13.650984+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:record-rec",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.lsc_smart_indoor_camera_video_recording",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:record-rec",
                                "friendly_name": "LSC Smart Indoor Camera Video Recording"
                            },
                            "last_changed": "2022-01-18T18:54:13.651503+00:00",
                            "last_updated": "2022-01-18T18:54:13.651503+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:flip-horizontal",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.lsc_smart_indoor_camera_flip",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:flip-horizontal",
                                "friendly_name": "LSC Smart Indoor Camera Flip"
                            },
                            "last_changed": "2022-01-18T18:54:13.651977+00:00",
                            "last_updated": "2022-01-18T18:54:13.651977+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:watermark",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.lsc_smart_indoor_camera_time_watermark",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:watermark",
                                "friendly_name": "LSC Smart Indoor Camera Time Watermark"
                            },
                            "last_changed": "2022-01-18T18:54:13.652468+00:00",
                            "last_updated": "2022-01-18T18:54:13.652468+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": "mdi:motion-sensor",
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "switch.lsc_smart_indoor_camera_motion_alarm",
                            "state": "unavailable",
                            "attributes": {
                                "icon": "mdi:motion-sensor",
                                "friendly_name": "LSC Smart Indoor Camera Motion Alarm"
                            },
                            "last_changed": "2022-01-18T18:54:13.652953+00:00",
                            "last_updated": "2022-01-18T18:54:13.652953+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "SR40",
            "model": "SR40",
            "category": "sgbj",
            "product_id": "ulv4nnue7gqp0rjk",
            "product_name": "Siren Sensor",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-15T11:06:12+00:00",
            "create_time": "2021-10-15T11:06:12+00:00",
            "update_time": "2021-10-27T02:14:55+00:00",
            "function": {
                "alarm_volume": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "low",
                            "middle",
                            "high",
                            "mute"
                        ]
                    }
                },
                "alarm_time": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 1,
                        "max": 30,
                        "scale": 0,
                        "step": 1
                    }
                },
                "alarm_switch": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status_range": {
                "alarm_volume": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "low",
                            "middle",
                            "high",
                            "mute"
                        ]
                    }
                },
                "alarm_time": {
                    "type": "Integer",
                    "value": {
                        "unit": "",
                        "min": 1,
                        "max": 30,
                        "scale": 0,
                        "step": 1
                    }
                },
                "alarm_switch": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status": {
                "alarm_volume": "low",
                "alarm_time": 2,
                "alarm_switch": false
            },
            "home_assistant": {
                "name": "Sensor Sirene",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": "",
                        "state": {
                            "entity_id": "number.sensor_sirene_time",
                            "state": "unavailable",
                            "attributes": {
                                "min": 1.0,
                                "max": 30.0,
                                "step": 1.0,
                                "mode": "auto",
                                "unit_of_measurement": "",
                                "friendly_name": "Sensor Sirene Time"
                            },
                            "last_changed": "2022-01-18T18:54:13.633885+00:00",
                            "last_updated": "2022-01-18T18:54:13.633885+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": "config",
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "select.sensor_sirene_volume",
                            "state": "unavailable",
                            "attributes": {
                                "options": [
                                    "low",
                                    "middle",
                                    "high",
                                    "mute"
                                ],
                                "friendly_name": "Sensor Sirene Volume"
                            },
                            "last_changed": "2022-01-18T18:54:13.640573+00:00",
                            "last_updated": "2022-01-18T18:54:13.640573+00:00"
                        }
                    },
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "siren.sensor_sirene_siren",
                            "state": "unavailable",
                            "attributes": {
                                "friendly_name": "Sensor Sirene Siren",
                                "supported_features": 3
                            },
                            "last_changed": "2022-01-18T18:54:13.647590+00:00",
                            "last_updated": "2022-01-18T18:54:13.647590+00:00"
                        }
                    }
                ]
            }
        },
        {
            "name": "KN",
            "model": "KN",
            "category": "kt",
            "product_id": "Qfsj8XQy7JvQIOEv",
            "product_name": "Portable\u00a0Air\u00a0Conditioner",
            "online": false,
            "sub": false,
            "time_zone": "+02:00",
            "active_time": "2021-10-05T09:35:46+00:00",
            "create_time": "2018-07-18T16:40:30+00:00",
            "update_time": "2021-10-25T14:43:44+00:00",
            "function": {
                "switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "auto",
                            "cold",
                            "hot",
                            "wet",
                            "wind"
                        ]
                    }
                },
                "temp_set": {
                    "type": "Integer",
                    "value": {
                        "min": 13,
                        "scale": 0,
                        "unit": "\u2103",
                        "max": 32,
                        "step": 1
                    }
                },
                "c_f": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "C",
                            "F"
                        ]
                    }
                },
                "temp_set_f": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u2109",
                        "min": 55,
                        "max": 99,
                        "scale": 0,
                        "step": 1
                    }
                },
                "fan_speed_enum": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "auto",
                            "low",
                            "middle",
                            "high"
                        ]
                    }
                },
                "swing": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status_range": {
                "switch": {
                    "type": "Boolean",
                    "value": {}
                },
                "mode": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "auto",
                            "cold",
                            "hot",
                            "wet",
                            "wind"
                        ]
                    }
                },
                "temp_set": {
                    "type": "Integer",
                    "value": {
                        "min": 13,
                        "scale": 0,
                        "unit": "\u2103",
                        "max": 32,
                        "step": 1
                    }
                },
                "c_f": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "C",
                            "F"
                        ]
                    }
                },
                "temp_set_f": {
                    "type": "Integer",
                    "value": {
                        "unit": "\u2109",
                        "min": 55,
                        "max": 99,
                        "scale": 0,
                        "step": 1
                    }
                },
                "fan_speed_enum": {
                    "type": "Enum",
                    "value": {
                        "range": [
                            "auto",
                            "low",
                            "middle",
                            "high"
                        ]
                    }
                },
                "swing": {
                    "type": "Boolean",
                    "value": {}
                }
            },
            "status": {
                "switch": false,
                "mode": "cold",
                "temp_set": 25,
                "fan_speed_enum": "middle",
                "c_f": "C",
                "swing": true,
                "temp_set_f": 77
            },
            "home_assistant": {
                "name": "Portable\u00a0Air\u00a0Conditioner",
                "name_by_user": null,
                "disabled": false,
                "disabled_by": null,
                "entities": [
                    {
                        "disabled": false,
                        "disabled_by": null,
                        "entity_category": null,
                        "device_class": null,
                        "original_device_class": null,
                        "icon": null,
                        "original_icon": null,
                        "unit_of_measurement": null,
                        "state": {
                            "entity_id": "climate.portable_air_conditioner",
                            "state": "unavailable",
                            "attributes": {
                                "hvac_modes": [
                                    "off",
                                    "heat_cool",
                                    "cool",
                                    "heat",
                                    "dry",
                                    "fan_only"
                                ],
                                "min_temp": 13.0,
                                "max_temp": 32.0,
                                "target_temp_step": 1.0,
                                "fan_modes": [
                                    "auto",
                                    "low",
                                    "middle",
                                    "high"
                                ],
                                "swing_modes": [
                                    "off",
                                    "on"
                                ],
                                "friendly_name": "Portable\u00a0Air\u00a0Conditioner",
                                "supported_features": 41
                            },
                            "last_changed": "2022-01-18T18:54:13.625497+00:00",
                            "last_updated": "2022-01-18T18:54:13.625497+00:00"
                        }
                    }
                ]
            }
        }
    ]
}

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • The code has been formatted using Black (black --fast homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

  • No score or internal
  • 🥈 Silver
  • 🥇 Gold
  • 🏆 Platinum

To help with the load of incoming pull requests:

@probot-home-assistant
Copy link
Copy Markdown

Hey there @tuya, @zlinoliver, @METISU, mind taking a look at this pull request as it has been labeled with an integration (tuya) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

for dpcode, value in device.status.items():
# These statuses may contain sensitive information, redact these..
if dpcode in {DPCode.ALARM_MESSAGE, DPCode.MOVEMENT_DETECT_PIC}:
data["status"][dpcode] = "**REDACTED**"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're mutating the source dictionary. Make a copy instead.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh nevermind, that's the output.

@balloob balloob merged commit 8cfe6ef into dev Jan 18, 2022
@balloob balloob deleted the frenck-2022-0189 branch January 18, 2022 20:44
@balloob
Copy link
Copy Markdown
Member

balloob commented Jan 18, 2022

Super nice!

@github-actions github-actions bot locked and limited conversation to collaborators Jan 19, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants