
Die Bemerkung hinten dran (Änderung) kannst Du weg löschen, genau wie die Zeile mit dem logInfo(), das war ja nur, um den Fehler einzugrenzen...
Code: Alles auswählen
Thing device Garagentor @ "KNX"[
address="1.1.201",
pingInterval=600
] {
Type rollershutter : rs "Tor auf-zu" [upDown="3/3/20",stopMove="3/3/21"]
Type switch : air "Tor Lüftung" [ga="3/3/22+<3/3/28"]
Type switch : licht "Tor Licht" [ga="3/3/23+<3/3/33"]
Type contact : sOffen "Garagentor offen" [ga="<3/3/24"]
Type contact : sZu "Garagentor zu" [ga="<3/3/25"]
Type contact : sMove "Garagentor Bewegung" [ga="<3/3/29"]
Type contact : sOpen "Garagentor Bewegung auf" [ga="<3/3/30"]
Type contact : sClose "Garagentor Bewegung zu" [ga="<3/3/31"]
}
Code: Alles auswählen
Rollershutter Garagentor "Garagentor [%d %%]" <garagedoor> (gGA, gRO, gGaragentor) {channel="knx:device:bridge:Garagentor:rs", autoupdate="false"}
Switch Garagentor_lueftung "Tor Lüftung [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:air", autoupdate="false"}
Switch Garagentor_licht "Tor Licht [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:licht", autoupdate="false"}
Contact Garagentor_status_offen "Garagentor offen [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:sOffen"}
Contact Garagentor_status_zu "Garagentor zu [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:sZu"}
Contact Garagentor_status_bewegung "Garagentor Bewegung [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:sMove"}
Contact Garagentor_status_bewegung_auf "Garagentor Bewegung auf [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:sOpen"}
Contact Garagentor_status_bewegung_zu "Garagentor Bewegung zu [%s]" (gGaragentor) {channel="knx:device:bridge:Garagentor:sClose"}
String Garagentor_status "Garagentor [%s]"
Code: Alles auswählen
rule "Update Garage Status"
when
Item Garagentor_status_offen changed or
Item Garagentor_status_zu changed or
Item Garagentor_lueftung changed or
Item Garagentor_status_bewegung_auf changed or
Item Garagentor_status_bewegung_zu changed
then
var Integer nPos = -1
var String strStat = "zwischendrin"
if(Garagentor_status_offen.state == OPEN) {
nPos = 0
strStat = "offen"
}
if(Garagentor_status_zu.state == OPEN) {
nPos = 100
strStat = "geschlossen"
}
if(Garagentor_lueftung.state == ON) {
nPos = 80
strStat = "lüftet"
}
if(Garagentor_status_bewegung_auf.state == OPEN) {
strStat = "öffnet"
}
if(Garagentor_status_bewegung_zu.state == OPEN) {
strStat = "schließt"
}
logInfo("garage","nPos = {}",nPos)
if(nPos < 0)
Garagentor.postUpdate(NULL)
else
Garagentor.postUpdate(nPos)
Garagentor_status.postUpdate(strStat)
end
Code: Alles auswählen
{
"name": "Garagentor",
"type": "garage",
"item": "Garagentor",
"stateItem": "Garagentor_status_zu",
"stateItemInverted": "true"
}
Hallo zusammen,