Nie do końca bo dla niektórych parametrów urządzenia Zigbee nie można odczytać aktualnie ustawionej wartości, można tylko ponownie ją ustawić, trzeba sprawdzić w dokumentacji urządzenia, np. It's not possible to read (/get) this value.
Maćku wiem.
Tylko akurat podałem przykład, gdzie w dokumentacji podają, że można: current_heating_setpoint: Temperature setpoint. To control publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"current_heating_setpoint": VALUE} where VALUE is the °C between 5 and 35. To read send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"current_heating_setpoint": ""}.
Zresztą nie pytałbym, gdyby to chodziło w innym przypadku. Ale nie chodzi generalnie.
Edit:
No to przepraszam za lekkie kłamstwo. Okazuje się, że faktycznie z tej głowicy nie daje się czytać danej w sposób opisany w dokumentacji.
Wymyśliłem kiedyś taki głupi pomysł na czytanie danych - przy wykorzystaniu pliku state.json
Tym sposobem daje się czytać dane, do których nody nie mają dostępu
Wygląda to tak:
A funkcja taka: // W msg.payload jest wczytany plik stanu urządzeń state.json // W msg.glowica wprowadzam adres IEEE urzadzenia str= msg.payload // znajduję rekord określonej głowicy p=str.indexOf(msg.glowica,0); //szukam linijki z aktualną nastawą temperatury // tu można pomiędzy cudzysłowami wstawić inną szukaną informację p=str.indexOf(“current_heating_setpoint”,p); // odczytuję temperaturę do zmiennej z - string // takie głupie określenie początku i końca tej danej p=str.indexOf(":",p)+1; q= str.indexOf(",",p); z=str.slice(p, q); //temp. zadana - zmiana na liczbę msg.payload = parseFloat(z); // i już return msg;
Może komuś się przyda. A może ktoś ma inny pomysł na odczytywanie danych z urządzeń ?