Исправлено присутствие на толчке
This commit is contained in:
@@ -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,14 +30,22 @@ 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":
|
|
||||||
|
def run_in_presense_off(self, args):
|
||||||
self.set_value("off")
|
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))
|
||||||
self.state = state
|
self.state = 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'])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user