Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX Binding im Router Mode?

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

    KNX Binding im Router Mode?

    Hi zusammen,

    hat hier jemand das KNX-Binding erfolgreich im Router Modus an einem KNX IP-Router laufen?

    Irgendwie tut sich da bei mir garnix. Auch das Log ist ziemlich still. Im Tunnel Modus hat es vorhin geklappt, nur komme ich dann mit der ETS nicht gleichzeitig drauf.

    Router ist der ABB IPR/S 2.1

    Beste Grüße,
    Artur
    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

    http://cleveres-heim.de

    #2
    Code:
    ########## KNX Binding
    knx:ip=172.30.3.4
    knx:type=ROUTER
    Code:
    2015-12-30 16:58:23.150 [INFO ] [.b.knx.internal.bus.KNXBinding] - Calimero library version 2.2.0-alpha
    2015-12-30 16:58:23.152 [DEBUG] [.k.i.bus.KNXBusReaderScheduler] - Starting reader task.
    2015-12-30 16:58:23.164 [DEBUG] [.k.i.bus.KNXBusReaderScheduler] - Starting schedule executor.
    2015-12-30 16:58:23.164 [DEBUG] [.KNXBindingDatapointReaderTask] - Autorefresh: Waiting for new item in reader queue
    2015-12-30 16:58:23.168 [DEBUG] [b.k.i.connection.KNXConnection] - KNXBinding configuration present. Setting up KNX bus connection.
    2015-12-30 16:58:23.186 [DEBUG] [b.k.i.connection.KNXConnection] - Not connected yet. Trying to connect.
    Openhab läuft auf 172.30.3.3
    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

    http://cleveres-heim.de

    Kommentar


      #3
      Ich habe keinen knx-Router, aber zwei Tipps, was es sein könnte:

      Tipp1: setze mal
      Code:
      knx:localIp=172.30.3.3
      Tipp2: eventuell passt der Port nicht,
      Code:
      knx:port=3671
      (wenn die Zeile nicht da steht, nimmt das knx-Binding diesen Port als default)

      Ich bin mir grade überhaupt nicht sicher, aber ist der Router-Mode nicht per Definition Multicast? Dann wäre die IP vom knx-Router nämlich (nur für den Router-Mode) eine andere, 224-239.x.y.z oder so...

      Kommentar


        #4
        Zitat von udo1toni Beitrag anzeigen
        Ich bin mir grade überhaupt nicht sicher, aber ist der Router-Mode nicht per Definition Multicast? Dann wäre die IP vom knx-Router nämlich (nur für den Router-Mode) eine andere, 224-239.x.y.z oder so...
        Das habe ich vorhin auch gesehen, nachdem ich mir einfach den Quellcode zur KNXConnection Klasse angeschaut habe. Wenn ich in der Config einfach nur

        Code:
        ########## KNX Binding
        #knx:ip=172.30.3.4
        knx:type=ROUTER
        #knx:localIp=172.30.3.3
        eingebe, also ip und localIp auskommentiere, dann geht das Binding auf die Default Multicast IP.

        Code:
        2015-12-30 17:58:13.429 [INFO ] [.b.knx.internal.bus.KNXBinding] - Calimero library version 2.2.0-alpha
        2015-12-30 17:58:13.431 [DEBUG] [.k.i.bus.KNXBusReaderScheduler] - Starting reader task.
        2015-12-30 17:58:13.442 [DEBUG] [.k.i.bus.KNXBusReaderScheduler] - Starting schedule executor.
        2015-12-30 17:58:13.442 [DEBUG] [.KNXBindingDatapointReaderTask] - Autorefresh: Waiting for new item in reader queue
        2015-12-30 17:58:13.445 [DEBUG] [b.k.i.connection.KNXConnection] - KNXBinding configuration present. Setting up KNX bus connection.
        2015-12-30 17:58:13.452 [DEBUG] [b.k.i.connection.KNXConnection] - Not connected yet. Trying to connect.
        2015-12-30 17:58:13.599 [INFO ] [b.k.i.connection.KNXConnection] - Established connection to KNX bus on 224.0.23.12:3671 in mode ROUTER.
        2015-12-30 17:58:13.618 [DEBUG] [b.k.i.connection.KNXConnection] - Success: connected.
        Soweit so gut. Allerdings klappt die Kommunikation irgendwie weiterhin nicht. Im TUNNEL Mode kann in den Aktor aber schalten.

        Begebe mich jetzt mal auf die Suche, ob denn nicht mein Netzwerk Router die Multicast Kommunikation in der Firewall blockt. Könnte ja auch noch sein.

        PS: Die Wiki Doku werde ich, nachdem ich es im Router Mode ans laufen bekommen habe, etwas erweitern. So richtig klar ist type=ROUTER da nicht beschrieben bzgl. Multicast IP etc.

        Beste Grüße,
        Artur
        Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

        http://cleveres-heim.de

        Kommentar


          #5
          Also ich kann es mir nicht erklären. Hab jetzt mal den ganzen KNX Kram in ein eigenes Log File schreiben lassen. Laut Log alles gut. Aktor schaltet trotzdem nicht. Noch jemand eine Idee?

          Code:
          2015-12-30 23:31:13.776 [DEBUG] - KNX binding has been started.
          2015-12-30 23:31:14.153 [INFO ] - Calimero library version 2.2.0-alpha
          2015-12-30 23:31:14.162 [DEBUG] - Starting reader task.
          2015-12-30 23:31:14.176 [DEBUG] - Starting schedule executor.
          2015-12-30 23:31:14.176 [DEBUG] - Autorefresh: Waiting for new item in reader queue
          2015-12-30 23:31:14.182 [DEBUG] - KNXBinding configuration present. Setting up KNX bus connection.
          2015-12-30 23:31:14.191 [DEBUG] - Not connected yet. Trying to connect.
          2015-12-30 23:31:14.330 [INFO ] - [ManagedService Update Queue] KNXnet/IP Routing 224.0.23.12:3671: multicast loopback mode enabled
          2015-12-30 23:31:14.374 [INFO ] - Established connection to KNX bus on 224.0.23.12:3671 in mode ROUTER.
          2015-12-30 23:31:14.399 [DEBUG] - Success: connected.
          
          2015-12-30 23:32:35.314 [INFO ] - [qtp14639670-109] link 224.0.23.12:3671: send message to 1/0/0, wait for confirmation
          2015-12-30 23:32:35.318 [DEBUG] - [qtp14639670-109] link 224.0.23.12:3671: cEMI L-Data.ind from 0.0.0 to 1/0/0, low priority hop count 6 repeat tpdu 00 81
          2015-12-30 23:32:35.331 [DEBUG] - [qtp14639670-109] KNXnet/IP Routing 224.0.23.12:3671: sending cEMI frame, non-blocking, attempt 1
          2015-12-30 23:32:35.339 [DEBUG] - Received groupWrite Event.
          2015-12-30 23:32:35.340 [INFO ] - [KNXnet/IP receiver] link 224.0.23.12:3671: indication from 0.0.0
          2015-12-30 23:32:35.342 [DEBUG] - [qtp14639670-109] link 224.0.23.12:3671: send to 1/0/0 succeeded
          2015-12-30 23:32:35.343 [DEBUG] - [qtp14639670-109] process link 224.0.23.12:3671: group write to 1/0/0 succeeded
          2015-12-30 23:32:35.339 [DEBUG] - Wrote value 'ON' to datapoint 'command DP 1/0/0 KNX_Test_1, DPT main 0 id 1.001, low priority'
          2015-12-30 23:32:35.743 [INFO ] - [qtp14639670-109] link 224.0.23.12:3671: send message to 1/0/0, wait for confirmation
          2015-12-30 23:32:35.745 [DEBUG] - [qtp14639670-109] link 224.0.23.12:3671: cEMI L-Data.ind from 0.0.0 to 1/0/0, low priority hop count 6 repeat tpdu 00 80
          2015-12-30 23:32:35.747 [DEBUG] - [qtp14639670-109] KNXnet/IP Routing 224.0.23.12:3671: sending cEMI frame, non-blocking, attempt 1
          2015-12-30 23:32:35.749 [DEBUG] - [qtp14639670-109] link 224.0.23.12:3671: send to 1/0/0 succeeded
          2015-12-30 23:32:35.751 [DEBUG] - Wrote value 'OFF' to datapoint 'command DP 1/0/0 KNX_Test_1, DPT main 0 id 1.001, low priority'
          2015-12-30 23:32:35.749 [DEBUG] - Received groupWrite Event.
          2015-12-30 23:32:35.752 [INFO ] - [KNXnet/IP receiver] link 224.0.23.12:3671: indication from 0.0.0
          2015-12-30 23:32:35.759 [DEBUG] - [qtp14639670-109] process link 224.0.23.12:3671: group write to 1/0/0 succeeded
          Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

          http://cleveres-heim.de

          Kommentar


            #6
            Hi zusammen,

            manchmal hilft es eine Nacht drüber zu schlafen, die Gedanken zu sortieren und vor allem einen kleinen aber feinen Kommentar in der Config zu lesen.

            Code:
            # KNX gateway IP address
            # (optional, if serialPort or connection type 'ROUTER' is specified)
            knx:ip=
            
            # Local KNX Binding bus address.
            # Use it, when two or more openHAB Instances are connected to the same KNX bus.
            # (optional, defaults to 0.0.0)
            #knx:busaddr=
            
            # Ignore local KNX Events, prevents internal events coming from
            # 'openHAB event bus' a second time to be sent back to the 'openHAB event bus'.
            # Note: To send back events second time is a Bug, but for backward compatibility,
            # the behavior is not changed.
            # For new installations, its recommend to set "knx:ignorelocalevents=true"
            # (optional, defaults to false)
            #knx:ignorelocalevents=
            
            # KNX IP connection type. Could be either TUNNEL or ROUTER (optional, defaults to TUNNEL)
            # Note: If you cannot get the ROUTER mode working (even if it claims it is connected),
            # use TUNNEL mode instead with setting both the ip of the KNX gateway and the localIp.
            knx:type=
            
            # KNX gateway port (optional, defaults to 3671)
            # Note: If you use eibd, setting to 6720
            knx:port=
            
            # Local endpoint to specify the multicast interface, no port is used (optional)
            knx:localIp=
            
            # Serial port of FT1.2 KNX interface (ignored, if ip is specified)
            # Valid values are e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux
            knx:serialPort=
            Also für jeden der auch damit zu kämpfen hatte oder in Zukunft hat. Für den ROUTER Mode sind folgende Dinge zu beachten:
            1. Parameter knx:ip ist optional und kann immer dann weg gelassen werden, wenn der eingesetzte KNX-IP Router die Standard Multicast Adresse "224.0.23.12" verwendet. Das ist im Auslieferungszustand immer der Fall, weil die vereinbarte Multicast Adresse im KNX Umfeld ist.
            2. Parameter knx:type muss auf ROUTER gesetzt werden
            3. Parameter knx:localip muss zwingend auf die lokale IP der Maschine gesetzt werden, auf der Openhab läuft (siehe Hinweis "Local endpoint to specify the multicast interface")
            4. Parameter knx:ip darf nicht die "echte" IP-Adresse des KNX-IP Routers tragen, dann scheint das Binding nach der Meldung: "Trying to connect." einfach nichts mehr zu tun. Das ist im Wiki deshalb sehr verwirrend, weil es eine Beispiel Config mit ROUTER Mode und einer 192.x.x.x Adresse gibt. Dies funktioniert wenn überhaupt nur als Unicast aber NICHT als Multicast und muss abweichend im KNX-IP Router so konfiguriert werden. (Nicht zu empfehlen, denn dann weicht man von der KNX Spezifikation ab!!!)


            Unterm Strich ist meine Konfiguration im Openhab jetzt ganz simpel:
            Code:
            ########## KNX Binding
            knx:type=ROUTER
            knx:localIp=172.30.3.3
            Das war aber noch nicht alles. Je nach Router (dieses Mal ist der Netzwerk Router gemeint!) muss noch das Thema Multicast explizit erlaubt werden, da es entweder durch, falls vorhanden, unterschiedliche Netze nicht durch kann oder einfach von den Firewall Regeln blockiert wird. Das ist jetzt leider Hersteller spezifisch und muss von Fall zu Fall anders angegangen werden.

            In meinem Fall ist ein Lancom Gerät im Einsatz. Der Hersteller hat glücklicherweise das Thema Multicast im Zusammenhang mit dem Entertain Paket der Telekom gut beschrieben und erklärt. Damit hat es bei mir dann geklappt. (https://www2.lancom.de/kb.nsf/1275/2...2579BF00491F72)

            Ich werde in den nächsten Tagen versuchen den Wiki Eintrag des Bindings etwas besser zu gestalten, was den ROUTER MODE angeht.

            Jedenfalls bin ich glücklich, dass mein IPR/S 2.1 jetzt so läuft, wie er konzipiert ist, als Router nämlich. Wenn man Openhab im TUNNEL Mode betreibt, braucht man nämlich a) eigentlich keinen (teuren) KNX Router und b) unabhängig ob Router oder Interface eigentlich eine(n) die mehrere TUNNEL Verbindungen zulässt, da man sich sonst mit seinem ETS aussperrt. (IPR/S 2.1 kann nur eine TUNNEL Verbindung!)

            Beste Grüße und einen guten Rutsch in 2016,
            Artur
            Zuletzt geändert von ArPa; 31.12.2015, 12:54.
            Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

            http://cleveres-heim.de

            Kommentar


              #7
              Zitat von udo1toni Beitrag anzeigen
              Ich habe keinen knx-Router, aber zwei Tipps, was es sein könnte:

              Tipp1: setze mal
              Code:
              knx:localIp=172.30.3.3
              Im Nachhinein war Tipp1 also genau richtig ABER das geht nur in Verbindung mit der korrekten Multicast IP manuell gesetzt oder dem einfachen weg lassen des Parameters knx:ip. Diese Kombination habe ich erst heute Morgen so durch gespielt.

              Danke nochmal!
              Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's einfach gemacht.

              http://cleveres-heim.de

              Kommentar


                #8
                Besten Dank für die Aufklärung, ich hatte den ROUTER Modus nie zum Laufen gebracht und habe daher bisher TUNNEL nutzen müssen.
                Hier könnte man im Kommentar der Konfigurationsdatei aber auch explizit aufnehmen, dass die KNX:IP im ROUTER Modus die Multicast Adresse ist und nicht die IP des KNX Routers.
                Jetzt läuft bei mir auch der ROUTER Modus.
                Gruß,
                Marc

                Kommentar


                  #9
                  Hallo,

                  ich muss da doch noch einmal fragen, denn ich finde das Folgende im Log:
                  Code:
                  [FONT=Menlo][SIZE=11px]2016-01-20 11:29:57.217 [DEBUG] [b.k.i.connection.KNXConnection] - KNXBinding configuration present. Setting up KNX bus connection.[/SIZE][/FONT]
                  [FONT=Menlo][SIZE=11px]2016-01-20 11:29:57.220 [DEBUG] [b.k.i.connection.KNXConnection] - Not connected yet. Trying to connect.[/SIZE][/FONT]
                  [FONT=Menlo][SIZE=11px]2016-01-20 11:29:57.240 [INFO ] [b.k.i.connection.KNXConnection] - Established connection to KNX bus on 224.0.23.12:3671 in mode ROUTER.[/SIZE][/FONT]
                  [FONT=Menlo][SIZE=11px]2016-01-20 11:29:57.244 [DEBUG] [b.k.i.connection.KNXConnection] - Success: connected.[/SIZE][/FONT]
                  Im Gegensatz zum TUNNEL Modus werden die Items aber nicht geschaltet. Hier ist meine openhab.cfg:
                  Code:
                  knx:type=ROUTER
                  knx:localIp=192.168.178.25
                  knx:readRetries=5
                  knx:autoReconnectPeriod=30
                  Ich habe ein KNX IP Interface 730 von Weinziel im Einsatz.
                  openHAB2 2.5.10 als Docker auf einen unRAID Server (Repository: openhab/openhab:latest-debian)
                  Devices: KNX & ZWave

                  Kommentar

                  Lädt...
                  X