Ankündigung

Einklappen
Keine Ankündigung bisher.

Kommunikation OH3 / KNX

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

    Kommunikation OH3 / KNX

    Hallo zusammen!

    Ich bin in der Programmierung noch kein Profi, bräuchte deswegen bitte eure Unterstützung.

    Hab das Haus mit Knx ausgestattet (inkl. Gira x1 & s1)

    Parallel hab ich mit OH3 eine Erweiterung (Strommessung...usw.) vor.

    Mein Problem ist, dass ich nicht herausgefunden hab, wie ich mein IP Router mit MQTT verbinden kann, damit ich Werte aus OH3 in KNX einbinden kann.

    Andersrum (von KNX to OH3) funktioniert es super.

    Ich möchte das Ganze über KNX bzw. X1 laufen lassen und OH3 soll nur die Erweiterung sein.

    Wäre ein traum wenn mir jemand helfen kann.

    Danke

    BG Alex

    #2
    Kann dir leider nicht folgen,
    Was hat die Kommunikation zwischen KNX und Openhab mit MQTT zu tun?

    Kommentar


      #3
      🙈 wurde schon aufgeklärt, dass ich mqtt nicht brauch ...

      Wie krieg ich die Sachen von OH3 auf knx ?

      Kommentar


        #4
        Schau dir die Doku des Bindings an.
        Du brauchst Control Channel
        Den Channel verlinkst du mit dem Item das du übertragen willst.
        Anschließend noch das Profile prüfen, die genauen Einstellungen weiß ich leider nicht.

        Kommentar


          #5
          "Die Sachen" ist auch etwas unscharf.
          Aber grundsätzlich, für Geräte, die an openHAB angebunden sind, und die von knx gesteuert werden sollen, übernimmt openHAB gegenüber knx die Rolle des Aktors oder auch des Sensors. Gewöhnlich wäre openHAB gegenüber knx eher ein Schalter, ein Display usw.

          Oder anders:
          knx ist gewöhnlich Datenquelle, openHAB die Datensenke. openHAB sendet Befehle und empfängt Status.
          Für Nicht-knx-Dinge, die in openHAB eingebunden sind, ist es anders herum. openHAB ist die Datenquelle, knx ist die Datensenke. openHAB empfängt Befehle und sendet Status.

          Dazu werden, wie schon von Martin beschrieben, *-control Channel verwendet (leider ist das nicht einheitlich in den Bindings abgebildet... bei knx funktioniert es mit eigenem Channeltyp)
          Wichtig zu verstehen: Da openHAB die Rolle des Aktors oder Sensors übernimmt, ist openHAB "Besitzer" des Status des Geräts (stellvertretend gegenüber knx). openHAB kann also auch nicht bei knx nach dem Status fragen. Man kann das dennoch so konfigurieren, weil es, wie bei knx üblich, in openHAB möglich ist, mehrere GA auf ein KO zu konfigurieren. Die Status-GA wird dabei mitt einem < markiert und openhAB versucht beim Systemstart, den Status zu erfragen. Aber eben nicht bei den *-control Channels, dort ignoriert openHAB die Konfiguration, da es den Status ja aus anderer Quelle erhält.
          Nur die Haupt-GA (die erste angegebene GA im KO) ist in der Lage, zu senden. Alle anderen GA in diesem KO sind nur Empfänger. openHAB verhält sich hier genau wie alle anderen knx Devices.

          Einfaches Beispiel: gegeben ist ein knx Wandtaster mit zwei GA. Beide GA sind DPT1.001, die erste, 1/1/1 wird vom Taster auf den Bus gesendet, wenn sie gedrückt wird. Die zweite GA, 2/2/2 dient als Status-GA, im Taster wird eine Leuchtdiode ein- oder ausgeschaltet. Außerdem ist der Taster als Toggle konfiguriert und ist status aware, das heißt, wenn der aktuelle Status 0 ist, sendet der Tastendruck eine 1, wenn der aktuelle Status 1 ist, sendet der Tastendruck eine 0 (ganz unabhängig davon, was der Taster selbst zuletzt gesendet hat... so funktioniert das gewöhnlich bei knx)

          In openHAB gibt es eine per mqtt steuerbare Lampe, die von knx mit dieser Taste geschaltet werden soll. Dann sieht der Channel für die Taste so aus:
          Code:
          Type switch-control : ch1 "Taste  1" [ ga="2/2/2+1/1/1" ]
          Die Schreibweise ist die von openHAB2, weil sie weniger Platz braucht als der Code in openHAB3

          Wir erinnern uns: die erste GA wird zum Senden verwendet, die zweite GA empfängt nur. Wenn der knx Taster gedrückt wird, empfängt openHAB also auf der GA 1/1/1 den Befehl 1 oder 0, was als ON/OFF interpretiert wird (switch...)

          Dieser Channel wird mit einem Item verlinkt, welches auch mit der Lampe verlinkt ist, das ist ein Switch Item, nennen wir es Lampe1:
          Code:
          Switch Lampe1 "Stehlampe" {channel="mqtt:topic:mosquitto:Lampe:ch1", channel="knx:bridge:generic:ch1"}
          In dem Moment, wo der Taster gedrückt wird, kommt der Befehl z.B. als ON Befehl beim Item an, was der zweite verlinkte Channel mitbekommt. Der Befehl wird in das passende Topic gesendet. Die Lampe schaltet ein. Die Lampe sendet ihren neuen Staus auf ein weiteres Topic, welches als stateTopic im selben Channel angelegt ist. Also sendet das mqtt Binding den neuen Status an das Item Lampe1. Das registriert der verlinkte knx Channel und setzt diesen neuen Status direkt in einen Befehl (aber es ist eigentlich nur der neue Status) in Richtung knx um. Senden geht nur über die erste angegebene GA, also sendet das knx Binding auf GA 2/2/2 eine 1. Der Taster empfängt die 1 und setzt den Status auf ON. Beim nächsten Tastendruck wird er also eine 0 senden.

          Der Witz dabei: Wenn zwischenzeitlich die Lampe ausgeschaltet wurde (egal ob nun an der Lampe selbst, über die openHAB UI, über einen MQTT Befehl, der unabhängig von openHAB an die Lampe gesendet wurde, oder weil es sich bei der Lampe um ein Treppenhauslicht mit eingebautem Ausschalttimer handelt...), so sendet die Lampe den neuen Status direkt an mqtt, welches den neuen Status an openHAB meldet, welches den Status in das Item Lampe1 schreibt, wodurch das knx Binding den neuen Status 0 an knx sendet (auf GA 2/2/2) wodurch der Taster den neuen Status OFF siganlisiert. Und beim nächsten Tastendruck sendet der Taster erneut eine 1.

          Alle Klarheiten beseitigt?
          Zuletzt geändert von udo1toni; 27.10.2022, 19:43.

          Kommentar


            #6
            Auf jeden Fall!!!
            werd es gleich versuchen.

            Danke vielmals! 🙂

            Kommentar

            Lädt...
            X