openHAB 3.0 Milestone 2 discussion

Hello,

is it possible to use the say command with rule DSL? My script:

say("sonos:PLAY3:RINCON_000E5879AFA201400", InputString.state.toString, new PercentType (30))

If I press play to test the rule i got the following error:

    2020-11-06 13:11:34.829 [WARN ] [core.voice.internal.VoiceManagerImpl] - Error saying 'sonos:PLAY3:RINCON_000E5879AFA201400': No TTS service can be found for voice Hallo JOhannes, komm Essen!

org.openhab.core.voice.TTSException: No TTS service can be found for voice Hallo JOhannes, komm Essen!

	at org.openhab.core.voice.internal.VoiceManagerImpl.say(VoiceManagerImpl.java:203) [bundleFile:?]

	at org.openhab.core.model.script.actions.Voice.say(Voice.java:121) [bundleFile:?]

	at org.openhab.core.model.script.actions.Voice.say(Voice.java:85) [bundleFile:?]

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]

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

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

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1176) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1151) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1137) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1082) [bundleFile:?]

	at org.openhab.core.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:992) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:955) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:236) [bundleFile:?]

	at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:216) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:459) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:240) [bundleFile:?]

	at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:216) [bundleFile:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:202) [bundleFile:?]

	at org.openhab.core.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:80) [bundleFile:?]

	at org.openhab.core.model.script.runtime.internal.engine.DSLScriptEngine.eval(DSLScriptEngine.java:118) [bundleFile:?]

	at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.lambda$0(ScriptActionHandler.java:62) [bundleFile:?]

	at java.util.Optional.ifPresent(Optional.java:183) [?:?]

	at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.execute(ScriptActionHandler.java:59) [bundleFile:?]

	at org.openhab.core.automation.internal.RuleEngineImpl.executeActions(RuleEngineImpl.java:1179) [bundleFile:?]

	at org.openhab.core.automation.internal.RuleEngineImpl.runNow(RuleEngineImpl.java:1031) [bundleFile:?]

	at org.openhab.core.automation.internal.RuleEngineImpl.runNow(RuleEngineImpl.java:1047) [bundleFile:?]

	at org.openhab.core.automation.rest.internal.RuleResource.runNow(RuleResource.java:305) [bundleFile:?]

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]

	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]

	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:1.0.9]

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

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

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

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

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

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

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

	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) [bundleFile:1.0.9]

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

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

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

	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) [bundleFile:1.0.9]

	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) [bundleFile:1.0.9]

	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) [bundleFile:1.0.9]

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

	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) [bundleFile:1.0.9]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]

	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.20.v20190813]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]

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

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]

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

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]

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

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

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

But if I use the integrated rule command inside the rule engine (say something), everything works fine.

Under Settings I have configured the settings for Voice incl. TTS.

I was able to reproduce the behavior but I have no idea why that happens.
File permissions possibly, but as I don’t know which file is tried to get downloaded or copied where I don’t know how to fix that from the openHABian side.
Do you know which files/directory is used ? Or at least any Karaf debug or other useful hint to find out what’s happening ?

Actually, Openhabian appears to have installed the offline addons package into the addon directory. Thanks though!

Then maybe remove it :laughing:

Nope sorry - maybe try log:set DEBUG org.openhab.addons and log:set DEBUG org.openhab.core.karafaddons, or try to bypass the REST interface and install features directly with something like feature:install openhab-binding-astro.

which one would that be ? Just noticed that after doing some up/downgrade testing, the usual /usr/share/openhab2[/addons] is gone.
Possibly removed on package uninstall and not added again on package install ?
Then OH3 trying to write to some non-existing directory could be an explanation of what’s happening.
@Benjy do you know when that directory should get created ?

/usr/share/openhab/addons

1 Like

No output. Went to debug org.* but nothing but lots of REST related stuff there that does not seem to help. The addons dir is back on my machine after I reinstalled the openhab package and it has the proper owner and rights. But the addon installation problem remains.

I’m having issues adding things from inbox. Is this a known issue?

Using FMI weather binding. When I try to add the thing, I get “Error during thing creation: Conflict” popup.

In the log I have:

20:55:15.789 [ERROR] [enhab.core.thing.binding.ThingFactory] - Thing factory (class org.openhab.binding.fmiweather.internal.HandlerFactory) returned null on create thing when it reports to support the thing type (fmiweather:forecast).
20:55:15.789 [WARN ] [ig.discovery.internal.PersistentInbox] - Cannot create thing. No binding found that supports creating a thing of type fmiweather:forecast.

Completely clean slate, with manual installation of addons & runtime

I had that problem a long time ago with just astro & zwave installed. The issue at that time was the zwave binding but it has since been fixed.

As a test try uninstalling other bindings.

Why manual installation? are you sure they are compatible with OH3?

Regarding manual installation: it was offered as one option so I assume it is supported or at least meant to be tested.

Ok could try having only that binding…

I would try only that binding. That is how I found the issue with zwave earlier.

