Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.
/ homebridge-zwave Public archive

A Homebridge plugin for ZWave devices

License

Notifications You must be signed in to change notification settings

mike182uk/homebridge-zwave

Repository files navigation

⚠️ This project is no longer maintained

homebridge-zwave

Version Build Status npm License

A Homebridge plugin for ZWave devices.

Index

Prerequisites

  1. Node.js >= 12.13.0
  2. OpenZWave 1.6
  3. Homebridge >= 1.0.0
  4. A good understanding of how Homebridge, HomeKit and ZWave works

Installation

npm i -g homebridge-zwave

Usage

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 for
  • displayName - the name that will be used for this accessory in HomeKit
  • homekitCategory - 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 is Outlet:
      • Outlet
    • If homekitCategory is Sensor:
      • Battery
      • HumiditySensor
      • LightSensor
      • MotionSensor
      • TemperatureSensor
    • if homekitCategory is Switch
      • Switch

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.

Notes

Devices tested with this plugin

FAQ's

How do I install OpenZWave on macOS

You can install v1.6 of OpenZWave using Homebrew:

brew tap mike182uk/tap

brew install mike182uk/tap/open-zwave

⚠️ WARNING

If you run:

brew install open-zwave

This will install an older version of OpenZWave that will not work with this plugin.