A Homebridge plugin for ZWave devices.
- Node.js >= 12.13.0
- OpenZWave 1.6
- Homebridge >= 1.0.0
- A good understanding of how Homebridge, HomeKit and ZWave works
npm i -g homebridge-zwave
Register the plugin with Homebridge by adding a new entry to the platforms
section of your Homebridge config:
{
"platform": "ZWavePlatform",
"name": "ZWavePlatform",
"zwave": {
"devicePath": "/dev/cu.usbmodem14201",
"networkKey": "0xE0, 0x40, 0x58, 0x10, 0x79, 0x32, 0x9B, 0x52, 0x96, 0x4B, 0x8F, 0xC5, 0x62, 0x4F, 0x79, 0x3B"
},
"accessories": [
{
"zwaveNodeId": 2,
"displayName": "Desk Power Socket",
"homekitCategory": "Outlet",
"homekitServices": [
"Outlet"
]
},
{
"zwaveNodeId": 3,
"displayName": "Light Switch",
"homekitCategory": "Switch",
"homekitServices": [
"Switch"
]
},
{
"zwaveNodeId": 4,
"displayName": "Office Multisensor",
"homekitCategory": "Sensor",
"homekitServices": [
"Battery",
"MotionSensor",
"HumiditySensor",
"TemperatureSensor"
]
}
],
"noCache": false
}
If you do not have a platforms
section in your Homebridge config you will need to define one.
zwave.devicePath
is the path to your ZWave controller. This can vary based on the controller manufacturer and the operating system you are using.
zwave.networkKey
is the network key to use for encrypting secure messages over the network. This property can be omitted if you do not require this functionality.
accessories
is where you will map a ZWave node to a HomeKit accessory. To define an accessory the information needed is:
zwaveNodeId
- the ID of the node in the ZWave network that this accessory is fordisplayName
- the name that will be used for this accessory in HomeKithomekitCategory
- the type of accessory HomeKit will see this accessory as. Supported categories are:Outlet
Sensor
Switch
homekitServices
- the HomeKit services provided by this accessory. Supported services are:- If
homekitCategory
isOutlet
:Outlet
- If
homekitCategory
isSensor
:Battery
HumiditySensor
LightSensor
MotionSensor
TemperatureSensor
- if
homekitCategory
isSwitch
Switch
- If
You do not have to specify the service for an accessory if the accessory does not support it (i.e a multisensor that only measures temperature and humidity only needs the HumiditySensor
and TemperatureSensor
services).
noCache
sets whether accessories registered by this plugin should be cached or not. By default this value is false
. Set to true
to disable the cache.
- Aeotec Z-Stick Gen5
- Aeotec Smart Switch 6 (UK version)
- Aeotec MultiSensor 6
You can install v1.6
of OpenZWave
using Homebrew:
brew tap mike182uk/tap
brew install mike182uk/tap/open-zwave
If you run:
brew install open-zwave
This will install an older version of OpenZWave
that will not work with this plugin.