Skip to content

Commit

Permalink
KNX: Added config option for broadcasting current time to KNX bus. (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Julius2342 authored and balloob committed Nov 28, 2017
1 parent 6df5e71 commit cadd797
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions homeassistant/components/knx.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
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"
Expand Down Expand Up @@ -60,6 +61,7 @@
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)
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down

0 comments on commit cadd797

Please sign in to comment.