Programowanie NEXO - wybrane zagadnienia
Tabele prawdy
Tabela prawdy to funkcja pozwalająca na logiczne spajanie wszystkich elementów systemu automatyki domowej Nexo. Każda z nich (do 192) pozwala skojarzyć wszystkie możliwe zależności logiczne między wybranymi 4 warunkami i 5 akcjami w obrębie Nexo.
Ostateczne skonfigurowanie zależności logicznych w tabeli prawdy nazywane jest logiką danego programu. Warunki i akcje są podstawowym elementem określającym potrzebne informacje (warunki) do podjęcia pożądanych działań (akcje). Dlatego posługiwanie się wejściami i wyjściami fizycznymi (prawda/fałsz - włącz/wyłącz) jest b. intuicyjne. Dużo więcej doświadczenia wymaga posługiwanie się akcjami i warunkami o charakterze wirtualnym. Jednak używanie ich nie wymaga znajomości języka programowania, a jedynie skupienia, logicznego myślenia i ogólnego rozeznania co do możliwości poszczególnych narzędzi wirtualnych, m.in. takich jak zmienna wirtualna (do 256), zdarzenie wirtualne.
Stany wejść/wyjść Nexo mogą mieć wartości różne od logicznego 0 i 1, za to elementy konfiguracyjne pozwalają przygotować dany obiekt tak by był widoczny w tabeli prawdy jako element klasyfikujący się logicznym określeniem prawdy i fałszu.
Warunki (wejścia, stany)
Na liście warunków Nexo można znaleźć listę kilkudziesięciu rodzajów zdarzeń. Listę warunków można ogólnie podzielić na 4 grupy:
- czujniki (8 rodzajów interpretacji [np. stan czujki wynosi/ jest mniejszy/większy od...]);
- logiczne (12 sposobów monitorowania wewnętrznych operacji systemu [np. stan partycji/grupy/wyjścia jest... ; nastąpiło zdarzenie wirtualne]),
- peryferyjne (czyli reakcje na współpracę z wideodomofonem [np otwarto drzwi], GSM [np. otrzymano SMS'a] i kartą komend [otwarty magistralny protokół komunikacji]);
- egzystencjalne (błąd logowania, zasilanie awaryjne, niski stan akumulatora i inne)

W oprogramowaniu Nexo istnieje szereg narzędzi wirtualnych umożliwiających tworzenie abstrakcyjnych zależności pomiędzy fizycznymi zasobami.
Zmienne wirtualne to zasoby pamięci na których można poprzez akcje przeprowadzać operacje matematyczne (11 typów operacji). Każda z nich może przyjmować wartości od 0 do 9999 i mieć dynamicznie modyfikowaną wartość [np. tryb czasowy: zmniejszaj co 1; zmniejsz o <wartość>], wpływającą na sposób działania danej logiki. Narzędziem o charakterze wirtualnego impulsu jest zdarzenie wirtualne, które łatwo wykorzystać jako warunek w tabeli prawdy. Liczba zdarzeń wirtualnych nie jest ograniczona, tak jak jest to w przypadku zmiennej wirtualnej i dodatkowo zdarzeniom tym nadaje się przyjazne nazwy własne.
Wejścia (warunki) jakie mogą zostać użyte w Nexo można podzielić na 3 grupy:
- fizyczne
- peryferyjne
- logiczne
Do wejść fizycznych Nexo można podłączyć do 240 urządzeń czujnikowych, których naturalną rolą w systemie jest informowanie o aktualnym ich stanie. Można w ten sposób zainstalować do systemu czujniki binarne, analogowe i impulsowe. Wszystkie czujniki mogą równocześnie pełnić rolę w s. alarmowym oraz s. automatyki.
Wejścia peryferyjne to grupa warunków związanych z urządzeniami i zdarzeniami związanymi bezpośrednio z pracą urządzeń Nexo, takich jak termostaty czujników temp., sms'y, użycie przycisku programowalnego czy wideodomofonu itp.
Wejścia logiczne służą do obsługi informacji wewnątrzsystemowych takich jak elementy wirtualne oraz stany poszczególnych wyjść - włącznie danej funkcji może być wejściem w kontekście innego procesu systemowego.
Naturalnej funkcji grupowania wyjść towarzyszy narzędzie nazywane stanem złożonym. Grupuje ono do 10 stanów logicznych wejść i przeprowadza wobec tych stanów jedną z 10 wybranych operacji logicznych:
- Iloczyn (AND / ORAZ) - jeżeli wszystkie warunki prawdziwe to prawda
- Suma (OR / LUB) - jeżeli którykolwiek z warunków jest prawdziwy to prawda
- Zanegowany iloczyn (NAND / NIE ORAZ) - jeżeli wszystkie warunki prawdziwe to fałsz
- Zanegowana suma (NOR / NIE LUB) - jeżeli którykolwiek z warunków jest prawdziwy to fałsz
- Iloczyn zanegowanych (AND NOT / ORAZ NIE) - jeżeli którykolwiek z warunków jest prawdziwy to fałsz
- Suma zanegowanych (OR NOT / LUB NIE) - jeżeli wszystkie warunki są prawdziwe to fałsz
- Równoważność (EQU / RÓWNE) - jeżeli warunki różnią się stanem to fałsz
- Nierównoważność (NEQU / RÓŻNE) - jeżeli warunki różnią się to prawda
- Zawsze fałsz (F / 0) i zawsze prawda (T / 1) - operacje statyczne (przydatne w testowaniu)
Wartością stanu złożonego jest pojedynczy stan logiczny (prawda/fałsz). Możliwe jest budowanie stanów złożonych na podstawie innych stanów złożonych. Zręczne posługiwanie się tym narzędziem niezwykle ułatwia programowanie nawet bardzo śmiałych programów działania automatyki, opartych o skomplikowane zależności logiczne.
Akcje (wyjścia, działania)
Sednem działania programów automatyki Nexo jest kilkanaście grup akcji. Możemy podzielić je na dwie zasadnicze klasy: operacyjne i finalne.
Akcje operacyjne typu: zasymuluj odebranie sms'a; wygeneruj zdarzenie wirtualne; wyślij wiadomość do karty komend; operacja na sekwencji działań; modyfikuj zmienną wirtualną - funkcjonują głównie po to by być użyte w tabeli prawdy jako warunek (wejście).
Akcje finalne to działanie fizycznie, które dostrzega użytkownik systemu: ustaw wyjście, grupę, diodę przycisku; uzbrój/rozbrój partycję; wyświetl komunikat; przypomnienie (z dźwiękiem); wpis do historii, wyślij sms'a, przejdź do monitorowania CCTV.
Każda z tych akcji posiada właściwe menu kontekstowe i ilość opcji odpowiednią dla danego typu wyjścia.

Narzędziami wspomagającymi operacje na akcjach Nexo są grupy i sekwencje działań. Pierwsze pozwalają grupować w jeden moduł logiczny zasoby homogenicznych wyjść systemu. Oznacza to, że nie można grupować razem rolet i oświetlenia, ale można w akcjach systemu posługiwać się jedną grupą jako reprezentantem np. 20 obwodów oświetlenia, czy np. kilku rolet.
Sekwencje działań to narzędzie pozwalające budować złożone sekwencje akcji (do 7 w jednym ciągu), które mogą być wykonywane etapami. Uruchomienie sekwencji działań widziane jest z punktu widzenia tabeli prawdy jako jedna akcja. Przejście do każdego kolejnego etapu sekwencji można poprzedzić atrybutem czasowym:
- Bez oczekiwania - kolejna akcja rozpocznie się bez zwłoki po poprzedniej.
- Stały czas - kolejna akcja zostanie wykonana po pauzie o ustawionym czasie trwania.
- Czas na podstawie wartości zmiennej - kolejna akcja zostanie wykonana po upłynięciu sekund/minut/godzin równej wartości wyznaczonej zmiennej wirtualnej w momencie przechodzenia do danej akcji w sekwencji.
- Oczekiwanie na wyzerowanie zmiennej - kolejna akcja zostanie wykonana dopiero gdy wyznaczona zmienna będzie równa 0.
System alarmowy w Nexo
240 czujników, 32 strefy, 16 partycji to podstawowe cechy s. alarmowego zintegrowanego w Nexo.
Parametryzację wejść (w tym funkcja obniżonej czułości), schematy alarmowania, pełne współuczestnictwo automatyki oraz przyznawanie kompetencji użytkownikom uzupełniono o funkcje operacji logicznych na partycjach i priorytety alarmowania. Operacje logiczne na partycjach przydatne są w przypadku wielu użytkowników tej samej instalacji oraz w przypadku podzielenia s. na partycje dzienne/nocne/urlopowe/całodobowe itd. Priorytety alarmowania wyznaczają najważniejsze z punktu widzenia użytkownika obiekty chronione alarmem.
Dodatkowe narzędzia i testowanie
Kopiowanie logik to narzędzie przydatne do powtórzenia programu użytego dla innych wejść/wyjść systemu o podobnym działaniu.
Szybkie ustawianie to narzędzie przydatne do szybkiego wypełnienia wcześniej przeanalizowanych sposobów realizacji programu w tabeli prawdy. Ustawienie polega na wpisywaniu wygenerowanego przez tabelę prawdy kodu znaków i cyfr.
Nexo wspiera testowanie poszczególnych ustawień automatyki poprzez:
blokowanie logik (pozwala na zablokowanie części programów w celu oceny działania logiki niezablokowanej, co jest przydatne w przypadku nachodzenia się danych akcji i warunków.);
reset działania logiki (pozwala wyczyścić wartości zmiennych wirtualnych oraz przerwać rozpoczęte sekwencje zdarzeń).
Większość elementów s. Nexo zgodnie z duchem Plug&Play uruchomianych jest automatycznie i nie wymaga specjalnych procedur inicjujących.
Pliki, skróty, foldery i gesty
Zaprogramowane funkcje mogą zostać wyeksponowane na pulpicie użytkownika poprzez podobny do windowsowego system plików, skrótów i folderów.
Każdy z wybranych elementów logicznych Nexo można skojarzyć z ikoną o odpowiednim obrazku i uporządkować je będąc w pewnym zakresie autorem układu funkcjonalnego interfejsu użytkownika. Jednak o udanym wdrożeniu możemy mówić wtedy, kiedy użytkownik nie ma zasadniczo potrzeb korzystania z tego menu (przecież "inteligentny dom" to możliwie dobrze skonfigurowana automatyka, a nie wyrafinowany manipulator).
W wielu wypadkach jednak szybki i ergonomiczny dostęp do bardzo licznych funkcji można uzyskać poprzez wykorzystywanie gestów (do 32 na jeden panel dotykowy) czyli programowanych skrótów polegających na wykonaniu indywidualnego znaku/dotknięcia panelu dotykowego.
- Nexwell:

