Kein großes Projekt, aber eine simple Regel, um Energie zu sparen. Bei uns bleiben nämlich gerne die Fenster auf kipp und die Heizung bullert kräftig dagegen an.
Die Regel prüft, ob die Raumtemperatur die Mindesttemp. unterschreitet. Falls es nicht Nacht ist und innerhalb der letzten 1/2 Stunde nicht bereits gewarnt wurde, erfolgt eine Push-Notification.
Die 1/2 Stunde wird über expire in der Item-Konfiguration bewerkstelligt. (damit nicht bei jeder folgenden Temp-Meldung eine weitere Warnung gesendet wird, der Raum muss sich ja auch wieder aufheizen können)
.items
Code: Alles auswählen
Group gTemp "Raum Temperaturen"
//Zimmertemperaturen
Number:Temperature Temp_Office "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_office:temp_office", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Bad_OG "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_bad_og:temp_bad_og", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Wohnen "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_wohnen:temp_wohnen", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Kochen "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_kochen:temp_kochen", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Flur "Temp Diele" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_flur:temp_flur", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Kind1 "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_kind1:temp_kind1", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Kind2 "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_kind2:temp_kind2", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_Schlafen "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:schalter_schlafen:temp_schlafen", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Number:Temperature Temp_WC "Temperatur" <selftemp> (gTemp) {channel="knx:device:bridge:bwm_wc:temp_wc", unit="°C", stateDescription=""[pattern="%.1f °C"]}
Switch Temp_warn {expire="30m,command=OFF"}
Code: Alles auswählen
rule "Energiesparen: Temp zu gering, Fenster schließen"
when
Member of gTemp changed
then
if (Viessmann_Betriebsartwahl != "HWW") return; // nur Warmwasser, Heizung aus.
val hour = now().getHour
val Temp_ist = (triggeringItem.state as Number).floatValue
var Temp_min = 19.0
var fenster = triggeringItem.name.split("_").get(1)
switch fenster {
case "Office" : fenster = "Büro"
case "Bad_OG" : fenster = "Bad OG"
case "Wohnen" : fenster = "Wohnzimmer"
case "Kochen" : fenster = "Küche"
case "Schlafen" : { fenster = "Schlafzimmer"; Temp_min = 17.5 }
case "WC" : { fenster = "Gäste WC"; Temp_min = 17.5 } }
if ((Temp_ist < Temp_min)
&& (Temp_warn.state != ON)
&& (hour >= 7 && hour < 22)) {
Temp_warn.sendCommand(ON)
sendBroadcastNotification("Achtung! Temperatur " + fenster + " unter " + Temp_min + "°C. Fenster schließen!") }
end