ESXi - Ubuntu 18 - Docker - AeoTec Z-Stick

Hello,

I’m running VMWare ESX 6.0.
I’ve setup Ubuntu 18.04.1 64 bit Server.
I followed this guide to getting HASS up and running in docker.

It’s current status is up and running on 443 with a self-signed certificate.

I created /etc/udev/rules.d/99-usb-serial.rules
And added the following line to that file: (as it was recommend in a different article)

SUBSYSTEM==“tty”, ACTION==“add”, ATTRS{idVendor}==“0658”, ATTRS{idProduct}==“0200”, SYMLINK+=“zwave”

I’ve confirmed the symbolic link /dev/zwave is functioning correctly after disconnect and reconnecting the stick.

So here is where I’m struggling with:
I haven’t been able to get the zwave stick to mounted to the docker container.
Docker Container Name = homeassistant
Zwave Stick = /dev/zwave

I will then need to figure out how to get HA to recognize it as my controller, but I’ve added the lines to the config yaml in preparation for this.

zwave:
  usb_device: /dev/zwave

Background:
I’ve used ESXi and Ubuntu for quite some time.
I’m new to docker and new to HA.

I’m currently using Vera as a home automation system.
Vera doesn’t not have a good way of implementing SSL and it requires access to the cloud to utilize all of its features.
My goal with HA is to have a secure home automation environment.

I tried HA a little while back using the Vera component, but was unsuccessful at getting any automation function to work in HA, so now I’m trying a fresh approaching using a AeoTech ZW090 Gen 5 Stick.
HA had quite a bit errors that I ran into when ever I pushed updates to the server, so I decided to give docker a try as it sounds like that would resolve that issue and if I even wanted to move this environment to a Raspberry Pi or even a Windows Environment, then it makes that process a lot easier, from what I understand…

Are you running hassio or just home assistant in Docker? I am confused.

Your USB stick is passed through esxi to the VM?

I followed steps 3,4 and 5 of this article:

So, I believe it hass.io.
Though, I’m not quite familiar with the differences.
Yes, the USB Stick has been passed through from ESXi into the Ubuntu VM.
I confirmed this by checking for /dev/ttyACM0 using ls /dev/tty*

So, now I need to pass the USB Stick from the Ubuntu VM into the Docker container.

I open to alternative suggestions, I just know I had issues with the python virtual environment deployment when I updated the system.

As much as I enjoy learning from troubleshooting and problem solving, I don’t seem to have the time to devote to it anymore and I’m just looking to find a solid solution, that requires minimal up keep.

This is going to be hard if you don’t know what you’re running.
Did you run the installer script or are you using Docker compose files?

This is easy under straight docker, and hassio should handle it for you.

I think I’m running hass.io - Maybe this picture helps?

Yes, that does indeed indicate you are running hassio, since any other method would NOT have a hassio option.

See the ‘hardware’ button? hit it. You should see your ZWave stick there.

Interesting. So the /dev/zwave symbolic link didn’t come through under the “Hardware” button, but /dev/ttyACM0 did… When I run bash on the Docker Container and check the for it under /dev I see the ttyACM0, but not the zwave symbolic link as well… Maybe I don’t need the symbolic link?

So, it looks like hass.io can see the stick, so what do I need to do next?

yep.

Tell your config to look at /dev/ttyACM0

Thanks for your help flamingm0e.
I’ll pair some devices when I get home and see if it works.

Ok. So I added:

zwave:
usb_device: /dev/ttyACM0

To my config file… I had to move it around until the HA didn’t report an error on reboot…
** (I <3 yaml) – Yes there is a double space before usb_… ( not sure why I can’t get that to show up here… )
I was able to pair a device… confirmed with openhab (that i was testing on a separate VM)

It seems like HA might still not be seeing or initialize the AeoTech stick properly…
Is there a way to check if it has properly accepted and initialized the stick.
From what I was reading I should get a new panel on the main window that say something to the extent of Zwave Network/Devices…

Here is the HA log:

root@server:/# cat ./usr/share/hassio/homeassistant/home-assistant.log
2018-11-15 05:53:35 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Z-Wave (import from configuration.yaml) for zwave
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/openzwave/option.py”, line 78, in init
raise ZWaveException(u"Can’t find device %s : %s" % (device, traceback.format_exception(*sys.exc_info())))
openzwave.object.ZWaveException: “Zwave Generic Exception : Can’t find device /dev/zwave : [‘NoneType: None\n’]”
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/homeassistant/config_entries.py”, line 244, in async_setup
result = await component.async_setup_entry(hass, self)
File “/usr/local/lib/python3.6/site-packages/homeassistant/components/zwave/init.py”, line 283, in async_setup_entry
config_path=config.get(CONF_CONFIG_PATH))
File “/usr/local/lib/python3.6/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/zwave : ['Traceback (most recent call last):\n', ' File “/usr/local/lib/python3.6/site-packages/openzwave/option.py”, line 78, in init\n raise ZWaveException(u"Can\'t find device %s : %s" % (device, traceback.format_exception(*sys.exc_info())))\n', 'openzwave.object.ZWaveException: “Zwave Generic Exception : Can\'t find device /dev/zwave : [\'NoneType: None\\\\n\']”\n']’

Since I was semi-testing with openhab on another VM…
I was able to confirm the device did pair with the AeoTeck stick…
I shut down that VM before starting the Hass VM…
And double checked that hass.io docker is still seeing the /dev/ttyACM0

I’m not sure why it’s still trying to referring to the /dev/zwave that’s no longer in the config file.
Maybe that was from when I previously tried to use it?

Yes.

In the installation folder there is hidden directory .storage with some jsons in it… With this /dev/zwave entry in it.