Handle re-adding of accessories/services/chars in homekit_controller after removal (#102192)
This commit is contained in:
parent
cfb88766c7
commit
3cedfbcc66
4 changed files with 45 additions and 37 deletions
|
@ -8,7 +8,7 @@ import os
|
|||
from typing import Any, Final
|
||||
from unittest import mock
|
||||
|
||||
from aiohomekit.controller.abstract import AbstractPairing
|
||||
from aiohomekit.controller.abstract import AbstractDescription, AbstractPairing
|
||||
from aiohomekit.hkjson import loads as hkloads
|
||||
from aiohomekit.model import (
|
||||
Accessories,
|
||||
|
@ -17,7 +17,6 @@ from aiohomekit.model import (
|
|||
mixin as model_mixin,
|
||||
)
|
||||
from aiohomekit.testing import FakeController, FakePairing
|
||||
from aiohomekit.zeroconf import HomeKitService
|
||||
|
||||
from homeassistant.components.device_automation import DeviceAutomationType
|
||||
from homeassistant.components.homekit_controller.const import (
|
||||
|
@ -254,26 +253,21 @@ async def device_config_changed(hass: HomeAssistant, accessories: Accessories):
|
|||
accessories_obj = Accessories()
|
||||
for accessory in accessories:
|
||||
accessories_obj.add_accessory(accessory)
|
||||
pairing._accessories_state = AccessoriesState(
|
||||
accessories_obj, pairing.config_num + 1
|
||||
)
|
||||
|
||||
new_config_num = pairing.config_num + 1
|
||||
pairing._async_description_update(
|
||||
HomeKitService(
|
||||
name="TestDevice.local",
|
||||
AbstractDescription(
|
||||
name="testdevice.local.",
|
||||
id="00:00:00:00:00:00",
|
||||
model="",
|
||||
config_num=2,
|
||||
state_num=3,
|
||||
feature_flags=0,
|
||||
status_flags=0,
|
||||
config_num=new_config_num,
|
||||
category=1,
|
||||
protocol_version="1.0",
|
||||
type="_hap._tcp.local.",
|
||||
address="127.0.0.1",
|
||||
addresses=["127.0.0.1"],
|
||||
port=8080,
|
||||
)
|
||||
)
|
||||
# Set the accessories state only after calling
|
||||
# _async_description_update, otherwise the config_num will be
|
||||
# overwritten
|
||||
pairing._accessories_state = AccessoriesState(accessories_obj, new_config_num)
|
||||
|
||||
# Wait for services to reconfigure
|
||||
await hass.async_block_till_done()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue