Współpraca paneli sterujących bezpośrednio ze sterownikami inteligentnego domu eHouse w wersji Ethernet przez protokół UDP

Inteligentny Dom , inteligentny budynek eHouse w wersji Ethernet umożliwia bezpośrednią komunikację z praktycznie nieograniczoną ilością paneli wyświetlających aktualny status sterowniki mikroprocesorowe przy pomocy protokołu UDP w sieci LAN.

automatyka domu ehouse – aktualizacja paneli przez protokół UDP (User Datagram Protocol).

W przeciwieństwie do protokółu TCP jest to protokół bezpołączeniowy tj. nie wymaga trwałego połączenia między klientem a serwerem, śledzenia sesji, brak mechanizmów kontroli danych, przepływu i retransmisji.
Dzięki temu jest to protokół znacznie szybszy od TCP, jednak możliwe jest gubienie danych oraz inne błędy. W przypadku Datagramów użytkownika (Indywidualnych ramek dla dowolnego systemu), poprawnością transmisji musi zająć się oprogramowanie komunikacyjne.

Protokół UDP znakomicie nadaje się do wysyłania broadcastów (komunikatów, rozgłoszeń do wielu urządzeń na raz bez nawiązywania kolejnych połączeń z klientami z serwera). Najważniejsze jego cechy są następujące:

  • Protokół bezpołączeniowy kolejne urządzenia odbiorcze nie obciążają serwera
  • wiadomości wysyłane są globalnie do wszystkich urządzeń w sieci LAN
  • dla serwera nie ma znaczenia czy wysyła komunikaty do 0 czy więcej urządzeń ani ile urządzeń słucha tych wiadomości
  • błędy transmisji nie mają żadnego wpływu na serwer nadający dane
  • transmisja danych jest niezabezpieczona przed błędami, brak jest potwierdzeń, kontroli przepływu

Ponieważ protokół UDP nie posiada transmisji zabezpieczonej przed błędami, aby wykorzystać go w systemie eHouse, oraz umożliwić kontrolę błędów paczki danych wysyłane są podwójnie. Umożliwia to ich porównanie i wykorzystanie po stronie klienta w sytuacji gdy dwie paczki są identyczne. Nie obciąża to serwera rozsyłającego dane algorytmami obliczającymi sumy kontrolne lub tworzące inne mechanizmy zabezpieczające transfer (symetryczne). W systemie eHouse, za porównanie danych jest odpowiedzialny klient i jego oprogramowanie.
Dane są wysyłane z serwera w formie binarnej i muszą być dekodowane przez oprogramowanie klienta. Serwer wysyła dane na określony port (domyślnie 6789), a klient musi asynchronicznie nasłuchiwać nadchodzących komunikatów na tym porcie. Transmisja asynchroniczna oznacza, że dane nie są buforowane i urządzenie musi odbierać pakiety na bieżąco w danej chwili wysłania. Od architektury systemu i typu instalacji zależy, czy wszystkie sterowniki wysyłają paczki statusu na ten sam port czy każdy na inny i może to być wybrane indywidualnie od aplikacji systemu eHouse.

Paczka danych jest taka sama jak w przypadku transmisji TCP przy łączności ze sterownikami Ethernet czy oprogramowaniem eHouse.exe dla PC wysyłające dane binarne po UDP. Pozwala to na użycie jednej funkcji (procedury) dekodowania ramki bez względu na medium transmisyjne czy protokół komunikacyjny.

Dane nie są zabezpieczone aby ułatwić ich dekodowanie przez indywidualne oprogramowanie paneli sterujących i do wizualizacji i nie obciążać dodatkowo serwera ich kodowaniem. Umożliwi to wyświetlenie informacji na panelach w ilości ograniczonej tylko maską danej podsieci IP tj. 255. Ponieważ są to tylko statusy urządzeń bez możliwości włączania i wyłączania poszczególnych urządzeń czy uruchamiania zdarzeń systemowych, mogą zostać upublicznione poza sieć LAN przez firewall. W przypadkach szczególnych można stworzyć VPN (Virtual Private Network) – połączenie tunelowane do odbierania statusu sterowników przez panele zewnętrzne spoza sieci, lub używać połączenia TCP z logowaniem typu challange – response (weryfikacja z dynamicznym kodem), który jest nadal aktywny. Dane te nie są jednak krytyczne i bez aplikacji dekodującej pakiety, są jednak paczką zer i jedynek, które muszą być dekodowane przez pakiet oprogramowania systemu eHouse dla paneli dowolnego typu.

Oprogramowanie eHouse.exe zostało zaktualizowane tak, aby umożliwiało także odbiór tych danych przez UDP – Protokół Datagramów użytkownika. W tym celu należy uruchomić aplikację eHouse z parametrem „ehouse.exe /VIAUDP” wielkość liter nie ma znaczenia. Pozwoli to na znacznie bardziej wiarygodny odbiór statusu z CommManagera, oraz podłączonymi do niego sterownikami eHouse 1 pracującymi po RS-485. Aplikacja eHouse odbiera (nasłuchuje) tylko przychodzących paczek ze sterowników. Paczki są wysyłane podwójnie i w przypadku jakichkolwiek błędów dane są po prostu ignorowane i zostaną uaktualnione przy poprawnym odbiorze kolejnej paczki zawierającej status danego sterownika.

Taka metoda uniezależnia też serwer i klienty od błędów sieci, routerów, switch’y, gdyż nie ma tu przypadku zerwania łączności z serwerem, ze względu na ideę protokółu bezpołączeniowego UDP. Nie powoduje to zawieszania aplikacji czy permanentnego zaniku aktualizacji danych, jak w przypadku protokołów z połączeniem do serwera, lecz tylko chwilowe na czas awarii łącza, oraz tylko gubienie paczek w czasie awarii czy zbytniego obciążenia sieci.
Gubienie paczek statusu danych ze sterowników jest do zaakceptowania, gdyż są one cyklicznie powtarzane przy zmianie stanu każdego sterownika, a minimalna częstotliwość wynosi ok 16 sekund jeśli nie ma żadnych zmian.

W przypadku wybrania tej opcji dla aplikacji eHouse przestaje ona wysyłać własny status binarny po UDP, gdyż są to te same dane, które aktualnie są rozprzestrzeniane bezpośrednio ze sterowników Ethernet Ehouse.
Status tekstowy (dekodowany przez aplikację eHouse) może być nadal rozgłaszany, jeśli jest uaktywniony w aplikacji eHouse.exe, dając użytkownikowi możliwość użycia starych paneli sterujących, opartych na logach tekstowych a nie paczkach binarnych. W tym przypadku dane przechodzą przez aplikację eHouse.exe, która jest kolejnym ogniwem łańcucha, od którego połączenie paneli ze sterownikami zależy dodatkowo.
Takie zastosowanie jest jednak dobre w przypadku systemu pracującego całkowicie w standardzie eHouse 1 (bez CommManagera) gdyż daje możliwość współpracy z panelami odbierającymi dane z aplikacji eHouse.exe pomimo braku wbudowanej transmisji Ethernet w sterowniki.

sterowanie oświetleniem