Termostat ZWT198 jak skorzystać?

@engine1992 … wpisz dla próby w Twoim debug2 coś takiego: msg.sensorUpdates.poziom - zobaczymy czy debug potrafi to odczytać.

U mnie ogólnie NR robi wszystko, jest bardzo dużo automatyzacji w NR (nie korzystam z automatyzacji bezpośrednio w HA) i nie miałem jak dotąd problemów po aktualizacjach, a serwer działa od 3 lat non stop, także chyba to nie wina aktualizacji (tak mi się wydaje)

Node-RED w wersji 17.0.13
Node-RED Comanion w wersji 4.0.0

Wszystko aktualne :wink:

Dane pobierane z bazy Firestore.

Musiałbym przygotować jakąś przykładową bazę pod “upublicznienie” :wink: Ale jak nie dojdziemy bez tego co jest nie tak, to zrobi się :+1:

Niestety:
image

Podrzucam flow z dostępem do testowej bazy:
flows_firestone.json (2,0 KB)

Nie wiem który nod masz?
node-red-contrib-firestore ostatnia aktualizacja 5,5 lat temu, nie da się zainstalować same błędy podczas instalacji.

node-red-contrib-cloud-firestore działa, niestety nie mam bazy więc nie przetestuje.

Debug ustaw na complete msg object i zobacz co jest na wyjściu.

1 Like

tego instalowałem.

W moim flow, który wysłałem jest zapisana konfiguracja do połączenia z bazą (pobieranie danych z bazy powinno działać).

Po ustawieniu na “complete msg object” wypluło to:
image

Zadziałało!

Przez noda change, taka ścieżka:

image

Zostaje ostatnia rzecz, jak przerobić sekundy na datę, w Firestone wyświetla jest data, po pobraniu do NodeRed mam sekundy i nanosekundy :person_facepalming:

To tak nie działa, wszystkie klucze hasła, tokeny itd. Nie są kopiowane przy eksporcie.

Moment jest chyba wbudowany teraz w NR
$moment($$.payload).tz("Europe/London").format("hh:mm:ss A")

https://discourse.nodered.org/t/convert-the-time-input-to-local-time-zone-in-node-red-through-moment-function/58206/15

https://flows.nodered.org/node/node-red-contrib-moment

To były strzał… jeśli zobaczysz na pierwszy wpis kolegi to debug sugerował, że jest to kompletna wiadomość - brakuje prefiksu payload.
Wiadomość nie musi zawierać właściwości payload, to mnie skołowało.
Wszystko wyglądało Ok ale cały czas mi czegoś brakowało :slight_smile:
msg
Pierwsza jest msg.payload, druga complete i widać co jest co.

Nie musisz tego w ogóle robić, wystarczy że w całym procesie będziesz się posługiwał pełną scieżką msg.payload.sensorUpdates.xxxxxx (nawet w debug)

Te odczytane z wiadomości rozumiem?
… inny sposób to przez funkcję

let time = msg.payload.sensorUpdates.czas._seconds * 1000;
const date = new Date(time)
msg.date = date;
msg.hour = date.getHours();
msg.min = date.getMinutes();
msg.sec = date.getSeconds();
return msg;

Korzystając z tabeli

… możesz odczytać interesujące składniki - w wyniku czego msg będzie rozszerzony o wybrane właściwości
image

2 Likes