Ich habe noch ein Frage die mich brennend interessiert:
Müssen Vaiablen in der .rules vorher deklariert werden. Ich kenne das so aus C++, dass Variablen am Anfang der Seite deklariert werden müssen. Ich habe beides schon getestet, mit vorher deklarieren und ohne. Und beides scheint irgendwie zu funktionieren. (Glaube ich zumindest )
Meine Regeln funktionieren aber auch ohne deklaration. Das finde ich ja das komische.
The Variable Declarations section can be used to declare variables that should be accessible to all rules in this file. You can declare variables with or without initial values and modifiable or read-only.
Das hört sich für mich an wie wenn ich keinen Wert deklarieren müsste. Was meinst du mit "Type"?
rule "Cron_Heizungs_Automatisierung"
when
Time cron "5 0/5 * * * ?" //At second :05, every 5 minutes starting at minute :00, of every hour
then
var hour = now.getHourOfDay
var min = now.getMinuteOfHour
var wd = now.getDayOfWeek
// Wochentags (Mo - Fr) **Bad**
if (Badautomatik_Hz_ein_aus.state == 1 && wd <= 5){
//6:00 Uhr Aufheizperiode Bad EIN
if ((hour.state == 6 && min.state <= 5) && (TemperaturBad.state < 23)) { //23?C Maximal Temperatur dnach abregelung
Heizung_Switch_Ba.sendCommand(ON)
Bad.postUpdate(Badtemperatur_Soll_Setpoint)
Badtemperatur_Soll_Setpoint.postUpdate(23)
}
//7:00 Uhr Aufheizperiode Bad AUS
if (hour.state == 7 && min.state <= 5) {
Heizung_Switch_Ba.sendCommand(OFF)
Badtemperatur_Soll_Setpoint.postUpdate(Bad)
}
}
// Wochentags (Mo - Fr) **Wohnzimmer**
if (Wonautomatik_Hz_ein_aus.state == 1 && wd <= 5){
//15:30 Uhr Aufheizperiode Wohnzimmer EIN
if ((hour.state == 15 && min.state <= 30) && (TemperaturWon.state < 23)) { //23?C Maximal Temperatur
Heizung_Switch_Won1.sendCommand(ON)
Heizung_Switch_Won2.sendCommand(ON)
won.postUpdate(Wontemperatur_Soll_Setpoint)
Wontemperatur_Soll_Setpoint.postUpdate(23)
}
//16:00 Uhr Aufheizperiode Wohnzimmer AUS
if (hour.state == 16 && min.state <= 5) {
Heizung_Switch_Won1.sendCommand(OFF)
Heizung_Switch_Won2.sendCommand(OFF)
Wontemperatur_Soll_Setpoint.postUpdate(Won) //*************
}
}
end
Hier zum Beispiel die Variable Won oder Bad. Sie taucht nur hier auf und dient zum Zwischenpeichern des aktuellen eingestellten Reglerwertes.
Ich habe sie so nicht vorher deklariert.