Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit "Rollade Stop" mit KNX auf openHab 4

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

    Problem mit "Rollade Stop" mit KNX auf openHab 4

    Hallo,

    ich habe meine Migration von openHAB 2 auf openHAB 4 noch nicht abgeschlossen. Das KNX-Binding funktionierte eigentlich bisher, mir war offenbar aber nicht aufgefallen, dass der "Stop-Knopf" nicht funktioniert. Ich kann die Rolladen mit den Pfeil-Tasten hoch und runter fahren. Aber "Stopt" geht nicht. Da kommen im Log folgende Fehler

    Code:
    2023-12-26 11:46:52.597 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'KNX_16fachAktor_Rollade_Wohnzimmer_Mitte' received command STOP
    2023-12-26 11:46:55.627 [WARN ] [net/IP Tunneling 192.168.178.26:3671] - response timeout waiting for confirmation
    tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 15.15.255->2/2/21 L_Data.req, low priority hop count 6 repeat, tpdu 00 80
        at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:271) ~[?:?]
        at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:268) ~[?:?]
        at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:213) ~[?:?]
        at tuwien.auto.calimero.link.KNXNetworkLinkIP.doSend(KNXNetworkLinkIP.java:515) ~[?:?]
        at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:503) ~[?:?]
        at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:397) ~[?:?]
        at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:480) ~[?:?]
        at tuwien.auto.calimero.process.ProcessCommunicatorImpl.send(ProcessCommunicatorImpl.java:494) ~[?:?]
        at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:444) ~[?:?]
        at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:399) ~[?:?]
        at org.openhab.binding.knx.internal.client.AbstractKNXClient.sendToKNX(AbstractKNXClient.java:546) ~[?:?]
        at org.openhab.binding.knx.internal.client.AbstractKNXClient.writeToKNX(AbstractKNXClient.java:508) ~[?:?]
        at org.openhab.binding.knx.internal.handler.DeviceThingHandler.handleCommand(DeviceThingHandler.java:275) ~[?:?]
    ...
    2023-12-26 11:46:58.669 [WARN ] [net/IP Tunneling 192.168.178.26:3671] - response timeout waiting for confirmation
    tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 15.15.255->2/2/21 L_Data.req, low priority hop count 6 repeat, tpdu 00 80
        at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:271) ~[?:?]
        at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:268) ~[?:?]
        at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:213) ~[?:?]
        at tuwien.auto.calimero.link.KNXNetworkLinkIP.doSend(KNXNetworkLinkIP.java:515) ~[?:?]
        at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:503) ~[?:?]
        at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:397) ~[?:?]
        at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:480) ~[?:?]
        at tuwien.auto.calimero.process.ProcessCommunicatorImpl.send(ProcessCommunicatorImpl.java:494) ~[?:?]
        at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:444) ~[?:?]
        at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:399) ~[?:?]
        at org.openhab.binding.knx.internal.client.AbstractKNXClient.sendToKNX(AbstractKNXClient.java:546) ~[?:?]
        at org.openhab.binding.knx.internal.client.AbstractKNXClient.writeToKNX(AbstractKNXClient.java:508) ~[?:?]
        at org.openhab.binding.knx.internal.handler.DeviceThingHandler.handleCommand(DeviceThingHandler.java:275) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    ...
    2023-12-26 11:46:58.701 [WARN ] [nx.internal.client.AbstractKNXClient] - Value 'STOP' could not be sent to KNX bus using datapoint 'command DP 2/2/21 'knx:ip:knxGateway', DPT 1.010, low priority': no confirmation reply received for 15.15.255->2/2/21 L_Data.req, low priority hop count 6 repeat, tpdu 00 80. Giving up now.
    2023-12-26 11:46:58.703 [WARN ] [.internal.handler.DeviceThingHandler] - An error occurred while handling command 'STOP' on channel 'knx:device:knxGateway:knxActor16fach:knxRollerShutterWzMiddle': no confirmation reply received for 15.15.255->2/2/21 L_Data.req, low priority hop count 6 repeat, tpdu 00 80​
    Die Konfiguration hatte ich im Prinzip aus openHAB 2 übernommen. Dort funktioniert (nach wie vor) alles einwandfrei.

    In openHAB 4 sieht das aktuell so aus:

    Code:
    channels:
      - id: knxRollerShutterWzRight
        channelTypeUID: knx:rollershutter
        label: Rollade Wohnzimmer Rechts
        description: ""
        configuration:
          upDown: 2/1/22
          stopMove: 2/2/22
          position: 2/4/22+2/3/22
    ​...
    In der "items-Datei" in openHAB 2 sieht das so aus:
    Code:
    }
    Rollershutter Shutter_gf_living_west "Wohnen Rechts [%d %%]" (g_shutters, Shutters)​ {knx="2/1/22, 2/2/22, 2/4/22+2/3/22", autoupdate="false"}​
    Habt ihr eine Idee? Was ist falsch?

    Viele Grüße
    Daniel
    Zuletzt geändert von dniklas; 26.12.2023, 19:37.

    #2
    Die Konfiguration sieht auf den ersten Blick korrekt aus. Die Fehlermeldung ist aber auch etwas seltsam, klingt ja so, als ob der Bus nicht antwortet.

    Kommentar


      #3
      Zitat von udo1toni Beitrag anzeigen
      Die Konfiguration sieht auf den ersten Blick korrekt aus. Die Fehlermeldung ist aber auch etwas seltsam, klingt ja so, als ob der Bus nicht antwortet.
      Ja, seltsam. Die Verbindung klappt ja beim Senden. Aber offensichtlich für die Rückrichtung nicht. Könnte als an der Konfiguration des KNX-Gateways liegen. Die sieht in openHAB aktuell so aus:
      Code:
      UID: knx:ip:knxGateway
      label: KNX/IP Gateway
      thingTypeUID: knx:ip
      configuration:
        useNAT: false
        readRetriesLimit: 3
        ipAddress: 192.168.178.26
        autoReconnectPeriod: 60
        localIp: 192.168.178.168
        localSourceAddr: 1.11.240
        readingPause: 50
        type: TUNNEL
        portNumber: 3671
        responseTimeout: 10
      location: HWR​

      Das KNX-IP-Gatewax ist ein "Gira IP-Interface" und hat die IP-Adresse 192.168.178.26
      Der openHAB-Server hat die IP-Adresse 192.168.178.168

      Die Fehlermeldung "no confirmation reply received" kommt schon beim Klick auf eine Pfeil-Taste.

      Beim nochmaligem genauen Lesen des Logs scheint das Problem mit dem Stop aber noch ein anderes zu sein:

      Code:
      [nx.internal.client.AbstractKNXClient] - Value 'STOP' could not be sent to KNX bus using datapoint 'command DP 2/2/21 'knx:ip:knxGateway', DPT 1.010, low priority': no confirmation reply received for 15.15.255->2/2/21 L_Data.req, low priority hop count 6 repeat, tpdu 00 80. Giving up now.
      2023-12-26 11:46:58.703 [WARN ] [.internal.handler.DeviceThingHandler] - An error occurred while handling command 'STOP' on channel 'knx:device:knxGateway:knxActor16fach:knxRollerShutterWzMiddle': no confirmation reply received for 15.15.255->2/2/21 L_Data.req, low priority hop count 6 repeat, tpdu 00 80​​
      Die Adresse "15.15.255" stimmte nicht. Ich habe jetzt "1.1.240". Das habe ich in der ETS uner "physikalische Adresse" stehen. Mit dieser Einstellung funktioniert es aber auch nicht, es kommt der gleiche Fehler.

      Im openHAB 2 habe ich diese Angaben gar nicht machen müssen, oder finde das nicht mehr. Ich finde nur noch die "localIP" in der "knx.cfg"?!

      Ideen, wie ich dem Problem auf die Schliche kommen könnte?

      Kommentar


        #4
        Lass localSourceAddr unkonfiguriert oder auf 0.0.0 Vielleicht reicht das dann schon...

        Für eine Tunnel-Verbindung musst Du lediglich die IP des knx/IP Gateways, die lokale IP sowie den Typ der Verbindung angeben, alles andere kannst Du einfach weg lassen.

        Kommentar


          #5
          Das funktioniert tatsächlich 😊👍

          Einige Details:
          Es lag an der " localSourceAddr": wenn ich dort die korrekte IP-Adresse des KNX-Gateways angebe, kommt es zur beschriebenen Exception. Es ist ein Pflichtfeld, ich habe wie von dir empfohlen "0.0.0" eingetragen. (Das war vermutlich der default, den ich irgendwann an die echten Gegebenheiten angepasst hatte.) Die anderen Felder habe ich wieder übernommen, die waren nicht das Problem und sind auch Pflichtfelder.

          Meine Config sieht jetzt so aus:
          Code:
          UID: knx:ip:knxGateway
          label: KNX/IP Gateway
          thingTypeUID: knx:ip
          configuration:
            ipAddress: 192.168.178.26
            localIp: 192.168.178.168
            type: TUNNEL
            localSourceAddr: 0.0.0
            readingPause: 50
            portNumber: 3671
            responseTimeout: 10
          location: HWR​

          Vielen, vielen Dank für die Hilfe! Du hast mir nicht das erste Mal geholfen, danke! 👍

          Kommentar


            #6
            Nein, es gibt nur zwei bzw. drei Pflichtfelder, type (eben TUNNEL oder ROUTER), ipAddress (nur falls TUNNEL) und localIp, alle anderen Felder werden von openHAB automatisch mit (meist sinnvollen) Default Werte belegt.

            Die localSourceAddr ist nicht die physikalische Adresse des Interface, auch nicht, wenn das Interface mehrere physikalische Adressen hat, eine davon.
            Stattdessen muss die physikalische Adresse eine freie Adresse auf dem Bus sein, vorzugsweise eine aus der Linie, an der auch das Interface angeschlossen ist.
            Der Punkt ist, dass die physikalische Adresse den Absender der Telegramme angibt, darüber kann man z.B. in ETS erkennen, wer kommuniziert.
            Das Interface ist zwar physikalisch die Kommunikationsschnittstelle, aber nicht der Initiator der Kommunikation.

            Kommentar

            Lädt...
            X