HomeKit Controller: Adopt config entries for pairing with homekit accessories (#23825)

* Fix user initiated pairing + show more user friendly name

* Add lock around async_refresh_entity_map

* Migrate homekit_controller to config entries.

* Improve docstring

Co-Authored-By: Martin Hjelmare <marhje52@kth.se>

* Add dummy async_setup_platform

* add_service -> async_add_service

* Add missing returns

* Enable coverage checks for homekit_controller
This commit is contained in:
Jc2k
2019-05-13 07:56:05 +01:00
committed by Paulus Schoutsen
parent 3508622e3b
commit b8cbd39985
19 changed files with 334 additions and 287 deletions

View File

@@ -11,21 +11,35 @@ UNIT_PERCENT = "%"
UNIT_LUX = "lux"
def setup_platform(hass, config, add_entities, discovery_info=None):
"""Set up Homekit sensor support."""
if discovery_info is not None:
accessory = hass.data[KNOWN_DEVICES][discovery_info['serial']]
devtype = discovery_info['device-type']
async def async_setup_platform(
hass, config, async_add_entities, discovery_info=None):
"""Legacy set up platform."""
pass
async def async_setup_entry(hass, config_entry, async_add_entities):
"""Set up Homekit covers."""
hkid = config_entry.data['AccessoryPairingID']
conn = hass.data[KNOWN_DEVICES][hkid]
def async_add_service(aid, service):
devtype = service['stype']
info = {'aid': aid, 'iid': service['iid']}
if devtype == 'humidity':
add_entities(
[HomeKitHumiditySensor(accessory, discovery_info)], True)
elif devtype == 'temperature':
add_entities(
[HomeKitTemperatureSensor(accessory, discovery_info)], True)
elif devtype == 'light':
add_entities(
[HomeKitLightSensor(accessory, discovery_info)], True)
async_add_entities([HomeKitHumiditySensor(conn, info)], True)
return True
if devtype == 'temperature':
async_add_entities([HomeKitTemperatureSensor(conn, info)], True)
return True
if devtype == 'light':
async_add_entities([HomeKitLightSensor(conn, info)], True)
return True
return False
conn.add_listener(async_add_service)
class HomeKitHumiditySensor(HomeKitEntity):