openHAB 3.2 Release discussion

Interesting ist, that a lot of unrelated bindings were affected and that might be worth a look for the future to make the loading of bindings more independent…

Thanks! I guess I will test with a more linear upgrade path.

4 posts were split to a new topic: Generic upgrade issues

Thank you to all those that made version 3.2 possible.
Just to double check. Do the upgrade issues affect docker installation only?
Are there any issues reported with non-docker installations?

Anyone else having a problem with their Mail binding after the upgrade? I’m getting:

14:49:46.473 [WARN ] [hab.binding.mail.internal.SMTPHandler] - Sending the email to the following server failed : redacted.redacted.net:25
14:49:46.476 [WARN ] [hab.binding.mail.internal.SMTPHandler] - javax.mail.MessagingException: IOException while sending message;
  nested exception is:
	javax.activation.UnsupportedDataTypeException: text/plain; charset=UTF-8

Thing configuration:

Thing mail:smtp:redacted [ hostname="redacted.redacted.net", sender="redacted@redacted.com" ]

JavaScript code:

actions.get("mail", "mail:smtp:redacted").sendMail("redacted@redacted.com", "Test", "Test")

Actual addresses / IDs redacted. This was working in 3.1 on a manual install at /opt/openhab. It broke after running the upgrade script. I tried a fresh install to see if that made a difference but same problem on a fresh install too.

Yes and I opened a new thread at Mail binding errors sending mail UnsupportedDataTypeException: text/plaijn; charset=UTF=8.

Are you by chance running with JSScripting or using a different rules language?

It’s probably prudent to have most of the discussion over on the thread I started though.

Circling back, I’ve opened an issue for this: [Mail] sendMail and sendHtmlFail errors for UI rules · Issue #11838 · openhab/openhab-addons · GitHub It seems to impact all UI based rules regardless of language.

@rlkoshak Thanks, I did a search for this topic but didn’t stumble across your existing one. I will continue the conversation there.

Thanks for the ping, @wborn and sorry for not having it uploaded yet. @ramack, it’s done now and the xmppclient binding should now smoothly install (and not have any negative impact on other add-ons either).

2 Likes

Hello Kai,

thanks for your efforts. I just started built up OH3.2 from scratch using docker on my synology. But I am not sure whether the fixed version is already available in the docker repository (openhab:latest). Anyway, binding upload doesn’t work. How can I check whether your fixes are already available? Or is it what you mean “to upload the artifacts to the online repo”. Thnaks for any advice.

A huge thanks and a merry christmas to all involved in development, forums/help,documentation and organisation! Been using OH for years and I really appreciate all the work and effort! :clap: :christmas_tree: :slightly_smiling_face:

4 Likes

Just wanted to say here that update went without an hitch (apt based installation on raspbian). Thanks!

5 Likes

Same here, updated from 3.1.1 to 3.2.0 stable on openhabian. Worked perfect. I only had to replace Amazon Echo Binding with 3.2.8 version due to “socket errors” in openhab.log

After upgrading to 3.2 my powerview hub stays offline. I should mention that I am on docker. My network mode is host. The error message I see on the UI is:

BRIDGE_OFFLINE
java.util.concurrent.ExecutionException: "java.io.EOFException: HttpConnectionOverHTTP@1756b71::SocketChannelEndPoint@7e74a2{l=/10.0.0.3:40494,r=/10.0.0.52:80,ISHUT,fill=-,flush=-,to=10/0}{io=1/0,kio=1,kro=1}->HttpConnectionOverHTTP@1756b71(l:/10.0.0.3:40494 <-> r:/10.0.0.52:80,closed=false)=>HttpChannelOverHTTP@1e1013c(exchange=HttpExchange@1907899{req=HttpRequest[GET /api/sceneCollections/ HTTP/1.1]@138be39[TERMINATED/null] res=HttpResponse[null 0 null]@401a18[PENDING/null]})[send=HttpSenderOverHTTP@10d1c4d(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@183e345{s=START}],recv=HttpReceiverOverHTTP@1505c7a(rsp=IDLE,failure=null)[HttpParser{s=CLOSED,0 of -1}]]"

