Seite 1 von 1

oprnhab 5.0.x -> ScriptExecution.createTimer Fehler

Verfasst: 18. Nov 2025 10:44
von Taifun2300
Hallo,

erstmal ein Disclaimer … ;) ich habe nichts zu dem Thema gefunden im I-Net. Deshalb ein neues Thema....

Nach der Umstellung von 4.3.5 auf 5.0.2 funktionieren meine Scripttimer nicht mehr. Sie werden sheduled aber bei der Ausführung bekomme ich einen Fehler ..

z.B.

Code: Alles auswählen

let myTimer =
    ScriptExecution.createTimer(ZonedDateTime.now().plusMinutes(5),
    function() {
        NotificationAction.sendBroadcastNotification("Stromversorgung Balkon eingeschaltet" );
        logger.info("Stromversorgung Balkon eingeschaltet" ); 
        if (items.getItem("Victron_MPPT_75_15d_Load_output_voltage").numericState < 20) {
            NotificationAction.sendBroadcastNotification("ACHTUNG: Balkon hat keinen Inputstrom" ); 
            logger.warn("ACHTUNG: Balkon hat keinen Inputstrom" ); 
        }	    
    });


Ist im Log nach 5 Minuten folgender Eintrag:

Code: Alles auswählen

          java.lang.IllegalStateException: The Context is already closed.
Anscheinend bin zu doof es zu finden.
u.U. kann mir jemand die Augen öffnen :D

Vielen Dank im Voraus .. für jede Hilfe
LG
Christoph

Re: oprnhab 5.0.x -> ScriptExecution.createTimer Fehler

Verfasst: 19. Nov 2025 03:54
von udo1toni
Ich schätze mal, Du musst NotificationAction innerhalb des Timers definieren.

Re: oprnhab 5.0.x -> ScriptExecution.createTimer Fehler

Verfasst: 19. Nov 2025 08:38
von Taifun2300
Vielen lieben Dank für die schnelle Hilfe Udo „The Openhab Brain“ …

Aber das ist es nicht. Denn auch bei diesem Aufruf wirft Java die Exception
let myTimerPVB =
ScriptExecution.createTimer(ZonedDateTime.now().plusMinutes(1), function() {});

Re: oprnhab 5.0.x -> ScriptExecution.createTimer Fehler

Verfasst: 19. Nov 2025 19:22
von Harka
Moin,
ich fremdle mit Deinem Code. Ist das noch Nashorn?
Mit dem aktuellem GraalJS -> https://www.openhab.org/addons/automation/jsscripting/ funktioniert dieser Ansatz:

Code: Alles auswählen

var myTimer = actions.ScriptExecution.createTimer(time.ZonedDateTime.now().plusSeconds(5), function() { 
  console.info('Timertest');
  actions.notificationBuilder('Timertest').send();
});

Re: oprnhab 5.0.x -> ScriptExecution.createTimer Fehler

Verfasst: 20. Nov 2025 07:39
von Taifun2300
Hi,

also es ist GraalJS, und auch dein Code wirft bei mir ebenfalls die Exception .. ich bin wieder, Docker sei dank, zurück auf 4.3.5 …