GithubHelp home page GithubHelp logo

zwave's Introduction

ZWave Program Controller

This repository contains the code for a program that duplicates a ZWave network settings to a ZWave controller. The program also configures scenes on the controller.

Assumptions:

  • You have a control think stick that is the network primary controller
  • I tested this with Intermatic Home Settings HA07 Master controller and Intermatic Home Settings HA07 Handy remote.
  • You have Control Think SDK install. (I downloaded the SDK from (http://forums.controlthink.com/t/2051.aspx)

Configuration File Structure

The program reads network configuration from a config file. This file is JSON formatted and contains the follwoing Syntax:

Devices

A mapping between node id and device names. The syntax for every device is:

{"Name":"<Name of the device>","NodeId":<The Node ID>}
  • Name of the device - Every string meaningfull name for the device
  • Node ID - The node Id for the device in the ZWave mesh. To determine the NodeId I used the Think Essentials and right click properties on the device

Schenes

The schenes that are avialable. Format for a schene is:

{"Id":"<Schene ID>","Name":"<Schene Name>",
 "OffDevices":<Array Of devices that are off in the schene>,"OnDevices":<Array of devices that are on in the schene>}
  • Schene ID - A string ID to identify the schene should be unique and should not contain a colon
  • Schene Name - The name of the schene (Any string is OK)
  • Array Of devices that are off in the schene - An integer array of node ID for devices that should be turned off when the schene is activated
  • Array of devices that are on in the schene - An integer array of node ID for devices that should be turned on when the schene is activated

Example:

{"Id":"K2","Name":"Half Kitchen","OffDevices":[27,28],"OnDevices":[26]},

Controllers

The controllers defined for the system (The controller being configured should be one of them. For every controller we define the list mapping between controller channels and scenes/ devices. The format for a controller configuration is:

{"Name":"<Name Of the controller>","NumberOfChannels":<Number of channels>,"Channells":<Channel mapping array>}
  • Name of the controller - The name you will reference the controller when configuring it (This will be the second parameter to the program. This should be unique across controllers
  • Number of Channels - The number of channels that this controller supports (HA07 supports 12 HA09 supports 6)
  • Channel mapping array - An array with mapping between channel and scenes or devices. The first element in this array will be the setting for the first channel and so on. (meaning that the max size of this array is the number of channels the controller supports). To map a scene to a channel just state its ID To map a device us the following string d:Device Node ID: off or on (So d:32:on means that the channel will be put device 32 to state on)

Example:

{"Name":"Entrance","NumberOfChannels":12,"Channells":["PR1","PR2","d:35:on","","E1","","7","8","9","10","11","12"]},

Command line arguments:

DuplicateZwaveNetwork.Exe <Config File Path> <Controller Name>
  • Config File Path - The path to the configuration file.
  • Controller Name - The name of the controller configuration to use when copying the network to the controller

Make sure to put the controller in "Receive Network Configuration" state to do so on HA07

  • Press and hold the INCLUDE Button for 5 seconds. COPY will flash.
  • Release the INCLUDE button.
  • Press and release the channel 1 OFF/DIM. The display will show "RA" which means "Receive All Information"

On the HA09 the steps are the same but the lights will flash instead of the display.

For more info about HA07 controller go to (http://www.homesettings.com/products/controllers/ha07.aspx) For more info about HA09 controller got to (http://www.homesettings.com/products/controllers/ha09.aspx)

zwave's People

Contributors

yairg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.