"scriptExtension" is not defined

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52
Answers: 0

"scriptExtension" is not defined

Beitrag von Baumtasche »

Hallo zusammen,
ich hoffe jemand von euch kann mir hefen. Ich bin heute von OH3 auf OH4 umgestiegen. Ich habe dazu das openhabian Image genutzt und dann ein Restore von den OH3 - Daten durchgeführt.
Soweit hat alles geklappt, allerdings funktionieren die Skripte nicht mehr, die den Befehl ScriptExecution nutzen.
Ich bekomme die Fehlermeldung:
Script execution of rule with UID 'Rollo_Lichtsensor_Down_Osten' failed: org.graalvm.polyglot.PolyglotException: ReferenceError: "scriptExtension" is not defined

Code: Alles auswählen

var scriptExecution = Java.type('org.openhab.core.model.script.actions.ScriptExecution');
var zdt = Java.type('java.time.ZonedDateTime');
var logger = Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' + ctx.ruleUID);

if (typeof this.timers === 'undefined') {
  this.timers = [];
}

if (typeof this.timers['Bad'] === 'undefined' || this.timers['Bad'].hasTerminated()) {
  this.timers['Bad'] = scriptExecution.createTimer(zdt.now().plusSeconds(5), function () {
    events.sendCommand('RolloOGBadezimmer_Level', 'DOWN');
    })
}
if (typeof this.timers['Kleiderschrank'] === 'undefined' || this.timers['Kleiderschrank'].hasTerminated()) {
  this.timers['Kleiderschrank'] = scriptExecution.createTimer(zdt.now().plusSeconds(15), function () {
    events.sendCommand('RolloOGSchlafzimmerKleiderschrank_Level', 'DOWN');
    })
}
if (typeof this.timers['Garage'] === 'undefined' || this.timers['Garage'].hasTerminated()) {
  this.timers['Garage'] = scriptExecution.createTimer(zdt.now().plusSeconds(20), function () {
    events.sendCommand('RolloOGSchlafzimmerGarage_Level', 'DOWN');
    })
}
if (typeof this.timers['Balkon'] === 'undefined' || this.timers['Balkon'].hasTerminated()) {
  this.timers['Balkon'] = scriptExecution.createTimer(zdt.now().plusSeconds(23), function () {
    events.sendCommand('RolloOGSchlafzimmerBalkontur_Level', '32');
    })
}
Funktionieren die Timer in OH4 nicht mehr auf diese Art und Weise?
von Harka » 16. Dez 2023 19:24
Moin,
dein Script beruht auf JavaScript Scripting (Nashorn). Ist das installiert? (Settings/Automation).
Wenn Du Blockly nutzt wird das Script beim neu speichern automatisch angepasst.
Gehe zur vollständigen Antwort

Harka
Beiträge: 310
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: "scriptExtension" is not defined

Beitrag von Harka »

Moin,
dein Script beruht auf JavaScript Scripting (Nashorn). Ist das installiert? (Settings/Automation).
Wenn Du Blockly nutzt wird das Script beim neu speichern automatisch angepasst.

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52
Answers: 0

Re: "scriptExtension" is not defined

Beitrag von Baumtasche »

Das war die Lösung. Danke

Antworten