Исправлено присутствие на толчке

This commit is contained in:
Your Name
2019-06-05 09:51:42 +03:00
parent 2036b027a8
commit 9f3e1cb781
4 changed files with 18 additions and 11 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ class Balance(Base):
if low or ("always_send" in self.args and self.args["always_send"] == 1) or ("force" in kwargs and kwargs["force"] == 1): if low or ("always_send" in self.args and self.args["always_send"] == 1) or ("force" in kwargs and kwargs["force"] == 1):
if message != "": if message != "":
self.notify(message, name = "telegram_monster") self.notify(message, name = "telegram") #name = "telegram_monster"
def is_number(self, s): def is_number(self, s):
try: try:
@@ -19,6 +19,8 @@ import appdaemon.plugins.hass.hassapi as hass
class ToiletPresence(hass.Hass): class ToiletPresence(hass.Hass):
state = "" state = ""
timers = []
presence_timeout = 30
def initialize(self): def initialize(self):
if 'sensor' not in self.args: if 'sensor' not in self.args:
@@ -28,13 +30,21 @@ class ToiletPresence(hass.Hass):
def distance_changed(self, entity, attribute, old, new, kwargs): def distance_changed(self, entity, attribute, old, new, kwargs):
distance = int(new) distance = int(new)
state = ""
if distance > 1000 or distance < 850: if (distance > 1000 or distance < 850):
if self.state == "" or self.state == "off": self.timers_off()
self.timers.append(self.run_in(self.run_in_presense_off, self.presence_timeout))
self.log('re-setting timer for {}s.'.format(self.presence_timeout))
if (self.state != "on"):
self.set_value("on") self.set_value("on")
elif distance < 1000 and distance > 850:
if self.state == "" or self.state == "on":
self.set_value("off") def run_in_presense_off(self, args):
self.set_value("off")
def timers_off(self):
for timer in self.timers:
self.cancel_timer(timer)
def set_value(self, state): def set_value(self, state):
self.log('Toilet presense: {}'.format(state)) self.log('Toilet presense: {}'.format(state))
@@ -4,10 +4,6 @@
toilet_presence: toilet_presence:
module: toilet_presence module: toilet_presence
class: ToiletPresence class: ToiletPresence
# constraint: input_boolean.water_leak_control
sensor: sensor.toilet_distance sensor: sensor.toilet_distance
# valve: switch.water_valve
# notify: telegram
# gw_mac: !secret aqara1_mac
global_dependencies: global_dependencies:
- globals - globals
@@ -32,3 +32,4 @@ class Curtain(hass.Hass):
self.log('off_timer') self.log('off_timer')
if 'entity' in self.args: if 'entity' in self.args:
self.call_service("cover/close_cover", entity_id = self.args['entity']) self.call_service("cover/close_cover", entity_id = self.args['entity'])