Does anybody have an idea how to fix this?

Hi there,
it seems, that in the nuki-binding of 3.2 are some breaking changes because they have changed all the lockstate-codes to lock and unlock the nuki.

i think, it would be good, if you could add this in the ‘breaking-changes’ enumeration of the release-announcement. it tooks me a couple of “magic minutes” in the cold to explore this…

thanks! Ralph

Hi. Thanks for the update!

I updated from the RC1 to the 3.2 Release and now I found a bug. I am not 100% sure that it wasn’t already in the RC1 version, but it wasn’t in the 3.2 M5 Release.

This occures when I open a specific group in my sitemap.

2021-12-22 08:43:11.018 [ERROR] [internal.JSONResponseExceptionMapper] - Unexpected exception occurred while processing REST request.

java.lang.NullPointerException: null

	at org.openhab.core.ui.internal.items.ItemUIRegistryImpl.getLabel(ItemUIRegistryImpl.java:450) ~[?:?]

	at org.openhab.core.io.rest.sitemap.internal.SitemapResource.createWidgetBean(SitemapResource.java:517) ~[?:?]

	at org.openhab.core.io.rest.sitemap.internal.SitemapResource.createPageBean(SitemapResource.java:475) ~[?:?]

	at org.openhab.core.io.rest.sitemap.internal.SitemapResource.getPageBean(SitemapResource.java:371) ~[?:?]

	at org.openhab.core.io.rest.sitemap.internal.SitemapResource.getPageData(SitemapResource.java:284) ~[?:?]

	at jdk.internal.reflect.GeneratedMethodAccessor346.invoke(Unknown Source) ~[?:?]

	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]

	at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[bundleFile:3.4.5]

	at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[bundleFile:3.4.5]

	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[bundleFile:3.4.5]

	at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[bundleFile:3.4.5]

	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[bundleFile:3.4.5]

	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[bundleFile:3.4.5]

	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298) ~[bundleFile:3.4.5]

	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:222) ~[bundleFile:3.4.5]

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) ~[bundleFile:3.1.0]

	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273) ~[bundleFile:3.4.5]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) ~[bundleFile:9.4.43.v20210629]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434) ~[bundleFile:9.4.43.v20210629]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.43.v20210629]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:82) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388) ~[bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [bundleFile:9.4.43.v20210629]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [bundleFile:9.4.43.v20210629]

	at java.lang.Thread.run(Thread.java:829) [?:?]

Sitemap:

Group item=Wetterstation label="Wetterstation" icon="sun_clouds"

Items:

Group                           Wetterstation                                   "Wetterstation"                         <sun>                   (Aussenbereich)

Number:Pressure                 HttpListenerWetterstation_BaromIn               "Luftdruck [%.1f hPa]"                  <pressure>              (Wetterstation, gHistory)          ["Measurement", "Pressure"]                 { channel="httplistener:HttpListener:weatherstation:BaromIn" }        
Number:Temperature              HttpListenerWetterstation_TempF                 "Temperatur [%.1f °C]"                  <temperature>           (Wetterstation, gHistory)          ["Measurement", "Temperature"]              { channel="httplistener:HttpListener:weatherstation:TempF" }          
Number:Temperature              HttpListenerWetterstation_DewPointF             "Taupunkt [%.1f °C]"                    <temperature>           (Wetterstation, gHistory)          ["Measurement", "Temperature"]              { channel="httplistener:HttpListener:weatherstation:DewPointF" }      
Number                          HttpListenerWetterstation_Humidity              "Luftfeuchtigkeit [%.1f %%]"            <humidity>              (Wetterstation, gHistory)          ["Measurement", "Humidity"]                 { channel="httplistener:HttpListener:weatherstation:Humidity" }       
Number:Speed                    HttpListenerWetterstation_WindSpeedMph          "Windgeschwindigkeit [%.1f km/h]"       <wind>                  (Wetterstation, gHistory)          ["Measurement", "Wind"]                     { channel="httplistener:HttpListener:weatherstation:WindSpeedMph" }   
Number:Speed                    HttpListenerWetterstation_WindGustMph           "Windböe [%.1f km/h]"                   <wind>                  (Wetterstation)                    ["Measurement", "Wind"]                     { channel="httplistener:HttpListener:weatherstation:WindGustMph" }    
Number:Angle                    HttpListenerWetterstation_WindDir               "Windrichtung"                          <wind>                  (Wetterstation)                    ["Point"]                                   { channel="httplistener:HttpListener:weatherstation:WindDir" }        
Number                   HttpListenerWetterstation_RainIn                "Regenmenge [%.1f mm/h]"                <rain>                  (Wetterstation, gHistory)          ["Measurement", "Rain"]                     { channel="httplistener:HttpListener:weatherstation:RainIn" }         
Number:Length                   HttpListenerWetterstation_DailyRainIn           "Regenmenge (Tag)"                      <rain>                  (Wetterstation, gHistory)          ["Measurement", "Rain"]                     { channel="httplistener:HttpListener:weatherstation:DailyRainIn" }    
Number:Intensity                HttpListenerWetterstation_SolarRadiation        "Sonnenstrahlung [%.1f W/m²]"           <sun>                   (Wetterstation, gHistory)          ["Point"]                                   { channel="httplistener:HttpListener:weatherstation:SolarRadiation" } 
Number                          HttpListenerWetterstation_UV                    "UV"                                    <sun>                   (Wetterstation, gHistory)          ["Measurement", "Ultraviolet"]              { channel="httplistener:HttpListener:weatherstation:UV" }             
Number:Temperature              HttpListenerWetterstation_IndoorTempF           "Innentemperatur [%.1f °C]"             <temperature>           (Wetterstation, gHistory)          ["Measurement", "Temperature"]              { channel="httplistener:HttpListener:weatherstation:IndoorTempF" }    
Number                          HttpListenerWetterstation_IndoorHumidity        "Innenluftfeuchtigkeit [%.1f %%]"       <humidity>              (Wetterstation, gHistory)          ["Measurement", "Humidity"]                 { channel="httplistener:HttpListener:weatherstation:IndoorHumidity" } 

Update to 3.2 went smoothly for apt based install on Raspberry Pi 4.
No bugs found so far.
Many thanks :pray:

1 Like

I updated from 3.1.1 to 3.2 on openhabian 1.7, I had a filepermission issue. But after fixing that it works smoothly now.

Thx devs!

Hi there - Thanks for the great work on this release. Most of my integrations have come back to life and are looking good, with the exception of the CBUS binding, which is throwing an exception on startup.

See the discussion at C-Bus binding for more details, however the title does not link it to the 3.2.0 upgrade, as the user was trying to setup cbus integration for the first time since installing 3.2.0, so it would not have been obvious that it was a regression.

I have raised the following bug ticket for this:

Looking at the changes in the binding for 3.2.0, there are no material changes applied other than the “spotless” & “crowdin” changes applied across all the bindings, so hard to imagine it is anything to do with those, so perhaps more an underlying change in the OpenHAB framework causing the regression? (disclaimer: I’m not a java programmer, so don’t take the above observation as a statement of fact :slight_smile: )

FYI @jpharvey

Cheers

Thanks for reporting the bug. I spotted this a few weeks ago and have a fix. I just havent found time to create the pull request for it. Let me try to get that done in the next couple of days. If not it might need to wait until Christmas.
It was a change in an underlying class of Openhab that caused it, not a change in the binding.

1 Like

Thank you so much, I upgraded a couple of days ago, and although I am ok with programming rules, blockly is just so easy and fast.
This release really feels like openhab matured a great bit.
Just two minor things:
In the logs, I often get a penhab.event.ItemStateChangedEvent or even hab.event.ItemStateChangedEvent. This is not always the case and is not really a problem, but just wanted to tell you about it.
Also it would be great if the item state suggestions I can put behind an MQTT item would show up everywhere I interact with the item, for example blockly.