diff --git a/tests/components/homekit_controller/snapshots/test_init.ambr b/tests/components/homekit_controller/snapshots/test_init.ambr new file mode 100644 index 00000000000..4c408f2887e --- /dev/null +++ b/tests/components/homekit_controller/snapshots/test_init.ambr @@ -0,0 +1,12712 @@ +# serializer version: 1 +# name: test_snapshots[airversa_ap2] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '0.1', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Sleekpoint Innovations', + 'model': 'AP2', + 'name': 'Airversa AP2 1808', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '0.8.16', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.airversa_ap2_1808_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Airversa AP2 1808 Identify', + }), + 'entity_id': 'button.airversa_ap2_1808_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.airversa_ap2_1808_provision_preferred_thread_credentials', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 Provision Preferred Thread Credentials', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_112_119', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Airversa AP2 1808 Provision Preferred Thread Credentials', + }), + 'entity_id': 'button.airversa_ap2_1808_provision_preferred_thread_credentials', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.airversa_ap2_1808_air_quality', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 Air Quality', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_2576_2579', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'aqi', + 'friendly_name': 'Airversa AP2 1808 Air Quality', + 'state_class': , + }), + 'entity_id': 'sensor.airversa_ap2_1808_air_quality', + 'state': '1', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.airversa_ap2_1808_filter_lifetime', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 Filter lifetime', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_32896_32900', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Airversa AP2 1808 Filter lifetime', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.airversa_ap2_1808_filter_lifetime', + 'state': '100.0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.airversa_ap2_1808_pm2_5_density', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 PM2.5 Density', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_2576_2580', + 'unit_of_measurement': 'µg/m³', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'pm25', + 'friendly_name': 'Airversa AP2 1808 PM2.5 Density', + 'state_class': , + 'unit_of_measurement': 'µg/m³', + }), + 'entity_id': 'sensor.airversa_ap2_1808_pm2_5_density', + 'state': '3.0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'border_router_capable', + 'full', + 'minimal', + 'none', + 'router_eligible', + 'sleepy', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.airversa_ap2_1808_thread_capabilities', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 Thread Capabilities', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'thread_node_capabilities', + 'unique_id': '00:00:00:00:00:00_1_112_115', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'enum', + 'friendly_name': 'Airversa AP2 1808 Thread Capabilities', + 'options': list([ + 'border_router_capable', + 'full', + 'minimal', + 'none', + 'router_eligible', + 'sleepy', + ]), + }), + 'entity_id': 'sensor.airversa_ap2_1808_thread_capabilities', + 'state': 'router_eligible', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'border_router', + 'child', + 'detached', + 'disabled', + 'joining', + 'leader', + 'router', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.airversa_ap2_1808_thread_status', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Airversa AP2 1808 Thread Status', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'thread_status', + 'unique_id': '00:00:00:00:00:00_1_112_117', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'enum', + 'friendly_name': 'Airversa AP2 1808 Thread Status', + 'options': list([ + 'border_router', + 'child', + 'detached', + 'disabled', + 'joining', + 'leader', + 'router', + ]), + }), + 'entity_id': 'sensor.airversa_ap2_1808_thread_status', + 'state': 'router', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.airversa_ap2_1808_lock_physical_controls', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:lock-open', + 'original_name': 'Airversa AP2 1808 Lock Physical Controls', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_32832_32839', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Airversa AP2 1808 Lock Physical Controls', + 'icon': 'mdi:lock-open', + }), + 'entity_id': 'switch.airversa_ap2_1808_lock_physical_controls', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.airversa_ap2_1808_mute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'Airversa AP2 1808 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_32832_32843', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Airversa AP2 1808 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.airversa_ap2_1808_mute', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.airversa_ap2_1808_sleep_mode', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:power-sleep', + 'original_name': 'Airversa AP2 1808 Sleep Mode', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_32832_32842', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Airversa AP2 1808 Sleep Mode', + 'icon': 'mdi:power-sleep', + }), + 'entity_id': 'switch.airversa_ap2_1808_sleep_mode', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[anker_eufycam] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '2.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Anker', + 'model': 'T8010', + 'name': 'eufy HomeBase2-0AAA', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '2.1.6', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.eufy_homebase2_0aaa_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufy HomeBase2-0AAA Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufy HomeBase2-0AAA Identify', + }), + 'entity_id': 'button.eufy_homebase2_0aaa_identify', + 'state': 'unknown', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:4', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Anker', + 'model': 'T8113', + 'name': 'eufyCam2-0000', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.6.7', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.eufycam2_0000_motion_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'eufyCam2-0000 Motion Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_160', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'eufyCam2-0000 Motion Sensor', + }), + 'entity_id': 'binary_sensor.eufycam2_0000_motion_sensor', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.eufycam2_0000_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufyCam2-0000 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-0000 Identify', + }), + 'entity_id': 'button.eufycam2_0000_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'camera', + 'entity_category': None, + 'entity_id': 'camera.eufycam2_0000', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufyCam2-0000', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-0000', + 'supported_features': , + }), + 'entity_id': 'camera.eufycam2_0000', + 'state': 'idle', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.eufycam2_0000_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'eufyCam2-0000 Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_101', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'eufyCam2-0000 Battery', + 'icon': 'mdi:battery-20', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.eufycam2_0000_battery', + 'state': '17', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.eufycam2_0000_mute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'eufyCam2-0000 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_80_83', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-0000 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.eufycam2_0000_mute', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:2', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Anker', + 'model': 'T8113', + 'name': 'eufyCam2-000A', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.6.7', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.eufycam2_000a_motion_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'eufyCam2-000A Motion Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_160', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'eufyCam2-000A Motion Sensor', + }), + 'entity_id': 'binary_sensor.eufycam2_000a_motion_sensor', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.eufycam2_000a_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufyCam2-000A Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-000A Identify', + }), + 'entity_id': 'button.eufycam2_000a_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'camera', + 'entity_category': None, + 'entity_id': 'camera.eufycam2_000a', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufyCam2-000A', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-000A', + 'supported_features': , + }), + 'entity_id': 'camera.eufycam2_000a', + 'state': 'idle', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.eufycam2_000a_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'eufyCam2-000A Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_101', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'eufyCam2-000A Battery', + 'icon': 'mdi:battery-40', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.eufycam2_000a_battery', + 'state': '38', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.eufycam2_000a_mute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'eufyCam2-000A Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_80_83', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-000A Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.eufycam2_000a_mute', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:3', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Anker', + 'model': 'T8113', + 'name': 'eufyCam2-000A', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.6.7', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.eufycam2_000a_motion_sensor_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'eufyCam2-000A Motion Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_160', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'eufyCam2-000A Motion Sensor', + }), + 'entity_id': 'binary_sensor.eufycam2_000a_motion_sensor_2', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.eufycam2_000a_identify_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufyCam2-000A Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-000A Identify', + }), + 'entity_id': 'button.eufycam2_000a_identify_2', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'camera', + 'entity_category': None, + 'entity_id': 'camera.eufycam2_000a_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'eufyCam2-000A', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-000A', + 'supported_features': , + }), + 'entity_id': 'camera.eufycam2_000a_2', + 'state': 'idle', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.eufycam2_000a_battery_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'eufyCam2-000A Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_101', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'eufyCam2-000A Battery', + 'icon': 'mdi:battery-alert', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.eufycam2_000a_battery_2', + 'state': '100', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.eufycam2_000a_mute_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'eufyCam2-000A Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_80_83', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'eufyCam2-000A Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.eufycam2_000a_mute_2', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[aqara_e1] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Aqara', + 'model': 'HE1-G01', + 'name': 'Aqara-Hub-E1-00A0', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.3.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'alarm_control_panel', + 'entity_category': None, + 'entity_id': 'alarm_control_panel.aqara_hub_e1_00a0_security_system', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:security', + 'original_name': 'Aqara-Hub-E1-00A0 Security System', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'changed_by': None, + 'code_arm_required': True, + 'code_format': None, + 'friendly_name': 'Aqara-Hub-E1-00A0 Security System', + 'icon': 'mdi:security', + 'supported_features': , + }), + 'entity_id': 'alarm_control_panel.aqara_hub_e1_00a0_security_system', + 'state': 'disarmed', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.aqara_hub_e1_00a0_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Aqara-Hub-E1-00A0 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_65537', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara-Hub-E1-00A0 Identify', + }), + 'entity_id': 'button.aqara_hub_e1_00a0_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0.0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.aqara_hub_e1_00a0_volume', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-high', + 'original_name': 'Aqara-Hub-E1-00A0 Volume', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_17_1114116', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara-Hub-E1-00A0 Volume', + 'icon': 'mdi:volume-high', + 'max': 100, + 'min': 0.0, + 'mode': , + 'step': 1, + }), + 'entity_id': 'number.aqara_hub_e1_00a0_volume', + 'state': '40', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.aqara_hub_e1_00a0_pairing_mode', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:lock-open', + 'original_name': 'Aqara-Hub-E1-00A0 Pairing Mode', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_17_1114117', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara-Hub-E1-00A0 Pairing Mode', + 'icon': 'mdi:lock-open', + }), + 'entity_id': 'switch.aqara_hub_e1_00a0_pairing_mode', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:33', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Aqara', + 'model': 'AS006', + 'name': 'Contact Sensor', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.contact_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Contact Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_33_4', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'opening', + 'friendly_name': 'Contact Sensor', + }), + 'entity_id': 'binary_sensor.contact_sensor', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.contact_sensor_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Contact Sensor Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_33_1_65537', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Contact Sensor Identify', + }), + 'entity_id': 'button.contact_sensor_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.contact_sensor_battery_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'Contact Sensor Battery Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_33_5', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'Contact Sensor Battery Sensor', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.contact_sensor_battery_sensor', + 'state': '100', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[aqara_gateway] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Aqara', + 'model': 'ZHWA11LM', + 'name': 'Aqara Hub-1563', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.4.7', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'alarm_control_panel', + 'entity_category': None, + 'entity_id': 'alarm_control_panel.aqara_hub_1563_security_system', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:security', + 'original_name': 'Aqara Hub-1563 Security System', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_66304', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'changed_by': None, + 'code_arm_required': True, + 'code_format': None, + 'friendly_name': 'Aqara Hub-1563 Security System', + 'icon': 'mdi:security', + 'supported_features': , + }), + 'entity_id': 'alarm_control_panel.aqara_hub_1563_security_system', + 'state': 'disarmed', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.aqara_hub_1563_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Aqara Hub-1563 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara Hub-1563 Identify', + }), + 'entity_id': 'button.aqara_hub_1563_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.aqara_hub_1563_lightbulb_1563', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Aqara Hub-1563 Lightbulb-1563', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_65792', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara Hub-1563 Lightbulb-1563', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.aqara_hub_1563_lightbulb_1563', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 100, + 'min': 0.0, + 'mode': , + 'step': 1, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.aqara_hub_1563_volume', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-high', + 'original_name': 'Aqara Hub-1563 Volume', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_65536_65541', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara Hub-1563 Volume', + 'icon': 'mdi:volume-high', + 'max': 100, + 'min': 0.0, + 'mode': , + 'step': 1, + }), + 'entity_id': 'number.aqara_hub_1563_volume', + 'state': '40', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.aqara_hub_1563_pairing_mode', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:lock-open', + 'original_name': 'Aqara Hub-1563 Pairing Mode', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_65536_65538', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Aqara Hub-1563 Pairing Mode', + 'icon': 'mdi:lock-open', + }), + 'entity_id': 'switch.aqara_hub_1563_pairing_mode', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[aqara_switch] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Aqara', + 'model': 'AR004', + 'name': 'Programmable Switch', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '9', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.programmable_switch_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Programmable Switch Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_65537', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Programmable Switch Identify', + }), + 'entity_id': 'button.programmable_switch_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.programmable_switch_battery_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'Programmable Switch Battery Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_5', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'Programmable Switch Battery Sensor', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.programmable_switch_battery_sensor', + 'state': '100', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[arlo_baby] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Netgear, Inc', + 'model': 'ABC1000', + 'name': 'ArloBabyA0', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.10.931', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.arlobabya0_motion', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'ArloBabyA0 Motion', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_500', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'ArloBabyA0 Motion', + }), + 'entity_id': 'binary_sensor.arlobabya0_motion', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.arlobabya0_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'ArloBabyA0 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'ArloBabyA0 Identify', + }), + 'entity_id': 'button.arlobabya0_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'camera', + 'entity_category': None, + 'entity_id': 'camera.arlobabya0', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'ArloBabyA0', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'ArloBabyA0', + 'supported_features': , + }), + 'entity_id': 'camera.arlobabya0', + 'state': 'idle', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.arlobabya0_nightlight', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'ArloBabyA0 Nightlight', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1100', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'ArloBabyA0 Nightlight', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.arlobabya0_nightlight', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.arlobabya0_air_quality', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'ArloBabyA0 Air Quality', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_800_802', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'aqi', + 'friendly_name': 'ArloBabyA0 Air Quality', + 'state_class': , + }), + 'entity_id': 'sensor.arlobabya0_air_quality', + 'state': '1', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.arlobabya0_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'ArloBabyA0 Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_700', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'ArloBabyA0 Battery', + 'icon': 'mdi:battery-80', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.arlobabya0_battery', + 'state': '82', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.arlobabya0_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'ArloBabyA0 Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_900', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'ArloBabyA0 Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.arlobabya0_humidity', + 'state': '60.099998', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.arlobabya0_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'ArloBabyA0 Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1000', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'ArloBabyA0 Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.arlobabya0_temperature', + 'state': '24.0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.arlobabya0_mute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'ArloBabyA0 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_300_302', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'ArloBabyA0 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.arlobabya0_mute', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.arlobabya0_mute_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'ArloBabyA0 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_400_402', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'ArloBabyA0 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.arlobabya0_mute_2', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[connectsense] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ConnectSense', + 'model': 'CS-IWO', + 'name': 'InWall Outlet-0394DE', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.inwall_outlet_0394de_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'InWall Outlet-0394DE Identify', + }), + 'entity_id': 'button.inwall_outlet_0394de_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.inwall_outlet_0394de_current', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Current', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_13_18', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'current', + 'friendly_name': 'InWall Outlet-0394DE Current', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.inwall_outlet_0394de_current', + 'state': '0.03', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.inwall_outlet_0394de_current_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Current', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_25_30', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'current', + 'friendly_name': 'InWall Outlet-0394DE Current', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.inwall_outlet_0394de_current_2', + 'state': '0.05', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.inwall_outlet_0394de_energy_kwh', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Energy kWh', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_13_20', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'energy', + 'friendly_name': 'InWall Outlet-0394DE Energy kWh', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.inwall_outlet_0394de_energy_kwh', + 'state': '379.69299', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.inwall_outlet_0394de_energy_kwh_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Energy kWh', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_25_32', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'energy', + 'friendly_name': 'InWall Outlet-0394DE Energy kWh', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.inwall_outlet_0394de_energy_kwh_2', + 'state': '175.85001', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.inwall_outlet_0394de_power', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Power', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_13_19', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'power', + 'friendly_name': 'InWall Outlet-0394DE Power', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.inwall_outlet_0394de_power', + 'state': '0.8', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.inwall_outlet_0394de_power_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Power', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_25_31', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'power', + 'friendly_name': 'InWall Outlet-0394DE Power', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.inwall_outlet_0394de_power_2', + 'state': '0.8', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.inwall_outlet_0394de_outlet_a', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Outlet A', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_13', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'InWall Outlet-0394DE Outlet A', + 'outlet_in_use': True, + }), + 'entity_id': 'switch.inwall_outlet_0394de_outlet_a', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.inwall_outlet_0394de_outlet_b', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'InWall Outlet-0394DE Outlet B', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_25', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'InWall Outlet-0394DE Outlet B', + 'outlet_in_use': True, + }), + 'entity_id': 'switch.inwall_outlet_0394de_outlet_b', + 'state': 'on', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[ecobee3] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:4', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'REMOTE SENSOR', + 'name': 'Basement', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.basement', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Basement', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'Basement', + }), + 'entity_id': 'binary_sensor.basement', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.basement_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Basement Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_1_4101', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Basement Identify', + }), + 'entity_id': 'button.basement_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.basement_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Basement Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_55', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Basement Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.basement_temperature', + 'state': '20.7', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'ecobee3', + 'name': 'HomeW', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '4.2.394', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.homew', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'HomeW', + }), + 'entity_id': 'binary_sensor.homew', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.homew_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_57', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'occupancy', + 'friendly_name': 'HomeW', + }), + 'entity_id': 'binary_sensor.homew_2', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.homew_clear_hold', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW Clear Hold', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Clear Hold', + }), + 'entity_id': 'button.homew_clear_hold', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.homew_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Identify', + }), + 'entity_id': 'button.homew_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_humidity': 50, + 'max_temp': 33.3, + 'min_humidity': 20, + 'min_temp': 7.2, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'climate', + 'entity_category': None, + 'entity_id': 'climate.homew', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_humidity': 34, + 'current_temperature': 21.8, + 'friendly_name': 'HomeW', + 'humidity': 36, + 'hvac_action': , + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_humidity': 50, + 'max_temp': 33.3, + 'min_humidity': 20, + 'min_temp': 7.2, + 'supported_features': , + 'target_temp_high': None, + 'target_temp_low': None, + 'temperature': 22.2, + }), + 'entity_id': 'climate.homew', + 'state': 'heat', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'home', + 'sleep', + 'away', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': None, + 'entity_id': 'select.homew_current_mode', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW Current Mode', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'ecobee_mode', + 'unique_id': '00:00:00:00:00:00_1_16_33', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Current Mode', + 'options': list([ + 'home', + 'sleep', + 'away', + ]), + }), + 'entity_id': 'select.homew_current_mode', + 'state': 'home', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.homew_temperature_display_units', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:thermometer', + 'original_name': 'HomeW Temperature Display Units', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'temperature_display_units', + 'unique_id': '00:00:00:00:00:00_1_16_21', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Temperature Display Units', + 'icon': 'mdi:thermometer', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'entity_id': 'select.homew_temperature_display_units', + 'state': 'fahrenheit', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.homew_current_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW Current Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_24', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'HomeW Current Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.homew_current_humidity', + 'state': '34', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.homew_current_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW Current Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_19', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'HomeW Current Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.homew_current_temperature', + 'state': '21.8', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:2', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'REMOTE SENSOR', + 'name': 'Kitchen', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.kitchen', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Kitchen', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'Kitchen', + }), + 'entity_id': 'binary_sensor.kitchen', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.kitchen_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Kitchen Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_1_2053', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Kitchen Identify', + }), + 'entity_id': 'button.kitchen_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.kitchen_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Kitchen Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_55', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Kitchen Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.kitchen_temperature', + 'state': '21.5', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:3', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'REMOTE SENSOR', + 'name': 'Porch', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.porch', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Porch', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'Porch', + }), + 'entity_id': 'binary_sensor.porch', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.porch_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Porch Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_1_3077', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Porch Identify', + }), + 'entity_id': 'button.porch_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.porch_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Porch Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_55', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Porch Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.porch_temperature', + 'state': '21', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[ecobee3_no_sensors] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'ecobee3', + 'name': 'HomeW', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '4.2.394', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.homew', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'HomeW', + }), + 'entity_id': 'binary_sensor.homew', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.homew_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_57', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'occupancy', + 'friendly_name': 'HomeW', + }), + 'entity_id': 'binary_sensor.homew_2', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.homew_clear_hold', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW Clear Hold', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Clear Hold', + }), + 'entity_id': 'button.homew_clear_hold', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.homew_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Identify', + }), + 'entity_id': 'button.homew_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_humidity': 50, + 'max_temp': 33.3, + 'min_humidity': 20, + 'min_temp': 7.2, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'climate', + 'entity_category': None, + 'entity_id': 'climate.homew', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_humidity': 34, + 'current_temperature': 21.8, + 'friendly_name': 'HomeW', + 'humidity': 36, + 'hvac_action': , + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_humidity': 50, + 'max_temp': 33.3, + 'min_humidity': 20, + 'min_temp': 7.2, + 'supported_features': , + 'target_temp_high': None, + 'target_temp_low': None, + 'temperature': 22.2, + }), + 'entity_id': 'climate.homew', + 'state': 'heat', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'home', + 'sleep', + 'away', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': None, + 'entity_id': 'select.homew_current_mode', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HomeW Current Mode', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'ecobee_mode', + 'unique_id': '00:00:00:00:00:00_1_16_33', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Current Mode', + 'options': list([ + 'home', + 'sleep', + 'away', + ]), + }), + 'entity_id': 'select.homew_current_mode', + 'state': 'home', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.homew_temperature_display_units', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:thermometer', + 'original_name': 'HomeW Temperature Display Units', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'temperature_display_units', + 'unique_id': '00:00:00:00:00:00_1_16_21', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HomeW Temperature Display Units', + 'icon': 'mdi:thermometer', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'entity_id': 'select.homew_temperature_display_units', + 'state': 'fahrenheit', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.homew_current_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW Current Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_24', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'HomeW Current Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.homew_current_humidity', + 'state': '34', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.homew_current_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HomeW Current Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_19', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'HomeW Current Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.homew_current_temperature', + 'state': '21.8', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[ecobee_501] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'ECB501', + 'name': 'My ecobee', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '4.7.340214', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.my_ecobee_motion', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'My ecobee Motion', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'My ecobee Motion', + }), + 'entity_id': 'binary_sensor.my_ecobee_motion', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.my_ecobee_occupancy', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'My ecobee Occupancy', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_57', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'occupancy', + 'friendly_name': 'My ecobee Occupancy', + }), + 'entity_id': 'binary_sensor.my_ecobee_occupancy', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': None, + 'entity_id': 'button.my_ecobee_clear_hold', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'My ecobee Clear Hold', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'My ecobee Clear Hold', + }), + 'entity_id': 'button.my_ecobee_clear_hold', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.my_ecobee_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'My ecobee Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'My ecobee Identify', + }), + 'entity_id': 'button.my_ecobee_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'fan_modes': list([ + 'on', + 'auto', + ]), + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_humidity': 50, + 'max_temp': 33.3, + 'min_humidity': 20, + 'min_temp': 7.2, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'climate', + 'entity_category': None, + 'entity_id': 'climate.my_ecobee', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'My ecobee', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_humidity': 55.0, + 'current_temperature': 21.3, + 'fan_mode': 'auto', + 'fan_modes': list([ + 'on', + 'auto', + ]), + 'friendly_name': 'My ecobee', + 'humidity': 36.0, + 'hvac_action': , + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_humidity': 50, + 'max_temp': 33.3, + 'min_humidity': 20, + 'min_temp': 7.2, + 'supported_features': , + 'target_temp_high': 25.6, + 'target_temp_low': 7.2, + 'temperature': None, + }), + 'entity_id': 'climate.my_ecobee', + 'state': 'heat_cool', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'home', + 'sleep', + 'away', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': None, + 'entity_id': 'select.my_ecobee_current_mode', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'My ecobee Current Mode', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'ecobee_mode', + 'unique_id': '00:00:00:00:00:00_1_16_33', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'My ecobee Current Mode', + 'options': list([ + 'home', + 'sleep', + 'away', + ]), + }), + 'entity_id': 'select.my_ecobee_current_mode', + 'state': 'home', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.my_ecobee_temperature_display_units', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:thermometer', + 'original_name': 'My ecobee Temperature Display Units', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'temperature_display_units', + 'unique_id': '00:00:00:00:00:00_1_16_21', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'My ecobee Temperature Display Units', + 'icon': 'mdi:thermometer', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'entity_id': 'select.my_ecobee_temperature_display_units', + 'state': 'fahrenheit', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.my_ecobee_current_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'My ecobee Current Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_24', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'My ecobee Current Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.my_ecobee_current_humidity', + 'state': '55.0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.my_ecobee_current_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'My ecobee Current Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16_19', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'My ecobee Current Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.my_ecobee_current_temperature', + 'state': '21.3', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[ecobee_occupancy] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'ecobee Inc.', + 'model': 'ecobee Switch+', + 'name': 'Master Fan', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '4.5.130201', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.master_fan', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Master Fan', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_56', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'Master Fan', + }), + 'entity_id': 'binary_sensor.master_fan', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.master_fan_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Master Fan', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_57', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'occupancy', + 'friendly_name': 'Master Fan', + }), + 'entity_id': 'binary_sensor.master_fan_2', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.master_fan_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Master Fan Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Master Fan Identify', + }), + 'entity_id': 'button.master_fan_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.master_fan_light_level', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Master Fan Light Level', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_27', + 'unit_of_measurement': 'lx', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'illuminance', + 'friendly_name': 'Master Fan Light Level', + 'state_class': , + 'unit_of_measurement': 'lx', + }), + 'entity_id': 'sensor.master_fan_light_level', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.master_fan_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Master Fan Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_55', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Master Fan Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.master_fan_temperature', + 'state': '25.6', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.master_fan', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Master Fan', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_16', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Master Fan', + }), + 'entity_id': 'switch.master_fan', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[eve_degree] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Elgato', + 'model': 'Eve Degree 00AAA0000', + 'name': 'Eve Degree AA11', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.2.8', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.eve_degree_aa11_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Eve Degree AA11 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_3', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Eve Degree AA11 Identify', + }), + 'entity_id': 'button.eve_degree_aa11_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 9000, + 'min': -450, + 'mode': , + 'step': 1, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.eve_degree_aa11_elevation', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:elevation-rise', + 'original_name': 'Eve Degree AA11 Elevation', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_30_33', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Eve Degree AA11 Elevation', + 'icon': 'mdi:elevation-rise', + 'max': 9000, + 'min': -450, + 'mode': , + 'step': 1, + }), + 'entity_id': 'number.eve_degree_aa11_elevation', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.eve_degree_aa11_temperature_display_units', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:thermometer', + 'original_name': 'Eve Degree AA11 Temperature Display Units', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'temperature_display_units', + 'unique_id': '00:00:00:00:00:00_1_22_25', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Eve Degree AA11 Temperature Display Units', + 'icon': 'mdi:thermometer', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'entity_id': 'select.eve_degree_aa11_temperature_display_units', + 'state': 'celsius', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_degree_aa11_air_pressure', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Degree AA11 Air Pressure', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_30_32', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'pressure', + 'friendly_name': 'Eve Degree AA11 Air Pressure', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.eve_degree_aa11_air_pressure', + 'state': '1005.70001220703', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.eve_degree_aa11_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'Eve Degree AA11 Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_17', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'Eve Degree AA11 Battery', + 'icon': 'mdi:battery-60', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.eve_degree_aa11_battery', + 'state': '65', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_degree_aa11_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Degree AA11 Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_27', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'Eve Degree AA11 Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.eve_degree_aa11_humidity', + 'state': '59.4818115234375', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_degree_aa11_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Degree AA11 Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_22', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Eve Degree AA11 Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.eve_degree_aa11_temperature', + 'state': '22.7719116210938', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[eve_energy] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Elgato', + 'model': 'Eve Energy 20EAO8601', + 'name': 'Eve Energy 50FF', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.2.9', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.eve_energy_50ff_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Eve Energy 50FF Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_3', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Eve Energy 50FF Identify', + }), + 'entity_id': 'button.eve_energy_50ff_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_energy_50ff_amps', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Energy 50FF Amps', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_28_33', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'current', + 'friendly_name': 'Eve Energy 50FF Amps', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.eve_energy_50ff_amps', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_energy_50ff_energy_kwh', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Energy 50FF Energy kWh', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_28_35', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'energy', + 'friendly_name': 'Eve Energy 50FF Energy kWh', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.eve_energy_50ff_energy_kwh', + 'state': '0.28999999165535', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_energy_50ff_power', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Energy 50FF Power', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_28_34', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'power', + 'friendly_name': 'Eve Energy 50FF Power', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.eve_energy_50ff_power', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.eve_energy_50ff_volts', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Eve Energy 50FF Volts', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_28_32', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'voltage', + 'friendly_name': 'Eve Energy 50FF Volts', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.eve_energy_50ff_volts', + 'state': '0.400000005960464', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.eve_energy_50ff', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Eve Energy 50FF', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_28', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Eve Energy 50FF', + 'outlet_in_use': True, + }), + 'entity_id': 'switch.eve_energy_50ff', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.eve_energy_50ff_lock_physical_controls', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:lock-open', + 'original_name': 'Eve Energy 50FF Lock Physical Controls', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_28_36', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Eve Energy 50FF Lock Physical Controls', + 'icon': 'mdi:lock-open', + }), + 'entity_id': 'switch.eve_energy_50ff_lock_physical_controls', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[haa_fan] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'José A. Jiménez Campos', + 'model': 'RavenSystem HAA', + 'name': 'HAA-C718B3', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '5.0.18', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.haa_c718b3_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HAA-C718B3 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HAA-C718B3 Identify', + }), + 'entity_id': 'button.haa_c718b3_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.haa_c718b3_setup', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:cog', + 'original_name': 'HAA-C718B3 Setup', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1010_1012', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HAA-C718B3 Setup', + 'icon': 'mdi:cog', + }), + 'entity_id': 'button.haa_c718b3_setup', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.haa_c718b3_update', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'HAA-C718B3 Update', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1010_1011', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'update', + 'friendly_name': 'HAA-C718B3 Update', + }), + 'entity_id': 'button.haa_c718b3_update', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'preset_modes': None, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'fan', + 'entity_category': None, + 'entity_id': 'fan.haa_c718b3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HAA-C718B3', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HAA-C718B3', + 'percentage': 66, + 'percentage_step': 33.333333333333336, + 'preset_mode': None, + 'preset_modes': None, + 'supported_features': , + }), + 'entity_id': 'fan.haa_c718b3', + 'state': 'on', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:2', + ]), + ]), + 'is_new': False, + 'manufacturer': 'José A. Jiménez Campos', + 'model': 'RavenSystem HAA', + 'name': 'HAA-C718B3', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '5.0.18', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.haa_c718b3_identify_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HAA-C718B3 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HAA-C718B3 Identify', + }), + 'entity_id': 'button.haa_c718b3_identify_2', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.haa_c718b3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'HAA-C718B3', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'HAA-C718B3', + }), + 'entity_id': 'switch.haa_c718b3', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[home_assistant_bridge_fan] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:766313939', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Home Assistant', + 'model': 'Fan', + 'name': 'Ceiling Fan', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '0.104.0.dev0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.ceiling_fan_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Ceiling Fan Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_766313939_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Ceiling Fan Identify', + }), + 'entity_id': 'button.ceiling_fan_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'preset_modes': None, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'fan', + 'entity_category': None, + 'entity_id': 'fan.ceiling_fan', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Ceiling Fan', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_766313939_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Ceiling Fan', + 'percentage': 0, + 'percentage_step': 1.0, + 'preset_mode': None, + 'preset_modes': None, + 'supported_features': , + }), + 'entity_id': 'fan.ceiling_fan', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Home Assistant', + 'model': 'Bridge', + 'name': 'Home Assistant Bridge', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '0.104.0.dev0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.home_assistant_bridge_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Home Assistant Bridge Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Home Assistant Bridge Identify', + }), + 'entity_id': 'button.home_assistant_bridge_identify', + 'state': 'unknown', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1256851357', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Home Assistant', + 'model': 'Fan', + 'name': 'Living Room Fan', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '0.104.0.dev0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.living_room_fan_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Living Room Fan Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1256851357_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Living Room Fan Identify', + }), + 'entity_id': 'button.living_room_fan_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'preset_modes': None, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'fan', + 'entity_category': None, + 'entity_id': 'fan.living_room_fan', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Living Room Fan', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1256851357_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'direction': 'forward', + 'friendly_name': 'Living Room Fan', + 'oscillating': False, + 'percentage': 0, + 'percentage_step': 1.0, + 'preset_mode': None, + 'preset_modes': None, + 'supported_features': , + }), + 'entity_id': 'fan.living_room_fan', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[homespan_daikin_bridge] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Garzola Marco', + 'model': 'Daikin-fwec3a-esp32-homekit-bridge', + 'name': 'Air Conditioner', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.air_conditioner_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Air Conditioner Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Air Conditioner Identify', + }), + 'entity_id': 'button.air_conditioner_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'fan_modes': list([ + 'off', + 'low', + 'medium', + 'high', + ]), + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_temp': 32, + 'min_temp': 18, + 'target_temp_step': 0.5, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'climate', + 'entity_category': None, + 'entity_id': 'climate.air_conditioner_slaveid_1', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Air Conditioner SlaveID 1', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_9', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_temperature': 27.9, + 'fan_mode': 'high', + 'fan_modes': list([ + 'off', + 'low', + 'medium', + 'high', + ]), + 'friendly_name': 'Air Conditioner SlaveID 1', + 'hvac_action': , + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_temp': 32, + 'min_temp': 18, + 'supported_features': , + 'target_temp_step': 0.5, + 'temperature': 24.5, + }), + 'entity_id': 'climate.air_conditioner_slaveid_1', + 'state': 'cool', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.air_conditioner_current_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Air Conditioner Current Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_9_11', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Air Conditioner Current Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.air_conditioner_current_temperature', + 'state': '27.9', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[hue_bridge] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462395276914', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LTW012', + 'name': 'Hue ambiance candle', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_ambiance_candle_identify_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462395276914_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle Identify', + }), + 'entity_id': 'button.hue_ambiance_candle_identify_4', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_ambiance_candle_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462395276914_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle', + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_ambiance_candle_4', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462395276939', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LTW012', + 'name': 'Hue ambiance candle', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_ambiance_candle_identify_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462395276939_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle Identify', + }), + 'entity_id': 'button.hue_ambiance_candle_identify_3', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_ambiance_candle_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462395276939_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle', + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_ambiance_candle_3', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462403113447', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LTW012', + 'name': 'Hue ambiance candle', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_ambiance_candle_identify_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462403113447_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle Identify', + }), + 'entity_id': 'button.hue_ambiance_candle_identify_2', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_ambiance_candle_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462403113447_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle', + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_ambiance_candle_2', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462403233419', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LTW012', + 'name': 'Hue ambiance candle', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_ambiance_candle_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462403233419_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle Identify', + }), + 'entity_id': 'button.hue_ambiance_candle_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_ambiance_candle', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance candle', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462403233419_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance candle', + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_ambiance_candle', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462412411853', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LTW013', + 'name': 'Hue ambiance spot', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_ambiance_spot_identify_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance spot Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462412411853_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance spot Identify', + }), + 'entity_id': 'button.hue_ambiance_spot_identify_2', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_ambiance_spot_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance spot', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462412411853_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'brightness': 255.0, + 'color_mode': , + 'color_temp': 366, + 'color_temp_kelvin': 2732, + 'friendly_name': 'Hue ambiance spot', + 'hs_color': tuple( + 28.327, + 64.71, + ), + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'rgb_color': tuple( + 255, + 167, + 89, + ), + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + 'xy_color': tuple( + 0.524, + 0.387, + ), + }), + 'entity_id': 'light.hue_ambiance_spot_2', + 'state': 'on', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462412413293', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LTW013', + 'name': 'Hue ambiance spot', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_ambiance_spot_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance spot Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462412413293_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue ambiance spot Identify', + }), + 'entity_id': 'button.hue_ambiance_spot_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_ambiance_spot', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue ambiance spot', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462412413293_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'brightness': 255.0, + 'color_mode': , + 'color_temp': 366, + 'color_temp_kelvin': 2732, + 'friendly_name': 'Hue ambiance spot', + 'hs_color': tuple( + 28.327, + 64.71, + ), + 'max_color_temp_kelvin': 6535, + 'max_mireds': 454, + 'min_color_temp_kelvin': 2202, + 'min_mireds': 153, + 'rgb_color': tuple( + 255, + 167, + 89, + ), + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + 'xy_color': tuple( + 0.524, + 0.387, + ), + }), + 'entity_id': 'light.hue_ambiance_spot', + 'state': 'on', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462389072572', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'RWL021', + 'name': 'Hue dimmer switch', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '45.1.17846', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_dimmer_switch_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue dimmer switch Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462389072572_1_22', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue dimmer switch Identify', + }), + 'entity_id': 'button.hue_dimmer_switch_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'event_types': list([ + 'single_press', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'event', + 'entity_category': None, + 'entity_id': 'event.hue_dimmer_switch_button_1', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hue dimmer switch button 1', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'button', + 'unique_id': '00:00:00:00:00:00_6623462389072572_588410585088', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'button', + 'event_type': None, + 'event_types': list([ + 'single_press', + ]), + 'friendly_name': 'Hue dimmer switch button 1', + }), + 'entity_id': 'event.hue_dimmer_switch_button_1', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'event_types': list([ + 'single_press', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'event', + 'entity_category': None, + 'entity_id': 'event.hue_dimmer_switch_button_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hue dimmer switch button 2', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'button', + 'unique_id': '00:00:00:00:00:00_6623462389072572_588410650624', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'button', + 'event_type': None, + 'event_types': list([ + 'single_press', + ]), + 'friendly_name': 'Hue dimmer switch button 2', + }), + 'entity_id': 'event.hue_dimmer_switch_button_2', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'event_types': list([ + 'single_press', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'event', + 'entity_category': None, + 'entity_id': 'event.hue_dimmer_switch_button_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hue dimmer switch button 3', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'button', + 'unique_id': '00:00:00:00:00:00_6623462389072572_588410716160', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'button', + 'event_type': None, + 'event_types': list([ + 'single_press', + ]), + 'friendly_name': 'Hue dimmer switch button 3', + }), + 'entity_id': 'event.hue_dimmer_switch_button_3', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'event_types': list([ + 'single_press', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'event', + 'entity_category': None, + 'entity_id': 'event.hue_dimmer_switch_button_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Hue dimmer switch button 4', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'button', + 'unique_id': '00:00:00:00:00:00_6623462389072572_588410781696', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'button', + 'event_type': None, + 'event_types': list([ + 'single_press', + ]), + 'friendly_name': 'Hue dimmer switch button 4', + }), + 'entity_id': 'event.hue_dimmer_switch_button_4', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.hue_dimmer_switch_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'Hue dimmer switch battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462389072572_644245094400', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'Hue dimmer switch battery', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.hue_dimmer_switch_battery', + 'state': '100', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462378982941', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462378982941_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462378982941_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462378983942', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462378983942_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify_2', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462378983942_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp_2', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462379122122', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462379122122_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify_4', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462379122122_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp_4', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462379123707', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462379123707_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify_3', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462379123707_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp_3', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462383114163', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify_7', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462383114163_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify_7', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp_7', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462383114163_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp_7', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462383114193', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify_6', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462383114193_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify_6', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp_6', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462383114193_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp_6', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:6623462385996792', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips', + 'model': 'LWB010', + 'name': 'Hue white lamp', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.46.13', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.hue_white_lamp_identify_5', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462385996792_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp Identify', + }), + 'entity_id': 'button.hue_white_lamp_identify_5', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.hue_white_lamp_5', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Hue white lamp', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_6623462385996792_2816', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Hue white lamp', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.hue_white_lamp_5', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Philips Lighting', + 'model': 'BSB002', + 'name': 'Philips hue - 482544', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.32.1932126170', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.philips_hue_482544_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Philips hue - 482544 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Philips hue - 482544 Identify', + }), + 'entity_id': 'button.philips_hue_482544_identify', + 'state': 'unknown', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[koogeek_ls1] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Koogeek', + 'model': 'LS1', + 'name': 'Koogeek-LS1-20833F', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '2.2.15', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.koogeek_ls1_20833f_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-LS1-20833F Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-LS1-20833F Identify', + }), + 'entity_id': 'button.koogeek_ls1_20833f_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.koogeek_ls1_20833f_light_strip', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-LS1-20833F Light Strip', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-LS1-20833F Light Strip', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.koogeek_ls1_20833f_light_strip', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[koogeek_p1eu] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Koogeek', + 'model': 'P1EU', + 'name': 'Koogeek-P1-A00AA0', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '2.3.7', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.koogeek_p1_a00aa0_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-P1-A00AA0 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-P1-A00AA0 Identify', + }), + 'entity_id': 'button.koogeek_p1_a00aa0_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.koogeek_p1_a00aa0_power', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Koogeek-P1-A00AA0 Power', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_21_22', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'power', + 'friendly_name': 'Koogeek-P1-A00AA0 Power', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.koogeek_p1_a00aa0_power', + 'state': '5', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.koogeek_p1_a00aa0_outlet', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-P1-A00AA0 outlet', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-P1-A00AA0 outlet', + 'outlet_in_use': True, + }), + 'entity_id': 'switch.koogeek_p1_a00aa0_outlet', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[koogeek_sw2] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Koogeek', + 'model': 'KH02CN', + 'name': 'Koogeek-SW2-187A91', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.3', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.koogeek_sw2_187a91_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-SW2-187A91 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-SW2-187A91 Identify', + }), + 'entity_id': 'button.koogeek_sw2_187a91_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.koogeek_sw2_187a91_power', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Koogeek-SW2-187A91 Power', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_14_18', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'power', + 'friendly_name': 'Koogeek-SW2-187A91 Power', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.koogeek_sw2_187a91_power', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.koogeek_sw2_187a91_switch_1', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-SW2-187A91 Switch 1', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-SW2-187A91 Switch 1', + }), + 'entity_id': 'switch.koogeek_sw2_187a91_switch_1', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.koogeek_sw2_187a91_switch_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Koogeek-SW2-187A91 Switch 2', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_11', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Koogeek-SW2-187A91 Switch 2', + }), + 'entity_id': 'switch.koogeek_sw2_187a91_switch_2', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[lennox_e30] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '3.0.XX', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Lennox', + 'model': 'E30 2B', + 'name': 'Lennox', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.40.XX', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.lennox_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Lennox Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Lennox Identify', + }), + 'entity_id': 'button.lennox_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_temp': 37, + 'min_temp': 4.5, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'climate', + 'entity_category': None, + 'entity_id': 'climate.lennox', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Lennox', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_100', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_humidity': 34, + 'current_temperature': 20.5, + 'friendly_name': 'Lennox', + 'hvac_action': , + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_temp': 37, + 'min_temp': 4.5, + 'supported_features': , + 'target_temp_high': 29.5, + 'target_temp_low': 21, + 'temperature': None, + }), + 'entity_id': 'climate.lennox', + 'state': 'heat_cool', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.lennox_temperature_display_units', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:thermometer', + 'original_name': 'Lennox Temperature Display Units', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'temperature_display_units', + 'unique_id': '00:00:00:00:00:00_1_100_105', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Lennox Temperature Display Units', + 'icon': 'mdi:thermometer', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'entity_id': 'select.lennox_temperature_display_units', + 'state': 'celsius', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.lennox_current_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Lennox Current Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_100_107', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'Lennox Current Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.lennox_current_humidity', + 'state': '34', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.lennox_current_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Lennox Current Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_100_103', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Lennox Current Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.lennox_current_temperature', + 'state': '20.5', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[lg_tv] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'LG Electronics', + 'model': 'OLED55B9PUA', + 'name': 'LG webOS TV AF80', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '04.71.04', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.lg_webos_tv_af80_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'LG webOS TV AF80 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'LG webOS TV AF80 Identify', + }), + 'entity_id': 'button.lg_webos_tv_af80_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'source_list': list([ + 'AirPlay', + 'Live TV', + 'HDMI 1', + 'Sony', + 'Apple', + 'AV', + 'HDMI 4', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'media_player', + 'entity_category': None, + 'entity_id': 'media_player.lg_webos_tv_af80', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'LG webOS TV AF80', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'tv', + 'friendly_name': 'LG webOS TV AF80', + 'source': 'HDMI 4', + 'source_list': list([ + 'AirPlay', + 'Live TV', + 'HDMI 1', + 'Sony', + 'Apple', + 'AV', + 'HDMI 4', + ]), + 'supported_features': , + }), + 'entity_id': 'media_player.lg_webos_tv_af80', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.lg_webos_tv_af80_mute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'LG webOS TV AF80 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_80_82', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'LG webOS TV AF80 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.lg_webos_tv_af80_mute', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[lutron_caseta_bridge] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:21474836482', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Lutron Electronics Co., Inc', + 'model': 'PD-FSQN-XX', + 'name': 'Caséta® Wireless Fan Speed Control', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '001.005', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.caseta_r_wireless_fan_speed_control_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Caséta® Wireless Fan Speed Control Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_21474836482_1_85899345921', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Caséta® Wireless Fan Speed Control Identify', + }), + 'entity_id': 'button.caseta_r_wireless_fan_speed_control_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'preset_modes': None, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'fan', + 'entity_category': None, + 'entity_id': 'fan.caseta_r_wireless_fan_speed_control', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Caséta® Wireless Fan Speed Control', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_21474836482_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Caséta® Wireless Fan Speed Control', + 'percentage': 0, + 'percentage_step': 25.0, + 'preset_mode': None, + 'preset_modes': None, + 'supported_features': , + }), + 'entity_id': 'fan.caseta_r_wireless_fan_speed_control', + 'state': 'off', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Lutron Electronics Co., Inc', + 'model': 'L-BDG2-WH', + 'name': 'Smart Bridge 2', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '08.08', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.smart_bridge_2_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Smart Bridge 2 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_85899345921', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Smart Bridge 2 Identify', + }), + 'entity_id': 'button.smart_bridge_2_identify', + 'state': 'unknown', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[mss425f] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '4.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Meross', + 'model': 'MSS425F', + 'name': 'MSS425F-15cc', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '4.2.3', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.mss425f_15cc_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS425F-15cc Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS425F-15cc Identify', + }), + 'entity_id': 'button.mss425f_15cc_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.mss425f_15cc_outlet_1', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS425F-15cc Outlet-1', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_12', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS425F-15cc Outlet-1', + }), + 'entity_id': 'switch.mss425f_15cc_outlet_1', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.mss425f_15cc_outlet_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS425F-15cc Outlet-2', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_15', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS425F-15cc Outlet-2', + }), + 'entity_id': 'switch.mss425f_15cc_outlet_2', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.mss425f_15cc_outlet_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS425F-15cc Outlet-3', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_18', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS425F-15cc Outlet-3', + }), + 'entity_id': 'switch.mss425f_15cc_outlet_3', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.mss425f_15cc_outlet_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS425F-15cc Outlet-4', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_21', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS425F-15cc Outlet-4', + }), + 'entity_id': 'switch.mss425f_15cc_outlet_4', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.mss425f_15cc_usb', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS425F-15cc USB', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_24', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS425F-15cc USB', + }), + 'entity_id': 'switch.mss425f_15cc_usb', + 'state': 'on', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[mss565] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '4.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Meross', + 'model': 'MSS565', + 'name': 'MSS565-28da', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '4.1.9', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.mss565_28da_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS565-28da Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'MSS565-28da Identify', + }), + 'entity_id': 'button.mss565_28da_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.mss565_28da_dimmer_switch', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'MSS565-28da Dimmer Switch', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_12', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'brightness': 170.85, + 'color_mode': , + 'friendly_name': 'MSS565-28da Dimmer Switch', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.mss565_28da_dimmer_switch', + 'state': 'on', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[mysa_living] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Empowered Homes Inc.', + 'model': 'v1', + 'name': 'Mysa-85dda9', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '2.8.1', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.mysa_85dda9_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Mysa-85dda9 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Mysa-85dda9 Identify', + }), + 'entity_id': 'button.mysa_85dda9_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_temp': 35, + 'min_temp': 7, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'climate', + 'entity_category': None, + 'entity_id': 'climate.mysa_85dda9_thermostat', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Mysa-85dda9 Thermostat', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_20', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_humidity': 40, + 'current_temperature': 24.1, + 'friendly_name': 'Mysa-85dda9 Thermostat', + 'hvac_action': , + 'hvac_modes': list([ + , + , + , + , + ]), + 'max_temp': 35, + 'min_temp': 7, + 'supported_features': , + 'temperature': None, + }), + 'entity_id': 'climate.mysa_85dda9_thermostat', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.mysa_85dda9_display', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Mysa-85dda9 Display', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_40', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Mysa-85dda9 Display', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.mysa_85dda9_display', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.mysa_85dda9_temperature_display_units', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:thermometer', + 'original_name': 'Mysa-85dda9 Temperature Display Units', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'temperature_display_units', + 'unique_id': '00:00:00:00:00:00_1_20_26', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Mysa-85dda9 Temperature Display Units', + 'icon': 'mdi:thermometer', + 'options': list([ + 'celsius', + 'fahrenheit', + ]), + }), + 'entity_id': 'select.mysa_85dda9_temperature_display_units', + 'state': 'celsius', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.mysa_85dda9_current_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Mysa-85dda9 Current Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_20_27', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'Mysa-85dda9 Current Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.mysa_85dda9_current_humidity', + 'state': '40', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.mysa_85dda9_current_temperature', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Mysa-85dda9 Current Temperature', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_20_25', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Mysa-85dda9 Current Temperature', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.mysa_85dda9_current_temperature', + 'state': '24.1', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[nanoleaf_strip_nl55] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.2.4', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Nanoleaf', + 'model': 'NL55', + 'name': 'Nanoleaf Strip 3B32', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.4.40', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.nanoleaf_strip_3b32_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Nanoleaf Strip 3B32 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Nanoleaf Strip 3B32 Identify', + }), + 'entity_id': 'button.nanoleaf_strip_3b32_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.nanoleaf_strip_3b32_provision_preferred_thread_credentials', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Nanoleaf Strip 3B32 Provision Preferred Thread Credentials', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_31_119', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Nanoleaf Strip 3B32 Provision Preferred Thread Credentials', + }), + 'entity_id': 'button.nanoleaf_strip_3b32_provision_preferred_thread_credentials', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max_color_temp_kelvin': 6535, + 'max_mireds': 470, + 'min_color_temp_kelvin': 2127, + 'min_mireds': 153, + 'supported_color_modes': list([ + , + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.nanoleaf_strip_3b32_nanoleaf_light_strip', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Nanoleaf Strip 3B32 Nanoleaf Light Strip', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_19', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'brightness': 255.0, + 'color_mode': , + 'friendly_name': 'Nanoleaf Strip 3B32 Nanoleaf Light Strip', + 'hs_color': tuple( + 30.0, + 89.0, + ), + 'max_color_temp_kelvin': 6535, + 'max_mireds': 470, + 'min_color_temp_kelvin': 2127, + 'min_mireds': 153, + 'rgb_color': tuple( + 255, + 141, + 28, + ), + 'supported_color_modes': list([ + , + , + ]), + 'supported_features': , + 'xy_color': tuple( + 0.589, + 0.385, + ), + }), + 'entity_id': 'light.nanoleaf_strip_3b32_nanoleaf_light_strip', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'border_router_capable', + 'full', + 'minimal', + 'none', + 'router_eligible', + 'sleepy', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.nanoleaf_strip_3b32_thread_capabilities', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Nanoleaf Strip 3B32 Thread Capabilities', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'thread_node_capabilities', + 'unique_id': '00:00:00:00:00:00_1_31_115', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'enum', + 'friendly_name': 'Nanoleaf Strip 3B32 Thread Capabilities', + 'options': list([ + 'border_router_capable', + 'full', + 'minimal', + 'none', + 'router_eligible', + 'sleepy', + ]), + }), + 'entity_id': 'sensor.nanoleaf_strip_3b32_thread_capabilities', + 'state': 'border_router_capable', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'border_router', + 'child', + 'detached', + 'disabled', + 'joining', + 'leader', + 'router', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.nanoleaf_strip_3b32_thread_status', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Nanoleaf Strip 3B32 Thread Status', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'thread_status', + 'unique_id': '00:00:00:00:00:00_1_31_117', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'enum', + 'friendly_name': 'Nanoleaf Strip 3B32 Thread Status', + 'options': list([ + 'border_router', + 'child', + 'detached', + 'disabled', + 'joining', + 'leader', + 'router', + ]), + }), + 'entity_id': 'sensor.nanoleaf_strip_3b32_thread_status', + 'state': 'border_router', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[netamo_doorbell] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Netatmo', + 'model': 'Netatmo Doorbell', + 'name': 'Netatmo-Doorbell-g738658', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '80.0.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.netatmo_doorbell_g738658_motion_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Netatmo-Doorbell-g738658 Motion Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_10', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'motion', + 'friendly_name': 'Netatmo-Doorbell-g738658 Motion Sensor', + }), + 'entity_id': 'binary_sensor.netatmo_doorbell_g738658_motion_sensor', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.netatmo_doorbell_g738658_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Netatmo-Doorbell-g738658 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Netatmo-Doorbell-g738658 Identify', + }), + 'entity_id': 'button.netatmo_doorbell_g738658_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'camera', + 'entity_category': None, + 'entity_id': 'camera.netatmo_doorbell_g738658', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Netatmo-Doorbell-g738658', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Netatmo-Doorbell-g738658', + 'supported_features': , + }), + 'entity_id': 'camera.netatmo_doorbell_g738658', + 'state': 'idle', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'event_types': list([ + 'single_press', + 'double_press', + 'long_press', + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'event', + 'entity_category': None, + 'entity_id': 'event.netatmo_doorbell_g738658', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Netatmo-Doorbell-g738658', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': 'doorbell', + 'unique_id': '00:00:00:00:00:00_1_49', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'doorbell', + 'event_type': None, + 'event_types': list([ + 'single_press', + 'double_press', + 'long_press', + ]), + 'friendly_name': 'Netatmo-Doorbell-g738658', + }), + 'entity_id': 'event.netatmo_doorbell_g738658', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.netatmo_doorbell_g738658_mute', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'Netatmo-Doorbell-g738658 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_51_52', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Netatmo-Doorbell-g738658 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.netatmo_doorbell_g738658_mute', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': , + 'entity_id': 'switch.netatmo_doorbell_g738658_mute_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:volume-mute', + 'original_name': 'Netatmo-Doorbell-g738658 Mute', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_8_9', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Netatmo-Doorbell-g738658 Mute', + 'icon': 'mdi:volume-mute', + }), + 'entity_id': 'switch.netatmo_doorbell_g738658_mute_2', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[netamo_smart_co_alarm] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Netatmo', + 'model': 'Smart CO Alarm', + 'name': 'Smart CO Alarm', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.3', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.smart_co_alarm_carbon_monoxide_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Smart CO Alarm Carbon Monoxide Sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_22', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'carbon_monoxide', + 'friendly_name': 'Smart CO Alarm Carbon Monoxide Sensor', + }), + 'entity_id': 'binary_sensor.smart_co_alarm_carbon_monoxide_sensor', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': , + 'entity_id': 'binary_sensor.smart_co_alarm_low_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Smart CO Alarm Low Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_36', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'Smart CO Alarm Low Battery', + }), + 'entity_id': 'binary_sensor.smart_co_alarm_low_battery', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.smart_co_alarm_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Smart CO Alarm Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_7_3', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Smart CO Alarm Identify', + }), + 'entity_id': 'button.smart_co_alarm_identify', + 'state': 'unknown', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[netatmo_home_coach] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Netatmo', + 'model': 'Healthy Home Coach', + 'name': 'Healthy Home Coach', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '59', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.healthy_home_coach_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Healthy Home Coach Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Healthy Home Coach Identify', + }), + 'entity_id': 'button.healthy_home_coach_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.healthy_home_coach_air_quality', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Healthy Home Coach Air Quality', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_24_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'aqi', + 'friendly_name': 'Healthy Home Coach Air Quality', + 'state_class': , + }), + 'entity_id': 'sensor.healthy_home_coach_air_quality', + 'state': '1', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.healthy_home_coach_carbon_dioxide_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Healthy Home Coach Carbon Dioxide sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_10', + 'unit_of_measurement': 'ppm', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'carbon_dioxide', + 'friendly_name': 'Healthy Home Coach Carbon Dioxide sensor', + 'state_class': , + 'unit_of_measurement': 'ppm', + }), + 'entity_id': 'sensor.healthy_home_coach_carbon_dioxide_sensor', + 'state': '804', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.healthy_home_coach_humidity_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Healthy Home Coach Humidity sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_14', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'Healthy Home Coach Humidity sensor', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.healthy_home_coach_humidity_sensor', + 'state': '59', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.healthy_home_coach_noise', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Healthy Home Coach Noise', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_20_21', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'sound_pressure', + 'friendly_name': 'Healthy Home Coach Noise', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.healthy_home_coach_noise', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.healthy_home_coach_temperature_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Healthy Home Coach Temperature sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_17', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'Healthy Home Coach Temperature sensor', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.healthy_home_coach_temperature_sensor', + 'state': '22.9', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[rainmachine-pro-8] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Green Electronics LLC', + 'model': 'SPK5 Pro', + 'name': 'RainMachine-00ce4a', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.0.4', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.rainmachine_00ce4a_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RainMachine-00ce4a Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a Identify', + }), + 'entity_id': 'button.rainmachine_00ce4a_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_512', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_2', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_768', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_2', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_3', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1024', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_3', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_4', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1280', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_4', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_5', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1536', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_5', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_6', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1792', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_6', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_7', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_2048', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_7', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.rainmachine_00ce4a_8', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'RainMachine-00ce4a', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_2304', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RainMachine-00ce4a', + 'icon': 'mdi:water', + 'in_use': False, + 'is_configured': True, + 'remaining_duration': 0, + }), + 'entity_id': 'switch.rainmachine_00ce4a_8', + 'state': 'off', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[ryse_smart_bridge] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:2', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE Shade', + 'name': 'Master Bath South', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.0.8', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.master_bath_south_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Master Bath South Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'Master Bath South Identify', + }), + 'entity_id': 'button.master_bath_south_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.master_bath_south_ryse_shade', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Master Bath South RYSE Shade', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 0, + 'friendly_name': 'Master Bath South RYSE Shade', + 'supported_features': , + }), + 'entity_id': 'cover.master_bath_south_ryse_shade', + 'state': 'closed', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.master_bath_south_ryse_shade_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'Master Bath South RYSE Shade Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_64', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'Master Bath South RYSE Shade Battery', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.master_bath_south_ryse_shade_battery', + 'state': '100', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '0101.3521.0436', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE SmartBridge', + 'name': 'RYSE SmartBridge', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.3.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.ryse_smartbridge_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RYSE SmartBridge Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RYSE SmartBridge Identify', + }), + 'entity_id': 'button.ryse_smartbridge_identify', + 'state': 'unknown', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:3', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE Shade', + 'name': 'RYSE SmartShade', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.ryse_smartshade_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RYSE SmartShade Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RYSE SmartShade Identify', + }), + 'entity_id': 'button.ryse_smartshade_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.ryse_smartshade_ryse_shade', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RYSE SmartShade RYSE Shade', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 100, + 'friendly_name': 'RYSE SmartShade RYSE Shade', + 'supported_features': , + }), + 'entity_id': 'cover.ryse_smartshade_ryse_shade', + 'state': 'open', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.ryse_smartshade_ryse_shade_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'RYSE SmartShade RYSE Shade Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_64', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'RYSE SmartShade RYSE Shade Battery', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.ryse_smartshade_ryse_shade_battery', + 'state': '100', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[ryse_smart_bridge_four_shades] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:4', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE Shade', + 'name': 'BR Left', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.0.8', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.br_left_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'BR Left Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'BR Left Identify', + }), + 'entity_id': 'button.br_left_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.br_left_ryse_shade', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'BR Left RYSE Shade', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 100, + 'friendly_name': 'BR Left RYSE Shade', + 'supported_features': , + }), + 'entity_id': 'cover.br_left_ryse_shade', + 'state': 'open', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.br_left_ryse_shade_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'BR Left RYSE Shade Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_4_64', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'BR Left RYSE Shade Battery', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.br_left_ryse_shade_battery', + 'state': '100', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:2', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE Shade', + 'name': 'LR Left', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.0.8', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.lr_left_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'LR Left Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'LR Left Identify', + }), + 'entity_id': 'button.lr_left_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.lr_left_ryse_shade', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'LR Left RYSE Shade', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 0, + 'friendly_name': 'LR Left RYSE Shade', + 'supported_features': , + }), + 'entity_id': 'cover.lr_left_ryse_shade', + 'state': 'closed', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.lr_left_ryse_shade_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'LR Left RYSE Shade Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_64', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'LR Left RYSE Shade Battery', + 'icon': 'mdi:battery-90', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.lr_left_ryse_shade_battery', + 'state': '89', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:3', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE Shade', + 'name': 'LR Right', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.0.8', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.lr_right_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'LR Right Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'LR Right Identify', + }), + 'entity_id': 'button.lr_right_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.lr_right_ryse_shade', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'LR Right RYSE Shade', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 0, + 'friendly_name': 'LR Right RYSE Shade', + 'supported_features': , + }), + 'entity_id': 'cover.lr_right_ryse_shade', + 'state': 'closed', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.lr_right_ryse_shade_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'LR Right RYSE Shade Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_64', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'LR Right RYSE Shade Battery', + 'icon': 'mdi:battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.lr_right_ryse_shade_battery', + 'state': '100', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '0401.3521.0679', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE SmartBridge', + 'name': 'RYSE SmartBridge', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.3.0', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.ryse_smartbridge_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RYSE SmartBridge Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RYSE SmartBridge Identify', + }), + 'entity_id': 'button.ryse_smartbridge_identify', + 'state': 'unknown', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:5', + ]), + ]), + 'is_new': False, + 'manufacturer': 'RYSE Inc.', + 'model': 'RYSE Shade', + 'name': 'RZSS', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.0.8', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.rzss_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RZSS Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_5_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'RZSS Identify', + }), + 'entity_id': 'button.rzss_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.rzss_ryse_shade', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RZSS RYSE Shade', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_5_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 100, + 'friendly_name': 'RZSS RYSE Shade', + 'supported_features': , + }), + 'entity_id': 'cover.rzss_ryse_shade', + 'state': 'open', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.rzss_ryse_shade_battery', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': 'mdi:battery-unknown', + 'original_name': 'RZSS RYSE Shade Battery', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_5_64', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'battery', + 'friendly_name': 'RZSS RYSE Shade Battery', + 'icon': 'mdi:battery-alert', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.rzss_ryse_shade_battery', + 'state': '0', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[schlage_sense] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.3.0', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Schlage ', + 'model': 'BE479CAM619', + 'name': 'SENSE ', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '004.027.000', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.sense_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'SENSE Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_3', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'SENSE Identify', + }), + 'entity_id': 'button.sense_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'lock', + 'entity_category': None, + 'entity_id': 'lock.sense_lock_mechanism', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'SENSE Lock Mechanism', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_30', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'SENSE Lock Mechanism', + 'supported_features': , + }), + 'entity_id': 'lock.sense_lock_mechanism', + 'state': 'unknown', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[simpleconnect_fan] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'Hunter Fan', + 'model': 'SIMPLEconnect', + 'name': 'SIMPLEconnect Fan-06F674', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.simpleconnect_fan_06f674_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'SIMPLEconnect Fan-06F674 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'SIMPLEconnect Fan-06F674 Identify', + }), + 'entity_id': 'button.simpleconnect_fan_06f674_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'preset_modes': None, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'fan', + 'entity_category': None, + 'entity_id': 'fan.simpleconnect_fan_06f674_hunter_fan', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'SIMPLEconnect Fan-06F674 Hunter Fan', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'direction': 'forward', + 'friendly_name': 'SIMPLEconnect Fan-06F674 Hunter Fan', + 'percentage': 0, + 'percentage_step': 25.0, + 'preset_mode': None, + 'preset_modes': None, + 'supported_features': , + }), + 'entity_id': 'fan.simpleconnect_fan_06f674_hunter_fan', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.simpleconnect_fan_06f674_hunter_light', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'SIMPLEconnect Fan-06F674 Hunter Light', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_29', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'brightness': 76.5, + 'color_mode': , + 'friendly_name': 'SIMPLEconnect Fan-06F674 Hunter Light', + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + }), + 'entity_id': 'light.simpleconnect_fan_06f674_hunter_light', + 'state': 'on', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[velux_gateway] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'VELUX', + 'model': 'VELUX Gateway', + 'name': 'VELUX Gateway', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '70', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.velux_gateway_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VELUX Gateway Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_6', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VELUX Gateway Identify', + }), + 'entity_id': 'button.velux_gateway_identify', + 'state': 'unknown', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:2', + ]), + ]), + 'is_new': False, + 'manufacturer': 'VELUX', + 'model': 'VELUX Sensor', + 'name': 'VELUX Sensor', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '16', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.velux_sensor_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VELUX Sensor Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VELUX Sensor Identify', + }), + 'entity_id': 'button.velux_sensor_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.velux_sensor_carbon_dioxide_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VELUX Sensor Carbon Dioxide sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_14', + 'unit_of_measurement': 'ppm', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'carbon_dioxide', + 'friendly_name': 'VELUX Sensor Carbon Dioxide sensor', + 'state_class': , + 'unit_of_measurement': 'ppm', + }), + 'entity_id': 'sensor.velux_sensor_carbon_dioxide_sensor', + 'state': '400', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.velux_sensor_humidity_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VELUX Sensor Humidity sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_11', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'VELUX Sensor Humidity sensor', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.velux_sensor_humidity_sensor', + 'state': '58', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.velux_sensor_temperature_sensor', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VELUX Sensor Temperature sensor', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_2_8', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'temperature', + 'friendly_name': 'VELUX Sensor Temperature sensor', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.velux_sensor_temperature_sensor', + 'state': '18.9', + }), + }), + ]), + }), + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:3', + ]), + ]), + 'is_new': False, + 'manufacturer': 'VELUX', + 'model': 'VELUX Window', + 'name': 'VELUX Window', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '48', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.velux_window_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VELUX Window Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_1_7', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VELUX Window Identify', + }), + 'entity_id': 'button.velux_window_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'cover', + 'entity_category': None, + 'entity_id': 'cover.velux_window_roof_window', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VELUX Window Roof Window', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_3_8', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'current_position': 0, + 'device_class': 'window', + 'friendly_name': 'VELUX Window Roof Window', + 'supported_features': , + }), + 'entity_id': 'cover.velux_window_roof_window', + 'state': 'closed', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[vocolinc_flowerbud] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '0.1', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'VOCOlinc', + 'model': 'Flowerbud', + 'name': 'VOCOlinc-Flowerbud-0d324b', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '3.121.2', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.vocolinc_flowerbud_0d324b_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VOCOlinc-Flowerbud-0d324b Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VOCOlinc-Flowerbud-0d324b Identify', + }), + 'entity_id': 'button.vocolinc_flowerbud_0d324b_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'available_modes': list([ + 'normal', + 'auto', + ]), + 'max_humidity': 100, + 'min_humidity': 0, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'humidifier', + 'entity_category': None, + 'entity_id': 'humidifier.vocolinc_flowerbud_0d324b', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VOCOlinc-Flowerbud-0d324b', + 'platform': 'homekit_controller', + 'supported_features': , + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_30', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'available_modes': list([ + 'normal', + 'auto', + ]), + 'current_humidity': 45.0, + 'device_class': 'humidifier', + 'friendly_name': 'VOCOlinc-Flowerbud-0d324b', + 'humidity': 100.0, + 'max_humidity': 100, + 'min_humidity': 0, + 'mode': 'normal', + 'supported_features': , + }), + 'entity_id': 'humidifier.vocolinc_flowerbud_0d324b', + 'state': 'off', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'supported_color_modes': list([ + , + ]), + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'light', + 'entity_category': None, + 'entity_id': 'light.vocolinc_flowerbud_0d324b_mood_light', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VOCOlinc-Flowerbud-0d324b Mood Light', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_9', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'brightness': 127.5, + 'color_mode': , + 'friendly_name': 'VOCOlinc-Flowerbud-0d324b Mood Light', + 'hs_color': tuple( + 120.0, + 100.0, + ), + 'rgb_color': tuple( + 0, + 255, + 0, + ), + 'supported_color_modes': list([ + , + ]), + 'supported_features': , + 'xy_color': tuple( + 0.172, + 0.747, + ), + }), + 'entity_id': 'light.vocolinc_flowerbud_0d324b_mood_light', + 'state': 'on', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'max': 5, + 'min': 1, + 'mode': , + 'step': 1, + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.vocolinc_flowerbud_0d324b_spray_quantity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': 'mdi:water', + 'original_name': 'VOCOlinc-Flowerbud-0d324b Spray Quantity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_30_38', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VOCOlinc-Flowerbud-0d324b Spray Quantity', + 'icon': 'mdi:water', + 'max': 5, + 'min': 1, + 'mode': , + 'step': 1, + }), + 'entity_id': 'number.vocolinc_flowerbud_0d324b_spray_quantity', + 'state': '5', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.vocolinc_flowerbud_0d324b_current_humidity', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VOCOlinc-Flowerbud-0d324b Current Humidity', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_30_33', + 'unit_of_measurement': '%', + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'humidity', + 'friendly_name': 'VOCOlinc-Flowerbud-0d324b Current Humidity', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'entity_id': 'sensor.vocolinc_flowerbud_0d324b_current_humidity', + 'state': '45.0', + }), + }), + ]), + }), + ]) +# --- +# name: test_snapshots[vocolinc_vp3] + list([ + dict({ + 'device': dict({ + 'area_id': None, + 'config_entries': list([ + 'TestData', + ]), + 'configuration_url': None, + 'connections': list([ + ]), + 'disabled_by': None, + 'entry_type': None, + 'hw_version': '1.0.3', + 'identifiers': list([ + list([ + 'homekit_controller:accessory-id', + '00:00:00:00:00:00:aid:1', + ]), + ]), + 'is_new': False, + 'manufacturer': 'VOCOlinc', + 'model': 'VP3', + 'name': 'VOCOlinc-VP3-123456', + 'name_by_user': None, + 'suggested_area': None, + 'sw_version': '1.101.2', + }), + 'entities': list([ + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.vocolinc_vp3_123456_identify', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VOCOlinc-VP3-123456 Identify', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_1_2', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VOCOlinc-VP3-123456 Identify', + }), + 'entity_id': 'button.vocolinc_vp3_123456_identify', + 'state': 'unknown', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': None, + 'entity_id': 'sensor.vocolinc_vp3_123456_power', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'VOCOlinc-VP3-123456 Power', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_48_97', + 'unit_of_measurement': , + }), + 'state': dict({ + 'attributes': dict({ + 'device_class': 'power', + 'friendly_name': 'VOCOlinc-VP3-123456 Power', + 'state_class': , + 'unit_of_measurement': , + }), + 'entity_id': 'sensor.vocolinc_vp3_123456_power', + 'state': '0', + }), + }), + dict({ + 'entry': dict({ + 'aliases': list([ + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': 'TestData', + 'device_class': None, + 'disabled_by': None, + 'domain': 'switch', + 'entity_category': None, + 'entity_id': 'switch.vocolinc_vp3_123456_outlet', + 'has_entity_name': False, + 'hidden_by': None, + 'icon': None, + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'VOCOlinc-VP3-123456 Outlet', + 'platform': 'homekit_controller', + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00:00:00:00:00:00_1_48', + 'unit_of_measurement': None, + }), + 'state': dict({ + 'attributes': dict({ + 'friendly_name': 'VOCOlinc-VP3-123456 Outlet', + }), + 'entity_id': 'switch.vocolinc_vp3_123456_outlet', + 'state': 'on', + }), + }), + ]), + }), + ]) +# --- diff --git a/tests/components/homekit_controller/specific_devices/test_airversa_ap2.py b/tests/components/homekit_controller/specific_devices/test_airversa_ap2.py deleted file mode 100644 index 0091fc098de..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_airversa_ap2.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Tests for Airversa AP2 Air Purifier.""" -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, PERCENTAGE -from homeassistant.core import HomeAssistant -from homeassistant.helpers.entity import EntityCategory - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_airversa_ap2_setup(hass: HomeAssistant) -> None: - """Test that an Ecbobee occupancy sensor be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "airversa_ap2.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Airversa AP2 1808", - model="AP2", - manufacturer="Sleekpoint Innovations", - sw_version="0.8.16", - hw_version="0.1", - serial_number="1234", - devices=[], - entities=[ - EntityTestInfo( - entity_id="switch.airversa_ap2_1808_lock_physical_controls", - friendly_name="Airversa AP2 1808 Lock Physical Controls", - unique_id="00:00:00:00:00:00_1_32832_32839", - entity_category=EntityCategory.CONFIG, - state="off", - ), - EntityTestInfo( - entity_id="switch.airversa_ap2_1808_mute", - friendly_name="Airversa AP2 1808 Mute", - unique_id="00:00:00:00:00:00_1_32832_32843", - entity_category=EntityCategory.CONFIG, - state="on", - ), - EntityTestInfo( - entity_id="switch.airversa_ap2_1808_sleep_mode", - friendly_name="Airversa AP2 1808 Sleep Mode", - unique_id="00:00:00:00:00:00_1_32832_32842", - entity_category=EntityCategory.CONFIG, - state="off", - ), - EntityTestInfo( - entity_id="sensor.airversa_ap2_1808_air_quality", - friendly_name="Airversa AP2 1808 Air Quality", - unique_id="00:00:00:00:00:00_1_2576_2579", - state="1", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - ), - EntityTestInfo( - entity_id="sensor.airversa_ap2_1808_filter_lifetime", - friendly_name="Airversa AP2 1808 Filter lifetime", - unique_id="00:00:00:00:00:00_1_32896_32900", - state="100.0", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=PERCENTAGE, - ), - EntityTestInfo( - entity_id="sensor.airversa_ap2_1808_pm2_5_density", - friendly_name="Airversa AP2 1808 PM2.5 Density", - unique_id="00:00:00:00:00:00_1_2576_2580", - state="3.0", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, - ), - EntityTestInfo( - entity_id="sensor.airversa_ap2_1808_thread_capabilities", - friendly_name="Airversa AP2 1808 Thread Capabilities", - unique_id="00:00:00:00:00:00_1_112_115", - state="router_eligible", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={ - "options": [ - "border_router_capable", - "full", - "minimal", - "none", - "router_eligible", - "sleepy", - ] - }, - ), - EntityTestInfo( - entity_id="sensor.airversa_ap2_1808_thread_status", - friendly_name="Airversa AP2 1808 Thread Status", - unique_id="00:00:00:00:00:00_1_112_117", - state="router", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={ - "options": [ - "border_router", - "child", - "detached", - "disabled", - "joining", - "leader", - "router", - ] - }, - ), - EntityTestInfo( - entity_id="button.airversa_ap2_1808_identify", - friendly_name="Airversa AP2 1808 Identify", - unique_id="00:00:00:00:00:00_1_1_2", - entity_category=EntityCategory.DIAGNOSTIC, - state="unknown", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_aqara_gateway.py b/tests/components/homekit_controller/specific_devices/test_aqara_gateway.py deleted file mode 100644 index 30ecc298d40..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_aqara_gateway.py +++ /dev/null @@ -1,127 +0,0 @@ -"""Regression tests for Aqara Gateway V3. - -https://github.com/home-assistant/core/issues/20957 -""" -from homeassistant.components.alarm_control_panel import AlarmControlPanelEntityFeature -from homeassistant.components.number import NumberMode -from homeassistant.const import EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_aqara_gateway_setup(hass: HomeAssistant) -> None: - """Test that a Aqara Gateway can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "aqara_gateway.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Aqara Hub-1563", - model="ZHWA11LM", - manufacturer="Aqara", - sw_version="1.4.7", - hw_version="", - serial_number="0000000123456789", - devices=[], - entities=[ - EntityTestInfo( - "alarm_control_panel.aqara_hub_1563_security_system", - friendly_name="Aqara Hub-1563 Security System", - unique_id="00:00:00:00:00:00_1_66304", - supported_features=AlarmControlPanelEntityFeature.ARM_NIGHT - | AlarmControlPanelEntityFeature.ARM_HOME - | AlarmControlPanelEntityFeature.ARM_AWAY, - state="disarmed", - ), - EntityTestInfo( - "light.aqara_hub_1563_lightbulb_1563", - friendly_name="Aqara Hub-1563 Lightbulb-1563", - unique_id="00:00:00:00:00:00_1_65792", - supported_features=0, - capabilities={"supported_color_modes": ["hs"]}, - state="off", - ), - EntityTestInfo( - "number.aqara_hub_1563_volume", - friendly_name="Aqara Hub-1563 Volume", - unique_id="00:00:00:00:00:00_1_65536_65541", - capabilities={ - "max": 100, - "min": 0, - "mode": NumberMode.AUTO, - "step": 1, - }, - entity_category=EntityCategory.CONFIG, - state="40", - ), - EntityTestInfo( - "switch.aqara_hub_1563_pairing_mode", - friendly_name="Aqara Hub-1563 Pairing Mode", - unique_id="00:00:00:00:00:00_1_65536_65538", - entity_category=EntityCategory.CONFIG, - state="off", - ), - ], - ), - ) - - -async def test_aqara_gateway_e1_setup(hass: HomeAssistant) -> None: - """Test that an Aqara E1 Gateway can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "aqara_e1.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Aqara-Hub-E1-00A0", - model="HE1-G01", - manufacturer="Aqara", - sw_version="3.3.0", - hw_version="1.0", - serial_number="00aa00000a0", - devices=[], - entities=[ - EntityTestInfo( - "alarm_control_panel.aqara_hub_e1_00a0_security_system", - friendly_name="Aqara-Hub-E1-00A0 Security System", - unique_id="00:00:00:00:00:00_1_16", - supported_features=AlarmControlPanelEntityFeature.ARM_NIGHT - | AlarmControlPanelEntityFeature.ARM_HOME - | AlarmControlPanelEntityFeature.ARM_AWAY, - state="disarmed", - ), - EntityTestInfo( - "number.aqara_hub_e1_00a0_volume", - friendly_name="Aqara-Hub-E1-00A0 Volume", - unique_id="00:00:00:00:00:00_1_17_1114116", - capabilities={ - "max": 100, - "min": 0, - "mode": NumberMode.AUTO, - "step": 1, - }, - entity_category=EntityCategory.CONFIG, - state="40", - ), - EntityTestInfo( - "switch.aqara_hub_e1_00a0_pairing_mode", - friendly_name="Aqara-Hub-E1-00A0 Pairing Mode", - unique_id="00:00:00:00:00:00_1_17_1114117", - entity_category=EntityCategory.CONFIG, - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_arlo_baby.py b/tests/components/homekit_controller/specific_devices/test_arlo_baby.py deleted file mode 100644 index ae44f7f774f..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_arlo_baby.py +++ /dev/null @@ -1,87 +0,0 @@ -"""Make sure that an Arlo Baby can be setup.""" -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import PERCENTAGE, EntityCategory, UnitOfTemperature -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_arlo_baby_setup(hass: HomeAssistant) -> None: - """Test that an Arlo Baby can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "arlo_baby.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="ArloBabyA0", - model="ABC1000", - manufacturer="Netgear, Inc", - sw_version="1.10.931", - hw_version="", - serial_number="00A0000000000", - devices=[], - entities=[ - EntityTestInfo( - entity_id="camera.arlobabya0", - unique_id="00:00:00:00:00:00_1", - friendly_name="ArloBabyA0", - state="idle", - ), - EntityTestInfo( - entity_id="binary_sensor.arlobabya0_motion", - unique_id="00:00:00:00:00:00_1_500", - friendly_name="ArloBabyA0 Motion", - state="off", - ), - EntityTestInfo( - entity_id="sensor.arlobabya0_battery", - unique_id="00:00:00:00:00:00_1_700", - friendly_name="ArloBabyA0 Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=PERCENTAGE, - state="82", - ), - EntityTestInfo( - entity_id="sensor.arlobabya0_humidity", - unique_id="00:00:00:00:00:00_1_900", - friendly_name="ArloBabyA0 Humidity", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=PERCENTAGE, - state="60.099998", - ), - EntityTestInfo( - entity_id="sensor.arlobabya0_temperature", - unique_id="00:00:00:00:00:00_1_1000", - friendly_name="ArloBabyA0 Temperature", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=UnitOfTemperature.CELSIUS, - state="24.0", - ), - EntityTestInfo( - entity_id="sensor.arlobabya0_air_quality", - unique_id="00:00:00:00:00:00_1_800_802", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - friendly_name="ArloBabyA0 Air Quality", - state="1", - ), - EntityTestInfo( - entity_id="light.arlobabya0_nightlight", - unique_id="00:00:00:00:00:00_1_1100", - friendly_name="ArloBabyA0 Nightlight", - supported_features=0, - capabilities={"supported_color_modes": ["hs"]}, - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_ecobee_501.py b/tests/components/homekit_controller/specific_devices/test_ecobee_501.py deleted file mode 100644 index c833ea71116..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_ecobee_501.py +++ /dev/null @@ -1,67 +0,0 @@ -"""Tests for Ecobee 501.""" -from homeassistant.components.climate import ( - SUPPORT_FAN_MODE, - SUPPORT_TARGET_HUMIDITY, - SUPPORT_TARGET_TEMPERATURE, - SUPPORT_TARGET_TEMPERATURE_RANGE, -) -from homeassistant.const import STATE_ON -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_ecobee501_setup(hass: HomeAssistant) -> None: - """Test that a Ecobee 501 can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "ecobee_501.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="My ecobee", - model="ECB501", - manufacturer="ecobee Inc.", - sw_version="4.7.340214", - hw_version="", - serial_number="123456789016", - devices=[], - entities=[ - EntityTestInfo( - entity_id="climate.my_ecobee", - friendly_name="My ecobee", - unique_id="00:00:00:00:00:00_1_16", - supported_features=( - SUPPORT_TARGET_TEMPERATURE - | SUPPORT_TARGET_TEMPERATURE_RANGE - | SUPPORT_TARGET_HUMIDITY - | SUPPORT_FAN_MODE - ), - capabilities={ - "hvac_modes": ["off", "heat", "cool", "heat_cool"], - "fan_modes": ["on", "auto"], - "min_temp": 7.2, - "max_temp": 33.3, - "min_humidity": 20, - "max_humidity": 50, - }, - state="heat_cool", - ), - EntityTestInfo( - entity_id="binary_sensor.my_ecobee_occupancy", - friendly_name="My ecobee Occupancy", - unique_id="00:00:00:00:00:00_1_57", - unit_of_measurement=None, - state=STATE_ON, - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_ecobee_occupancy.py b/tests/components/homekit_controller/specific_devices/test_ecobee_occupancy.py deleted file mode 100644 index f9d19c5f9c1..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_ecobee_occupancy.py +++ /dev/null @@ -1,42 +0,0 @@ -"""Regression tests for Ecobee occupancy. - -https://github.com/home-assistant/core/issues/31827 -""" -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_ecobee_occupancy_setup(hass: HomeAssistant) -> None: - """Test that an Ecbobee occupancy sensor be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "ecobee_occupancy.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Master Fan", - model="ecobee Switch+", - manufacturer="ecobee Inc.", - sw_version="4.5.130201", - hw_version="", - serial_number="111111111111", - devices=[], - entities=[ - EntityTestInfo( - entity_id="binary_sensor.master_fan", - friendly_name="Master Fan", - unique_id="00:00:00:00:00:00_1_56", - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_eve_degree.py b/tests/components/homekit_controller/specific_devices/test_eve_degree.py deleted file mode 100644 index 10fcd8ede8e..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_eve_degree.py +++ /dev/null @@ -1,87 +0,0 @@ -"""Make sure that Eve Degree (via Eve Extend) is enumerated properly.""" -from homeassistant.components.number import NumberMode -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import ( - PERCENTAGE, - EntityCategory, - UnitOfPressure, - UnitOfTemperature, -) -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_eve_degree_setup(hass: HomeAssistant) -> None: - """Test that the accessory can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "eve_degree.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Eve Degree AA11", - model="Eve Degree 00AAA0000", - manufacturer="Elgato", - sw_version="1.2.8", - hw_version="1.0.0", - serial_number="AA00A0A00000", - devices=[], - entities=[ - EntityTestInfo( - entity_id="sensor.eve_degree_aa11_temperature", - unique_id="00:00:00:00:00:00_1_22", - friendly_name="Eve Degree AA11 Temperature", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=UnitOfTemperature.CELSIUS, - state="22.7719116210938", - ), - EntityTestInfo( - entity_id="sensor.eve_degree_aa11_humidity", - unique_id="00:00:00:00:00:00_1_27", - friendly_name="Eve Degree AA11 Humidity", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=PERCENTAGE, - state="59.4818115234375", - ), - EntityTestInfo( - entity_id="sensor.eve_degree_aa11_air_pressure", - unique_id="00:00:00:00:00:00_1_30_32", - friendly_name="Eve Degree AA11 Air Pressure", - unit_of_measurement=UnitOfPressure.HPA, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="1005.70001220703", - ), - EntityTestInfo( - entity_id="sensor.eve_degree_aa11_battery", - unique_id="00:00:00:00:00:00_1_17", - friendly_name="Eve Degree AA11 Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=PERCENTAGE, - state="65", - ), - EntityTestInfo( - entity_id="number.eve_degree_aa11_elevation", - unique_id="00:00:00:00:00:00_1_30_33", - friendly_name="Eve Degree AA11 Elevation", - capabilities={ - "max": 9000, - "min": -450, - "mode": NumberMode.AUTO, - "step": 1, - }, - state="0", - entity_category=EntityCategory.CONFIG, - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_eve_energy.py b/tests/components/homekit_controller/specific_devices/test_eve_energy.py deleted file mode 100644 index 5f8415c5074..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_eve_energy.py +++ /dev/null @@ -1,93 +0,0 @@ -"""Make sure that Eve Degree (via Eve Extend) is enumerated properly.""" -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import ( - ELECTRIC_CURRENT_AMPERE, - ELECTRIC_POTENTIAL_VOLT, - ENERGY_KILO_WATT_HOUR, - POWER_WATT, - EntityCategory, -) -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_eve_energy_setup(hass: HomeAssistant) -> None: - """Test that the accessory can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "eve_energy.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Eve Energy 50FF", - model="Eve Energy 20EAO8601", - manufacturer="Elgato", - sw_version="1.2.9", - hw_version="1.0.0", - serial_number="AA00A0A00000", - devices=[], - entities=[ - EntityTestInfo( - entity_id="switch.eve_energy_50ff", - unique_id="00:00:00:00:00:00_1_28", - friendly_name="Eve Energy 50FF", - state="off", - ), - EntityTestInfo( - entity_id="sensor.eve_energy_50ff_amps", - unique_id="00:00:00:00:00:00_1_28_33", - friendly_name="Eve Energy 50FF Amps", - unit_of_measurement=ELECTRIC_CURRENT_AMPERE, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="0", - ), - EntityTestInfo( - entity_id="sensor.eve_energy_50ff_volts", - unique_id="00:00:00:00:00:00_1_28_32", - friendly_name="Eve Energy 50FF Volts", - unit_of_measurement=ELECTRIC_POTENTIAL_VOLT, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="0.400000005960464", - ), - EntityTestInfo( - entity_id="sensor.eve_energy_50ff_power", - unique_id="00:00:00:00:00:00_1_28_34", - friendly_name="Eve Energy 50FF Power", - unit_of_measurement=POWER_WATT, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="0", - ), - EntityTestInfo( - entity_id="sensor.eve_energy_50ff_energy_kwh", - unique_id="00:00:00:00:00:00_1_28_35", - friendly_name="Eve Energy 50FF Energy kWh", - capabilities={"state_class": SensorStateClass.TOTAL_INCREASING}, - unit_of_measurement=ENERGY_KILO_WATT_HOUR, - state="0.28999999165535", - ), - EntityTestInfo( - entity_id="switch.eve_energy_50ff_lock_physical_controls", - unique_id="00:00:00:00:00:00_1_28_36", - friendly_name="Eve Energy 50FF Lock Physical Controls", - entity_category=EntityCategory.CONFIG, - state="off", - ), - EntityTestInfo( - entity_id="button.eve_energy_50ff_identify", - unique_id="00:00:00:00:00:00_1_1_3", - friendly_name="Eve Energy 50FF Identify", - entity_category=EntityCategory.DIAGNOSTIC, - state="unknown", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_haa_fan.py b/tests/components/homekit_controller/specific_devices/test_haa_fan.py deleted file mode 100644 index 07a7324032b..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_haa_fan.py +++ /dev/null @@ -1,82 +0,0 @@ -"""Make sure that a H.A.A. fan can be setup.""" -from homeassistant.components.fan import ATTR_PERCENTAGE, FanEntityFeature -from homeassistant.const import EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_haa_fan_setup(hass: HomeAssistant) -> None: - """Test that a H.A.A. fan can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "haa_fan.json") - await setup_test_accessories(hass, accessories) - - haa_fan_state = hass.states.get("fan.haa_c718b3") - attributes = haa_fan_state.attributes - assert attributes[ATTR_PERCENTAGE] == 66 - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="HAA-C718B3", - model="RavenSystem HAA", - manufacturer="José A. Jiménez Campos", - sw_version="5.0.18", - hw_version="", - serial_number="C718B3-1", - devices=[ - DeviceTestInfo( - name="HAA-C718B3", - model="RavenSystem HAA", - manufacturer="José A. Jiménez Campos", - sw_version="5.0.18", - hw_version="", - serial_number="C718B3-2", - unique_id="00:00:00:00:00:00:aid:2", - devices=[], - entities=[ - EntityTestInfo( - entity_id="switch.haa_c718b3", - friendly_name="HAA-C718B3", - unique_id="00:00:00:00:00:00_2_8", - state="off", - ) - ], - ), - ], - entities=[ - EntityTestInfo( - entity_id="fan.haa_c718b3", - friendly_name="HAA-C718B3", - unique_id="00:00:00:00:00:00_1_8", - state="on", - supported_features=FanEntityFeature.SET_SPEED, - capabilities={ - "preset_modes": None, - }, - ), - EntityTestInfo( - entity_id="button.haa_c718b3_setup", - friendly_name="HAA-C718B3 Setup", - unique_id="00:00:00:00:00:00_1_1010_1012", - entity_category=EntityCategory.CONFIG, - state="unknown", - ), - EntityTestInfo( - entity_id="button.haa_c718b3_update", - friendly_name="HAA-C718B3 Update", - unique_id="00:00:00:00:00:00_1_1010_1011", - entity_category=EntityCategory.CONFIG, - state="unknown", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_homeassistant_bridge.py b/tests/components/homekit_controller/specific_devices/test_homeassistant_bridge.py deleted file mode 100644 index 84a14a8488d..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_homeassistant_bridge.py +++ /dev/null @@ -1,62 +0,0 @@ -"""Test against characteristics captured from the Home Assistant HomeKit bridge running demo platforms.""" -from homeassistant.components.fan import FanEntityFeature -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_homeassistant_bridge_fan_setup(hass: HomeAssistant) -> None: - """Test that a SIMPLEconnect fan can be correctly setup in HA.""" - accessories = await setup_accessories_from_file( - hass, "home_assistant_bridge_fan.json" - ) - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Home Assistant Bridge", - model="Bridge", - manufacturer="Home Assistant", - sw_version="0.104.0.dev0", - hw_version="", - serial_number="homekit.bridge", - devices=[ - DeviceTestInfo( - name="Living Room Fan", - model="Fan", - manufacturer="Home Assistant", - sw_version="0.104.0.dev0", - hw_version="", - serial_number="fan.living_room_fan", - unique_id="00:00:00:00:00:00:aid:1256851357", - devices=[], - entities=[ - EntityTestInfo( - entity_id="fan.living_room_fan", - friendly_name="Living Room Fan", - unique_id="00:00:00:00:00:00_1256851357_8", - supported_features=( - FanEntityFeature.DIRECTION - | FanEntityFeature.SET_SPEED - | FanEntityFeature.OSCILLATE - ), - capabilities={ - "preset_modes": None, - }, - state="off", - ) - ], - ), - ], - entities=[], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_homespan_daikin_bridge.py b/tests/components/homekit_controller/specific_devices/test_homespan_daikin_bridge.py deleted file mode 100644 index 5bb7003e58b..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_homespan_daikin_bridge.py +++ /dev/null @@ -1,51 +0,0 @@ -"""Tests for handling accessories on a Homespan esp32 daikin bridge.""" -from homeassistant.components.climate import ClimateEntityFeature -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_homespan_daikin_bridge_setup(hass: HomeAssistant) -> None: - """Test that aHomespan esp32 daikin bridge can be correctly setup in HA via HomeKit.""" - accessories = await setup_accessories_from_file(hass, "homespan_daikin_bridge.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Air Conditioner", - model="Daikin-fwec3a-esp32-homekit-bridge", - manufacturer="Garzola Marco", - sw_version="1.0.0", - hw_version="1.0.0", - serial_number="00000001", - devices=[], - entities=[ - EntityTestInfo( - entity_id="climate.air_conditioner_slaveid_1", - friendly_name="Air Conditioner SlaveID 1", - unique_id="00:00:00:00:00:00_1_9", - supported_features=( - ClimateEntityFeature.TARGET_TEMPERATURE - | ClimateEntityFeature.FAN_MODE - ), - capabilities={ - "hvac_modes": ["heat_cool", "heat", "cool", "off"], - "min_temp": 18, - "max_temp": 32, - "target_temp_step": 0.5, - "fan_modes": ["off", "low", "medium", "high"], - }, - state="cool", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_koogeek_ls1.py b/tests/components/homekit_controller/specific_devices/test_koogeek_ls1.py index ca2392be4ce..e25d5b7830e 100644 --- a/tests/components/homekit_controller/specific_devices/test_koogeek_ls1.py +++ b/tests/components/homekit_controller/specific_devices/test_koogeek_ls1.py @@ -7,62 +7,16 @@ from aiohomekit.model import CharacteristicsTypes, ServicesTypes from aiohomekit.testing import FakePairing import pytest -from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant import homeassistant.util.dt as dt_util -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - Helper, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) +from ..common import Helper, setup_accessories_from_file, setup_test_accessories from tests.common import async_fire_time_changed LIGHT_ON = ("lightbulb", "on") -async def test_koogeek_ls1_setup(hass: HomeAssistant) -> None: - """Test that a Koogeek LS1 can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "koogeek_ls1.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Koogeek-LS1-20833F", - model="LS1", - manufacturer="Koogeek", - sw_version="2.2.15", - hw_version="", - serial_number="AAAA011111111111", - devices=[], - entities=[ - EntityTestInfo( - entity_id="light.koogeek_ls1_20833f_light_strip", - friendly_name="Koogeek-LS1-20833F Light Strip", - unique_id="00:00:00:00:00:00_1_7", - supported_features=0, - capabilities={"supported_color_modes": ["hs"]}, - state="off", - ), - EntityTestInfo( - entity_id="button.koogeek_ls1_20833f_identify", - friendly_name="Koogeek-LS1-20833F Identify", - unique_id="00:00:00:00:00:00_1_1_6", - entity_category=EntityCategory.DIAGNOSTIC, - state="unknown", - ), - ], - ), - ) - - @pytest.mark.parametrize("failure_cls", [AccessoryDisconnectedError, EncryptionError]) async def test_recover_from_failure(hass: HomeAssistant, utcnow, failure_cls) -> None: """Test that entity actually recovers from a network connection drop. diff --git a/tests/components/homekit_controller/specific_devices/test_koogeek_p1eu.py b/tests/components/homekit_controller/specific_devices/test_koogeek_p1eu.py deleted file mode 100644 index 91506382a8a..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_koogeek_p1eu.py +++ /dev/null @@ -1,49 +0,0 @@ -"""Make sure that existing Koogeek P1EU support isn't broken.""" -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import POWER_WATT -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_koogeek_p1eu_setup(hass: HomeAssistant) -> None: - """Test that a Koogeek P1EU can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "koogeek_p1eu.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Koogeek-P1-A00AA0", - model="P1EU", - manufacturer="Koogeek", - sw_version="2.3.7", - hw_version="", - serial_number="EUCP03190xxxxx48", - devices=[], - entities=[ - EntityTestInfo( - entity_id="switch.koogeek_p1_a00aa0_outlet", - friendly_name="Koogeek-P1-A00AA0 outlet", - unique_id="00:00:00:00:00:00_1_7", - state="off", - ), - EntityTestInfo( - entity_id="sensor.koogeek_p1_a00aa0_power", - friendly_name="Koogeek-P1-A00AA0 Power", - unique_id="00:00:00:00:00:00_1_21_22", - unit_of_measurement=POWER_WATT, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="5", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_lennox_e30.py b/tests/components/homekit_controller/specific_devices/test_lennox_e30.py deleted file mode 100644 index 4578014f009..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_lennox_e30.py +++ /dev/null @@ -1,54 +0,0 @@ -"""Regression tests for Aqara Gateway V3. - -https://github.com/home-assistant/core/issues/20885 -""" -from homeassistant.components.climate import ( - SUPPORT_TARGET_TEMPERATURE, - SUPPORT_TARGET_TEMPERATURE_RANGE, -) -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_lennox_e30_setup(hass: HomeAssistant) -> None: - """Test that a Lennox E30 can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "lennox_e30.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Lennox", - model="E30 2B", - manufacturer="Lennox", - sw_version="3.40.XX", - hw_version="3.0.XX", - serial_number="XXXXXXXX", - devices=[], - entities=[ - EntityTestInfo( - entity_id="climate.lennox", - friendly_name="Lennox", - unique_id="00:00:00:00:00:00_1_100", - supported_features=( - SUPPORT_TARGET_TEMPERATURE | SUPPORT_TARGET_TEMPERATURE_RANGE - ), - capabilities={ - "hvac_modes": ["off", "heat", "cool", "heat_cool"], - "max_temp": 37, - "min_temp": 4.5, - }, - state="heat_cool", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_lg_tv.py b/tests/components/homekit_controller/specific_devices/test_lg_tv.py deleted file mode 100644 index f35e7da2bdd..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_lg_tv.py +++ /dev/null @@ -1,63 +0,0 @@ -"""Make sure that handling real world LG HomeKit characteristics isn't broken.""" -from homeassistant.components.media_player import MediaPlayerEntityFeature -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_lg_tv(hass: HomeAssistant) -> None: - """Test that a Koogeek LS1 can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "lg_tv.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="LG webOS TV AF80", - model="OLED55B9PUA", - manufacturer="LG Electronics", - sw_version="04.71.04", - hw_version="1", - serial_number="999AAAAAA999", - devices=[], - entities=[ - EntityTestInfo( - entity_id="media_player.lg_webos_tv_af80", - friendly_name="LG webOS TV AF80", - unique_id="00:00:00:00:00:00_1_48", - supported_features=( - MediaPlayerEntityFeature.PAUSE - | MediaPlayerEntityFeature.PLAY - | MediaPlayerEntityFeature.SELECT_SOURCE - ), - capabilities={ - "source_list": [ - "AirPlay", - "Live TV", - "HDMI 1", - "Sony", - "Apple", - "AV", - "HDMI 4", - ] - }, - # The LG TV doesn't (at least at this patch level) report - # its media state via CURRENT_MEDIA_STATE. Therefore "ok" - # is the best we can say. - state="on", - ), - ], - ), - ) - - """ - assert state.attributes["source"] == "HDMI 4" - """ diff --git a/tests/components/homekit_controller/specific_devices/test_lutron_caseta_bridge.py b/tests/components/homekit_controller/specific_devices/test_lutron_caseta_bridge.py deleted file mode 100644 index 9cb65907e8a..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_lutron_caseta_bridge.py +++ /dev/null @@ -1,55 +0,0 @@ -"""Tests for handling accessories on a Lutron Caseta bridge via HomeKit.""" -from homeassistant.const import STATE_OFF -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_lutron_caseta_bridge_setup(hass: HomeAssistant) -> None: - """Test that a Lutron Caseta bridge can be correctly setup in HA via HomeKit.""" - accessories = await setup_accessories_from_file(hass, "lutron_caseta_bridge.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Smart Bridge 2", - model="L-BDG2-WH", - manufacturer="Lutron Electronics Co., Inc", - sw_version="08.08", - hw_version="", - serial_number="12344331", - devices=[ - DeviceTestInfo( - name="Cas\u00e9ta\u00ae Wireless Fan Speed Control", - model="PD-FSQN-XX", - manufacturer="Lutron Electronics Co., Inc", - sw_version="001.005", - hw_version="", - serial_number="39024290", - unique_id="00:00:00:00:00:00:aid:21474836482", - devices=[], - entities=[ - EntityTestInfo( - entity_id="fan.caseta_r_wireless_fan_speed_control", - friendly_name="Caséta® Wireless Fan Speed Control", - unique_id="00:00:00:00:00:00_21474836482_2", - unit_of_measurement=None, - supported_features=1, - state=STATE_OFF, - capabilities={"preset_modes": None}, - ) - ], - ), - ], - entities=[], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_mss425f.py b/tests/components/homekit_controller/specific_devices/test_mss425f.py deleted file mode 100644 index 1ab608e3d2e..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_mss425f.py +++ /dev/null @@ -1,71 +0,0 @@ -"""Tests for the Meross MSS425f power strip.""" -from homeassistant.const import STATE_ON, STATE_UNKNOWN, EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_meross_mss425f_setup(hass: HomeAssistant) -> None: - """Test that a MSS425f can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "mss425f.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="MSS425F-15cc", - model="MSS425F", - manufacturer="Meross", - sw_version="4.2.3", - hw_version="4.0.0", - serial_number="HH41234", - devices=[], - entities=[ - EntityTestInfo( - entity_id="button.mss425f_15cc_identify", - friendly_name="MSS425F-15cc Identify", - unique_id="00:00:00:00:00:00_1_1_2", - entity_category=EntityCategory.DIAGNOSTIC, - state=STATE_UNKNOWN, - ), - EntityTestInfo( - entity_id="switch.mss425f_15cc_outlet_1", - friendly_name="MSS425F-15cc Outlet-1", - unique_id="00:00:00:00:00:00_1_12", - state=STATE_ON, - ), - EntityTestInfo( - entity_id="switch.mss425f_15cc_outlet_2", - friendly_name="MSS425F-15cc Outlet-2", - unique_id="00:00:00:00:00:00_1_15", - state=STATE_ON, - ), - EntityTestInfo( - entity_id="switch.mss425f_15cc_outlet_3", - friendly_name="MSS425F-15cc Outlet-3", - unique_id="00:00:00:00:00:00_1_18", - state=STATE_ON, - ), - EntityTestInfo( - entity_id="switch.mss425f_15cc_outlet_4", - friendly_name="MSS425F-15cc Outlet-4", - unique_id="00:00:00:00:00:00_1_21", - state=STATE_ON, - ), - EntityTestInfo( - entity_id="switch.mss425f_15cc_usb", - friendly_name="MSS425F-15cc USB", - unique_id="00:00:00:00:00:00_1_24", - state=STATE_ON, - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_mss565.py b/tests/components/homekit_controller/specific_devices/test_mss565.py deleted file mode 100644 index 78d8d8f5250..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_mss565.py +++ /dev/null @@ -1,41 +0,0 @@ -"""Tests for the Meross MSS565 wall switch.""" -from homeassistant.const import STATE_ON -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_meross_mss565_setup(hass: HomeAssistant) -> None: - """Test that a MSS565 can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "mss565.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="MSS565-28da", - model="MSS565", - manufacturer="Meross", - sw_version="4.1.9", - hw_version="4.0.0", - serial_number="BB1121", - devices=[], - entities=[ - EntityTestInfo( - entity_id="light.mss565_28da_dimmer_switch", - friendly_name="MSS565-28da Dimmer Switch", - unique_id="00:00:00:00:00:00_1_12", - capabilities={"supported_color_modes": ["brightness"]}, - state=STATE_ON, - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_mysa_living.py b/tests/components/homekit_controller/specific_devices/test_mysa_living.py deleted file mode 100644 index 48828a2a6ad..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_mysa_living.py +++ /dev/null @@ -1,72 +0,0 @@ -"""Make sure that Mysa Living is enumerated properly.""" -from homeassistant.components.climate import ClimateEntityFeature -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import PERCENTAGE, UnitOfTemperature -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_mysa_living_setup(hass: HomeAssistant) -> None: - """Test that the accessory can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "mysa_living.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Mysa-85dda9", - model="v1", - manufacturer="Empowered Homes Inc.", - sw_version="2.8.1", - hw_version="", - serial_number="AAAAAAA000", - devices=[], - entities=[ - EntityTestInfo( - entity_id="climate.mysa_85dda9_thermostat", - friendly_name="Mysa-85dda9 Thermostat", - unique_id="00:00:00:00:00:00_1_20", - supported_features=ClimateEntityFeature.TARGET_TEMPERATURE, - capabilities={ - "hvac_modes": ["off", "heat", "cool", "heat_cool"], - "max_temp": 35, - "min_temp": 7, - }, - state="off", - ), - EntityTestInfo( - entity_id="sensor.mysa_85dda9_current_humidity", - friendly_name="Mysa-85dda9 Current Humidity", - unique_id="00:00:00:00:00:00_1_20_27", - unit_of_measurement=PERCENTAGE, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="40", - ), - EntityTestInfo( - entity_id="sensor.mysa_85dda9_current_temperature", - friendly_name="Mysa-85dda9 Current Temperature", - unique_id="00:00:00:00:00:00_1_20_25", - unit_of_measurement=UnitOfTemperature.CELSIUS, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - state="24.1", - ), - EntityTestInfo( - entity_id="light.mysa_85dda9_display", - friendly_name="Mysa-85dda9 Display", - unique_id="00:00:00:00:00:00_1_40", - supported_features=0, - capabilities={"supported_color_modes": ["brightness"]}, - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_nanoleaf_strip_nl55.py b/tests/components/homekit_controller/specific_devices/test_nanoleaf_strip_nl55.py deleted file mode 100644 index 629059935cf..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_nanoleaf_strip_nl55.py +++ /dev/null @@ -1,92 +0,0 @@ -"""Make sure that Nanoleaf NL55 works with BLE.""" -from homeassistant.const import EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - -LIGHT_ON = ("lightbulb", "on") - - -async def test_nanoleaf_nl55_setup(hass: HomeAssistant) -> None: - """Test that a Nanoleaf NL55 can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "nanoleaf_strip_nl55.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Nanoleaf Strip 3B32", - model="NL55", - manufacturer="Nanoleaf", - sw_version="1.4.40", - hw_version="1.2.4", - serial_number="AAAA011111111111", - devices=[], - entities=[ - EntityTestInfo( - entity_id="light.nanoleaf_strip_3b32_nanoleaf_light_strip", - friendly_name="Nanoleaf Strip 3B32 Nanoleaf Light Strip", - unique_id="00:00:00:00:00:00_1_19", - supported_features=0, - capabilities={ - "max_color_temp_kelvin": 6535, - "min_color_temp_kelvin": 2127, - "max_mireds": 470, - "min_mireds": 153, - "supported_color_modes": ["color_temp", "hs"], - }, - state="on", - ), - EntityTestInfo( - entity_id="button.nanoleaf_strip_3b32_identify", - friendly_name="Nanoleaf Strip 3B32 Identify", - unique_id="00:00:00:00:00:00_1_1_2", - entity_category=EntityCategory.DIAGNOSTIC, - state="unknown", - ), - EntityTestInfo( - entity_id="sensor.nanoleaf_strip_3b32_thread_capabilities", - friendly_name="Nanoleaf Strip 3B32 Thread Capabilities", - unique_id="00:00:00:00:00:00_1_31_115", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={ - "options": [ - "border_router_capable", - "full", - "minimal", - "none", - "router_eligible", - "sleepy", - ] - }, - state="border_router_capable", - ), - EntityTestInfo( - entity_id="sensor.nanoleaf_strip_3b32_thread_status", - friendly_name="Nanoleaf Strip 3B32 Thread Status", - unique_id="00:00:00:00:00:00_1_31_117", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={ - "options": [ - "border_router", - "child", - "detached", - "disabled", - "joining", - "leader", - "router", - ] - }, - state="border_router", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_netamo_smart_co_alarm.py b/tests/components/homekit_controller/specific_devices/test_netamo_smart_co_alarm.py deleted file mode 100644 index 71807871cc1..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_netamo_smart_co_alarm.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Regression tests for Netamo Smart CO Alarm. - -https://github.com/home-assistant/core/issues/78903 -""" -from homeassistant.const import EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_netamo_smart_co_alarm_setup(hass: HomeAssistant) -> None: - """Test that a Netamo Smart CO Alarm can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "netamo_smart_co_alarm.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Smart CO Alarm", - model="Smart CO Alarm", - manufacturer="Netatmo", - sw_version="1.0.3", - hw_version="0", - serial_number="1234", - devices=[], - entities=[ - EntityTestInfo( - entity_id="binary_sensor.smart_co_alarm_carbon_monoxide_sensor", - friendly_name="Smart CO Alarm Carbon Monoxide Sensor", - unique_id="00:00:00:00:00:00_1_22", - state="off", - ), - EntityTestInfo( - entity_id="binary_sensor.smart_co_alarm_low_battery", - friendly_name="Smart CO Alarm Low Battery", - entity_category=EntityCategory.DIAGNOSTIC, - unique_id="00:00:00:00:00:00_1_36", - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_netatmo_home_coach.py b/tests/components/homekit_controller/specific_devices/test_netatmo_home_coach.py deleted file mode 100644 index e9e6749bd36..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_netatmo_home_coach.py +++ /dev/null @@ -1,45 +0,0 @@ -"""Regression tests for Netamo Healthy Home Coach. - -https://github.com/home-assistant/core/issues/73360 -""" -from homeassistant.components.sensor import SensorStateClass -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_netamo_smart_co_alarm_setup(hass: HomeAssistant) -> None: - """Test that a Netamo Smart CO Alarm can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "netatmo_home_coach.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="Healthy Home Coach", - model="Healthy Home Coach", - manufacturer="Netatmo", - sw_version="59", - hw_version="", - serial_number="1234", - devices=[], - entities=[ - EntityTestInfo( - entity_id="sensor.healthy_home_coach_noise", - friendly_name="Healthy Home Coach Noise", - unique_id="00:00:00:00:00:00_1_20_21", - state="0", - unit_of_measurement="dB", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_rainmachine_pro_8.py b/tests/components/homekit_controller/specific_devices/test_rainmachine_pro_8.py deleted file mode 100644 index 24a4dbe0349..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_rainmachine_pro_8.py +++ /dev/null @@ -1,84 +0,0 @@ -"""Make sure that existing RainMachine support isn't broken. - -https://github.com/home-assistant/core/issues/31745 -""" -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_rainmachine_pro_8_setup(hass: HomeAssistant) -> None: - """Test that a RainMachine can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "rainmachine-pro-8.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="RainMachine-00ce4a", - model="SPK5 Pro", - manufacturer="Green Electronics LLC", - sw_version="1.0.4", - hw_version="1", - serial_number="00aa0000aa0a", - devices=[], - entities=[ - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_512", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_2", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_768", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_3", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_1024", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_4", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_1280", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_5", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_1536", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_6", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_1792", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_7", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_2048", - state="off", - ), - EntityTestInfo( - entity_id="switch.rainmachine_00ce4a_8", - friendly_name="RainMachine-00ce4a", - unique_id="00:00:00:00:00:00_1_2304", - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_ryse_smart_bridge.py b/tests/components/homekit_controller/specific_devices/test_ryse_smart_bridge.py deleted file mode 100644 index d56aa4ad481..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_ryse_smart_bridge.py +++ /dev/null @@ -1,230 +0,0 @@ -"""Test against characteristics captured from a ryse smart bridge platforms.""" -from homeassistant.components.cover import CoverEntityFeature -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import PERCENTAGE, EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - -RYSE_SUPPORTED_FEATURES = ( - CoverEntityFeature.CLOSE | CoverEntityFeature.SET_POSITION | CoverEntityFeature.OPEN -) - - -async def test_ryse_smart_bridge_setup(hass: HomeAssistant) -> None: - """Test that a Ryse smart bridge can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "ryse_smart_bridge.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="RYSE SmartBridge", - model="RYSE SmartBridge", - manufacturer="RYSE Inc.", - sw_version="1.3.0", - hw_version="0101.3521.0436", - devices=[ - DeviceTestInfo( - unique_id="00:00:00:00:00:00:aid:2", - name="Master Bath South", - model="RYSE Shade", - manufacturer="RYSE Inc.", - sw_version="3.0.8", - hw_version="1.0.0", - serial_number="", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.master_bath_south_ryse_shade", - friendly_name="Master Bath South RYSE Shade", - unique_id="00:00:00:00:00:00_2_48", - supported_features=RYSE_SUPPORTED_FEATURES, - state="closed", - ), - EntityTestInfo( - entity_id="sensor.master_bath_south_ryse_shade_battery", - friendly_name="Master Bath South RYSE Shade Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_2_64", - unit_of_measurement=PERCENTAGE, - state="100", - ), - ], - ), - DeviceTestInfo( - unique_id="00:00:00:00:00:00:aid:3", - name="RYSE SmartShade", - model="RYSE Shade", - manufacturer="RYSE Inc.", - sw_version="", - hw_version="", - serial_number="", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.ryse_smartshade_ryse_shade", - friendly_name="RYSE SmartShade RYSE Shade", - unique_id="00:00:00:00:00:00_3_48", - supported_features=RYSE_SUPPORTED_FEATURES, - state="open", - ), - EntityTestInfo( - entity_id="sensor.ryse_smartshade_ryse_shade_battery", - friendly_name="RYSE SmartShade RYSE Shade Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_3_64", - unit_of_measurement=PERCENTAGE, - state="100", - ), - ], - ), - ], - entities=[], - ), - ) - - -async def test_ryse_smart_bridge_four_shades_setup(hass: HomeAssistant) -> None: - """Test that a Ryse smart bridge with four shades can be correctly setup in HA.""" - accessories = await setup_accessories_from_file( - hass, "ryse_smart_bridge_four_shades.json" - ) - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="RYSE SmartBridge", - model="RYSE SmartBridge", - manufacturer="RYSE Inc.", - sw_version="1.3.0", - hw_version="0401.3521.0679", - devices=[ - DeviceTestInfo( - unique_id="00:00:00:00:00:00:aid:2", - name="LR Left", - model="RYSE Shade", - manufacturer="RYSE Inc.", - sw_version="3.0.8", - hw_version="1.0.0", - serial_number="", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.lr_left_ryse_shade", - friendly_name="LR Left RYSE Shade", - unique_id="00:00:00:00:00:00_2_48", - supported_features=RYSE_SUPPORTED_FEATURES, - state="closed", - ), - EntityTestInfo( - entity_id="sensor.lr_left_ryse_shade_battery", - friendly_name="LR Left RYSE Shade Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_2_64", - unit_of_measurement=PERCENTAGE, - state="89", - ), - ], - ), - DeviceTestInfo( - unique_id="00:00:00:00:00:00:aid:3", - name="LR Right", - model="RYSE Shade", - manufacturer="RYSE Inc.", - sw_version="3.0.8", - hw_version="1.0.0", - serial_number="", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.lr_right_ryse_shade", - friendly_name="LR Right RYSE Shade", - unique_id="00:00:00:00:00:00_3_48", - supported_features=RYSE_SUPPORTED_FEATURES, - state="closed", - ), - EntityTestInfo( - entity_id="sensor.lr_right_ryse_shade_battery", - friendly_name="LR Right RYSE Shade Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_3_64", - unit_of_measurement=PERCENTAGE, - state="100", - ), - ], - ), - DeviceTestInfo( - unique_id="00:00:00:00:00:00:aid:4", - name="BR Left", - model="RYSE Shade", - manufacturer="RYSE Inc.", - sw_version="3.0.8", - hw_version="1.0.0", - serial_number="", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.br_left_ryse_shade", - friendly_name="BR Left RYSE Shade", - unique_id="00:00:00:00:00:00_4_48", - supported_features=RYSE_SUPPORTED_FEATURES, - state="open", - ), - EntityTestInfo( - entity_id="sensor.br_left_ryse_shade_battery", - friendly_name="BR Left RYSE Shade Battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_4_64", - unit_of_measurement=PERCENTAGE, - state="100", - ), - ], - ), - DeviceTestInfo( - unique_id="00:00:00:00:00:00:aid:5", - name="RZSS", - model="RYSE Shade", - manufacturer="RYSE Inc.", - sw_version="3.0.8", - hw_version="1.0.0", - serial_number="", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.rzss_ryse_shade", - friendly_name="RZSS RYSE Shade", - unique_id="00:00:00:00:00:00_5_48", - supported_features=RYSE_SUPPORTED_FEATURES, - state="open", - ), - EntityTestInfo( - entity_id="sensor.rzss_ryse_shade_battery", - entity_category=EntityCategory.DIAGNOSTIC, - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - friendly_name="RZSS RYSE Shade Battery", - unique_id="00:00:00:00:00:00_5_64", - unit_of_measurement=PERCENTAGE, - state="0", - ), - ], - ), - ], - entities=[], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_schlage_sense.py b/tests/components/homekit_controller/specific_devices/test_schlage_sense.py deleted file mode 100644 index 6ed0a97c23d..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_schlage_sense.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Make sure that Schlage Sense is enumerated properly.""" -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_schlage_sense_setup(hass: HomeAssistant) -> None: - """Test that the accessory can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "schlage_sense.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="SENSE ", - model="BE479CAM619", - manufacturer="Schlage ", - sw_version="004.027.000", - hw_version="1.3.0", - serial_number="AAAAAAA000", - devices=[], - entities=[ - EntityTestInfo( - entity_id="lock.sense_lock_mechanism", - friendly_name="SENSE Lock Mechanism", - unique_id="00:00:00:00:00:00_1_30", - supported_features=0, - state="unknown", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_simpleconnect_fan.py b/tests/components/homekit_controller/specific_devices/test_simpleconnect_fan.py deleted file mode 100644 index 59e7d2855e4..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_simpleconnect_fan.py +++ /dev/null @@ -1,48 +0,0 @@ -"""Test against characteristics captured from a SIMPLEconnect Fan. - -https://github.com/home-assistant/core/issues/26180 -""" -from homeassistant.components.fan import FanEntityFeature -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_simpleconnect_fan_setup(hass: HomeAssistant) -> None: - """Test that a SIMPLEconnect fan can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "simpleconnect_fan.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="SIMPLEconnect Fan-06F674", - model="SIMPLEconnect", - manufacturer="Hunter Fan", - sw_version="", - hw_version="", - serial_number="1234567890abcd", - devices=[], - entities=[ - EntityTestInfo( - entity_id="fan.simpleconnect_fan_06f674_hunter_fan", - friendly_name="SIMPLEconnect Fan-06F674 Hunter Fan", - unique_id="00:00:00:00:00:00_1_8", - supported_features=FanEntityFeature.DIRECTION - | FanEntityFeature.SET_SPEED, - capabilities={ - "preset_modes": None, - }, - state="off", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_velux_gateway.py b/tests/components/homekit_controller/specific_devices/test_velux_gateway.py deleted file mode 100644 index 854de4b89d8..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_velux_gateway.py +++ /dev/null @@ -1,100 +0,0 @@ -"""Test against characteristics captured from a Velux Gateway. - -https://github.com/home-assistant/core/issues/44314 -""" -from homeassistant.components.cover import CoverEntityFeature -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import ( - CONCENTRATION_PARTS_PER_MILLION, - PERCENTAGE, - UnitOfTemperature, -) -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_velux_cover_setup(hass: HomeAssistant) -> None: - """Test that a velux gateway can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "velux_gateway.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="VELUX Gateway", - model="VELUX Gateway", - manufacturer="VELUX", - sw_version="70", - hw_version="", - serial_number="a1a11a1", - devices=[ - DeviceTestInfo( - name="VELUX Window", - model="VELUX Window", - manufacturer="VELUX", - sw_version="48", - hw_version="", - serial_number="1111111a114a111a", - unique_id="00:00:00:00:00:00:aid:3", - devices=[], - entities=[ - EntityTestInfo( - entity_id="cover.velux_window_roof_window", - friendly_name="VELUX Window Roof Window", - unique_id="00:00:00:00:00:00_3_8", - supported_features=CoverEntityFeature.CLOSE - | CoverEntityFeature.SET_POSITION - | CoverEntityFeature.OPEN, - state="closed", - ), - ], - ), - DeviceTestInfo( - name="VELUX Sensor", - model="VELUX Sensor", - manufacturer="VELUX", - sw_version="16", - hw_version="", - serial_number="a11b111", - unique_id="00:00:00:00:00:00:aid:2", - devices=[], - entities=[ - EntityTestInfo( - entity_id="sensor.velux_sensor_temperature_sensor", - friendly_name="VELUX Sensor Temperature sensor", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_2_8", - unit_of_measurement=UnitOfTemperature.CELSIUS, - state="18.9", - ), - EntityTestInfo( - entity_id="sensor.velux_sensor_humidity_sensor", - friendly_name="VELUX Sensor Humidity sensor", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_2_11", - unit_of_measurement=PERCENTAGE, - state="58", - ), - EntityTestInfo( - entity_id="sensor.velux_sensor_carbon_dioxide_sensor", - friendly_name="VELUX Sensor Carbon Dioxide sensor", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unique_id="00:00:00:00:00:00_2_14", - unit_of_measurement=CONCENTRATION_PARTS_PER_MILLION, - state="400", - ), - ], - ), - ], - entities=[], - ), - ) diff --git a/tests/components/homekit_controller/specific_devices/test_vocolinc_flowerbud.py b/tests/components/homekit_controller/specific_devices/test_vocolinc_flowerbud.py deleted file mode 100644 index fed8f05b0b9..00000000000 --- a/tests/components/homekit_controller/specific_devices/test_vocolinc_flowerbud.py +++ /dev/null @@ -1,78 +0,0 @@ -"""Make sure that Vocolinc Flowerbud is enumerated properly.""" -from homeassistant.components.humidifier import HumidifierEntityFeature -from homeassistant.components.number import NumberMode -from homeassistant.components.sensor import SensorStateClass -from homeassistant.const import PERCENTAGE, EntityCategory -from homeassistant.core import HomeAssistant - -from ..common import ( - HUB_TEST_ACCESSORY_ID, - DeviceTestInfo, - EntityTestInfo, - assert_devices_and_entities_created, - setup_accessories_from_file, - setup_test_accessories, -) - - -async def test_vocolinc_flowerbud_setup(hass: HomeAssistant) -> None: - """Test that a Vocolinc Flowerbud can be correctly setup in HA.""" - accessories = await setup_accessories_from_file(hass, "vocolinc_flowerbud.json") - await setup_test_accessories(hass, accessories) - - await assert_devices_and_entities_created( - hass, - DeviceTestInfo( - unique_id=HUB_TEST_ACCESSORY_ID, - name="VOCOlinc-Flowerbud-0d324b", - model="Flowerbud", - manufacturer="VOCOlinc", - sw_version="3.121.2", - hw_version="0.1", - serial_number="AM01121849000327", - devices=[], - entities=[ - EntityTestInfo( - entity_id="humidifier.vocolinc_flowerbud_0d324b", - friendly_name="VOCOlinc-Flowerbud-0d324b", - unique_id="00:00:00:00:00:00_1_30", - supported_features=HumidifierEntityFeature.MODES, - capabilities={ - "available_modes": ["normal", "auto"], - "max_humidity": 100.0, - "min_humidity": 0.0, - }, - state="off", - ), - EntityTestInfo( - entity_id="light.vocolinc_flowerbud_0d324b_mood_light", - friendly_name="VOCOlinc-Flowerbud-0d324b Mood Light", - unique_id="00:00:00:00:00:00_1_9", - supported_features=0, - capabilities={"supported_color_modes": ["hs"]}, - state="on", - ), - EntityTestInfo( - entity_id="number.vocolinc_flowerbud_0d324b_spray_quantity", - friendly_name="VOCOlinc-Flowerbud-0d324b Spray Quantity", - unique_id="00:00:00:00:00:00_1_30_38", - capabilities={ - "max": 5, - "min": 1, - "mode": NumberMode.AUTO, - "step": 1, - }, - state="5", - entity_category=EntityCategory.CONFIG, - ), - EntityTestInfo( - entity_id="sensor.vocolinc_flowerbud_0d324b_current_humidity", - friendly_name="VOCOlinc-Flowerbud-0d324b Current Humidity", - unique_id="00:00:00:00:00:00_1_30_33", - capabilities={"state_class": SensorStateClass.MEASUREMENT}, - unit_of_measurement=PERCENTAGE, - state="45.0", - ), - ], - ), - ) diff --git a/tests/components/homekit_controller/test_init.py b/tests/components/homekit_controller/test_init.py index 8ffeec093f6..23c6e245ac7 100644 --- a/tests/components/homekit_controller/test_init.py +++ b/tests/components/homekit_controller/test_init.py @@ -1,5 +1,6 @@ """Tests for homekit_controller init.""" from datetime import timedelta +import pathlib from unittest.mock import patch from aiohomekit import AccessoryNotFoundError @@ -7,6 +8,9 @@ from aiohomekit.model import Accessory, Transport from aiohomekit.model.characteristics import CharacteristicsTypes from aiohomekit.model.services import ServicesTypes from aiohomekit.testing import FakePairing +from attr import asdict +import pytest +from syrupy.assertion import SnapshotAssertion from homeassistant.components.homekit_controller.const import DOMAIN, ENTITY_MAP from homeassistant.config_entries import ConfigEntryState @@ -20,6 +24,8 @@ from homeassistant.util.dt import utcnow from .common import ( Helper, remove_device, + setup_accessories_from_file, + setup_test_accessories, setup_test_accessories_with_controller, setup_test_component, ) @@ -27,6 +33,9 @@ from .common import ( from tests.common import async_fire_time_changed from tests.typing import WebSocketGenerator +FIXTURES_DIR = pathlib.Path(__file__).parent / "fixtures" +FIXTURES = [path.relative_to(FIXTURES_DIR) for path in FIXTURES_DIR.glob("*.json")] + ALIVE_DEVICE_NAME = "testdevice" ALIVE_DEVICE_ENTITY_ID = "light.testdevice" @@ -218,3 +227,57 @@ async def test_ble_device_only_checks_is_available( is_available = True async_fire_time_changed(hass, utcnow() + timedelta(hours=1)) assert hass.states.get("light.testdevice").state == STATE_OFF + + +@pytest.mark.parametrize("example", FIXTURES, ids=lambda val: str(val.stem)) +async def test_snapshots( + hass: HomeAssistant, snapshot: SnapshotAssertion, example: str +) -> None: + """Detect regressions in enumerating a homekit accessory database and building entities.""" + accessories = await setup_accessories_from_file(hass, example) + config_entry, _ = await setup_test_accessories(hass, accessories) + + device_registry = dr.async_get(hass) + entity_registry = er.async_get(hass) + + registry_devices = dr.async_entries_for_config_entry( + device_registry, config_entry.entry_id + ) + registry_devices.sort(key=lambda device: device.name) + + devices = [] + + for device in registry_devices: + entities = [] + + registry_entities = er.async_entries_for_device( + entity_registry, + device_id=device.id, + include_disabled_entities=True, + ) + registry_entities.sort(key=lambda entity: entity.entity_id) + + for entity_entry in registry_entities: + state_dict = None + if state := hass.states.get(entity_entry.entity_id): + state_dict = dict(state.as_dict()) + state_dict.pop("context", None) + state_dict.pop("last_changed", None) + state_dict.pop("last_updated", None) + + state_dict["attributes"] = dict(state_dict["attributes"]) + state_dict["attributes"].pop("access_token", None) + state_dict["attributes"].pop("entity_picture", None) + + entry = asdict(entity_entry) + entry.pop("id", None) + entry.pop("device_id", None) + + entities.append({"entry": entry, "state": state_dict}) + + device_dict = asdict(device) + device_dict.pop("id", None) + device_dict.pop("via_device_id", None) + devices.append({"device": device_dict, "entities": entities}) + + assert snapshot == devices