Home Assistant Community Add-on: Z-Wave to MQTT

This add-on is provided by the Home Assistant Community Add-ons project.

GitHub Release GitLab CI Project Stage Project Maintenance

Supports armhf Architecture Supports armv7 Architecture Supports aarch64 Architecture Supports amd64 Architecture Supports i386 Architecture

Fully configurable Z-Wave to MQTT gateway and control panel.


The Z-Wave to MQTT add-on allows you to decouple your Z-Wave network from your Home Assistant instance by leveraging your MQTT broker. It ships with a web-based control panel, allowing you to configure every aspect of your Z-Wave network and how they are published in MQTT.

Some advantages and use-cases for this are:

  • Your Z-Wave network will keep running between Home Assistant restarts.
  • You can directly use things like Node-RED with your Z-Wave network, while it is available for Home Assistant at the same time.
  • Allow [ESPHome.io][esphome] based ESP devices to directly respond or work with your Z-Wave network.


The installation of this add-on is pretty straightforward and not different in comparison to installing any other add-on.

  1. Search for the “Z-Wave to MQTT” add-on in the add-on store and install it.
  2. Install the “Z-Wave to MQTT” add-on.
  3. Start the “Z-Wave to MQTT” add-on.
  4. Check the logs of the “Z-Wave to MQTT” add-on to see if everything went well.
  5. Click the “OPEN WEB UI” button.
  6. Enjoy the add-on!

:books: Please read the documentation for more information about the use and configuration of this add-on.


You can always try to get support from the community here at the Home Assistant community forums, join the conversation!

Questions? You have several options to get them answered:

You could also open an issue on GitHub, in case you ran into a bug, or maybe you have an idea on improving the addon:

:information_source: At this moment our Home Assistant Community Add-ons Discord chat server and GitHub are our only official support channels. All others rely on community effort.

Repository on GitHub

Looking for more add-ons?

The primary goal of our add-ons project is to provide you (as a Home Assistant user) with additional, high quality, add-ons that allow you to take your automated home to the next level.

Check out some of our other add-ons in our Home Assistant Community Add-ons project.


About the author of this add-on

Hi there!

I am Franck Nijhof, and I have 30 years of programming experience, in many languages. I am using this experience to work on the Home Assistant project by giving back my knowledge and time to the open source community.

The add-on you are currently looking at right now was developed/packaged by me. It is not the only add-on I have created; there are many many more :wink:

However, I have a problem… I am an addict. A :coffee: addict that is. Lucky for you, I turn that C8H10N4O2 (caffeine molecule) into code (and add-ons)!

If you want to show your appreciation, consider supporting me for buying a cup of high octane wakey juice via one of the platforms below! :heart:

Sponsor Frenck via GitHub Sponsors

Support Frenck on Patreon

Enjoy your add-on, while I enjoy the brain juice. :coffee:

Thanks for all the :two_hearts:


Join our Discord server Follow me on Twitter Flollow me on Instragram Follow me on GitHub Follow me on YouTube Follow me on Twitch patreon-icon

P.S.: In case you want to ask me a question: AMA (Ask Me Anything). Most of the time I am online at the Discord chat. (I go by @Frenck in there as well).

Looks to be a valuable add-on. Installed but can’t open web ui. I’m on hass.io v92.2.


[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-banner.sh: executing... 

 Hass.io Add-on: Z-Wave to MQTT
 Fully configurable Z-Wave to MQTT gateway and control panel
 Add-on version: 0.1.0
 You are running the latest version of this add-on.
 System: Debian GNU/Linux 9 (stretch)  (amd64 / qemux86-64)
 Home Assistant version: 0.92.2
 Supervisor version: 162
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing... 
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] nginx.sh: executing... 
[cont-init.d] nginx.sh: exited 0.
[cont-init.d] zwave2mqtt.sh: executing... 
[cont-init.d] zwave2mqtt.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[18:20:16] INFO: Starting the Z-Wave to MQTT...
2019-05-09T22:20:16.700Z z2m:Store settings.json not found
2019-05-09T22:20:16.706Z z2m:Store scenes.json not found
2019-05-09T22:20:17.186Z z2m:App Application path:/opt
2019-05-09T22:20:17.193Z z2m:Gateway Gateway needs both MQTT and Zwave Configuration to work
2019-05-09T22:20:17.275Z z2m:App Listening on port 44920
[18:20:17] INFO: Starting NGinx...
nginx: [alert] detected a LuaJIT version which is not OpenResty's; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty's LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html)

