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
