Witam serdecznie w innym miejscu tego forum nauczyłem się parsować odpowiedzi z API i wyświetlać je w HA. Moja radość nie trwała zbyt długo gdyż okazało się iż funkcję zmieniają się kolejnością np. w wywołaniu 1 parametr mam w “payload.devices[0].last_state[4].value” a w kolejnym już w “payload.devices[0].last_state[49]”
Skontaktowałem się z dostawcą API czy tak sytuacja występuje i oto mam taką odpowiedź:
Pozycje w odpowiedzi mogą się zmieniać. Najlepiej filtrować po atrybucie “code” - jest on stały i przenoszony między wersjami sterowników
Potrzebuję pomocy jak to ugryśc w NR i wyszukiwac pozycję wg. “code”
Pomysł jest taki, aby przejrzeć wszystkie elementy tablicy “payload.devices[0].last_state[].
Załączony przykład konwertuje do prostego json : {code : value, …itd.
Pisany na szybko, więc wymaga jeszcze trochę pracy. flows (5).json (10,6 KB)
Przetestowałem formatowanie fajnie dodaje wartość po code w jaki sposób wyciągnąć teraz wartość która mnie interesuje np “__poziompaliwa:58” samą wartość liczbową ?
Trochę poprawiłem, bo lekko było nie tak.
Musisz dobrać indeksowanie w pętli bo wstawiłem na pałę, aby pozbyć się końcowych śmieci.
for (i=1; i<(count-10); i++){
Przetestowałem i gdy struktura jest standardowa dane przechodzą , ale gdy w którymś wywołaniu się zmieni to wycina payload i nie ma wszystkich właściwości, czy nie będzie problemem to że payload jest taki długi ?
Zmieniając tą wartość możesz się tego pozbyć - pod warunkiem, że zawszę będą na końcu.
Można też wprowadzić warunek - gdy code zawiera “harmonogram” to tego nie zapisujesz… ale to w ramach zadania domowego zostawiam Tobie