Problem mit einem Timer in einer Rule
Verfasst: 12. Apr 2020 12:55
Hallo und schöne Ostern!
Ich habe hier eine Rule, die scheinbar macht, was sie soll, trotzdem einen Fehler erzeugt.
Ich habe hier ein paar elektrische FHZ, die nur einschalten sollen, wenn ich genug Photovoltaik-Leistung habe.
Ich hatte das zuerst ohne den Timer 't_Komfortfunktionen', was dazu führte, das die angeschlossenen Shellies gelegentlich sehr häufig schalteten.
Jetzt wollte ich das Wiedereinschalten zeitlich verzögern, wenn wieder genug Sonnenenergie vorhanden ist.
Der Timer in der Rule erzeugt einen Fehler:
Ich habe die Schreibweise nun mehrfach geändert, finde aber den Wald vor lauter Bäumen nicht. Vielleicht entdeckt jemand meinen Fehler?
Wenn alles ordentlich funktioniert, würde ich daraus dann ein if - else - Konstrukt schreiben.
VG André
Ich habe hier eine Rule, die scheinbar macht, was sie soll, trotzdem einen Fehler erzeugt.
Code: Alles auswählen
var Timer t_Komfortfunktionen = null
Code: Alles auswählen
//Wenn der Hausverbrauch größer ist als die Panelleistung, werden alle Komfortverbraucher
//ausgeschaltet und für eine Zeit x am Einschalten gehindert.
if(Hausverbrauch.state as Number > AC_Powery.state as Number)
{FHZ_Sperre.postUpdate(1)
}
if(AC_Powery.state as Number > Hausverbrauch.state as Number)
{t_Komfortfunktionen?.cancel
t_Komfortfunktionen = createTimer(now.plusSeconds(30), [ |FHZ_Sperre.postUpdate(0) ]
)
}
Ich hatte das zuerst ohne den Timer 't_Komfortfunktionen', was dazu führte, das die angeschlossenen Shellies gelegentlich sehr häufig schalteten.
Jetzt wollte ich das Wiedereinschalten zeitlich verzögern, wenn wieder genug Sonnenenergie vorhanden ist.
Der Timer in der Rule erzeugt einen Fehler:
Code: Alles auswählen
2020-04-12 12:45:25.202 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.Timer 16103 2020-04-12T12:45:25.178+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
<XFeatureCallImplCustom>.postUpdate(<XNumberLiteralImpl>)} ] threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception.
at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [bundleFile:?]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?]
Wenn alles ordentlich funktioniert, würde ich daraus dann ein if - else - Konstrukt schreiben.
VG André