Software Overview  |  Sitemap  |  Downloads  |  Developers  |  Forums

ZWave Serial Controller

The Serial Controller is a USB device which plugs into the Virtual Wiring System. It provides access to all the Z-Wave devices on a Z-Wave network. When creating a Z-Wave network for a Virtual Wiring system, the Serial Controller Device is the first Z-Wave Device added.

Installing a Serial Controller

The Serial Controller Device has no terminals - its only function is as a controller of a Z-Wave network. A Controller is physically installed by plugging it into a USB port on the Virtual Wiring System.

After plugging in the Serial Controller, create a Serial Controller Device by running the ControllerSerial Script. The parameters for the ControllerSerial Script are:

port_location :

  • the location of the USB port. In *nix systems, this is in the /dev directory with a name like /dev/ttyUSB0 or /dev/cu.usbserial-00001004. Type "ls -lrt /dev/*" for hints. On Windows systems, the location is COMx where "x" is a number (1,2,3, etc.).


To add a Serial Controller Device with ID "controller" and port_location "/dev/ttyUSB0", run the ControllerSerial Script with the following parameters:

id: "controller"
port_location: "/dev/ttyUSB0"

Useful Controller Commands and Utilities

Hard Resetting the Serial Controller

The Serial Controller maintains a list of all the Z-Wave devices and addresses it has included into its Z-Wave network. You can remove devices from the network by unincluding them one at a time, but the controller may continue to assign addresses from where it left off or use seemingly random values. If you want to clear all the included device information from the controller and make it assign Z-Wave addresses like it did when you first started using it, run the hard reset command.

To run the hard reset command, go to your Console. If your controller is named "controller", enter the following command:

poke "controller", "reset(hard:true)"

Learning the Addresses of All Included Z-Wave Devices

Each time you include a device into a Z-Wave network, the Serial Controller assigns it a Z-Wave address. If you don't know what address was assigned or want to be sure, you can run the node_ids_info command on your controller. The command will tell you the addresses of all of the included Z-Wave devices. Keep in mind that address 1 is the address of the Serial Controller. Generally but not always, the higher the address value, the more recently a device was included.

To run the node_ids_info command, go to your Console. If your controller is named "controller", enter the following command:

poke "controller", "node_ids_info"

If your controller had included 4 devices, its response would be something like:

"Known Z-Wave node IDs: 1 2 3 4 5"

If you have included the 4 devices cleanly (no devices were unincluded), address 5 was the last device included.

Learning about a Particular Z-Wave Device

If you know the address of a Z-Wave device, but are not sure what the device is, you can learn more about it by running the node_id_info command.

To run the node_id_info command, go to your Console. If your controller is named "controller" and you want to learn about the device at Z-Wave address 2, enter the following command:

poke "controller", "node_id_info 2"

Low Level Controller Commands

You can query and configure the Controller using a set of low level commands using the do_cmd method. The do_cmd takes one parameter, the command number, and any additional parameters required by the command.

As an example, the controller's version number information is accessible using the "get version" command, which is command number 0x15 (or 21 decimal). To ask a controller with ID "controller" for its version information, go to the Console and type:

poke "controller", "do_cmd 0x15"

Your response will be a Z-Wave packet expressed as an array of bytes:


Byte 4 is where your return message starts - it echos your command of 21. Bytes 11 through 15 are an ASCII string with the version. This string is " 2.78".

Catalina Computing, LLC.

Copyright © Catalina Computing, LLC. (2013-2017)

Page last updated: Wed Jan 7 14:44:56 2015 (UTC)