Z-Wave Binding with multiple controllers

Tags: #<Tag:0x00007f1877c3ed30>

I tried to add a 2nd controller, so I could migrate from an old to a new controller, but I encountered a few issues:

  • the node xml database is shared and does not distinguish between homeid/controller.
  • when adding a new node, you should be able to indicate on which controller

So I quickly gave up on it. My initial impression was that the two controllers coexisted just fine, and could be made to work.

Thanks Jorg,
I’m glad it at least roughly works - it was written with multiple controllers in mind, but not I never worked through everything :wink:.

Ok - this is easy to sort out - we can change the filenames or add a subfolder or something.

In theory, each controller should register its own discovery handler, so this should be possible (I think).

Making this work isn’t high on the list of things to do, but as above, it was considered at least when I moved from the OH1 binding to OH2…

Cheers
Chris

A bit of a cheat would be to get a cheap old Vera and run it with the MiOS binding. Just a thought.

/Daniel

Almost related:
Would it be possible to include two controllers (on two OH-instances) in one network?
Could the two controllers then communicate together?

You can of course set up two servers running OH, each with their own Z-Wave network. They won’t be able to communicate though, and you would need to use another communication system to link them together (eg MQTT).

You just described my setup. I have my secure devices (locks) on the vera, everything else on OH. Works great! (Eventually once the security branch settles I’ll migrate the locks over to OH as well, but for now if it ain’t broke…)

Yes and no, respectively. In my OH network I have two controllers (a zs5 and a zs2, with zs5 being the master and SUC). While technically the zs5 pings the zs2 and sets up neighbors and routes for it, since the zs2 isn’t a switch or a sensor there’s really not much for them to say to each other. I suppose I could screw around with forcing a message from the zs2 to the zs5 with ozw or zensys, haven’t gotten around to it.

Hi, ist there any progress. I would be interested to have 2 controllers - allows a second one, e.g. to mix European & US components (req different controller).

I’m using two controllers with the current development version (https://community.openhab.org/t/z-wave-refactoring-and-testing-and-security/21653/332) of the zwave binding without any problems regarding the usage of two controllers. The xml files for the the nodes are now structured based on the homeid:

One of my controllers is attached directly via USB, the second is attached “remotely” via LAN.

Regards,

André

What about using the Z-Way binding? Would you then be able to use your main primary controller and then control the second controller with the Z-Way binding and a Zwave.me controller?

I haven’t used the Z-way binding but I think its possibly able to access and control a remote Zwave controller?

I think a Wink binding is getting closer as well…Perhaps stick one of those in your Shed?

How far away is the shed from the main home and controller? Would a zwave repeater help in boosting the signal to the Shed?

ok, but the experimental zwave binding is not compatible to the release runtime, isn’t it? This would require to reinstall all zwave things and items

The OH2 binding should support 2 controllers and I think people are doing this.

There’s one issue though - if the two controllers have the same nodes, then they will overwrite the XML files which will slow down a restart (this is really the only change in the development version that would impact multiple controller use).

Hi Chris,

I extend the second controller via usbip, which is installed on both servers. Now I want to configure a second controller on OH2, which can get the second usb-device. But, where can I configure it? In config-Files? On the first configuration?

Thx 4 Your Help

You should be able to add a second controller in exactly the same way as the first controller (ie either through the UI, or config files). So you need to add a new ‘serial controller’ thing, and from there you can add devices to this new controller.

The only word of caution is that the system currently saves all node xml files into a single folder, so if there is the same node in both controllers, this might cause some issues. This has been changed in the development version, but that’s not currently in the master release.

I can confirm that it works. I also have one locally connected USB-Stick and one remote USB-Stick via LAN-USB.

As I am using the dev version (201705281057) I can confirm that xml files are written separately with the Home-ID as prefix.
However I would like to propose that the logging should also be enhanced. So far only the node number can be found in the logs. It would be good to also have the Home-ID in the logs to distinguish nodes with the same number.

This is not very easy unfortunately as the information is not all in one place - I’ll have a think about what can be done to add some sort of tag though.

But how are you able then to connect the status updates to the correct items? I thought that the the thing id that you can set at the moment of controller inclusion should be available? This would also help (does not have to be the Home ID of the Z-Wave Network).

This is a completely different part of the binding. I’m not saying that all the information isn’t contained somewhere in the binding - clearly it is. However, the lower level processing of frames does not know anything about things - this is at a different level, and this is where the logging that you are talking about is done.

There is a clear separation in the binding between the protocol layers and the “OH/ESH” layers - it’s definitely not possible to get a reference to things within the frame processing.

Ok, thanks for the clarificaton. But I thought the Home Id of the controller is part of the Frame Data?

It is part of the data that is sent over the air, but it is not part of the data that is sent from the controller to the binding on the serial API so the binding doesn’t have access to this information.

Thank you again for the clarification, now I understand.
However, if you should have an idea how to provide some kind of tag in the logs I would highly appreciate it :wink: