Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenHAB2 keine Verbindung zum KNX Bus

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

    OpenHAB2 keine Verbindung zum KNX Bus

    Hallo Forum,

    ich starte gerade die ersten Lernversuche mit OpenHAB, bekomme aber nicht wirklich eine Verbindung zum KNX Bus. Meine erste Übung ist einfach die Temperatur eines Schalters und die Uhrzeit vom Bus anzeigen zu lassen. Ich hatte zwar kurz mal Erfolg (Temperatur wurde angezeigt); nach einer weile waren die Werte aber wieder weg, danach viel herumprobieren aber kein Erfolg...

    Zugriff erfolgt über die IP Schnittstelle des Busch Jäger ComfortPanel (1. Generation).

    knx.things
    Code:
      Bridge knx:ip:bridge "ComfortPanel" [
          ipAddress="192.168.2.2",
          localIp="192.168.2.30",
          type="TUNNEL",
          useNAT=true,
          portNumber=3671,
          readingPause=50,
          responseTimeout=10,
          readRetriesLimit=3,
          autoReconnectPeriod=60,
          localSourceAddr="0.0.0"
          ]
          {
          Thing device EGpanel [
              address="1.1.1",
              fetch=true,
              pingInterval=600,
              readInterval=3600
              ]
              {
              Type datetime       : Uhrzeit       "Uhrzeit"       [ ga="19.001:<0/0/1" ]
              Type datetime       : Datum         "Datum"         [ ga="19.001:<0/0/2" ]
              }
          }
          {
          Thing device EGtasterBad [
              address="1.1.14",
              fetch=true,
              pingInterval=600,
              readInterval=3600
              ]
              {
              Type number     : Temp      "Temperatur"        [ ga="9.001:<0/1/0" ]
              }
          }
          Thing device EGtasterZimmer1 [
              address="1.1.17",
              fetch=true,
              pingInterval=600,
              readInterval=3600
              ]
              {
              Type number     : Temp      "Temperatur"        [ ga="9.001:<0/1/1" ]
              }
          }
    knx.items
    Code:
     Number      Bad_EG_Temp     "Bad EG Temperatur [%.1f °C]"   <temperature>   { channel="knx:ip:bridge:EGtasterBad:Temp" }
      Number      Z1_EG_Temp      "Zimmer 1 EG Temperatur [%.1f °C]"  <temperature>   { channel="knx:ip:bridge:EGtasterZimmer1:Temp" }
      DateTime    Uhrzeit         "Uhrzeit [%1$tH:%1$tM]"                       { channel="knx:device:bridge:EGpanel:Uhrzeit" }
      DateTime    Datum           "Datum [%1$tA, %1$tB  %1$td, %1$tY]"                       { channel="knx:device:bridge:EGpanel:Datum" }
    knx.sitemap
    Code:
     sitemap knx label="KNX Demo Sitemap" {
        Frame label="KNX" icon="group"{
          Text        item=Bad_EG_Temp icon="temperature"
          Text        item=Z1_EG_Temp icon="temperature"
          Text    item=Uhrzeit icon="time"
          Text    item=Datum icon="calendar"
      }
     }

    2019-09-08 14_07_28-KNX Demo Sitemap.png
    Andere Things (FritzBox/fsinternetradio) konnte ich schon erfolgreich einbinden, nur beim KNX bekomme ich es irgendwie nicht hin. Da Anfänger weiß ich nicht unbedingt wie ich beim debuggen vorgehen soll. In der openhab.log tauchen keine Fehler bezüglich knx auf.

    Weiß jemand Rat?
    Danke!

    #2
    Hallo zusammen,

    hier noch ein kurzes Update:
    Ich konnte zwei entscheidende Dinge herausfinden: openHab läuft bei mir auf dem Synology NAS, hier ist es wohl besser openHAB zu stoppen und neu zu starten wenn man änderungen vornimmt. So konnte ich noch ein paar Fehler in der openhab.log erkennen und beheben (z.B. eine { fehlte).
    Zum zweiten Hatte ich noch ETS3 parallel offen, das mag wohl die Schnittstelle nicht.

    Dennoch funktioniert es nicht. In der openhab.log sehe ich folgenden Fehler:

    Code:
    2019-09-08 15:18:56.543 [WARN ] [calimero.mgmt.MC 192.168.2.2:3671   ] - problem reading property (response 43 d6 00 4e 00 01)
    tuwien.auto.calimero.KNXRemoteException: property access OI 0 PID 78 failed/forbidden
        at tuwien.auto.calimero.mgmt.ManagementClientImpl.extractPropertyElements(ManagementClientImpl.java:986) ~[?:?]
        at tuwien.auto.calimero.mgmt.ManagementClientImpl.lambda$readProperty$0(ManagementClientImpl.java:570) ~[?:?]
        at tuwien.auto.calimero.mgmt.ManagementClientImpl.waitForResponses(ManagementClientImpl.java:905) ~[?:?]
        at tuwien.auto.calimero.mgmt.ManagementClientImpl.readProperty(ManagementClientImpl.java:568) ~[?:?]
        at tuwien.auto.calimero.mgmt.ManagementClientImpl.readProperty(ManagementClientImpl.java:535) ~[?:?]
        at org.openhab.binding.knx.internal.client.DeviceInfoClientImpl.lambda$2(DeviceInfoClientImpl.java:107) ~[?:?]
        at org.openhab.binding.knx.internal.client.DeviceInfoClientImpl.readFromManagementClient(DeviceInfoClientImpl.java:56) ~[?:?]
        at org.openhab.binding.knx.internal.client.DeviceInfoClientImpl.readDeviceProperties(DeviceInfoClientImpl.java:105) ~[?:?]
        at org.openhab.binding.knx.internal.client.DeviceInspector.readDeviceProperties(DeviceInspector.java:108) ~[?:?]
        at org.openhab.binding.knx.internal.client.DeviceInspector.readDeviceInfo(DeviceInspector.java:88) ~[?:?]
        at org.openhab.binding.knx.handler.AbstractKNXThingHandler.describeDevice(AbstractKNXThingHandler.java:89) ~[?:?]
        at org.openhab.binding.knx.handler.AbstractKNXThingHandler.lambda$0(AbstractKNXThingHandler.java:153) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]
    Weiß jemand was damit anzufangen?

    Kann es sein das die Schnittstelle im ComfortPanel etwas zickig ist?
    Wäre es Allgemein sinnvoll für openHab eine separate IP Schnittstelle zu besorgen? Oder muss das auch mit einer gehen?

    Kommentar


      #3
      Ich nutze nur eine IP Schnittstelle für alles, aber openHAB verträgt vor allen den Monitor vom ETS nicht (Fehlermeldungen). Da ETS jedoch nur selten an der IP Schnittstelle hängt, stört mich das nicht. Also zum Debuggen auf jedenfall ETS abklemmen..

      Welche Einstellungen hast Du denn im dem Panel bzw. den Tastern? Lassen sich 0/0/1, 0/0/2, 0/1/0 und 0/1/1 wirklich auslesen (Lesen Flag)?

      Kommentar


        #4
        Erste Frage: Welche Version (exakt!) von openHAB2 nutzt Du, und wie ist sie eingerichtet (im Fall der Synology z.B. direkt oder Docker?)

        Erster Tipp: bei knx2 ist weniger mehr. Das bedeutet, es ist am besten, nur ipAddress und type für die Bridge zu setzen, sonst nichts. Für die knx Things am besten ebenfalls erst mal gar keine Konfiguration angeben (also alles, was in den eckigen Klammern steht, address, fetch, pingInterval und readInterval)

        Kommentar


          #5
          ok, ich habe schon Hinweise gefunden das die Warnmeldung wahrscheinlich vom "fetching" kommt. Mit fetch="false" war es dann weg.
          Nachdem ich die Uhrzeit/Datum zusätzlich auf "Lesen" gesetzt habe, und den Datentyp angepasst habe, wurden diese erfolgreich ausgelesen, juhu :-).

          Aber das auslesen der Temperaturen funktioniert immer noch nicht. Habe es auch mit den Fensterkontakten probiert - nichts.
          Das Licht zu schalten hat aber in einem Beispiel funktioniert. Fehlermeldungen in openhab.log habe ich nicht mehr bezüglich knx (außer die Uhrzeit wo er manchmal nach 3 Versuchen aufgibt. Wird dennoch korrekt angezeigt).

          Soweit vielen Dank, die Hinweise haben mich auf die richtige Spur gebracht. Ich habe auch alles reduziert, aber immer noch kein Erfolgt bei Temperatur und Fensterkontakt....habe auch soweit alles auf das nötigste reduziert:

          knx.things
          Code:
            Bridge knx:ip:bridge "ComfortPanel" [
                ipAddress="192.168.2.2",
                type="TUNNEL"
                ] {
                Thing device generic [
                    ] {
                    Type datetime       : Uhrzeit   [ ga="10.001:<0/0/1" ]
                    Type datetime       : Datum     [ ga="11.001:<0/0/2" ]
                    Type number         : TempBad   [ ga="9.001:<0/1/0" ]
                    Type number         : TempZ1    [ ga="9.001:<0/1/1" ]
                    Type contact        : Fen       [ ga="1.009:<4/2/4" ]
                    Type contact        : Fen2      [ ga="1.009:<4/1/4" ]
                    Type switch         : flur      [ ga="2/0/0" ]
                    }
                }
          knx.items
          Code:
           [COLOR=#000000]Number      TempBade        "Bad EG Temp"                                       { channel="knx:ip:bridge:generic:TempBad" }[/COLOR]
            [COLOR=#000000]Number      TempZ1            "Zimmer 1 EG Temperatur [%.1f °C]"  <temperature>   { channel="knx:ip:bridge:generic:TempZ1" }[/COLOR]
            [COLOR=#000000]DateTime    Uhrzeit             "Uhrzeit [%1$tH:%1$tM]"                             { channel="knx:device:bridge:generic:Uhrzeit" }[/COLOR]
            [COLOR=#000000]DateTime    Datum              "Datum [%1$tA, %1$tB  %1$td, %1$tY]"                { channel="knx:device:bridge:generic:Datum" }[/COLOR]
            [COLOR=#000000]Contact       Fen                  "Rini"                                              { channel="knx:device:bridge:generic:Fen" }[/COLOR]
            [COLOR=#000000]Contact       Fen2                "Muck"                                              { channel="knx:device:bridge:generic:Fen2" }[/COLOR]
            [COLOR=#000000]Switch         flur                   "Light [%s]"                        <light>         { channel="knx:device:bridge:generic:flur" }[/COLOR]
          knx.sitemap
          Code:
           sitemap knx label="KNX Demo Sitemap" {
              Frame label="KNX" icon="group"{
                Text          item=TempBade icon="temperature"
                Text          item=TempZ1 icon="temperature"
                Text          item=Uhrzeit icon="time"
                Text          item=Datum icon="calendar"
                Text          item=Fen icon="window"
                Text          item=Fen2 icon="window"
                Switch      item=flur icon="lightbulb"
            }
           }
          2019-09-08 22_11_50-KNX Demo Sitemap.png

          Wo ist der Fehler bzgl. Temperatur und Fensterkontakt? Im ComfortPanel werden die Werte korrekt ausgelesen und dargestellt.

          Edit: Achso, es ist direkt auf dem Synology und Version 2.4.0.002
          Zuletzt geändert von nubbler; 08.09.2019, 21:40.

          Kommentar


            #6
            Bei den Kontakten und zumindest der Bad Temperatur fehlt im Label die Angabe des Status im Label (im Unterschied zu TempZ1, da hast Du im Label eine Formatierung für den Status mit angegeben)
            Es kann verschiedene Ursachen haben, warum der Status trotz korrekter Formatierung nicht angezeigt wird. z.B. könnte es sein, dass das betreffende KO nicht lesbar ist (L-Flag gesetzt?), oder dass die GA nicht als Haupt-GA dem KO zugeordnet ist (dann erfolgt die Antwort auf den Read Request auf einer anderen GA) In manchen Fällen hat es auch schon geholfen, den DPT nicht mit anzugeben (solange der DPT vom Typ dem Standard DPT entspricht, ist das auch kein Problem)

            Was meinst Du mit ComfortPanel? So etwas gibt es in openHAB nicht. Du hast die Wahl zwischen Basic UI, Classic UI, HABpanel oder gar CometVisu.

            Eventuell meinst Du auch Paper UI Control, das ist aber eine rein für Konfiguration gedachte Oberfläche (nicht detailiert konfigurierbar, wird nicht weiter entwickelt). Falls dort alle Werte angezeigt werden, sind die Daten schon mal in openHAB, dann kann es eigentlich nur an einer Kleinigkeit in der Konfiguration der Items liegen.

            Kommentar


              #7
              Das Label hat bei den Kontakten geholfen. Bei der Bad Temperatur, wie auch bei TempZ1, half es nichts.
              L-Flag ist gesetzt. Das KO hat nur diese eine GA.DTP habe ich mal angegeben, mal nicht, brachte keine Änderung.

              Mit ComfortPanel meinte ich das BuschJäger Panel, also außerhalb openHAB (hatte ich nur angegeben damit sicher ist das die GAs existieren und einen Wert beinhalten.) Im PaperUI werden die Temperatur-Items unter Items angezeigt. Aber nicht unter Control (alles andere taucht da auf.).

              Also es liegt nur noch bei den Temperaturen...

              Kommentar


                #8
                Ah.
                Wenn Du schreibst, unter Control werden die Temperatur Items nicht angezeigt, meinst Du damit, der Wert wird nicht angezeigt, oder das ganze Item wird nicht angezeigt?
                Wenn letzteres der Fall ist, bedeutet es, dass die Verlinkung nicht funktioniert (was dann auch erklärt, warum kein Wert ankommt).

                Und nachdem ich die Items mal etwas durchformatiert habe, fällt der Fehler auch gleich ins Auge

                Code:
                Number      TempBade        "Bad EG Temp"                                       { channel="knx:ip:bridge:generic:TempBad" }
                Number      TempZ1          "Zimmer 1 EG Temperatur [%.1f °C]"  <temperature>   { channel="knx:ip:bridge:generic:TempZ1" }
                DateTime    Uhrzeit         "Uhrzeit [%1$tH:%1$tM]"                             { channel="knx:device:bridge:generic:Uhrzeit" }
                DateTime    Datum           "Datum [%1$tA, %1$tB  %1$td, %1$tY]"                { channel="knx:device:bridge:generic:Datum" }
                Contact     Fen             "Rini"                                              { channel="knx:device:bridge:generic:Fen" }
                Contact     Fen2            "Muck"                                              { channel="knx:device:bridge:generic:Fen2" }
                Switch      flur            "Light [%s]"                        <light>         { channel="knx:device:bridge:generic:flur" }
                Du hast da ip statt device geschrieben, genau bei den beiden Temperatur Items.

                Tipp: Da Du offensichtlich gerne mit Textdateien konfigurierst (ich auch!!!) nutze dafür am besten Visual Studio Code (oder kurz VSCode), das ist ein Editor, für den es ein Plugin gibt, welches die Arbeit an openHAB sehr viel einfacher macht (z.B. per Mausklick aus einem bestehenden Thing alle Channel als Item anlegen. Dann muss man nur noch das ändern, was man anders haben möchte (z.B. den Itemnamen), aber z.B. der Link stimmt dann.

                Kommentar


                  #9
                  Vielen lieben dank, das war es natürlich - ich glaube da hätte ich noch 100x draufschauen können und hätte das nicht gesehen...nun funktioniert es.

                  - VSCode benutze ich schon, habe aber noch nicht rausgefunden wie ich mit dem installierten openhab plugin eine art Prüfung des Codes machen kann um solche Fehler zu finden. Geht das irgendwie?
                  - Ich habe nun die ersten Beispiele alle unter dem Device "generic" eingebunden. Ab wann macht es Sinn hier zu teilen? Was für einen Vorteil hat es die Adresse des KNX-Gerätes mit anzugeben? Wenn es auch ohne Funktioniert? Mein Ansatz wäre hier alle Gruppenadressen unter einem Device einzubinden mit Namen die der GA ähneln - dann muss ich nicht umdenken gegenüber ETS. Oder gibt einem das Aufteilen nennenswerte Vorteile?
                  - Auf Labels habe ich zunächst verzichtet. Oder hat dies später noch Vorteile?

                  Kommentar


                    #10
                    Wie Du die Things verwendest, ist im Fall von knx nicht klar definiert. Ich bevorzuge eine strikte Abbildung meiner Hardware, ich habe für jedes physisch vorhandene Device ein Thing. Dabei sind auch etliche Things, die keinen Channel konfiguriert haben (Wandtaster ohne spezielle Funktionen).
                    Mit konfigurierter physikalischer Adresse versucht openHAB im Abstand <pingInterval> Kontakt zum Device aufzunehmen. Wenn das Device darauf anwortet, wird das Thing ONLINE dargestellt, ansonsten OFFLINE.
                    Da man in Rules auf den Thing Status reagieren kann, ist es denkbar, bei einer Busstörung z.B. einen Alarm zu schicken. Allerdings ist das Feature momentan dafür noch zu wackelig, aber mal sehen, was die Zukunft bringt.
                    Die GA wären an sich eine nette Beschriftung, das funktioniert so aber nicht, denn wie erwähnt gehören zu den meisten Items mehrere GA. Label werden von VSCode mit durchgereicht, wenn Du aus Things Items generieren lässt. Ansonsten sortiert Paper UI die Things anhand der Label, und in VSCode sind die Channel unterhalb der Things ebenfalls mit den Labeln beschriftet.
                    Meine Things habe ich im Namen mit einer Devicebezeichnung versehen (z.B. HagerDim1_1_1 für den Dimmer von Hager, der auf die physikalische Adresse 1.1.1 hört), das Label ist dann z.B. "DimmerGruppe 1" und die Channel heißen ch1, ch2 und ch3. Die Label dort heißen dann "Wohnzimmer Ost", "Wohnzimmer West" und "Decke Flur", so weiß ich sofort, um welchen Kanal es sich handelt. Da ich mehrere identische Devices habe, kann ich die entsprechenden Konfigurationsblöcke bequem kopieren und muss nur wenig anpassen (meine GA sind nach einem entsprechenden System organisiert - erste Stelle "Raumnummer", zweite Stelle "Funktionsart" und dritte Stelle das verknüpfte KO, bei mehreren gleichen Kanälen innerhalb eines Raums springe ich dann in 10er Schritten. Bis auf ganz wenige Ausnahmen funktioniert das super.

                    Kommentar


                      #11
                      Guten Abend Leute,

                      bin auch neu in der Openhab Welt und versuche gerade die ersten Schritte zu machen.
                      Ich habe ein ähnliches Problem und komme auch nicht am KNX BUS.

                      Ich habe soeben in die Logs geschaut und da steht immer folgendes:

                      2020-05-07 18:29:17.066 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'demoSwitch' for widget org.eclipse.smarthome.model.sitemap.Switch
                      2020-05-07 18:29:17.098 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'Uhrzeit' for widget org.eclipse.smarthome.model.sitemap.Text


                      was bedeutes das? Übersetzt heißt das für mich er kann das Item nicht abrufen...kann mir wer Tipps geben?
                      Wäre über jede Hilfe sehr dankbar.




                      Lg Lukas

                      Kommentar


                        #12
                        luki89 hast Du denn items mit den Name demoSwitch und Uhrzeit in einer .items-Datei definiert?

                        Kommentar


                          #13
                          wknx oh sry hab ich vergessen dazu zu schreiben...


                          knx.things

                          Code:

                          Bridge knx:ip:bridge "ComfortPanel" [
                          ipAddress="192.168.0.44",
                          type="TUNNEL"
                          ] {
                          Thing device generic [
                          ] {
                          Type switch : demoSwitch "Light" [ ga="1/1/4" ]
                          Type datetime : Uhrzeit "Uhrzeit" [ ga="19.001:<1/0/2" ]
                          }
                          }


                          knx.items

                          Code:

                          Switch demoSwitch "Light [%s]" <light> { channel="knx:device:bridge:generic:demoSwitch" }
                          DateTime Uhrzeit "Uhrzeit [%1$tH:%1$tM]" { channel="knx:device:bridge:generic:Uhrzeit" }


                          knx.sitemap

                          Code

                          sitemap knx label="KNX Demo Sitemap" {
                          Frame label="Demo Elements" {
                          Switch item=demoSwitch
                          Text item=Uhrzeit icon="time"
                          }
                          }

                          Lg Lukas

                          Kommentar


                            #14
                            luki89 was sagt das log denn zur items-Datei? Wird die ohne Fehler verarbeitet? (Ggf. dann doch einen eigenen Thread für Dein Problem eröffnen, und bei Dir vermute ich das Problem an anderer Stelle)

                            Kommentar


                              #15
                              Zitat von wknx Beitrag anzeigen
                              log denn zur items-Datei?
                              Wo finde ich das?
                              Zitat von wknx Beitrag anzeigen
                              und bei Dir vermute ich das Problem an anderer Stelle)
                              nun ja was kann das sonst sein? Meinst du hier einen eigenen Thread oder im eigenen Openhabforum.de?
                              Lg Lukas

                              Kommentar

                              Lädt...
                              X