openHAB 2.2 binding



  • ok, it works after updating to snapshot 2.3
    btw: 2.3 requeres esh-io-transport-mqtt
    Intallation in karaf console:
    feature:install esh-io-transport-mqtt


  • Hero Member

    @seeers yes, I've located a bug in the expert mode an fixed it recently!


  • Hardware Contributor

    @TimO I saw that you fixed some other bugs too in the repo. Will you create a new version 2.3 of the binding soon? Or will there be more changes first?
    As most of the changes (at least also) concern RGBW lighting I would really like to use it but I can't seem to build the binding locally (I postet the error in the git pr).



  • @jocke4u, I really want my power node to work so I was going to try to make my own rule based on the "expert" strategy and the 999 node/child.

    But first I tried an even simpler approach, I added a var1-item from the power thing and now I have communication between node and gateway. Please give it a try yourself and see if it works for you.

    More specifically I defined the following item:
    Number PulseVar "Var1 [%d]" { channel="mysensors:power:gateway:pulseThing:var1" }

    Be sure to also persist the item. I store it in a mapdb dataset:
    PulseVar : strategy = everyChange, restoreOnStartup

    FYI, my thing is defined as follows:
    power pulseThing [ nodeId=50, childId=1 ]

    Please give it a try and come back with the outcome.

    EDIT: this feels like a too simple fix, I suspect that @TimO has made some changes in the 2.3 snapshot...



  • Hi there!

    Maybe someone would like to help me a bit?

    I'm on openHAB 2.2 with mysensors binding 2.3.0.201801160936. I'm using a serial gateway that I reflashed today using MySensors 2.2.0 library. I have turned off debugging in the sketch.

    The problem is that I encounter an exception each time OH starts up.

    2018-02-11 11:05:59.342 [WARN ] [rsAbstractConnection$MySensorsReader] - Exception on reading from connection
    java.io.IOException: Underlying input stream returned zero bytes
            at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:288) [?:?]
            at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) [?:?]
            at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) [?:?]
            at java.io.InputStreamReader.read(InputStreamReader.java:184) [?:?]
            at java.io.BufferedReader.fill(BufferedReader.java:161) [?:?]
            at java.io.BufferedReader.readLine(BufferedReader.java:324) [?:?]
            at java.io.BufferedReader.readLine(BufferedReader.java:389) [?:?]
            at org.openhab.binding.mysensors.internal.protocol.MySensorsAbstractConnection$MySensorsReader.run(MySensorsAbstractConnection.java:328) [255:org.openhab.binding.mysensors:2.3.0.201801160936]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
            at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
            at java.lang.Thread.run(Thread.java:748) [?:?]
    

    Thing config:

    Bridge mysensors:bridge-ser:gateway [ serialPort="/dev/ttyUSBmys", baudRate=115200, sendDelay=200, startupCheckEnabled=false ]
    

    Everything seems to work otherwise. The problem is that the warning draws my attention every time and of course I need to check if it's something serious that I'd need to act upon. I'd rather see that I get no exceptions/warnings in case the "problem" can be ignored.

    My question to you guys is if there is anything that I can do about it? Thanks for your kind help.

    Cheers!


  • Hardware Contributor

    @TimO I finally got around to testing my pureWhite RGBW code and at least for me its working like it should be. I saw you already merged this so I guess others can use it too very soon.
    What is still not working is the acknowledgment feature. I have one node that only gets about 90% of the messages without error, so I tried activating it there and on some other nodes too for testing. Result: success rate is down to ~50% for each node and I get messages about some acknowledgment on the console when no message has even been sent (nothing about a message from mysensors on the console and no rx/tx leds on the gateway). When I tested this some months ago I also saw no message at the client so I am pretty sure none gets send.
    So I guess this issue is still unresolved 😉 I have no clue why on a first glance but if I can help just send me a message.



  • Hello, I try to start using OpenHab as a controller and
    need some help, regarding mysensors binding 2.3.0. I get the bindings installed, but in bundle:list it's just installed and i don't get it Active.

    All other instruction for installation are done.
    Did feature:install openhab-transport-serial and feature:install esh-io-transport-mqtt and and "nrjavaserial" is Active.

    But mysensor binding just installed. How can I get it ACTIVE?

    Thank you for your help.


  • Hardware Contributor

    Do you still have an older version of Mysensors installed? Thats the only time I had such behaviour



  • Hello,

    I've been using the binding for a while now!
    must say that i still have some problems with auto discovery, but manually adding the sensors work fine!

    I encountered a bug in 1 for the components.

    The GAS meter should contain a variable for V_VOLUME but in the logs i'm getting errors that the variable does not exist.

    i searched in the code and found out the the class for SGAS is not containing the V_VOLUME variable.
    file: MySensorsChildSGas.java
    github link: https://github.com/tobof/openhab2-addons/blob/MySensors_Binding/addons/binding/org.openhab.binding.mysensors/src/main/java/org/openhab/binding/mysensors/internal/sensors/child/MySensorsChildSGas.java

    as by: https://www.mysensors.org/download/serial_api_20#sensor-types SGAS should also include a V_VOLUME variable as wel as a V_FLOW

    For now i adjusted my sensor to use one of the custom var fields. but it would be nice to use the V_VOLUME variable for this.



  • I have a general question that I can't seem to find an answer to either here, in the openhab docs, or anywhere googling between the two.

    On a Raspberry Pi 3 running openhabian 1.4 (stretch 9.4)
    running openhab 2.2
    Mosquitto 1.4.10
    mysgw 2.2.0 (MQTT)

    And an arduino pro mini 3.3v test sensor node running the door/button sketch at version 2.2.0 also.

    The sensor node can communicate over rf24 just fine and the broker receives and sends messages to it without issue.

    My question is this: Does this openhab 2.2 mysensors binding replace or work in concert with the original openhab 2.2 PaperUI-installed MQTT binding? And same for the MySensors MQTT Gateway that's part of the Mysensors binding and mysgw?

    I ask because when I follow the installation instructions from the github wiki and start everything up, I get a persistence in use error in org.eclipse.smarthome.io.transport.mqtt.MqttService. And it appears that my original broker is running fine, which suggests I'm trying to run two brokers and they're uninterested in cooperating.

    The installation instructions I've seen (a couple places) say to use mqtt.cfg and org.eclipse.smarthome.mqtt.cfg with the same settings.

    Hoping the answer is a simple, "stop mysgw and just run the paperUI MQTT Gateway" or the like.

    Thanks!



  • @fixjunk replying to myself...

    seems like installing esh-io-transport-mqtt in karaf causes the broker problem.
    without it installed the logs show:

    2018-04-16 16:28:35.914 [ERROR] [org.openhab.binding.mysensors       ] - FrameworkEvent ERROR - org.openhab.binding.mysensors
    org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.mysensors [210]
      Unresolved requirement: Import-Package: org.eclipse.smarthome.io.transport.mqtt
    	at org.eclipse.osgi.container.Module.start(Module.java:444) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1620) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1600) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1571) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1514) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
    2018-04-16 16:28:36.870 [INFO ] [penhab.io.transport.mqtt.MqttService] - MQTT Service initialization completed.
    2018-04-16 16:28:36.885 [INFO ] [t.mqtt.internal.MqttBrokerConnection] - Starting MQTT broker connection 'habianbroker'
    

    But then after feature:install esh-io-transport-mqtt I get this:

    2018-04-16 16:30:13.506 [INFO ] [penhab.io.transport.mqtt.MqttService] - Stopping broker connection 'habianbroker'
    2018-04-16 16:30:14.135 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection 'habianbroker' to 'tcp://<MY.IP.GOES.HERE>:1883' with clientid mysensors and file store '/var/lib/openhab2/tmp/habianbroker'
    2018-04-16 16:30:14.208 [WARN ] [rthome.io.transport.mqtt.MqttService] - MqttBroker start failed: Persistence already in use
    org.eclipse.smarthome.io.transport.mqtt.MqttException: Persistence already in use
    	at org.eclipse.smarthome.io.transport.mqtt.MqttBrokerConnection.start(MqttBrokerConnection.java:572) [219:org.eclipse.smarthome.io.transport.mqtt:0.10.0.b1]
    	at org.eclipse.smarthome.io.transport.mqtt.MqttService.modified(MqttService.java:145) [219:org.eclipse.smarthome.io.transport.mqtt:0.10.0.b1]
    	at org.eclipse.smarthome.io.transport.mqtt.MqttService.activate(MqttService.java:157) [219:org.eclipse.smarthome.io.transport.mqtt:0.10.0.b1]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
    	at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:229) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:650) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:506) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:307) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:299) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:298) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:109) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) [42:org.apache.felix.scr:2.0.12]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
    	at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:496) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
    	at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:619) [?:?]
    	at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
    	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
    	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
    	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
    	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
    	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [?:?]
    	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:915) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [?:?]
    	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) [?:?]
    	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:464) [?:?]
    	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:887) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:874) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:132) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:941) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:741) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:430) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:657) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:341) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:390) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.Activator.access$200(Activator.java:54) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:265) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:254) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:227) [42:org.apache.felix.scr:2.0.12]
    	at org.apache.felix.utils.extender.AbstractExtender.addingBundle(AbstractExtender.java:187) [42:org.apache.felix.scr:2.0.12]
    	at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469) [?:?]
    	at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415) [?:?]
    	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
    	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
    	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [?:?]
    	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:903) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
    	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [?:?]
    	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [?:?]
    	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [?:?]
    	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:156) [?:?]
    	at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [?:?]
    	at org.eclipse.osgi.container.Module.start(Module.java:467) [?:?]
    	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer.start(ModuleContainer.java:736) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer.applyDelta(ModuleContainer.java:727) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:497) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:443) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer.refresh(ModuleContainer.java:987) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1368) [?:?]
    	at org.eclipse.osgi.container.ModuleContainer$ContainerWiring.dispatchEvent(ModuleContainer.java:1) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
    	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [?:?]
    Caused by: org.eclipse.paho.client.mqttv3.MqttPersistenceException: Persistence already in use
    	at org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence.open(MqttDefaultFilePersistence.java:112) ~[?:?]
    	at org.eclipse.paho.client.mqttv3.MqttAsyncClient.<init>(MqttAsyncClient.java:286) ~[?:?]
    	at org.eclipse.paho.client.mqttv3.MqttAsyncClient.<init>(MqttAsyncClient.java:167) ~[?:?]
    	at org.eclipse.smarthome.io.transport.mqtt.MqttBrokerConnection.start(MqttBrokerConnection.java:570) ~[?:?]
    	... 79 more
    2018-04-16 16:30:14.330 [INFO ] [penhab.io.transport.mqtt.MqttService] - MQTT Service initialization completed.
    2018-04-16 16:30:14.335 [INFO ] [t.mqtt.internal.MqttBrokerConnection] - Starting MQTT broker connection 'habianbroker'
    

    It looks like the openhab broker and the eclipse brokers are conflicting?


Log in to reply
 

313
Online

7.3k
Users

8.1k
Topics

87.5k
Posts

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.