Seite 1 von 1
nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr
Verfasst: 4. Aug 2024 22:01
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?
Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr
Verfasst: 5. Aug 2024 02:24
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.
Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr
Verfasst: 5. Aug 2024 10:42
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?
Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr
Verfasst: 6. Aug 2024 12:56
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.
Re: nach Update auf 4.2.0 funktionieren die JS Transformationen nicht mehr
Verfasst: 6. Aug 2024 14:45
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.