Hilfe bei einer Rule
Verfasst: 28. Jan 2024 23:17
Hallo, habe mich heute an einer Rule probiert die meine Heizungen wenn keine Telefone im Wlan sind auf 18 Grad stellen soll. Das soll aber nur passieren wenn mein Heizungsschalter auf ON steht. Vielleicht kann ja jemand drüber schauen und mir sagen wo der Fehler liegt. Die vielen Timmer sind deshalb weil wenn alle Heizungen gleich geschaltet werden, es oft nicht funktioniert. So habe ich meinen "Heizungsschalter alle Heizungen" auch Programmiert und es ist eigentlich zuverlässig.
Code: Alles auswählen
var Timer tLucaHeizung = null
var Timer tNellyHeizung = null
var Timer tSchlafzimmerHeizung = null
var Timer tBadezimmerHeizung = null
var Timer tUnteresbadetimmerHeizung = null
var Timer tPartyraumHeizung = null
var Timer tTreppenhausHeizung = null
var Timer toffline = null
rule "Solltemp abwesend"
when
Item Heizungsschalter_Alle_Heizungen changed to ON or
Item onlineLuca changed to ON or
Item onlineNelly changed to ON or
Item onlineSilvia changed to ON or
Item onlineDaniel changed to ON or
then
if (Heizungsschalter_Alle_Heizungen.state == ON) {
if (onlineLuca.state == OFF && onlineNelly.state == OFF && onlineSilvia.state == OFF && onlineDaniel.state == OFF) {
toffline = createTimer(now.plusMinutes(10) [|
// Alle Telefone sind offline
// Heizungen auf 18 Grad absenken
tLucaHeizung = createTimer(now.plusSeconds(10), [|
HeizungLucaZimmer_Solltemperatur.sendCommand(18)
HeizungLucaZimmer_Solltemperatur_Fensterkontakt.sendCommand(18)
])
tNellyHeizung = createTimer(now.plusSeconds(20), [|
HeizungNellyZimmer_Solltemperatur.sendCommand(18)
HeizungNellyZimmer_Solltemperatur_Fensterkontakt.sendCommand(18)
])
tSchlafzimmerHeizung = createTimer(now.plusSeconds(30), [|
HeizungSchlafzimmer_Solltemperatur.sendCommand(18)
HeizungSchlafzimmer_Solltemperatur_Fensterkontakt.sendCommand(18)
])
tBadezimmerHeizung = createTimer(now.plusSeconds(40), [|
HeizungBadezimmer_Solltemperatur.sendCommand(18)
HeizungBadezimmer_Solltemperatur_Fensterkontakt.sendCommand(18)
])
tUnteresbadetimmerHeizung = createTimer(now.plusSeconds(50), [|
HeizungUnteresBadezimmer_Solltemperatur.sendCommand(18)
])
tPartyraumHeizung = createTimer(now.plusSeconds(60), [|
HeizungPartyraum_Solltemperatur.sendCommand(18)
HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(18)
])
tTreppenhausHeizung = createTimer(now.plusSeconds(70), [|
HeizungTreppenhaus_Solltemperatur.sendCommand(18)
HeizungTreppenhaus_Solltemperatur_Fensterkontakt.sendCommand(18)
])
])
}
} else {
// Mindestens ein Telefon ist online
// Heizungen auf 21 Grad setzen
tLucaHeizung = createTimer(now.plusSeconds(10), [|
HeizungLucaZimmer_Solltemperatur.sendCommand(21)
HeizungLucaZimmer_Solltemperatur_Fensterkontakt.sendCommand(21)
])
tNellyHeizung = createTimer(now.plusSeconds(20), [|
HeizungNellyZimmer_Solltemperatur.sendCommand(21)
HeizungNellyZimmer_Solltemperatur_Fensterkontakt.sendCommand(21)
])
tSchlafzimmerHeizung = createTimer(now.plusSeconds(30), [|
HeizungSchlafzimmer_Solltemperatur.sendCommand(21)
HeizungSchlafzimmer_Solltemperatur_Fensterkontakt.sendCommand(21)
])
tBadezimmerHeizung = createTimer(now.plusSeconds(40), [|
HeizungBadezimmer_Solltemperatur.sendCommand(21)
HeizungBadezimmer_Solltemperatur_Fensterkontakt.sendCommand(21)
])
tUnteresbadetimmerHeizung = createTimer(now.plusSeconds(50), [|
HeizungUnteresBadezimmer_Solltemperatur.sendCommand(21)
])
tPartyraumHeizung = createTimer(now.plusSeconds(60), [|
HeizungPartyraum_Solltemperatur.sendCommand(21)
HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(21)
])
tTreppenhausHeizung = createTimer(now.plusSeconds(70), [|
HeizungTreppenhaus_Solltemperatur.sendCommand(21)
HeizungTreppenhaus_Solltemperatur_Fensterkontakt.sendCommand(21)
])
}
}
end