mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +00:00
Added option to block Osram Lightify individual lights in the same way that groups can be (#14470)
This commit is contained in:
parent
d6e76969cc
commit
cfac537f51
@ -27,8 +27,10 @@ REQUIREMENTS = ['lightify==1.0.6.1']
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
CONF_ALLOW_LIGHTIFY_NODES = 'allow_lightify_nodes'
|
||||||
CONF_ALLOW_LIGHTIFY_GROUPS = 'allow_lightify_groups'
|
CONF_ALLOW_LIGHTIFY_GROUPS = 'allow_lightify_groups'
|
||||||
|
|
||||||
|
DEFAULT_ALLOW_LIGHTIFY_NODES = True
|
||||||
DEFAULT_ALLOW_LIGHTIFY_GROUPS = True
|
DEFAULT_ALLOW_LIGHTIFY_GROUPS = True
|
||||||
|
|
||||||
MIN_TIME_BETWEEN_FORCED_SCANS = timedelta(milliseconds=100)
|
MIN_TIME_BETWEEN_FORCED_SCANS = timedelta(milliseconds=100)
|
||||||
@ -40,6 +42,8 @@ SUPPORT_OSRAMLIGHTIFY = (SUPPORT_BRIGHTNESS | SUPPORT_COLOR_TEMP |
|
|||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_HOST): cv.string,
|
vol.Required(CONF_HOST): cv.string,
|
||||||
|
vol.Optional(CONF_ALLOW_LIGHTIFY_NODES,
|
||||||
|
default=DEFAULT_ALLOW_LIGHTIFY_NODES): cv.boolean,
|
||||||
vol.Optional(CONF_ALLOW_LIGHTIFY_GROUPS,
|
vol.Optional(CONF_ALLOW_LIGHTIFY_GROUPS,
|
||||||
default=DEFAULT_ALLOW_LIGHTIFY_GROUPS): cv.boolean,
|
default=DEFAULT_ALLOW_LIGHTIFY_GROUPS): cv.boolean,
|
||||||
})
|
})
|
||||||
@ -50,6 +54,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||||||
import lightify
|
import lightify
|
||||||
|
|
||||||
host = config.get(CONF_HOST)
|
host = config.get(CONF_HOST)
|
||||||
|
add_nodes = config.get(CONF_ALLOW_LIGHTIFY_NODES)
|
||||||
add_groups = config.get(CONF_ALLOW_LIGHTIFY_GROUPS)
|
add_groups = config.get(CONF_ALLOW_LIGHTIFY_GROUPS)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -60,10 +65,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
|||||||
_LOGGER.exception(msg)
|
_LOGGER.exception(msg)
|
||||||
return
|
return
|
||||||
|
|
||||||
setup_bridge(bridge, add_devices, add_groups)
|
setup_bridge(bridge, add_devices, add_nodes, add_groups)
|
||||||
|
|
||||||
|
|
||||||
def setup_bridge(bridge, add_devices, add_groups):
|
def setup_bridge(bridge, add_devices, add_nodes, add_groups):
|
||||||
"""Set up the Lightify bridge."""
|
"""Set up the Lightify bridge."""
|
||||||
lights = {}
|
lights = {}
|
||||||
|
|
||||||
@ -80,14 +85,15 @@ def setup_bridge(bridge, add_devices, add_groups):
|
|||||||
|
|
||||||
new_lights = []
|
new_lights = []
|
||||||
|
|
||||||
for (light_id, light) in bridge.lights().items():
|
if add_nodes:
|
||||||
if light_id not in lights:
|
for (light_id, light) in bridge.lights().items():
|
||||||
osram_light = OsramLightifyLight(
|
if light_id not in lights:
|
||||||
light_id, light, update_lights)
|
osram_light = OsramLightifyLight(
|
||||||
lights[light_id] = osram_light
|
light_id, light, update_lights)
|
||||||
new_lights.append(osram_light)
|
lights[light_id] = osram_light
|
||||||
else:
|
new_lights.append(osram_light)
|
||||||
lights[light_id].light = light
|
else:
|
||||||
|
lights[light_id].light = light
|
||||||
|
|
||||||
if add_groups:
|
if add_groups:
|
||||||
for (group_name, group) in bridge.groups().items():
|
for (group_name, group) in bridge.groups().items():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user