Postanowiłem zainstalować w domu alarm:-)

Cel?

Zabezpieczenie mieszkania przy poniższych założeniach:

  1. NAJWAŻNIEJSZE – Alarm ma być niezależny od domowego systemu zarządzania, DOMOTICZ nie działa – alarm działa
  2. Alarm ma pozwolić na wykorzystanie podłączonych pirów, innych czujników w systemie DOMOTICZ (analiza ruchu, zarządzanie oświetleniem)
  3. DOMOTICZ / HOME ASSISTANT  powinien umieć sterować wyjściami OUT alarmu
  4. 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)
  5. 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:

  1. Instalujemy środowisko MONO (użyłem pełnej wersji, bo będę się jeszcze mocniej bawił)
    sudo apt-get install mono-complete
  2. Instalujemy MONO-SERVICE
    sudo apt-get install mono-4.0-service
  3. Pobieramy pliki programu do integracji z tego linka: ropam-neogsm-ip-dmoticz-intergracja
  4. Wrzucamy pobrane pliki (po rozpakowaniu) do docelowego katalogu (u mnie /home/pi/@scripts/neo/)
  5. 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
    
  6. Nadajemy uprawnienia do uruchamiania skryptu
    sudo chmod +x xneoapi.sh
  7. Edytujemy plik /etc/rc.local wpisując:
    sudo nano /etc/rc.local
  8. 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.

  1. 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]

  2. 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&amp;param=udevice&amp;idx=236&amp;svalue=1</OnActivate>
    <OnDeactivate>http://192.168.1.101:8080/json.htm?type=command&amp;param=udevice&amp;idx=236&amp;svalue=0</OnDeactivate>
    </NotificationInput>
    </Inputs>
    <Zones>
    <NotificationZone>
    <Id>0</Id>
    <OnArm>http://user:password@192.168.0.1:8080/json.htm?type=command&amp;param=udevice&amp;idx=3&amp;svalue=0</OnArm>
    <OnDisarm>http://user:password@192.168.0.1:8080/json.htm?type=command&amp;param=udevice&amp;idx=3&amp;svalue=1</OnDisarm>
    </NotificationZone>
    </Zones>
    </Notification>
  3. 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.

Od jakiegoś czasu rozglądałem się za kamerką IP z możliwością zdalnego obracania w możliwie najszerszym zakresie.

Wybór padł na OVERMAX CAMSPOT 3.3.

Dlaczego?

Cena:)

Sama kamerka działa bardzo przywozicie.

Dostarczone oprogramowanie (windows) pozwala na podgląd, zdalne obracanie kamerką oraz komunikację dwu-stroną – kamera wyposażona jest zarówno w głośnik jak i mikrofon (mocno marna jakość)

Dodatkowo producent dostarcza wtyczkę activeX dla IE pozwalającą wykorzystać wszystkie funkcjonalności kamery z poziomu przeglądarki.

Pozostałe przeglądarki oferują podgląd wraz z możliwością obracania – co  i tak jest dobrym rezultatem.

W nocy 6 diod podczerwieni skutecznie rozświetla pomieszczenie o wymiarach ~6×3.

Kamerka została u mnie podpięta pod SYNOLOGY Surveillance Station  i DOMOTICZ

I jak to zawsze u mnie, sprzęt kupowany, nie do końca wspierany jest przez dostawców oprogramowania, więc zdradzam co należy uczynić by się cieszyć zakupem.

  1. SYNOLOGY Surveillance Station – kamerka działa prawidłowo jako urządzenie ONVIF – tu nie było większych problemów.Wybieramy odpowiednio:
    Marka – [ONVIF]
    Model kamery:  [Generic_ONVIF]i działa.
  2. Domoticz – i tu pojawiły się schody. Kamera w standardzie dostarcza  plik w formacie MJPEG pod adresem:videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0i faktycznie tak jest.

    MJPEG – (Motion JPEG, M-JPEG) – standard kompresji danych, obraz składa się z szeregu pojedynczych obrazów w formacie JPEG. Każda ramka jest oddzielnie kompresowana, nie ma też kodowania między-klatkowego (np. analizy ruchu/predykcji która występuje choćby w H.264). Jest to metoda wymagająca małej mocy obliczeniowej – nie obciąża procesora w rejestratorze, nie potrzebuje też wiele pamięci operacyjnej

    Niestety Domoticz kiepsko sobie radzi z tym formatem, niby przy parametryzowaniu kamery wyświetla prawidłowo przechwyconą klatkę, ale w podglądzie już nie.
    Dokumentacji zero, więc na chybił trafił rozpocząłem poszukiwania rozwiązania i po kompilacji kilkunastu adresów z innych modeli, okazało się, że OverMax Camspot 3.3 ma zwykłego jpega w lokalizacji:

    cgi/snapshot.cgi&user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0

    po wprowadzeniu do Domoticz .. działa:-)

 

 

 

 

