nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Johannes911
Beiträge: 81
Registriert: 17. Aug 2020 08:02
Answers: 0

nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr

Beitrag von Johannes911 »

nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr, Fehlermeldung nach dem Start:
Failed to use TransformationStep{serviceName='JS', function='comma2dot.js'}, service not found
Im Ordner transform enthält die Datei comma2dot.js:

Code: Alles auswählen


(function(i) {
    return i.toString().replace(',', '.'); // replaces comma by dot
  })(input)
  
  
in dem entsprechenden THING, einer der Channels:

Code: Alles auswählen

    Type number : SZ_BL_ITEM_Temp_In     "Temp_In"               [ stateTransformation = "REGEX:.*Temp_In: ([-]*[\\d]+,[\\d]*).*∩JS:comma2dot.js", mode = "READONLY" ]
was hat sich da geändert? bzw. was muss ich jetzt ändern?

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr

Beitrag von udo1toni »

Vermutlich kommst Du von einer Version < 4.0?
Seit openHAB 4.0 gibt es keinen JS Transformation Service mehr, stattdessen übernimmt die Scripting Engine die Aufgabe mit. Das bedeutet, Du kannst auch Transformation Scripte in DSL schreiben, wenn Du das möchtest. Andererseits muss zwingend die JavaScript Scripting Engine installiert sein, wenn Du JS verwenden willst. Du musst dabei aufpassen, denn es gibt zwei JavaScript Scripting Engines, GraalVM und Nashorn, wobei Letztere die veraltete Engine ist. Wenn Du diese verwenden willst, musst Du statt JS dann NASHORNJS schreiben.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Johannes911
Beiträge: 81
Registriert: 17. Aug 2020 08:02
Answers: 0

Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr

Beitrag von Johannes911 »

Hallo Toni,
erst mal besten Dank für die schnelle Antwort.
Bei 4.1.2 hatte das im Juni mit kleinen Umwegen noch irgendwie funktioniert :-(

Ok, soweit habe ich das verstanden, weiß allerdings nicht wie genau ich dies dann umsetzen muss.

Als erstes die JavaScript Engines (am besten GraalVM) nachinstallieren. ==> sollte kein Problem sein
Was dann als nächstes? Muss ich comma2dot.js abändern (wie) oder reicht es diese an eine andere Stelle zu verschieben? Muss sie dafür umbenannt werden? Muss der Aufruf in den THINGS anders aussehen?

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr

Beitrag von udo1toni »

Wenn Du GraalVM nutzt, sollte der Aufruf unverändert funktionieren.
GraalVM hat im Detail einige Änderungen gegenüber Nashorn, das betrifft aber nicht das von Dir gezeigte Script.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Johannes911
Beiträge: 81
Registriert: 17. Aug 2020 08:02
Answers: 0

Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr

Beitrag von Johannes911 »

ok, gerade noch mal neu gestartet und meine Fehlermeldung ist weg bzw. ich sehe jetzt auch alle Werte. Kann sogar sein dass es schon funktioniert hat nachdem ich GraalVM nachinstalliert hatte.
Wieder ein paar Probleme weniger.

Antworten