I have purchased a Z-Station USB device so I can access a new Z-Wave Schlage Door lock in installed. Currently I am using latest OH installed on an UBUNTU 24.04 VMGuest on ProxMox. My current Home Automation is using Insteon. I have an Insteon USB PLM connected on /dev/ttyUSB0 mapped into the VM Guest as USB0. I have installed the OH Insteon Binding configured for /dev/ttyUSB0 and it detected all of my existing Insteon devices. Imported the ones I needed - including my Thermostat. Everything is working perfectly with my Insteon setup for months.
When I plug the Z-Station into my ProxMox VM host is appears as /dev/ttyUSB1 and /dev/ttyUSB2. I have mapped both of those USB ports as /dev/ttyUSB1 and /dev/ttyUSB2 in the OH VM Guest. I read that the Z-Wave binding SHOULD work with the Z-Station. I installed the Z-Wave Binding and tried configuring it for BOTH /dev/ttUSB1 and /dev/ttyUSB2 and the binding does not connect to the Z-Wave HW.
For one thing, the Z-Station provides both Zwave and Zigbee. Only one of those devices is the Zwave controller. The other one is Zigbee. Which is which? It should say something in the docs.
But you should definitely never have more than one serial device configured on a single Zwave Controller Thing. It should only ever have one device configured per Thing.
I can see that there are some kind of error messages in the Console.
When I have the OH Z-Wave Binding set for /dev/ttyUSB1 I see this message:
ttyUSB1: usb_serial_generic_write_bulk_callback - nonzero urb status
when the binding is set for dev/ttyUSB2 I see this message:
ttyUSB2: usb_serial_generic_write_bulk_callback - nonzero urb status
So it seems that the OH Z-Wave Binding is TRYING to communicate to the SOMETHING on the USB ports - but obviously it is not work…
Hey Rich,
Thanks for the quick response man !
So when you plug the SINGLE USB cable from the Z-Station into a single physical USB port on ANY PC (Windows/Linux/PI) it actually appears as 2 USB devices. One for the Z-Wave, and one for the Zigbee. I do not know which is which.
So if there are no other USB devices plugged in the appear as USB0 and USB1 respectively. In my case since USB0 is in use - they appear as USB1 and USB2.
I have tried BOTH of these USB devices (/dev/ttyUSB1 and /dev/ttyUSB2) SEPARATELY in the OH Z-Wave binding. Does not work and I get the messages I reported in the previous post.
Does the user running OH have permission to read/write to the devices?
I have no personal experience with these devices but all certified Zwave Controllers will work with the Zwave binding. So what ever is wrong is a combination of figuring out which device is the Zwave controller and making sure it has permissions. The whole Proxmox to VM to OH chain can introduce problems too.
Yes but beware that which device gets USB0 is non-deterministic. There are tutorials here on the forum and on the internet overall to create a link so the devices appear in the same place every time you boot. But by default, you cannot guarantee that the devices always get assigned the same ttyUSB number.
The whole USB Pass-through of Physical USB ports on the Proxmox Host to the various VM Guests has always been my most worry some part of this Home Automation stuff. But I did not have ANY issues passing in USB0 for my Insteon setup.
I don’t have experience with your setup or device but setting the zwave binding to debug while specifying the port might provide a clue. The other suggestion is to check /dev/serial/by-id for a longer name to sort out the zigbee/zwave. As noted by @rlkoshak the usb name can change. A least in docker it is recommended to use the /dev/serial/by-id like so;
devices:
# Do not use /dev/ttyUSBX serial devices, as those mappings can change over time. Instead, use the /dev/serial/by-id/X serial device for your Z-Wave stick.
- '/dev/serial/by-id/usb-Silicon_Labs_Zooz_ZST10_700_Z-Wave_Stick_88708347ca60ec11ac8a397625bfaa52-if00-port0:/dev/zwave'
Bob - thanks for all the suggestions. I will give them a try. You sound like you might have some experience with Z wave and openHAB ??? Are you using the Z wave binding? Can you suggest a good Z wave stick or module?
I’m not the developer (who knows a lot more) but have helped a few people on the forum . Developer has full time job with travel, so isn’t around as much as when he wrote the ZW and Zigbee bindings.
I have used the OH Z-wave binding and have contributed PRs, but have shifted over to a ZW to MQTT solution (with OH of course). It is part of the HA project and gets full time support, has access to the ZW Alliance and has more recent upgrades (like S2 security).
I have no reason to doubt your Z-station. (I’m just not familiar with it and your setup). The OH ZW debug support is good and there is a debug reader here that the developer wrote when he wasn’t as busy.
I use Zooz for Z-stick and many devices. Aeotec is also a solid choice, both have good support.
I have a Z-Station. I think Zwave is USB1 but I’m not using it at the moment and that’s from memory. Try USB1 and if that doesn’t work, try USB2. One of them should work and then you will know. You might have to reboot between tries.
Ira - thanks for the suggestions.
In the way I am setup using Proxmox Hypervisor - the First USB Port on the Z-Station is mapped into USB1 and the second USB Port on the Z-Station is mapped to USB2. I have tried BOTH of these ports in the Z-Wave binding - and in both cases I am getting these errors depending on which one I use.
ttyUSB1: usb_serial_generic_write_bulk_callback - nonzero urb status
or
ttyUSB2: usb_serial_generic_write_bulk_callback - nonzero urb status
It seems that the issue is most likely either a DEAD Z-Station or the way I am trying to use the USB ports in OH via the Proxmox mapping is not working properly.
To test if I have a DEAD Z-Station - I dug up an old Raspberry PI 3B I had laying around. I will set it up to test the Z-Station with the SW from Z-Station web site.
Will let you know how it goes.
Assuming the Z-Station works with the PI, I will re-purpose on old PC I have and install Ubuntu 24.04 Server natively (i.e. no Proxmox) and install OH and see if the issue is with how the USB Ports are passed in via Proxmox.
If that works then I will have to figure out what is wrong with my Proxmox setup.
Lastly - I just ordered a Aeotec Z-Stick Gen5+ Z-Wave USB Stick. That device seems to have a pretty good history of working - at least until they die… I also think some OH users have had success using the Aeotec Z-Stick Gen5+ through Proxmox…but I am not sure.
I like to have backup systems to backup systems … can’t help it … curse of being an engineer !
It could also simply be the port it’s plugged into. Have you tried plugging it into a different USB port?
I’m sure there is more information available from the OS. Perhaps lsusb -v can give you something relevant to help diagnose the problem. This is what the output looks like for my HUBZB combo zwave/zigbee dongle:
Bus 002 Device 002: ID 10c4:8a2a Silicon Labs HubZ Smart Home Controller
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 [unknown]
bDeviceSubClass 0 [unknown]
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x10c4 Silicon Labs
idProduct 0x8a2a HubZ Smart Home Controller
bcdDevice 1.00
iManufacturer 1 Silicon Labs
iProduct 2 HubZ Smart Home Controller
iSerial 5 312001DC
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0037
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 3 HubZ Z-Wave Com Port
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 4 HubZ ZigBee Com Port
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
This one is operational, and I too am passing this from Proxmox into a VM (Ubuntu 24.04 in this case). I’m willing to bet that last field (Device Status) isn’t 0.
Hey Rich - i am on a short business trip - and will run those commands once i am home. While i was packing- i did find my old PI 3B - so i brought it with me as well as the Z-Station. Had some time this evening so i borrowed a monitor, keyboard, and mouse and set to work with my first test - try to get Zwave running on the pi and verify the zstation works. When i first set it all up it appeared that the zstation might not be working. But after digging into the zway docs turned out the default usb port was not set correct. Docs said the zwave was USB0 so when i set it to /dev/ttyUSB0 the zway on the pi3b recognized the zstation. So it appears that the zstation is functional and if all else fails i can use the zway binding in OH.
But i am not giving up on direct zwave support in OH using the zwave binding.
So my next test is to repurpose an old pc and load Ubuntu 24.04 server right on the bare metal-no proxmox. Install same version of OH - THEN test the zwave binding with the zstation plugged into a real usb. This obviously will take some time and i don’t get home until Thursday night. Will try to set it up Friday.