Jeśli nie posiadasz jeszcze czujnika stężenia cząstek, zanieczyszczenia powietrza – nic straconego.

Dzięki sieci AIRLY możesz czerpać dane z czujników innych użytkowników.

Jak to zrobić?

  1. Uruchamiamy konsolę.
  2. Przechodzimy do katalogu przeznaczonego na pluginy w systemie DOMOTICZ, pobieramy najnowszą wersję pluginu AIRLY-DOMOTICZ a następnie restartujemy naszą usługę
    cd domoticz/plugins
    git clone https://github.com/lrybak/domoticz-airly
    sudo service domoticz.sh restart
    
  3. Zakładamy konto na https://developer.airly.eu/login
  4. Pobieramy API KEY ze strony https://developer.airly.eu/api
  5. W systemie DOMOTICZ dodajemy nowy sprzęt KONFIGURACJA>SPRZĘT
    • typ domoticz-airly
    • Airly API key pobrany ze strony
    • Airly Sensor id: identyfikator czujnika który chcemy monitorować – pobieramy go ze strony https://airly.eu/beta/pl/ , klikając na punkcie który chcemy monitorować i kopiując ID z adresu – patrz rysunek poniżej

  6. Po dodaniu sprzętu pojawi się on czujnikach użytkowych

 

 

 

 

 

Czasami potrzebujemy wiedzieć czy nasze urządzenia sieciowe takie router, przekaźniki SONOFF działają poprawnie – są widoczne w sieci.  Osobiście też, lubię posiadać wiedzę o ewentualnym braku internetu – pomocne przy negocjacjach z dostawcą internetu.

Tradycyjnie możemy realizować to za pomocą pinga. Możemy też do tego celu wykorzystać naszą instalację DOMOTICZ.

Jak to zrobić?

  1. Konfiguracja > Sprzęt > Typ: System Alive Checker (Ping) [1]
  2. Po dodaniu, pojawia się on na naszej liście sprzętów, klikamy [Konfiguracja]
  3. W węzłach podajemy adresy IP monitorowanych zasobów.  podając również limit czasu – przez ile będziemy czekać na pinga [2]
  4. Po wykonaniu tych czynności DOMOTICZ doda nam nowe urządzenia o nazwach zdefiniowanych na etapie definicji węzłów.
  5. Dodajemy je do pulpitu (zielona strzałka), podając czytelne nazwy [3]
  6. Po pojawieniu się w pulpicie [4] –  cieszymy się logami z niedziałających urządzeń:-) [5]

 

* W przypadku przeglądania logów, będą widoczne zmiany stanu pingowania, a nie każdy pojedynczy ping.

 

Rysunki wspomagające:

[1]

[2]

[3]

[4]

[5]

Parę lat temu nabyłem dysk sieciowy firmy SYNOLOGY model DS212j z procesorem MARVELL Kirkwood 88F6281. Cel – domowe miejsce przechowywania danych. Warto było.

Po przeprowadzce, zarażony wizją budowania inteligentnego domu  postanowiłem dać mu nowe zadanie – hostowanie DOMOTICZa.

Dlaczego DOMOTICZ?

Po pierwsze dokumentacja – spora, po drugie prostota, no i po trzecie … była kompilacja pod SYNOLOGY.

Dlaczego hostować DOMOTICZ na  SYNOLOGY?  Niska cena wejścia, po prostu już go mam.

Odpowiedni pakiet SPK pobrać można z lokalizacji http://www.jadahl.com/domoticz_beta_6.2/

Instalacja sprowadza się do wskazania lokalizacji i … tyle.

DOMOTICZ możecie oczywiście zainstalować na maszynie z WINDOWS 7,10 i tam realizować swoje pomysły, oczywiście pamiętając, że  w układzie docelowym powinniście znaleźć mu jakieś serwerowe miejsce.

Goły DOMOTICZ, bez sensorów, przekaźników potrafi nie wiele, ale można już go wykorzystać to kilku celów.

Co np?

MONITOROWANIE ZASOBÓW SIECIOWYCH