1 Like

I tried again, manual install, and installing only fmiweather, still the same error.

openhab> bundle:list -s|grep org.openhab.*
128 │ Active │  80 │ 3.0.0.M2                │ org.openhab.core
...snipped org.openhab.core.* ...
193 │ Active │  80 │ 3.0.0.M2                │ org.openhab.ui
216 │ Active │  80 │ 3.0.0.M2                │ org.openhab.binding.fmiweather
217 │ Active │  80 │ 3.0.0.M2                │ org.openhab.persistence.rrd4j
218 │ Active │  80 │ 3.0.0.M2                │ org.openhab.ui.basic
219 │ Active │  80 │ 3.0.0.M2                │ org.openhab.ui.habpanel
220 │ Active │  80 │ 3.0.0.M2                │ org.openhab.ui.iconset.classic

Discovery works as it should but cannot add the things.

23:56:11.518 [INFO ] [ig.discovery.internal.PersistentInbox] - Added new thing 'fmiweather:observation:station_100996_Helsinki_Harmaja' to inbox.
23:56:11.518 [INFO ] [smarthome.event.InboxAddedEvent      ] - Discovery Result with UID 'fmiweather:observation:station_100997_Kirkkonummi_Makiluoto' has been added.
23:56:11.518 [INFO ] [ig.discovery.internal.PersistentInbox] - Added new thing 'fmiweather:observation:station_100997_Kirkkonummi_Makiluoto' to inbox.
23:56:32.782 [ERROR] [enhab.core.thing.binding.ThingFactory] - Thing factory (class org.openhab.binding.fmiweather.internal.HandlerFactory) returned null on create thing when it reports to support the thing type (fmiweather:forecast).
23:56:32.782 [WARN ] [ig.discovery.internal.PersistentInbox] - Cannot create thing. No binding found that supports creating a thing of type fmiweather:forecast.

EDIT:

This does not look right:

“No thing types can be added with this binding”

To me this is conflicting with

Thing factory (class org.openhab.binding.fmiweather.internal.HandlerFactory) returned null on create thing when it reports to support the thing type (fmiweather:forecast).

Either it reports the thing it can create or it does not :slight_smile:

Has this been reported as a bug already? Do others have similar issues with other bindings?

Adding a scanned bluetooth thing seems to fail (using bluez)… I wonder if this reported? Could not find anything from this thread or github.

Also it seems that it does not discover my bluetooth ruuvitags, I will investigate more on that.

00:07:50.079 [ERROR] [rnal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.bluetooth.BeaconBluetoothHandler@5f00ef69': Duplicate channels bluetooth:beacon:hci0:ce2727a76787:rssi
java.lang.IllegalArgumentException: Duplicate channels bluetooth:beacon:hci0:ce2727a76787:rssi
	at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:152) ~[?:?]
	at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:144) ~[?:?]
	at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:140) ~[?:?]
	at org.openhab.core.thing.binding.builder.ThingBuilder.withChannel(ThingBuilder.java:75) ~[?:?]
	at org.openhab.binding.bluetooth.BeaconBluetoothHandler.initialize(BeaconBluetoothHandler.java:107) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:152) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	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) [?:?]

@Kai Could you tell us a little bit about feature not implemented yet? I think everyone is keen to see the feature comming latest under the xmas tree.

2 Likes

I see no open issues for fmiweather. Please open one here.

This is a known issue that already has a PR with a fix.

Added now a bug for the buggy discovery https://github.com/openhab/openhab-addons/issues/8971

The issue seems to be present only in OH3, not 2.5.10 so I’m not sure where to look for issues.

EDIT: already resolved by core maintainers (!!!), some deep issue: https://github.com/openhab/openhab-addons/issues/8971

1 Like

I do not have any issue with textual install of zwave things and items. I have 100+ devices.

I tried out textual configuration, that seems to work in the sense that I get things added and they are ONLINE

09:03:13.174 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'test.things'
09:03:13.325 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - Thing 'fmiweather:observation:station_Helsinki_Kumpula' changed from UNINITIALIZED to INITIALIZING
09:03:13.328 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - Thing 'fmiweather:observation:station_Helsinki_Kumpula' changed from INITIALIZING to UNKNOWN
09:03:13.374 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'fmiweather:observation:station_Helsinki_Kumpula' has been updated.
09:03:13.375 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - Thing 'fmiweather:observation:station_Helsinki_Kumpula' changed from UNKNOWN to ONLINE
09:03:38.314 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'test.items'
09:03:40.058 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'test.items'
09:03:40.130 [INFO ] [thome.event.ItemChannelLinkAddedEvent] - Link 'HelsinkiTemperature-fmiweather:observation:station_Helsinki_Kumpula:current#temperature' has been added.

All values are NULL though…

1 Like

Pls be patient. This is nature of zwave. It will get value when device reports. It reports either based on certain period or triggers. E.G. In case of switch you will see the status after first switch or when it reach report period point. But you need item channels configured.