Ankündigung

Einklappen
Keine Ankündigung bisher.

KLF 200 an KNX anbinden

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

    KLF 200 an KNX anbinden

    Hallo zusammen,

    ich möchte gerne meine Velux Fenster und die Beschattung per MDT Glastaster ansteuern.

    Um einen ersten Erfolg zu erziehen, wollte ich den Wert "Position" an KNX weiterleiten, sodass ich erstmal in der ETS 50% angeben kann und das Fenster fährt.

    Dies habe ich wie folgt gelöst:

    knx.things:

    Code:
    [COLOR=#569cd6]Bridge[/COLOR][COLOR=#d4d4d4] knx[/COLOR][COLOR=#c586c0]:[/COLOR][COLOR=#d4d4d4]ip[/COLOR][COLOR=#c586c0]:[/COLOR][COLOR=#d4d4d4]bridge [  [/COLOR]
    [COLOR=#d4d4d4]    type=[/COLOR][COLOR=#ce9178]"TUNNEL"[/COLOR][COLOR=#d4d4d4], [/COLOR]
    [COLOR=#d4d4d4]    ipAddress=[/COLOR][COLOR=#ce9178]"192.168.1.xx"[/COLOR][COLOR=#d4d4d4], [/COLOR]
    [COLOR=#d4d4d4]    portNumber=[/COLOR][COLOR=#b5cea8]3671[/COLOR][COLOR=#d4d4d4], [/COLOR]
    [COLOR=#d4d4d4]    localIp=[/COLOR][COLOR=#ce9178]"192.168.1.xx"[/COLOR][COLOR=#d4d4d4],[/COLOR]
    [COLOR=#d4d4d4]    readingPause=[/COLOR][COLOR=#b5cea8]50[/COLOR][COLOR=#d4d4d4], [/COLOR]
    [COLOR=#d4d4d4]    responseTimeout=[/COLOR][COLOR=#b5cea8]10[/COLOR][COLOR=#d4d4d4], [/COLOR]
    [COLOR=#d4d4d4]    readRetriesLimit=[/COLOR][COLOR=#b5cea8]3[/COLOR][COLOR=#d4d4d4], [/COLOR]
    [COLOR=#d4d4d4]    autoReconnectPeriod=[/COLOR][COLOR=#b5cea8]60[/COLOR][COLOR=#d4d4d4],[/COLOR]
    [COLOR=#d4d4d4]    localSourceAddr=[/COLOR][COLOR=#ce9178]"1.0.0"[/COLOR]
    [COLOR=#d4d4d4]] {[/COLOR]
    [COLOR=#d4d4d4]    [/COLOR][COLOR=#569cd6]Thing[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]device[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]generic[/COLOR][COLOR=#d4d4d4] [[/COLOR]
    [COLOR=#d4d4d4]        address=[/COLOR][COLOR=#ce9178]"1.2.3"[/COLOR][COLOR=#d4d4d4],[/COLOR]
    [COLOR=#d4d4d4]        fetch=[/COLOR][COLOR=#569cd6]true[/COLOR][COLOR=#d4d4d4],[/COLOR]
    [COLOR=#d4d4d4]        pingInterval=[/COLOR][COLOR=#b5cea8]300[/COLOR][COLOR=#d4d4d4],[/COLOR]
    [COLOR=#d4d4d4]        readInterval=[/COLOR][COLOR=#b5cea8]3600[/COLOR]
    [COLOR=#d4d4d4]    ] {[/COLOR]
    [COLOR=#d4d4d4]        [/COLOR][COLOR=#4ec9b0]Type[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]rollershutter[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]:[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]demoRollershutter[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178]"Shade"[/COLOR][COLOR=#d4d4d4]       [ upDown=[/COLOR][COLOR=#ce9178]"0/4/4"[/COLOR][COLOR=#d4d4d4], stopMove=[/COLOR][COLOR=#ce9178]"0/4/5"[/COLOR][COLOR=#d4d4d4], position=[/COLOR][COLOR=#ce9178]"0/4/3"[/COLOR][COLOR=#d4d4d4] ][/COLOR]
    [COLOR=#d4d4d4]        }[/COLOR]
    [COLOR=#d4d4d4]}[/COLOR]
    knx.items:

    Code:
    [COLOR=#569cd6]Rollershutter[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]demoRollershutter[/COLOR][COLOR=#d4d4d4]  [/COLOR][COLOR=#ce9178]"Shade [%d %%]"[/COLOR][COLOR=#d4d4d4]            <rollershutter>  { [/COLOR][COLOR=#c586c0]channel[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]"velux:window:a14e248e:Kind_Ostosition"[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#c586c0]channel[/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#ce9178]"knx:device:bridge:generic:demoRollershutter"[/COLOR]
    In der PaperUI wird mir nun ein Shutter im KNX Device sowie vom KLF200 angezeigt.
    PaperUI.png

    Gebe ich nun bei Kind Ost in der Paper UI den Wert 50% ein fährt das Fenster auf. Gebe ich den Wert in der PaperUI bei KNX-Device ein fährt da Fenster auch.

    Sende ich den Wert 50% jedoch aus der ETS steht zwar bei beiden 50%, aber das Fenster bewegt sich nicht.


    Kann mir jemand sagen, wo das Problem sein könnte?

    Oder muss ich die Ansteuerung des Fensters besser über eine "Rule" lösen.

    Das nächste Problem wird sicherlich sein, dass im KNX die Ansteuerung von Beschattung bzw. Fenstern über Langem und kurzen Tastendruck erfolgt.
    (Lang fahren , Kurz Schritt / Stop) und openhab derzeit 3 Befehle erwartet Hoch / Runter / Stop.

    Aber damit werde ich mich im Step 2 beschäftigen, sobald die Kommunikation zwischen KNX und Velux KLF 200 steht.


    Viele Grüße
    Florian





    #2
    Du willst einen knx Taster verwenden, um ein Nicht-knx-Gerät zu steuern. openHAB soll also als Gateway dienen. Dazu musst Du den Channel als -control Channel definieren.

    Allerdings ist Deine knx-Bridge-und-Thing-Konfiguration suboptimal. Lass bitte alle Parameter weg, die Du nicht unbedingt brauchst.
    Code:
    Bridge knx:ip:bridge [
        type="TUNNEL",
        ipAddress="192.168.1.xx", // die IP des knx/IP Gateways
        localIp="192.168.1.xx" // die IP des Rechners, auf dem openHAB läuft
     ] {
        Thing device generic [
         ] {
            Type rollershutter-control : demoRollershutter "Shade" [ upDown="0/4/4", stopMove="0/4/5", position="0/4/3" ]
        }
    }
    Alle Parameter, die dem Default Wert entsprechen, sollten am besten gar nicht angegeben werden (das bezieht sich hier auf die Bridge).


    Die localSourceAddr ist NICHT eine der Adressen des knx/IP Gateways und darf überhaupt keinem Device zugeordnet sein (es sei denn natürlich, dass es sich um ein nicht angeschlossenes Gerät handelt). Die 1.0.0 ist definitiv nicht erlaubt, da es sich per Definition um eine Bereichskopppler-Adresse handelt. openHAB tritt gegenüber knx als ganz normaler Busteilnehmer auf.
    Da das Thing als Namen "generic" trägt, solltest Du keine physikalische Adresse angeben. Alternativ kannst Du natürlich eine Adresse angeben, dann aber bitte den Device-Namen ändern (z.B. in shutter1 für Rollershutter Device 1). Hier geht es einfach um sinnvolle Konventionen.
    Der Parameter fetch=true liest Devices aus, sofern diese das unterstützen. Das bringt allerdings nur optischen Mehrwert, zum Test ist diese Funktion besser zu deaktiveren.
    Das readInterval schließlich sorgt für die zyklische Abfrage als lesbar markierter GA (das erreicht man mit einem vorangestellten <). Abgesehen davon, dass Du keine solchen Adressen angegeben hast, sollte man die zyklische Abfrage nur aktivieren, wenn es sich nicht vermeiden lässt, also wenn man z.B. Sensoren nutzt, die weder bei Wertänderung noch zyklisch senden können. pingInterval ist mit 300 schon der Default (funktioniert natürlich nur, wenn auch eine address gesetzt ist).

    Wie Eingangs erwähnt ist aber Dein Hauptproblem fast sicher, dass Du den Channel in die falsche Richtung definiert hast. Standard Verhalten ist, dass die knx-Geräte von openHAB gesteuert werden, Befehle gehen also von openHAB nach knx, während Meldungen von knx nach openHAB als Status gewertet werden. Ein knx Schalter, der andere openHAB Hardware steuert, funktioniert allerdings genau entgegengesetzt, der Befehl geht von knx nach openHAB, während openHAB gegebenenfalls ein Status Update an knx schickt. Dafür nutzt man dann die erwähnten *-control Channel.
    Zuletzt geändert von udo1toni; 20.11.2020, 01:35.

    Kommentar


      #3
      Hallo,

      vielen Dank für die schnelle Antwort. Die KNX Gateway Einstellungen habe ich entsprechend bearbeitet. Die Verbindung besteht wie erwartet weiter.

      Leider hat der Control Parameter keinen erfolg verbracht. Ich werde es jetzt doch noch mal mit einer Rule probieren. Es ist ja auch noch die KNX-Konforme ansteuerung erforderlich. Also die Steuerung über langen und kurzem Tastendruck.

      Soweit ich das umgesetzt habe, werde ich mich noch mal mit einer Lösung melden.

      Leider ist meine zeit gerade kurzfristig wieder knapp geworden. Daher wird das weitere Programmieren noch weiter vor mir her geschoben.

      Viele Grüße
      Florian

      Kommentar


        #4
        Zitat von codef Beitrag anzeigen
        Leider hat der Control Parameter keinen erfolg verbracht. Ich werde es jetzt doch noch mal mit einer Rule probieren. Es ist ja auch noch die KNX-Konforme ansteuerung erforderlich. Also die Steuerung über langen und kurzem Tastendruck.
        das kann ich jetzt nicht nachvollziehen. Was meinst Du mit knx-konform? Das ist doch schon knx-konform?

        Kommentar


          #5
          Du hast recht. Die Anbindung in Open hab entspricht dem der KNX-Objekte. Da habe ich mich versehen.

          Dann muss ich noch mal schauen warum die Kommunikation nicht stattfindet. Aber der Control-Parameter muss nur beim KNX-Thing hin, oder auch bei dem Velux Thing?
          Lertzteres habe ich ja in der Papter-UI konfiguriert und steht mir so im Dateisystem gar nicht zur Bearbeitung zur Verfügung.

          Kommentar


            #6
            Nein, das ist eine knx-spezifische Sache. Bau erst mal nur den Control -Channel gegen ein passendes Item ein. Starte openHAB mal neu, um sicherzugehen, dass alle Änderungen wirklich aktiv sind.

            Betätige den Taster und schau, ob in openHAB passende Telegramme ankommen. Falls das nicht der Fall ist, geh in die Karaf Konsole und aktiviere das Debug Logging für das knx Addon. Der Busverkehr sollte nun auf jeden Fall sofort und vollständig im Log landen.

            Kommentar


              #7
              Hallo nochmal,

              ich hatte tatsächlich noch einen Fehler im KNX-Binding. Nach dem ich diesen behoben hatte trat jedoch das Phänomen auf, dass im sekundentakt der %-Wert der Position auf den BUS gesendet worden ist. Dies konnte ich nicht lösen.

              Zwischenzeitlich habe ich jedoch die gesammte Konfiguration mit der Paper-Ui erledigen können. Hier funktioniert die Verknüpfung.

              Ich denke in den Feiertagen werde ich noch mal Zeit finden, auch über die Konfigurationsdateien das gleiche Ziel zu erreichen.

              Trotzdem schon mal vielen Dank für die Unterstützung bis hier her.

              Kommentar

              Lädt...
              X