Głowica Netatmo zapis stanu

Witam,
Chciałbym przed zmianą temperatury na głowicy za pomocą NR zapamiętać poprzednią temperaturę tak abym mógł do niej wrócić.

Macie jakieś sprawdzone metody?

W obiekcie msg. masz old_state więc możesz to wykorzystać. Zawsze też możesz zapisać to w zmiennej kontekstowej o ile chcesz wykorzystać ją dosyć szybko bo zmienne kontekstowe giną po restarcie NR. No i 3 sposób to utworzyć pomocnika w HA i w nim przechowywać.

Trzeci sposób o którym pisze @artur to też stworzenie rejestratora dla zmiennej w HA. Zmiany stanu będą zapisywane w bazie danych i dostępne w historii. Przez to może mocno spuchnąć baza danych HA. Rejestracja zmiany stanu wartości numerycznej zmiennoprzecinkowej co 15s. u mnie zaważyło około 50mb miesięcznie.

A jak pobrać old_state?

Z pomocą kolegów z pracy udało mi się zapisać stan

const payloads = [];
const payload = {};
payload.domain = ‘climate’;
payload.service = set_temperature;
myRoom = msg.payload.home.rooms.find(x => x.id === ‘xxcczz’);
payload.data = {
entity_id: myRoom.id,
temperature: myRoom.therm_setpoint_temperature,

};

flow.set(‘savedStates’, payload.data);
// create a blank message object with out new payload
msg.payload.saveStatus = { payload: payload };
return msg;

Tylko jak to dalej wykorzystać w procesie?

Dobra, poprowadzę Cię “za rączkę”, ale powiedz, czy potrzebujesz jeden ostatni stan, czy więcej.
Dane: dana która przychodzi w wiadomości znajduje się jest zapisana znajduje się w zmiennej msg.payload.mojaDana

KOD dla funkcji:

var HistMojaDana=flow.get(“HistMojaDana”) || 21.5;
msg.payload.mojaDanaHistoryczna=HistMojaDana;
flow.set(“HistMojaDana”, msg.payload.mojaDana);
return msg

przy starcie Node-Red’a jako pierwszą zmienną historyczną ustawi 21.5 (możesz wpisać inną)
druga linia dodaje do msg zmienną “mojaDanaHistoryczna”, która została pobrana z zmiennej zapisanej jako historyczna na karcie procesu (flow) .
trzecia linia zapisuje w procesie (karcie Flow) wartość dla zmiennej historycznej - którą aktualnie odczytał z wartości msg (z czujnika).
Czwarta wysyła msg z dodaną zmienną historyczną.

Dokładnie masz to omówione w filmie @artur : https://www.youtube.com/watch?v=7FcB4ETeAiE

Tyle, że aby zaczytać daną musze dograć dodatek do netatmo bo w standardzie nie czyta mi tej informacji

Nie wiem w jaki sposób pobierasz dane. Pytałeś jak zapisać dane historyczne (z ostatniego odczytu) do pobierania stanu z encji w HA służy nod “events: state” który bardzo ładnie opisał @artur w swoim ostatnim poradniku na YT: Nauka Node-RED - Lekcja 12 - Poznajemy nod: Events state

Ja opisałem mój pomysł na odczytywanie danych pobieranych poprzez http z Lan Kontrolera tutaj