mirror of
https://github.com/home-assistant/core.git
synced 2025-08-09 23:55:07 +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_DEVICE): cv.string,
|
||||||
vol.Required(CONF_PORT): cv.port,
|
vol.Required(CONF_PORT): cv.port,
|
||||||
vol.Optional(CONF_IP_ADDRESS): cv.string,
|
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)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
@@ -57,13 +59,16 @@ def setup(hass, config):
|
|||||||
net_id = conf.get(CONF_DEVICE)
|
net_id = conf.get(CONF_DEVICE)
|
||||||
ip_address = conf.get(CONF_IP_ADDRESS)
|
ip_address = conf.get(CONF_IP_ADDRESS)
|
||||||
port = conf.get(CONF_PORT)
|
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
|
# create a new ads connection
|
||||||
client = pyads.Connection(net_id, port, ip_address)
|
client = pyads.Connection(net_id, port, ip_address)
|
||||||
|
|
||||||
# connect to ads client and try to connect
|
# connect to ads client and try to connect
|
||||||
try:
|
try:
|
||||||
ads = AdsHub(client)
|
ads = AdsHub(client, poll_interval=poll_interval,
|
||||||
|
use_notify=use_notify)
|
||||||
except pyads.pyads.ADSError as e:
|
except pyads.pyads.ADSError as e:
|
||||||
_LOGGER.error('Could not connect to ADS host (netid={}, port={})'
|
_LOGGER.error('Could not connect to ADS host (netid={}, port={})'
|
||||||
.format(net_id, port))
|
.format(net_id, port))
|
||||||
@@ -101,7 +106,7 @@ NotificationItem = namedtuple(
|
|||||||
class AdsHub:
|
class AdsHub:
|
||||||
""" Representation of a PyADS connection. """
|
""" 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, \
|
from pyads import PLCTYPE_BOOL, PLCTYPE_BYTE, PLCTYPE_INT, \
|
||||||
PLCTYPE_UINT, ADSError
|
PLCTYPE_UINT, ADSError
|
||||||
|
|
||||||
@@ -117,6 +122,8 @@ class AdsHub:
|
|||||||
self.PLCTYPE_INT = PLCTYPE_INT
|
self.PLCTYPE_INT = PLCTYPE_INT
|
||||||
self.PLCTYPE_UINT = PLCTYPE_UINT
|
self.PLCTYPE_UINT = PLCTYPE_UINT
|
||||||
self.ADSError = ADSError
|
self.ADSError = ADSError
|
||||||
|
self.poll_interval = poll_interval
|
||||||
|
self.use_notify = use_notify
|
||||||
|
|
||||||
self._client = ads_client
|
self._client = ads_client
|
||||||
self._client.open()
|
self._client.open()
|
||||||
|
@@ -26,8 +26,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
|||||||
vol.Required(CONF_ADSVAR): cv.string,
|
vol.Required(CONF_ADSVAR): cv.string,
|
||||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||||
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
||||||
vol.Optional(CONF_ADS_USE_NOTIFY, default=True): cv.boolean,
|
vol.Optional(CONF_ADS_USE_NOTIFY): cv.boolean,
|
||||||
vol.Optional(CONF_ADS_POLL_INTERVAL, default=1000): cv.positive_int,
|
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)
|
adsvar = config.get(CONF_ADSVAR)
|
||||||
name = config.get(CONF_NAME)
|
name = config.get(CONF_NAME)
|
||||||
device_class = config.get(CONF_DEVICE_CLASS)
|
device_class = config.get(CONF_DEVICE_CLASS)
|
||||||
use_notify = config.get(CONF_ADS_USE_NOTIFY)
|
use_notify = config.get(CONF_ADS_USE_NOTIFY, ads_hub.use_notify)
|
||||||
poll_interval = config.get(CONF_ADS_POLL_INTERVAL)
|
poll_interval = config.get(CONF_ADS_POLL_INTERVAL, ads_hub.poll_interval)
|
||||||
|
|
||||||
ads_sensor = AdsBinarySensor(ads_hub, name, adsvar, device_class,
|
ads_sensor = AdsBinarySensor(ads_hub, name, adsvar, device_class,
|
||||||
use_notify, poll_interval)
|
use_notify, poll_interval)
|
||||||
|
@@ -26,8 +26,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
|||||||
vol.Optional(CONF_ADSTYPE, default=ads.ADSTYPE_INT): vol.In(
|
vol.Optional(CONF_ADSTYPE, default=ads.ADSTYPE_INT): vol.In(
|
||||||
[ads.ADSTYPE_INT, ads.ADSTYPE_UINT, ads.ADSTYPE_BYTE]
|
[ads.ADSTYPE_INT, ads.ADSTYPE_UINT, ads.ADSTYPE_BYTE]
|
||||||
),
|
),
|
||||||
vol.Optional(CONF_ADS_USE_NOTIFY, default=True): cv.boolean,
|
vol.Optional(CONF_ADS_USE_NOTIFY): cv.boolean,
|
||||||
vol.Optional(CONF_ADS_POLL_INTERVAL, default=1000): cv.positive_int,
|
vol.Optional(CONF_ADS_POLL_INTERVAL): cv.positive_int,
|
||||||
vol.Optional(CONF_ADS_FACTOR): 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)
|
adstype = config.get(CONF_ADSTYPE)
|
||||||
name = config.get(CONF_NAME)
|
name = config.get(CONF_NAME)
|
||||||
unit_of_measurement = config.get(CONF_UNIT_OF_MEASUREMENT)
|
unit_of_measurement = config.get(CONF_UNIT_OF_MEASUREMENT)
|
||||||
use_notify = config.get(CONF_ADS_USE_NOTIFY)
|
use_notify = config.get(CONF_ADS_USE_NOTIFY, ads_hub.use_notify)
|
||||||
poll_interval = config.get(CONF_ADS_POLL_INTERVAL)
|
poll_interval = config.get(CONF_ADS_POLL_INTERVAL, ads_hub.poll_interval)
|
||||||
factor = config.get(CONF_ADS_FACTOR)
|
factor = config.get(CONF_ADS_FACTOR)
|
||||||
|
|
||||||
entity = AdsSensor(ads_hub, adsvar, adstype, name,
|
entity = AdsSensor(ads_hub, adsvar, adstype, name,
|
||||||
|
Reference in New Issue
Block a user