Allow configuration of update interval for ness_alarm (#21415)

* ness_alarm: Allow configuration of update_interval

* requirements

* update_interval -> scan_interval

* Consistent config validation

* requirements

* don't touch dependency version
This commit is contained in:
Nick Whyte 2019-03-04 19:05:44 +11:00 committed by Rohan Kapoor
parent c03116291e
commit 10e334cbf0

View File

@ -1,11 +1,14 @@
"""Support for Ness D8X/D16X devices.""" """Support for Ness D8X/D16X devices."""
from collections import namedtuple import datetime
import logging import logging
from collections import namedtuple
import voluptuous as vol import voluptuous as vol
from homeassistant.components.binary_sensor import DEVICE_CLASSES from homeassistant.components.binary_sensor import DEVICE_CLASSES
from homeassistant.const import ATTR_CODE, ATTR_STATE, EVENT_HOMEASSISTANT_STOP from homeassistant.const import (ATTR_CODE, ATTR_STATE,
EVENT_HOMEASSISTANT_STOP,
CONF_SCAN_INTERVAL)
from homeassistant.helpers import config_validation as cv from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.discovery import async_load_platform from homeassistant.helpers.discovery import async_load_platform
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
@ -25,6 +28,7 @@ CONF_ZONE_TYPE = 'type'
CONF_ZONE_ID = 'id' CONF_ZONE_ID = 'id'
ATTR_OUTPUT_ID = 'output_id' ATTR_OUTPUT_ID = 'output_id'
DEFAULT_ZONES = [] DEFAULT_ZONES = []
DEFAULT_SCAN_INTERVAL = datetime.timedelta(minutes=1)
SIGNAL_ZONE_CHANGED = 'ness_alarm.zone_changed' SIGNAL_ZONE_CHANGED = 'ness_alarm.zone_changed'
SIGNAL_ARMING_STATE_CHANGED = 'ness_alarm.arming_state_changed' SIGNAL_ARMING_STATE_CHANGED = 'ness_alarm.arming_state_changed'
@ -42,6 +46,8 @@ CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.Schema({ DOMAIN: vol.Schema({
vol.Required(CONF_DEVICE_HOST): cv.string, vol.Required(CONF_DEVICE_HOST): cv.string,
vol.Required(CONF_DEVICE_PORT): cv.port, vol.Required(CONF_DEVICE_PORT): cv.port,
vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL):
vol.All(cv.time_period, cv.positive_timedelta),
vol.Optional(CONF_ZONES, default=DEFAULT_ZONES): vol.Optional(CONF_ZONES, default=DEFAULT_ZONES):
vol.All(cv.ensure_list, [ZONE_SCHEMA]), vol.All(cv.ensure_list, [ZONE_SCHEMA]),
}), }),
@ -67,8 +73,10 @@ async def async_setup(hass, config):
zones = conf[CONF_ZONES] zones = conf[CONF_ZONES]
host = conf[CONF_DEVICE_HOST] host = conf[CONF_DEVICE_HOST]
port = conf[CONF_DEVICE_PORT] port = conf[CONF_DEVICE_PORT]
scan_interval = conf[CONF_SCAN_INTERVAL]
client = Client(host=host, port=port, loop=hass.loop) client = Client(host=host, port=port, loop=hass.loop,
update_interval=scan_interval.total_seconds())
hass.data[DATA_NESS] = client hass.data[DATA_NESS] = client
async def _close(event): async def _close(event):