Use platform tag to register components on hue SensorManager (#32732)

* Use platform tag to register components on hue SensorManager

instead of a boolean flag to decide between sensor and binary sensor,
so it could be used externally (or to get ready for inclusion of other comps)

* Make new item discovery platform agnostic for SensorManager
This commit is contained in:
Eugenio Panadero 2020-03-13 02:31:39 +01:00 committed by GitHub
parent 11a25157c1
commit 94b6ab2862
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 17 deletions

View file

@ -62,9 +62,9 @@ class SensorManager:
except AiohueException as err:
raise UpdateFailed(f"Hue error: {err}")
async def async_register_component(self, binary, async_add_entities):
async def async_register_component(self, platform, async_add_entities):
"""Register async_add_entities methods for components."""
self._component_add_entities[binary] = async_add_entities
self._component_add_entities[platform] = async_add_entities
if len(self._component_add_entities) < 2:
return
@ -84,8 +84,7 @@ class SensorManager:
if len(self._component_add_entities) < 2:
return
new_sensors = []
new_binary_sensors = []
to_add = {}
primary_sensor_devices = {}
current = self.current
@ -129,10 +128,10 @@ class SensorManager:
current[api[item_id].uniqueid] = sensor_config["class"](
api[item_id], name, self.bridge, primary_sensor=primary_sensor
)
if sensor_config["binary"]:
new_binary_sensors.append(current[api[item_id].uniqueid])
else:
new_sensors.append(current[api[item_id].uniqueid])
to_add.setdefault(sensor_config["platform"], []).append(
current[api[item_id].uniqueid]
)
self.bridge.hass.async_create_task(
remove_devices(
@ -140,10 +139,8 @@ class SensorManager:
)
)
if new_sensors:
self._component_add_entities[False](new_sensors)
if new_binary_sensors:
self._component_add_entities[True](new_binary_sensors)
for platform in to_add:
self._component_add_entities[platform](to_add[platform])
class GenericHueSensor(entity.Entity):