Add support for adding model_id in device info (#121989)

This commit is contained in:
Joost Lekkerkerker 2024-07-16 15:12:25 +02:00 committed by GitHub
parent 336740dbfa
commit f8ba4d41ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
66 changed files with 786 additions and 11 deletions

View File

@ -55,7 +55,7 @@ EVENT_DEVICE_REGISTRY_UPDATED: EventType[EventDeviceRegistryUpdatedData] = Event
)
STORAGE_KEY = "core.device_registry"
STORAGE_VERSION_MAJOR = 1
STORAGE_VERSION_MINOR = 6
STORAGE_VERSION_MINOR = 7
CLEANUP_DELAY = 10
@ -101,6 +101,7 @@ class DeviceInfo(TypedDict, total=False):
identifiers: set[tuple[str, str]]
manufacturer: str | None
model: str | None
model_id: str | None
name: str | None
serial_number: str | None
suggested_area: str | None
@ -127,6 +128,7 @@ DEVICE_INFO_TYPES = {
"identifiers",
"manufacturer",
"model",
"model_id",
"name",
"serial_number",
"suggested_area",
@ -287,6 +289,7 @@ class DeviceEntry:
labels: set[str] = attr.ib(converter=set, factory=set)
manufacturer: str | None = attr.ib(default=None)
model: str | None = attr.ib(default=None)
model_id: str | None = attr.ib(default=None)
name_by_user: str | None = attr.ib(default=None)
name: str | None = attr.ib(default=None)
primary_config_entry: str | None = attr.ib(default=None)
@ -321,6 +324,7 @@ class DeviceEntry:
"labels": list(self.labels),
"manufacturer": self.manufacturer,
"model": self.model,
"model_id": self.model_id,
"name_by_user": self.name_by_user,
"name": self.name,
"primary_config_entry": self.primary_config_entry,
@ -363,6 +367,7 @@ class DeviceEntry:
"labels": list(self.labels),
"manufacturer": self.manufacturer,
"model": self.model,
"model_id": self.model_id,
"name_by_user": self.name_by_user,
"name": self.name,
"primary_config_entry": self.primary_config_entry,
@ -483,6 +488,10 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
# Introduced in 2024.7
for device in old_data["devices"]:
device.setdefault("primary_config_entry", None)
if old_minor_version < 7:
# Introduced in 2024.8
for device in old_data["devices"]:
device.setdefault("model_id", None)
if old_major_version > 1:
raise NotImplementedError
@ -689,6 +698,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
identifiers: set[tuple[str, str]] | None | UndefinedType = UNDEFINED,
manufacturer: str | None | UndefinedType = UNDEFINED,
model: str | None | UndefinedType = UNDEFINED,
model_id: str | None | UndefinedType = UNDEFINED,
name: str | None | UndefinedType = UNDEFINED,
serial_number: str | None | UndefinedType = UNDEFINED,
suggested_area: str | None | UndefinedType = UNDEFINED,
@ -735,6 +745,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
("identifiers", identifiers),
("manufacturer", manufacturer),
("model", model),
("model_id", model_id),
("name", name),
("serial_number", serial_number),
("suggested_area", suggested_area),
@ -810,6 +821,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
merge_connections=connections or UNDEFINED,
merge_identifiers=identifiers or UNDEFINED,
model=model,
model_id=model_id,
name=name,
serial_number=serial_number,
suggested_area=suggested_area,
@ -843,6 +855,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
merge_connections: set[tuple[str, str]] | UndefinedType = UNDEFINED,
merge_identifiers: set[tuple[str, str]] | UndefinedType = UNDEFINED,
model: str | None | UndefinedType = UNDEFINED,
model_id: str | None | UndefinedType = UNDEFINED,
name_by_user: str | None | UndefinedType = UNDEFINED,
name: str | None | UndefinedType = UNDEFINED,
new_connections: set[tuple[str, str]] | UndefinedType = UNDEFINED,
@ -1004,6 +1017,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
("labels", labels),
("manufacturer", manufacturer),
("model", model),
("model_id", model_id),
("name", name),
("name_by_user", name_by_user),
("serial_number", serial_number),
@ -1154,6 +1168,7 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
labels=set(device["labels"]),
manufacturer=device["manufacturer"],
model=device["model"],
model_id=device["model_id"],
name_by_user=device["name_by_user"],
name=device["name"],
primary_config_entry=device["primary_config_entry"],

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'AirGradient',
'model': 'I-9PSL',
'model_id': None,
'name': 'Airgradient',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -52,6 +53,7 @@
}),
'manufacturer': 'AirGradient',
'model': 'O-1PPT',
'model_id': None,
'name': 'Airgradient',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'A. O. Smith',
'model': 'HPTS-50 200 202172000',
'model_id': None,
'name': 'My water heater',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -68,6 +68,7 @@ async def test_list_devices(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": entry.entry_id,
@ -87,6 +88,7 @@ async def test_list_devices(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": entry.entry_id,
@ -119,6 +121,7 @@ async def test_list_devices(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": entry.entry_id,

View File

@ -25,6 +25,7 @@
}),
'manufacturer': 'devolo',
'model': 'dLAN pro 1200+ WiFi ac',
'model_id': None,
'name': 'Mock Title',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Ecovacs',
'model': 'DEEBOT OZMO 950 Series',
'model_id': None,
'name': 'Ozmo 950',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -72,6 +72,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -154,6 +155,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -104,6 +104,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -220,6 +221,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Light Strip',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -336,6 +338,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Light Strip',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -79,6 +79,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -171,6 +172,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -263,6 +265,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -352,6 +355,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -444,6 +448,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -71,6 +71,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -152,6 +153,7 @@
}),
'manufacturer': 'Elgato',
'model': 'Elgato Key Light Mini',
'model_id': None,
'name': 'Frenck',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -62,6 +62,7 @@
}),
'manufacturer': 'EnergyZero',
'model': None,
'model_id': None,
'name': 'Energy market price',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -137,6 +138,7 @@
}),
'manufacturer': 'EnergyZero',
'model': None,
'model_id': None,
'name': 'Energy market price',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -209,6 +211,7 @@
}),
'manufacturer': 'EnergyZero',
'model': None,
'model_id': None,
'name': 'Energy market price',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -281,6 +284,7 @@
}),
'manufacturer': 'EnergyZero',
'model': None,
'model_id': None,
'name': 'Energy market price',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -353,6 +357,7 @@
}),
'manufacturer': 'EnergyZero',
'model': None,
'model_id': None,
'name': 'Energy market price',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -428,6 +433,7 @@
}),
'manufacturer': 'EnergyZero',
'model': None,
'model_id': None,
'name': 'Gas market price',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -46,6 +46,7 @@
]),
'manufacturer': 'Enphase',
'model': 'Envoy, phases: 3, phase mode: three, net-consumption CT, production CT, storage CT',
'model_id': None,
'name': 'Envoy <<envoyserial>>',
'name_by_user': None,
'primary_config_entry': '45a36e55aaddb2007c5f6602e0c38e72',
@ -3771,6 +3772,7 @@
]),
'manufacturer': 'Enphase',
'model': 'Inverter',
'model_id': None,
'name': 'Inverter 1',
'name_by_user': None,
'primary_config_entry': '45a36e55aaddb2007c5f6602e0c38e72',
@ -4043,6 +4045,7 @@
]),
'manufacturer': 'Enphase',
'model': 'Envoy, phases: 3, phase mode: three, net-consumption CT, production CT, storage CT',
'model_id': None,
'name': 'Envoy <<envoyserial>>',
'name_by_user': None,
'primary_config_entry': '45a36e55aaddb2007c5f6602e0c38e72',
@ -7768,6 +7771,7 @@
]),
'manufacturer': 'Enphase',
'model': 'Inverter',
'model_id': None,
'name': 'Inverter 1',
'name_by_user': None,
'primary_config_entry': '45a36e55aaddb2007c5f6602e0c38e72',
@ -8080,6 +8084,7 @@
]),
'manufacturer': 'Enphase',
'model': 'Envoy, phases: 3, phase mode: three, net-consumption CT, production CT, storage CT',
'model_id': None,
'name': 'Envoy <<envoyserial>>',
'name_by_user': None,
'primary_config_entry': '45a36e55aaddb2007c5f6602e0c38e72',
@ -11805,6 +11810,7 @@
]),
'manufacturer': 'Enphase',
'model': 'Inverter',
'model_id': None,
'name': 'Inverter 1',
'name_by_user': None,
'primary_config_entry': '45a36e55aaddb2007c5f6602e0c38e72',

