Integracja Loxone Satel poprzez RS232

Zestawienie sprzętowe
Konfiguracja w DLOADX
Schemat podłączenia
Przetestowane funkcjonalności
Programowanie
Przykładowa instalacja
Obliczanie komend

Film YouTube

Celem integracji jest obustronna komunikacja pomiędzy dwoma systemami pod względem funkcji alarmowych. Integracja nie przedstawia sposobu importowania stanów urządzeń z jednego systemu do drugiego.

Zestawienie sprzętowe

Po stronie Satel:
-Centrala Integra 32
-Manipulator INT-TSG
-Rozszerzenie INT-RS v2.1
-Czujnik Slim line dual
-Sygnalizator SPW220
-Kontaktron Satel S-4

Po stronie Loxone:
-Miniserver
-RS232 Extension

 

Konfiguracja w DLOADX

a) sprzęt:

Rozszerzenie INT-RS oraz manipulator zostały wpięte zgodnie z instrukcją do magistrali manipulatorów. Na rozszerzeniu RS został ustawiony adres “3” za pomocą przełączników typu “DIP”. 

b) system:

Zostały utworzone dwie strefy Loxone oraz Loxone2. Strefa Loxone ma podłączone elementy widoczne na zrzucie ekranu powyżej.

 

Schemat podłączenia

 

Link do schematu połączeń

 

Przetestowane funkcjonalności

Uzbrajanie Satela poprzez wizualizację Loxone

W momencie kliknięcia „Uzbrój” w systemie alarmowym Loxone uzbraja się również Satel.


Rozbrajanie Satela poprzez wizualizację Loxone

W momencie kliknięcia „Rozbrój” rozbraja się alarm Loxone oraz Satel


Uzbrojenie Satelem uzbraja Loxone 

W przypadku uzbrojenia systemu poprzez manipulator Satel uzbraja również system Loxone


Rozbrojenie Satelem rozbraja Loxone

W przypadku wpisania kodu poprzez manipulator Loxone również otrzymuje o tym informację.


Potwierdzenie alarmu w Loxone z włączonym czuwaniem

Jeżeli chcemy potwierdzić alarm, ale strefy w dalszym ciągu mają czuwać, taka opcja jest możliwa w dwie strony


Pobranie informacji o uzbrojonych strefach w Satelu

Jesteśmy w stanie pobrać informację, ile stref jest uzbrojonych


Pobranie informacji do Loxone o tym, które wejście w Satelu wywołało alarm

Za pomocą bloku status jesteśmy w stanie stworzyć warunek logiczny, aby zapamiętać urządzenie, które wzbudziło alarm

Alarm komponentów Loxone wywoła alarm w Satelu

Jeżeli któreś z wejść zostanie wzbudzone w Loxone, wzbudzane jest również wejście w Satelu, które powoduje alarm.

 

Programowanie

 

Opis protokołu integracji po stronie Satel oparte jest o dokument „Opis protokołu ETHM-1” dostępnego do pobrania po wcześniejszym utworzeniu konta na stronie firmy Satel.

Najważniejsze w przypadku komunikacji po RS232 to fakt, że Satel nie wysyła danych, za każdym razem należy złożyć zapytanie i później sprawdzać odpowiedź.

W związku z tym, w rozbudowanej instalacji praktycznie niemożliwa jest integracja polegająca na czytaniu stanów np. kontaktronów oraz czujników, ponieważ każda konfiguracja stanów urządzeń to osobna odpowiedź w postaci ramki RS232.

Polecenia wysyłane są w postaci ramki, której ogólny wygląd to:

Ważne! – Elementy ramki zaznaczone na żółto to część stała każdej ramki. Te część polecenia nie zmienia się.

cmd – jest to komenda np. 84 która oznacza rozbrojenie alarmu,
d1,d2,dn – są to bajty, która oznaczają takie element jak np. strefa, kod użytkownika, tryb. Przy każdej komendzie, jest podana wymagana ilość bitów.
crc.high , crc.low – są to sumy kontrolne CRC obliczane na podstawie kalkulatora

 

Przykładowa instalacja i programowanie funkcji

Uzbrajanie Satela poprzez wizualizację Loxone

W tym przypadku komenda i jej opis wygląda następująco:

Wiemy już, cmd to 80 , teraz należy spojrzeć na dalszą część. 8 bajtów to user code, 4 kolejne to lista stref, które chcemy uzbroić.

Przykład:
Chcemy uzbroić strefę 1, za pomocą użytkownika mającego hasło 1111. W tym celu będzie potrzebny nam kalkulator CRC.
Program pyta nas o częściową część polecenia. Nie należy wpisywać więc FE,FE, oraz końcówka FE,0D.

 

Program liczy nam gotową komendę którą możemy wstawić w pole aktora RS232:

Ten ciąg znaków wklejamy w aktor RS232. Następnie, aktor ten można podpiąć do bloku system alarmowy:

Rozbrojenie Satela

W tej sytuacji sytuacja jest analogiczna. Kod na rozbrojenie to 84, cała komenda będzie po przeliczeniu w przypadku hasła 1111 następująco:

\xFE\xFE\x84\x11\x11\xFF\xFF\xFF\xFF\xFF\xFF\x01\x00\x00\x00\x57\x8E\xFE\x0D

