Termostat ZWT198 jak skorzystać?

Szukam termostatów bateryjnych ZigBee i zakupiłem na próbę ZWT198
Widziałem opisy niestety już po zapisie że nie współpracuje z Z2M, ale mi wykrył tylko że nie ma wszystkich encji - a dokładniej nie ma tych które mi są potrzebne.
Co ciekawe w HA widzę wartości temperatury , i zadanej temperatury - te dwie wartości jak na razie wystarczają mi
W Z2M stan tez mi pokazuje
{
“current_heating_setpoint”: 15.5,
“linkquality”: 184,
“local_temperature”: 20.3,
“preset”: “manual”,
“child_lock”: null,
“deadzone_temperature”: null,
“frost_protection”: null,
“local_temperature_calibration”: null,
“running_state”: null,
“upper_temp”: null
}

Ponieważ jestem bardziej zielony od 100$ w node-red proszę o podpowiedź jak “wyciągnąć” w carrent_state temperature aktualną i zadaną ? Tak aby sterowac tymi wartościami np switchem

Użycie jest proste, wytłumaczenie trudne :slight_smile:

Wpisz w wyszukiwarce frazę “home assistant node red get entity attributes”.
Poczytaj i wstępnie się przygotuj, te parametry to są atrybuty encji i ich odczyt jest bardziej złożony niż odczyt stanu.
Prościej byłoby to czytać bezpośrednio z Mqtt ale dla Ciebie to chyba nie ma znaczenia? :wink:

To ja spróbuję wytłumaczyć po swojemu :slight_smile:
@Wojtek_13 chcąc się dowiedzieć jak encja termostatu “przedstawia” swoje atrybuty , najprościej użyć noda pełny debug. Widać to na poniższym foto ( górna część )


Po uruchomieniu takiego przepływu rozwijasz okno debag i widzisz wszystko co jest dostępne. Kopiujesz to co potrzebujesz ( w moim przypadku temp.max, i używajac noda funkcji (dolny przepływ) wyciągasz sobie ten parametr.
funk
Co dalej z nim zrobisz to już twoja sprawa

2 polubienia

Dziękuję - widzę już w debug dane , jeszcze muszę się nauczyć wykorzystywać je ale to jest kwestia czasu.

A ktoś podpowie co zrobić, jeśli używając powyżej metody kolegi @isom1266 dostaję błąd: “TypeError: Cannot read properties of undefined”? U mnie wygląda to tak:

image

image

image

Zawsze gdy nie wiesz jak powinien wyglądać zapis do właściwości obiektu, kilknij na nią w oknie debug. Pokażą się obok trzy ikonki.
Jedna z nich to copy path.
Wygląda na nieporawnie zapisaną ściżkę poziom

No niestety nie, path jest dokładnie taki, jak jest w funkcji którą pokazałem (był kopiowany). Gdzieś indziej mysi leżeć problem

Na oko wygląda dobrze ale trudno sprawdzić bo z obrazka nie chce mi się przepisywać.
To co chcesz zrobić w funkcji możesz zrobić za pomocą węzła change - spróbuj.

Próbowałem przez change - niestety w debug dostaję “undefined”.

Zamieść oryginalny msg jako tekst abym mógł skopiować i sprawdzić.

Wrzucam wszystko:

Dane z Debug 2:

msg : Object
object
sensorUpdates: object
poziom: 20.04
akumulator: 33.23
temperatura: 25.56
sygnal: 18
operator: ""
status: "Odświeżanie danych"
czas: object
_seconds: 1717913950
_nanoseconds: 437000000

Funkcja:

var msg1 = msg.sensorUpdates.poziom;
msg.payload = msg1;
return msg;

Nie wiem czy o to chodziło. Jeśli nie to pisz, poprawię

Nie… :slight_smile: zrób copy value dla całego obiektu z debug2, dostaniesz tekst w json (taki z mustaszami)

aaa ok, podrzucam:

{"sensorUpdates":{"poziom":20.04,"akumulator":33.23,"temperatura":25.56,"sygnal":18,"operator":"","status":"Odświeżanie danych","czas":{"_seconds":1717913950,"_nanoseconds":437000000}}}

Teraz chyba będzie ok :wink:

Zupełnie nie rozumiem :thinking:


flows (72).json (1,7 KB)

Działają obie metody na podstawie Twoich danych.
Wczytaj proces i uruchom test.
U Ciebie brakuje tylko _msgid pierwszy raz się z tym spotykam?!

podmieniłem i function 1 i set msg payload od Ciebie, wygląda to tak:

i dostaje:

Node “Pobierz dane(…)” pobiera dane z zewnętrznego serwera (Firestore) przez noda “Firestore in”. Może tutaj gdzieś leży problem w samym nodzie pobierającym dane z serwera?

Doinstalowane: node-red-contrib-cloud-firestore
Może to pomoże?

Mnie bardziej zastanawia dlaczego w tego węzła nie ma ID.
aaa2

Uruchom mój cały proces, jeśli działa to wskazuje na błąd w Pobierz dane.

Mam jeszcze pomysł aby po pobraniu danych za pomocą węzła change zrobić set msg._msgid na np. 12345

Myślę że są to jakieś błędy po ostatniej aktualizacji NR lub node-red-contrib-home-assistant-websocket

Mój błąd nie ten sensor.

Twój działa jak należy. U mnie sypie błędem który wysłałem, tyle że nie mogę dojść, dlaczego

Niestety tez nie pomogło, dalej błąd “TypeError”

@artpc … dziwnym trafem często słyszę,że NR nie działa po aktualizacji HA?
Kilka lat używam NR jako osobny doker i nigdy nie miałem problemów… a róbuje różne cuda.
Nie ma potrzeby go aktualizować z każdą aktualizacją HA.

Na rozwiązanie problemu podstawowego nie mam pomysłu.

Tak zainstalowałem wczoraj na osobnym kontenerze, nie będzie Supervisor pluł mi w twarz

Złe dane wejściowe? Dane pobierane są z pliku ?

U mnie działa.
Screenshot - 10.06.2024 , 19_39_59

@engine1992 pytanie czy masz aktualny NR, może wklej cały flow z NR