Z Wave Binding - Things "INITIALIZING" after restart

Great stuff - thanks @kai.

1 Like

Don’t thank me too early

It’s ok, we can always thank you again later! :slight_smile:

Next try: https://github.com/eclipse/smarthome/pull/1860
Successfully restarted my runtime more than 10 times with it. Logs look good…

Ok, so now please test everyone - build 407 of the distribution contains all my latest fixes and seems to work fine for me. I hope the same is the case for you! Looking forward to your feedback :slight_smile:

1 Like

What do I have to download and where to be able to test it?

You need to grab the latest runtime from cloudbees (ie a standard update to the latest nightly OH2 build).

First tests are all positive, thing initialization was successful after multiple restarts.

Seem to be, that I’m to stupid, I load the new Snapshot, just overwrite my runtime folder with the one of the new Snapshot, and all my things still “INITIALIZING” ;(

I even restart my PC

You might need to delete the mapdb database. Maybe just rename the folder to see if it solves the issue - if not, you can always put it back.

I followed this guide to update OH2:

Make sure to put your addons into addons.cfg so they are installed at startup. It is all described in the linked thread.

Hi,

Thank you for looking into the issue. The intermittent issue where the controller stays locked in the initializing state is gone (it always comes up online eventually). However, the issue where my node is still in initializing remains.
Specifically, the issue only happens in static configuration (dynamic discovery works fine). I have tried different syntax in identifying the node e.g.
Things

Bridge zwave:serial_zstick:e241d5f9 [ port="COM5", controller_softreset="false", controller_master="true", heal_enable="true" ]
Thing zwave:device:e241d5f9:node4 (zwave:serial_zstick:e241d5f9) [ zwave_nodeid="4" ]

Items

Switch HT_Light        "node4"  (Plug)  { channel="zwave:device:e241d5f9:node4:switch_binary"}

Or
Things

Bridge zwave:serial_zstick:e241d5f9 [ port="COM5", controller_softreset="false", controller_master="true", heal_enable="true" ]
Thing zwave:device:controller:node4 (zwave:serial_zstick:controller) [ zwave_nodeid="4" ]

Items

Switch HT_Light        "node4"  (Plug)  { channel="zwave:device:controller:node4:switch_binary"}

, but no joy: the node comes “offline” in the first case and “initializing” in the second. In the first case, I am getting a read-only error
2016-07-14 18:36:39.966 [ERROR] [ding.zwave.handler.ZWaveThingHandler] - NodeID is not set in zwave:device:e241d5f9:node4
2016-07-14 18:36:39.967 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key zwave:serial_zstick:e241d5f9 in ManagedThingProvider, because it does not exists.
2016-07-14 18:36:39.967 [WARN ] [.core.thing.binding.BaseThingHandler] - Error while applying configuration changes: ‘IllegalStateException: Could not update thing zwave:serial_zstick:e241d5f9. Most likely because it is read-only.’ - reverting configuration changes on thing ‘zwave:serial_zstick:e241d5f9’.

This makes me think this is a different problem altogether and more than likely, I screwed up my things/items definition. Trouble is, I have no idea how. I anybody can see something by inspection, please let me know.

The binding is trying to update the device, but since you have defined the configuration manually, it can’t and it’s giving an error. There may also be something wrong with your configuration, but I can’t check that now.

Hi

I’m having the exact same problem, and didn’t know what was wrong until I saw this post.
It’s not clear to me how to use the Zwave Binding with a manual configuration.

I used the examples available online (https://github.com/openhab/openhab/wiki/Z-wave-Binding-Examples) and other sites. It doesn’t work. I get the same errors.

How can I manage my devices in a manual configuration?

Hi Chris,

A quick update: I did an experiment where I defined thing/item statically (still initializing of course) and then attempted a dynamic discovery: it discovered another node with the same number (e.g. node4). When enumerating things at the console, we then have two nodes, one online and one initializing.
When I then remove the static node in the things file, but keep it in items, I can now control it as it were a static device (e.g. control it through basic UI).

Essentially, it seems the binding gets confused and creates two thing instances to the same physical device, maybe because one is in initializing state.
There also might be some conflict between dynamic and static that causes the initializing state in the first place. Iin this case it is possible to disable dynamic discovery at least for that device to prevent the situation to arise?

If you manuall create things that are incorrect, then there is nothing to stop this. So if you are creating things manually, then you must ensure that the correct information is added.

But if I understand what is happening, the binding isn’t creating the things - you are? Right? You are manually creating the thing, and the binding is then also creating one through discovery. You can create as many things as you like with the same node id - there’s nothing to stop this.

If you manually create a device that is not the same as the devices that the binding is discovering, then you will end up with multiple things. I don’t think there’s anything the binding can do to prevent this other than to somehow completely disable discovery.