Panel administracyjny - wszystko w jednym

Nadszedł czas na zintegrowanie wszystkich elementów sterowania w 1 aplikacji. Nowy sposób komunikacji (więcej tutaj), bootstrap pozwalający tworzyć responsywne aplikacje i ładny darmowy template stanowiły wystarczającą prowokację, by wziąć się do roboty. Oto efekt końcowy…. a szczegóły poniżej.

Sterowniki PLC nie są przygotowane do bezpiecznej obsługi przez internet. Zabezpieczenia są bardzo prymitywne. Wystawienie sterownika na świat zewnętrzny oznacza oddanie nad nim kontroli osobom trzecim. Przykładowo – modbus nie zawiera żadnych form autentykacji.

Aby móc kontrolować sterownik z dowolnego urządzenia i z dowolnej sieci potrzebny jest pośrednik. W moim przypadku rolę tą pełni RaspberryPi. Odpowiednie skrypty php pozwalają na odczytywanie i wysyłanie danych do sterownika, dbając przy okazji o należny poziom autentykacji, ciasteczka itd. Jako że nie posiadam stałego numery IP, korzystam z usług dyndns.org, dzięki którym mój aktualny numer IP dostępny jest pod stałą domeną.

Pierwsza strona, która ukaże się po wybraniu adresu i zalogowaniu to pulpit. Widoczne na nim widgety odświeżają się w różnej częstotliwości, dostosowanej do rodzaju prezentowanej informacji.

Dashboard

Liczba włączonych świateł

Lights

Odpytuje wszystkie wyjścia sterownika, do których podłączone są światła i zlicza te, o stanie ON. Skala podświetlenia żarówki zmienia się wraz ze wzrostem zapalonych świateł. Po najechaniu myszką na żarówkę, wyświetlane są skróty włączonych obecnie świateł.

Ostatni ruch

Move

Odpytuje sterownik o zmienne przechowujące stany czujek ruchu podłączonych do centrali SATEL oraz o aktualny czas sterownika i czas ostatniego ruchu. Gdy którakolwiek z czujek jest wzbudzona, wyświetla nazwę pomieszczenia, w którym wykryto ruch. Gry nie ma ruchu, zlicza i wyświetla czas od ostatniego wzbudzenia czujki.

Bieżące zużycie prądu

Energy

Odpytuje sterownik o wartość zmiennej przechowującej aktualne zużycie prądu. Wykres poniżej ukazuje 30 ostatnich pomiarów i daje możliwość prześledzenia poprzednich wyników.

Woda użytkowa

WaterS

Odpytuje piec o aktualną temperaturę wody użytkowej o raz o stan wewnętrznej pompy pieca odpowiedzialnej za kierowanie gorącej wody do zbiornika. Gdy zbiornik jest podgrzewany, ikona pulsuje od bieli do czerwieni.

Zbiornik nieczystości

Tank

Uruchamia pomiar zapełnienia zbiornika i wyświetla wynik w postaci wykresu kołowego w miejscu ikony. Odczytuje też 90 ostatnich pomiarów z bazy SQL i określa dzień ostatniego opróżnienia zbiornika.

Bramy garażowe

GatesS

Odpytuje sterownik o stany kontaktronów przy bramach garażowych i wyświetla ich stan

Piec

BoilerS

Odczytuje z pieca aktualną moc palnika i wyświetla w postaci % w środku ikony. Ponadto wyświetla aktualny tryb pieca (OFF, Tylko woda, Woda i C.O.)

Prognoza Pogody

Forecast

Wykorzystując dane z forecast.io wyświetla aktualne informacje o pogodzie i prognozę na 5 dni.

Kolejna stroną do wyboru z bocznego menu jest wizualizacja parteru.

Visualization

Opiera się ona o wyświetlany w tle obrazek PNG zrobiony w programie graficznym. Aktywne elementy wyświetlane są jako warstwy <div>. Wizualizacja umożliwia kontrolę świateł, pozycji rolet, docelowych temperatur w pomieszczeniu i pokazuje poza stanem świateł i pozycją rolet, stan czujek ruchu oraz stan zaworów sterujących przepływ wody do kaloryferów.

Strona „Czujniki” zawiera zestawienie wszystkich czujników podłączonych do systemu.

Sensors

Temperatury pomieszczeń zaprezentowane są w formie wykresu. Kolory poszczególnych pól dostosowane są do temperatury z palety od granatu do czerwieni. Ponadto wyświetlany jest aktualny pomiar nasłonecznienia, stan czujnika opadów, temperatury zewnętrzne od południa i północy i ciśnienie atmosferyczne.

W sekcji wykresy dostępne są zestawienia danych o temperaturach pomieszczeń, temperaturze zewnętrznej, ilości światła, ciśnieniu atmosferycznym, zużyciu prądu i zapełnieniu zbiornika nieczystości.

