Seite 1 von 1

deCONZ binding und KNX binding kombinieren

Verfasst: 27. Apr 2020 12:49
von azzkikrboy
Hallo zusammen,

ich habe ein kleines Problem mit der Übergabe von Events zw. meinen Zigbee (über deCONZ) Geräten und der KNX Welt (über KNX Binding).

Konkret:
Ich habe einen XIAOMI Türkontakt über deCONZ in OH eingebunden. Der sendet auch schön die Events (changed to "OPEN" bzw. changed to "CLOSED").
Nun möchte ich dieses OPEN/CLOSED an eine KNX Logic weiterschicken und habe dieses ITEM angelegt. Das entsprechende contact-control thing EG_Keller incl. KNX GA existiert auch.

Code: Alles auswählen

Contact    Kellertuer_Open   "Open/close" {channel="deconz:openclosesensor:homeserver:keller-tuer:open", channel="knx:device:bridge:Keller:Tuer"}
Nur leider sehe ich auf dem KNX Bus nix ankommen.
Mein "unschöner" Workaround ... eine Rule:

Code: Alles auswählen

rule "Tuer Kontakt"
when Item Kellertuer_Open received update
then
    if (Kellertuer_Open.state == OPEN) {
        EG_Keller.sendCommand(OPEN)
        logInfo("Zigbee", "Kellertür offen")
    }
    if (Kellertuer_Open.state == CLOSED) {
        EG_Keller.sendCommand(CLOSED)
        logInfo("Zig", "Kellertür zu")
    }
end
Das sollte doch auch über die Verknüpfung der channels funktionieren ?

Umgekehrt funktioniert das. Also von KNX -> deCONZ OHNE eine Rule.

Eine HUE Lampe über einen KNX-Taster dimmen ... (über deCONZ mit HUE Binding)
Auch hier das entsprechende dimmer-control thing incl. der KNX GA vorhanden

Code: Alles auswählen

Dimmer   L1_ColorTemperature    "Farbtemperatur"  {channel="hue:0210:000000000000:1:color_temperature", channel="knx:device:bridge:Abi_Lampe:DimmenHue"}
Oder geht das nur in dieser Richtung ?

LG
Frank

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 27. Apr 2020 21:49
von udo1toni
Nein, das sollte schon in beide Richtungen funktionieren. Ich würde übrigens erwarten, dass Deine Rule nicht funktioniert. Wenn der knx Channel als contact-control definiert ist, sollte ein .postUpdate auf den Bus durchgereicht werden, .sendCommand aber nicht.

Die Rule könntest Du so oder so kürzer gestalten:

Code: Alles auswählen

rule "Tuer Kontakt"
when
    Item Kellertuer_Open received update
then
    EG_Keller.postUpdate(Kellertuer_Open.state)
    logInfo("Zigbee", "Kellertür {}",if(Kellertuer_Open.state == OPEN) "offen" else "zu")
end
eventuell musst Du ein Profile setzen, damit die Wertänderung an den knx-Channel weitergereicht wird (follow wäre das wohl)

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 28. Apr 2020 11:03
von azzkikrboy
Hallo,

danke für die schnelle Antwort. Nun, ich kann bestätigen, dass die Rule funktioniert. Auf dem KNX kommt damit auf der entsprechenden GA ein OPEN bzw. CLOSED an.
Dann muss ich weiter debuggen um herauszufinden warum die Verknüpfung der channels nicht funktioniert ... damit das dann ohne Rule funktioniert ...

Bis dahin werde ich deine Rule benutzen. Sieht "smarter" aus ;-)

Danke

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 28. Apr 2020 18:27
von azzkikrboy
Hallo nochmal,

so, nach einigem debugging sieht die Situation nun anderes aus.

Code: Alles auswählen

Contact    Kellertuer_Open   "Open/close" {channel="deconz:openclosesensor:homeserver:keller-tuer:open", channel="knx:device:bridge:Keller:Tuer"}
Das Item tun doch das was es soll, also den Status des Zigbee Items schön an den KNX Bus senden. Nur habe ich jetzt festgestellt, dass der Item-Wert selbst sich NICHT ändert :(

Also war ich auf der falschen Fährte beim debuggen.
Das Zigbee Item (Kellertuer_Open) ändert sich, der neue Wert wird auf den KNX Bus geschrieben, aber das KNX Item (EG_Keller) ändert sich NICHT.
Deshalb wird auch in Visu der Status falsch angezeigt, obwohl die KNX Logic funktioniert.

Also ist die Frage: Warum wird das KNX ITEM nicht upgedated

PS: alles OHNE die Rule, nur mit der channel Verknüpfung

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 28. Apr 2020 18:51
von udo1toni
Welches knx Item? Ich sehe hier nur ein Item Kellertuer_Open.

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 28. Apr 2020 18:55
von azzkikrboy
Sorry.
Das Item, das in der Rule geupdated wird -> EG_Keller.postUpdate(Kellertuer_Open.state)

Dieses Item entspricht dem channel:

channel="knx:device:bridge:Keller:Tuer"

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 28. Apr 2020 19:07
von udo1toni
Aber warum lässt Du das denn überhaupt anzeigen? Du hast doch das Item Kellertuer_Open, welches den echten Status enthält.

Re: deCONZ binding und KNX binding kombinieren

Verfasst: 30. Apr 2020 12:26
von azzkikrboy
Ja, du hast recht. Ich habe allerdings eine Gruppe mit allen KNX-Items (die Fenster-Kontakte am Binäraktor)... Ich kann natürlich das Zigbee Item in die Gruppe einfügen und nicht ein virtuelles KNX-Item basteln. Gute Idee.