From 10e334cbf0ac21c2d57307e2b5f52a8c792d1b27 Mon Sep 17 00:00:00 2001 From: Nick Whyte Date: Mon, 4 Mar 2019 19:05:44 +1100 Subject: [PATCH] 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 --- homeassistant/components/ness_alarm/__init__.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/ness_alarm/__init__.py b/homeassistant/components/ness_alarm/__init__.py index c7175a0c3c7..7d8cd2c3c44 100644 --- a/homeassistant/components/ness_alarm/__init__.py +++ b/homeassistant/components/ness_alarm/__init__.py @@ -1,11 +1,14 @@ """Support for Ness D8X/D16X devices.""" -from collections import namedtuple +import datetime import logging +from collections import namedtuple import voluptuous as vol 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.discovery import async_load_platform from homeassistant.helpers.dispatcher import async_dispatcher_send @@ -25,6 +28,7 @@ CONF_ZONE_TYPE = 'type' CONF_ZONE_ID = 'id' ATTR_OUTPUT_ID = 'output_id' DEFAULT_ZONES = [] +DEFAULT_SCAN_INTERVAL = datetime.timedelta(minutes=1) SIGNAL_ZONE_CHANGED = 'ness_alarm.zone_changed' SIGNAL_ARMING_STATE_CHANGED = 'ness_alarm.arming_state_changed' @@ -42,6 +46,8 @@ CONFIG_SCHEMA = vol.Schema({ DOMAIN: vol.Schema({ vol.Required(CONF_DEVICE_HOST): cv.string, 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.All(cv.ensure_list, [ZONE_SCHEMA]), }), @@ -67,8 +73,10 @@ async def async_setup(hass, config): zones = conf[CONF_ZONES] host = conf[CONF_DEVICE_HOST] 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 async def _close(event):