29 lines
895 B
Python
29 lines
895 B
Python
from datetime import datetime
|
|
|
|
from appdaemon.plugins.hass.hassapi import Hass
|
|
|
|
|
|
class HelloWorld(Hass):
|
|
def initialize(self):
|
|
self.log('Hello World')
|
|
|
|
now: datetime = self.get_now()
|
|
eid = self.args['eid']
|
|
self.log(eid)
|
|
self.listen_state(self.my_callback, eid)
|
|
self.set_state(eid, state=now.isoformat(), attributes=dict(name='Test Fade Start'))
|
|
self.log(f'Set state to {now.time()}')
|
|
|
|
def my_callback(self, entity, attribute, old, new, kwargs):
|
|
new = self.convert_time(new)
|
|
old = self.convert_time(old)
|
|
self.log(f'{attribute} {old} -> {new}')
|
|
|
|
def convert_time(self, time_str: str) -> datetime:
|
|
dt = datetime.fromisoformat(time_str)
|
|
try:
|
|
dt = self.AD.tz.localize(dt)
|
|
except ValueError:
|
|
dt = dt.astimezone(self.AD.tz)
|
|
finally:
|
|
return dt |