Opis
Uwaga
Nie wiesz co to jest REST API?
Nie programowałeś jeszcze nigdy zapytania HTTP?
Nie mart się, zacznij od filmu 5002, gdzie pokazuję jak napisać w języku Lua jedno proste zapytanie HTTP typu GET. Zgadnienie to omawiam wykorzystując serwer zwracający informacje o państwach świata, który pozwala na wyszukiwanie wielu użytecznych informacji bez konieczności logowania i konfigurowania połączenia po stronie serwera.
Informacje dodatkowe
Moje zalecenia
Praca z HTTP REST wymaga dużej cierpliwości w zrozumieniu opisu interfejsu API usługodawcy z którym się łączysz, a następnie w sformułowaniu zapytań http i analizowaniu ich odpowiedzi.
Nie zapominaj, że HTTP request możesz z powodzeniem przetestować (nawet przed rozpoczęciem pisania kodu w Lua) za pomocą terminala np. przy użyciu metody: "curl -X" GET/POST
Pamiętaj także, że centrala HC2 nie wspiera żadnej wersji protokołu TSL, a starszy protokół (który wspiera) - SSL bardzo często zostaje zablokowany przez serwer z którym się łączysz. Jest to spowodowane tym, że protokół SSL nie spełnia dziś wszystkich wymogów bezpieczeństwa i jest zastępowany nowszym protokołem - TLS, który jest wspierany przez nową centralę HC3. W przypadku użycia połączenia wykorzystującego stary protokół SSL, zobaczysz błąd: "
Error :
sslv3 alert handshake failure
" co oznacza, że musisz użyć nowego protokołu TLS przy wykorzystaniu centrali HC3. Jedynym wyjściem dla użytkowników centrali HC2 jest znalezienie może jeszcze wciąż aktywnego adresu HTTP serwera. Jeśli takiego nie ma, to będziesz musiał zmienić centralę na nowszy model - HC3.Koniecznie do analizy odpowiedzi z serwera wykorzystaj online edytory JSON by zobaczyć jak wygląda zwracana struktura np. JSON online editor.
Przydatne linki
O filmach serii
5000
Poruszane tematy
W serii filmów pokażę jak zbudować od "zera" integrację z zewnętrzym urządzeniem na przykładzie kosiarki Husqvarna.
zbuduję Quick App i napiszę kod Lua wysyłający zapytania do serwera Husqvarna tak aby było możliwe odczytanie stanu kosiarki i sterowanie nią
pokażę jak należy odpowiednio skonfigurować konto na serwerze Husqvarna aby zewnętrzna aplikacja Quick App mogła korzystać z funkcji kosiarki
omówię także jak czytać dokumentację API dostarczoną przez firmę Husqvarna opisującą zasady komunikacji
Co więcej, aby proces tworzenia zapytań do serwera Husqvarna był zrozumiały, opracowałem graficzny schemat wymiany danych, który narysowałem na podstawie dokumentacji API opisującej szczegóły komunikacji. Schemat wraz z gotowym QuickApp i kodem znajdziesz w załączniku.
Zastosowania
Przedstawione umiejętności pozwolą Ci na:
podłączenia się do dowolnego urządzenia IoT innego producenta
integracji innych systemów z systemem FIBARO
zapoznanie się z zapytaniami HTTP request
podniesie komfortu w domu dzięki różnym integracjom umożliwiającym nawet automatyczne zaparzenie kawy po obudzeniu :-)
Materiały dodatkowe
Do pobrania (kody źródłowe)
Gotowe do zaimportowania urządzenia Quick App, kod Lua i schemat:
wersja pełna do integracji z kosiarką Husqvarna (wg filmu 5001)
wersja szkoleniowa prostej integracji Husqvarna (wg filmów 5003-5007)
schemat blokowy komunikacji REST API Husqvarna
kod Lua sceny poszukującej informacje o państwach (wg filmu 5002)
Wymaga aktywnej subskrypcji do portalu
Pojęcia i znaczenia
REST (Representational State Transfer) - to zbiór pewnych zasad ustalonych w świecie IT i pozwalających na wymianę danych pomiędzy klientem (tu centrala FIBARO) a serwerem (usługi oferowane przez producenta innego urządzenia) przy użyciu protokołu HTTP.
Sama centrala HC3 i HC2 też ma wystawiony REST API, co oznacza, że inna aplikacja zewnętrzna lub serwer także może korzystać z funkcjonalności Twojej centrali FIBARO.
API (Application Programming Interface) to interfejs, czyli indywidualny dla każdego urządzenia/producenta zakres i składnia pozwalająca na odczytanie pewnych parametrów i wysyłanie poleceń. To właśnie podmiot udostępniający publicznie API danego rozwiązania np. producent ekspresu do kawy, telewizora czy kosiarki jest odpowiedzialny za szczegółowe określenie, w jaki sposób będziemy mogli zdalnie odczytywać pewne parmatery jego urządzenia lub wydawać do niego komendy (np. dla ekspresu do kawy - rozpocząć parzenie kawy, odczytać ilość pozostałej kawy do zmielenia lub sprawdzić jej temperaturę).
Powiązane filmy DIY
Detekcja otwartego okna i obniżenie grzania przez Heat Controller
Wykrycie otwartego okna przez Heat Controller i wizualizacja otwartego okna za pomocą wirtualnego Window Sensor - Quick App.
Obniżenie nastawy termostatu przy wyłączonej automatycznej funkcji wykrywania otwartego okna w Heat Controller.