Cześć. Nowy jestem w te klocki, więc problem chyba banalny. Chodzi o przechowywanie wartości i ich odzyskiwanie po zaniku zasilania. Zmienne standardowe nie wchodzą w grę chyba. Raczej jakaś baza danych.
Pomóżcie, jak to się robi.
Przykład - zimowe ustawienie wartości temperatury zadanej na zawodach kaloryferów. Gdzieś trzeba je przechowywać, żeby w lecie móc zawory zamknąć a w zimie wrócić do poprzednich nastaw.
Podobnie z np. sumowaniem dziennych wartości zużycia prądu, żeby mieć zużycie narastające.
Poczytaj o pomocnikach.
Dzięki wielkie. Ale lepsza jest jednak baza danych. Już to opanowałem.
I zachowasz dla Siebie?
1 polubienie
To rzecz na dłuższy artykuł. Na razie to jeszcze kończę. Ale masz rację - udostępnię
Edit:
No więc w skrócie tak:
- Zainstalowałem silnik bazy danych MariaDB
- Założyłem bazę
- W bazie mam tabelę taką oto:
Pozycja restart to wartości stanów na urządzeniach ustawiane po restarcie. Ale szczerze to taka umowna nazwa, bo np. dla głowic kaloryferowych (zwanych “Temperatura - …” to wartość nastawy na głowicy. W lecie ustawiam tę wartość na 28, żeby głowica nie pracowała. Czyli w zimie muszę wrócić do ustawień zimowych głowic. Skąd wiem, że jest zima ? Różnie - wartość temperatury na zewnątrz i w budynku oraz takie ustawienie wydarzenia “LATO” w kalendarzu google. - To teraz przychodzi zima i muszę ustawić temperatury na głowicach:
Mamy tu ustawienie zmiennej topic:
A node LOOP jest skonfigurowany tak:
A funkcja:
num1 = msg.a[msg.payload].restart;
msg.topic = “zigbee2mqtt/” + msg.a[msg.payload].adres + “/set”;
msg.payload = “{“current_heating_setpoint”: " + “”” + num1.toString() + “”" + “}”;
return msg;
I działa. Jakby co, to służę pomocą.
Oczywiście, jak chcecie zmieniać dane w bazie, to korzystacie z:
UPDATE tabela SET kolumna = wartość WHERE warunek