KNX: Added config option for broadcasting current time to KNX bus. (#10654)

This commit is contained in:
Julius Mittenzwei 2017-11-28 08:15:57 +01:00 committed by Paulus Schoutsen
parent 6df5e712f7
commit cadd797200

View file

@ -27,6 +27,7 @@ CONF_KNX_LOCAL_IP = "local_ip"
CONF_KNX_FIRE_EVENT = "fire_event"
CONF_KNX_FIRE_EVENT_FILTER = "fire_event_filter"
CONF_KNX_STATE_UPDATER = "state_updater"
CONF_KNX_TIME_ADDRESS = "time_address"
SERVICE_KNX_SEND = "send"
SERVICE_KNX_ATTR_ADDRESS = "address"
@ -60,6 +61,7 @@ CONFIG_SCHEMA = vol.Schema({
vol.All(
cv.ensure_list,
[cv.string]),
vol.Optional(CONF_KNX_TIME_ADDRESS): cv.string,
vol.Optional(CONF_KNX_STATE_UPDATER, default=True): cv.boolean,
})
}, extra=vol.ALLOW_EXTRA)
@ -97,6 +99,9 @@ def async_setup(hass, config):
ATTR_DISCOVER_DEVICES: found_devices
}, config))
if CONF_KNX_TIME_ADDRESS in config[DOMAIN]:
_add_time_device(hass, config)
hass.services.async_register(
DOMAIN, SERVICE_KNX_SEND,
hass.data[DATA_KNX].service_send_to_knx_bus,
@ -105,6 +110,17 @@ def async_setup(hass, config):
return True
def _add_time_device(hass, config):
"""Create time broadcasting device and add it to xknx device queue."""
import xknx
group_address_time = config[DOMAIN][CONF_KNX_TIME_ADDRESS]
time = xknx.devices.Time(
hass.data[DATA_KNX].xknx,
'Time',
group_address=group_address_time)
hass.data[DATA_KNX].xknx.devices.add(time)
def _get_devices(hass, discovery_type):
return list(
map(lambda device: device.name,