OpenZWave platform for Homebridge. The main goal of this project is to map Z-Wave protocol command classes to HomeKit Accessories, Services, and Characteristics. Theoretically, it should make it support any Open Z-Wave device.
This project was initially forked from velocityzen/homebridge-platform-zwave and has been completely rewritten in TypeScript.
In addition to OpenZwave, be sure to install the ozw dev package:
For Ubuntu/Debian:
sudo apt install libopenzwave1.5-dev
For Alpine:
sudo apk --no-cache add openzwave-dev
npm i -g homebridge-openzwave
In order to use this plugin, you’ll need to add the following JSON object to your Homebridge config file:
{
"platform": "openzwave",
"name": "OpenZWave",
"zwave": {
"devicePath": "/dev/ttyACM0"
}
}
Config Key | Description | Required |
---|---|---|
platform |
Homebridge Platform name. This value should always be openzwave. |
Y |
name |
The name of this platform within Homebridge. This is mainly used for logs and can be any value you want. |
N |
zwave |
This contains the settings that will be passed to OpenZWave. | Y |
zwave.devicePath |
The device path to your gateway. See Finding Your Device for more information.] |
Y |
uuidPrefix |
Override the default prefix used when generating UUIDs for each node. NOTE: Most setups will not need to change this value. |
N |
accessories |
Customize how your Z-Wave accessories behave in HomeKit, or exclude them entirely. See the Accessories section for more information. |
N |
To locate your Z-Wave controller, try running ls /dev/tty.*
or ls /dev/cu.*
in terminal. Depending on your OS, you may also be able to run ls -lah /dev/serial/by-id
to find additional context for which device in your Z-Wave gateway.
If you’re unable to figure out the correct device, try unplugging it and running the commands above, after that, plug it back in and look for the additional device that wasn’t there before.
The accessories config object allows you to customize how your devices appear and behave within HomeKit.
{
"platform": "openzwave",
"name": "Z-Wave Platform",
"zwave": {
"devicePath": "/dev/ttyACM0"
},
"accessories": {
"3": {
"name": "My Fan Control",
"classes": {
"ignored": [128],
"rewrite": [{ "from": 38, "to": 999001, "indexes": { "5": 0 } }]
},
"hints": ["fan"]
}
}
}
Config Key | Description |
---|---|
name |
The default name this accessory should have in HomeKit. |
commands |
|
commands.ignored |
An array of Z-Wave command classes you’d prefer this plugin not represent in HomeKit. |
commands.rewrite |
An array of commands to rewrite to change their intended effect |
commands.rewrite[].from |
The Z-Wave command class to replace |
commands.rewrite[].to |
The Z-Wave command class to change to |
commands.rewrite[].indexes |
A key value list to map the index of the from command to the to command. |
hints |
An array of strings to better help the plugin understand what type of device this is. Currently supported values are: fan and presence . |
If you have Z-Wave nodes you’d wish to exclude from HomeKit, you can hide them by setting the accessory to false:
{
"platform": "openzwave",
"name": "Z-Wave Platform",
"zwave": {
"devicePath": "/dev/ttyACM0"
},
"accessories": {
"3": false
}
}
homebridge-openzwave
supports global/shared device handlers to override default Z-Wave behavior. This can be useful for devices that use generic commands for more specific purposes, such as a fan control that only implements SWITCH_MULTILEVEL.
For more information on device handlers, see the README.
All development tooling dynamically configures OpenZWave through a DEVICE_PATH
environment var that should be set to the location of your Z-Wave Gateway.
A .env
file is supported in the root of the project directory.
homebridge-openzwave
has some tooling to help making development easier:
yarn testharness
will launch Homebridge through Babel/TypeScript pointed towards src
yarn util ls
displays a list of devices currently in your Z-Wave networkyarn util inspect :nodeid
query a specific node to display debug information including node info and command classesYou can run the testharness with a docker flag to launch an Z-Wave emulator with test devices.
yarn testharness --docker
If your Z-Wave Controller is plugged into a different machine, you can access it remotely via socat
.
NOTE: Be sure to shutdown Homebridge on the machine before you run
socat
as the gateway only supports a single connection to it.
To get started, run this on the machine that your Z-Wave Controller is plugged into:
docker run --rm -ti --privileged -p 32375:32375 -v /dev:/host/dev \
alpine/socat -d -d tcp-l:32375,reuseaddr,fork file:/host/dev/ttyACM0,raw,nonblock,echo=0
NOTE: Remember to update your
/dev
path to match the path from Finding Your Device.
Next, when launching the testharness on your local machine, pass through a remote
flag:
yarn testharness --remote=$IP_OF_REMOTE_MACHINE:32375
The testharness will handle launching socat on your local machine and configuring DEVICE_PATH
for you.
Homebridge 是一个轻量级 NodeJS 服务器,它模拟 iOS HomeKit API,提供从 HomeKit 到“智能家居”设备制造商提供的各种第三方 API 的基本桥接。通过 Homebridge 的桥接,可以让 Siri 控制完全不支持 HomeKit 的设备。 此外 Homebridge 支持插件。
homebridge-vsx homebridge-vsx is a plugin made for homebridge,which allows switching on and off your Pioneer AV receiver. All AV receivers (VSX and SC),which work with the iControl AV5 App are support
homebridge-sesame Control and monitor your Sesame smart lock with HomeKit integration. Prerequisites Installation of Homebridge iOS 11 or later Sesame lock with enabled cloud integration Sesame Wifi A
homebridge-panasonictv A homebridge plugin for turning on and off your Panasonic Viera TV. The plugin also has experimental support for changing the volume and channel. These characteristics are not r
Quick Start | Contribute A Wake on Lan plugin for Homebridge Turn your PCs, laptops, servers and more on and off through Siri Quick Start To install the plugin, head over to the machine with Homebridg
Docker Homebridge This Alpine/Ubuntu Linux based Docker image allows you to run Nfarina's Homebridge on your home network which emulates the iOS HomeKit API. This is a multi-arch image and will also r
This Plugin is no longer being maintained. The ST platform removed all of the greatness that made it fun to develop for and I will not rewrite my years of code to adapt. I have moved to Hubitat and al
Homebridge myQ myQ garage door and other myQ-enabled device support for Homebridge. homebridge-myq is a Homebridge plugin that makes myQ-enabled devices available to Apple's HomeKit smart home platfor