Home - nouknouk/node-zigate GitHub Wiki

zigate_logo

node-zigate documentation

overview

The module node-zigate aims to provide low & high level APIs for managing the Zigate USB TTL key in nodejs an interacting with zigbee devices in an easy way.

development status

This project is at an early stage. It's still under active development ; API is subject to major refactoring and lot's of bugs are still present.

For the moment, only the USB (aka. USB-TTL) version is supported (the WiFi version isn't).

components of node-zigate:

This project is composed of two main parts, representing two levels of abstraction of the Zigate key:

  • The Zigate.Driver is a 'lower level' abstraction of the Zigate key. It interacts with the key through the USB port:

    • it can send commands (devices_list, permit_join, attribute_write, etc.)
    • it can receive responses which are either related to a previous command sent (devices_list,attribute_write, ...) or 'spontaneous' notifications (attribute_report, etc.)
  • The Zigate.Coordinator is an higher abstraction on top of the Zigate.Driver ; it uses internally the Zigate.Driver to communicate with the Zigate key, and provides additionnal features:

    • expose the availables devices, their endpoints / clusters / attributes and actions on them (get/set attribute's values, ...)
    • it keeps a trace of the devices included in the network, for persistance on next run.
    • it stores metadata related to zigbee devices' specifications: endpoints/clusters/attributes
    • it provides a simple APIp to start/stop the inclusion mode (to include/Exclude a zigbee device in the Zigate's network)
    • it recognizes devices, and creates appropriate values, events, actions objects, to interact easily with the device.

ready ? go !

Let's start with the installation of the module.