openhab / openhab-js

openHAB JavaScript Library for JavaScript Scripting Automation
https://www.openhab.org/addons/automation/jsscripting/
Eclipse Public License 2.0
38 stars 31 forks source link

[actions] `get()` not working #164

Closed BasvanH closed 1 year ago

BasvanH commented 1 year ago

I've updated from 3.4.0M2 to latest snapshot openHAB 3.4.0 Build #3133

In UI rules I used to send a telegram message like so:

var telegramAction = actions.get("telegram", "telegram:telegramBot:5a3e984615");

This worked on 3.4.0M2, in latest snapshot I get this error:

2022-10-15 16:50:06.147 [ERROR] [b.automation.script.javascript.stack] - Failed to execute script:
org.graalvm.polyglot.PolyglotException: TypeError: (intermediate value).get is not a function
        at <js>.:program(<eval>:3) ~[?:?]
        at org.graalvm.polyglot.Context.eval(Context.java:379) ~[?:?]
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458) ~[?:?]
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426) ~[?:?]
        at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) ~[java.scripting:?]
        at org.openhab.automation.jsscripting.internal.scriptengine.DelegatingScriptEngineWithInvocableAndAutocloseable.eval(DelegatingScriptEngineWithInvocableAndAutocloseable.java:51) ~[?:?]
        at org.openhab.automation.jsscripting.internal.scriptengine.InvocationInterceptingScriptEngineWithInvocableAndAutoCloseable.eval(InvocationInterceptingScriptEngineWithInvocableAndAutoCloseable.java:69) ~[?:?]
        at org.openhab.automation.jsscripting.internal.scriptengine.DelegatingScriptEngineWithInvocableAndAutocloseable.eval(DelegatingScriptEngineWithInvocableAndAutocloseable.java:51) ~[?:?]
        at org.openhab.automation.jsscripting.internal.scriptengine.InvocationInterceptingScriptEngineWithInvocableAndAutoCloseable.eval(InvocationInterceptingScriptEngineWithInvocableAndAutoCloseable.java:69) ~[?:?]
        at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.lambda$0(ScriptActionHandler.java:58) ~[?:?]
        at java.util.Optional.ifPresent(Optional.java:183) [?:?]
        at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.execute(ScriptActionHandler.java:55) [bundleFile:?]
        at org.openhab.core.automation.internal.RuleEngineImpl.executeActions(RuleEngineImpl.java:1181) [bundleFile:?]
        at org.openhab.core.automation.internal.RuleEngineImpl.runRule(RuleEngineImpl.java:989) [bundleFile:?]
        at org.openhab.core.automation.internal.TriggerHandlerCallbackImpl$TriggerData.run(TriggerHandlerCallbackImpl.java:89) [bundleFile:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]

actions.get() no longer seems to be there, how can I send a telegram message?

Regards, Bastiaan

florian-h05 commented 1 year ago

That‘s quite interesting, seems like the problem is some openhab-js change from version 2.0.0 to 2.0.3.

It is definitely not deprecated, this is a bug.

I will take a look into this.

BasvanH commented 1 year ago

@florian-h05, please let me know if I can test something for you.

florian-h05 commented 1 year ago

@BasvanH I‘ve tagged you in the PR with the fix and explained how to test, so please give it a try!

BasvanH commented 1 year ago

Yes, after installing the update it works again. Thanks!

If this PR is merged, when will it reach the next snapshot?

florian-h05 commented 1 year ago

Great 👍

If this PR is merged, when will it reach the next snapshot?

I can merge on my own, but I'll wait a little bit if someone reviews.

After it has been merged, I can release a new version and open a PR on openhab-addons to use the new version in the JS Scripting addon. I think this would take one or two days until it's in the milestone.