View File

@ -21,6 +21,7 @@
}),
'manufacturer': None,
'model': 'Mock Model',
'model_id': None,
'name': 'Mock Title',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -24,6 +24,7 @@
]),
'manufacturer': 'Sleekpoint Innovations',
'model': 'AP2',
'model_id': None,
'name': 'Airversa AP2 1808',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -621,6 +622,7 @@
]),
'manufacturer': 'Anker',
'model': 'T8010',
'model_id': None,
'name': 'eufy HomeBase2-0AAA',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -695,6 +697,7 @@
]),
'manufacturer': 'Anker',
'model': 'T8113',
'model_id': None,
'name': 'eufyCam2-0000',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -937,6 +940,7 @@
]),
'manufacturer': 'Anker',
'model': 'T8113',
'model_id': None,
'name': 'eufyCam2-000A',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -1179,6 +1183,7 @@
]),
'manufacturer': 'Anker',
'model': 'T8113',
'model_id': None,
'name': 'eufyCam2-000A',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -1425,6 +1430,7 @@
]),
'manufacturer': 'Aqara',
'model': 'HE1-G01',
'model_id': None,
'name': 'Aqara-Hub-E1-00A0',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -1632,6 +1638,7 @@
]),
'manufacturer': 'Aqara',
'model': 'AS006',
'model_id': None,
'name': 'Contact Sensor',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -1797,6 +1804,7 @@
]),
'manufacturer': 'Aqara',
'model': 'ZHWA11LM',
'model_id': None,
'name': 'Aqara Hub-1563',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -2073,6 +2081,7 @@
]),
'manufacturer': 'Aqara',
'model': 'AR004',
'model_id': None,
'name': 'Programmable Switch',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -2197,6 +2206,7 @@
]),
'manufacturer': 'Netgear, Inc',
'model': 'ABC1000',
'model_id': None,
'name': 'ArloBabyA0',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -2682,6 +2692,7 @@
]),
'manufacturer': 'ConnectSense',
'model': 'CS-IWO',
'model_id': None,
'name': 'InWall Outlet-0394DE',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -3112,6 +3123,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'REMOTE SENSOR',
'model_id': None,
'name': 'Basement',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -3272,6 +3284,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'ecobee3',
'model_id': None,
'name': 'HomeW',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -3727,6 +3740,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'REMOTE SENSOR',
'model_id': None,
'name': 'Kitchen',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -3887,6 +3901,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'REMOTE SENSOR',
'model_id': None,
'name': 'Porch',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -4051,6 +4066,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'ecobee3',
'model_id': None,
'name': 'HomeW',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -4510,6 +4526,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'REMOTE SENSOR',
'model_id': None,
'name': 'Basement',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -4625,6 +4642,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'ecobee3',
'model_id': None,
'name': 'HomeW',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -4907,6 +4925,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'REMOTE SENSOR',
'model_id': None,
'name': 'Kitchen',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -5067,6 +5086,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'REMOTE SENSOR',
'model_id': None,
'name': 'Porch',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -5231,6 +5251,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'ECB501',
'model_id': None,
'name': 'My ecobee',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -5699,6 +5720,7 @@
]),
'manufacturer': 'ecobee Inc.',
'model': 'ecobee Switch+',
'model_id': None,
'name': 'Master Fan',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -5989,6 +6011,7 @@
]),
'manufacturer': 'Elgato',
'model': 'Eve Degree 00AAA0000',
'model_id': None,
'name': 'Eve Degree AA11',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -6346,6 +6369,7 @@
]),
'manufacturer': 'Elgato',
'model': 'Eve Energy 20EAO8601',
'model_id': None,
'name': 'Eve Energy 50FF',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -6685,6 +6709,7 @@
]),
'manufacturer': 'José A. Jiménez Campos',
'model': 'RavenSystem HAA',
'model_id': None,
'name': 'HAA-C718B3',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -6891,6 +6916,7 @@
]),
'manufacturer': 'José A. Jiménez Campos',
'model': 'RavenSystem HAA',
'model_id': None,
'name': 'HAA-C718B3',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -7327,6 +7353,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'Family Room North',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -7489,6 +7516,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -7563,6 +7591,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'Kitchen Window',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -7729,6 +7758,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Fan',
'model_id': None,
'name': 'Ceiling Fan',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -7850,6 +7880,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'Home Assistant Bridge',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -7924,6 +7955,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Fan',
'model_id': None,
'name': 'Living Room Fan',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8050,6 +8082,7 @@
]),
'manufacturer': 'Lookin',
'model': 'Climate Control',
'model_id': None,
'name': '89 Living Room',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8373,6 +8406,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8451,6 +8485,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8525,6 +8560,7 @@
]),
'manufacturer': 'FirstAlert',
'model': '1039102',
'model_id': None,
'name': 'Laundry Smoke ED78',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8699,6 +8735,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'Family Room North',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8861,6 +8898,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -8935,6 +8973,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'Kitchen Window',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9101,6 +9140,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Fan',
'model_id': None,
'name': 'Ceiling Fan',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9222,6 +9262,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'Home Assistant Bridge',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9296,6 +9337,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Fan',
'model_id': None,
'name': 'Living Room Fan',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9423,6 +9465,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'Home Assistant Bridge',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9497,6 +9540,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Fan',
'model_id': None,
'name': 'Living Room Fan',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9624,6 +9668,7 @@
]),
'manufacturer': 'Lookin',
'model': 'Climate Control',
'model_id': None,
'name': '89 Living Room',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -9956,6 +10001,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10034,6 +10080,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10108,6 +10155,7 @@
]),
'manufacturer': 'switchbot',
'model': 'WoHumi',
'model_id': None,
'name': 'Humidifier 182A',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10289,6 +10337,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10363,6 +10412,7 @@
]),
'manufacturer': 'switchbot',
'model': 'WoHumi',
'model_id': None,
'name': 'Humidifier 182A',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10544,6 +10594,7 @@
]),
'manufacturer': 'Home Assistant',
'model': 'Bridge',
'model_id': None,
'name': 'HASS Bridge S6',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10618,6 +10669,7 @@
]),
'manufacturer': 'FirstAlert',
'model': '1039102',
'model_id': None,
'name': 'Laundry Smoke ED78',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -10807,6 +10859,7 @@
]),
'manufacturer': 'Garzola Marco',
'model': 'Daikin-fwec3a-esp32-homekit-bridge',
'model_id': None,
'name': 'Air Conditioner',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11006,6 +11059,7 @@
]),
'manufacturer': 'Philips',
'model': 'LTW012',
'model_id': None,
'name': 'Hue ambiance candle',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11143,6 +11197,7 @@
]),
'manufacturer': 'Philips',
'model': 'LTW012',
'model_id': None,
'name': 'Hue ambiance candle',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11280,6 +11335,7 @@
]),
'manufacturer': 'Philips',
'model': 'LTW012',
'model_id': None,
'name': 'Hue ambiance candle',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11417,6 +11473,7 @@
]),
'manufacturer': 'Philips',
'model': 'LTW012',
'model_id': None,
'name': 'Hue ambiance candle',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11554,6 +11611,7 @@
]),
'manufacturer': 'Philips',
'model': 'LTW013',
'model_id': None,
'name': 'Hue ambiance spot',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11701,6 +11759,7 @@
]),
'manufacturer': 'Philips',
'model': 'LTW013',
'model_id': None,
'name': 'Hue ambiance spot',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -11848,6 +11907,7 @@
]),
'manufacturer': 'Philips',
'model': 'RWL021',
'model_id': None,
'name': 'Hue dimmer switch',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12164,6 +12224,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12288,6 +12349,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12412,6 +12474,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12536,6 +12599,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12660,6 +12724,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12784,6 +12849,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -12908,6 +12974,7 @@
]),
'manufacturer': 'Philips',
'model': 'LWB010',
'model_id': None,
'name': 'Hue white lamp',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -13032,6 +13099,7 @@
]),
'manufacturer': 'Philips Lighting',
'model': 'BSB002',
'model_id': None,
'name': 'Philips hue - 482544',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -13110,6 +13178,7 @@
]),
'manufacturer': 'Koogeek',
'model': 'LS1',
'model_id': None,
'name': 'Koogeek-LS1-20833F',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -13253,6 +13322,7 @@
]),
'manufacturer': 'Koogeek',
'model': 'P1EU',
'model_id': None,
'name': 'Koogeek-P1-A00AA0',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -13417,6 +13487,7 @@
]),
'manufacturer': 'Koogeek',
'model': 'KH02CN',
'model_id': None,
'name': 'Koogeek-SW2-187A91',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -13620,6 +13691,7 @@
]),
'manufacturer': 'Lennox',
'model': 'E30 2B',
'model_id': None,
'name': 'Lennox',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -13901,6 +13973,7 @@
]),
'manufacturer': 'LG Electronics',
'model': 'OLED55B9PUA',
'model_id': None,
'name': 'LG webOS TV AF80',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -14081,6 +14154,7 @@
]),
'manufacturer': 'Lutron Electronics Co., Inc',
'model': 'PD-FSQN-XX',
'model_id': None,
'name': 'Caséta® Wireless Fan Speed Control',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -14202,6 +14276,7 @@
]),
'manufacturer': 'Lutron Electronics Co., Inc',
'model': 'L-BDG2-WH',
'model_id': None,
'name': 'Smart Bridge 2',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -14280,6 +14355,7 @@
]),
'manufacturer': 'Meross',
'model': 'MSS425F',
'model_id': None,
'name': 'MSS425F-15cc',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -14558,6 +14634,7 @@
]),
'manufacturer': 'Meross',
'model': 'MSS565',
'model_id': None,
'name': 'MSS565-28da',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -14686,6 +14763,7 @@
]),
'manufacturer': 'Empowered Homes Inc.',
'model': 'v1',
'model_id': None,
'name': 'Mysa-85dda9',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -15015,6 +15093,7 @@
]),
'manufacturer': 'Nanoleaf',
'model': 'NL55',
'model_id': None,
'name': 'Nanoleaf Strip 3B32',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -15286,6 +15365,7 @@
]),
'manufacturer': 'Netatmo',
'model': 'Netatmo Doorbell',
'model_id': None,
'name': 'Netatmo-Doorbell-g738658',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -15579,6 +15659,7 @@
]),
'manufacturer': 'Netatmo',
'model': 'Smart CO Alarm',
'model_id': None,
'name': 'Smart CO Alarm',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -15739,6 +15820,7 @@
]),
'manufacturer': 'Netatmo',
'model': 'Healthy Home Coach',
'model_id': None,
'name': 'Healthy Home Coach',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -16041,6 +16123,7 @@
]),
'manufacturer': 'Green Electronics LLC',
'model': 'SPK5 Pro',
'model_id': None,
'name': 'RainMachine-00ce4a',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -16463,6 +16546,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'Master Bath South',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -16625,6 +16709,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE SmartBridge',
'model_id': None,
'name': 'RYSE SmartBridge',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -16699,6 +16784,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'RYSE SmartShade',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -16865,6 +16951,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'BR Left',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17027,6 +17114,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'LR Left',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17189,6 +17277,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'LR Right',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17351,6 +17440,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE SmartBridge',
'model_id': None,
'name': 'RYSE SmartBridge',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17425,6 +17515,7 @@
]),
'manufacturer': 'RYSE Inc.',
'model': 'RYSE Shade',
'model_id': None,
'name': 'RZSS',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17591,6 +17682,7 @@
]),
'manufacturer': 'Schlage ',
'model': 'BE479CAM619',
'model_id': None,
'name': 'SENSE ',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17710,6 +17802,7 @@
]),
'manufacturer': 'Hunter Fan',
'model': 'SIMPLEconnect',
'model_id': None,
'name': 'SIMPLEconnect Fan-06F674',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17886,6 +17979,7 @@
]),
'manufacturer': 'VELUX',
'model': 'VELUX Gateway',
'model_id': None,
'name': 'VELUX Gateway',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -17960,6 +18054,7 @@
]),
'manufacturer': 'VELUX',
'model': 'VELUX Sensor',
'model_id': None,
'name': 'VELUX Sensor',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -18169,6 +18264,7 @@
]),
'manufacturer': 'VELUX',
'model': 'VELUX Window',
'model_id': None,
'name': 'VELUX Window',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -18290,6 +18386,7 @@
]),
'manufacturer': 'VOCOlinc',
'model': 'Flowerbud',
'model_id': None,
'name': 'VOCOlinc-Flowerbud-0d324b',
'name_by_user': None,
'primary_config_entry': 'TestData',
@ -18595,6 +18692,7 @@
]),
'manufacturer': 'VOCOlinc',
'model': 'VP3',
'model_id': None,
'name': 'VOCOlinc-VP3-123456',
'name_by_user': None,
'primary_config_entry': 'TestData',

