Some questions while I get the big picture.
Just loaded hassbian.
If I run ozwcp, I can control my zwave device.
When I start HASS and connect to :8123 I get this zwave error …
This is a configuration.yaml file issue, correct?
If I remove my :zwave, I don’t see the error.
Here is the snippet …
Does it matter where I put the :zwave section?
homeassistant:
# Name of the location where Home Assistant is running
name: Home
# Location required to calculate the time the sun rises and sets
latitude: 37.751
longitude: -97.822
# Impacts weather/sunrise data (altitude above sea level in meters)
elevation: 435
# metric for Metric, imperial for Imperial
unit_system: imperial
# Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time$
time_zone: UTC
zwave:
usb_path: /dev/zwave
# Show links to resources in log and frontend
```
Sorry, should have been more clear. Yes I have a udev rule and “/dev/zwave” is symlink to “/dev/ttyACM0”
I am pretty sure that all is correct because I can access the zwave via ozwcp.
Here is my udevadm query
pi@hassbian:/home/homeassistant/.homeassistant $ udevadm info -q path -n /dev/zwave
/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/tty/ttyACM0
I was pretty sure because I had to press ^C. But you did get me wondering, so I rebooted. Same thing.
Should have look there first, remember newbie. Also I was asking some YAML format questions.
I will need a little help in digesting the log. Of course, it starts with the zwave setup, but unless I am missing something, the setup in the YAML seems pretty simple at this point. So I thought it might be in the open zwave configurations, but I not sure how much HASS uses OZW configurations. And the other thing that confuses me is again the ozwcp works.
But here is the log
2017-05-25 11:42:00 ERROR (MainThread) [homeassistant.setup] Error during setup of component zwave
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/setup.py", line 188, in _async_setup_component
None, component.setup, hass, processed_config)
File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/zwave/__init__.py", line 247, in setup
config_path=config[DOMAIN].get(CONF_CONFIG_PATH))
File "/srv/homeassistant/lib/python3.4/site-packages/pyozwweb-0.4.0.34-py3.4.egg/openzwave/option.py", line 82, in __init__
libopenzwave.PyOptions.__init__(self, config_path=config_path, user_path=user_path, cmd_line=cmd_line)
File "src-lib/libopenzwave/libopenzwave.pyx", line 669, in libopenzwave.PyOptions.__init__ (openzwave-embed/open-zwave-master/python-openzwave/src-lib/libopenzwave/libopenzwave.cpp:10816)
libopenzwave.LibZWaveException: "LibOpenZwave Generic Exception : Can't autoconfigure path to config"
2017-05-25 11:42:09 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/asyncio/tasks.py", line 233, in _step
result = coro.throw(exc)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/discovery.py", line 119, in scan_devices
None, _discover, netdisco)
File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/discovery.py", line 145, in _discover
netdisco.scan()
File "/home/homeassistant/.homeassistant/deps/netdisco/discovery.py", line 57, in scan
self.ssdp.scan()
File "/home/homeassistant/.homeassistant/deps/netdisco/ssdp.py", line 38, in scan
self.update()
File "/home/homeassistant/.homeassistant/deps/netdisco/ssdp.py", line 86, in update
entry for entry in scan()
File "/home/homeassistant/.homeassistant/deps/netdisco/ssdp.py", line 270, in scan
return sorted(entries.values(), key=lambda entry: entry.location)
TypeError: unorderable types: NoneType() < str()
```
When I get this type of error, it’s usually a result of a messy shutdown of HA.
HA will use the zwcfg_XXX.xml file that OZW generates. (the XXX part depends on the ID of your Zwave modem.) My install uses the version in my .homeassistant folder (where my YAML is), but yours may vary. Some install methods symlink the copy from the OZW folder. I manually copy mine to be safe.
You got me in the right direction. I remember seeing a “config_path” under zwave but I did not know what it wanted so I left it blank. Seeing your post, I gave it a try and it fixed my issue.
So now I am curious, is the config_path just for the zwfg_XXX.xml file or will it be needed for something else in the future?
I bet your right, I got the path from your copy command.
Since copying the file worked for you, I bet HASS without “config_path” defaults to .homeassistant directory.
If assumptions are correct, either method will work for now, the question I have are:
Is the zwcfg_XXX.xml file dynamic? In other words, as new devices are added, you will have to sync them or by pointing HASS to use the same, any change will work for ozwave and HASS.
Are there other configs that HASS may need someday.
zwcfg is updated when you add devices. I use OZWCP when I add a device. I also use it to name the new devices to get more-descriptive names inside HA. Names get stored in the zwcfg, in addition to capabilities of the device.