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.