Binding using MqttService [message #1769933] |
Sun, 06 August 2017 12:59 |
sebastian irimi Messages: 3 Registered: August 2017 |
Junior Member |
|
|
Hello all,
I am trying to use a binding that subscribes to some topics and publishes some messages for an mqtt enabled thing i built.
The binding is openhab2 and I am trying to use the eclipse.smarthome.io.transport.mqtt package for the MqttService. In the IDE runtime, I manage to config and run everything, however, when I port my binding to a downloaded openhab2.1.0 instance, I cannot get the MqttService reference satisfied. To get a reference to the service, I use the following:
<scr:component xmlns:scr="redacted(You can only use links to eclipse.org sites while you have fewer than 1 message.)" immediate="true" name="MqttHandlerService">
<implementation class="org.openhab.binding.captidom.handler.MqttHandlerService"/>
<service>
<provide interface="org.openhab.binding.captidom.handler.MqttHandlerService"/>
</service>
<reference bind="setMqttService" cardinality="1..1" interface="org.openhab.io.transport.mqtt.MqttService" name="MqttService" policy="dynamic" unbind="unsetMqttService"/>
<reference bind="setThingRegistry" cardinality="1..1" interface="org.eclipse.smarthome.core.thing.ThingRegistry" name="ThingRegistry" policy="static" unbind="unsetThingRegistry"/>
<reference bind="setDiscoveryService" cardinality="1..1" interface="org.openhab.binding.captidom.discovery.CaptidomDiscoveryService" name="CaptidomDiscoveryService" policy="dynamic" unbind="unsetDiscoveryService"/>
</scr:component>
What I see happens in openhab2.1.0 with my binding added, the config is being picked up by openhab.io.transport.mqtt and I don't get a reference to the esh.io.transport.mqtt service. I cannot manage to get a reference in my binding to the openhab.io.transport.mqtt because of a dependency on org.openhab.core.events and that is part of oh1 addon compat1.x, and I can't figure out how to satisfy this reference at compile time.
Anyoe has any thoughts on this, how I should correctly reference the MqttService and how it should pickup the config file - or why is it different in IDE runtime vs downloaded isntance runtime?
Thanks!
|
|
|
|
Re: Binding using MqttService [message #1770935 is a reply to message #1769941] |
Fri, 18 August 2017 22:28 |
sebastian irimi Messages: 3 Registered: August 2017 |
Junior Member |
|
|
Hello and thanks for your reply!
The snippet had openhab.io.transport.mqtt by mistake after many trial and error changes. I now reverted it back to esh.io.transport.mqtt and it is not clear to me how this should work (how does the mqtt.cfg get loaded? I noticed that for oh1 there is the mqtt binding that loads this file). I tried the following:
1. create OH2 binding, test in IDE, everything works fine
2. move said OH2 binding.jar to downloaded openhab 2.1.0 and place in addons folder
3. place org.esh.io.transport.mqtt in addons folder (oh complains in log that it misses this dependency for said binding if i don't do this)
4. Added mqtt.cfg under conf/services/
When I run this, the binding is loaded, but for the love of GOD, I can't have the mqtt service connect. Is there anything else I need to do?
Do I need anything else to use this MqttService?
I also noticed in the logs, not sure if relevant:
Quote:
2017-08-19 01:24:50.171 [ERROR] [.eclipse.smarthome.io.transport.mqtt] - FrameworkEvent ERROR - org.eclipse.smarthome.io.transport.mqtt
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.smarthome.io.transport.mqtt [180]
Another singleton bundle selected: osgi.identity; osgi.identity="org.eclipse.smarthome.io.transport.mqtt"; type="osgi.bundle"; version:Version="0.9.0.201708051248"; singleton:="true"
at org.eclipse.osgi.container.Module.start(Module.java:434)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
LE: I would like to add outputs of following commands (Captidom Binding is what i am trying to build):
Quote:
openhab> service:list org.eclipse.smarthome.io.transport.mqtt.MqttService
[org.eclipse.smarthome.io.transport.mqtt.MqttService, org.osgi.service.cm.ManagedService]
-----------------------------------------------------------------------------------------
service.pid = org.eclipse.smarthome.mqtt
component.name = MQTT Connection Service
component.id = 4
service.id = 142
service.bundleid = 176
service.scope = bundle
Provided by :
Eclipse SmartHome MQTT Transport Bundle (176)
Used by:
Captidom Binding (178)
openhab> bundle:list | grep 178
178 | Active | 80 | 2.2.0.201708182131 | Captidom Binding
openhab> bundle:list | grep -i MQTT
176 | Active | 80 | 1.0.2 | Paho MQTT Client
177 | Active | 80 | 0.9.0.201708041325 | Eclipse SmartHome MQTT Transport Bundle
openhab> feature:list | grep -i mqtt
esh-tp-paho | 0.9.0.SNAPSHOT | | Started | distro-2.2.0-SNAPSHOT | MQTT v3 Client
esh-io-transport-mqtt | 0.9.0.SNAPSHOT | x | Started | distro-2.2.0-SNAPSHOT |
openhab-transport-mqtt | 2.2.0.SNAPSHOT | | Uninstalled | distro-2.2.0-SNAPSHOT | MQTT Transport
openhab-action-mqtt | 1.11.0.SNAPSHOT | | Uninstalled | addons-2.2.0-SNAPSHOT | MQTT Action
openhab-binding-mqtt1 | 1.11.0.SNAPSHOT | | Uninstalled | addons-2.2.0-SNAPSHOT | MQTT Binding
openhab-binding-mqttitude1 | 1.11.0.SNAPSHOT | | Uninstalled | addons-2.2.0-SNAPSHOT | OwnTracks (formerly MQTTitude) Binding
openhab-persistence-mqtt | 1.11.0.SNAPSHOT | | Uninstalled | addons-2.2.0-SNAPSHOT | MQTT Persistence
openhab> config:list
[...]
Pid: org.openhab.mqtt
BundleLocation: null
Properties:
captidomBroker.clientId = "yii2.0_webapp"
captidomBroker.pwd = "yii"
captidomBroker.url = tcp://192.168.10.254:1883
captidomBroker.user = "yii"
service.pid = org.openhab.mqtt
[...]
I also fail to see in the log "Starting MQTT Service" message, which would indicate that the MqttService isn't activated
[Updated on: Sat, 19 August 2017 00:57] Report message to a moderator
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03682 seconds