openHAB 4.2 Milestone discussion

Create a PR like this one.

All these alerts will then be documented in the release note.

1 Like

I updated to 4.2.M2 last weekend, and noticed now that the DBQuery binding has stopped working, the bridge starts initializing, but then gets set to UNKNOWN. Enabled trace logging, and can see a log statement that says it’s connecting (to influxdb), but then nothing. Influxdb persistence works without a problem though.

Will openhab 4.2 be Java21 ready?

There is already ongoing work to have it working with Java 21. [CI] Add Java 21 compiling to J17 and native J21 by holgerfriedrich · Pull Request #4186 · openhab/openhab-core · GitHub

@holger_hees, you could add a breaking change alert to update.lst in the distro repo.

Section 4.2.0 (in alphabetical order).

done

1 Like

Hello, is there an answer to my question?

Work is in progress (not finished) to make openHAB runnable with Java 21.
OH 4.2 will not require Java 21 to run and recommendation will remain using Java 17.

Just for the record. Start and stop of openhab service (4.2.0.M2 on openhabian Pi4) looks like this for me:

Apr 26 07:26:06 openHABianPi systemd[1]: Stopping openhab.service - openHAB instance, reachable at http://openHABianPi:8080...
Apr 26 07:26:16 openHABianPi karaf[798]: Exception in thread "Timer-5" java.lang.NullPointerException: Cannot invoke "org.openhab.binding.zwave.internal.protocol.ZWaveTransactionResponse.getState()" because "response" is null
Apr 26 07:26:16 openHABianPi karaf[798]: Exception in thread "Timer-4"         at org.openhab.binding.zwave.internal.protocol.ZWaveNode$WakeupTimerTask.run(ZWaveNode.java:1518)
Apr 26 07:26:16 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
Apr 26 07:26:16 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.run(Timer.java:516)
Apr 26 07:26:16 openHABianPi karaf[798]: Exception in thread "Timer-8" java.lang.NullPointerException: Cannot invoke "org.openhab.binding.zwave.internal.protocol.ZWaveTransactionResponse.getState()" because "response" is null
Apr 26 07:26:16 openHABianPi karaf[798]:         at org.openhab.binding.zwave.internal.protocol.ZWaveNode$WakeupTimerTask.run(ZWaveNode.java:1518)
Apr 26 07:26:16 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
Apr 26 07:26:16 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.run(Timer.java:516)
Apr 26 07:26:17 openHABianPi karaf[798]: java.lang.NullPointerException: Cannot invoke "org.openhab.binding.zwave.internal.protocol.ZWaveTransactionResponse.getState()" because "response" is null
Apr 26 07:26:17 openHABianPi karaf[798]:         at org.openhab.binding.zwave.internal.protocol.ZWaveNode$WakeupTimerTask.run(ZWaveNode.java:1518)
Apr 26 07:26:17 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
Apr 26 07:26:17 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.run(Timer.java:516)
Apr 26 07:26:17 openHABianPi karaf[798]: Exception in thread "Timer-7" java.lang.NullPointerException: Cannot invoke "org.openhab.binding.zwave.internal.protocol.ZWaveTransactionResponse.getState()" because "response" is null
Apr 26 07:26:17 openHABianPi karaf[798]:         at org.openhab.binding.zwave.internal.protocol.ZWaveNode$WakeupTimerTask.run(ZWaveNode.java:1518)
Apr 26 07:26:17 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
Apr 26 07:26:17 openHABianPi karaf[798]:         at java.base/java.util.TimerThread.run(Timer.java:516)
Apr 26 07:26:25 openHABianPi systemd[1]: openhab.service: Deactivated successfully.
Apr 26 07:26:25 openHABianPi systemd[1]: Stopped openhab.service - openHAB instance, reachable at http://openHABianPi:8080.
Apr 26 07:26:25 openHABianPi systemd[1]: openhab.service: Consumed 6h 32min 58.528s CPU time.
-- Boot 8498248331b545d3939b21c53a4b083d --
Apr 26 07:27:21 openHABianPi systemd[1]: Started openhab.service - openHAB instance, reachable at http://openHABianPi:8080.
Apr 26 07:29:40 openHABianPi karaf[790]: org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=shell; type=karaf.feature; version="[4.4.5,4.4.5]"; filter:=">
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:433)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:420)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:374)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:256)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
Apr 26 07:29:40 openHABianPi karaf[790]:         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
Apr 26 07:29:40 openHABianPi karaf[790]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
Apr 26 07:29:40 openHABianPi karaf[790]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
Apr 26 07:29:40 openHABianPi karaf[790]:         at java.base/java.lang.Thread.run(Thread.java:840)
Apr 26 07:29:40 openHABianPi karaf[790]: Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve shell/4.4.5: missing requirement [shell/4.4.5] osgi.identity; osgi.identity=org.apache.karaf.shell.core; type=os>
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
Apr 26 07:29:40 openHABianPi karaf[790]:         ... 12 more
Apr 26 07:29:40 openHABianPi karaf[790]: Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve org.apache.karaf.shell.core/4.4.5: missing requirement [org.apache.karaf.shell.core/4.4.5] osgi.wiring.package; >
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
Apr 26 07:29:40 openHABianPi karaf[790]:         ... 13 more
Apr 26 07:29:40 openHABianPi karaf[790]: Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve org.eclipse.osgi/3.18.0.v20220516-2155: missing requirement [org.eclipse.osgi/3.18.0.v20220516-2155] osgi.ee; fi>
Apr 26 07:29:40 openHABianPi karaf[790]:         at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
Apr 26 07:29:40 openHABianPi karaf[790]:         ... 14 more

