Add timeout for Netatmo binary sensor (#4280)
* Add time limit for Netatmo binary sensor * Change limit to timeout Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com> * Update requirements_all.txt
This commit is contained in:
parent
5e44934e7e
commit
60fabaec24
3 changed files with 14 additions and 8 deletions
|
@ -13,7 +13,7 @@ from homeassistant.components.binary_sensor import (
|
||||||
BinarySensorDevice, PLATFORM_SCHEMA)
|
BinarySensorDevice, PLATFORM_SCHEMA)
|
||||||
from homeassistant.components.netatmo import WelcomeData
|
from homeassistant.components.netatmo import WelcomeData
|
||||||
from homeassistant.loader import get_component
|
from homeassistant.loader import get_component
|
||||||
from homeassistant.const import CONF_MONITORED_CONDITIONS
|
from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_TIMEOUT
|
||||||
from homeassistant.helpers import config_validation as cv
|
from homeassistant.helpers import config_validation as cv
|
||||||
|
|
||||||
DEPENDENCIES = ["netatmo"]
|
DEPENDENCIES = ["netatmo"]
|
||||||
|
@ -33,6 +33,7 @@ CONF_CAMERAS = 'cameras'
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Optional(CONF_HOME): cv.string,
|
vol.Optional(CONF_HOME): cv.string,
|
||||||
|
vol.Optional(CONF_TIMEOUT): cv.positive_int,
|
||||||
vol.Optional(CONF_CAMERAS, default=[]):
|
vol.Optional(CONF_CAMERAS, default=[]):
|
||||||
vol.All(cv.ensure_list, [cv.string]),
|
vol.All(cv.ensure_list, [cv.string]),
|
||||||
vol.Optional(CONF_MONITORED_CONDITIONS, default=SENSOR_TYPES.keys()):
|
vol.Optional(CONF_MONITORED_CONDITIONS, default=SENSOR_TYPES.keys()):
|
||||||
|
@ -45,6 +46,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Setup access to Netatmo binary sensor."""
|
"""Setup access to Netatmo binary sensor."""
|
||||||
netatmo = get_component('netatmo')
|
netatmo = get_component('netatmo')
|
||||||
home = config.get(CONF_HOME, None)
|
home = config.get(CONF_HOME, None)
|
||||||
|
timeout = config.get(CONF_TIMEOUT, 15)
|
||||||
|
|
||||||
import lnetatmo
|
import lnetatmo
|
||||||
try:
|
try:
|
||||||
|
@ -62,18 +64,19 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
camera_name not in config[CONF_CAMERAS]:
|
camera_name not in config[CONF_CAMERAS]:
|
||||||
continue
|
continue
|
||||||
for variable in sensors:
|
for variable in sensors:
|
||||||
add_devices([WelcomeBinarySensor(data, camera_name, home,
|
add_devices([WelcomeBinarySensor(data, camera_name, home, timeout,
|
||||||
variable)])
|
variable)])
|
||||||
|
|
||||||
|
|
||||||
class WelcomeBinarySensor(BinarySensorDevice):
|
class WelcomeBinarySensor(BinarySensorDevice):
|
||||||
"""Represent a single binary sensor in a Netatmo Welcome device."""
|
"""Represent a single binary sensor in a Netatmo Welcome device."""
|
||||||
|
|
||||||
def __init__(self, data, camera_name, home, sensor):
|
def __init__(self, data, camera_name, home, timeout, sensor):
|
||||||
"""Setup for access to the Netatmo camera events."""
|
"""Setup for access to the Netatmo camera events."""
|
||||||
self._data = data
|
self._data = data
|
||||||
self._camera_name = camera_name
|
self._camera_name = camera_name
|
||||||
self._home = home
|
self._home = home
|
||||||
|
self._timeout = timeout
|
||||||
if home:
|
if home:
|
||||||
self._name = home + ' / ' + camera_name
|
self._name = home + ' / ' + camera_name
|
||||||
else:
|
else:
|
||||||
|
@ -114,14 +117,17 @@ class WelcomeBinarySensor(BinarySensorDevice):
|
||||||
if self._sensor_name == "Someone known":
|
if self._sensor_name == "Someone known":
|
||||||
self._state =\
|
self._state =\
|
||||||
self._data.welcomedata.someoneKnownSeen(self._home,
|
self._data.welcomedata.someoneKnownSeen(self._home,
|
||||||
self._camera_name)
|
self._camera_name,
|
||||||
|
self._timeout*60)
|
||||||
elif self._sensor_name == "Someone unknown":
|
elif self._sensor_name == "Someone unknown":
|
||||||
self._state =\
|
self._state =\
|
||||||
self._data.welcomedata.someoneUnknownSeen(self._home,
|
self._data.welcomedata.someoneUnknownSeen(self._home,
|
||||||
self._camera_name)
|
self._camera_name,
|
||||||
|
self._timeout*60)
|
||||||
elif self._sensor_name == "Motion":
|
elif self._sensor_name == "Motion":
|
||||||
self._state =\
|
self._state =\
|
||||||
self._data.welcomedata.motionDetected(self._home,
|
self._data.welcomedata.motionDetected(self._home,
|
||||||
self._camera_name)
|
self._camera_name,
|
||||||
|
self._timeout*60)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -18,7 +18,7 @@ from homeassistant.util import Throttle
|
||||||
|
|
||||||
REQUIREMENTS = [
|
REQUIREMENTS = [
|
||||||
'https://github.com/jabesq/netatmo-api-python/archive/'
|
'https://github.com/jabesq/netatmo-api-python/archive/'
|
||||||
'v0.6.0.zip#lnetatmo==0.6.0']
|
'v0.7.0.zip#lnetatmo==0.7.0']
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ https://github.com/danieljkemp/onkyo-eiscp/archive/python3.zip#onkyo-eiscp==0.9.
|
||||||
# https://github.com/deisi/fritzconnection/archive/b5c14515e1c8e2652b06b6316a7f3913df942841.zip#fritzconnection==0.4.6
|
# https://github.com/deisi/fritzconnection/archive/b5c14515e1c8e2652b06b6316a7f3913df942841.zip#fritzconnection==0.4.6
|
||||||
|
|
||||||
# homeassistant.components.netatmo
|
# homeassistant.components.netatmo
|
||||||
https://github.com/jabesq/netatmo-api-python/archive/v0.6.0.zip#lnetatmo==0.6.0
|
https://github.com/jabesq/netatmo-api-python/archive/v0.7.0.zip#lnetatmo==0.7.0
|
||||||
|
|
||||||
# homeassistant.components.switch.neato
|
# homeassistant.components.switch.neato
|
||||||
https://github.com/jabesq/pybotvac/archive/v0.0.1.zip#pybotvac==0.0.1
|
https://github.com/jabesq/pybotvac/archive/v0.0.1.zip#pybotvac==0.0.1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue