Wecker mit verschiedenen Einstellungen triggert nicht korrekt
Verfasst: 20. Mär 2021 16:45
Hallo,
Ich habe meine openHAB - App mit meinem Wecker verbunden um das Licht in der Küche beim aufstehen einzuschalten, wenn es draußen noch dunkel ist. Das funktioniert auch zuverlässig.
Nun wollte ich ein paar Variablen einbauen, um z.B. Das Licht im "Manuellen Modus" nach 30, 60 oder 90 Minuten ausschalten zu können und, falls gewünscht, meine Alexa mit ausgewähltem Radiosender und der ausgewählten Lautstärke einzuschalten.
Ich habe die Rule einmal ausprobiert und Sie hat auch funktioniert. Beim zweiten mal funktionierte diese aber nicht mehr
Laut den Loggs triggert die Rule aber.
Items:
- Radio_Station1: Mein Radiosender als String, da ich in der App mehrere Sender zur Auswahl haben will.
- Kitchen_Duration1: Die Dauer meiner Beleuchtung in der Küche.
- Radio_Volume1: Die Lautstärke der Alexa.
Mir ist eine Sache jedoch vorab schon aufgefallen:
Mein VSC zweigt mir hier folgenden Fehler an:
Das hier ist meine eigentliche Rule:
Ich verstehe nicht ganz, warum beim ersten mal die Rule funktioniert hat. Beim zweiten mal jedoch nicht.
Hat jemand sowas in der Art schonmal gemacht oder weiß welchen Fehler ich gemacht habe?
MFG
Elias
Ich habe meine openHAB - App mit meinem Wecker verbunden um das Licht in der Küche beim aufstehen einzuschalten, wenn es draußen noch dunkel ist. Das funktioniert auch zuverlässig.
Nun wollte ich ein paar Variablen einbauen, um z.B. Das Licht im "Manuellen Modus" nach 30, 60 oder 90 Minuten ausschalten zu können und, falls gewünscht, meine Alexa mit ausgewähltem Radiosender und der ausgewählten Lautstärke einzuschalten.
Ich habe die Rule einmal ausprobiert und Sie hat auch funktioniert. Beim zweiten mal funktionierte diese aber nicht mehr

Laut den Loggs triggert die Rule aber.
Items:
- Radio_Station1: Mein Radiosender als String, da ich in der App mehrere Sender zur Auswahl haben will.
- Kitchen_Duration1: Die Dauer meiner Beleuchtung in der Küche.
- Radio_Volume1: Die Lautstärke der Alexa.
Mir ist eine Sache jedoch vorab schon aufgefallen:
Mein VSC zweigt mir hier folgenden Fehler an:
Code: Alles auswählen
Cannot refer to the non-final variable strRS inside a lambda expression
Code: Alles auswählen
Echo_Living_Room_RadioStationId.sendCommand(strRS)
Code: Alles auswählen
rule "Wecker Elias"
when
Item AlarmElias changed
then
val String strRS = Radio_Station1.state.toString
val Integer sd = (Kitchen_Duration1.state as DecimalType).intValue
val vm = (Radio_Volume1.state as DecimalType).intValue
if(newState instanceof DateTimeType){
sendNotification("mail", "Wecker: Weckzeit gesetzt.")
if(timerAlarmElias !== null){
sendNotification("mail", "Wecker: Neue Weckzeit gestezt.")
timerAlarmElias.reschedule(newState.toLocaleZone.zonedDateTime)
} else {
sendNotification("mail", "Wecker: Neuer Alarm.")
timerAlarmElias = createTimer(newState.toLocaleZone.zonedDateTime, [|
if(KitchenLight_On1.state == ON && Night.state == ON){
HUE_Kitchen_Spotlight1.sendCommand(ON)
} else if(KitchenLight_On1.state == OFF) {
HUE_Kitchen_Spotlight1.sendCommand(ON)
tKitchenAutoOff1 = createTimer(now.plusMinutes(sd), [|
HUE_Kitchen_Spotlight1.sendCommand(OFF)
])
}
if(Radio_On1.state == ON){
Echo_Living_Room_Radio.sendCommand(ON)
Echo_Living_Room_RadioStationId.sendCommand(strRS)
Echo_Living_Room_Volume.sendCommand(vm)
}
timerAlarmElias = null
])
}
} else {
if(timerAlarmElias !== null){
timerAlarmElias.cancel
timerAlarmElias = null
}
}
end
Hat jemand sowas in der Art schonmal gemacht oder weiß welchen Fehler ich gemacht habe?
MFG
Elias