Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Mobotix T24 klingeln mit OpenHab verarbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - Mobotix T24 klingeln mit OpenHab verarbeiten

    Hallo

    Ich hatte gerade ein wenig Zeit und habe das Klingelsignal der T24 über meinen Openhab Server auf den Bus gebracht. Vielleicht ist das für den Einen oder Anderen interessant

    Somit kann ich nun mit dem Signal machen was ich möchte (Licht blinken lassen, XMPP Nachrichten verschicken ... oder sofort alle Rolläden schließen lassen*fg*)

    Die Beschreibung, was an der T24 zu machen ist findet man z.B. bei Loxone. klick leider ist die Anleitung schon etwas veraltet und passt nicht unbedingt auf die aktuelle Software...

    Es wird erst ein Event generiert, hier z.B. eine einfache TCP/IP Nachricht mit dem Text "ON" welches an den OpenHab Server geschickt wird.
    Der Name wird frei vergeben (openHab Notification) und die Einstellungen wie auf dem Screenshot gemacht.

    Übertragungsprofile/Profile für Netzwerkmeldungen ->Neues Profil



    Ich betreibe meinen OpenHab Server unter 192.168.0.110 und das TCP Binding lauscht auf Port 3000

    Dann dieses Profil (openHab notify) einem Event zuordnen (Signal:CameraBellButton = der Klingelknopf wurde gedrückt)

    Setup /Ereignissteuerung /Aktionsgruppen-Übersicht -> Neue Gruppe



    Hier eine neue Aktion hinzufügen und die im vorherigen Schritt erzeugte Netzwerk Meldung (openHab Notification) auswählen.

    -------------------
    Im eurem OpenHab Server muss das TcpIP Binding aktiv sein. Ich habe hierzu das TCP Binding in den Addon Ordner kopiert und die openhab.cfg folgerndermaßen angepasst.

    PHP-Code:
    ######################### TCP - UDP Binding ###################################
    #
    # all parameters can be applied to both the TCP and UDP binding unless 
    # specified otherwise

    # Port to listen for incoming connections
    tcp:port=3000

    # Share connections within the Item binding configurations
    tcp:itemsharedconnections=true

    # Share connections between Item binding configurationswin
    tcp:bindingsharedconnections=true

    # Share connections between inbound and outbound connections
    tcp:directionssharedconnections=false

    # Allow masks in ip:port addressing, e.g. 192.168.0.1:* etc
    tcp:addressmask=true

    # Perform all write/read (send/receive) operations in a blocking mode, e.g. the binding
    # will wait for a reply from the remote end after data has been sent
    tcp:blocking=false

    # Timeout - or 'refresh interval', in milliseconds, of the worker thread
    tcp:refreshinterval=250

    # Update the status of Items using the response received from the remote end (if the
    # remote end sends replies to commands)
    tcp:updatewithresponse=false 
    dann habe ich schließlich noch ein neues Item "Klingel" in meinem Item File definiert:

    PHP-Code:
    /*Klingel*/
    Switch  Klingel {tcp="<[ON:192.168.0.101:*:'REGEX((.ON))']"autoupdate="false" // for a Switch Item that captures the ringing from the T24 Mobotix  that connects to openHAB 
    hierbei ist zu beachten, dass die spitze Klammer "<" in die richtige Richtung zeigt, und dass 192.168.0.101 die IP der Mobotix ist. Der "*" nach der IP sorgt dafür, dass OpenHab requests von jedem Source Port akzeptiert.

    autoupdate="false" habe ich verwendet, da ich nicht möchte, dass der Zustand des Items dauerhaft auf "on" bleibt. Ob das so klappt muss ich noch sehen.

    Mit diesem Item kann man nun Regeln definieren wie man möchte.

    Hoffentlich war das einigermaßen verständlich und hilfreich.

    #2
    Hallo,

    vielen Dank für die tolle Anleitung. Habe gerade an genau der gleichen Funktionalität gearbeitet und hatte noch Probleme mit der Konfiguration von dem TCP Binding.

    Funktioniert alles wie in der Anleitung beschrieben. Nur beim Klingel Item musste ich die Regex verändern, ich habe statt (.ON) jetzt nur (ON) genommen. Als Text wird nur ON geschickt und durch den . hätte er einen weiteren Character am Beginn erwartet.

    Auf jeden Fall blinken jetzt meine Lichter wenn jemand an der Tür läutet ;-)

    Danke nochmal!

    Kommentar


      #3
      Freut mich

      Mit der Regex hast du Recht... seltsam, dass es bei mir damit keinen Fehler gibt. Und ebenfalls seltsam, dass ich meinen Beitrag nicht editieren kann...

      Ich bastele übrigens jetzt auch an der XMPP Anbindung. Eine Nachricht kann ich schon schicken, nur das Mobotix Bild (ein Foto würde ja schon reichen) hängt er nicht mit an.

      Kommentar


        #4
        Hi,

        Zitat von Tulamidan Beitrag anzeigen
        Hoffentlich war das einigermaßen verständlich und hilfreich.
        sehr cool!

        Hättest Du Lust das How-To vielleicht in der Samples-Sektion des openHAB Wiki zu verewigen?

        Gruß,

        Thomas E.-E.
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #5
          Gute Idee, ist online

          Kommentar


            #6
            Danke! Wo genau?

            Gruß, Thomas E.-E.
            Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

            Kommentar


              #7
              Et voilà hier

              Kommentar


                #8
                jo, danke Dir!
                Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                Kommentar


                  #9
                  Ich habe mich gerade geärgert, dass ich beim Verlassen des Hauses die Kellertüre vergessen hatte. Ich habe zwar einen Sensor an der Türe und das xmpp binding schickt mir auch eine Push Nachricht... aber irgendwie hat das wohl auch nicht ausgereicht.

                  -> Jetzt beschwert sich auch die Mobotix, dass ich die Türe offen gelassen habe:

                  Code:
                  Switch Alarm { http=">[ON:GET:http://user:pw@xxx.xxx.xxx.xxx/control/rcontrol?action=[I]sound[/I]]", autoupdate="false" }
                  "sound" ist der Default Sound und kann mit eigenen Geräuschen ersetzt werden. Hier zu müsst ihr den Sound als .wav (oder .al .opus) Datei abspeichern.
                  Die WAV-Datei muß als Mono-Datei im A-Law-Format mit 8kHz Samplingrate vorliegen

                  Dann könnt ihr die Datei im Admin Menu der WebUI hochladen: (Audio&Voip->Audiomeldungen aufnehmen) und das File steht unter dem Dateinamen (ohne Endung) zur verfügung. "sound" einfach mit diesem Namen ersetzen.


                  Kommentar


                    #10
                    Hi Tula,
                    klasse Anleitung!
                    Ich hab meine T24 so eingestellt, dass sie vor und nach dem Klingeln Einzelbilder (JPGs) schießt und auf dem NAS abspeichert. Hast du eine Idee wie ich die mit deiner Anleitung über openhab nun weiter transportieren könnte (Visu bzw. Handy?)
                    Danke und Grüße
                    Mitch

                    Kommentar


                      #11
                      Hmm... also ich lasse sie mir von der T24 per email schicken. Anonsten würde ich zum Exec binding raten, damit kannst du munter kopieren. XMPP gehtl leider nicht mit hangouts, ansosten wäre das natürlich auch schick...

                      Kommentar


                        #12
                        Hallo zusammen,
                        ich bekomme das ganze unter OH2 nicht zum laufen.
                        In der T25 Kamera unter Test der Netzwerk-Konfiguration wird die Netzwerkmeldung mit grün bestätigt
                        Netzwerkmeldung erfolgreich!
                        item:
                        Code:
                        Switch Klingel (gSensor) { tcp="<[ON:192.168.178.200:*:'REGEX((ON))']", autoupdate="false" }
                        In OH bekomme ich aber immer folgenden Fehler.

                        openhab.log
                        Code:
                        2018-06-07 15:19:57.833 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'home.items'
                        2018-06-07 15:19:57.982 [INFO ] [b.core.service.AbstractActiveService] - TCP Refresh Service has been shut down
                        2018-06-07 15:19:58.677 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'home.items'
                        2018-06-07 15:19:59.486 [INFO ] [b.core.service.AbstractActiveService] - TCP Refresh Service has been started
                        2018-06-07 15:19:59.488 [WARN ] [ing.tcp.AbstractSocketChannelBinding] - When using address masks we will not verify if we are already listening to similar incoming connections
                        2018-06-07 15:19:59.490 [INFO ] [ing.tcp.AbstractSocketChannelBinding] - We will accept data coming from the remote end 192.168.178.200:*
                        
                        2018-06-07 15:19:59.492 [ERROR] [b.core.service.AbstractActiveService] - [B]Error while executing background thread TCP Refresh Service[/B]
                        java.nio.channels.NotYetBoundException
                            at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:237)[:1.8.0_152]
                            at org.openhab.binding.tcp.AbstractSocketChannelBinding.execute(AbstractSocketChannelBinding.java:1402)[203:org.openhab.binding.tcp:1.10.0]
                            at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:157)[182:org.openhab.core.compat1x:2.1.0]
                            at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:169)[182:org.openhab.core.compat1x:2.1.0]
                        sobald ich das item auskommentiere ist der Fehler weg.

                        tcp.cfg Config
                        Code:
                        # all parameters can be applied to both the TCP and UDP binding unless
                        # specified otherwise
                        # Port to listen for incoming connections
                        tcp:port=3000
                        # Cron-like string to reconnect remote ends, e.g for unstable connection or remote ends
                        #reconnectcron=0 0 0 * * ?
                        # Interval between reconnection attempts when recovering from a communication error,
                        # in seconds
                        #retryinterval=5
                        # Queue data whilst recovering from a connection problem (TCP only)
                        #queue=true
                        # Maximum buffer size whilst reading incoming data
                        #buffersize=1024
                        # Share connections within the Item binding configurations
                        tcp:itemsharedconnections=true
                        # Share connections between Item binding configurations
                        tcp:bindingsharedconnections=true
                        # Share connections between inbound and outbound connections
                        tcp:directionssharedconnections=false
                        # Allow masks in ip:port addressing, e.g. 192.168.0.1:* etc
                        tcp:addressmask=true
                        # Pre-amble that will be put in front of data being sent
                        #preamble=
                        # Post-amble that will be appended to data being sent
                        #postamble=\r\n
                        # Perform all write/read (send/receive) operations in a blocking mode, e.g. the binding
                        # will wait for a reply from the remote end after data has been sent
                        tcp:blocking=false
                        # timeout, in milliseconds, to wait for a reply when initiating a blocking write/read
                        # operation
                        #timeout=3000
                        # Update the status of Items using the response received from the remote end (if the
                        # remote end sends replies to commands)
                        tcp:updatewithresponse=false
                        # Timeout - or 'refresh interval', in milliseconds, of the worker thread
                        tcp:refreshinterval=250
                        # Timeout, in milliseconds, to wait when "Selecting" IO channels ready for communication
                        #selecttimeout=1000
                        # Used character set
                        #charset=ASCII
                        Zuletzt geändert von morpeuse; 07.06.2018, 14:46.

                        Kommentar


                          #13
                          Für mich sieht die Definition auch komisch aus. eingehend gibt es eigentlich kein Kommando, das wird ja gerade mit dem REGEX ausgefiltert. Probiere bitte mal
                          Code:
                          Switch Klingel (gSensor) { tcp="<[192.168.178.200:*:'REGEX((.*))']", autoupdate="false" }
                          und wenn das funktioniert (d.h. es erscheint zumindest kurzzeitig das ON im Item Klingel), kannst Du das 'REGEX((.*))' durch 'REGEX((ON))' ersetzen. Vorne gehört aber kein ON: davor (siehe auch die Doku, ganz am Ende ist ein Beispiel für eingehende Nachrichten)

                          Kommentar


                            #14
                            Hallo morpheuse

                            Bekommst du den Log eintrag, wenn es OH startet?

                            Auf welchem System läuft dein OH?

                            Kann es ungehindert Ports abfragen (kann z.B. bei Docker oder firewalls Probleme machen)

                            Ist 192.168.178.200 die IP deiner Mobitix?

                            Alternativ kannst du ein TCP Programm für Android o.ä. mal installieren und dessen IP in der OH Config eintragen. Damit kannst du dann testen ob die TCP messge erfolgreich gesendet wird.

                            zum Syntax... ich kann nur sagen, dass bei mir der oben genannte syntax seit 3 Jahren unverändert ist und mittlerweile bei OH 2.2 auch noch funktioniert. Ob das ON: richtig oder wichtig ist... Never change a running system...

                            Vielleicht verschluckt er sich an der (gSensor) Gruppe? lass sie vielleicht mal weg.

                            PHP-Code:
                            Switch Klingel {tcp="<[ON:192.168.178.200:*:'REGEX((ON))']"autoupdate="false"


                            Zuletzt geändert von Tulamidan; 07.06.2018, 17:39.

                            Kommentar


                              #15
                              Zitat von udo1toni Beitrag anzeigen
                              Code:
                              Switch Klingel (gSensor) { tcp="<[192.168.178.200:*:'REGEX((.*))']", autoupdate="false" }
                              und wenn das funktioniert (d.h. es erscheint zumindest kurzzeitig das ON im Item Klingel), kannst Du das 'REGEX((.*))' durch 'REGEX((ON))' ersetzen. Vorne gehört aber kein ON: davor (siehe auch die Doku, ganz am Ende ist ein Beispiel für eingehende Nachrichten)
                              ich habe beides ausprobiert und der Fehler besteht weiterhin.

                              Zitat von Tulamidan Beitrag anzeigen
                              Bekommst du den Log eintrag, wenn es OH startet?
                              den Eintrag bekomme ich wenn das home.items absichere wird


                              Zitat von Tulamidan Beitrag anzeigen
                              Auf welchem System läuft dein OH?
                              auf meinem raspberry pi 3


                              Zitat von Tulamidan Beitrag anzeigen
                              Ist 192.168.178.200 die IP deiner Mobitix?
                              Ja das ist die IP meiner Mobotix Kamera.


                              Zitat von Tulamidan Beitrag anzeigen
                              Kann es ungehindert Ports abfragen (kann z.B. bei Docker oder firewalls Probleme machen)
                              Wo kann ich das Überprüfen bzw einstellen?


                              Zitat von Tulamidan Beitrag anzeigen
                              Alternativ kannst du ein TCP Programm für Android o.ä. mal installieren und dessen IP in der OH Config eintragen. Damit kannst du dann testen ob die TCP messge erfolgreich gesendet wird.
                              folgendes habe ich probiert.
                              Code:
                              Switch Klingel (gSensor) { tcp=">[192.168.178.123:3000:'REGEX((ON))']", autoupdate="false" }
                              Es kommt jeweils eine Nachricht in der TCP Konsole an, wenn ich den Schalter ein oder ausschalte.


                              Code:
                              2018-06-08 10:48:32.217 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'home.items'
                              2018-06-08 10:48:33.300 [INFO ] [b.core.service.AbstractActiveService] - TCP Refresh Service has been started
                              2018-06-08 10:48:33.303 [INFO ] [ing.tcp.AbstractSocketChannelBinding] - Connecting the channel Channel [item=Klingel, command=5, direction=OUT, remote=/192.168.178.123:3000, buffer=, isBlocking=false, isReconnecting=false, channel=, host=192.168.178.123, port=3000]
                              2018-06-08 10:48:33.306 [ERROR] [b.core.service.AbstractActiveService] - Error while executing background thread TCP Refresh Service
                              java.nio.channels.NotYetBoundException
                                  at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:237)[:1.8.0_152]
                                  at org.openhab.binding.tcp.AbstractSocketChannelBinding.execute(AbstractSocketChannelBinding.java:1402)[203:org.openhab.binding.tcp:1.10.0]
                                  at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:157)[182:org.openhab.core.compat1x:2.1.0]
                                  at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:169)[182:org.openhab.core.compat1x:2.1.0]
                              2018-06-08 10:48:33.559 [ERROR] [b.core.service.AbstractActiveService] - Error while executing background thread TCP Refresh Service
                              java.nio.channels.NotYetBoundException
                                  at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:237)[:1.8.0_152]
                                  at org.openhab.binding.tcp.AbstractSocketChannelBinding.execute(AbstractSocketChannelBinding.java:1402)[203:org.openhab.binding.tcp:1.10.0]
                                  at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:157)[182:org.openhab.core.compat1x:2.1.0]
                                  at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:169)[182:org.openhab.core.compat1x:2.1.0]
                              2018-06-08 10:48:33.812 [INFO ] [ing.tcp.AbstractSocketChannelBinding] - The channel for /192.168.178.123:3000 is now connected
                              2018-06-08 10:48:33.881 [ERROR] [b.core.service.AbstractActiveService] - Error while executing background thread TCP Refresh Service
                              java.nio.channels.NotYetBoundException
                                  at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:237)[:1.8.0_152]
                                  at org.openhab.binding.tcp.AbstractSocketChannelBinding.execute(AbstractSocketChannelBinding.java:1402)[203:org.openhab.binding.tcp:1.10.0]
                                  at org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:157)[182:org.openhab.core.compat1x:2.1.0]
                                  at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:169)[182:org.openhab.core.compat1x:2.1.0]

                              Kommentar

                              Lädt...
                              X