2021-08-03 Update: aktualna wersja projektu dotępna jest tu: https://github.com/tjaworski997/X.RopamNeo
Postanowiłem zainstalować w domu alarm:-)
Cel?
Zabezpieczenie mieszkania przy poniższych założeniach:
- NAJWAŻNIEJSZE – Alarm ma być niezależny od domowego systemu zarządzania, DOMOTICZ nie działa – alarm działa
- Alarm ma pozwolić na wykorzystanie podłączonych pirów, innych czujników w systemie DOMOTICZ (analiza ruchu, zarządzanie oświetleniem)
- DOMOTICZ / HOME ASSISTANT powinien umieć sterować wyjściami OUT alarmu
- DOMOTICZ / HOME ASSISTANT powinien umieć uzbroić/rozbroić alarm – głównie chodzi o włączenie alarmu dla strefy nocnej (mój manipulator będzie przy drzwiach wejściowych, więc chcę móc załączać alarm nocny innym urządzeniem – np. switch XIAOMI)
- DOMOTICZ / HOME ASSISTANT powinien wiedzieć kiedy alarm jest uzbrojony – po uzbrojeniu powinien umieć wyłączyć urządzenia typu telewizor, żelazko, amplituner ..
Wstępne rozpoznanie urządzeń wskazało na SATEL INTEGRA 32 + ETHM1plus (400pln) + dedykowany kabel dedykowany połączeniowy (40 pln).
Wszyscy polecają, wszyscy go mają, działa z DOMOTICZ.
Poszukałem innych rozwiązań dostępnych na rynku i postanowiłem zaryzykować – bo spodobały mi się możliwości systemu ROPAM NEOGSM-IP – a tak będąc do końca szczerzy zostałem lekko ukierunkowany przez dobrego sprzedawcę, który zapewniał, że powyższe cele osiągnę właśnie z tym urządzeniem.
Jako, że nie jestem instalatorem, samo podłączenie urządzenia zajęło mi trochę czasu. Traktuję to jako zabawę połączoną z nauką, więc czas na pewno nie uważam za zmarnowany.
Po kilku próbach, udało się skonfigurować urządzenie z jednym pirem, syreną i kartą GSM. Poniżej schemat który mi mocno pomógł, może kiedyś pomoże i Wam.
Pozostała kwestia integracji z DOMOTICZ.
Niestety na forum firmy ROPAM (link) możemy dowiedzieć się, że z tą centralką integracja nie jest możliwa.
Stwierdzenie “coś jest nie możliwe” jest mocno motywujące, tak więc wykorzystując jedną z moich ulubionych technik czyli Reverse Engineering postanowiłem mimo wszystko dokonać integracji.
Udało się.
W poniższym linku udostępniam program pozwalający na integrację systemu ROPAM NEOGSM-IP i DOMOTICZ HOME ASSISTANT i pewnie też z OPENHAB którego nie znam.
ropam-neogsm-domoticz-homeassistant-integrator
Program potrafi pracować jako usługa lub aplikacja konsolowa. Został napisany w technologii Microsoft .NET, ale, że zarówno ja, jak i większość z użytkowników systemu DOMOTICZ / HOME ASSISTANT korzysta z rozwiązania opartego o system LINUX, Raspberry … postanowiłem go uruchomić właśnie w tym środowisku.
I po raz kolejny udało się:-)
Poniżej kroki które należy uczynić by aplikacja zadziała na Raspberry:
- Instalujemy środowisko MONO (użyłem pełnej wersji, bo będę się jeszcze mocniej bawił)
sudo apt-get install mono-complete
- Instalujemy MONO-SERVICE
sudo apt-get install mono-4.0-service
- Pobieramy pliki programu do integracji z tego linka: ropam-neogsm-ip-dmoticz-intergracja
- Wrzucamy pobrane pliki (po rozpakowaniu) do docelowego katalogu (u mnie /home/pi/@scripts/neo/)
- Tworzymy plik uruchamiający usługę w katalogu naszego programu
sudo nano xneoapi.sh
Zawartość pliku:
#!/bin/bash cd /home/pi/@scripts/neo/ sudo mono-service -l:/var/run/lock/xneoapi.lock /home/pi/@scripts/neo/xneoapi.exe
- Nadajemy uprawnienia do uruchamiania skryptu
sudo chmod +x xneoapi.sh
- Edytujemy plik /etc/rc.local wpisując:
sudo nano /etc/rc.local
- Dodajemy poniższy wpis odpowiedzialny za automatyczne uruchamianie naszej usługi po restarcie Rasberrergo
sudo /home/pi/@scripts/neo/xneoapi.sh
Pozostaje jeszcze kwestia integracji programu.
- Parametry pracy programu – plik xneoapi.exe.conf
<applicationSettings> <X.NEO.API.Properties.Settings> <setting name="WebServerPrefix" serializeAs="String"> <value>http://localhost:7999/</value> </setting> <setting name="NeoGsmDeviceIp" serializeAs="String"> <value>192.168.1.100</value> </setting> <setting name="NeoGsmDevicePort" serializeAs="String"> <value>9999</value> </setting> <setting name="NeoGsmMainBoardId" serializeAs="String"> <value>1500067240999999</value> </setting> <setting name="NeoGsmUserCode" serializeAs="String"> <value>1234</value> </setting> <setting name="NeoGsmTcpCode" serializeAs="String"> <value>dac281bf43999999</value> </setting> <setting name="RunAsService" serializeAs="String"> <value>False</value> </setting> <setting name="Simulation" serializeAs="String"> <value>False</value> </setting> </X.NEO.API.Properties.Settings> </applicationSettings>
Parametry związane z urządzaniem NeoGsm nie będę omawiał a pozostałe to:
WebServerPrefix – prefixy dla naszego API, pod tymi adresami dostępne będzie API i strona informacyjna – jeżeli bedzie to kilka interfejsów, oddzielamy średnikami
RunAsService – czy usługa będzie uruchomiona jako serwis czy jako aplikacja konsolowa [True|False]
Simulation – odpala aplikacje w trybie symulacji, działa tylko WebServer bez połączenia z centralką alarmową [True|False] - Parametry powiadomień systemów zewnętrznych (np. DOMOTICZ / HOME ASSISTANT) – znajdują się w pliku notification.xml – tam raczej wszystko jest jasne, jeśli nie proszę o informację zwrotną.
<?xml version="1.0" encoding="utf-8"?> <Notification xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Inputs> <NotificationInput> <Id>0</Id> <OnActivate>http://192.168.1.101:8080/json.htm?type=command&param=udevice&idx=236&svalue=1</OnActivate> <OnDeactivate>http://192.168.1.101:8080/json.htm?type=command&param=udevice&idx=236&svalue=0</OnDeactivate> </NotificationInput> </Inputs> <Zones> <NotificationZone> <Id>0</Id> <OnArm>http://user:password@192.168.0.1:8080/json.htm?type=command&param=udevice&idx=3&svalue=0</OnArm> <OnDisarm>http://user:password@192.168.0.1:8080/json.htm?type=command&param=udevice&idx=3&svalue=1</OnDisarm> </NotificationZone> </Zones> </Notification>
- Parametry logowania zdarzeń znajdują się w pliku NLOG.config – instrukcja jak go modyfikować znajduje się pod adresem: https://nlog-project.org/
Po uruchomieniu aplikacji, pod adresem wskazanym w parametrze WebServerPrefix dostępna będzie strona API.
Aplikacja jest w wersji mocno rozwojowej – najnowsza jej wersja działa już produkcyjnie ale czekam na Wasze pytania, propozycje modyfikacji.
A jak cenowo w porównaniu do ETHM-1Plus?
~300zł taniej … ale wg mojego sprzedawcy otrzymujemy w zamian dużo nowocześniejszy sprzęt.
Sprzęt rokuje. Będę pisał o możliwościach.
A jakie plusy w stosunku do integry? Bo mam już alarm satela ale bez możliwości integracji z Domoticzem i szukam alternatywy
Nie znam SATEL’a.
Ciężko mi porównać.
Mogę za to odpowiedzieć na wszelkie pytania w stylu: czy w ROPAM’ie można to zrobić.
a będzie działać z ROPAM optimaGSM?
Nie mam optimy – nie potwierdzę. Zawsze można odpalić aplikację i sprawdzić (działa również na ms windows). Z tego co pamiętam, producent zaleca korzystać z protokołu Modbus. Więcej tu: https://ropam.com.pl/forum/index.php?topic=564.0
Siema, wygląda to na kawał dobrej roboty. Możesz wrzucić kod źródłowy gdzieś (github itp.)?
muszę się nauczyć githuba, ale chętnie podam się edukacji, pomożesz?
Witaj,
Próbowałem uruchomić Twój program – niestety nie jestem pobrać żadnego statusu.
Centrala mówi mi, że się połączyłem ale to i tak nic nie zmieniło. Poniżej log z działania aplikacji:
20200119_155424 Info:Logowanie, próba 14
20200119_155424 Info:ReceiveFrame [4]
20200119_155424 Info:Łączę się z 192.168.1.134:9999 via IPV4
20200119_155424 Info:TryLogin [2]
20200119_155426 Info:Probem z podłączeniem ….
20200119_155426 Info:Error: The operation has timed out.
20200119_155426 Info:Czekam 3[s] …
20200119_155429 Info:Łączę się z 192.168.1.134:9999 via IPV4
20200119_155431 Info:Probem z podłączeniem ….
20200119_155431 Info:Error: The operation has timed out.
20200119_155431 Info:Czekam 3[s] …
20200119_155434 Info:Łączę się z 192.168.1.134:9999 via IPV4
20200119_155436 Info:Probem z podłączeniem ….
20200119_155436 Info:Error: The operation has timed out.
20200119_155436 Info:Czekam 3[s] …
20200119_155439 Info:Łączę się z 192.168.1.134:9999 via IPV4
20200119_155439 Info:Logowanie
20200119_155439 Info:Logowanie C1
20200119_155440 Info:Logowanie C2
20200119_155440 Info:Logowanie C3
20200119_155440 Info:LoginCentral [1]
20200119_155440 Info:TryLogin [1]
20200119_155440 Info:SendFrame[1]
20200119_155440 Info:Frame.ToBytes()[1]
20200119_155440 Info:Frame.ToBytes()[2]
20200119_155440 Info:SendFrame[1.1]
20200119_155443 Info:ReceiveFrame [1]
20200119_155443 Info:TryLogin [2]
20200119_155443 Info:LoginCentral.ok
20200119_155443 Info:LoginCentral [2]
20200119_155443 Info:LoginCentral [1]
20200119_155443 Info:TryLogin [1]
20200119_155443 Info:SendFrame[1]
20200119_155443 Info:Frame.ToBytes()[1]
20200119_155443 Info:Frame.ToBytes()[2]
20200119_155443 Info:SendFrame[1.1]
20200119_155443 Info:ReceiveFrame [1]
20200119_155447 Info:ReceiveFrame [1]
20200119_155447 Info:TryLogin [2]
20200119_155447 Info:LoginCentral.ok
20200119_155447 Info:LoginCentral [2]
20200119_155447 Info:LoginCentral [1]
20200119_155447 Info:TryLogin [1]
20200119_155447 Info:SendFrame[1]
20200119_155447 Info:Frame.ToBytes()[1]
20200119_155447 Info:Frame.ToBytes()[2]
20200119_155447 Info:SendFrame[1.1]
20200119_155447 Info:ReceiveFrame [1]
20200119_155447 Info:ReceiveFrame [1]
20200119_155447 Info:TryLogin [2]
20200119_155447 Info:LoginCentral.ok
20200119_155447 Info:LoginCentral [2]
20200119_155448 Info:Logowanie C4
20200119_155448 Info:Problem z logowaniem, czekam 3 [sek] …
20200119_155451 Info:Logowanie, próba 15
20200119_155451 Info:Łączę się z 192.168.1.134:9999 via IPV4
z tego co widze w logu, apka się nie łączy z alarmem.
właściwości w pliku xneoapi.exe.config są dobrze ustawione?
Witaj,
Dzięki za odpowiedź. Jak wpisywałem specjalnie źle w konfiguracji to od razu widziałem w logu zakończenie połączenia i info o błędnym loginie. Natomiast jak już pisałem na panelu dotykowym widzę, że nawiązano połączenie z centralą z adresu z którego uruchamiam program.
Czy jest możliwość ustawienia większego poziomu logowania ?
Z góry dziękuje za pomoc
Jaqb
Dodatkowe informacje wysyłam na priv.
Witaj,
Bardzo zaciekawił mnie Twój program do komunikacji z NeoGSMip. Czy byłaby możliwość udostępnienia dokumentacji api lub samych kodów źródłowych? Rozczarowałem się aplikacją ROPAM’a na androida do centrali NeoGSMip, chcę więc na własne potrzeby napisać coś bardziej użytecznego.
Z góry dziękuję za pomoc
Krzysiek
wrzuciłem kod na GH
Witam.
Jako że powoli zaczynam zabawę z HA, a w domu mam zainstalowany system oparty na NeoGSM-IP, to właśnie jestem na etapie próby zintegrowania alarmu z HA. Pobrałem archiwum z punktu nr 3 “ropam-neogsm-ip-dmoticz-intergracja”, poustawiałem parametry w pliku konfiguracyjnym, uruchomiłem aplikację jako admininstrator, a tu w logach aplikacja zaczyna łączyć się nie z moją centralą a z jakąś centralą której IP to “foo.xview.pl” na porcie 5003 i z jakimś innym hasłem oraz ID centrali.
Na drugi ogień poszło archiwum z początku opisu nazwane jako “ropam-neogsm-domoticz-homeassistant-integrator” i po skonfigurowaniu parametrów centralki po uruchomieniu aplikacji dostaję że zalogowani pomyślnie do centrali ane na getstatus mam brak danych”.
Czy coś robię nie tak? (parametry centralki oczywiście na 100% poprawne, system Windows 10 a docelowo hass.io)
weź sobie nowy kod z GH. jest mocno uproszczony i mega stabilny.
Hej.
Dalej rozwijasz projekt ?
Nie:-) wręcz go mocno uprościłem, ustabilizowałem (czasem zrywał połączenie) i przepisałem na .NET Core.
Ja korzystam wyłącznie z odczytywania stanów pirów.
Jeśli potrzebujesz coś więcej – https://github.com/tjaworski997/X.RopamNeo
A jak szybko takie zmiany Pirów się pojawiaja w Domoticzu ?
I czy można okreslić stan zazbrojenia ?
Dzięki Pozdraweiam !
skan alarmu realizowany jest w interwałach 1 sekundowych, więc maksymalny czas opóźnienia to 1 sek.
Z DOMOTICZ nie korzystam, przesiadłem się na HA. W HA nie ma opóźnień.
co do dozbrojenia nie robiłem, ale w zasadzie kod który dałem na GH pozwala na wszystko na co pozwala aplikacja mobilna ROPAM.