mirror of
https://github.com/home-assistant/core.git
synced 2025-08-07 06:35:10 +02:00
add default settings for use_notify and poll_interval
This commit is contained in:
@@ -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()
|
||||
|
@@ -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)
|
||||
|
@@ -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,
|
||||
|
Reference in New Issue
Block a user