Hey,

misunderstanding I replied to my issue in post

With 4.0 the log started to include warnings about delayed start of Daikin and MiiO bindings. Now with 4.2.0,M2 these warnings contain more info

2024-04-26 08:44:33.522 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:cozinha' are missing in the respective registry for more than 120s. In case it does not happen immediately after an upgrade, it should be fixed in the binding.
2024-04-26 08:44:33.543 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:cozinha': {thing/channel=Type description daikin:acunit-specialmode-powerful for daikin:ac_unit:cozinha:specialmode-powerful not found, although we checked the presence before.}
2024-04-26 08:44:33.576 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:suite' are missing in the respective registry for more than 120s. In case it does not happen immediately after an upgrade, it should be fixed in the binding.
2024-04-26 08:44:33.579 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:suite': {thing/channel=Type description daikin:acunit-specialmode-powerful for daikin:ac_unit:suite:specialmode-powerful not found, although we checked the presence before.}
2024-04-26 08:44:33.588 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:sala' are missing in the respective registry for more than 120s. In case it does not happen immediately after an upgrade, it should be fixed in the binding.
2024-04-26 08:44:33.590 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:sala': {thing/channel=Type description daikin:acunit-specialmode-powerful for daikin:ac_unit:sala:specialmode-powerful not found, although we checked the presence before.}
2024-04-26 08:44:53.624 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'miio:gateway:1072B9E6' are missing in the respective registry for more than 120s. In case it does not happen immediately after an upgrade, it should be fixed in the binding.
2024-04-26 08:44:53.627 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'miio:gateway:1072B9E6': {thing/channel=Type description miio:LUMI_GATEWAY_MIEU01_guard for miio:gateway:1072B9E6:guard not found, although we checked the presence before.}

Maybe now the binding maintainners can correct this.

The fix for Tapo is still not merged :frowning_face:

I don’t see an open Pull Request for tapo:

https://github.com/openhab/openhab-addons/pulls?q=is%3Apr+is%3Aopen+tapo+in%3Atitle

Can you point me to that?

It was merged this morning :muscle: :muscle:

1 Like

A post was split to a new topic: Kodi install fails

Hi,

after installing M3 i see the following error while executing scripts with ephemeris:

Script execution of rule with UID ‘6e2fb0dab0’ failed: java.lang.Exception: java.lang.NoClassDefFoundError: Could not initialize class de.focus_shift.jollyday.core.HolidayManager

console.error((actions.Ephemeris.getBankHolidayName(time.toZDT('2022-12-25'))));

Any ideas?

Hey,

thanks for the great work appreciated the work of the whole team…

I only getting this error

[ERROR] [ence.internal.PersistenceManagerImpl] - Exception occurred while querying persistence service 'jdbc' to restore 'localDailyForecastTomorrowConditionIcon': String of type 'org.mariadb.jdbc.MariaDbBlob' is not supported

Image localDailyForecastTomorrowConditionIcon "1 Tages Vorhersage Icon" { channel="openweathermap:weather-and-forecast:api:smarthome:forecastTomorrow#icon" }

Additonal errors in the log

I am on openhabian so I wonder why I get this error?

[ERROR] [y.internal.WindowsUsbSerialDiscovery] - bundle org.openhab.core.config.discovery.usbserial.windowsregistry:4.2.0.M3 (320)[org.openhab.core.config.discovery.usbserial.windowsregistry.internal.WindowsUsbSerialDiscovery(389)] : The deactivate method has thrown an exception

And at ther first startup I get also a lot of these errors

[ERROR] [Events.Framework                    ] - FrameworkEvent ERROR

In M3 something is broken with ItemHistory object in JSS. I’m using “deltaSince” and “previousState” in my rules and see a lot of errors. No issues in M2:

2024-05-20 09:09:13.878 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:13.880 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:19.873 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:19.874 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:25.864 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:25.865 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:30.878 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:30.879 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:36.878 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:36.879 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:42.417 [ERROR] [omation.script.javascript.ca1bab01fe] - Failed to execute script: TypeError: undefined has no such function "deltaSince"
        at <js>.:program(<eval>:12)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 75 more
2024-05-20 09:09:42.418 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'ca1bab01fe' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "deltaSince"
2024-05-20 09:09:42.878 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:42.879 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:48.872 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:48.873 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:09:54.862 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:09:54.863 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"
2024-05-20 09:10:00.643 [ERROR] [omation.script.javascript.2c486a1907] - Failed to execute script: TypeError: undefined has no such function "deltaSince"
        at <js>.:program(<eval>:18)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:10:00.644 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '2c486a1907' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "deltaSince"
2024-05-20 09:10:00.863 [ERROR] [omation.script.javascript.354421511f] - Failed to execute script: TypeError: undefined has no such function "previousState"
        at <js>.:program(<eval>:13)
        at org.graalvm.polyglot.Context.eval(Context.java:399)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:458)
        at com.oracle.truffle.js.scriptengine.GraalJSScriptEngine.eval(GraalJSScriptEngine.java:426)
        at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
        ... 21 more
2024-05-20 09:10:00.864 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID '354421511f' failed: org.graalvm.polyglot.PolyglotException: TypeError: undefined has no such function "previousState"

Could this be the reason?

Yes, this bundle is now there even on Linux machines.
This error occurred when you did what exactly ?
Looks like I don’t have it while I am on Pi OS (not openhabian) when I start openHAB.

Ok, I got it, it occurs when you stop openHAB.