node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


zfunk NPM version Dependency Status

ZFunk is a middleware for integrating Z-Wave controllers, which are compatible with OpenZWave, into home automation management systems.


I started with Z-Wave by buying a RaZberry daughter board for my Raspberry Pi. After testing several management applications, i decided to develop a solution by myself, because i was quite disappointed with the available apps. I want to have a robust and layered software architecture, which works well with my devices. And no all-in-one application, which may work with many devices, but not with mine very well. So i decided to begin with a simple REST server connected to the the Z-Wave controller to offer the OpenZwave API for the web and be consumed by other applications.

For a real-worl example, please check homebridge-zfunk.

Getting started

  1. Install OpenZWave, see Installation
  2. Install zfunk with npm install zfunk --global


Run the terminal application, e.g.: zfunk -v -c /dev/ttyUSB20

  Usage: zfunk [options]
    -h, --help                       output usage information
    -V, --version                    output the version number
    -c, --com-port [port]            Set [port] for Z-Wave controller. Defaults to "/dev/ttyUSB0"
    -d, --db-path [path]             Set [path] for DB. Defaults to "~/.zfunk/db.json"
    -w, --web-port [port]            Set [port] for REST/WS service. Defaults to "3000"
    -s, --secret-or-key [secret]     Set [secret] for authenticating web requests. Defaults to "ZFunk"
    -u, --users [email1,email2,...]  Allow [emails...] to access API and print out tokens.
    -m, --mount-path [path]          Set [path] to mount files for an UI
    -v, --verbose                    Increase verbosity



MIT © Sebastian Krüger