openHAB 3.0 Milestone 1 discussion

Hello,

I’m facing an issue with the REST API which is new in 3.0.0, using it with HomeBridge (historically, the HomeKit binding was not satisfying and not supporting enough device types, so I switched to HB for HK)

When HB tries to interact with the REST API, the following happens in stack trace:

2020-10-16 18:58:25.848 [ERROR] [rg.apache.cxf.jaxrs.utils.JAXRSUtils] - No message body reader has been found for class java.lang.String, ContentType: application/octet-stream
2020-10-16 18:58:25.858 [WARN ] [s.impl.WebApplicationExceptionMapper] - javax.ws.rs.WebApplicationException: HTTP 415 Unsupported Media Type
	at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1382)
	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processRequestBodyParameter(JAXRSUtils.java:877)
	at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:822)
	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:214)
	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:78)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536)
	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:1581)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307)
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:494)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
	at java.base/java.lang.Thread.run(Thread.java:834)

The request generating this error is the following:

image

This was perfectly running in 2.5.x.

Please let me know if I’m not reporting the bug in the right place!

Cheers,

Ben

This is more an issue with the HomeBridge plugin than with openHAB.

It’s already been opened as an issue: https://github.com/steilerDev/homebridge-openhab2-complete/issues/87

1 Like

Well it breaks a backward compatibility with systems compatible with 2.5.x - but anyway good to see that there is already work in progress on this.

Do you use the new feature of the new influx binding which allows sending values in a single measurement by using tags?
This is what I do and I thought it would be related to this new feature. Meaning, integers or floats in a measurement which was created with the respective other type.

I tried installing running are fresh install of the milestone on my macbook pro and I can add bindings but can’t add any things. I have no Things page and my inbox is missing…

There is no indication in the UI of what to do next…

image

Did I do something wrong?

Edit: I was able to fix this by restarting openhab. I don’t know why it was necessary to do so though…

My plan was to have my Jython and helper library add-ons merged into OH 2.5.0 about year ago! But they were never merged and are now closed.

2 Likes

I suppose you were using the new InfluxDB version addon that is mainly a complete rewrite of previous one introducing also Influx2 support.
Can you confirm the addon version an open an issue with that and details about your item definition, influxdb version, and previous openhab.log entries about influxdb addon (setup previously to TRACE org.openhab.persistence.influxdb category).
And any details you can provide to reproduce the issue, please put also previous

The addon was developed and tested with OH 3.0, but I was not able to do extensive testing as at the moment it was integrated OH 3.0 was very little usable.

Hello,
I have 2 problem with the OH3 via openhab Cloud.
The first one, if I access the openhab 3 dashboard with the link on openhab cloud, the oh icons doesn’t appear, I have 404 :

The second problem is with the PWA, if I install the PWA from my ip adress like 192.168.1.X on my Android phone, everything work great.
If I install it with https://home.myopenhab.org URL, the PWA work the first time and when I close it and reopend it, he don’t work anymore.
Here the chrome dev tool debug result for the PWA :


Where I can open issue on this 2 points?

thank for you work

Edit : added Screenshot debug PWA

Hi, found another issue !

Rule files in capital letter do not run and generate the below error !

2020-10-16 13:29:39.066 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'Fibaro_Plug4_Schalten' received command OFF

2020-10-16 13:29:39.068 [INFO ] [marthome.event.ItemStateChangedEvent] - Item 'Fibaro_Plug4_Schalten' changed from ON to OFF

==> /var/log/openhab/openhab.log <==

2020-10-16 13:29:39.068 [ERROR] [time.internal.engine.DSLScriptEngine] - Script has an invalid context reference 'Z-Wave-2'!

==> /var/log/openhab/events.log <==

2020-10-16 13:29:39.885 [INFO ] [marthome.event.ItemStateChangedEvent] - Item 'Fibaro_Plug4_Watt' changed from 1.3 to 0

2020-10-16 13:29:40.007 [INFO ] [marthome.event.ItemStateChangedEvent] - Item 'Echo_Show_Wohnzimmer_LastVoiceCommand' changed from kaffeemühle an to 

2020-10-16 13:29:40.007 [INFO ] [marthome.event.ItemStateChangedEvent] - Item 'Echo_Show_Wohnzimmer_LastVoiceCommand' changed from  to kaffeemaschine aus

