Seite 1 von 1
Z-Wave-Fernbedienung soll immer schalten, nicht nur bei "changed from"
Verfasst: 6. Okt 2020 09:48
von RES
Guten Tag.
Ich verwende eine Z-Wave-Fernbedienung, um eine Aktion auszulösen.
Nun habe ich als Regel etwas wie:
Code: Alles auswählen
rule "Fernbedienung_Befehl"
when
Item Fernbedienung_Befehl changed to 1
then
Dachkuppeln_schliessen.sendCommand(ON)
end
Der Aufruf von "Dachkuppeln_schliessen" funktioniert bei dieser Konfiguration nur, wenn der Status von "Fernbedienung_Befehl" ungleich "1" war.
Wie muss openHAB konfiguriert werden, dass der Befehl auch dann funktioniert, wenn "Fernbedienung_Befehl" "1" ist, während auf der Fernbedienung "1" gedrückt wird?
Vielen Dank schon jetzt für Eure Hilfe.
Re: Z-Wave-Fernbedienung soll immer schalten, nicht nur bei "changed from"
Verfasst: 6. Okt 2020 10:41
von Tokamak
Es sieht so aus, als ob Fernbedienung_Befehl ein Number-Item ist.
Du kannst dann schreiben
Code: Alles auswählen
rule "Fernbedienung_Befehl"
when
Item Fernbedienung_Befehl received update 1
then
Dachkuppeln_schliessen.sendCommand(ON)
end
bzw.
Code: Alles auswählen
rule "Fernbedienung_Befehl"
when
Item Fernbedienung_Befehl received command 1
then
Dachkuppeln_schliessen.sendCommand(ON)
end
Re: Z-Wave-Fernbedienung soll immer schalten, nicht nur bei "changed from"
Verfasst: 6. Okt 2020 11:32
von RES
Tokamak hat geschrieben: ↑6. Okt 2020 10:41
Du kannst dann schreiben
Code: Alles auswählen
rule "Fernbedienung_Befehl"
when
Item Fernbedienung_Befehl received update 1
then
Dachkuppeln_schliessen.sendCommand(ON)
end
Damit funktioniert es.
Vielen Dank für die Hilfe.
Re: Z-Wave-Fernbedienung soll immer schalten, nicht nur bei "changed from"
Verfasst: 7. Okt 2020 12:17
von udo1toni
Aber bevor Du nun für jede Taste eine eigene Rule anlegst...
Evtl. wäre es sinnvoller, mehrere Rules zusammenzufassen. Das sieht dann so aus:
Code: Alles auswählen
rule "Fernbedienung_Befehl"
when
Item Fernbedienung_Befehl received update
then
if(!(Fernbedienung_Befehl.state instanceof Number)) return;
switch (Fernbedienung_Befehl.state as Number) {
case 1: {
Dachkuppeln_schliessen.sendCommand(ON)
}
case 2: {
Dachkuppeln_oeffnen.sendCommand(ON)
}
// weitere case-Anweisungen...
default: {
logInfo("fernbedienung","Regel ausgeführt, aber Befehl nicht gefunden. {}",Fernbedienung_Befehl.state)
}
}
end
Der erste Befehl fängt z.B. NULL oder UNDEV ab.
Danach wird in Abhängigkeit zum empfangenen Update jeweils verzweigt. Es wird also immer genau der case-Blocks ausgeführt, der zum Status passt. Ist der Status nicht aufgeführt, so wird der default-Zweig ausgeführt (den kann man aber auch weg lassen, dann wird halt kein Zweig ausgeführt).
Re: Z-Wave-Fernbedienung soll immer schalten, nicht nur bei "changed from"
Verfasst: 7. Okt 2020 12:44
von RES
udo1toni hat geschrieben: ↑7. Okt 2020 12:17
Aber bevor Du nun für jede Taste eine eigene Rule anlegst...
Evtl. wäre es sinnvoller, mehrere Rules zusammenzufassen. Das sieht dann so aus:
Vielen Dank.