updating configuration

This commit is contained in:
Your Name
2019-11-08 10:26:48 +03:00
parent 84dc95315c
commit 77fc462e61
13 changed files with 161 additions and 26 deletions
+2 -5
View File
@@ -1,11 +1,8 @@
import appdaemon.plugins.hass.hassapi as hass
import noolite
class Noolite(hass.Hass):
noolite = noolite.NooLite()
brightness = 25
force = False
channel = 0
def initialize(self):
self.run_at_sunrise(self.sunrise_cb)
@@ -25,11 +22,11 @@ class Noolite(hass.Hass):
def noolite_off(self):
self.log("Turning off salt lamp.")
self.noolite.off(self.channel)
self.turn_off(self.args['entity_id'])
def noolite_on(self, brightness=120):
self.log("Turning on salt lamp for brightness {}.".format(brightness))
self.noolite.set(self.channel, brightness)
self.turn_on(self.args['entity_id'], brightness=self.brightness)
def sunset_cb(self, kwargs):
self.noolite_on(self.brightness)
+2 -1
View File
@@ -1,3 +1,4 @@
salt_lamp:
module: salt_lamp
class: Noolite
class: Noolite
entity_id: light.salt_lamp
@@ -4,6 +4,7 @@
watchdog_sensor_power_active_power:
class: Watchdog
module: watchdog
constraint: input_boolean.watchdog_report
entity: sensor.power_active_power
check_interval: 60
timeout: 360
@@ -16,6 +17,7 @@ watchdog_sensor_power_active_power:
watchdog_wemos_uptime:
class: Watchdog
module: watchdog
constraint: input_boolean.watchdog_report
entities:
- sensor.uptime_airfresher
- sensor.uptime_bath
@@ -30,6 +32,7 @@ watchdog_wemos_uptime:
watchdog_sonoff_uptime:
class: Watchdog
module: watchdog
constraint: input_boolean.watchdog_report
entities:
- sensor.uptime_bathlight
- sensor.uptime_kitchen
@@ -26,4 +26,4 @@ class HomekitPresense(hass.Hass):
elif new == "off" and old == "on":
self.fire_event(self.args['leave_event'])
self.log("{} turned {}".format(entity, new))
self.notify("{} turned {}".format(entity, new), name = self.args['notify'])
#self.notify("{} turned {}".format(entity, new), name = self.args['notify'])
@@ -32,25 +32,32 @@ class WorkTime(hass.Hass):
self.listen_event(self.leave_event, self.args['leave_event'])
self.run_daily(self.reset_timer_tick, self.parse_time("23:59:59"))
self.load_state()
self.arrive_event(None, None, None)
#self.save_state()
self.run_timer()
def arrive_event(self, event_id, event_args, kwargs):
if 'constraint' in self.args and not self.constrain_input_boolean(self.args['constraint']):
return
if self.arrive_time != None:
self.log('You have already arrived to the work today at {}'.format(self.arrive_time))
self.run_timer()
return
self.arrive_time = self.datetime()
self.leave_time = self.datetime()+datetime.timedelta(hours=self.work_hours)
self.notify_time = self.leave_time-datetime.timedelta(minutes=self.notify_before_leave_in_minutes)
if self.notify_time<self.datetime():
self.notify_time=self.datetime()+datetime.timedelta(seconds=self.notify_every_seconds)
self.save_state()
self.run_timer()
self.log("Monster has arrived to work at {}, work till {}, will notify at {}.".format(self.arrive_time, self.leave_time, self.notify_time))
self.timers.append(self.run_every(self.timer_tick, self.notify_time, self.notify_every_seconds))
self.notify("Добро пожаловать в офис. Сегодня работаешь до {}.".format(self.format_time(self.leave_time)), name = self.args['notify'])
def run_timer(self):
if self.arrive_time == None:
return
if self.notify_time<self.datetime():
self.notify_time=self.datetime()+datetime.timedelta(seconds=self.notify_every_seconds)
self.timers.append(self.run_every(self.timer_tick, self.notify_time, self.notify_every_seconds))
def leave_event(self, event_id, event_args, kwargs):
if 'constraint' in self.args and not self.constrain_input_boolean(self.args['constraint']):
return
@@ -73,9 +80,10 @@ class WorkTime(hass.Hass):
self.notify(message, name = self.args['notify'])
def timer_tick(self, args) -> None:
self.log('timer tick')
if 'constraint' in self.args and not self.constrain_input_boolean(self.args['constraint']):
return
if self.datetime()<self.leave_time:
if self.datetime()<self.notify_time:
return
message = "Ты пришел на работу в {}, работаешь до {}. Пора домой!".format(self.format_time(self.arrive_time), self.format_time(self.leave_time))
self.notify(message, name = self.args['notify'])
@@ -86,6 +94,7 @@ class WorkTime(hass.Hass):
self.timers = []
def reset_timer_tick(self, kwargs):
self.log("Resetting timer.")
self.arrive_time = None
self.leave_time = None
self.notify_time = None