2020-10-16 13:29:41.739 [INFO ] [marthome.event.ItemStateChangedEvent] - Item 'Temperatur_EG_Wohnzimmer' changed from 21.04 to 21.12
[12:29:41] root@t2:/etc/openhab/rules# mv Z-Wave.rules zwave.rules
[12:30:00] root@t2:/etc/openhab/rules# ls -ltra
total 92
-rwxrwxrwx   1 openhab openhab  276 Jun 16 14:05 windalarm.rules
-rwxrwxrwx   1 openhab openhab 3672 Jun 16 14:05 timer.rules
-rwxrwxrwx   1 openhab openhab  223 Jun 16 14:05 readme.txt
-rwxrwxrwx   1 openhab openhab  585 Jun 16 14:05 marantz.rules
-rwxrwxrwx   1 openhab openhab  715 Jun 16 14:05 kueche.rules
-rwxrwxrwx   1 openhab openhab 5250 Jun 16 14:05 knx.rules
-rwxrwxrwx   1 openhab openhab 2032 Jun 16 14:05 haustuer.rules
-rwxrwxrwx   1 openhab openhab 1347 Jun 16 14:05 fenster.rules
-rwxrwxrwx   1 openhab openhab  668 Jun 16 14:05 callstate.rules
-rwxrwxrwx   1 openhab openhab  580 Jun 16 14:05 blauberg.rules
-rwxrwxrwx   1 openhab openhab 2003 Jun 16 14:05 anwesenheit.rules
-rwxrwxrwx   1 openhab openhab 1741 Jun 16 14:05 amazonecho.rules
-rwxrwxrwx   1 openhab openhab  629 Jun 18 18:28 heizung.rules
-rwxrwxrwx   1 openhab openhab 2114 Jul 21 12:40 zwave.rules
-rwxrwxrwx   1 openhab openhab  257 Aug 21 18:25 hyperion.rules
-rwxrwxrwx   1 openhab openhab 2548 Aug 21 18:44 harmony.rules
drwxrwxrwx+ 16 openhab openhab 4096 Oct 15 15:15 ..
-rwxrwxrwx   1 openhab openhab 1959 Oct 15 16:14 alarm.rules
-rwxrwxrwx   1 openhab openhab 4147 Oct 15 17:35 fritzbox.rules
-rwxrwxrwx   1 openhab openhab  305 Oct 16 09:33 haus.rules
drwxrwxrwx+  2 openhab openhab 4096 Oct 18 12:30 .

i changed the file to lower case and rule fired !
thanks
Thomas

1 Like

Hi,

running the new Influx persistance 3.0.0.M.1 with
[12:38:34] root@t2:/etc/openhab/rules# influx
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3

[12:47:36] root@t2:/etc/openhab/persistence# more influxdb.persist
Strategies {
   everyMinute  : "0 * * * * ?"
   everyHour    : "0 0 * * * ?"
   everyDay     : "0 0 0 * * ?"
   default = everyChange
}
Items {
* : strategy = everyMinute,  restoreOnStartup
}

Bad Item:
Number  Fibaro_Plug1_Watt            "Fernseher aktuelle Leistung [%.1f W]"                  <energy>                (Strom,EG_Wohnzimmer)           { channel="zwave:device:36569a7a:node8:sensor_power", autoupdate="true" }
Number  Fibaro_TEMP_12               "Temperatur Küche[%.1f °C]"                         <temperature>               (Status,Temperatur,EG_Kueche)     { channel="zwave:device:36569a7a:node29:sensor_temperature", autoupdate="true" }

good Item:
Number  Fibaro_TEMP_11               "Temperatur KG Dusche[%.1f °C]"                         <temperature>           (Status,Temperatur,KG_Buero)     { channel="zwave:device:36569a7a:node21:sensor_temperature", autoupdate="true" }

even deleted full DB and issue is the same afterwards

thanks
Thomas

I do not have OH3 installed currently. Does the UI let you use upper case letters? If so that could be a related issue.

You also removed the “-”, my guess it was this one. My rules do have an uppercase letter at the start and are working, OH3 does give them an uniquie ID by addin a “-” and a number!

1 Like

Yes, might be that the ‘-’ caused the issue !

Hi,

i installed openhab3, upgrading my openhab2, and i have to say… great work! very nice interface, very clean and almost everything is working prefectly already.

some issues i encountred:

  • some of my rules stopped working:
    • the syntax of the executeCommandLine changed in the DSL syntax, but i managed to find my way:
      var json=executeCommandLine(Duration.ofSeconds(15),"/usr/bin/python3", "/etc/openhab/scripts/fritzbox.py")
    • the 1v DSL i cannot post update to items like so anymore: Fritzbox_transmission_rate_down.postUpdate(transmission_rate_down) , i get the following error: Script execution failed: An error occurred during the script execution: null
    • i tried to convert my rules in the new ECMA script, but i could not find a way to excute a command.
      • var ExecUtil = Java.type("org.openhab.core.io.net.exec.ExecUtil"); throws an error : Caused by: java.lang.ClassNotFoundException: org.openhab.core.io.net.exec.ExecUtil cannot be found by org.apache.aries.jax.rs.whiteboard_1.0.9 eventhough the given class seems to be in the classpath (or the jars of openhab)
  • i also get the data type errors about influxDB. not sure how to fix it.

Please enter an issue for openhab-core for that. There should ne no restriction for filenames.

I have a handful (3 maybe) of 2.x JARs that I use in place of what comes stock with OH. Mostly bindings that aren’t committed into code yet. Is there any expectation in either direction of them working on 3.0? I realize that the goal would be for the developer to move to 3.x but some haven’t been and I don’t want to lose that functionality in the interim.

If you have the source I believe there is a migration script that can help port it to OH3, You would then need to repackage it though.

Unfortunately I don’t. These are jars that the developers have posted on the threads here (for example the MyQ binding Chamberlain MyQ Binding).

No jython?
Seriously?

1 Like

See How to Setup Jython for Jython support.