Na wstępie chciałbym przywitać wszystkich na forum.
Od pewnego czasu sukcesywnie rozwijam moją implementację domu inteligentnego. Część sprzętowa myślę jest zakończona. Całość kontroluje sterownik PLC Fatek’a, musiałem dołożyć jeszcze 2-3 przekaźniki Shelly 1. Kwestię ogrzewania ogarniają wspomniane w tytule termostaty BHT-1000-M (z których nawiasem mówiąc nie jestem specjalnie zadowolony). Całość integruje Home Assistant, który z PLC i termostatami komunikuje się przez Modbus.
Do wspomnianych termostatów zrobiłem integrację odczytującą ich mapy pamięci. Niestety ten termostat ma bardzo kiepski zegar czasu rzeczywistego, który na dzień potrafi się opóźnić do 15 minut. Wymyśliłem więc, że o określonej godzinie, automatyzacja załączy skrypt, który wpisze bieżący czas do sterownika. Niestety trochę to przekracza moją znajomość Home-Assistanta. W tej chwili robię to tak:
sterowniki_grzania_czas:
alias: Sterowniki ogrzewania czas
sequence:
- service: modbus.write_register
data:
hub: Grzanie
address: 6
slave: 1
value: 23
- service: modbus.write_register
data:
hub: Grzanie
address: 5
slave: 1
value: 50
- service: modbus.write_register
data:
hub: Grzanie
address: 6
slave: 2
value: 23
- service: modbus.write_register
data:
hub: Grzanie
address: 5
slave: 2
value: 50
itd. razy 11 bo tyle mam sterowników (na każde pomieszczenie osobny). Działa ale ani to eleganckie ani efektywne. Moje pytanie brzmi jak napisać taki skrypt, żeby po pierwsze zrobił to w pętli po drugie wpisał bieżący czas. Np.
sterowniki_grzania_czas_testy:
alias: Sterowniki ogrzewania czas testy
sequence:
- service: modbus.write_register
data:
hub: Grzanie
address: 6
slave: 1
value:
now().hour:
- service: modbus.write_register
data:
hub: Grzanie
address: 5
slave: 1
value:
now().minute:
mode: single