[SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem
Komisch, jetzt hat er es gefressen, ich probier es gleich noch aus...
und schalte ich auch OFF wenn ich E_Touch10_3 auf OFF schalte?
und schalte ich auch OFF wenn ich E_Touch10_3 auf OFF schalte?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem
OK rausgenommen, stört ihn nicht, zweit Klammer auch gelöschtDarkwin101 hat geschrieben: ↑19. Mär 2020 22:14 Im Then teil benötigst du die Abfrage if(E_Touch10_3.state == ON) nicht da die Regel sowieso nur ausgeführt wird wenn E_Touch10_3 On ist
aber wie schalte ich nun OFF bevor der Timer abgelaufen ist?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))
-
- Beiträge: 424
- Registriert: 6. Mär 2019 11:19
Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem
Ich verstehe deine Frage jetzt nicht genau was willst du den machen wenn du den Schalter betätigst jetzt reagiert die Rule nur auf ON bei OFF wird nichts unternommen
-
- Beiträge: 424
- Registriert: 6. Mär 2019 11:19
Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem
OK wenn du das OFF noch möchtest brauchst du die If Abfrage
Code: Alles auswählen
rule "Alarm Manuell"
when
Item E_Touch10_3 changed
then
if(E_Touch10_3.state == ON) {
if(SireneTimer2 === null) {
logInfo("Alarm Manuell","Alarm und LED ON, Rule Ende!")
Steckdose54.sendCommand(ON)
SireneTimer2 = createTimer(now.plusSeconds(60), [ |
Steckdose54.sendCommand(OFF)
SireneTimer2 = null
] )
}}
else{ Steckdose54.sendCommand(OFF)
SireneTimer2?.cancel
SireneTimer2 = null}
end
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem
Hervorragend - funktioniert 1a
Vielen Dank
nun bin ich wieder ein Stück weiter und kann noch ein bisschen erweitern
Vielen Dank
nun bin ich wieder ein Stück weiter und kann noch ein bisschen erweitern
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: [SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem
Ich glaube eher nicht, dass diese Rule so funktioniert, denn sie verwendet eine nicht initialisierte Variable.

Sauber formatiert sähe es so aus:

Sauber formatiert sähe es so aus:
Code: Alles auswählen
// Globale Variablen zu Beginn der Datei definieren!
var Timer SireneTimer2 = null
rule "Alarm Manuell"
when
Item E_Touch10_3 changed
then
if(E_Touch10_3.state == ON) {
if(SireneTimer2 === null) {
logInfo("Alarm Manuell","Alarm und LED ON, Rule Ende!")
Steckdose54.sendCommand(ON)
SireneTimer2 = createTimer(now.plusSeconds(60), [ |
Steckdose54.sendCommand(OFF)
SireneTimer2 = null
] )
}
} else {
Steckdose54.sendCommand(OFF)
SireneTimer2?.cancel
SireneTimer2 = null
}
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: [SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem
Hallo,
Ja das mit der globalen Varianten Definition hatte ich auch so gemacht, das hatte ich von dir schon gelernt :-}
Ja das mit der globalen Varianten Definition hatte ich auch so gemacht, das hatte ich von dir schon gelernt :-}
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: [SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem
Also doch noch was Kleines,
das mit den Klammern ist misteriös
also das rule funktioniert "fast" den else Teil führt es nicht aus.
Also wenn ich den Switch ausschalte sollen auch die beiden Steckdosen und die zugehörigen Timer ausschalten,
tun sie aber nicht, die ignorieren mich
das mit den Klammern ist misteriös

also das rule funktioniert "fast" den else Teil führt es nicht aus.
Also wenn ich den Switch ausschalte sollen auch die beiden Steckdosen und die zugehörigen Timer ausschalten,
tun sie aber nicht, die ignorieren mich

Code: Alles auswählen
var Timer AlarmManuell = null
var Timer LEDTimer3 = null
rule "Alarm Manuell"
when
Item E_Touch10_3 changed
then
if(E_Touch10_3.state == ON) {
if(AlarmManuell === null) {
logInfo("Alarm Manuell","Alarm und LED ON")
Steckdose54.sendCommand(ON)
LEDTimer3 = createTimer(now.plusMillis(10), [ |
if(Steckdose53.state != ON) {
Steckdose53.sendCommand(ON)
LEDTimer3.reschedule(now.plusSeconds(3))
} else {
Steckdose53.sendCommand(OFF)
LEDTimer3.reschedule(now.plusSeconds(3))
}
AlarmManuell = createTimer(now.plusSeconds(60), [ |
Steckdose54.sendCommand(OFF)
LEDTimer3?.cancel
LEDTimer3 = null
if(Steckdose53.state != OFF)
Steckdose53.sendCommand(OFF)
AlarmManuell = null
] )
] )
}
else{ Steckdose54.sendCommand(OFF)
Steckdose53.sendCommand(OFF)
AlarmManuell?.cancel
AlarmManuell = null}
}
end
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))
-
- Beiträge: 424
- Registriert: 6. Mär 2019 11:19
Re: [SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem
Code: Alles auswählen
var Timer AlarmManuell = null
var Timer LEDTimer3 = null
rule "Alarm Manuell"
when
Item E_Touch10_3 changed
then
if(E_Touch10_3.state == ON) {
if(AlarmManuell === null) {
logInfo("Alarm Manuell","Alarm und LED ON")
Steckdose54.sendCommand(ON)
LEDTimer3 = createTimer(now.plusMillis(10), [ |
if(Steckdose53.state != ON) {
Steckdose53.sendCommand(ON)
LEDTimer3.reschedule(now.plusSeconds(3))
} else {
Steckdose53.sendCommand(OFF)
LEDTimer3.reschedule(now.plusSeconds(3))
}
AlarmManuell = createTimer(now.plusSeconds(60), [ |
Steckdose54.sendCommand(OFF)
LEDTimer3?.cancel
LEDTimer3 = null
if(Steckdose53.state != OFF)
Steckdose53.sendCommand(OFF)
AlarmManuell = null
] )
] )
}}
else{ Steckdose54.sendCommand(OFF)
Steckdose53.sendCommand(OFF)
AlarmManuell?.cancel
AlarmManuell = null}
end
Die Syntax ist immer IF{} else{} du hast aber IF{else{}}
-
- Beiträge: 383
- Registriert: 19. Feb 2020 20:51
- Wohnort: Saarbrücken
Re: [SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem
Jawohl das war es, sieht alles so einfach aus ...
habe zusätzlich noch den 2ten Timer (LEDTimer3) in die else Bedingung aufgenommen.
Das funktioniert nun.
Vielen Dank
habe zusätzlich noch den 2ten Timer (LEDTimer3) in die else Bedingung aufgenommen.
Das funktioniert nun.
Vielen Dank
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))