jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
101
Thanks Alexander seeing this clause; unfortunately commenting it out did NOT fix it. The password being returned is NULL/Blank. I called and tried chatting with them also and they will NOT give the password to you either.
Any other ideas in getting the password from the unit? I did get everything else except the password.
sadly no. One thing i know, that Roomba accepts only one connection a time. May be you try to connect twice.
Kind regards,
Alexander
jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
103
I finally figured it out the issue I was having; the instructions in the dorita980 script says to press and hold the clean button for 2 seconds; this isn’t valid for model 899 running firmware v3.x.x.
How to get the blink wifi on the 800 series units is to press the buttons above and below the Clean buttons which are Home and Spot.
Press and hold Home and SPOT Clean simultaneously for 2 seconds. Roomba will generate a tone and flash a green Wi-Fi icon
Hope this helps someone else . . .
Best, Jay
1 Like
jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
104
Hi Alexander,
Now that I got the password for my 899 iRobot; I need to get MQTT setup correctly.
I’m new to MQTT and was wondering if could you share your mqtt.cfg and mqtt-eventbus.cfg with me?
there are no mqtt.cfg and mqtt-eventbus.cfg files in my installation: I’m using MQTT2 binding.
Attention: Thing - description i post above is case-sensitive and " are mandatory.
191 â Active â 80 â 2.5.0.201903012159 â org.openhab.binding.mqtt
197 â Active â 80 â 2.5.0.201903012159 â org.openhab.binding.mqtt.generic
252 â Active â 80 â 1.2.1.201809150405 â org.eclipse.paho.client.mqttv3
254 â Active â 80 â 0.11.0.oh250M1 â org.eclipse.smarthome.io.transport.mqtt
I had to get newer bindings and artifacts for org.eclipse.smarthome.io.transport.mqtt & org.eclipse.paho.client.mqttv3 from this location.
2019-03-07 17:29:30.375 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.0.143' with clientid 3164420C50229600 and file store '/volume1/@appstore/openHAB/userdata/mqtt/192.168.0.143'
I did notice that my Roomba lights are on now all the time vs. it being asleep which I’m assuming is because it’s being polled by OH and MQTT often.
I have yet tried to issue commands to it.
Best, Jay
jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
108
Hi Alexander,
Am I suppose to configure anything in PaperUI for MQTT in order to get publishMQTT command to work?
2019-03-08 09:53:12.357 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Roomba MainFloor_Roomba_Switch changed to OFF': 'publishMQTT' is not a member of 'null'; line 2215, column 3, length 62
2019-03-08 09:53:13.371 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Roomba MainFloor_Roomba_Home_Switch changed to ON': 'publishMQTT' is not a member of 'null'; line 2195, column 3, length 62
jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
110
Hi Alexander,
Posting your Things in Karaf was the clue to why mine is NOT working. My MQTT Topic Thing is NOT being created on the Thing definition area so I decided to create it manually after doing a deep dive how MQTT works using this video of @ David_Graeff.
Unfortunately, the MQTT Thing topic will NOT initialize for what ever reason so I’m going to have to get David_Graeff involved to see what is wrong.
bundle:list -s | grep mqtt
189 â Active â 80 â 1.2.1.201809150405 â org.eclipse.paho.client.mqttv3
190 â Active â 80 â 0.11.0.oh250M1 â org.eclipse.smarthome.io.mqttembeddedbroker
193 â Active â 80 â 2.5.0.201903012159 â org.openhab.binding.mqtt
200 â Active â 80 â 2.5.0.201903012159 â org.openhab.binding.mqtt.generic
204 â Active â 80 â 0.11.0.oh250M1 â org.eclipse.smarthome.io.transport.mqtt
2019-03-10 08:56:55.221 [ERROR] [org.openhab.binding.mqtt.generic ] - FrameworkEvent ERROR - org.openhab.binding.mqtt.generic
org.osgi.framework.ServiceException: Exception in org.apache.felix.scr.impl.manager.SingleComponentManager.getService()
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:222) [?:?]
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:508) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
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.trackInitial(AbstractTracked.java:183) [?:?]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) [?:?]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) [?:?]
at com.eclipsesource.jaxrs.publisher.internal.Activator.openAllServiceTracker(Activator.java:91) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
at com.eclipsesource.jaxrs.publisher.internal.Activator.start(Activator.java:55) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:779) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:772) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:729) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:933) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309) [?:?]
at org.eclipse.osgi.container.Module.doStart(Module.java:581) [?:?]
at org.eclipse.osgi.container.Module.start(Module.java:449) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [?:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [?:?]
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) [?:?]
Caused by: java.lang.NoClassDefFoundError: org/eclipse/smarthome/core/thing/type/ChannelGroupTypeProvider
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:276) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:655) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:578) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:976) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1003) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:859) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) ~[?:?]
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) ~[?:?]
... 30 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.smarthome.core.thing.type.ChannelGroupTypeProvider cannot be found by org.openhab.binding.mqtt.generic_2.5.0.201903012159
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:276) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:655) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:578) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:538) ~[?:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:525) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:446) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:976) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1003) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:859) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) ~[?:?]
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) ~[?:?]
... 30 more
This “ClassNotFoundException” sounds very fishy to me.
Which version of openHAB are you on? SNAPSHOT versions? If so, could you update to the very latest version first? If not SNAPSHOT, could you check that you are at least on 2.5.0M1?
jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
114
You are correct; my OH version 2.3 is too old for this core function.
so what is the OH / MQTT binding minimum version requirement to get it working?
I’m running OH 2.4 docker image. MQTT bindings I installed through Paper UI. Things, rules and transformations I’ve created by hand per Alexanders examples. mqtt:broker:roomba is up and running but mqtt:topic:roomba:state gives me a communication error. No further info in the log.
I’m owning a 691, was able to extract the password using koalazak’s tool.
Do I have to upgrade to latest OH 2.5.0-snapshot docker image?
I did the upgrade too and now the communication error is gone - great!
All items are online and RoombaWifistatJSON gets updated every 5sec.
Yet no update on RoombaShadowJSON, even after letting it run for a few hours.
Any idea what to check or how to debug?
Thanks!
jwiseman
(Mr. Wiseman (OH 4.3.0 Snapshot on Pi4))
119
Hi Alexander,
Would you be able to post more of your rules for specific actions/triggers that occur with the Roomba? I’m using your example of the DOCK and it works great! I’ve also created a START & STOP rule but that is the farthest I gotten.