Ich bin neu hier und auch neu im openhab.
Folgendes Ich habe eq3 Thermostate die auch schon verbunden sind und steuerbar sind über die BasicUI. Ich wollte jetzt einen Timer erstellen der für eine einstellbare Zeit heizt.
Item:
Code: Alles auswählen
Switch timer_OnOff "Timer" <clock>
Number timer_H "Timer Stunde [%s]" <clock>
Number gui_variable
Code: Alles auswählen
Frame label="heitzungstimer"{
Switch item=timer_OnOff mappings=[ON="An", OFF="Reset"]
Setpoint item=timer_H minValue=0 maxValue=23 step=1
Text item=gui_variable label="Time: [%.2f]" visibility=[gui_variable>0] icon="timer"
}
Code: Alles auswählen
rule "manuelTimed"
when
Item timer_OnOff received command ON
then
val time = timer_H.state as Number
time = time * 60
time = (time).intValue
val Timer = null
val Temp = ThermostateTemp.state as Number
if(Temp<30){
ThermostateTemp.sendCommand(new DecimalType(30.0))}
if(Timer === null){
Timer = createTimer(now.plusSeconds(time))
}
end
Wenn ich testen möchte ob der Timer anspringt
Wenn ich beim val time state as number as DecimalType angebe kommt dieser fehler: Rule 'manuelTimed': An error occurred during the script execution: Could not invoke method: org.eclipse.smarthome.core.library.types.DecimalType.intValue() on instance: 60
Jetzt Komm ich nicht weiter und deshalb bitte ich um Hilfe
Und danke schon im Vorraus
NEU!!
Die Rule Habe ich inzwischen einwenig umgebaut Funktioniert Leider immer noch nicht weiß auch nicht wie ich damit weiter komme
Code: Alles auswählen
var Timer tHeater = null // Steht am anfang der Datei
rule "manuelTimed"
when
Item timer_OnOff received command
then
tHeater?.cancel
logInfo("Starte Rule Script")
var time = timer_H.state as DecimalType
time = (time).intValue
val Temp = ThermostateTemp.state as DecimalType
if(timer_OnOff.state == ON){
if(Temp<30){
ThermostateTemp.sendCommand(new DecimalType(30.0))
}
logInfo("Bevor Timer")
tHeader = createTimer(now.plusSeconds(time),[
ThermostateTemp.sendCommand(new DecimalType(Temp))
logInfo("Timer beendet")
])
}
logInfo("After Timer")
end