Files
Erik MontnemeryandMartin Hjelmare 4b34d1bbb5 Merge config subentry feature branch to dev (#136121)
* Reapply "Add support for subentries to config entries" (#133470) (#136061)

* Reapply "Add support for subentries to config entries" (#133470)

This reverts commit ecb3bf79f3.

* Update test snapshot

* Add config subentry support to device registry (#128157)

* Add config subentry support to device registry

* Apply suggestions from code review

* Update syrupy serializer

* Update snapshots

* Address review comments

* Allow a device to be connected to no or a single subentry of a config entry

* Update snapshots

* Revert "Allow a device to be connected to no or a single subentry of a config entry"

This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2.

* Update test snapshots

* Bump release version in comments

* Rename config_subentries to config_entries_subentries

* Add config subentry support to entity registry (#128155)

* Add config subentry support to entity registry

* Update syrupy serializer

* Update snapshots

* Update snapshots

* Accept suggested changes

* Clean registries when removing subentry (#136671)

* Clean up registries when removing subentry

* Update tests

* Clean up subentries from deleted devices when removing config entry (#136669)

* Clean up subentries from deleted devices when removing config entry

* Move

* Add config subentry support to entity platform (#128161)

* Add config subentry support to entity platform

* Rename subentry_id to config_subentry_id

* Store subentry type in subentry (#136687)

* Add reconfigure support to config subentries (#133353)

* Add reconfigure support to config subentries

* Update test

* Minor adjustment

* Rename supported_subentry_flows to supported_subentry_types

* Address review comments

* Add subentry support to kitchen sink (#136755)

* Add subentry support to kitchen sink

* Add subentry reconfigure support to kitchen_sink

* Update kitchen_sink tests with subentry type stored in config entry

* Update kitchen_sink

* Update kitchen_sink

* Adjust kitchen sink tests

* Fix hassfest

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Improve docstrings and strings.json

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

* Update snapshots

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-10 16:40:07 +01:00

658 lines
22 KiB
Plaintext

# serializer version: 1
# name: test_entry_diagnostics
dict({
'data': dict({
'account': dict({
'errors': list([
]),
'homes': list([
dict({
'altitude': 112,
'coordinates': '**REDACTED**',
'country': 'DE',
'id': '91763b24c43d3e344f424e8b',
'modules': list([
dict({
'id': '12:34:56:00:fa:d0',
'modules_bridged': list([
'12:34:56:00:01:ae',
'12:34:56:03:a0:ac',
'12:34:56:03:a5:54',
]),
'name': '**REDACTED**',
'setup_date': 1494963356,
'type': 'NAPlug',
}),
dict({
'bridge': '12:34:56:00:fa:d0',
'id': '12:34:56:00:01:ae',
'name': '**REDACTED**',
'room_id': '2746182631',
'setup_date': 1494963356,
'type': 'NATherm1',
}),
dict({
'bridge': '12:34:56:00:fa:d0',
'id': '12:34:56:03:a5:54',
'name': '**REDACTED**',
'room_id': '2833524037',
'setup_date': 1554549767,
'type': 'NRV',
}),
dict({
'bridge': '12:34:56:00:fa:d0',
'id': '12:34:56:03:a0:ac',
'name': '**REDACTED**',
'room_id': '2940411577',
'setup_date': 1554554444,
'type': 'NRV',
}),
dict({
'id': '12:34:56:00:f1:62',
'modules_bridged': list([
'12:34:56:00:86:99',
'12:34:56:00:e3:9b',
]),
'name': '**REDACTED**',
'room_id': '3688132631',
'setup_date': 1544828430,
'type': 'NACamera',
}),
dict({
'customer_id': '1000010',
'hk_device_id': '123456007df1',
'id': '12:34:56:10:f1:66',
'name': '**REDACTED**',
'network_lock': False,
'quick_display_zone': 62,
'reachable': True,
'room_id': '3688132631',
'setup_date': 1602691361,
'type': 'NDB',
}),
dict({
'customer_id': 'A00010',
'id': '12:34:56:10:b9:0e',
'name': '**REDACTED**',
'network_lock': False,
'reachable': True,
'setup_date': 1509290599,
'type': 'NOC',
'use_pincode': False,
}),
dict({
'capabilities': list([
dict({
'available': True,
'name': '**REDACTED**',
}),
]),
'hk_device_id': '12:34:56:20:d0:c5',
'id': '12:34:56:20:f5:44',
'max_modules_nb': 21,
'modules_bridged': list([
'12:34:56:20:f5:8c',
]),
'name': '**REDACTED**',
'reachable': True,
'room_id': '222452125',
'setup_date': 1607443936,
'type': 'OTH',
}),
dict({
'bridge': '12:34:56:20:f5:44',
'id': '12:34:56:20:f5:8c',
'name': '**REDACTED**',
'room_id': '222452125',
'setup_date': 1607443939,
'type': 'OTM',
}),
dict({
'id': '12:34:56:30:d5:d4',
'modules_bridged': list([
'0009999992',
'0009999993',
]),
'name': '**REDACTED**',
'room_id': '222452125',
'setup_date': 1562262465,
'type': 'NBG',
}),
dict({
'bridge': '12:34:56:30:d5:d4',
'id': '0009999992',
'name': '**REDACTED**',
'room_id': '3688132631',
'setup_date': 1578551339,
'type': 'NBR',
}),
dict({
'bridge': '12:34:56:30:d5:d4',
'id': '0009999993',
'name': '**REDACTED**',
'room_id': '3688132631',
'setup_date': 1594132017,
'type': 'NBO',
}),
dict({
'alarm_config': dict({
'default_alarm': list([
dict({
'db_alarm_number': 0,
}),
dict({
'db_alarm_number': 1,
}),
dict({
'db_alarm_number': 2,
}),
dict({
'db_alarm_number': 6,
}),
dict({
'db_alarm_number': 4,
}),
dict({
'db_alarm_number': 5,
}),
dict({
'db_alarm_number': 7,
}),
dict({
'db_alarm_number': 22,
}),
]),
'personnalized': list([
dict({
'data_type': 1,
'db_alarm_number': 8,
'direction': 0,
'threshold': 20,
}),
dict({
'data_type': 1,
'db_alarm_number': 9,
'direction': 1,
'threshold': 17,
}),
dict({
'data_type': 4,
'db_alarm_number': 16,
'direction': 0,
'threshold': 65,
}),
dict({
'data_type': 8,
'db_alarm_number': 22,
'direction': 0,
'threshold': 19,
}),
]),
}),
'customer_id': 'C00016',
'hardware_version': 251,
'id': '12:34:56:80:bb:26',
'module_offset': dict({
'03:00:00:03:1b:0e': dict({
'a': 0,
}),
'12:34:56:80:bb:26': dict({
'a': 0.1,
}),
}),
'modules_bridged': list([
'12:34:56:80:44:92',
'12:34:56:80:7e:18',
'12:34:56:80:1c:42',
'12:34:56:80:c1:ea',
]),
'name': '**REDACTED**',
'public_ext_counter': 0,
'public_ext_data': False,
'reachable': True,
'room_id': '4122897288',
'setup_date': 1419453350,
'type': 'NAMain',
}),
dict({
'bridge': '12:34:56:80:bb:26',
'id': '12:34:56:80:1c:42',
'name': '**REDACTED**',
'setup_date': 1448565785,
'type': 'NAModule1',
}),
dict({
'bridge': '12:34:56:80:bb:26',
'id': '12:34:56:80:c1:ea',
'name': '**REDACTED**',
'setup_date': 1591770206,
'type': 'NAModule3',
}),
dict({
'bridge': '12:34:56:80:bb:26',
'id': '12:34:56:80:44:92',
'name': '**REDACTED**',
'setup_date': 1484997703,
'type': 'NAModule4',
}),
dict({
'bridge': '12:34:56:80:bb:26',
'id': '12:34:56:80:7e:18',
'name': '**REDACTED**',
'setup_date': 1543579864,
'type': 'NAModule4',
}),
dict({
'bridge': '12:34:56:80:bb:26',
'id': '12:34:56:03:1b:e4',
'name': '**REDACTED**',
'setup_date': 1543579864,
'type': 'NAModule2',
}),
dict({
'id': '12:34:56:80:60:40',
'modules_bridged': list([
'12:34:56:80:00:12:ac:f2',
'12:34:56:80:00:c3:69:3c',
'12:34:56:00:00:a1:4c:da',
'12:34:56:00:01:01:01:a1',
'00:11:22:33:00:11:45:fe',
'12:34:56:00:01:01:01:b1',
]),
'name': '**REDACTED**',
'room_id': '1310352496',
'setup_date': 1641841257,
'type': 'NLG',
}),
dict({
'bridge': '12:34:56:80:60:40',
'id': '12:34:56:80:00:12:ac:f2',
'name': '**REDACTED**',
'room_id': '1310352496',
'setup_date': 1641841262,
'type': 'NLP',
}),
dict({
'bridge': '12:34:56:80:60:40',
'id': '12:34:56:80:00:c3:69:3c',
'name': '**REDACTED**',
'setup_date': 1641841262,
'type': 'NLT',
}),
dict({
'bridge': '12:34:56:00:f1:62',
'category': 'window',
'id': '12:34:56:00:86:99',
'name': '**REDACTED**',
'setup_date': 1581177375,
'type': 'NACamDoorTag',
}),
dict({
'bridge': '12:34:56:00:f1:62',
'id': '12:34:56:00:e3:9b',
'name': '**REDACTED**',
'setup_date': 1620479901,
'type': 'NIS',
}),
dict({
'id': '12:34:56:00:16:0e',
'modules_bridged': list([
'12:34:56:00:16:0e#0',
'12:34:56:00:16:0e#1',
'12:34:56:00:16:0e#2',
'12:34:56:00:16:0e#3',
'12:34:56:00:16:0e#4',
'12:34:56:00:16:0e#5',
'12:34:56:00:16:0e#6',
'12:34:56:00:16:0e#7',
'12:34:56:00:16:0e#8',
]),
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496884,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#0',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#1',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#2',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#3',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#4',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#5',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#6',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#7',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:00:16:0e',
'id': '12:34:56:00:16:0e#8',
'name': '**REDACTED**',
'room_id': '100007519',
'setup_date': 1644496886,
'type': 'NLE',
}),
dict({
'bridge': '12:34:56:80:60:40',
'id': '12:34:56:00:00:a1:4c:da',
'name': '**REDACTED**',
'room_id': '100008999',
'setup_date': 1638376602,
'type': 'NLPC',
}),
dict({
'id': '10:20:30:bd:b8:1e',
'name': '**REDACTED**',
'room_id': '1002003001',
'setup_date': 1638022197,
'type': 'BNS',
}),
dict({
'bridge': '12:34:56:80:60:40',
'brightness': 63,
'firmware_revision': 57,
'id': '00:11:22:33:00:11:45:fe',
'last_seen': 1657086939,
'on': False,
'power': 0,
'reachable': True,
'type': 'NLF',
}),
dict({
'bridge': '12:34:56:80:60:40',
'id': '12:34:56:00:01:01:01:a1',
'name': '**REDACTED**',
'room_id': '1002003001',
'setup_date': 1598367404,
'type': 'NLFN',
}),
dict({
'bridge': '12:34:56:80:60:40',
'id': '12:34:56:00:01:01:01:b1',
'name': '**REDACTED**',
'room_id': '1002003001',
'setup_date': 1598367504,
'type': 'NLLF',
}),
]),
'name': '**REDACTED**',
'persons': list([
dict({
'id': '91827374-7e04-5298-83ad-a0cb8372dff1',
'pseudo': '**REDACTED**',
'url': '**REDACTED**',
}),
dict({
'id': '91827375-7e04-5298-83ae-a0cb8372dff2',
'pseudo': '**REDACTED**',
'url': '**REDACTED**',
}),
dict({
'id': '91827376-7e04-5298-83af-a0cb8372dff3',
'pseudo': '**REDACTED**',
'url': '**REDACTED**',
}),
]),
'rooms': list([
dict({
'id': '2746182631',
'module_ids': list([
'12:34:56:00:01:ae',
]),
'name': '**REDACTED**',
'type': 'livingroom',
}),
dict({
'id': '3688132631',
'module_ids': list([
'12:34:56:00:f1:62',
'12:34:56:10:f1:66',
'12:34:56:00:e3:9b',
'0009999992',
'0009999993',
]),
'name': '**REDACTED**',
'type': 'custom',
}),
dict({
'id': '2833524037',
'module_ids': list([
'12:34:56:03:a5:54',
]),
'name': '**REDACTED**',
'type': 'lobby',
}),
dict({
'id': '2940411577',
'module_ids': list([
'12:34:56:03:a0:ac',
]),
'name': '**REDACTED**',
'type': 'kitchen',
}),
dict({
'id': '222452125',
'module_ids': list([
'12:34:56:20:f5:44',
'12:34:56:20:f5:8c',
]),
'modules': list([
'12:34:56:20:f5:44',
'12:34:56:20:f5:8c',
]),
'name': '**REDACTED**',
'therm_relay': '12:34:56:20:f5:44',
'true_temperature_available': True,
'type': 'electrical_cabinet',
}),
dict({
'id': '100007519',
'module_ids': list([
'12:34:56:00:16:0e',
'12:34:56:00:16:0e#0',
'12:34:56:00:16:0e#1',
'12:34:56:00:16:0e#2',
'12:34:56:00:16:0e#3',
'12:34:56:00:16:0e#4',
'12:34:56:00:16:0e#5',
'12:34:56:00:16:0e#6',
'12:34:56:00:16:0e#7',
'12:34:56:00:16:0e#8',
]),
'name': '**REDACTED**',
'type': 'electrical_cabinet',
}),
dict({
'id': '1002003001',
'module_ids': list([
'10:20:30:bd:b8:1e',
]),
'name': '**REDACTED**',
'type': 'corridor',
}),
dict({
'id': '100007520',
'module_ids': list([
'00:11:22:33:00:11:45:fe',
]),
'name': '**REDACTED**',
'type': 'toilets',
}),
]),
'schedules': list([
dict({
'away_temp': 14,
'hg_temp': 7,
'id': '591b54a2764ff4d50d8b5795',
'name': '**REDACTED**',
'selected': True,
'timetable': '**REDACTED**',
'type': 'therm',
'zones': '**REDACTED**',
}),
dict({
'away_temp': 14,
'hg_temp': 7,
'id': 'b1b54a2f45795764f59d50d8',
'name': '**REDACTED**',
'timetable': '**REDACTED**',
'type': 'therm',
'zones': '**REDACTED**',
}),
]),
'therm_mode': 'schedule',
'therm_setpoint_default_duration': 120,
'timezone': 'Europe/Berlin',
}),
dict({
'altitude': 112,
'coordinates': '**REDACTED**',
'country': 'DE',
'id': '91763b24c43d3e344f424e8c',
'therm_mode': 'schedule',
'therm_setpoint_default_duration': 180,
'timezone': 'Europe/Berlin',
}),
]),
}),
}),
'info': dict({
'data': dict({
'auth_implementation': 'cloud',
'token': dict({
'access_token': '**REDACTED**',
'expires_in': 60,
'refresh_token': '**REDACTED**',
'scope': list([
'access_camera',
'access_doorbell',
'access_presence',
'read_bubendorff',
'read_bfi',
'read_camera',
'read_carbonmonoxidedetector',
'read_doorbell',
'read_homecoach',
'read_magellan',
'read_mhs1',
'read_mx',
'read_presence',
'read_smarther',
'read_smokedetector',
'read_station',
'read_thermostat',
'write_bubendorff',
'write_bfi',
'write_camera',
'write_magellan',
'write_mhs1',
'write_mx',
'write_presence',
'write_smarther',
'write_thermostat',
]),
'type': 'Bearer',
}),
'webhook_id': '**REDACTED**',
}),
'disabled_by': None,
'discovery_keys': dict({
}),
'domain': 'netatmo',
'minor_version': 1,
'options': dict({
'weather_areas': dict({
'Home avg': dict({
'area_name': 'Home avg',
'lat_ne': '**REDACTED**',
'lat_sw': '**REDACTED**',
'lon_ne': '**REDACTED**',
'lon_sw': '**REDACTED**',
'mode': 'avg',
'show_on_map': False,
}),
'Home max': dict({
'area_name': 'Home max',
'lat_ne': '**REDACTED**',
'lat_sw': '**REDACTED**',
'lon_ne': '**REDACTED**',
'lon_sw': '**REDACTED**',
'mode': 'max',
'show_on_map': True,
}),
'Home min': dict({
'area_name': 'Home min',
'lat_ne': '**REDACTED**',
'lat_sw': '**REDACTED**',
'lon_ne': '**REDACTED**',
'lon_sw': '**REDACTED**',
'mode': 'min',
'show_on_map': True,
}),
}),
}),
'pref_disable_new_entities': False,
'pref_disable_polling': False,
'source': 'user',
'subentries': list([
]),
'title': 'Mock Title',
'unique_id': 'netatmo',
'version': 1,
'webhook_registered': False,
}),
})
# ---