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

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 message != "":
self.notify(message, name = "telegram_monster")
self.notify(message, name = "telegram") #name = "telegram_monster"
def is_number(self, s):
try:
@@ -19,6 +19,8 @@ import appdaemon.plugins.hass.hassapi as hass
class ToiletPresence(hass.Hass):
state = ""
timers = []
presence_timeout = 30
def initialize(self):
if 'sensor' not in self.args:
@@ -28,14 +30,22 @@ class ToiletPresence(hass.Hass):
def distance_changed(self, entity, attribute, old, new, kwargs):
distance = int(new)
if distance > 1000 or distance < 850:
if self.state == "" or self.state == "off":
state = ""
if (distance > 1000 or distance < 850):
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")
elif distance < 1000 and distance > 850:
if self.state == "" or self.state == "on":
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):
self.log('Toilet presense: {}'.format(state))
self.state = state
@@ -4,10 +4,6 @@
toilet_presence:
module: toilet_presence
class: ToiletPresence
# constraint: input_boolean.water_leak_control
sensor: sensor.toilet_distance
# valve: switch.water_valve
# notify: telegram
# gw_mac: !secret aqara1_mac
global_dependencies:
- globals
@@ -32,3 +32,4 @@ class Curtain(hass.Hass):
self.log('off_timer')
if 'entity' in self.args:
self.call_service("cover/close_cover", entity_id = self.args['entity'])