stormboy / node-zbee

A NodeJS module for communicating with Zigbee devices using an XBee.
GNU Lesser General Public License v3.0
17 stars 2 forks source link

ZBee

A NodeJS module for communicating with Zigbee devices using an XBee (series 2). The module allows communication with nodes' Zigbee Device Object (ZDO) and application objects (endpoints).

A web app is provided for discovering and configuring Zigbee devices on the network. First edit config.js to set your serial port and then run:

> node app.js

Emphasis of this project will initially be on implementing the HA profile.

Goals

The goal of this library is to provide enough functionality to create and configure a network of Zigbee devices for use in an automation and monitoring scenario. This includes setting up bindings and attribute reporting. This involves:

A comprehensive, nice looking end-user GUI for every-day interaction with devices is a separate project. See Whims (https://github.com/stormboy/whims) for a project that interfaces with multiple subsystems via Meem protocol over MQTT. Subsystems include Zigbee, Nest thermostat, Belkin Wemo, X10, Raven Smart energy USB stick, Pioneer AV.

The glue between Zigbee and MQTT-based protocol will either be in a separate project or an "example" application in this project.

Status

A Web GUI is provided that allows discovery of Nodes and Endpoints.

Binding and attribute reports are now manageable in the library, but the UI does not provide a nice way to do so as yet.

TODO

API

Coordinator

Functions

Events

TODO

ZBee

Functions

Events

TODO

ZigbeeNode

Functions

Events

ZigbeeDevice

This object represents an Application Object in a Node. A ZigbeeDevice has clusters.

Events

ZDO

There is one ZDO per ZigbeeNode. Accessed via:

node.zdo

Functions

Events

Cluster

Contains attributes

Functions

General functions

Cluster-dependend functions. e.g. identify() sendOnOff(value)

Events

attributeReport