View File

@ -72,6 +72,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-P1',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -81,6 +81,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -172,6 +173,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,

File diff suppressed because it is too large Load Diff

View File

@ -71,6 +71,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-KWH1',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -152,6 +153,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-KWH3',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -234,6 +236,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -315,6 +318,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -396,6 +400,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -478,6 +483,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -559,6 +565,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -640,6 +647,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-SKT',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -721,6 +729,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'HWE-WTR',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -802,6 +811,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'SDM230-wifi',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -883,6 +893,7 @@
}),
'manufacturer': 'HomeWizard',
'model': 'SDM630-wifi',
'model_id': None,
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Husqvarna',
'model': '450XH-TEST',
'model_id': None,
'name': 'Test Mower 1',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'ista SE',
'model': 'ista EcoTrend',
'model_id': None,
'name': 'Luxemburger Str. 1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -52,6 +53,7 @@
}),
'manufacturer': 'ista SE',
'model': 'ista EcoTrend',
'model_id': None,
'name': 'Bahnhofsstr. 1A',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -67,6 +67,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'Outlet 1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -98,6 +99,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'Power strip with 2 sockets',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -175,6 +177,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'Outlet 2',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -206,6 +209,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'Power strip with 2 sockets',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -113,6 +113,7 @@
}),
'manufacturer': 'La Marzocco',
'model': <MachineModel.GS3_AV: 'GS3 AV'>,
'model_id': None,
'name': 'GS01234',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'Mealie',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Bubbendorf',
'model': 'Roller Shutter',
'model_id': None,
'name': 'Entrance Blinds',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -52,6 +53,7 @@
}),
'manufacturer': 'Bubbendorf',
'model': 'Orientable Shutter',
'model_id': None,
'name': 'Bubendorff blind',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -83,6 +85,7 @@
}),
'manufacturer': 'Legrand',
'model': '2 wire light switch/dimmer',
'model_id': None,
'name': 'Unknown 00:11:22:33:00:11:45:fe',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -114,6 +117,7 @@
}),
'manufacturer': 'Smarther',
'model': 'Smarther with Netatmo',
'model_id': None,
'name': 'Corridor',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -145,6 +149,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Energy Meter',
'model_id': None,
'name': 'Consumption meter',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -176,6 +181,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Light switch/dimmer with neutral',
'model_id': None,
'name': 'Bathroom light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -207,6 +213,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Line 1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -238,6 +245,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Line 2',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -269,6 +277,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Line 3',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -300,6 +309,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Line 4',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -331,6 +341,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Line 5',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -362,6 +373,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Total',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -393,6 +405,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Gas',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -424,6 +437,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Hot water',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -455,6 +469,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Cold water',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -486,6 +501,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Connected Ecometer',
'model_id': None,
'name': 'Écocompteur',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -517,6 +533,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Camera',
'model_id': None,
'name': 'Hall',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -548,6 +565,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Anemometer',
'model_id': None,
'name': 'Villa Garden',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -579,6 +597,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Outdoor Camera',
'model_id': None,
'name': 'Front',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -610,6 +629,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Video Doorbell',
'model_id': None,
'name': 'Netatmo-Doorbell',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -641,6 +661,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Air Quality Monitor',
'model_id': None,
'name': 'Kitchen',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -672,6 +693,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Air Quality Monitor',
'model_id': None,
'name': 'Livingroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -703,6 +725,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Air Quality Monitor',
'model_id': None,
'name': 'Baby Bedroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -734,6 +757,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Air Quality Monitor',
'model_id': None,
'name': 'Bedroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -765,6 +789,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Air Quality Monitor',
'model_id': None,
'name': 'Parents Bedroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -796,6 +821,7 @@
}),
'manufacturer': 'Legrand',
'model': 'Plug',
'model_id': None,
'name': 'Prise',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -827,6 +853,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Outdoor Module',
'model_id': None,
'name': 'Villa Outdoor',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -858,6 +885,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Module',
'model_id': None,
'name': 'Villa Bedroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -889,6 +917,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Indoor Module',
'model_id': None,
'name': 'Villa Bathroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -920,6 +949,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Home Weather station',
'model_id': None,
'name': 'Villa',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -951,6 +981,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Rain Gauge',
'model_id': None,
'name': 'Villa Rain',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -982,6 +1013,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'OpenTherm Modulating Thermostat',
'model_id': None,
'name': 'Bureau Modulate',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1013,6 +1045,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Thermostat',
'model_id': None,
'name': 'Livingroom',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1044,6 +1077,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Valve',
'model_id': None,
'name': 'Valve1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1075,6 +1109,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Smart Valve',
'model_id': None,
'name': 'Valve2',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1106,6 +1141,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Climate',
'model_id': None,
'name': 'MYHOME',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1137,6 +1173,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Public Weather station',
'model_id': None,
'name': 'Home avg',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1168,6 +1205,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Public Weather station',
'model_id': None,
'name': 'Home max',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1199,6 +1237,7 @@
}),
'manufacturer': 'Netatmo',
'model': 'Public Weather station',
'model_id': None,
'name': 'Home min',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Netgear',
'model': 'LM1200',
'model_id': None,
'name': 'Netgear LM1200',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Ondilo',
'model': 'ICO',
'model_id': None,
'name': 'Pool 1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -52,6 +53,7 @@
}),
'manufacturer': 'Ondilo',
'model': 'ICO',
'model_id': None,
'name': 'Pool 2',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -34,6 +34,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2405',
'model_id': None,
'name': '05.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -75,6 +76,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18S20',
'model_id': None,
'name': '10.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -116,6 +118,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2406',
'model_id': None,
'name': '12.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -257,6 +260,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -298,6 +302,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2409',
'model_id': None,
'name': '1F.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -327,6 +332,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -368,6 +374,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1822',
'model_id': None,
'name': '22.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -409,6 +416,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': '26.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -450,6 +458,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -491,6 +500,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -532,6 +542,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222223',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -573,6 +584,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2408',
'model_id': None,
'name': '29.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -966,6 +978,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2760',
'model_id': None,
'name': '30.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1007,6 +1020,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2413',
'model_id': None,
'name': '3A.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1136,6 +1150,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1825',
'model_id': None,
'name': '3B.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1177,6 +1192,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS28EA00',
'model_id': None,
'name': '42.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1218,6 +1234,7 @@
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0068',
'model_id': None,
'name': '7E.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1259,6 +1276,7 @@
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0066',
'model_id': None,
'name': '7E.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1300,6 +1318,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': 'A6.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1341,6 +1360,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HobbyBoards_EF',
'model_id': None,
'name': 'EF.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1382,6 +1402,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_MOISTURE_METER',
'model_id': None,
'name': 'EF.111111111112',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1423,6 +1444,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_HUB',
'model_id': None,
'name': 'EF.111111111113',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -34,6 +34,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2405',
'model_id': None,
'name': '05.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -75,6 +76,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18S20',
'model_id': None,
'name': '10.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -165,6 +167,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2406',
'model_id': None,
'name': '12.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -316,6 +319,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -453,6 +457,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2409',
'model_id': None,
'name': '1F.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -482,6 +487,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -619,6 +625,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1822',
'model_id': None,
'name': '22.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -709,6 +716,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': '26.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1289,6 +1297,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1379,6 +1388,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1469,6 +1479,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222223',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1559,6 +1570,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2408',
'model_id': None,
'name': '29.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1600,6 +1612,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2760',
'model_id': None,
'name': '30.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1837,6 +1850,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2413',
'model_id': None,
'name': '3A.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1878,6 +1892,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1825',
'model_id': None,
'name': '3B.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1968,6 +1983,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS28EA00',
'model_id': None,
'name': '42.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2058,6 +2074,7 @@
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0068',
'model_id': None,
'name': '7E.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2295,6 +2312,7 @@
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0066',
'model_id': None,
'name': '7E.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2434,6 +2452,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': 'A6.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -3014,6 +3033,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HobbyBoards_EF',
'model_id': None,
'name': 'EF.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -3202,6 +3222,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_MOISTURE_METER',
'model_id': None,
'name': 'EF.111111111112',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -3439,6 +3460,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_HUB',
'model_id': None,
'name': 'EF.111111111113',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -34,6 +34,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2405',
'model_id': None,
'name': '05.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -119,6 +120,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18S20',
'model_id': None,
'name': '10.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -160,6 +162,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2406',
'model_id': None,
'name': '12.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -389,6 +392,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -430,6 +434,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2409',
'model_id': None,
'name': '1F.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -459,6 +464,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2423',
'model_id': None,
'name': '1D.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -500,6 +506,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1822',
'model_id': None,
'name': '22.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -541,6 +548,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': '26.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -626,6 +634,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -667,6 +676,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -708,6 +718,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS18B20',
'model_id': None,
'name': '28.222222222223',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -749,6 +760,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2408',
'model_id': None,
'name': '29.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1494,6 +1506,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2760',
'model_id': None,
'name': '30.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1535,6 +1548,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2413',
'model_id': None,
'name': '3A.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1664,6 +1678,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS1825',
'model_id': None,
'name': '3B.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1705,6 +1720,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS28EA00',
'model_id': None,
'name': '42.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1746,6 +1762,7 @@
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0068',
'model_id': None,
'name': '7E.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1787,6 +1804,7 @@
}),
'manufacturer': 'Embedded Data Systems',
'model': 'EDS0066',
'model_id': None,
'name': '7E.222222222222',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1828,6 +1846,7 @@
}),
'manufacturer': 'Maxim Integrated',
'model': 'DS2438',
'model_id': None,
'name': 'A6.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1913,6 +1932,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HobbyBoards_EF',
'model_id': None,
'name': 'EF.111111111111',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1954,6 +1974,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_MOISTURE_METER',
'model_id': None,
'name': 'EF.111111111112',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2347,6 +2368,7 @@
}),
'manufacturer': 'Hobby Boards',
'model': 'HB_HUB',
'model_id': None,
'name': 'EF.111111111113',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -321,6 +322,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -706,6 +708,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -875,6 +878,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1302,6 +1306,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1601,6 +1606,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1986,6 +1992,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2155,6 +2162,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -105,6 +106,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -272,6 +274,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -439,6 +442,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -606,6 +610,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -689,6 +694,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -856,6 +862,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1023,6 +1030,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -106,6 +107,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -190,6 +192,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -231,6 +234,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -315,6 +319,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -402,6 +407,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -489,6 +495,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -530,6 +537,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -63,6 +64,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -159,6 +161,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -255,6 +258,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -351,6 +355,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -392,6 +397,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -488,6 +494,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -584,6 +591,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -331,6 +332,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1085,6 +1087,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1835,6 +1838,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2628,6 +2632,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -2937,6 +2942,7 @@
}),
'manufacturer': 'Renault',
'model': 'Captur ii',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -3691,6 +3697,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -4441,6 +4448,7 @@
}),
'manufacturer': 'Renault',
'model': 'Zoe',
'model_id': None,
'name': 'REG-NUMBER',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': '8381BE 13',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': None,
'model': 'NB6VAC-FXC-r0',
'model_id': None,
'name': 'SFR Box',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -149,6 +150,7 @@
}),
'manufacturer': None,
'model': 'NB6VAC-FXC-r0',
'model_id': None,
'name': 'SFR Box',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': None,
'model': 'NB6VAC-FXC-r0',
'model_id': None,
'name': 'SFR Box',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': None,
'model': 'NB6VAC-FXC-r0',
'model_id': None,
'name': 'SFR Box',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -68,6 +68,7 @@
}),
'manufacturer': 'Tailwind',
'model': 'iQ3',
'model_id': None,
'name': 'Door 1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -146,6 +147,7 @@
}),
'manufacturer': 'Tailwind',
'model': 'iQ3',
'model_id': None,
'name': 'Door 2',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -72,6 +72,7 @@
}),
'manufacturer': 'Tailwind',
'model': 'iQ3',
'model_id': None,
'name': 'Tailwind iQ3',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -69,6 +69,7 @@
}),
'manufacturer': 'Tailwind',
'model': 'iQ3',
'model_id': None,
'name': 'Door 1',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -148,6 +149,7 @@
}),
'manufacturer': 'Tailwind',
'model': 'iQ3',
'model_id': None,
'name': 'Door 2',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -81,6 +81,7 @@
}),
'manufacturer': 'Tailwind',
'model': 'iQ3',
'model_id': None,
'name': 'Tailwind iQ3',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Tedee',
'model': 'Bridge',
'model_id': None,
'name': 'Bridge-AB1C',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -68,6 +68,7 @@
}),
'manufacturer': 'Tedee',
'model': 'Tedee PRO',
'model_id': None,
'name': 'Lock-1A2B',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -146,6 +147,7 @@
}),
'manufacturer': 'Tedee',
'model': 'Tedee GO',
'model_id': None,
'name': 'Lock-2C3D',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -21,6 +21,7 @@
}),
'manufacturer': 'Tesla',
'model': 'Powerwall 2, Tesla Backup Gateway 2',
'model_id': None,
'name': 'Energy Site',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -52,6 +53,7 @@
}),
'manufacturer': 'Tesla',
'model': 'Model X',
'model_id': None,
'name': 'Test',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -83,6 +85,7 @@
}),
'manufacturer': 'Tesla',
'model': 'Gen 3 Wall Connector',
'model_id': None,
'name': 'Wall Connector',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -114,6 +117,7 @@
}),
'manufacturer': 'Tesla',
'model': 'Gen 3 Wall Connector',
'model_id': None,
'name': 'Wall Connector',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -359,6 +359,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -117,6 +117,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -84,6 +84,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'thermostat',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -184,6 +184,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -25,6 +25,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -25,6 +25,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -25,6 +25,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -25,6 +25,7 @@
}),
'manufacturer': 'TP-Link',
'model': 'HS100',
'model_id': None,
'name': 'my_device',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -99,6 +99,7 @@
}),
'manufacturer': 'Twente Milieu',
'model': None,
'model_id': None,
'name': 'Twente Milieu',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -68,6 +68,7 @@
}),
'manufacturer': 'Twente Milieu',
'model': None,
'model_id': None,
'name': 'Twente Milieu',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -146,6 +147,7 @@
}),
'manufacturer': 'Twente Milieu',
'model': None,
'model_id': None,
'name': 'Twente Milieu',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -224,6 +226,7 @@
}),
'manufacturer': 'Twente Milieu',
'model': None,
'model_id': None,
'name': 'Twente Milieu',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -302,6 +305,7 @@
}),
'manufacturer': 'Twente Milieu',
'model': None,
'model_id': None,
'name': 'Twente Milieu',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -380,6 +384,7 @@
}),
'manufacturer': 'Twente Milieu',
'model': None,
'model_id': None,
'name': 'Twente Milieu',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -61,6 +61,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'Uptime',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LV-PUR131S',
'model_id': None,
'name': 'Air Purifier 131s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -113,6 +114,7 @@
}),
'manufacturer': 'VeSync',
'model': 'Core200S',
'model_id': None,
'name': 'Air Purifier 200s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -209,6 +211,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C401S-WJP',
'model_id': None,
'name': 'Air Purifier 400s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -307,6 +310,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C601S-WUS',
'model_id': None,
'name': 'Air Purifier 600s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -405,6 +409,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100',
'model_id': None,
'name': 'Dimmable Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -442,6 +447,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWD16',
'model_id': None,
'name': 'Dimmer Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -495,6 +501,7 @@
}),
'manufacturer': 'VeSync',
'model': 'wifi-switch-1.3',
'model_id': None,
'name': 'Outlet',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -532,6 +539,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100CW',
'model_id': None,
'name': 'Temperature Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -569,6 +577,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWL01',
'model_id': None,
'name': 'Wall Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LV-PUR131S',
'model_id': None,
'name': 'Air Purifier 131s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -59,6 +60,7 @@
}),
'manufacturer': 'VeSync',
'model': 'Core200S',
'model_id': None,
'name': 'Air Purifier 200s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -96,6 +98,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C401S-WJP',
'model_id': None,
'name': 'Air Purifier 400s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -133,6 +136,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C601S-WUS',
'model_id': None,
'name': 'Air Purifier 600s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -170,6 +174,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100',
'model_id': None,
'name': 'Dimmable Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -259,6 +264,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWD16',
'model_id': None,
'name': 'Dimmer Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -366,6 +372,7 @@
}),
'manufacturer': 'VeSync',
'model': 'wifi-switch-1.3',
'model_id': None,
'name': 'Outlet',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -403,6 +410,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100CW',
'model_id': None,
'name': 'Temperature Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -507,6 +515,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWL01',
'model_id': None,
'name': 'Wall Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LV-PUR131S',
'model_id': None,
'name': 'Air Purifier 131s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -151,6 +152,7 @@
}),
'manufacturer': 'VeSync',
'model': 'Core200S',
'model_id': None,
'name': 'Air Purifier 200s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -236,6 +238,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C401S-WJP',
'model_id': None,
'name': 'Air Purifier 400s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -414,6 +417,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C601S-WUS',
'model_id': None,
'name': 'Air Purifier 600s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -592,6 +596,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100',
'model_id': None,
'name': 'Dimmable Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -629,6 +634,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWD16',
'model_id': None,
'name': 'Dimmer Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -682,6 +688,7 @@
}),
'manufacturer': 'VeSync',
'model': 'wifi-switch-1.3',
'model_id': None,
'name': 'Outlet',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1013,6 +1020,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100CW',
'model_id': None,
'name': 'Temperature Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -1050,6 +1058,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWL01',
'model_id': None,
'name': 'Wall Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -22,6 +22,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LV-PUR131S',
'model_id': None,
'name': 'Air Purifier 131s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -59,6 +60,7 @@
}),
'manufacturer': 'VeSync',
'model': 'Core200S',
'model_id': None,
'name': 'Air Purifier 200s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -96,6 +98,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C401S-WJP',
'model_id': None,
'name': 'Air Purifier 400s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -133,6 +136,7 @@
}),
'manufacturer': 'VeSync',
'model': 'LAP-C601S-WUS',
'model_id': None,
'name': 'Air Purifier 600s',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -170,6 +174,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100',
'model_id': None,
'name': 'Dimmable Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -207,6 +212,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWD16',
'model_id': None,
'name': 'Dimmer Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -260,6 +266,7 @@
}),
'manufacturer': 'VeSync',
'model': 'wifi-switch-1.3',
'model_id': None,
'name': 'Outlet',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -341,6 +348,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESL100CW',
'model_id': None,
'name': 'Temperature Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -378,6 +386,7 @@
}),
'manufacturer': 'VeSync',
'model': 'ESWL01',
'model_id': None,
'name': 'Wall Switch',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -67,6 +67,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -145,6 +146,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -227,6 +229,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -305,6 +308,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -383,6 +387,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -460,6 +465,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -537,6 +543,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -614,6 +621,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -691,6 +699,7 @@
}),
'manufacturer': None,
'model': None,
'model_id': None,
'name': 'home-assistant.io',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -72,6 +72,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -80,6 +80,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -170,6 +171,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -82,6 +82,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -268,6 +269,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -358,6 +360,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGBW Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -448,6 +451,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGBW Light',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -74,6 +74,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -155,6 +156,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -237,6 +239,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,
@ -319,6 +322,7 @@
}),
'manufacturer': 'WLED',
'model': 'DIY light',
'model_id': None,
'name': 'WLED RGB Light',
'name_by_user': None,
'primary_config_entry': <ANY>,

