ZWave Generic Error on New Install?

I am trying to work on a fresh (manual) install after I borked my old system, but I can’t get Z-wave setup properly. I have followed all the install instructions in the docs, but I can’t get rid of the below error. Any ideas or advice?

Log Details (ERROR)
Tue Mar 20 2018 20:56:10 GMT-0400 (EDT)

Error during setup of component zwave
Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.5/site-packages/openzwave/option.py”, line 75, in init
raise ZWaveException(u"Can’t write to device %s : %s" % (device, traceback.format_exception(*sys.exc_info())))
openzwave.object.ZWaveException: “Zwave Generic Exception : Can’t write to device /dev/ttyACM0 : [‘NoneType: None\n’]”

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py”, line 148, in _async_setup_component
component.setup, hass, processed_config)
File “/usr/lib/python3.5/asyncio/futures.py”, line 380, in iter
yield self # This tells Task to wait for completion.
File “/usr/lib/python3.5/asyncio/tasks.py”, line 304, in _wakeup
future.result()
File “/usr/lib/python3.5/asyncio/futures.py”, line 293, in result
raise self._exception
File “/usr/lib/python3.5/concurrent/futures/thread.py”, line 55, in run
result = self.fn(*self.args, **self.kwargs)
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/zwave/init.py”, line 275, in setup
config_path=config[DOMAIN].get(CONF_CONFIG_PATH))
File “/srv/homeassistant/lib/python3.5/site-packages/openzwave/option.py”, line 81, in init
raise ZWaveException(u"Error when retrieving device %s : %s" % (device, traceback.format_exception(*sys.exc_info())))
openzwave.object.ZWaveException: ‘Zwave Generic Exception : Error when retrieving device /dev/ttyACM0 : ['Traceback (most recent call last):\n', ' File “/srv/homeassistant/lib/python3.5/site-packages/openzwave/option.py”, line 75, in init\n raise ZWaveException(u"Can\'t write to device %s : %s" % (device, traceback.format_exception(*sys.exc_info())))\n', 'openzwave.object.ZWaveException: “Zwave Generic Exception : Can\'t write to device /dev/ttyACM0 : [\'NoneType: None\\\\n\']”\n']’

What Zwave hardware are you using? Looks like a USB controller?

Yeah, I am using the Aeotec Z Stick. I have a backup of the old system (0.46.1) but I wanted to update given the need for Python 3.6. The Stick works on the old install, but not the fresh version

I use the same controller on HA 0.59.2, but I am using virtual env and I am still on Python 3.4.2. What method did you use for the new install?

I went with the manual install. It was my understanding that when you add the Z-wave component it installs all the necessary dependencies. I also made sure to use the dialout command mentioned in the Docs to give to my ZStick since I am running homeassistant as the user

I am not 100% on this. Is this relevant?

LINUX (EXCEPT HASS.IO)
On Linux platforms (other than Hass.io) there is one dependency you will need to have installed ahead of time (included in systemd-devel on Fedora/RHEL systems):

$ sudo apt-get install libudev-dev
On Python 3.6 you may also have to install libpython3.6-dev, and possibly python3.6-dev.

Also. Did you do this?

RASPBERRY PI
On Raspberry Pi you will need to enable the serial interface in the raspi-config tool before you can add Z-Wave to Home Assistant.

Configuration

Example configuration.yaml entry

zwave:
usb_path: /dev/ttyACM0

I did already try the install libudeb-dev, but it came up as already installed. The other 3.6 libs came up with an error saying the package was unavailable. I did test my homeassistant user to see if it included dialout, and this is what it was showing

id homeassistant
uid=999(homeassistant) gid=996(homeassistant) groups=996(homeassistant),20(dialout)

So I think that should be good, right? Here is my config entry for zwave

zwave:
  usb_path: /dev/ttyACM0
  network_key: 0x02, 0x07, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07
  config_path: /srv/homeassistant/lib/python3.5/site-packages/python_openzwave/ozw_config

Once again, I am not 100%, but my zwave doesn’t have a config path anymore (commented out)

zwave:
  usb_path: /dev/ttyUSB0
  polling_interval: 30000
  new_entity_ids: false
  #config_path: /usr/local/lib/python3.4/dist-packages/libopenzwave-0.3.2-py3.4-linux-armv7l.egg/config
  #config_path: /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/config
  device_config: !include zwave_device_config.yaml

OK, I did try that, and I was getting the same error, but maybe I’ll try one of those different config paths. Strange that it’s saying that it can’t write to the stick though? Just so I can compare, what does you prompt say when you enter

$ ls -ltr /dev/tty*|tail -n 1

Is it possible that your Zwave device name is changing? I have mine udev mapped to /dev/ttyUSB0.

http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/

I don’t think so, but it’s worth a shot to rule that out

Get this fixed?

Not yet, I spun the old system up for the remainder of the night, I will try again today

Edit: I got it working now, that seems to have done the trick. I guess the USB path was changing. Thanks!

Hi there

I followed the install instructions in the docs, but I am getting the same error and have tried both USB path ttyACM0 & ttyAMA0.
I am running raspberry pi in a virtual environment with user homeassistant, and I have added it to the dialout.
What steps did you take for you to get the zwave usb stick working?
By the way, the zwave USB stick is *Zooz Z-Wave Plus S2 stick ZST10

Thanks,

Execute the following command: sudo ls /dev/tty* it will list the available serial devices.

I figure out what my problem was
According to the docs:

On the Raspberry Pi you will need to enable the serial interface in the raspi-config tool before you can add Z-Wave to Home Assistant.

but it forgot one very important step, which is, you will need to reboot the raspberry pi in order of the setting to take effect