OpenHAB installation: docker based with Ubuntu 22.04
Version 3.4.5 behavior:
things file:
Type number : Pressure [stateTopic="tele/multisensor03/SENSOR", transformationPattern="REGEX:(.*BMP280.*)∩JSONPATH:$.BMP280.Pressure∩JS:tasmotaBMP280Pressure.js"]
js transformation script
(function (data) {
var number = parseFloat(data.replace(",", "."));
number = number + 17.59;
return number.toString(10);
})(input);
addon configuration in addons.cfg
transformation = map,javascript,jsonpath,regex
thing operates as expected: returns data from Tasmota payload, extracts pressure data and tranformation script corrects pressure by altitude appropriately
Version 4.0.3 behavior:
Javascript transformation is no longer supported so during startup addon is not loaded
Transformation script is ignored in this case and unaltered value is shown. When only script is defined (without other transformations) information about js not found is visible in logs.
It’s always good to review the release notes, especially if there are problems after upgrading.
The JS Transformation no longer exists so remove that from your addons.cfg.
Now there is a generic Script transformation that comes with OH and works with any rules language.
To use JS Scripting as the rules language for your transformation, all you have to do is install the add-on. Your transformation code as well as the config on the Thing can remain unchanged from what it was in OH 3.
As is the case with all transformations, the syntax is slightly different depending on where you are using it: Item label, Item State Description, transform Profile, transform action in a Rule, and different add-ons have their own syntax (MQTT and HTTP being notable).
That’s the old 3.4 syntax when the SCRIPT transform was first added. Before OH 4 came out, the syntax was changed so that users of the JS Transformation would have minimal changes necessary to upgrade. All you need to do is install the add-on and remove the old JS Transformation add-on from trying to install which fails because it no longer exists.
Note:JS Scripting is an automation add-on, not a transformation add-on.