Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX inkl. Geräte in openhabian konfigurieren

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

    KNX inkl. Geräte in openhabian konfigurieren

    Guten Abend liebe Gemeinde.

    Ich sitze gerade vor einem frisch installierten openhabian und komme nicht weiter.

    Ich habe openhabian frisch installiert. Gemäß diverser Anleitungen das KNX Binding 2.3.0 habe ich unter den Addons gefunden und installiert. Anschließend habe ich unter "Items" ein "KNX Device" und ein "KNX/IP Gateway" angelegt. Bei beiden haben ich die IP des Gira X1 angegeben. Beide Geräte werden mir "online" angezeigt.

    Nun trete ich ein wenig auf der Stelle und weiß nicht, wie ich weiterkomme und meine einzelnen Geräte (Schalter, Steckdosen, Lampen, Jalousien etc.) anlegen kann?

    Wenn ich in das online angezeigte "KNX Device" gehe, kann ich einen Channel anlegen. Dort werde ich nach Channel Type, Channel ID, Label und Channel Configuration gefragt. Ich habe etwas herumgetüffelt, habe aber keine Ahnung was da eingetragen werden muss. Wenn er den Channel angelegt hat, kann ich diesen noch mit einem Link versehen. Was muss denn da eingetragen werden?

    Leider finde ich zu diesem Ablauf keinerlei Informationen im Netz. Die meisten Anleitungen im Netz sprechen von einer knx.cfg und einer item-Datei, die editiert werden müssen. Ich habe per FileZilla Zugriff auf das openhabian System, nur kann ich keinerlei KNX Dateien (knx.cfg, intem....) finden. Ich habe mühseelig alle Pfade und Verzeichnisse durchforstet. Auch in den unterschiedlichen Pfaden, die in diversen Tutorials beschrieben werden, sind die angesprochenen Dateien nicht zu finden?

    Ich hoffe ihr könnt mir weiterhelfen

    #2
    Schau Dir mal die Hilfe an.
    Gruß

    Guido

    Kommentar


      #3
      Das bringt mich leider irgendwie auch nicht weiter. Ich habe alle Gruppenadressen meiner KNX steuerbaren Geräte, aber wie lege ich denn als Beispiel einen simplen An/Aus-Schalten für meine Deckenlampe an? Ich habe unter "Device" und auch "Things" alles mögliche mit der entsprechenden Gruppenadresse probiert. Irgenwie muss dann im Anschluss noch ein Link zum Schalten gesetzt werden. Anschließend finde ich im bereich "Contol" eine Schaltfläche zum Schalten, aber da passiert nichts.

      Kurz zur Ergänzung.. das Prinzip der Devices, Things und Channels habe ich im PapierUI wohl begriffen. Ich habe nun mit dem Hue Binding das Prinzip anhand einer Lampe getestet. Funktioniert. Wobei die Hue Geräte automatisch in der Inbox gelistet werden, anschießend als Thing definieren und die Schaltfunktionen definieren. Schon taucht im "Control" eine entsprechende Schaltfläche mit Reglern. Bei der KNX Kiste ist das ja komplett anders.
      Zuletzt geändert von Quadrator; 06.07.2018, 21:42.

      Kommentar


        #4
        Also im Grunde brauchst Du 3 Dateien

        Die Things dort sind deine physikalischen Geräte und die Bridge angelegt.
        Die Items dort sind deine Objekte angelegt.
        Die Sitemaps das ist die eigentliche Visu

        Things
        Code:
        Bridge knx:ip:bridge "KG Schnittstelle Eibmarkt" @ "KNX" [
        ipAddress="192.168.179.177",
        portNumber=3671,
        localIp="192.168.179.175 ",
        type="TUNNEL",
        readingPause=50,
        responseTimeout=10,
        readRetriesLimit=3,
        autoReconnectPeriod=1,
        localSourceAddr="0.0.0"
        ] {
        
        Thing device EG_6131USoloTaster2SchlafzimmerFewo "EG Solo Tastsensor2 Schlafzimmer Fenster Fewo" @ "KNX" [
        address="1.1.45",
        fetch=true,
        pingInterval=600,
        readInterval=0
        ] {
        Type switch : chrm1 "EG Licht Schlafzimmer Wand Fewo " [ ga="5/1/10+<5/1/13" ]
        // Type switch : chrm2 "EG Licht Wohnzimmer Wand Fewo " [ ga="5/1/60+<5/1/63" ]
        // unfertig
        }
        }
        Items
        Code:
        Switch knx_Licht_Ferienwohung_Schlafzimmer_Wand "EG Licht Schlafzimmer Wand fewo" <light> (knx_gr_Licht_alle, knx_gr_EG_alle, knx_gr_Licht_Fewo, knx_gr_Licht_EG_Fewo_Schlafen_alle ) {channel="knx:device:bridge:EG_6131USoloTaster2SchlafzimmerFewo:chrm1" }
        Sitemaps
        Code:
        Switch item=knx_Licht_Ferienwohung_Schlafzimmer_Wand label="Freigabe Fewo Jalousien Wochende unten" icon="light"
        Gruß

        Guido

        Kommentar


          #5
          In vielen Tutorials ist die Rede von diesen Dateien, ich kann diese aber nicht in den angegebenen Pfaden finden. Muss ich diese Dateien selber anlegen?

          Kommentar


            #6
            Du findest unter /etc/openhab2/

            die Verzeichnisse.
            Die Dateien musst du selbst anlegen wobei die Endung wichtig ist. .Things fürs Things usw..
            Gruß

            Guido

            Kommentar


              #7
              Okay. Schon mal besten Dank für deine Unterstützung. Ich komme der Sache anscheinend etwas näher. Ich habe testweise eine Lampe in eine knx.item Datei geschrieben und diese auf den Raspberry mittels FileZilla in den Ordner etc/openhab2/items kopiert. Ebenso mit der knx.sitemap Datei in den Ordner etc/openhab2/sitemap. Bei dem Anlegen von Geräten sind an einigen Stellen die Bezeichnungen zu finden, die ich in die beiden Dateien eingetragen habe.

              Ledigleich bei der Things-Datei komm ich gerade ins Stocken... Wenn ich deine oben genannte Datei auf mich ummünzen möchte. Dort steht ja auch was von Things und Type Switch. Muss ich in der Form dort auch meine Geräte auflisten?

              Kommentar


                #8
                Verstehe ich es denn richtig, das es 2 Möglichkeiten gibt, KNX Geräte in ins openHab zu bekommen? Zum einen lese ich viel über die Nutzung des PaperUI, aber auch viele die nur mit codes in Items- und Sitemap schreiben. Oben beschrieben habe ich es über die PaperUI versucht. Leider noch immer ohne Erfolg. Wie Höhlenbär beschrieben hat, habe ich diese Dateien angelegt und die codes entsprechend meiner Konfiguration eingetragen und auf den Raspberry geschoben.

                Ich bekomme dann auch über das Ansteuern der Sitemap über http://XXX.XXX.XXX.XXX:8080/basicui/...emap=meineHeim auch eine Übersicht der angelegten Gruppen und Geräte. Nur wenn ich den Schalter betätige, passiert nichts.

                Ich habe mal 3 Screenshots beigelegt, vielleicht mach ich ja irgendwas verkehrt. Screenshot meiner Item-Datei, meiner Sitemap-Datei und der grafischen Oberfläche.

                Habe ich vielleicht irgendwas vergessen, sind Codes falsch oder muss ich fehlt noch Grundlegendes. Einzig was ich nicht angelegt habe ist die Things-Datei. Da komme ich mit dem Code oben von Höhlenbär leider nicht zu recht.

                meine-items.jpg

                meine-sitemap.jpg

                sitemap.jpg
                Angehängte Dateien

                Kommentar


                  #9
                  Deine Notation der Items ist die für knx1, nicht für knx2. Schau Dir mal die Dokumentation an.


                  Es gibt grundsätzlich zwei Wege, in openHAB2 Dinge zu konfigurieren. Die eine Variante ist über die UI (das ist nicht zwingend Paper UI, z.B. kann man vieles auch über HABmin konfigurieren). Der zweite Weg ist der klassische Weg über Konfigurationsdateien. Gleich das erste Problem dieser Zweiteilung vorweg: Du kannst zwar beide Methoden mischen, aber eine Konfiguration mittels UI erzeugt keine der normalerweise editierbaren Konfigurationsdateien. Das heißt, etwas, was Du über Paper UI angelegt hast, musst Du auch über Paper UI ändern, wenn Du mal was anpassen willst. Was Du über die Konfigurationsdateien angelegt hast, kannst Du vielleicht über Paper UI sehen, das ist dann aber nur-Lesen, Änderungen gehen nur über die Konfigurationsdateien.

                  openHAB2 ist, wie der Name schon vermuten lässt, die zweite Hauptversion von openHAB. openHAB1 kannte keine Konfiguration über UI. Es gibt verschiedene Bindings, die unverändert unter openHAB2 verwendet werden können. wenn Du solche Bindings verwenden willst, müssen die zwingend über Dateien konfiguriert werden.

                  Teilweise gibt es Bindings sowohl im alten als auch im neuen Stil. Dann sind die OH1-Bindings "legacy". Solche Bindings werden nur dann zur Installation angeboten, wenn Du ausdrücklich Legacy Bindings aktivierst. OH1-Bindings, für die es (noch) kein OH2-Pendant gibt, sind nicht legacy, sie werden immer angezeigt. Weiterhin gibt es einige Bindings, die nicht ausdrücklich kompatibel mit OH2 sind, aber (vielleicht) trotzdem funktionieren. Die musst Du dann auf dem für openHAB1 üblichen Weg installieren, das heißt, sie werden nirgendwo zur Installation angeboten, stattdessen musst Du die *.jar Datei aus dem entsprechenden Build laden und von Hand in das entsprechende Verzeichnis kopieren.

                  So, das erstmal zur Vorrede

                  knx2 ist, wie der Name schon vermuten läst, ein openHAB2 Binding, welches grundsätzlich komplett über Paper UI konfiguriert werden kann.
                  Im Ersten Schritt brauchst Du eine Bridge (nein, das ist etwas anderes als ein Item).
                  Code:
                  Bridge knx:ip:bridge "Weinzierl 730 IP" [
                     ipAddress="ip.der.ip.schnittstelle",
                     localIp="ip.des.openhab.rechners",
                     type="TUNNEL",
                     portNumber=3671,
                     readingPause=50,
                     responseTimeout=10,
                     readRetriesLimit=3,
                     autoReconnectPeriod=60,
                     localSourceAddr="0.0.0"
                     ]
                  Die Bridge ist die Schnittstelle zum Bussystem, das kann eine knx/IP-Schnittstelle sein, eine serielle Verbindung oder auch etwas anderes (wobei bisher nur die beiden ersten Varianten unterstützt werden, aber es gibt ja neben knx TP auch knx RF und knx PL, es wäre also denkbar, hier auch andere Interfaces zu unterstützen.
                  Hinter der Bridge ist aber alles identisch, und das ist der Grund für die Bridge - ab hier wird alles identisch konfiguriert, gleich, welche Bustechnik und welche Verbindung zum Bus besteht.
                  openHAB2 verfolgt die Philosophie, Hardware in Software abzubilden, um sie in einem zweiten Schritt zu abstrahieren. Im Fall von knx hast Du nun die Wahl, ob Du den gesamten Bus als ein Gerät betrachtest, oder lieber jedes knx Gerät als einzelnes Gerät betrachtest. Auf jeden Fall brauchst Du immer mindestens ein Device, das heißt in openHAB-Sprech "Thing".
                  Code:
                  Thing device thebenBin1_1_1 "ein Thing" [
                      address="1.1.1",
                      fetch=false,
                      pingInterval=600,
                      readInterval=0
                      ]
                  Dieses "Thing" muss einer knx Bridge zugeordnet sein. wenn Du das Ganze in Paper UI machst, erzeugst Du also zuerst eine Bridge (das ist auch ein Thing, aber eben ein spezielles), und dann im Anschluss mindestens ein knx Thing, welches Du der Bridge zuordnest.
                  knx ist leider nicht sehr gesprächig, was die Innereien des Busses betrifft. Andere Bussysteme, wie z.B. zwave oder homematic verraten per Anfrage alles über die Teilnehmer, welche Funktionen diese unterstützen, welche Messdaten sie liefern und so weiter. in knx ist das nicht vorgesehen, also musst Du diese Daten per Hand anlegen, das sind dann die Channel.
                  In knx werden Nachrichten zwischen Geräten über GA mit unterschiedlichen DPT ausgetauscht. Für das Verständnis des Zusammenspiels ist es wichtig, zu verstehen, dass openHAB hier einen anderen Ansatz verfolgt.
                  Der erste Schritt ist, die korrekten GA zu finden. dazu musst Du Dich auf die Aktoren konzentrieren.
                  Für ein Licht ist es irrelevant, welcher Schalter es nun geschaltet hat, wichtig ist, dass der Aktor geschaltet wird, und dass dieser Schaltvorgang auch zurückgemeldet wird. Jeder Schaltkanal wird durch einen Channel repräsentiert, wenn Du also einen 6-Kanal-Schaltaktor hast, besitzt dieser 6 Channel (Sonderfunktionen betrachten wir später).
                  Der Schaltkanal benötigt zur Funktion nur eine GA, sinnvoll sind aber exakt zwei GA: Die 1. GA ist die, über die der Aktor den Schaltbefehl erhält. Die 2. GA ist die Rückmelde-GA, über die der Schaltaktor seinen Zustand meldet. Diese GA ist immer exklusiv, nur der Schaltaktor darf auf dieser GA schreiben, die Adresse ist lesbar, das heißt, openHAB kann hier anfragen, welchen Zustand der Aktor gerade hat. Die Notation entspricht dem von knx, ein Aktor mit den GA 0/0/1 auf dem Schaltobjekt und der GA 0/0/2 auf dem Rückmeldeobjekt wird dann so als Channel angelegt:
                  Code:
                  Type switch: ch1 "Schaltkanal 1" [ ga="1.001:0/0/1+<0/0/2" ]
                  Bedeutet: Lege einen Channel ch1 an, der Typ ist Schaltkanal, mit den GA 0/0/1 zum schalten und 0/0/2 als Rückmeldung.
                  Der Name des Channels muss je Device eindeutig sein, genauso wie jedes Device je Bridge einen eindeutigen Namen tragen muss.
                  Die Notation in Paper UI ist exakt die gleiche, nur, dass es dort entsprechend beschriftete Felder gibt.

                  Als Ergebnis bekommst Du eine knx.things Datei:
                  Code:
                   Bridge knx:ip:bridge "Weinzierl 730 IP" [
                      ipAddress="ip.der.ip.schnittstelle",
                      localIp="ip.des.openhab.rechners",
                      type="TUNNEL",
                      portNumber=3671,
                      readingPause=50,
                      responseTimeout=10,
                      readRetriesLimit=3,
                      autoReconnectPeriod=60,
                      localSourceAddr="0.0.0"
                      ]
                      {
                      Thing device thebenBin1_1_1 "ein Thing" [
                          address="1.1.1",
                          fetch=false,
                          pingInterval=600,
                          readInterval=0
                          ]
                          {
                          Type switch : ch1 "Kanal 1" [ ga="1.001:0/0/1+0/0/2" ]
                          Type switch : ch2 "Kanal 2" [ ga="1.001:0/0/3+0/0/4" ]
                          Type switch : ch3 "Kanal 3" [ ga="1.001:0/0/5+0/0/6" ]
                          Type switch : ch4 "Kanal 4" [ ga="1.001:0/0/7+0/0/8" ]
                          Type switch : ch5 "Kanal 5" [ ga="1.001:0/0/9+0/0/10" ]
                          Type switch : ch6 "Kanal 6" [ ga="1.001:0/0/11+0/0/12" ]
                          }
                      }
                  Damit openHAB mit diesen Kanälen auch etwas anfangen kann, müssen Items je Channel angelegt und verlinkt werden.
                  Code:
                  Switch ein_Thing_Kanal_1 "Kanal 1" { channel="knx:device:bridge:thebenBin1_1_1:ch1" }
                  Switch ein_Thing_Kanal_2 "Kanal 2" { channel="knx:device:bridge:thebenBin1_1_1:ch2" }
                  Switch ein_Thing_Kanal_3 "Kanal 3" { channel="knx:device:bridge:thebenBin1_1_1:ch3" }
                  Switch ein_Thing_Kanal_4 "Kanal 4" { channel="knx:device:bridge:thebenBin1_1_1:ch4" }
                  Switch ein_Thing_Kanal_5 "Kanal 5" { channel="knx:device:bridge:thebenBin1_1_1:ch5" }
                  Switch ein_Thing_Kanal_6 "Kanal 6" { channel="knx:device:bridge:thebenBin1_1_1:ch6" }
                  Wenn Du nun ein solches Item auf einer Sitemap platzierst, kannst Du zum einen sehen, welchen Zustand der Channel hat, zum anderen kannst Du den Channel steuern.

                  Natürlich gibt es noch weitere Channeltypen: dimmer, rollershutter, number, contact, string und datetime.

                  All diese Channel haben eins gemein: es geht immer um Aktoren auf knx-Seite. (Number und Contact sind natürlich Sensoren...), aber niemals um Schalter.
                  Wenn Du einen Schalter verwenden willst, um in in openHAB etwas zu schalten, dann muss openHAB als Aktor auftreten, dafür gibt es alle Channel nochmals als -control Variante. Dabei ist die Funktion umgekehrt, ein Befehl wird nur empfangen, aber nicht an den Bus geschickt, dafür kann openHAB den Status senden.
                  Zuletzt geändert von udo1toni; 18.07.2018, 18:17.

                  Kommentar


                    #10
                    Danke für die tolle Erklärung!

                    Kommentar


                      #11
                      Leider hab ich den Artikel etwas eilig weg geschickt. Ich hab gerade mal ein paar Korrekturen vorgenommen (Nur Typos, aber in der Item-Definition muss natürlich vorne das Schlüsselwort für den Item-Type stehen, nicht das Wort Item)

                      Kommentar


                        #12
                        Eine Frage noch:
                        wie bindet man einen externen Taster (also einen an der Wand) an?
                        Du sprachst ja nur Aktoren an.

                        Gruß,
                        Hendrik

                        Kommentar


                          #13
                          Genau. Wenn Du einen knx Taster hast, der keinen Aktor steuert, musst Du den Channel als switch-control (oder dimmer-control, wenn es ein Dimm-Taster ist) anlegen:
                          Code:
                          //... Teil eines knx Things
                          Type switch-control : ch1 "Taster 1" [ ga="1.001:1/1/2+1/1/1" ]
                          Dabei gilt: über 1/1/2 kann openHAB den Status senden, über 1/1/1 sendet der Taster den Befehl ON/OFF.
                          Das zugehörige Item sieht dann so aus:
                          Code:
                          Switch myKNXswitch1 "Taster 1" { channel="knx:device:bridge:thing:ch1" }
                          also weitgehend identisch mit den "normalen" Channels. Nur, dass so ein Item nun Kommandos empfängt, das heißt, wenn Du eine Rule programmierst, um den Schaltbefehl zu verarbeiten, ist der Trigger received command:
                          Code:
                          rule "reagiere auf knx Taster"
                          when
                              Item myKNXswitch1 received command
                          then
                              if (receivedCommand == ON) {
                                  //Taster wurde eingeschaltet. Tu was
                              }
                              else if (receivedCommand == OFF) {
                                  //Taster wurde ausgeschaltet. Tu was anderes
                              }
                          end
                          Da es im Fall von Switch nur exakt zwei Kommandos gibt, nämlich ON und OFF, kann das zweite if() auch komplett entfallen, ich hab es hier nur zum Verdeutlichen der Funktion hingeschrieben.

                          Wenn Du hingegen ein normales Item hast, welches den Zustand eines knx Aktor widerspiegelt, wird received command nicht triggern, weil schlicht kein Kommando empfangen wird. Stattdessen musst Du in einem solchen Fall auf changed triggern lassen, oder auf received update, je nachdem, was richtig ist.

                          Kommentar


                            #14
                            Danke!

                            Kommentar


                              #15
                              Holla die Waldfee. Vielen Dank für die umfangreiche Erklärung. Hut ab!

                              Also in der Theorie kann ich das in etwa nachvollziehen. In der Praxis tue ich mich damit etwas schwer. Also hab ich das richtig, dass ich mich in jedem Fall für eine Konfiguration entscheiden muss? Entweder visuell über PaperUI/Habmin oder über konfigurierten Dateien. Ich bin eher ein Fan von visualisierten Konfigurationen. Nur leider lassen sich meine KNX Geräte nicht vernünftig anlagen. Ein KNX/IPGateway habe ich angelegt, wird auch online angezeigt. Als nächstes habe ich ein Device in PapierUI angelegt, mit den der der Gruppenadresse eines 20er-Aktors. Auch der wird als "online" angezeigt. So und nun hört es auch schon auf... wenn ich nun als nächstes versuche die Deckenlampe im Wohnzimmer (wie oben in meinen Beispielen) anzulegen, wird das Item als offline angezeigt. Wenn ich dann bei diesem Item ein Link verknüpfe, erscheint unter "Control" zwar diese Deckenlampe, nur passiert beim Schalten nichts.

                              Mein Ziel ist es, alle meine smarten Geräte in openHab zu hinterlegen und so die openhab-App auf dem Handy zu nutzen. Dann muss man nicht für alle Geräte die unterschiedlichen Apps der Hersteller nutzen (als Beispiel Hue, Netgear, Homematic etc.). Am Ende möchte ich ebenso gerne alle in openHab hinterlegten Geräte über Amazons Echo Sprachsteuern.

                              Kommentar

                              Lädt...
                              X