Add coordinator test for Yale Smart Living (#98638)

This commit is contained in:
G Johansson 2023-08-24 11:44:04 +02:00 committed by GitHub
parent 577f545113
commit 3b31c58eba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 2001 additions and 13 deletions

View File

@ -1507,7 +1507,6 @@ omit =
homeassistant/components/yale_smart_alarm/alarm_control_panel.py homeassistant/components/yale_smart_alarm/alarm_control_panel.py
homeassistant/components/yale_smart_alarm/binary_sensor.py homeassistant/components/yale_smart_alarm/binary_sensor.py
homeassistant/components/yale_smart_alarm/button.py homeassistant/components/yale_smart_alarm/button.py
homeassistant/components/yale_smart_alarm/coordinator.py
homeassistant/components/yale_smart_alarm/entity.py homeassistant/components/yale_smart_alarm/entity.py
homeassistant/components/yale_smart_alarm/lock.py homeassistant/components/yale_smart_alarm/lock.py
homeassistant/components/yalexs_ble/__init__.py homeassistant/components/yalexs_ble/__init__.py

View File

@ -3,7 +3,7 @@ from __future__ import annotations
import json import json
from typing import Any from typing import Any
from unittest.mock import patch from unittest.mock import Mock, patch
import pytest import pytest
from yalesmartalarmclient.const import YALE_STATE_ARM_FULL from yalesmartalarmclient.const import YALE_STATE_ARM_FULL
@ -26,7 +26,7 @@ OPTIONS_CONFIG = {"lock_code_digits": 6}
@pytest.fixture @pytest.fixture
async def load_config_entry( async def load_config_entry(
hass: HomeAssistant, load_json: dict[str, Any] hass: HomeAssistant, load_json: dict[str, Any]
) -> MockConfigEntry: ) -> tuple[MockConfigEntry, Mock]:
"""Set up the Yale Smart Living integration in Home Assistant.""" """Set up the Yale Smart Living integration in Home Assistant."""
config_entry = MockConfigEntry( config_entry = MockConfigEntry(
domain=DOMAIN, domain=DOMAIN,
@ -52,7 +52,7 @@ async def load_config_entry(
await hass.config_entries.async_setup(config_entry.entry_id) await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done() await hass.async_block_till_done()
return config_entry return (config_entry, client)
@pytest.fixture(name="load_json", scope="session") @pytest.fixture(name="load_json", scope="session")

View File

@ -4,7 +4,7 @@
"area": "1", "area": "1",
"no": "1", "no": "1",
"rf": null, "rf": null,
"address": "123", "address": "1111",
"type": "device_type.door_lock", "type": "device_type.door_lock",
"name": "Device1", "name": "Device1",
"status1": "device_status.lock", "status1": "device_status.lock",
@ -48,13 +48,461 @@
"group_id": null, "group_id": null,
"group_name": null, "group_name": null,
"bypass": "0", "bypass": "0",
"device_id": "123", "device_id": "1111",
"status_temp_format": "C", "status_temp_format": "C",
"type_no": "72", "type_no": "72",
"device_group": "002", "device_group": "002",
"status_fault": [], "status_fault": [],
"status_open": ["device_status.lock"], "status_open": ["device_status.lock"],
"trigger_by_zone": [] "trigger_by_zone": []
},
{
"area": "1",
"no": "2",
"rf": null,
"address": "2222",
"type": "device_type.door_lock",
"name": "Device2",
"status1": "device_status.unlock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:02",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": null,
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "2222",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": [],
"trigger_by_zone": []
},
{
"area": "1",
"no": "3",
"rf": null,
"address": "3333",
"type": "device_type.door_lock",
"name": "Device3",
"status1": "device_status.lock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:03",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": null,
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "3333",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.lock"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "4",
"rf": null,
"address": "RF4",
"type": "device_type.door_contact",
"name": "Device4",
"status1": "device_status.dc_close",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "0",
"mac": "00:00:00:00:04",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "",
"minigw_syncing": "",
"minigw_configuration_data": "",
"minigw_product_data": "",
"minigw_lock_status": "",
"minigw_number_of_credentials_supported": "",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "4444",
"status_temp_format": "C",
"type_no": "4",
"device_group": "000",
"status_fault": [],
"status_open": ["device_status.dc_close"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "5",
"rf": null,
"address": "RF5",
"type": "device_type.door_contact",
"name": "Device5",
"status1": "device_status.dc_open",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "0",
"mac": "00:00:00:00:05",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "",
"minigw_syncing": "",
"minigw_configuration_data": "",
"minigw_product_data": "",
"minigw_lock_status": "",
"minigw_number_of_credentials_supported": "",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "5555",
"status_temp_format": "C",
"type_no": "4",
"device_group": "000",
"status_fault": [],
"status_open": ["device_status.dc_open"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "6",
"rf": null,
"address": "RF6",
"type": "device_type.door_contact",
"name": "Device6",
"status1": "unknwon",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "0",
"mac": "REDACTED",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "",
"minigw_syncing": "",
"minigw_configuration_data": "",
"minigw_product_data": "",
"minigw_lock_status": "",
"minigw_number_of_credentials_supported": "",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "6666",
"status_temp_format": "C",
"type_no": "4",
"device_group": "000",
"status_fault": [],
"status_open": [],
"trigger_by_zone": []
},
{
"area": "1",
"no": "7",
"rf": null,
"address": "7777",
"type": "device_type.door_lock",
"name": "Device7",
"status1": "device_status.lock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:07",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": "36",
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "7777",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.lock"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "8",
"rf": null,
"address": "8888",
"type": "device_type.door_lock",
"name": "Device8",
"status1": "device_status.unlock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:08",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": "4",
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "8888",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.unlock"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "9",
"rf": null,
"address": "9999",
"type": "device_type.door_lock",
"name": "Device9",
"status1": "device_status.error",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:09",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": "10",
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "9999",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.error"],
"trigger_by_zone": []
} }
], ],
"MODE": [ "MODE": [
@ -88,9 +536,9 @@
"area": "1", "area": "1",
"no": "1", "no": "1",
"rf": null, "rf": null,
"address": "124", "address": "1111",
"type": "device_type.door_lock", "type": "device_type.door_lock",
"name": "Device2", "name": "Device1",
"status1": "device_status.lock", "status1": "device_status.lock",
"status2": null, "status2": null,
"status_switch": null, "status_switch": null,
@ -102,7 +550,7 @@
"status_hue": null, "status_hue": null,
"status_saturation": null, "status_saturation": null,
"rssi": "9", "rssi": "9",
"mac": "00:00:00:00:02", "mac": "00:00:00:00:01",
"scene_trigger": "0", "scene_trigger": "0",
"status_total_energy": null, "status_total_energy": null,
"device_id2": "", "device_id2": "",
@ -132,13 +580,461 @@
"group_id": null, "group_id": null,
"group_name": null, "group_name": null,
"bypass": "0", "bypass": "0",
"device_id": "124", "device_id": "1111",
"status_temp_format": "C", "status_temp_format": "C",
"type_no": "72", "type_no": "72",
"device_group": "002", "device_group": "002",
"status_fault": [], "status_fault": [],
"status_open": ["device_status.lock"], "status_open": ["device_status.lock"],
"trigger_by_zone": [] "trigger_by_zone": []
},
{
"area": "1",
"no": "2",
"rf": null,
"address": "2222",
"type": "device_type.door_lock",
"name": "Device2",
"status1": "device_status.unlock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:02",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": null,
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "2222",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": [],
"trigger_by_zone": []
},
{
"area": "1",
"no": "3",
"rf": null,
"address": "3333",
"type": "device_type.door_lock",
"name": "Device3",
"status1": "device_status.lock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:03",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": null,
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "3333",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.lock"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "4",
"rf": null,
"address": "RF4",
"type": "device_type.door_contact",
"name": "Device4",
"status1": "device_status.dc_close",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "0",
"mac": "00:00:00:00:04",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "",
"minigw_syncing": "",
"minigw_configuration_data": "",
"minigw_product_data": "",
"minigw_lock_status": "",
"minigw_number_of_credentials_supported": "",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "4444",
"status_temp_format": "C",
"type_no": "4",
"device_group": "000",
"status_fault": [],
"status_open": ["device_status.dc_close"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "5",
"rf": null,
"address": "RF5",
"type": "device_type.door_contact",
"name": "Device5",
"status1": "device_status.dc_open",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "0",
"mac": "00:00:00:00:05",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "",
"minigw_syncing": "",
"minigw_configuration_data": "",
"minigw_product_data": "",
"minigw_lock_status": "",
"minigw_number_of_credentials_supported": "",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "5555",
"status_temp_format": "C",
"type_no": "4",
"device_group": "000",
"status_fault": [],
"status_open": ["device_status.dc_open"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "6",
"rf": null,
"address": "RF6",
"type": "device_type.door_contact",
"name": "Device6",
"status1": "unknwon",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "0",
"mac": "REDACTED",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "",
"minigw_syncing": "",
"minigw_configuration_data": "",
"minigw_product_data": "",
"minigw_lock_status": "",
"minigw_number_of_credentials_supported": "",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "6666",
"status_temp_format": "C",
"type_no": "4",
"device_group": "000",
"status_fault": [],
"status_open": [],
"trigger_by_zone": []
},
{
"area": "1",
"no": "7",
"rf": null,
"address": "7777",
"type": "device_type.door_lock",
"name": "Device7",
"status1": "device_status.lock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:07",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": "36",
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "7777",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.lock"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "8",
"rf": null,
"address": "8888",
"type": "device_type.door_lock",
"name": "Device8",
"status1": "device_status.unlock",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:08",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": "4",
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "8888",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.unlock"],
"trigger_by_zone": []
},
{
"area": "1",
"no": "9",
"rf": null,
"address": "9999",
"type": "device_type.door_lock",
"name": "Device9",
"status1": "device_status.error",
"status2": null,
"status_switch": null,
"status_power": null,
"status_temp": null,
"status_humi": null,
"status_dim_level": null,
"status_lux": "",
"status_hue": null,
"status_saturation": null,
"rssi": "9",
"mac": "00:00:00:00:09",
"scene_trigger": "0",
"status_total_energy": null,
"device_id2": "",
"extension": null,
"minigw_protocol": "DM",
"minigw_syncing": "0",
"minigw_configuration_data": "02FF000001000000000000000000001E000100",
"minigw_product_data": "21020120",
"minigw_lock_status": "10",
"minigw_number_of_credentials_supported": "10",
"sresp_button_3": null,
"sresp_button_1": null,
"sresp_button_2": null,
"sresp_button_4": null,
"ipcam_trigger_by_zone1": null,
"ipcam_trigger_by_zone2": null,
"ipcam_trigger_by_zone3": null,
"ipcam_trigger_by_zone4": null,
"scene_restore": null,
"thermo_mode": null,
"thermo_setpoint": null,
"thermo_c_setpoint": null,
"thermo_setpoint_away": null,
"thermo_c_setpoint_away": null,
"thermo_fan_mode": null,
"thermo_schd_setting": null,
"group_id": null,
"group_name": null,
"bypass": "0",
"device_id": "9999",
"status_temp_format": "C",
"type_no": "72",
"device_group": "002",
"status_fault": [],
"status_open": ["device_status.error"],
"trigger_by_zone": []
} }
], ],
"capture_latest": null, "capture_latest": null,

View File

@ -82,6 +82,496 @@
'type': 'device_type.door_lock', 'type': 'device_type.door_lock',
'type_no': '72', 'type_no': '72',
}), }),
dict({
'_state': 'unlocked',
'_state2': 'unknown',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': None,
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '2',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.unlock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'_state': 'locked',
'_state2': 'unknown',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': None,
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '3',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.lock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.lock',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'_state': 'closed',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '000',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '',
'minigw_lock_status': '',
'minigw_number_of_credentials_supported': '',
'minigw_product_data': '',
'minigw_protocol': '',
'minigw_syncing': '',
'name': '**REDACTED**',
'no': '4',
'rf': None,
'rssi': '0',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.dc_close',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.dc_close',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_contact',
'type_no': '4',
}),
dict({
'_state': 'open',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '000',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '',
'minigw_lock_status': '',
'minigw_number_of_credentials_supported': '',
'minigw_product_data': '',
'minigw_protocol': '',
'minigw_syncing': '',
'name': '**REDACTED**',
'no': '5',
'rf': None,
'rssi': '0',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.dc_open',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.dc_open',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_contact',
'type_no': '4',
}),
dict({
'_state': 'unavailable',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '000',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '',
'minigw_lock_status': '',
'minigw_number_of_credentials_supported': '',
'minigw_product_data': '',
'minigw_protocol': '',
'minigw_syncing': '',
'name': '**REDACTED**',
'no': '6',
'rf': None,
'rssi': '0',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'unknwon',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_contact',
'type_no': '4',
}),
dict({
'_state': 'unlocked',
'_state2': 'closed',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': '36',
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '7',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.lock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.lock',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'_state': 'unlocked',
'_state2': 'open',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': '4',
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '8',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.unlock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.unlock',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'_state': 'unavailable',
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': '10',
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '9',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.error',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.error',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
]), ]),
'model': list([ 'model': list([
dict({ dict({
@ -162,6 +652,484 @@
'type': 'device_type.door_lock', 'type': 'device_type.door_lock',
'type_no': '72', 'type_no': '72',
}), }),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': None,
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '2',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.unlock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': None,
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '3',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.lock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.lock',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '000',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '',
'minigw_lock_status': '',
'minigw_number_of_credentials_supported': '',
'minigw_product_data': '',
'minigw_protocol': '',
'minigw_syncing': '',
'name': '**REDACTED**',
'no': '4',
'rf': None,
'rssi': '0',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.dc_close',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.dc_close',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_contact',
'type_no': '4',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '000',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '',
'minigw_lock_status': '',
'minigw_number_of_credentials_supported': '',
'minigw_product_data': '',
'minigw_protocol': '',
'minigw_syncing': '',
'name': '**REDACTED**',
'no': '5',
'rf': None,
'rssi': '0',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.dc_open',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.dc_open',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_contact',
'type_no': '4',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '000',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '',
'minigw_lock_status': '',
'minigw_number_of_credentials_supported': '',
'minigw_product_data': '',
'minigw_protocol': '',
'minigw_syncing': '',
'name': '**REDACTED**',
'no': '6',
'rf': None,
'rssi': '0',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'unknwon',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_contact',
'type_no': '4',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': '36',
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '7',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.lock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.lock',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': '4',
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '8',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.unlock',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.unlock',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
dict({
'address': '**REDACTED**',
'area': '1',
'bypass': '0',
'device_group': '002',
'device_id': '**REDACTED**',
'device_id2': '',
'extension': None,
'group_id': None,
'group_name': None,
'ipcam_trigger_by_zone1': None,
'ipcam_trigger_by_zone2': None,
'ipcam_trigger_by_zone3': None,
'ipcam_trigger_by_zone4': None,
'mac': '**REDACTED**',
'minigw_configuration_data': '02FF000001000000000000000000001E000100',
'minigw_lock_status': '10',
'minigw_number_of_credentials_supported': '10',
'minigw_product_data': '21020120',
'minigw_protocol': 'DM',
'minigw_syncing': '0',
'name': '**REDACTED**',
'no': '9',
'rf': None,
'rssi': '9',
'scene_restore': None,
'scene_trigger': '0',
'sresp_button_1': None,
'sresp_button_2': None,
'sresp_button_3': None,
'sresp_button_4': None,
'status1': 'device_status.error',
'status2': None,
'status_dim_level': None,
'status_fault': list([
]),
'status_hue': None,
'status_humi': None,
'status_lux': '',
'status_open': list([
'device_status.error',
]),
'status_power': None,
'status_saturation': None,
'status_switch': None,
'status_temp': None,
'status_temp_format': 'C',
'status_total_energy': None,
'thermo_c_setpoint': None,
'thermo_c_setpoint_away': None,
'thermo_fan_mode': None,
'thermo_mode': None,
'thermo_schd_setting': None,
'thermo_setpoint': None,
'thermo_setpoint_away': None,
'trigger_by_zone': list([
]),
'type': 'device_type.door_lock',
'type_no': '72',
}),
]), ]),
'HISTORY': list([ 'HISTORY': list([
dict({ dict({

View File

@ -0,0 +1,123 @@
"""The test for the sensibo coordinator."""
from __future__ import annotations
from datetime import timedelta
from typing import Any
from unittest.mock import Mock, patch
import pytest
from yalesmartalarmclient.const import YALE_STATE_ARM_FULL
from yalesmartalarmclient.exceptions import AuthenticationError, UnknownError
from homeassistant.components.yale_smart_alarm.const import DOMAIN
from homeassistant.config_entries import SOURCE_USER
from homeassistant.const import STATE_ALARM_ARMED_AWAY, STATE_UNAVAILABLE
from homeassistant.core import HomeAssistant
from homeassistant.util import dt as dt_util
from .conftest import ENTRY_CONFIG, OPTIONS_CONFIG
from tests.common import MockConfigEntry, async_fire_time_changed
@pytest.mark.parametrize(
"p_error",
[
AuthenticationError(),
UnknownError(),
ConnectionError("Could not connect"),
TimeoutError(),
],
)
async def test_coordinator_setup_errors(
hass: HomeAssistant,
load_json: dict[str, Any],
p_error: Exception,
) -> None:
"""Test the Yale Smart Living coordinator with errors."""
config_entry = MockConfigEntry(
domain=DOMAIN,
source=SOURCE_USER,
data=ENTRY_CONFIG,
options=OPTIONS_CONFIG,
entry_id="1",
unique_id="username",
version=1,
)
config_entry.add_to_hass(hass)
with patch(
"homeassistant.components.yale_smart_alarm.coordinator.YaleSmartAlarmClient",
autospec=True,
) as mock_client_class:
mock_client_class.side_effect = p_error
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert not state
async def test_coordinator_setup_and_update_errors(
hass: HomeAssistant,
load_config_entry: tuple[MockConfigEntry, Mock],
load_json: dict[str, Any],
) -> None:
"""Test the Yale Smart Living coordinator with errors."""
client = load_config_entry[1]
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_ALARM_ARMED_AWAY
client.reset_mock()
client.get_all.side_effect = ConnectionError("Could not connect")
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=1))
await hass.async_block_till_done()
client.get_all.assert_called_once()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_UNAVAILABLE
client.reset_mock()
client.get_all.side_effect = ConnectionError("Could not connect")
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=2))
await hass.async_block_till_done()
client.get_all.assert_called_once()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_UNAVAILABLE
client.reset_mock()
client.get_all.side_effect = TimeoutError("Could not connect")
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=3))
await hass.async_block_till_done()
client.get_all.assert_called_once()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_UNAVAILABLE
client.reset_mock()
client.get_all.side_effect = UnknownError("info")
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=4))
await hass.async_block_till_done()
client.get_all.assert_called_once()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_UNAVAILABLE
client.reset_mock()
client.get_all.side_effect = None
client.get_all.return_value = load_json
client.get_armed_status.return_value = YALE_STATE_ARM_FULL
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=5))
await hass.async_block_till_done()
client.get_all.assert_called_once()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_ALARM_ARMED_AWAY
client.reset_mock()
client.get_all.side_effect = AuthenticationError("Can not authenticate")
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=6))
await hass.async_block_till_done()
client.get_all.assert_called_once()
state = hass.states.get("alarm_control_panel.yale_smart_alarm")
assert state.state == STATE_UNAVAILABLE

View File

@ -1,11 +1,13 @@
"""Test Yale Smart Living diagnostics.""" """Test Yale Smart Living diagnostics."""
from __future__ import annotations from __future__ import annotations
from unittest.mock import Mock
from syrupy.assertion import SnapshotAssertion from syrupy.assertion import SnapshotAssertion
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from tests.common import MockConfigEntry
from tests.components.diagnostics import get_diagnostics_for_config_entry from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator from tests.typing import ClientSessionGenerator
@ -13,11 +15,11 @@ from tests.typing import ClientSessionGenerator
async def test_diagnostics( async def test_diagnostics(
hass: HomeAssistant, hass: HomeAssistant,
hass_client: ClientSessionGenerator, hass_client: ClientSessionGenerator,
load_config_entry: ConfigEntry, load_config_entry: tuple[MockConfigEntry, Mock],
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
) -> None: ) -> None:
"""Test generating diagnostics for a config entry.""" """Test generating diagnostics for a config entry."""
entry = load_config_entry entry = load_config_entry[0]
diag = await get_diagnostics_for_config_entry(hass, hass_client, entry) diag = await get_diagnostics_for_config_entry(hass, hass_client, entry)