View File

@ -201,6 +201,7 @@ async def test_loading_from_storage(
"labels": {"label1", "label2"},
"manufacturer": "manufacturer",
"model": "model",
"model_id": "model_id",
"name_by_user": "Test Friendly Name",
"name": "name",
"primary_config_entry": mock_config_entry.entry_id,
@ -246,6 +247,7 @@ async def test_loading_from_storage(
labels={"label1", "label2"},
manufacturer="manufacturer",
model="model",
model_id="model_id",
name_by_user="Test Friendly Name",
name="name",
primary_config_entry=mock_config_entry.entry_id,
@ -281,12 +283,12 @@ async def test_loading_from_storage(
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_1_to_1_6(
async def test_migration_1_1_to_1_7(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
) -> None:
"""Test migration from version 1.1 to 1.6."""
"""Test migration from version 1.1 to 1.7."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 1,
@ -373,6 +375,7 @@ async def test_migration_1_1_to_1_6(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name": "name",
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
@ -393,6 +396,7 @@ async def test_migration_1_1_to_1_6(
"labels": [],
"manufacturer": None,
"model": None,
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": None,
@ -415,12 +419,12 @@ async def test_migration_1_1_to_1_6(
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_2_to_1_6(
async def test_migration_1_2_to_1_7(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
) -> None:
"""Test migration from version 1.2 to 1.6."""
"""Test migration from version 1.2 to 1.7."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 2,
@ -506,6 +510,7 @@ async def test_migration_1_2_to_1_6(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name": "name",
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
@ -526,6 +531,7 @@ async def test_migration_1_2_to_1_6(
"labels": [],
"manufacturer": None,
"model": None,
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": None,
@ -540,12 +546,12 @@ async def test_migration_1_2_to_1_6(
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_3_to_1_6(
async def test_migration_1_3_to_1_7(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
) -> None:
"""Test migration from version 1.3 to 1.6."""
"""Test migration from version 1.3 to 1.7."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 3,
@ -633,6 +639,7 @@ async def test_migration_1_3_to_1_6(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name": "name",
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
@ -653,6 +660,7 @@ async def test_migration_1_3_to_1_6(
"labels": [],
"manufacturer": None,
"model": None,
"model_id": None,
"name": None,
"name_by_user": None,
"primary_config_entry": None,
@ -667,12 +675,12 @@ async def test_migration_1_3_to_1_6(
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_4_to_1_6(
async def test_migration_1_4_to_1_7(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
) -> None:
"""Test migration from version 1.4 to 1.6."""
"""Test migration from version 1.4 to 1.7."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 4,
@ -762,6 +770,7 @@ async def test_migration_1_4_to_1_6(
"labels": [],
"manufacturer": "manufacturer",
"model": "model",
"model_id": None,
"name": "name",
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
@ -782,6 +791,7 @@ async def test_migration_1_4_to_1_6(
"labels": [],
"manufacturer": None,
"model": None,
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": None,
@ -796,12 +806,12 @@ async def test_migration_1_4_to_1_6(
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_5_to_1_6(
async def test_migration_1_5_to_1_7(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
) -> None:
"""Test migration from version 1.5 to 1.6."""
"""Test migration from version 1.5 to 1.7."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 5,
@ -894,6 +904,7 @@ async def test_migration_1_5_to_1_6(
"manufacturer": "manufacturer",
"model": "model",
"name": "name",
"model_id": None,
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
"serial_number": None,
@ -913,6 +924,142 @@ async def test_migration_1_5_to_1_6(
"labels": ["blah"],
"manufacturer": None,
"model": None,
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": None,
"serial_number": None,
"sw_version": None,
"via_device_id": None,
},
],
"deleted_devices": [],
},
}
@pytest.mark.parametrize("load_registries", [False])
async def test_migration_1_6_to_1_7(
hass: HomeAssistant,
hass_storage: dict[str, Any],
mock_config_entry: MockConfigEntry,
) -> None:
"""Test migration from version 1.6 to 1.7."""
hass_storage[dr.STORAGE_KEY] = {
"version": 1,
"minor_version": 6,
"key": dr.STORAGE_KEY,
"data": {
"devices": [
{
"area_id": None,
"config_entries": [mock_config_entry.entry_id],
"configuration_url": None,
"connections": [["Zigbee", "01.23.45.67.89"]],
"disabled_by": None,
"entry_type": "service",
"hw_version": "hw_version",
"id": "abcdefghijklm",
"identifiers": [["serial", "123456ABCDEF"]],
"labels": ["blah"],
"manufacturer": "manufacturer",
"model": "model",
"name": "name",
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
"serial_number": None,
"sw_version": "new_version",
"via_device_id": None,
},
{
"area_id": None,
"config_entries": [None],
"configuration_url": None,
"connections": [],
"disabled_by": None,
"entry_type": None,
"hw_version": None,
"id": "invalid-entry-type",
"identifiers": [["serial", "mock-id-invalid-entry"]],
"labels": ["blah"],
"manufacturer": None,
"model": None,
"name_by_user": None,
"primary_config_entry": None,
"name": None,
"serial_number": None,
"sw_version": None,
"via_device_id": None,
},
],
"deleted_devices": [],
},
}
await dr.async_load(hass)
registry = dr.async_get(hass)
# Test data was loaded
entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "123456ABCDEF")},
)
assert entry.id == "abcdefghijklm"
# Update to trigger a store
entry = registry.async_get_or_create(
config_entry_id=mock_config_entry.entry_id,
connections={("Zigbee", "01.23.45.67.89")},
identifiers={("serial", "123456ABCDEF")},
sw_version="new_version",
)
assert entry.id == "abcdefghijklm"
# Check we store migrated data
await flush_store(registry._store)
assert hass_storage[dr.STORAGE_KEY] == {
"version": dr.STORAGE_VERSION_MAJOR,
"minor_version": dr.STORAGE_VERSION_MINOR,
"key": dr.STORAGE_KEY,
"data": {
"devices": [
{
"area_id": None,
"config_entries": [mock_config_entry.entry_id],
"configuration_url": None,
"connections": [["Zigbee", "01.23.45.67.89"]],
"disabled_by": None,
"entry_type": "service",
"hw_version": "hw_version",
"id": "abcdefghijklm",
"identifiers": [["serial", "123456ABCDEF"]],
"labels": ["blah"],
"manufacturer": "manufacturer",
"model": "model",
"name": "name",
"model_id": None,
"name_by_user": None,
"primary_config_entry": mock_config_entry.entry_id,
"serial_number": None,
"sw_version": "new_version",
"via_device_id": None,
},
{
"area_id": None,
"config_entries": [None],
"configuration_url": None,
"connections": [],
"disabled_by": None,
"entry_type": None,
"hw_version": None,
"id": "invalid-entry-type",
"identifiers": [["serial", "mock-id-invalid-entry"]],
"labels": ["blah"],
"manufacturer": None,
"model": None,
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": None,
@ -1424,6 +1571,7 @@ async def test_update(
labels={"label1", "label2"},
manufacturer="Test Producer",
model="Test Model",
model_id="Test Model Name",
name_by_user="Test Friendly Name",
name="name",
new_connections=new_connections,
@ -1449,6 +1597,7 @@ async def test_update(
labels={"label1", "label2"},
manufacturer="Test Producer",
model="Test Model",
model_id="Test Model Name",
name_by_user="Test Friendly Name",
name="name",
serial_number="serial_no",
@ -1503,6 +1652,7 @@ async def test_update(
"labels": set(),
"manufacturer": None,
"model": None,
"model_id": None,
"name": None,
"name_by_user": None,
"serial_number": None,
@ -2474,6 +2624,7 @@ async def test_loading_invalid_configuration_url_from_storage(
"labels": [],
"manufacturer": None,
"model": None,
"model_id": None,
"name_by_user": None,
"name": None,
"primary_config_entry": "1234",