Regel für Poolsteuerung
Verfasst: 28. Jul 2024 16:54
Hallo Zusammen,
ich bin momentan dabei eine Rule für eine Poolsteuerung zu erstellen. Hier habe ich von einem Github Projekt abgekupfert und die
Rule nach meiner Anlage angepasst.
Problem ist nur das ich laufend folgenden fehler erhalte:
Habe schon alles was mir in den Sinn gekommen wäre versucht;
Es muss am Zweiten Teil der rule liegen ... aber ich komme nicht drauf
Mit Hilfe der Rule soll es möglich sein einen Zeitbereich für die Laufzeit der Poolpumpe auf der Sitemap zu definieren.
Vielen Dank im Voraus für euere Hilfe
Gruß der Neue
ich bin momentan dabei eine Rule für eine Poolsteuerung zu erstellen. Hier habe ich von einem Github Projekt abgekupfert und die
Rule nach meiner Anlage angepasst.
Problem ist nur das ich laufend folgenden fehler erhalte:
Code: Alles auswählen
Script execution of rule with UID 'Poolsteuerung-2' failed: An error occurred during the script execution: index=2, size=2 in Poolsteuerung
Es muss am Zweiten Teil der rule liegen ... aber ich komme nicht drauf
Code: Alles auswählen
import org.joda.time.LocalTime
var Number POOL_MODE_AUTO = 0.0
var Number POOL_MODE_MANU = 1.0
//------------------------------------------------------------------------
// Init virtual Items
//------------------------------------------------------------------------
rule "Init virtual Items"
when
System started
then
createTimer(now.plusSeconds(180)) [ | // let persistance finish restoring a few seconds
logDebug("pool.rules", "Rule: Init virtual Items ...")
if (Setting_Time_Pool_Valve_Start_H.state == NULL) {
Setting_Time_Pool_Valve_Start_H.postUpdate(11)
}
if (Setting_Time_Pool_Valve_Start_M.state == NULL ) {
Setting_Time_Pool_Valve_Start_M.postUpdate(30)
}
if (Setting_Time_Pool_Valve_Stop_H.state == NULL) {
Setting_Time_Pool_Valve_Stop_H.postUpdate(18)
}
if (Setting_Time_Pool_Valve_Stop_M.state == NULL) {
Setting_Time_Pool_Valve_Stop_M.postUpdate(30)
}
if(Pooltemperatur.state == NULL) {
Pooltemperatur.postUpdate(0)
}
if(Switch_Pump.state == NULL) {
Switch_Pump.sendCommand(OFF)
}
if(Pool_Mode.state == NULL) {
Pool_Mode.sendCommand(POOL_MODE_AUTO)
}
]
end
//------------------------------------------------------------------------
// Zeitsteuerung der Poolpumpe
//------------------------------------------------------------------------
rule "Poolpumpe: Zeitsteuerung"
when
//every Minute
Time cron "0 * * * * ?" or
Item Pool_Mode changed
then
logDebug("pool.rules", "Rule: Poolpumpe Steuern ...")
if (Pool_Mode.state == POOL_MODE_AUTO) {
//AUTOMATIC
logDebug("pool.rules", " AUTOMATIC")
var Number sollStundeStart = (Setting_Time_Pool_Valve_Start_H.state as DecimalType).intValue
var Number sollMinuteStart = (Setting_Time_Pool_Valve_Start_M.state as DecimalType).intValue
val LocalTime startTime = new LocalTime(sollStundeStart.intValue, sollMinuteStart.intValue)
var Number sollStundeStop = (Setting_Time_Pool_Valve_Stop_H.state as DecimalType).intValue
var Number sollMinuteStop = (Setting_Time_Pool_Valve_Stop_M.state as DecimalType).intValue
val LocalTime endTime = new LocalTime(sollStundeStop.intValue, sollMinuteStop.intValue)
if (now.toLocalTime().isAfter(startTime) && now.toLocalTime().isBefore(endTime)) {
if (Switch_Pump.state == OFF) {
logInfo("pool.rules", "Rule: Poolpumpe einschalten ...")
Switch_Pump.sendCommand(ON);
}
} else {
if (Switch_Pump.state == ON) {
logInfo("pool.rules", "Rule: Poolpumpe & Solar ausschalten ...")
Switch_Pump.sendCommand(OFF);
}
}
} else if (Pool_Mode.state == POOL_MODE_MANU) {
logDebug("pool.rules", " MANUELL")
} else {
logError("pool.rules", "UNDEFINED Pool_Mode: " + Pool_Mode.state )
}
end
Vielen Dank im Voraus für euere Hilfe
Gruß der Neue
