Wyłuskanie danych z msg.payload typu string

Witam. Chciałbym wyłuskać konkretne wartości z msg.payload za pomocą funkcji…
Przykład:
shellyplus1pm-xxxxxxx/status/switch:0 : msg.payload : string[208]
“{“id”:0, “source”:“init”, “output”:false, “apower”:0.0, “voltage”:224.0, “current”:0.000, “aenergy”:{“total”:0.000,“by_minute”:[0.000,0.000,0.000],“minute_ts”:1700166659},“temperature”:{“tC”:36.4, “tF”:97.6}}”
gdzie interesuje mnie np temperatura, którą będę mógł wystawić do dalszej obróbki…
podpowie ktoś?

Za pomocą węzła json zamień ten string na obiekt… a później to już normalnie jak zawsze :slight_smile:
json parse
flows (59).json (665 bajtów)

Nie mam shelly… ale z tego co mi wiadomo to działa przez mqtt. Może subskrypcja właściwego tematu pozwoli odczytać tą wartość bezpośrednio?

Albo wrzuć do funkcji (Function) coś w ten deseń:

var data = JSON.parse(msg.payload);
var temperatureC = data.temperature.tC;
msg.payload = temperatureC;
return msg;

1 polubienie