Razpberry problems with routing to different z-wave products

Probably not the right place to post this, but didn’t know where else to post (yes this is a hint, if you know a better place then please tell)

I’m running OpenHAB2 on a PI3 with Razpberry daughterboard and my z-wave network is not stable. I think this is because of the routing which in HABAdmin shows a bit weird and I am not able to change the routing. The following pictures show what I get in the Z-Wave network viewer

In this view:
1 - controller
3 - Lamp
5 - Door sensor
6 - PowerPlug
7 - PowerPlug

How to make 7 also have a connection to 1 or via 5 or 6 to 1, is there any way to force routing? (6 and 7 are my latest additions, an initially 6 was only routed to 1, only after a month it is also routed to 5 and 3)

I don’t know the answer to your question (I don’t think that you can)

just some notes:

The HABmin network viewer shows much more accurate info if you use the new refactored Z-Wave binding (and not the “standard” one).

I’m currently using the binding Z-Wave Binding binding-zwave - 2.3.0, what other refactored Z-Wave binding are you referring to?

Ok, I downloaded it and put it in the addons directory. Uninstalled the Z-wave binding I had, restarted openHAB2 but now I am without a binding… What do I have to do to enable this addon?

org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.zwave [214]
Unresolved requirement: Import-Package: gnu.io

I see I am missing that serial thing, but how to get it and install it, is see something about feature:install but not sure where to do that. Do you do that in the karaf console?

Hmm got it:
openhab-cli console
feature:install openhab-transport-serial

Now the Z-Wave binding is back, I do see my Z-wave devices which are all blueish except the controller which is green on the Z-Wave network viewer. I’m also not able to change the state of the lamp or the powerplugs?? Doe I have to wait some time or is something else wrong?

Seeing the following in openhab2.log

2018-05-30 14:04:49.508 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:05:01.730 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:05:11.697 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.
2018-05-30 14:05:12.570 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:05:20.475 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:05:52.549 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:06:27.810 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:06:32.041 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:06:41.636 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.
2018-05-30 14:06:42.564 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.
2018-05-30 14:06:48.808 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:07:02.485 [ERROR] [age.AssignSucReturnRouteMessageClass] - NODE 5: AssignSucReturnRoute command failed.
2018-05-30 14:09:44.174 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:10:08.287 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.
2018-05-30 14:10:17.226 [WARN ] [age.RequestNetworkUpdateMessageClass] - RequestNetworkUpdate not placed on stack.
2018-05-30 14:10:46.671 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:10:48.185 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:10:49.786 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.
2018-05-30 14:10:50.803 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:10:51.734 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:11:04.783 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:11:12.813 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:11:19.991 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.

No you cannot enforce routing.
Essentially, the software layer in the chips of each device handle this more or less autonomously and you have no influence on the order and metric of routes. But you should’t need this as the network chips take care themselves.
The only problem you might run into is when (used) routes are ‘destroyed’ because you move ‘neighboured’ devices out of range from each other (or do whatever has a similarly negative impact on radio connectivity).

What you do can do in this case is to enforce a node to update its list of (active) neighbours by selecting ‘heal node’ from e.g. habmin.

On binding startup, a network-wide heal is performed for all nodes.
The’re also a config option to a network wide heal to perform once a day, but it’s disabled in current binding (but available in the development version and likely in 2.4 when this dev binding is to replace the current one).

What to do to uninstall the SNAPSHOT version, what I did was:

  • Stop openHAB
  • Remove addon
  • Start openHAB
  • Using PaperUI reinstall Z-Wave Binding

But now still I cannot control my z-wave devices…

2018-05-30 14:17:49.834 [ERROR] [core.karaf.internal.FeatureInstaller] - Failed installing ‘openhab-binding-zwave’: Error restarting bundles:
Could not resolve module: org.openhab.binding.zwave [221]
Another singleton bundle selected: osgi.identity; type=“osgi.bundle”; version:Version=“2.3.0.201805192224”; osgi.identity=“org.openhab.binding.zwave”; singleton:=“true”

2018-05-30 14:24:49.086 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model ‘weather.things’
2018-05-30 14:25:45.484 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:25:54.517 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$UnmodifiableCollection, genericType=class java.util.Collections$UnmodifiableCollection.
2018-05-30 14:25:59.984 [ERROR] [e.internal.WriterInterceptorExecutor] - MessageBodyWriter not found for media type=text/plain, type=class java.util.Collections$EmptySet, genericType=class java.util.Collections$EmptySet.

Got it working again… via console removed the bundle again and then reinstalled via PaperUI and now back to state as before!

Ah ok, well maybe then my node 7 is to far away from node 6 which is at two times the distance to the controller away.

To enable ZWave binding debugging in Console will probably help you understand things a little better:
log:set debug org.openhab.binding.zwave

After unpdating to the development version, you will need to delete and rediscover your zwave Things (this does not mean exclude/reinclude). Also, only the dev version can do a heal.

Hi Scott,

Deleting from Habmin, will this also delete the files found in /var/lib/openhab2/zwave?

I noticed new files have been placed there with a slightly different naming scheme (now noticing that node3 is missing in list of new files)

-rw-r–r-- 1 openhab openhab 12339 May 30 14:34 node7.xml
-rw-r–r-- 1 openhab openhab 10734 May 30 14:34 node6.xml
-rw-r–r-- 1 openhab openhab 6680 May 30 16:08 node5.xml
-rw-r–r-- 1 openhab openhab 3646 May 30 13:14 node3.xml
-rw-r–r-- 1 openhab openhab 1315 May 30 14:34 node1.xml
-rw-r–r-- 1 openhab openhab 13631 May 30 14:16 network_c5df328e__node_7.xml
-rw-r–r-- 1 openhab openhab 13683 May 30 14:16 network_c5df328e__node_6.xml
-rw-r–r-- 1 openhab openhab 7807 May 30 14:07 network_c5df328e__node_5.xml
-rw-r–r-- 1 openhab openhab 1809 May 30 14:16 network_c5df328e__node_1.xml

no, the xml files remain when you delete the nodes

the node#.xml format is from the “standard” binding
the network_xyz_node_#.xml format is from the “refactored” binding