Uzbrojenie Satelem uzbraja Loxone / Rozbrojenie Satelem rozbraja Loxone.

Aby Satel przesyłał nam informacje o aktualnym statusie alamu, Loxone musi wysyłać zapytania.
Wraz z każdym zapytaniem, Satel zwraca informację, czy alarm jest uzbrojony czy nie. Aby takie cykliczne pytanie było możliwe do wykonania, polecamy stosować blok przycisk opcji oraz generator impulsów.

W tym wariancie generator pulsuje w szybkim tempie i pyta o wszystko co podłączymy do wyjść, ale wysyła tylko 1 polecenie na raz.

Komenda wygląda następująco:

\xFE\xFE\x0A\xD7\xEC\xFE\x0D gdzie 0A to pytanie o uzbrojone strefy (czy są uzbrojone czy nie)

Jeżeli chcemy teraz stworzyć wejście, należy wpisać \1 po komendzie:

\xFE\xFE\x0A\1

Wejście nazwane REAL alarm zwraca liczbę. W przypadku gdy tylko 1 strefa jest uzbrojona , mamy wartość 1.

W przypadku kilku stref, wejście zwróci inną wartość. Na przykład w przypadku dwóch stref, na wejściu będzie „3”.

W taki sposób można uzyskać informację, ile stref jest uzbrojonych.

 

 

Potwierdzenie alarmu w Loxone z włączonym czuwaniem

\xFE\xFE\x85\x76\x88\xFF\xFF\xFF\xFF\xFF\xFF\x01\x00\x00\x00\x0F\x2F\xFE\x0D

Gdzie 85 to komenda, a 7688 to kod. W przypadku innego kodu cały ciąg zmieni się! Należy przeliczyć całą ramkę za pomocą kalkulatora.

W configu realizowane jest to za pomocą logiki:

Blok and wyśle potwierdzenie alarmu przy włączonym czuwaniu jeżeli:
AQ=1 czyli alarm będzie uzbrojony,
Wyłączy się pierwszy stopień Q1 alarmu – czyli kiedy wyjście będzie tłumione.

Alarm komponentów Loxone wywoła alarm w Satelu

Za pomocą RS232 możemy wzbudzić WYJŚCIE w Satelu, które następnie będzie aktywowało WEJŚCIE.
Standardowo należy spojrzeć do dokumentu „Opis protokołu” aby znaleźć komendę na włączenie wyjść.

Obliczanie wartości HEX

W naszym przypadku przyjąłem wyjście 10 jako wirtualne wyjście, które będzie się aktywować w przypadku wywołania funkcji RS232.

Komenda na załączenie wygląda następująco:

\xFE\xFE\x88\x11\x11\xFF\xFF\xFF\xFF\xFF\xFF\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xED\x9E\xFE\x0D

Przy kodzie 1111 oraz aktywnej strefie 10.
Aby zrozumieć, dlaczego w tym przypadku \x00\x02 oznacza 10, przedstawię sposób obliczania stref w kodzie szesnastkowym.

Wartości dla poszczególnych bitów: 
0-0-0-0-0-0-0-0 
1-2-4-8-16-32-64-128 
pierwszy bit – wartość 1 
drugi bit – wartość 2 
trzeci bit – wartość 4 
czwarty bit – wartość 8 
piąty bit – wartość 16 
szósty bit – wartość 32 
siódmy bit – wartość 64 
ósmy bit – wartość 128. 

Są to potęgi liczby 2.

Jest to zapis 32 bitowy na 4 bajtach: 
Pierwszy bajt to strefy 1-8, drugi 9-16, trzeci 17-24 i czwarty 25-32. 
Na przykładzie pierwszego bajtu: 
00000000 – żadna strefa nie załaczona – 0x00 
10000000 – pierwsza strefa załączona – 0x01 
01000000 – druga strefa załaczona – 0x02 
11000000 – strefa 1 i 2 załaczona – 0x03 
00100000 – strefa 3 załączona – 0x04 
Dodajemy wartości binarne na których jest 1 a później przeliczamy na HEX

Aby przeliczyć wartość binarną na HEX należy zsumować wszystkie aktywne bity a następnie podzielić przez 16. 
Wartość całkowita to pierwsza cyfra w zapisie HEX a reszta z dzielenia to druga cyfra w zapisie HEX zapisywana w formacie 0-9:A-F. 
0x(pierwszacyfra)(drugacyfra) 

Dlatego aby aktywować wyjście 10 mamy:
/x00/x02 – ponieważ „10” mieście się w przedziale drugiej strefy (9-16)

Aby teraz ustawić wyjście 10 jako przełącznik BI w Satelu należy wejść w dane wyjść:

Następnie, tworzymy wejście (w moim przypadku wejście 7), które będzie uruchamiane poprzez wyjście 10:

Następnie wysyłamy komendę

\xFE\xFE\x88\x11\x11\xFF\xFF\xFF\xFF\xFF\xFF\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xED\x9E\xFE\x0D jako „Wysłania alarmu” na poniższym zrzucie ekranu.

Poprawność komunikacji można sprawdzać również na podglądzie w Satelu: