openHAB 4.0 Milestone discussion

@J-N-K is there any advise you can give me about this issue ?

Not an expert, but have transitioned two systems. The question by @Andrew_Rowe is key. Buster or Bullseye? (since you are on openhabian Iā€™m assuming it is one or the other). As noted above the openhabian version of java17 will not work with Buster, you will need to either try zulu, do a fresh install or try to upgrade from Buster to Bullseye (kind of like open heart surgery). If you are on Bullseye just use openhabian.

As to the version, I see you are on 3.4.4. I know that fixed some specific issues. If you upgraded because of those issues Iā€™d wait until 4.0M3 because I do not think 4.0M2 had those issues fixed. I saw somewhere it could be this weekend. I would try to avoid the snapshots only because less people use them. With a milestone there are more testers and better forum support if you have a problem.

Does that help?

edit: reversion is not officially supported, but I did manage to revert one system back to 3.4 from OH4M1. Obviously do an OH backup before you start anything.

Doesnā€™t openHABian already have an option to upgrade java? Sorry, itā€™s been a little while since I last used openHABian. I thought an upgrade to OH4 was already an option. Maybe start a new thread, put openHABian in the thread title and Iā€™m sure Marcus will storm in and tell you everything you are doing wrong :rofl:

1 Like

It works just fine on bullseye (11) but the libc library is too old on buster (10) for most jdk 17ā€™s to work with, including the one openHABian installs. So one will either have to upgrade their OS (which should be considered anyway) or find and manually install a jdk 17 that works on buster.

There is a limitation in openHABian where new development follows the latest OS but people donā€™t upgrade the OS and problems arise. There are still people out there running OH on wheezy and stretch still.

Just attempted upgrading to 4.0.0.M2 on MacOS, but have had to roll back to 3.4.4 because it seems to have got stuck in itā€™s head that it doesnā€™t have Java17. Here was the sequence:

  • Thinking Iā€™d updated Java not that long ago, I went ahead and ran the openHAB update script to 4.0.0.M2
  • Attempted to start, got an error, quit openHAB, looked up this thread again, went and downloaded Java 17
  • Installed Java 17, attempted to start OH4, got the same error
  • Rebooted
  • Attempted to start OH4, got the same error
  • Downgraded to openHAB 3.4.4, started up, runs perfectly
  • Quit openHAB, re-ran the Java 17 installer
  • Confirmed java --version shows Java 17
  • Updated openHAB to 4.0.0.M2 again
  • Started openHABā€¦ same error.

Itā€™s like having attempted to start once under Java<17, itā€™s permanently welded that error to openHAB forever more. Or does my error just look like a JDK problem but isnā€™t actually?

SpaceWhale:openhab robin$ ./start.sh
Launching the openHAB runtime...
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-runtime-ui; type=karaf.feature; version="[4.0.0.M2,4.0.0.M2]"; filter:="(&(osgi.identity=openhab-runtime-ui)(type=karaf.feature)(version>=4.0.0.M2)(version<=4.0.0.M2))" [caused by: Unable to resolve openhab-runtime-ui/4.0.0.M2: missing requirement [openhab-runtime-ui/4.0.0.M2] osgi.identity; osgi.identity=org.openhab.ui.iconset.classic; type=osgi.bundle; version="[4.0.0.M2,4.0.0.M2]"; resolution:=mandatory [caused by: Unable to resolve org.openhab.ui.iconset.classic/4.0.0.M2: missing requirement [org.openhab.ui.iconset.classic/4.0.0.M2] osgi.wiring.package; filter:="(osgi.wiring.package=org.openhab.core.i18n)" [caused by: Unable to resolve org.openhab.core/4.0.0.M2: missing requirement [org.openhab.core/4.0.0.M2] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=17))"]]]
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
	at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:433)
	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:420)
	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:374)
	at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:256)
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399)
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve openhab-runtime-ui/4.0.0.M2: missing requirement [openhab-runtime-ui/4.0.0.M2] osgi.identity; osgi.identity=org.openhab.ui.iconset.classic; type=osgi.bundle; version="[4.0.0.M2,4.0.0.M2]"; resolution:=mandatory [caused by: Unable to resolve org.openhab.ui.iconset.classic/4.0.0.M2: missing requirement [org.openhab.ui.iconset.classic/4.0.0.M2] osgi.wiring.package; filter:="(osgi.wiring.package=org.openhab.core.i18n)" [caused by: Unable to resolve org.openhab.core/4.0.0.M2: missing requirement [org.openhab.core/4.0.0.M2] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=17))"]]
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
	... 12 more
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve org.openhab.ui.iconset.classic/4.0.0.M2: missing requirement [org.openhab.ui.iconset.classic/4.0.0.M2] osgi.wiring.package; filter:="(osgi.wiring.package=org.openhab.core.i18n)" [caused by: Unable to resolve org.openhab.core/4.0.0.M2: missing requirement [org.openhab.core/4.0.0.M2] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=17))"]
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)
	... 13 more
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve org.openhab.core/4.0.0.M2: missing requirement [org.openhab.core/4.0.0.M2] osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=17))"
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1341)

And hereā€™s my java --version output:

openjdk 17.0.7 2023-04-18 LTS
OpenJDK Runtime Environment Zulu17.42+19-CA (build 17.0.7+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.42+19-CA (build 17.0.7+7-LTS, mixed mode, sharing)

What is set in JAVA_HOME?

That was set correctly I think, but Iā€™ve ended up being a bit more violent about it - I went to the install directory for all the old JDK versions and dumped them in the bin. Upgraded to OH4M2 and itā€™s running beautifully!

Although weirdly, it now starts up saying:

$ ./start.sh
Launching the openHAB runtime...
Unable to find any JVMs matching version "11".

So clearly it still really, really wants to us a wrong version of Java!

Since I migrated to OH4 M2 I am having problems with item updates (pushs) in the webui (chrome/firefox) and android/apple devices with the basic-ui.

Meaning: When I change a item on one device I do not get this pushed anymore on another device. I have to do a refresh on the device to see the changes.

With MainUI (the basic generated cards) its working fine.

I am inside kubernetes with the buildin nginx, but this was the same setup as before on OH3.

You have to look in that direction because refresh in UIs is working with OH4 installed simply either on Windows or on RPI.

Is there a different handling for basic UI and main UI regarding item updates?

Yes, a different SSE endpoint. But both use a SSE connection at my knowledge.

Hello

Maybe someone can help me. I canā€™t get the Enocean gateway to work under OH 4.0.0.M2.
Windows 10, Enocean USB300. The same settings work fine with OH 3.4.4. Port is correct.
The logfile tells me that the transceiver keeps resetting itself. Even with a completely new OH 4.0.0.M2 the same thing happens.

Does anyone have similar problems?

Logfile:

2023-05-20 21:22:43.467 [INFO ] [ernal.transceiver.EnOceanTransceiver] - Transceiver shutdown
2023-05-20 21:22:43.620 [INFO ] [ernal.transceiver.EnOceanTransceiver] - EnOceanSerialTransceiver initialized
2023-05-20 21:22:43.622 [INFO ] [ernal.transceiver.EnOceanTransceiver] - EnOceanSerialTransceiver RX thread started
2023-05-20 21:22:43.623 [INFO ] [nternal.handler.EnOceanBridgeHandler] - EnOceanSerialTransceiver RX thread up and running
2023-05-20 21:23:43.783 [INFO ] [ernal.transceiver.EnOceanTransceiver] - Transceiver shutdown
2023-05-20 21:23:43.934 [INFO ] [ernal.transceiver.EnOceanTransceiver] - EnOceanSerialTransceiver initialized
2023-05-20 21:23:43.936 [INFO ] [ernal.transceiver.EnOceanTransceiver] - EnOceanSerialTransceiver RX thread started
2023-05-20 21:23:43.938 [INFO ] [nternal.handler.EnOceanBridgeHandler] - EnOceanSerialTransceiver RX thread up and running

UI:
CONFIGURATION_PENDING
trying to get bridge base idā€¦

I moved my OpenHAB over to a new server on the weekend, and decided to roll the dice and upgrade to 4.0.0.M2 once the migration was completed. Overall Iā€™m pretty stoked - seems to be working well so far, with only one or two very minor issues, which I need to further investigate before I post on here (may be my config rather than OH4.0).

Anyway, one thing I have noticed after a reboot tonight (hasnā€™t featured in any previous reboots) are the following messages:

2023-05-22 21:54:02.063 [WARN ] [core.thing.internal.ThingManagerImpl] - A thing handler factory claims to support 'systeminfo:computer-fnlctl' for thing 'systeminfo:computer:fnlctl' for more than 120s, but the thing type can't be found in the registry. This should be fixed
 in the binding.
2023-05-22 21:54:02.064 [WARN ] [core.thing.internal.ThingManagerImpl] - Could not normalize configuration for 'systeminfo:computer:fnlctl' because the thing type was not found in registry.
2023-05-22 21:54:04.178 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:DaikinAirconRumpus' are missing in the respective registry for more than 120s. This should be fixed in the binding.
2023-05-22 21:54:04.180 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:DaikinAirconRumpus': {thing/channel=Type description for {0} not found although we checked the presence before.}
2023-05-22 21:54:04.188 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:DaikinAirconLounge' are missing in the respective registry for more than 120s. This should be fixed in the binding.
2023-05-22 21:54:04.189 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:DaikinAirconLounge': {thing/channel=Type description for {0} not found although we checked the presence before.}
2023-05-22 21:54:04.193 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:DaikinAirconBedroom1' are missing in the respective registry for more than 120s. This should be fixed in the binding.
2023-05-22 21:54:04.193 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:DaikinAirconBedroom1': {thing/channel=Type description for {0} not found although we checked the presence before.}
2023-05-22 21:54:04.197 [WARN ] [core.thing.internal.ThingManagerImpl] - Channel types or config descriptions for thing 'daikin:ac_unit:DaikinAirconLiving' are missing in the respective registry for more than 120s. This should be fixed in the binding.
2023-05-22 21:54:04.197 [WARN ] [core.thing.internal.ThingManagerImpl] - Failed to normalize configuration for thing 'daikin:ac_unit:DaikinAirconLiving': {thing/channel=Type description for {0} not found although we checked the presence before.}

It doesnā€™t seem to be affecting anything, and the binding in question, seems to have all channels present any accounted for (and works ok).

I am just raising, as it seems similar to Failed to normalize configuration for thing Ā· Issue #3473 Ā· openhab/openhab-core Ā· GitHub, which appeared to be closed via the first milestone release?

Cheers for all the efforts that everyone has put into OH4 - Liking what I am seeing so far!!

Updated to M3 and am having issues with the units of measurement for:

Number:Dimensionless nIndoorNoise "Indoor Noise [%.0f db]" {channel="netatmo:weather-station:home:indoor:noise#value"}

If I change it to:

Number:Dimensionless nIndoorNoise "Indoor Noise [%.0f %unit%]" {channel="netatmo:weather-station:home:indoor:noise#value", unit="db"}

I get the error:

2023-05-24 16:03:15.962 [WARN ] [penhab.core.library.items.NumberItem] - Unit 'db' could not be parsed to a known unit. Keeping old unit 'one' for item 'nIndoorNoise'.

Reverting back to the original gives me values that are completely wrong (5012 db) when it should be approximately 39db.

The unit for decibels is dB, not db. Iā€™m pretty sure itā€™s case sensitive.

1 Like

Hello,
so what are the steps for upgrading from oh3.4.4 to oh4.0m3 ? I am running on openhabian

Upgrading java via openhabian menu? And than upgrading to milestone build? Can I revert back to oh3.4.4 from milestone build?

I seem to have a problem with the ā€œanalyzeā€ function in 4.0M3 with windows edge. Just a blank screen. Everything displays ok on iPad. (Also canā€™t seem to get to the Settings; Pages or Rules). Anyone else?

Edit: Chrome displays ok
Edit2: Nevermind Edge works this morning

Thank you, that fixed it.

I upgraded from OH3 to OH4 and getting this error

 [ERROR] [rketplace.AbstractRemoteAddonService] - Failed to read JSON database, trying to purge it. You might need to re-install [] from the 'marketplace' service.

How to solve it?

In addition also this warnings

 [WARN ] [core.karaf.internal.FeatureInstaller] - The transformation add-on 'javascript' does not exist - ignoring it.

I read the release notes and know that javascript Transformation no longer exists. Is there a step to step guide how to replace it?

Is the cause of this issue the Changes in Units of Measurement (UoM)

HTTP ERROR 500 java.lang.NumberFormatException: Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark.
URI:	/basicui/app
STATUS:	500
MESSAGE:	java.lang.NumberFormatException: Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark.
SERVLET:	/basicui/app
CAUSED BY:	java.lang.NumberFormatException: Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark.

Log entry

[WARN ] [org.eclipse.jetty.server.HttpChannel] - /basicui/app
java.lang.NumberFormatException: Character N is neither a decimal digit number, decimal point, nor "e" notation exponential mark.
	at java.math.BigDecimal.<init>(BigDecimal.java:586) ~[?:?]
	at java.math.BigDecimal.<init>(BigDecimal.java:471) ~[?:?]
	at java.math.BigDecimal.<init>(BigDecimal.java:900) ~[?:?]
	at java.math.BigDecimal.valueOf(BigDecimal.java:1368) ~[?:?]
	at tech.units.indriya.function.DefaultNumberSystem.multiplyWideAndNarrow(DefaultNumberSystem.java:773) ~[?:?]
	at tech.units.indriya.function.DefaultNumberSystem.multiply(DefaultNumberSystem.java:167) ~[?:?]
	at tech.units.indriya.function.DefaultNumberSystem.divide(DefaultNumberSystem.java:172) ~[?:?]
	at tech.units.indriya.internal.function.Calculator.divide(Calculator.java:143) ~[?:?]
	at tech.units.indriya.function.LogConverter.convertWhenNotIdentity(LogConverter.java:138) ~[?:?]
	at tech.units.indriya.function.AbstractConverter$Pair.convertWhenNotIdentity(AbstractConverter.java:450) ~[?:?]
	at tech.units.indriya.function.AbstractConverter$Pair.convertWhenNotIdentity(AbstractConverter.java:450) ~[?:?]
	at tech.units.indriya.function.AbstractConverter.convert(AbstractConverter.java:238) ~[?:?]
	at org.openhab.core.library.types.QuantityType.toUnit(QuantityType.java:270) ~[?:?]
	at org.openhab.core.library.types.QuantityType.toInvertibleUnit(QuantityType.java:306) ~[?:?]
	at org.openhab.core.ui.internal.items.ItemUIRegistryImpl.getLabel(ItemUIRegistryImpl.java:419) ~[?:?]
	at org.openhab.ui.basic.internal.render.AbstractWidgetRenderer.preprocessSnippet(AbstractWidgetRenderer.java:130) ~[?:?]
	at org.openhab.ui.basic.internal.render.AbstractWidgetRenderer.preprocessSnippet(AbstractWidgetRenderer.java:113) ~[?:?]
	at org.openhab.ui.basic.internal.render.TextRenderer.renderWidget(TextRenderer.java:57) ~[?:?]
	at org.openhab.ui.basic.internal.render.PageRenderer.renderWidget(PageRenderer.java:199) ~[?:?]
	at org.openhab.ui.basic.internal.render.PageRenderer.processChildren(PageRenderer.java:165) ~[?:?]
	at org.openhab.ui.basic.internal.render.PageRenderer.processChildren(PageRenderer.java:186) ~[?:?]
	at org.openhab.ui.basic.internal.render.PageRenderer.processPage(PageRenderer.java:130) ~[?:?]
	at org.openhab.ui.basic.internal.servlet.WebAppServlet.service(WebAppServlet.java:170) ~[?:?]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) ~[bundleFile:4.0.4]
	at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedServlet.service(OsgiInitializedServlet.java:102) ~[?:?]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[?:?]
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) ~[?:?]
	at org.ops4j.pax.web.service.spi.servlet.OsgiFilterChain.doFilter(OsgiFilterChain.java:100) ~[?:?]
	at org.ops4j.pax.web.service.jetty.internal.PaxWebServletHandler.doHandle(PaxWebServletHandler.java:310) ~[?:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[?:?]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[?:?]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[?:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[?:?]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[?:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[?:?]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[?:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[?:?]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[?:?]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[?:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[?:?]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[?:?]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[?:?]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234) ~[?:?]
	at org.ops4j.pax.web.service.jetty.internal.PrioritizedHandlerCollection.handle(PrioritizedHandlerCollection.java:96) ~[?:?]
	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:731) ~[?:?]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[?:?]
	at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[?:?]
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[?:?]
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) ~[?:?]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) ~[?:?]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[?:?]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[bundleFile:9.4.50.v20221201]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[bundleFile:9.4.50.v20221201]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[bundleFile:9.4.50.v20221201]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[bundleFile:9.4.50.v20221201]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) ~[bundleFile:9.4.50.v20221201]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[bundleFile:9.4.50.v20221201]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[bundleFile:9.4.50.v20221201]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]

How do I solve this? and how do I find out which item is the issue?

Hi,
I have tried to upgrade to M3 on several installations (Ubuntu/Debian/dietPi), but package installation is not offering the new version.

Upgrading to a new SNAPSHOT is working
Setting source to testing (Milestone) is not offering M3. I can see a difference in package size retreived from ā€œapt upgradeā€ :

SNAPSHOT (unstable)
Holen:5 https://openhab.jfrog.io/artifactory/openhab-linuxpkg unstable InRelease [90,4 kB]
Holen:6 https://openhab.jfrog.io/artifactory/openhab-linuxpkg unstable/main amd64 Packages [165 kB]
Milestone (testing)
Holen:5 https://openhab.jfrog.io/artifactory/openhab-linuxpkg testing InRelease [12,5 kB]
Holen:6 https://openhab.jfrog.io/artifactory/openhab-linuxpkg testing/main amd64 Packages [8.084 B]

Anybody else having issues with apt upgrades ?

@Benjy Any idea ?