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:
parent
11a25157c1
commit
94b6ab2862
3 changed files with 14 additions and 17 deletions
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue