Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX - Neuling und OpenHAB

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

    KNX - Neuling und OpenHAB

    Hallo zusammen,
    das ist mein Erster Beitrag hier und ich Frage aus Verzweiflung :S
    ich kenne nur die Grundlagen von KNX und habe mich so ein bisschen in OpenHAB eingelesen.
    Nach Wochenlangen suchen und unnötiger Zeitverschwendung für Dinge, die eigentlich sehr einfach waren, habe ich nun aufgegeben und brauche Hilfe.

    Mein Problem: Ein 4-fach Dimmaktor von Merten über das Hab-Panel bedienen

    Folgendes ist vorhanden:
    • Raspberry 3B+
    • 7" Display (bereits umgestellt um es auf den Raspberry zu benutzen)
    • TP-Link Router TL-MR6400
    • 3 x Philips Hue Leuchten + Bridge (kann man auch so ohne Probleme über UI verknüpfen)
    • 1 x normale LED(dimmbar)
    • Merten 4-fach Aktor ME6710-0004
    • ETS 5
      • Dimmer zum schalten und Dimmen eingestellt
        • Gruppen-Adresse laut ETS
          • Schalten 1/0/0
          • Dimmen 1/0/1
        • Dimmaktor-Adresse
          • 1.0.1
      • IP-Router auf Standard Multicast gelassen
    • WinSCP
    • Microsoft Visual Code
      • Extension OpenHAB installiert
    • PuTTY
    • Raspbian Buster with desktop and recommended software
      • Über Raspian den Ordner Openhab freigegeben für alle
      • samba installiert
      • openHAB auf autostart programmiert
      • KNX, Network und Hue Binding über das Paper UI installiert
      • SSH aktiviert
    • IP-Adressen
      • IP-Router: 192.168.1.100 (feste IP)
      • Raspberry Pi: 192.168.103 (feste IP)
    Folgendes habe ich getan.
    knx.things im Ordner etc/opbenhab2/things erstellt mit folgendem Inhalt:
    Code:
    Bridge knx:ip:bridge [
        ipAddress="224.0.23.12",
        portNumber=3671,  
        type="ROUTER",
        readingPause=50,
        responseTimeout=10,
        readRetriesLimit=3,
        autoReconnectPeriod=1,
        localSourceAddr="0.0.0"
    ] {
        //AB HIER WERDEN DIE DEVICES ANGELEGT
        Thing device DimmAktor-Test[
            address="1.0.1",
            fetch=true,
            pingInterval=300,
            readInterval=0
        ] {
            Type dimmer        : demoDimmer        "Dimmer-Test"       [ switch="1.001:1/0/0", increaseDecrease="3.007:1/0/1" ]
            //-->Hier weitere Channels einfügen
        }
    }
    knx.items im Ordner etc/opbenhab2/items erstellt mit folgendem Inhalt:
    Code:
    Dimmer Licht_UG_Schlafen_Wand  "Schlafen Wand" <light> { channel="knx:device:bridge:DimmAktor-Test:licht_UG_Schlafen_Wand" }
    Die Sachen tauchen im Paper UI auf, aber es passier nichts

    Muss ich in der ETS vorher was ändern und programmieren?
    Sind meine Adressen falsch?


    Ich habe viele Tutorials Stunden lang nachgelesen und geschaut. Die einen Arbeiten mit dem Binding 1.x die anderen mit 2.x. Der eine Schreibt den Code so und der andere wieder anders.

    Würde mich über eine Antwort sehr freuen. So viel aufwand, nur um ein Licht ein und auszuschalten/dimmen -_-

    #2
    Steht irgendwas in den Logs drin?

    Ich nutze selbst das 1er Binding mit Multicast, das läuft. Wichtig ist die knx.cfg, Things gibts da nicht, die Gruppenadressen werden mit den items verlinkt.

    knx.cfg:

    Code:
    # KNX gateway IP address 
    # (optional, if serialPort or connection type 'ROUTER' is specified)
    ip=224.0.23.12
    
    # 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)
    busaddr=1.1.10
    
    # 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 "ignorelocalevents=true"
    # (optional, defaults to false)
    ignorelocalevents=true
    
    # 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.
    type=ROUTER
    
    # KNX gateway port (optional, defaults to 3671)
    # Note: If you use eibd, setting to 6720
    port=3671
    
    # Local endpoint to specify the multicast interface, no port is used (optional)
    localIp=224.0.23.12
    
    # 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
    #serialPort=
    
    # Pause in milliseconds between two read requests on the KNX bus during
    # initialization (optional, defaults to 50)
    #pause=
    
    # Timeout in milliseconds to wait for a response from the KNX bus (optional, 
    # defaults to 10000)
    #timeout
    
    # Number of read retries while initialization items from the KNX bus (optional,
    # defaults to 3)
    #readRetries
    
    # Seconds between connect retries when KNX link has been lost
    # 0 means never retry, it will only reconnect on next write or read request
    # Note: without periodic retries all events will be lost up to the next read/write
    #       request
    # (optional, default is 0)
    #autoReconnectPeriod=30
    
    ### Auto refresh feature
    # Number of entries permissible in the item refresher queue. 
    # (optional, defaults to 10000)
    #maxRefreshQueueEntries=
    
    # Number of parallel threads for refreshing items. (optional, defaults to 5)
    #numberOfThreads=
    
    # Seconds to wait for an orderly shutdown of the auto refresher's 
    # ScheduledExecutorService. (optional, defaults to 5)
    #scheduledExecutorServiceShutdownTimeoutString=
    
    # Use NAT (Network Address Translation)
    #  (optional; defaults to false)
    #useNAT=true
    item:

    Code:
    // Hue Lichter
    Dimmer e14 "Helligkeit [%d %%]" { knx="1.001:1/0/1, 5.001:1/1/1", channel="hue:0220:819929332:2:brightness" }
    Dimmer tolomeo "Tolomeo [%d %%]" [ "Lighting" ] { knx="1.001:1/0/2, 5.001:1/1/2", channel="hue:0100:819929332:9:brightness", autoupdate="false"}
    Dimmer tv "Helligkeit [%d %%]" { knx="1.001:0/0/3, 5.001:1/1/3", channel="hue:0100:00212EFFFF011033:10:brightness" }
    Switch par36 "Status [%s %]" { knx="1.001:1/0/0", channel="hue:0010:819929332:5:switch" }

    Kommentar


      #3
      busfahrer79 Danke erst einmal für die Antwort. Habe das KNX2 am laufen. Überlege, ob ich auf KNX 1 umsteigen soll.

      Edit. Selbst nach Aktivierung von "Include Legacy 1.x Bindings" ist kein KNX 1 mehr verfügbar...ich forsche weiter. Ich vermute ich habe irgendwo am Anfang einen Fehler gemacht. ETS oder beim konfigurieren von OpenHAB
      Zuletzt geändert von J4M1983; 06.11.2019, 18:52.

      Kommentar


        #4
        Definier' dein Item richtig, dann klappt das auch. Tip: Du musst im Item den Channel schon genau so nennen, wie in der *.things Datei

        Kommentar


          #5
          Habe beide mal neu geschrieben:

          knx.things
          Code:
          Bridge knx:ip:bridge [
              ipAddress="224.0.23.12",
              portNumber=3671,  
              type="ROUTER",
              readingPause=50,
              responseTimeout=10,
              readRetriesLimit=3,
              autoReconnectPeriod=1,
              localSourceAddr="0.0.0"
          ] {
              //AB HIER WERDEN DIE DEVICES ANGELEGT
                  Thing knx:device:Dimm_Aktor[
                  address="1.0.1",
                  fetch=false,
                  pingInterval=300,
                  readInterval=0
              
              ] {
                  Type switch        : CemSwitch        "Light"       [ ga="1/0/0" ]
                  //-->Hier weitere Channels einfügen
              }
          }
          knx.items
          Code:
          Switch CemSwitch  "Ende Gelände" {knx="1.001:1/0/0"}
          Muss ich den IP-Router oder irgendein anderes Gerät in den Programmier-Modus nehmen ?
          Ich habe das Gefühl, dass ich irgendwo im Ansatz was falsch gemacht habe.
          Muss in der ETS der Dimmer parametriert werden?
          Zuletzt geändert von J4M1983; 06.11.2019, 20:22.

          Kommentar


            #6
            Deine Items Datei ist knx1 Binding Syntax. Vergiss das, wenn du neu anfängst mach es gleich mit dem 2er Binding. Du hast doch schon den richtigen Hinweis bekommen, die Namen im Channel der items Datei müssen denen aus der Things Datei entsprechen. Hier also so...

            Code:
             Bridge knx:ip:bridge [     ipAddress="224.0.23.12",     portNumber=3671,       type="ROUTER",     readingPause=50,     responseTimeout=10,     readRetriesLimit=3,     autoReconnectPeriod=1,     localSourceAddr="0.0.0" ] {     //AB HIER WERDEN DIE DEVICES ANGELEGT         Thing Dimm_Aktor[         address="1.0.1",         fetch=false,         pingInterval=300,         readInterval=0          ] {         Type switch        : CemSwitch        "Light"       [ ga="1/0/0" ]         //-->Hier weitere Channels einfügen     } }    
             Dimmer Licht_UG_Schlafen_Wand  "Schlafen Wand" <light> { channel="knx:device:bridge:DimmAktor:CemSwitch" }
            Dimm_Aktor: so heißt dein Aktor (Teil Thing xxx)
            CemSwitch: so heißt dein Channel (Teil Type switch xxx)

            Edit: doofer Editor, haut den zeilenumbruch kaputt - sorry
            Zuletzt geändert von irgendwer; 07.11.2019, 15:20.

            Kommentar


              #7
              Mal ne andere Frage, ich habe das Gefühl, dass ich in der ETS erst alles programmieren muss.
              Im Moment habe ich für den Dimmer nur folgende Gruppenadressen:
              1/0/0 Licht 1 - Schalten
              1/0/1 Licht 1 - Dimmen
              1/0/2 Licht 2 - Schalten
              1/0/3 Licht 2 - Dimmen
              1/0/4 Licht 3 - Schalten
              1/0/5 Licht 3 - Dimmen
              1/0/6 Licht 4 - Schalten
              1/0/7 Licht 4 - Dimmen

              Sonst habe ich erst einmal nichts eingestellt...wollte erst einmal testen.
              Unter Allgemein habe ich "Status Fehler -> aktive Rückmeldeobjekt" eingeschaltet. Dann sehe ich auf dem Taster ob die Kanäle an oder aus sind.
              Wahrscheinlich ist das nicht die korrekte programmierung für die Rückmeldung.

              Was muss alles in der ETS vorher gemacht werden?

              Kommentar


                #8
                Zuerst muss der KNX Teil deiner Anlage alleine funktionieren, erst dann macht es Sinn Openhab anzubinden.
                Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
                Albert Einstein

                Kommentar


                  #9
                  Tom0101 Der funktioniert auch folgendermaßen:

                  Tastsensor mit 8 Tasten:
                  Taste 1 Einschalten / Dimmen - Heller / Lampe 1
                  Taste 2 Ausschalten / Dimmen - Dunkler / Lampe 1
                  Taste 3 Einschalten / Dimmen - Heller / Lampe 2
                  Taste 4 Ausschalten / Dimmen - Dunkler / Lampe 2
                  Taste 5 Einschalten / Dimmen - Heller / Lampe 3
                  Taste 6 Ausschalten / Dimmen - Dunkler / Lampe 3
                  Taste 7 Einschalten / Dimmen - Heller / Lampe 4
                  Taste 8 Ausschalten / Dimmen - Dunkler / Lampe 4

                  An den roten Leds sehe ich auch, ob ein oder ausgeschaltet ist mit der Einstellung "Allgemein->Status Fehler -> aktive Rückmeldeobjekt"

                  Wie gesagt sonst ist nichts einprogrammiert. Folgende Kanäle sind verfügbar, aber hab NICHT als Gruppe drin
                  Dimmer-Kanäle.jpg

                  Kommentar


                    #10
                    Du musst mal anfangen, die hier gegebenen Tips umzusetzen und dich einzulesen. Deine OpenHAB-Konfiguration ist falsch (so falsch, dass man das eigentlich mit Lesen der Doku des KNX2-Bindings selbst bemerken müsste) und so lange das nicht mal mit einem simplen Schalter funktioniert. brauchst du mit Dimmern nicht anzufangen. Wenn du das dennoch tust, wirst du festellen, dass dir die Statusobjekte fehlen. Aber zu dem Thema ist auch schon alles gesagt:

                    Zitat von Tom0101 Beitrag anzeigen
                    Zuerst muss der KNX Teil deiner Anlage alleine funktionieren, erst dann macht es Sinn Openhab anzubinden.
                    Und dafür fehlen dir pro Kanal mindestens zwei, eher drei GAs. Du weisst nicht welche? Ist nicht schlimm, aber dann mach' erst mal deine Hausaufgaben damit du den KNX-Teil deiner Installation verstehst bevor du sie mit OH steuern möchtest. Dazu gibt's das Buch von Stefan, den Kurs vom "eibmeier" Manfred, Tutorials von MDT oder das Einsteigerforum.

                    So macht es keinen Spass, dir zu helfen.

                    Kommentar


                      #11
                      DiMa Danke erst einmal für die Antwort, das war ja auch meine Frage, ob ich erst alles als Gruppen anlegen muss, damit ich die steuern kann.
                      Dazu stand in fett geschrieben:
                      "Was muss alles in der ETS vorher gemacht werden?"


                      Ich war die ganze Zeit die Programmierung am hin- und herändern, dabei lag es nur an der ETS.
                      Die Doku war sehr hilfreich, aber ich wusste halt nicht, ob man das als Gruppenaddresse vorher definieren muss, damit es im Openhab läuft.
                      Danke irgendwer , ich habe da den Fehler entdeckt

                      Jetzt habe ich verstanden, dass ich anscheinend alles mit ETS einprogrammiere und dann parallel mit OpenHAB abgreife.

                      Ich lese mich mal in dem Buch Heimautomation mit KNX, DALI, 1-Wire und Co.: Das umfassende Handbuch. Einrichtung, Steuerung, Hardware-Tipps, Projekte (neue Ausgabe 2018)

                      im Bereich KNX durch...anscheinend fehlt mir noch das Grundverständnis.

                      Deswegen habe ich ja auch gefragt. Weil in den Dokus das alles drin ist. Nur konnte mir keiner mal sagen, dass erst die Gruppen erstellt werden müssen.

                      Das Problem war, dass ich neu in dem Gebiet bin und die Fehler nicht erkennen konnte.

                      Die Antwort: "erst muss das in der ETS laufen"
                      Ist keine Korrekte antwort, da ich mit dem Tastsensor alles steuern kann wie ich es will. Aber ich weiß jetzt wo der Fehler ist

                      Naja dann melde ich mich später noch mal.
                      Zuletzt geändert von J4M1983; 08.11.2019, 15:49.

                      Kommentar


                        #12
                        Um es mal etwas neutraler zu formulieren:

                        Deine knx Installation sollte laufen (das heißt, wenn Du den Wandtaster benutzt, um das Licht zu schalten oder zu dimmen, sollte die entsprechende Lampe reagieren.

                        ETS ist ein reines Konfigurationswerkzeug, wie Du sicher schon verstanden hast.

                        Eine konventionelle knx Installation (Lichtschalter oder auch Bewegungs- oder Präsenzmelder steuern Aktoren) nutzt nur eine kleine Teilmenge der Kommunikationsobjekte eines Aktors, gewöhnlich nur die Objekte für Schalten und relatives Dimmen, manchmal noch für Szenen. Wenn der Elektriker ordentlich gearbeitet hat, gibt es auch noch Rückmeldungen für alle Befehle.

                        Die Hausautomation benötigt aber andere Kommmunikationsobjekte. Für einen Dimmer sind das: Schalten, absoluter Dimmbefehl und absoluter Dimmwert. Für Deinen Dimmer Kanal 1 wären das die KO 0 2 und 9. dabei bekommt das KO 9 eine GA für sich alleine, denn diese GA meldet den Zustand des Dimmers an openHAB, und mehr noch, openHAB kann auf dier GA nachfragen, welchen Zustand der Dimmer gerade hat.

                        Deine Bridge ist schlecht konfiguriert. Du solltest insbesondere darauf verzichten, eine autoReconnectPeriod kleiner 30 einzustellen (die aktuelle Milestone Version von openHAB (2.5) verweigert aus gutem Grund Werte unter 30 für diesen Parameter.
                        Ansonsten kannst Du auch ohne Probleme alles weg lassen, was Default ist:
                        Code:
                        Bridge knx:ip:bridge [
                            type="ROUTER",
                        ] {     //AB HIER WERDEN DIE DEVICES ANGELEGT
                            Thing device DimmAktor-Test[
                            ] {
                                Type dimmer        : demoDimmer        "Dimmer-Test"       [ switch="1/0/0", position="5.001:1/1/1+<1/1/2" ]
                                //-->Hier weitere Channels einfügen
                            }
                        }
                        Ich gehe hier davon aus, dass das KO 2 mit der GA 1/1/1 gekoppelt ist, und das KO 9 mit der GA 1/1/2 gekoppelt ist.

                        Die Angabe der physikalischen Adresse pro Thing ist optional und sollte bei ersten Tests erst mal weg gelassen werden. fetch=true ist experimentell, das kannst Du Dir mal anschauen, wenn die Anbindung soweit funktioniert. (gleiches gillt für pingInterval).

                        Anschließend sollte ein Item der Form
                        Code:
                        Dimmer Licht_UG_Schlafen_Wand "Schlafen Wand [%d %%]" <light> { channel="knx:device:bridge:DimmAktor-Test:demoDimmer" }
                        das Licht steuern könnemn, z.B. über die Sitemap:
                        Code:
                        Default item=Licht_UG_Schlafen_Wand
                        Dabei wird die Basic UI automatisch einen Slider zeichnen, weshalb die Steuerung auch ausschließlich über absolutes Dimmen möglich ist.
                        Zuletzt geändert von udo1toni; 09.11.2019, 03:38.

                        Kommentar


                          #13
                          udo1toni Vielen Dank für deine ausführliche Antwort. Ich werde mich bald wieder da dran setzen. Ich vermute auch, dass es was mit den Adressen zu tun hat.
                          Ich glaube die Adresse, die in der ETS programmiert ist, ist nicht zwangsläufig die echte physikalische Adresse.

                          Kommentar


                            #14
                            Zitat von J4M1983 Beitrag anzeigen
                            Ich glaube die Adresse, die in der ETS programmiert ist, ist nicht zwangsläufig die echte physikalische Adresse.
                            Dann würde es sicher nicht über die physikalischen Schalter funktionieren. Evtl. lässt Du Dir mal einen Auszug des Projektes geben, mit der Zuordnung der Adressen, etc. Dann wird es ggfs. etwas klarer?

                            Kommentar


                              #15
                              Na ja, grundsätzlich spielt die physikalische Adresse in openHAB keine große Rolle. Für die Bus-Schnittstelle sollte es eine ungenutzte Adresse sein, damit es nicht zu Durcheinander kommt. Dass ma nsie in den Things definieren kann, ist momentan eher Spielerei.
                              Für die Kommunikation auf dem Bus spielt die Adresse ebenfalls keine Rolle, solange man auf derselben Linie bleibt oder einfache Repeater einsetzt. Nutzt man mehrere Linien, kann ein Router oder ein Linienkoppler Pakete anhand der physikalischen Adresse filtern. Bei der Programmierung ist die physikalische Adresse hingegen essentiell.

                              Kommentar

                              Lädt...
                              X