Problem getting Z-wave working from Openhab

Facts:

  • I’m moving from Openhab
  • I had to use their experimental zwave binding with security to get my yale lock working.
  • All of my zwave devices are currently connected to a Z-Stick Gen 5 (from when I was using openhab)
  • I have the zwave security key from open hab it is in "XX YY ZZ… " format
  • my config :
    zwave:
    usb_path: /dev/ttyACM0
    *I tried adding to above and I get the same message with or without it
    network_key: (changed to above, just added 0x before each and a “,” after so it is "0xXX, 0xYY, 0xZZ… " format

Problem
from what I can tell I can not connect to the zwave stick the config test says:

homeassistant:
- extra keys not allowed @ data[‘zwave’]
- auth_providers: [source /home/homeassistant/.homeassistant/configuration.yaml:2]

Is this error because I need to “Factory reset the stick” and relearn all of my devices or is it because I don’t have the the USB recognized correctly (or something else)?

Thanks!
-S

In Home assistant you dont use the stick to pair with the devices, you do it from the zwave configuration panel.

To be safe you should unpair all your devices from the stick, then factory resetting it would be a good idea just to be sure. Then pair all your devices through the HA zwave configuration panel. For your lock you have the option of using secure pairing in HA, just make sure you set up a network key first. EDIT, after reading your post properly I see you have set up the key already.

Also It would help if you edit your post to correctly format your zwave config code as per the blue banner at the top of the page.

I don’t think it matters if you add devices using the stick itself or thru the HA z wave control panel.

I’ve done it both ways in the past and it has worked.

but before you factory reset anything, post your config in the correct format first to see if that might be where the issue is.

Are you sure the z stick is located at “/dev/ttyACM0”?

Did you read the documentation?

Your config should look like:

zwave:
  usb_path: /dev/ttyACM0
  device_config: !include zwave_device_config.yaml
  network_key: "0x01, 0x02, ... "

The docs will help you confirm the USB path, and the rest of your setup :wink:

Thanks for the information and feedback.

I did confirm that the path is /dev/ttyACM0. I get the same results whether I use device_config or not.

Do you think the existing configuration is causing the communication issue/error? My theory was that I shouldn’t have to F/R my my usb stick. I’m kinda testing both right now, so I’d prefer not to as it is working (mostly) with openhab still.

it sure would help us to help you if you posted your properly formatted configuration code for zwave: from configuration.yaml.

and while you’re at it post the entry from the homeassistant.log in your config directory.

Right now we are just guessing at what the problem might be…

Shall Do!

from my config:

zwave:
usb_path: /dev/ttyACM0
device_config: !include zwave_device_config.yaml

Error from the log:

2018-09-09 21:32:42 ERROR (MainThread) [homeassistant.config] Invalid config for [homeassistant]: [zwave] is an invalid option for [homeassistant]. Check: homeassistant->zwave. (See /home/homeassistant/.homeassistant/configuration.yaml, line 1).

Thanks again for your help.

You need to indent the next two lines after your “zwave:” line.

And, do you actually have a “zwave_device_config.yaml” file?

Should look similar to this:

zwave:
  config_path: /srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config
  usb_path: /dev/ttyACM0
  network_key: "0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, ............................."

the config path is necessary if your install put the config files & options.xml file in a non standard location but it doesn’t hurt to specify the path either way. You also need to put your network key in your options.xml file too.

Hello finity,

Not sure if it matters, but it looks like I am using python 3.5. I did the hassbian install.

also /srv/homeassistant/lib/python3.5/site-packages/python_openzwave does not exist. I was under the assumption that openzwave would be installed when I enabled the component.

Thanks again

It doesn’t matter which python version (as long as it’s over 3.4.something). it is likely listed in the same path as above but change the …/python3.6/… to …/python3.5/…

If not then just do a search for the ozw_config directory. you should see a bunch of subdirectories there that have manufacturer names and also an options.xml file. The files might be getting installed somewhere else now. That was the path that was default for the HA virtual environment when I installed my zwave in hassbian a year ago (I’ve moved on to using a NUC and installing in docker).

And yes, those files should be installed as soon as you successfully include zwave in your config. If they never got installed anywhere at all then there may be some other issue going on.

It must be something else then, I ran
find / -name ozw_config
and didn’t get any hits

Did you ever fix your formatting issue from a few posts above?

just to clarify your configuration.yaml should look something like this with zwave included:

homeassistant:
  # Name of the location where Home Assistant is running
  name: RPi
  # Location required to calculate the time the sun rises and sets
  latitude: 41.00000000
  longitude: -85.000000
  # Impacts weather/sunrise data (altitude above sea level in meters)
  elevation: 866
  # metric for Metric, imperial for Imperial
  unit_system: imperial
  # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  time_zone: America/Indiana/Indianapolis
  customize: !include_dir_merge_named customizations/
  customize_glob:
    ## see https://github.com/andrey-git/home-assistant-custom-ui for full instructions
    "*.*":
      custom_ui_state_card: state-card-custom-ui
    automation.*:
      emulated_hue_hidden: true
      haaska_hidden: true
    group.*:
      emulated_hue_hidden: true
      haaska_hidden: true
    switch.*:
      assumed_state: false

zwave:
  config_path: /srv/homeassistant/lib/python3.6/site-packages/python_openzwave/ozw_config
  usb_path: /dev/ttyACM0
  network_key: "0xDE, 0xBF,............................... "
  device_config:
    light.zw_light_1_level: 
      polling_intensity: 1
      refresh_value: true
      delay: 3
    light.zw_light_2_level:
      polling_intensity: 1
      refresh_value: true
     delay: 3
  polling_interval: 10000
	  
frontend:

config:

http:
  api_password: !secret http_password
  server_port: 8123
  ip_ban_enabled: True
  login_attempts_threshold: 5

note the indentation levels between the various sections.

Pretty sure @Sulsa’s issue is that he has his config like this:

homeassistant:
  name: RPi
  ... etc ...
  zwave:

instead of

homeassistant:
  name: RPi
  ... etc ...
zwave:

That’s what this error is saying:

I think you’re right. That’s why I posted the example above showing the correct indentation levels.

Victory!

Sorry for the delay- All of my existing devices are now recognized by Home Assistant. However not all are functioning correctly (or at all). Some of the devices have names from openhab still. I’ll probably end up resetting the zwave stick and re-learning all of the devices again. Hopefully that will get things going 100%.

Thank you all for your help!