Noe så kjedelig som å bytte ut appdaemon med pyscript.
Pyscript er et ganske nytt prosjekt til Home Assistant. Den kom i fjor høst. Appdaemon har fungert veldig bra for min del, men av og til føler en at det er å skyte spurv med kanon. At den er en add-on og kommuniserer med HA via et rest api gjør også litt til at den ikke er lynrask. Av og til kunne hendelser bruke lange 0,5s på å vandre fra HA til Appdaemon.
Pyscript er en komponent til HA og er mye nærmere dataene. I tillegg har utvikleren tenkt lurt og slikt som entiteter kan aksesseres som python variable istedenfor via funksjoner som i Appdaemon. Appdaemon sin sterke avhengighet av å bruke timere slipper en også i pyscript der det er mer naturlig å bruke waitfor eller sleep istedenfor.
Føler en at en trenger noe mer enn Home Assistant sin innebygde automasjon så kan jeg anbefale pyscript. Det meste gjøres langt lettere i python. Her er et eksempel for "ringe på dørklokken" kode.
@event_trigger("deconz_event", "id == 'bell' and input_boolean.sleeptime == 'off'")
@time_active("range(00:00, 23:59:59)", hold_off=30)
def doorbell(context, device_id, event_type, trigger_type, unique_id, id=None, event=None):
log.info("Noen ringte paa")
light.garasje.turn_on(flash = "short")
light.bod.turn_on(flash = "short")
light.vaskerom_tak.turn_on(flash = "short")
light.bad_u_etg.turn_on(flash = "short")
script.doorbell.turn_on()
script.send_melding.turn_on(variables = {'title': 'Dør', 'message': 'Noen ringte på', 'channel': 'Info'})
camera.kamera1_cam.snapshot(filename = "/media/snapshot_bell1.jpg")
camera.kamera2_cam.snapshot(filename = "/media/snapshot_bell2.jpg")
camera.kamera3_cam.snapshot(filename = "/media/snapshot_bell3.jpg")
camera.kamera4_cam.snapshot(filename = "/media/snapshot_bell4.jpg")
notify.mobile_app_sm_g715fn(message = "Har dere besøk?", title = "Varme", data = {'actions': [{'action': 'nothing', 'title': 'Nei'}, {'action': 'SWITCH_ON_VISITORS', 'title': 'Ja'}]})
@event_trigger("mobile_app_notification_action")
def handle_event(action=None):
if action == "SWITCH_ON_VISITORS":
input_boolean.visitors_comfort_temp.turn_on()