That log looks perfectly fine though… :confused:

For more data points, I’m running Hass.IO on a NUC (Ubuntu 18.04.1 LTS) and the WebUI loads fine.

Thanks for another great addon!

You made my day!
This will improve the WAF drastically. No more waiting for all the battery devices to turn up hours after a restart.
Will surely try this out this evening and buy you some coffees!

“ssl”: true,
in Config, but when i open web ui i got

400 Bad Request
The plain HTTP request was sent to HTTPS port

You need manually add https for working link

That might be a bug actually, will look into that.

1 Like

could you perhaps share your config settings for z-wave and mqtt?
I’m getting “your configuration contains errors” all the time.
Using the Mosquitto broker add-on to act as the mqtt bridge.

To be honest, I’m not using it. I only installed it to verify if the webUI was broken for everyone or not.

As for configuration, the link below is for the original project’s github page. They explain what the configuration options are, and what they should be set to. It will probably help you set it up.


Is it possible to migrate an existing network from an HA installation to this addon?


Sorry, real noob with mqtt, how should I see the devices appearing?
I got the gatway configured as
type: “configured manually”
payload type: “JSON”

Can we use together the official integration AND this addon at the same time?

I wish to use it but initially as a test

1 Like

What would you put in:

  • Poll interval : Interval in milliseconds between polls
  • Reconnect period : Milliseconds between two reconnection tries
  • Network key (Optional): Zwave network key if security is enabled

I do not know where to look fort this network key

My config is simply

  usb_path: /dev/ttyACM0

Below my errors

2019-05-11 11:36:35.907 Warning, WARNING: Tried to write driver config with no home ID set
2019-05-11T09:36:37.909Z z2m:Zwave Connecting to /dev/ttyACM0
2019-05-11 11:36:37.911 Always, OpenZwave Version 1.4.164 Starting Up
2019-05-11 11:36:37.911 Warning, Failed - Network Key Not Set
POST /api/settings 200 1.781 ms - 63
2019-05-11 11:36:37.913 Warning, WARNING: Out of frame flow! (0x10). Sending NAK.
2019-05-11T09:36:37.914Z z2m:Mqtt MQTT client closed
2019-05-11 11:36:37.914 Warning, WARNING: Out of frame flow! (0x39). Sending NAK.
2019-05-11T09:36:37.915Z z2m:Mqtt MQTT client connected
2019-05-11 11:36:38.415 Warning, contrlr, WARNING: Checksum incorrect - sending NAK
2019-05-11 11:36:38.466 Warning, WARNING: 50ms passed without finding the length byte…aborting frame read
[11/May/2019:11:36:40 +0200] 200 -( GET /socket.io/?EIO=3&transport=polling&t=MgcG5Zl HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0.3135.132)
2019-05-11T09:36:40.201Z z2m:App New connection 9XJyEFv8_IN-IFbKAAAC
[11/May/2019:11:36:40 +0200] 200 -( GET /socket.io/?EIO=3&transport=polling&t=MgcG5gl&sid=9XJyEFv8_IN-IFbKAAAC HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0.3135.132)
[11/May/2019:11:36:40 +0200] 200 -( GET /socket.io/?EIO=3&transport=polling&t=MgcG5gy&sid=9XJyEFv8_IN-IFbKAAAC HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0.3135.132)
2019-05-11 11:36:41.033 Warning, WARNING: Out of frame flow! (0x14). Sending NAK.
2019-05-11 11:36:41.037 Warning, contrlr, WARNING: Checksum incorrect - sending NAK

im looking for this same information - can’t seem to find it…

Figured this out. Frenck helped me out on discord - the network key is in your /config/.storage directory. Just grep for it in there. Once you have that, enter it as it’s shown in the config file, but with NO spaces.

1 Like

My network key is null, still mistery this addon

and I can’t see this directory when ssh

Are you running hassbian by chance? Or venv? or? FYI, it’s a hidden directory (because of the dot), so you’ll need to do an ls -al to see it once you’re in your config directory.

Your key can be empty. Mine is as well. No problem.