Graphs

Strona „Kamera” daje dostęp do aktualnego obrazu z kamery zmieszczonej przed domem.

Camera

Domyślnie wyświetlany jest obraz o wymiarach 640x480. Możliwe jest też odczytanie pełnego obrazu (3MP) wyskalowanego do maksymalnej przestrzeni okna, lub odczytanie wycinka z pełnego obrazu w pełnej rozdzielczości. Kamera jest tym urządzeniem, do której dostęp z każdego miejsca na ziemi o każdej porze jest najbardziej potrzebny.

W części piec prezentowane są aktualne parametry mojego pieca: temperatura na zewnątrz odczytywana przez automatykę pogodową, temperatura we wzorcowym pomieszczeniu, temperatura wody użytkowej, temperatura kotła i spalin oraz aktualna moc palnika.

Boiler1

Możliwe jest przełączenie trybu pracy i ustawienie temperatur trybów normalny i zredukowany, trybu party i wody użytkowej. W postaci ruchomych plików gif prezentowany jest aktualny stan pomp: cyrkulacji C.W., podgrzewania wody użytkowej i obiegu grzewczego.

Na stronie „Harmonogramy” możliwe jest ustawienie terminarzy przełączania trybów normalny/zredukowany, czyli dzień/noc, harmonogramów grzania wody użytkowej i cyrkulacji wody użytkowej. Przycisk „Kopiuj poniedziałek” przenosi ustawienia poniedziałku na pozostałe dni.

Boiler2

Strona „Ogród” umożliwia kontrolę zaworów sterujących podlewaniem. Każdy z zaworów można włączyć/wyłączyć.

Garden

Możliwe jest też włączenie zegarów: ustawienie początkowych lub końcowych godzin podlewania, określenie dni tygodnia… Można też ustawić czas podlewania suwakiem. Po naciśnięciu ikony kalendarza wszystkie następujące po sobie włączenia i wyłączenia zaworów zostaną przeliczone by dopasować się do nowych ustawień suwaków.

W „Sterowaniu – Rolety” ustawić można wiele parametrów związanych z obsługą rolet.

Blinds

Wyliczona przez PLC pozycja słońca nie wystarcza do określenia pożądanego momentu podniesienia i opuszczenia rolet. Przykładowo - w moim przypadku przejście pozycji -6 stopni poniżej horyzontu przy wschodzeniu słońca wysyła sygnał do podniesienia rolet. Kolejne przełączniki umożliwiają włączenie automatycznego zacieniania lub wymuszenie zacieniania bez względu na inne parametry. Dodatkowo możliwe jest ustalenie granicznego progu nasłonecznienia i minimalnej temperatury, które muszą być osiągnięte, by system zacieniania się włączył.

W przypadku pojedynczych rolet strona umożliwia wpisanie czasu przeznaczonego na ruch w górę i w dół (potrzebne do wyliczania pozycji), oraz czasu zasilania. Jako że system umożliwia ustawianie rolet nie tylko w pozycji „podniesiona” i „opuszczona”, ale też w zadanych pozycjach pomiędzy, strona umożliwia podanie tych pozycji (np. zadana 45 = blisko całkowitego zamknięcia, by nocą był półmrok, lecz nie ciemność, i przy zacienianiu = 150, czyli ok. połowa wysokości). W części Zacienianie możliwe jest podanie początkowej o końcowej pozycji słońca, przy której ma działać zacienianie w odniesieniu do danej rolety, oraz inercji (czyli czasu od przekroczenia progowych poziomów nasłonecznienia i temperatury do włączenia/wyłączenia zacieniania) oraz timeoutu (czyli czasu spoczynku automatycznego zacienienia po ręcznym ustawieniu rolet).

Timery rolet” pozwalają określić czy i w jakich okolicznościach rolety mają podnosić/opuszczać się automatycznie.

Timers

Możliwe jest uzależnienie ich ruchu od wschodu/zachodu słońca lub ustawień zegara. Możliwe jest też wskazanie, czy przy opuszczaniu mają trafić na sam dół, czy zatrzymać się w pozycji zadanej. Zegary dla każdej rolety są 2 z dowolnością ustawiania godzin podnoszenia/opuszczania oraz dni tygodnia.

Tyle na temat poszczególnych stron. Brakuje jeszcze kilku jak np. ustawienia świateł do określania świateł włączanych automatycznie przy wykryciu ruchu lub wyłączanych automatycznie przy bezruchu.

Dla podsumowania: scalony panel administracyjny daje następujące korzyści:

  • dostęp do systemu z dowolnego miejsca na ziemi z dowolnego urządzenia,
  • ustalenia praw dostępu dla różnych osób
  • wykorzystania zabezpieczeń dostępu na światowym poziomie (obsługa https w przygotowaniu)
  • zunifikowanie wyglądu i sposobu kontroli różnych systemów