From 14c0552e89cfce1008545438987bce8699a5a2f7 Mon Sep 17 00:00:00 2001 From: Stefan Lehmann Date: Tue, 24 Oct 2017 18:59:50 +0200 Subject: [PATCH] add default settings for use_notify and poll_interval --- homeassistant/components/ads.py | 11 +++++++++-- homeassistant/components/binary_sensor/ads.py | 8 ++++---- homeassistant/components/sensor/ads.py | 8 ++++---- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/ads.py b/homeassistant/components/ads.py index d2a33420171..bd0c0f29be7 100644 --- a/homeassistant/components/ads.py +++ b/homeassistant/components/ads.py @@ -43,6 +43,8 @@ CONFIG_SCHEMA = vol.Schema({ vol.Required(CONF_DEVICE): cv.string, vol.Required(CONF_PORT): cv.port, vol.Optional(CONF_IP_ADDRESS): cv.string, + vol.Optional(CONF_ADS_POLL_INTERVAL, default=1000): cv.positive_int, + vol.Optional(CONF_ADS_USE_NOTIFY, default=True): cv.boolean, }) }, extra=vol.ALLOW_EXTRA) @@ -57,13 +59,16 @@ def setup(hass, config): net_id = conf.get(CONF_DEVICE) ip_address = conf.get(CONF_IP_ADDRESS) port = conf.get(CONF_PORT) + poll_interval = conf.get(CONF_ADS_POLL_INTERVAL) + use_notify = conf.get(CONF_ADS_USE_NOTIFY) # create a new ads connection client = pyads.Connection(net_id, port, ip_address) # connect to ads client and try to connect try: - ads = AdsHub(client) + ads = AdsHub(client, poll_interval=poll_interval, + use_notify=use_notify) except pyads.pyads.ADSError as e: _LOGGER.error('Could not connect to ADS host (netid={}, port={})' .format(net_id, port)) @@ -101,7 +106,7 @@ NotificationItem = namedtuple( class AdsHub: """ Representation of a PyADS connection. """ - def __init__(self, ads_client): + def __init__(self, ads_client, poll_interval, use_notify): from pyads import PLCTYPE_BOOL, PLCTYPE_BYTE, PLCTYPE_INT, \ PLCTYPE_UINT, ADSError @@ -117,6 +122,8 @@ class AdsHub: self.PLCTYPE_INT = PLCTYPE_INT self.PLCTYPE_UINT = PLCTYPE_UINT self.ADSError = ADSError + self.poll_interval = poll_interval + self.use_notify = use_notify self._client = ads_client self._client.open() diff --git a/homeassistant/components/binary_sensor/ads.py b/homeassistant/components/binary_sensor/ads.py index 21f31e57fe9..8305e026030 100644 --- a/homeassistant/components/binary_sensor/ads.py +++ b/homeassistant/components/binary_sensor/ads.py @@ -26,8 +26,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_ADSVAR): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, - vol.Optional(CONF_ADS_USE_NOTIFY, default=True): cv.boolean, - vol.Optional(CONF_ADS_POLL_INTERVAL, default=1000): cv.positive_int, + vol.Optional(CONF_ADS_USE_NOTIFY): cv.boolean, + vol.Optional(CONF_ADS_POLL_INTERVAL): cv.positive_int, }) @@ -40,8 +40,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None): adsvar = config.get(CONF_ADSVAR) name = config.get(CONF_NAME) device_class = config.get(CONF_DEVICE_CLASS) - use_notify = config.get(CONF_ADS_USE_NOTIFY) - poll_interval = config.get(CONF_ADS_POLL_INTERVAL) + use_notify = config.get(CONF_ADS_USE_NOTIFY, ads_hub.use_notify) + poll_interval = config.get(CONF_ADS_POLL_INTERVAL, ads_hub.poll_interval) ads_sensor = AdsBinarySensor(ads_hub, name, adsvar, device_class, use_notify, poll_interval) diff --git a/homeassistant/components/sensor/ads.py b/homeassistant/components/sensor/ads.py index ea7ac793048..e49ea88b57f 100644 --- a/homeassistant/components/sensor/ads.py +++ b/homeassistant/components/sensor/ads.py @@ -26,8 +26,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_ADSTYPE, default=ads.ADSTYPE_INT): vol.In( [ads.ADSTYPE_INT, ads.ADSTYPE_UINT, ads.ADSTYPE_BYTE] ), - vol.Optional(CONF_ADS_USE_NOTIFY, default=True): cv.boolean, - vol.Optional(CONF_ADS_POLL_INTERVAL, default=1000): cv.positive_int, + vol.Optional(CONF_ADS_USE_NOTIFY): cv.boolean, + vol.Optional(CONF_ADS_POLL_INTERVAL): cv.positive_int, vol.Optional(CONF_ADS_FACTOR): cv.positive_int, }) @@ -42,8 +42,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None): adstype = config.get(CONF_ADSTYPE) name = config.get(CONF_NAME) unit_of_measurement = config.get(CONF_UNIT_OF_MEASUREMENT) - use_notify = config.get(CONF_ADS_USE_NOTIFY) - poll_interval = config.get(CONF_ADS_POLL_INTERVAL) + use_notify = config.get(CONF_ADS_USE_NOTIFY, ads_hub.use_notify) + poll_interval = config.get(CONF_ADS_POLL_INTERVAL, ads_hub.poll_interval) factor = config.get(CONF_ADS_FACTOR) entity = AdsSensor(ads_hub, adsvar, adstype, name,