Seite 1 von 2
[KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 27. Okt 2020 11:23
von Ezeqeel
Hallo,
für das Sperren eines einzelnen Rollladen über einen KNX Jalousieaktor bin ich auf der Suche nach einer Lösung das vorhandene 1-bit Objekt "ON" vom Reed-Kontakt in ein 2-bit Objekt "2" umzuwandeln, welches der Aktor zwingend für die Zwangsstellung braucht.
Ich habe ein item, welches den Status vom Reed erhält:
Code: Alles auswählen
Switch Rollo_zwang1bit_KG_Hobby { channel="knx:device:bridge:KNX_Jalousieaktor_1_101:Rollo_zwang1bit_KG_Hobby" }
Ein zweites item für die 2-bit Ausgabe funktioniert aber schon nicht, weil ein Switch ja keine 2 bits erhalten kann.
Was muss ich da für einen item type verwenden?
Die Regel sieht wie folgt aus:
Code: Alles auswählen
rule "Rollo Zwang Hobbyraum"
when
Item Rollo_zwang1bit_KG_Hobby received command
then
if (Rollo_zwang1bit_KG_Hobby.state==ON) {
logInfo("TEST", "TEST-ON")
Rollo_zwang2bit_KG_Hobby.sendCommand(2)
}
if (Rollo_zwang1bit_KG_Hobby.state==OFF) {
logInfo("TEST", "TEST-OFF")
Rollo_zwang2bit_KG_Hobby.sendCommand(0)
}
end
Kann mir da jemand einen Tipp geben?
Vielen Dank!
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 27. Okt 2020 22:49
von udo1toni
Vermutlich musst Du einen Number Channel mit DPT 2.001 definieren. Ausprobiert habe ich das aber nicht.
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 31. Okt 2020 12:57
von Ezeqeel
Ich bin ein klein wenig weitergekommen. Aber mit dem Format der Ausgabe komme ich immer noch nicht klar.
Meins KNX Things:
Code: Alles auswählen
Type switch-control : Rollo_zwang1bit_KG_Hobby "Shade" [ ga="7/1/20" ]
Type number : Rollo_zwang2bit_KG_Hobby "Shade" [ ga="7/1/21" ]
Meine KNX Items:
Code: Alles auswählen
Switch Rollo_zwang1bit_KG_Hobby { channel="knx:device:bridge:KNX_Jalousieaktor_1_101:Rollo_zwang1bit_KG_Hobby" }
Number Rollo_zwang2bit_KG_Hobby { channel="knx:device:bridge:KNX_Jalousieaktor_1_101:Rollo_zwang2bit_KG_Hobby" }
Und meine Regel, die auch getriggert wird und den Wert auf den Bus schickt.
Code: Alles auswählen
rule "Rollo Zwang Hobbyraum 1"
when
Item Rollo_zwang1bit_KG_Hobby received command
then
if (Rollo_zwang1bit_KG_Hobby.state==ON) {
logInfo("TEST", "TEST-ON")
Rollo_zwang2bit_KG_Hobby.sendCommand(2)
}
if (Rollo_zwang1bit_KG_Hobby.state==OFF) {
logInfo("TEST", "TEST-OFF")
Rollo_zwang2bit_KG_Hobby.sendCommand(0)
}
end
In der ETS habe ich das 2bit Objekt als Typ 23.003 "Auf/Ab Aktion" gesetzt.
Schicke ich aus dem Gruppenmonitor eine 2 in der 7/1/21 funktioniert das Sperren des Kanals.
Schickt openHab die 2, wird im Gruppenmonitor daraus aber ein hex 00 c8|2 was aber 200 und nicht 2 ist.
Wie kriege ich denn die 2 ins richtige Format?
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 31. Okt 2020 22:19
von udo1toni
2-Bit-Sperrobjekte haben gewöhnlich den Haupt DPT 2, nicht 23. Welche Hardware willst Du denn steuern?
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 2. Nov 2020 20:03
von Ezeqeel
Der Jalousieaktor ist ein Jung 2316.
Wenn ich die GA im Gruppenmonitor sende funktioniert die Zwangsstellung auch.
Am Aktor scheint es also nicht zu liegen.
Ich hab wohl noch ein Problem mit dem Format der "2" die mir openhab auf den Bus schickt.
Hab einen Screenshot angehängt, in dem man als erstes den Wert von openhab und als zweites den funktionierenden Wert vom Gruppenmonitor gesendet sieht.
Zwangsstellung_openhab.jpg
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 3. Nov 2020 15:13
von udo1toni
Und wie ist der Channel definiert?
So sollte es aussehen:
Code: Alles auswählen
Type number : Rollo_zwang2bit_KG_Hobby "Shade" [ ga="2.001:7/1/21" ]
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 3. Nov 2020 16:40
von Ezeqeel
Im channel hab ich schon alles durch, was sich auch nur halbwegs logisch angehört hat.
Deinen Vorschlag habe ich gerade gestern Abend noch einmal probiert. Das Resultat ändert sich im Gruppenmonitor aber nicht.
Es wird immer 00CB ausgegeben, was in dez. 200 wäre. Wenn ich eine 1 von openhab ausgeben lasse, krieg ich den hex Wert für 100 im Gruppenmonitor.
Oder frisst openhab so eine Änderung der GA erst nach einem service restart? Das hab ich wahrscheinlich nicht gemacht, weil das update der things datei immer ordentlich im log angezeigt wurde.
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 3. Nov 2020 16:45
von udo1toni
Natürlich musst Du openHAB nicht neu starten, wohl aber das knx Addon. Am einfachsten und langwierigsten) geht das tatsächlich über dem kompletten Neustart von openHAB. Du kannst das Addon einzeln mittels der karaf Konsole neustarten, indem Du Dich in die Karaf Konsole einloggst und dort
bundle:restart org.openhab.binding.knx eingibst.
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 4. Nov 2020 20:31
von Ezeqeel
Hut ab, war das was....aber jetzt funktioniert alles wie es soll!
Vielen Dank, udo1toni für deine Hilfe!
Am Ende lag es bei dem GA Type wirklich "nur" am Neustart, dass das Format übernommen wurde.
Die Syntax meiner Regel hat aber auch noch nicht gepasst. Ein abgewandeltes Beispiel aus der openhab Doku hat aber geholfen.
Code: Alles auswählen
rule "Rollo Zwang Hobbyraum"
when
Item Rollo_zwang1bit_KG_Hobby received command
then
if(receivedCommand == ON) Rollo_zwang2bit_KG_Hobby.sendCommand(2)
else Rollo_zwang2bit_KG_Hobby.sendCommand(0)
end
KNX items:
Code: Alles auswählen
Switch Rollo_zwang1bit_KG_Hobby { channel="knx:device:bridge:KNX_Jalousieaktor_1_101:Rollo_zwang1bit_KG_Hobby" }
Number Rollo_zwang2bit_KG_Hobby { channel="knx:device:bridge:KNX_Jalousieaktor_1_101:Rollo_zwang2bit_KG_Hobby" }
KNX Thing:
Code: Alles auswählen
Thing device KNX_Jalousieaktor_1_101 "Jalousieaktor-1" @ "KNX" [ address="1.0.101", fetch=false ] {
Type switch-control : Rollo_zwang1bit_KG_Hobby "Shade" [ ga="7/1/20" ]
Type number : Rollo_zwang2bit_KG_Hobby "Shade" [ ga="2.001:7/1/21" ]
}
Re: [KNX] 1-bit in 2-bit GA umwandeln
Verfasst: 5. Nov 2020 12:29
von udo1toni
Prima. Die Rule geht noch etwas eleganter
Code: Alles auswählen
rule "Rollo Zwang Hobbyraum"
when
Item Rollo_zwang1bit_KG_Hobby received command
then
Rollo_zwang2bit_KG_Hobby.sendCommand(if(receivedCommand == ON) 2 else 0)
end