upgrade to latest
This commit is contained in:
@@ -2,6 +2,10 @@ logs:
|
|||||||
main_log:
|
main_log:
|
||||||
filename: STDOUT
|
filename: STDOUT
|
||||||
|
|
||||||
|
namespaces:
|
||||||
|
- worktime_namespace:
|
||||||
|
writeback: safe
|
||||||
|
|
||||||
appdaemon:
|
appdaemon:
|
||||||
threads: 10
|
threads: 10
|
||||||
latitude: !secret home_latitude
|
latitude: !secret home_latitude
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class Groups(hass.Hass):
|
|||||||
self.set_state(name,state="on",attributes={"view": view,"hidden": hidden,"assumed_state": assumed_state,"friendly_name": friendly_name,"entity_id": entitylist, 'description': 'Created and updated from appdaemon ({})'.format(__name__)})
|
self.set_state(name,state="on",attributes={"view": view,"hidden": hidden,"assumed_state": assumed_state,"friendly_name": friendly_name,"entity_id": entitylist, 'description': 'Created and updated from appdaemon ({})'.format(__name__)})
|
||||||
|
|
||||||
def sortByFriendlyName(self, entity):
|
def sortByFriendlyName(self, entity):
|
||||||
return self.get_state(entity, 'friendly_name')
|
return self.get_state(entity, attribute='friendly_name')
|
||||||
|
|
||||||
def append_entity(self, entitylist, entity, expand_group):
|
def append_entity(self, entitylist, entity, expand_group):
|
||||||
entity = entity.lower()
|
entity = entity.lower()
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
balance_low_report:
|
balance_low_report:
|
||||||
class: Balance
|
class: Balance
|
||||||
module: balance
|
module: balance
|
||||||
|
constraint: input_boolean.balance_report
|
||||||
entity_ids:
|
entity_ids:
|
||||||
mosenergosbyt_balance: sensor.power_mosenergosbyt_balance
|
mosenergosbyt_balance: sensor.power_mosenergosbyt_balance
|
||||||
epd_balance: sensor.epd_balance
|
epd_balance: sensor.epd_balance
|
||||||
|
|
||||||
always_send: 0
|
always_send: 0
|
||||||
threshold: -100
|
threshold: -100
|
||||||
notify: telegram_monster
|
notify: telegram_monster
|
||||||
|
|||||||
@@ -23,20 +23,25 @@ class WorkTime(hass.Hass):
|
|||||||
notify_before_leave_in_minutes = 15
|
notify_before_leave_in_minutes = 15
|
||||||
notify_every_seconds = 300
|
notify_every_seconds = 300
|
||||||
timers = []
|
timers = []
|
||||||
|
listen_event_handle_list = []
|
||||||
|
|
||||||
def initialize(self):
|
def initialize(self):
|
||||||
if 'notify' not in self.args or "arrive_event" not in self.args or "leave_event" not in self.args:
|
if 'notify' not in self.args or "arrive_event" not in self.args or "leave_event" not in self.args:
|
||||||
self.error("Please provide arrive_event, leave_event in config!")
|
self.error("Please provide arrive_event, leave_event in config!")
|
||||||
return
|
return
|
||||||
self.listen_event(self.arrive_event, self.args['arrive_event'])
|
self.listen_event_handle_list.append(self.listen_event(self.arrive_event, self.args['arrive_event']))
|
||||||
self.listen_event(self.leave_event, self.args['leave_event'])
|
self.listen_event_handle_list.append(self.listen_event(self.leave_event, self.args['leave_event']))
|
||||||
self.run_daily(self.reset_timer_tick, self.parse_time("23:59:59"))
|
self.run_daily(self.reset_timer_tick, self.parse_time("23:59:59"))
|
||||||
self.load_state()
|
self.load_state()
|
||||||
self.run_timer()
|
self.run_timer()
|
||||||
|
|
||||||
|
def terminate(self):
|
||||||
|
self.cancel_timers()
|
||||||
|
|
||||||
def arrive_event(self, event_id, event_args, kwargs):
|
def arrive_event(self, event_id, event_args, kwargs):
|
||||||
if self.arrive_time != None:
|
if self.arrive_time != None:
|
||||||
self.log('You have already arrived to the work today at {}'.format(self.arrive_time))
|
self.log('You have already arrived to the work today at {}'.format(self.arrive_time))
|
||||||
|
self.notify("Добро пожаловать в офис еще раз. Сегодня работаешь до {}.".format(self.format_time(self.leave_time)), name = self.args['notify'])
|
||||||
self.run_timer()
|
self.run_timer()
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -58,6 +63,9 @@ class WorkTime(hass.Hass):
|
|||||||
timer_start = self.notify_time
|
timer_start = self.notify_time
|
||||||
if timer_start<self.datetime():
|
if timer_start<self.datetime():
|
||||||
timer_start=self.datetime()+datetime.timedelta(seconds=self.notify_every_seconds)
|
timer_start=self.datetime()+datetime.timedelta(seconds=self.notify_every_seconds)
|
||||||
|
timers_count = len(self.timers)
|
||||||
|
self.cancel_timers()
|
||||||
|
self.log("Canceling previous timers({}), start notify timer at: {}".format(timers_count, timer_start))
|
||||||
self.timers.append(self.run_every(self.timer_tick, timer_start, self.notify_every_seconds))
|
self.timers.append(self.run_every(self.timer_tick, timer_start, self.notify_every_seconds))
|
||||||
|
|
||||||
def leave_event(self, event_id, event_args, kwargs):
|
def leave_event(self, event_id, event_args, kwargs):
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from notification import send_notification
|
|||||||
import datetime
|
import datetime
|
||||||
import sys, locale
|
import sys, locale
|
||||||
import logging, codecs
|
import logging, codecs
|
||||||
|
import os
|
||||||
#import unicode
|
#import unicode
|
||||||
# from automation import Automation # type: ignore
|
# from automation import Automation # type: ignore
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -44,7 +44,7 @@ services:
|
|||||||
max-size: 50m
|
max-size: 50m
|
||||||
|
|
||||||
hass:
|
hass:
|
||||||
image: homeassistant/home-assistant:0.100.3
|
image: homeassistant/home-assistant:latest #0.100.3
|
||||||
container_name: hass
|
container_name: hass
|
||||||
volumes:
|
volumes:
|
||||||
- ./hass/settings:/config
|
- ./hass/settings:/config
|
||||||
@@ -187,7 +187,7 @@ services:
|
|||||||
options:
|
options:
|
||||||
max-size: 50m
|
max-size: 50m
|
||||||
|
|
||||||
networks:
|
# networks:
|
||||||
traefik:
|
# traefik:
|
||||||
external:
|
# external:
|
||||||
name: my-pre-existing-network
|
# name: my-pre-existing-network
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ logger:
|
|||||||
api:
|
api:
|
||||||
|
|
||||||
http:
|
http:
|
||||||
api_password: !secret ha_password
|
# api_password: !secret ha_password
|
||||||
base_url: !secret base_url
|
base_url: !secret base_url
|
||||||
use_x_forwarded_for: true
|
use_x_forwarded_for: true
|
||||||
trusted_proxies:
|
trusted_proxies:
|
||||||
|
|||||||
@@ -28,6 +28,11 @@ water_counters_report:
|
|||||||
icon: mdi:alert-octagon
|
icon: mdi:alert-octagon
|
||||||
initial: on
|
initial: on
|
||||||
|
|
||||||
|
balance_report:
|
||||||
|
name: Отчет о балансе
|
||||||
|
icon: mdi:alert-octagon
|
||||||
|
initial: on
|
||||||
|
|
||||||
work_presence_report:
|
work_presence_report:
|
||||||
name: Отчет 'пора домой'
|
name: Отчет 'пора домой'
|
||||||
icon: mdi:account-alert
|
icon: mdi:account-alert
|
||||||
|
|||||||
@@ -353,6 +353,7 @@ views:
|
|||||||
- input_boolean.water_counters_report
|
- input_boolean.water_counters_report
|
||||||
- input_boolean.work_presence_report
|
- input_boolean.work_presence_report
|
||||||
- input_boolean.lock_report
|
- input_boolean.lock_report
|
||||||
|
- input_boolean.balance_report
|
||||||
- type: entities
|
- type: entities
|
||||||
title: "Метки"
|
title: "Метки"
|
||||||
show_header_toggle: true
|
show_header_toggle: true
|
||||||
|
|||||||
Reference in New Issue
Block a user