Przechodzimy do NR
Etap 1
Odczytanie danych z Lan Kontroler’a (LK)
realizujemy to poprzez wysłanie zapytania http://xxx.xxx.xxx.xxx/st0.xml gdzie xxx.xxx.xxx.xxx to adres IP Lan Kontrolera.
jeśli wszytko pójdzie OK otrzymamy zwrotnie w msg następującą strukturę danych:
wynik (http) zapisany zostanie w zmiennej msg.payload
możemy jednak trafić na błędy w komunikacji między HA i LK i wtedy proces się nam wykrzaczy.
Dzieje się to dlatego, że LK ma w sobie mechanizm auto restartu co określony interwał czasowy i jeśli trafimy z zapytaniem http, na czas w którym się restartuje to możemy doprowadzić do zawieszenia LK. Dlatego dla bezpieczeństwa wprowadzamy ograniczenie, które zatrzyma wszystkie zapytania do LK przez okres 30s. Zrealizujemy to za pomocą 4 nodów:
![image](https://forum.arturhome.pl/uploads/default/original/1X/24f61038d82dc8fe50cb584649d44eafc3d7920e.png)
![image](https://forum.arturhome.pl/uploads/default/original/1X/2152adc5a14ed65d1ba54180309a2e44ac655943.png)
![image](https://forum.arturhome.pl/uploads/default/original/1X/68706a64c9b3d600c95ac6c1b1c446500240ef86.png)
![image](https://forum.arturhome.pl/uploads/default/original/1X/976704d791e887725c351b601b63cc520958026e.png)
![image](https://forum.arturhome.pl/uploads/default/original/1X/21a6b10fc1130488ad5defb6c544c7aac6b1ca5a.png)
spinamy to w całość:
![image](https://forum.arturhome.pl/uploads/default/original/1X/38ab6b7c1d04d7de83bdbc5c1270740d5125e78b.png)
i mamy załatwioną obsługę błędów w komunikacji
![:slight_smile: :slight_smile:](https://forum.arturhome.pl/images/emoji/google/slight_smile.png?v=9)
Etap II
Konwersja z formatu XML na JSON wykorzystywany w msg do dalszego procesu obróbki danych.
wstawiamy nod:
on przekonwertuje wynik XML na strukture JSON
klikając na miejsce wskazane myszką otrzymujemy ścieżkę dostępu do danego wyniku:
“payload.response.ia7[0]” - trzeba pamiętać, że jeśli chcemy skorzystać z zapisanej wartości w funkcjach to musimy dodać przedrostek msg. - czyli odwołanie do wartości będzie wyglądać w funkcji następująco: “msg.payload.response.ia7[0]”
co do struktury otrzymanego pliku XML opisze go w osobnym poście, bo sam go do końca nie znam. Odczytane wartości z czujników temperatury trzeba podzielić przez 10
Omawiany przykład: LM Pobieranie danych.json (2,5 KB)
Kolejny artykuł będzie poświęcony odczytaniu z HA wartości “pomocników” i zapisaniu ich w NR, oraz zapisie otrzymanych wyników z LM do pomocników w HA.