openHAB 4.0 SNAPSHOT discussion

Can you define inline?

I’m successfully using it for the state description of an item:

Number:Angle Exterior_WindDirection "Wind Direction [SCRIPT(rb:compass.script):%s]" <wind> (gInflux)  { channel="mqtt:topic:jhatch:weather:winddirection" }

compass.script:

# -*- mode: ruby -*-
# frozen_string_literal: true

input ||= nil
DIRECTIONS = %w[N NE E SE S SW W NW N].freeze

if input.nil? || input == "NULL" || input == "UNDEF"
  "-"
else
  cardinal = DIRECTIONS[(input.to_f / 45).round]
  "#{cardinal} (#{input.to_i}°)"
end

Inline script is where you don’t need to create a script file. Just write the script in the script declaration with a pipe character.

Obv only practical for super short one-liners

I’ve triggered some builds which could help with applying all dependency changes.
Maybe you can try again with 4.0.0-SNAPSHOT build # 3244?
If it does not yet fix your issue, posting some logging may help.

The snapshots are more unstable now than usual with all those changes. :face_with_diagonal_mouth:
But thanks to those who want to help out with testing and providing feedback with these first OH4 builds. :+1:

Will do but won’t get to it tomorrow unfortunately. Logs to follow when I give it a try.

Yep, that’s why I wanted to try it. But I expected to have more problems with Blockly and Nashorn rather than problems with Zwave. Thankfully jumping back and forth is super easy.

That was only supported by the JS transform so I’d guess almost certainly this is not (ever?) supported. SCRIPT is also not supported in Profiles yet.

But, it does support passing additional arguments to the transform using standard URL style which is a huge boon. This opens the possibility of more generic transformation scripts.

1 Like

No, my zwave is on a remote openhab running 3.4 still. Sorry.

It’s telling you to install Java 17. :wink:

I discovered that issue some time ago, @J-N-K explained it here and is also working on a solution: in core Refactor WatchService by J-N-K · Pull Request #3004 · openhab/openhab-core · GitHub and for the addons Adapt addons to core watch service changes by J-N-K · Pull Request #14004 · openhab/openhab-addons · GitHub.
@ccutrer I haven‘t had a closer look at the addon PR yet, but it seems like a fix for JRubyScripting is also part of it.

@rlkoshak
I‘ve already migrated my JS transformations to SCRIPT, but currently inline scripts and a transformation profile for Items are missing. I can try to ping you when there are PRs for those, but I cannot promise to not forget :wink:

I know what you mean, like JS transform is providing it at the moment.
This is not supported yet, but @J-N-K said that it is not too difficult to add that.

1 Like

@JimT @florian-h05 I created an issue for the inline scripting. It’s not top priority, but I hope to be able to provide a PR latest around new year.

6 Likes

I upgraded to OH 4 #3245 right now and have no problem with zwave.

2 Likes

Note that if you use JDBC MySQL persistence, it’s currently broken (as of 21 Dec). Will be fixed shortly as soon as the mysql connector artifact is uploaded to jfrog.

Just spun up #3245 and Zwave is all good now.

Thanks!

However, I’m still seeing the “ScriptEngine for language ‘application/javascript’ could not be found…”.

After the first clean boot I installed the Nashorn add-on from the marketplace. Despite the errors during boot, the rules appear to work. There might be a race condition where rules are loaded before the add-on is loaded perhaps?

1 Like

I’m currently working on improving the script file watcher to solve the Nashorn missing issue.

3 Likes

Is there a roadmap for 4.0 anywhere?
Great work btw, I jumped into OpenHAB at v3 and it’s been super stable and seems to be having a lot of work done towards making things easier for the end user.

This is about as close as we get to a roadmap.

1 Like

FYI, @florian-h05 and I are already working on migrating blockly to jsscripting (based on graalsvm):

see Migrate Blockly to JS Scripting (GraalJS) · Issue #1597 · openhab/openhab-webui · GitHub

The current state is already pretty far and blockly already supports Nashorn and graalsvm at the same time and will even gracefully provide some new blocks on jsscripting only that can’t be easily done on Nashorn.

See the discussion on how we intend to provide the migration path because it does not only affect blockly but also all handwritten rules. We are also currently discussing how we want to address the migration.

1 Like

Same here, but as @J-N-K states it is already under investigation.

is there also a wishlist for openhab 4.0?

edit: created this post Openhab 4.0 wishlist

No, there is none :wink:
But feel free to open a new topic with your feature request.

The closest would be an issue in the appropriate repo on GitHub.

Just to add a little update on the application/javascript could not be found, if you have a Nashorn script triggered with a system start level trigger, it won’t trigger during startup and you’ll have to run it manually. I’m sure Nashorn isn’t becoming available until too late in the run levels to trigger the rule.

Of course I’m going to be converting my rules and rule templates to be JS Scripting based, but I’m leaving them for now to proved a better test environment and help out where I can.