Giter VIP home page Giter VIP logo

node-openzwave's Introduction

node-openzwave

This is a node.js add-on which wraps the Open Z-Wave library to provide access to a Z-Wave network from JavaScript.

It is currently able to scan a Z-Wave network, report on connected devices, monitor the network for changes, and has rudimentary write support.

Install

The module currently builds only on OS X and Linux. On Linux you will need to ensure the libudev headers are installed first.

$ npm install openzwave

API

Start by loading the addon and creating a new instance, specifying a path to the USB device:

var OZW = require('openzwave');
var zwave = new OZW('/dev/ttyUSB0');

An optional object can be passed at creation time to alter the behavior of the ZWave module. The options currently supported and their defaults are:

var zwave = new OZW('/dev/ttyUSB0', {
        logging: false,           // enable logging to OZW_Log.txt
        consoleoutput: false,     // copy logging to the console
        saveconfig: false,        // write an XML network layout
        driverattempts: 3,        // try this many times before giving up
        pollinterval: 500,        // interval between polls in milliseconds
        suppressrefresh: true,    // do not send updates if nothing changed
});

The rest of the API is split into Functions and Events. Messages from the Z-Wave network are handled by EventEmitter, and you will need to listen for specific events to correctly map the network.

Functions

Connecting to the network:

zwave.connect();     // initialise and start a new driver.
zwave.disconnect();  // disconnect from the current connection

Modifying device state:

/*
 * Set a multi-level device to the specified level (between 0-99).
 */
zwave.setLevel(nodeid, level);

/*
 * Turn a binary switch on/off.
 */
zwave.switchOn(nodeid);
zwave.switchOff(nodeid);

/*
 * Set arbitrary values.
 */
zwave.setValue(nodeid, commandclass, index, value);

Writing to device metadata (stored on the device itself):

zwave.setLocation(nodeid, location);    // arbitrary location string
zwave.setName(nodeid, name);            // arbitrary name string

Polling a device for changes (not all devices require this):

zwave.enablePoll(nodeid, commandclass);
zwave.disablePoll(nodeid, commandclass);

Reset the controller. Calling hardReset will clear any associations, so use carefully:

zwave.hardReset();      // destructive! will wipe out all known configuration
zwave.softReset();      // non-destructive, just resets the chip

Events

The supported events are:

.on('connected', function(){})

We have connected to an OpenZWave node.

.on('driver ready', function(homeid){})

The OpenZWave driver has initialised and scanning has started. Returns a unique homeid which identifies this particular network.

.on('driver failed', function(){})

The OpenZWave driver failed to initialise.

.on('node added', function(nodeid){})

A new node has been found on the network. At this point you can allocate resources to hold information about this node.

.on('value added', function(nodeid, commandclass, value){})

A new value has been discovered. Values are associated with a particular node, and are the parts of the device you can monitor or control.

Values are split into command classes. The classes currently supported and their unique identifiers are:

  • COMMAND_CLASS_SWITCH_BINARY (37)
  • COMMAND_CLASS_SWITCH_MULTILEVEL (38)
  • COMMAND_CLASS_VERSION (134)

Binary switches can be controlled with .switchOn() and .switchOff().

Multi-level devices can be set with .setLevel().

The version class is informational only and cannot be controlled.

The value object differs between command classes, and contains all the useful information about values stored for the particular class.

.on('value changed', function(nodeid, commandclass, value){})

A value has changed. Use this to keep track of value state across the network. When values are first discovered, the module enables polling on those values so that we will receive change messages.

Prior to the 'node ready' event, there may be 'value changed' events even when no values were actually changed.

.on('value removed', function(nodeid, commandclass, index){})

A value has been removed. Use the index to calculate the offset where a command class can contain multiple values.

.on('node ready', function(nodeid, nodeinfo){})

A node is now ready for operation, and information about the node is available in the nodeinfo object:

  • nodeinfo.manufacturer
  • nodeinfo.product
  • nodeinfo.type
  • nodeinfo.loc (location, renamed to avoid location keyword).

.on('scan complete', function(){})

The initial network scan has finished.

Example

The test program below connects to a Z-Wave network, scans for all nodes and values, and prints out information about the network. It will then continue to scan for changes until the user hits ^C.

/*
 * OpenZWave test program.
 */

var OpenZWave = require('openzwave');

var zwave = new OpenZWave('/dev/ttyUSB0', {
	saveconfig: true,
});
var nodes = [];

zwave.on('driver ready', function(homeid) {
	console.log('scanning homeid=0x%s...', homeid.toString(16));
});

zwave.on('driver failed', function() {
	console.log('failed to start driver');
	zwave.disconnect();
	process.exit();
});

zwave.on('node added', function(nodeid) {
	nodes[nodeid] = {
		manufacturer: '',
		manufacturerid: '',
		product: '',
		producttype: '',
		productid: '',
		type: '',
		name: '',
		loc: '',
		classes: {},
		ready: false,
	};
});

zwave.on('value added', function(nodeid, comclass, value) {
	if (!nodes[nodeid]['classes'][comclass])
		nodes[nodeid]['classes'][comclass] = {};
	nodes[nodeid]['classes'][comclass][value.index] = value;
});

zwave.on('value changed', function(nodeid, comclass, value) {
	if (nodes[nodeid]['ready']) {
		console.log('node%d: changed: %d:%s:%s->%s', nodeid, comclass,
			    value['label'],
			    nodes[nodeid]['classes'][comclass][value.index]['value'],
			    value['value']);
	}
	nodes[nodeid]['classes'][comclass][value.index] = value;
});

zwave.on('value removed', function(nodeid, comclass, index) {
	if (nodes[nodeid]['classes'][comclass] &&
	    nodes[nodeid]['classes'][comclass][index])
		delete nodes[nodeid]['classes'][comclass][index];
});

zwave.on('node ready', function(nodeid, nodeinfo) {
	nodes[nodeid]['manufacturer'] = nodeinfo.manufacturer;
	nodes[nodeid]['manufacturerid'] = nodeinfo.manufacturerid;
	nodes[nodeid]['product'] = nodeinfo.product;
	nodes[nodeid]['producttype'] = nodeinfo.producttype;
	nodes[nodeid]['productid'] = nodeinfo.productid;
	nodes[nodeid]['type'] = nodeinfo.type;
	nodes[nodeid]['name'] = nodeinfo.name;
	nodes[nodeid]['loc'] = nodeinfo.loc;
	nodes[nodeid]['ready'] = true;
	console.log('node%d: %s, %s', nodeid,
		    nodeinfo.manufacturer ? nodeinfo.manufacturer
					  : 'id=' + nodeinfo.manufacturerid,
		    nodeinfo.product ? nodeinfo.product
				     : 'product=' + nodeinfo.productid +
				       ', type=' + nodeinfo.producttype);
	console.log('node%d: name="%s", type="%s", location="%s"', nodeid,
		    nodeinfo.name,
		    nodeinfo.type,
		    nodeinfo.loc);
	for (comclass in nodes[nodeid]['classes']) {
		switch (comclass) {
		case 0x25: // COMMAND_CLASS_SWITCH_BINARY
		case 0x26: // COMMAND_CLASS_SWITCH_MULTILEVEL
			zwave.enablePoll(nodeid, comclass);
			break;
		}
		var values = nodes[nodeid]['classes'][comclass];
		console.log('node%d: class %d', nodeid, comclass);
		for (idx in values)
			console.log('node%d:   %s=%s', nodeid, values[idx]['label'], values[idx]['value']);
	}
});

zwave.on('notification', function(nodeid, notif) {
	switch (notif) {
	case 0:
		console.log('node%d: message complete', nodeid);
		break;
	case 1:
		console.log('node%d: timeout', nodeid);
		break;
	case 2:
		console.log('node%d: nop', nodeid);
		break;
	case 3:
		console.log('node%d: node awake', nodeid);
		break;
	case 4:
		console.log('node%d: node sleep', nodeid);
		break;
	case 5:
		console.log('node%d: node dead', nodeid);
		break;
	case 6:
		console.log('node%d: node alive', nodeid);
		break;
        }
});

zwave.on('scan complete', function() {
	console.log('scan complete, hit ^C to finish.');
});

zwave.connect();

process.on('SIGINT', function() {
	console.log('disconnecting...');
	zwave.disconnect();
	process.exit();
});

Sample output from this program:

$ node test.js 2>/dev/null
scanning homeid=0x161db5f...
node1: Aeon Labs, Z-Stick S2
node1: name="", type="Static PC Controller", location=""
node1: class 32
node1:   Basic=0
node11: Everspring, AD142 Plug-in Dimmer Module
node11: name="", type="Multilevel Power Switch", location=""
node11: class 32
node11: class 38
node11:   Level=89
node11:   Bright=undefined
node11:   Dim=undefined
node11:   Ignore Start Level=true
node11:   Start Level=0
node11: class 39
node11:   Switch All=3073
node11: class 115
node11:   Powerlevel=3073
node11:   Timeout=0
node11:   Set Powerlevel=undefined
node11:   Test Node=0
node11:   Test Powerlevel=3072
node11:   Frame Count=0
node11:   Test=undefined
node11:   Report=undefined
node11:   Test Status=3072
node11:   Acked Frames=0
node11: class 117
node11:   Protection=3072
node11: class 134
node11:   Library Version=4
node11:   Protocol Version=2.64
node11:   Application Version=1.02
node12: Wenzhou TKB Control System, product=0103, type=0101
node12: name="", type="Binary Power Switch", location=""
node12: class 32
node12: class 37
node12:   Switch=true
node12: class 39
node12:   Switch All=3161
node12: class 134
node12:   Library Version=6
node12:   Protocol Version=3.40
node12:   Application Version=1.04
node13: Wenzhou TKB Control System, product=0103, type=0101
node13: name="", type="Binary Power Switch", location=""
node13: class 32
node13: class 37
node13:   Switch=true
node13: class 39
node13:   Switch All=3073
node13: class 134
node13:   Library Version=6
node13:   Protocol Version=3.40
node13:   Application Version=1.04
node10: Popp / Duwi, ZW ESJ Blind Control
node10: name="", type="Multiposition Motor", location=""
node10: class 32
node10: class 37
node10:   Switch=true
node10: class 38
node10:   Level=99
node10:   Bright=undefined
node10:   Dim=undefined
node10:   Ignore Start Level=true
node10:   Start Level=0
node10: class 39
node10:   Switch All=3073
node10: class 117
node10:   Protection=3073
node10: class 134
node10:   Library Version=6
node10:   Protocol Version=2.51
node10:   Application Version=1.00
node10: class 135
node10:   Indicator=0
scan complete, hit ^C to finish.
^Cdisconnecting...

Remove 2>/dev/null to get verbose output of all incoming notification types and additional debug information.

License

The Open Z-Wave library that this module heavily relies upon is licensed under the LGPLv3.

Everything else (all the bits that I have written) is under the vastly more sensible ISC license.

node-openzwave's People

Contributors

jperkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-openzwave's Issues

v0.0.23 is much better!

here's my question in the current README.md file immediately after test.js runs, we see all of the attached nodes being enumerated.

when i run test.js with my z-stick s2 on /dev/cu.SLAB_USBtoUART this is what i see during the first five minutes. shouldn't it be immediately reporting what it knows. OZW_Log.txt is here: https://gist.github.com/mrose17/7094096

some of these devices are "smart plugs" that are plugged in and shouldn't be sleeping. node 16 is a repeater, that is too far away.

scanning homeid=0x16a29fc...
node2: nop
node3: nop
node4: nop
node5: nop
node6: nop
node7: nop
node8: nop
node8: node sleep
node9: nop
node9: node sleep
node10: nop
node11: nop
node11: node sleep
node12: nop
node12: node sleep
node13: nop
node14: nop
node14: node sleep
node15: nop
node15: node sleep
node16: nop
node3: nop
node4: nop
node6: nop
node7: nop
node13: nop
unsupported value type: 0x2
node3: nop
node3: node dead
node4: nop
node4: node dead
node6: nop
node6: node dead
node7: nop
node7: node dead
unsupported value type: 0x2
node13: nop
node13: node dead
node1: Aeon Labs, Z-Stick S2
node1: name="", type="Static PC Controller", location=""
node1: class 32
node1: Basic=0
Unhandled notification: 4
Unhandled notification: 4
node16: timeout
node16: timeout
node16: timeout
node16: timeout

error under debian

Got this error durning 'require':

root@debian:/home/drago/empathy/node_modules/openzwave# node test.js

module.js:356
  Module._extensions[extension](this, filename);
                               ^
Error: /home/drago/empathy/node_modules/openzwave/build/Release/openzwave.node: undefined symbol: udev_new
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/drago/empathy/node_modules/openzwave/lib/openzwave.js:17:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

node -v v0.10.21
npm -v 1.3.15
Linux 3.2.0-4-686-pae

Rounding of values

During some testing with a Smart Energy Switch from Aeon Labs, I noticed that the values passed to the event listeners are rounded. I will try to illustrate with an example.

Here's a value we can see in the zcfg.xml file:

<Value type="decimal" genre="user" instance="1" index="0" label="Energy" units="kWh" read_only="true" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="0" value="0.011" />

But the reported value in the value changed listener or any other is 0.

Is it possible to avoid the rounding and get the real values?

switch does not work

The following switch does not seem to work;
switch (comclass) { case 0x25: // COMMAND_CLASS_SWITCH_BINARY case 0x26: // COMMAND_CLASS_SWITCH_MULTILEVEL zwave.enablePoll(nodeid, comclass); break; }

wheras this works:
if (comclass == 0x26) { zwave.enablePoll(nodeid, comclass); }

don't know why btw...

Update to the newest version of openzwave.

I have a problem I want to use the newest version op openzwave wrapper. because i have a newer device that is not yet supported in this version.(A)

Or can you give the instructions how I can do that myself?:)

query: defining constants

would you object to a pull request that defined constants for command classes and subclasses, so we could use things like

openzwave.COMMAND_CLASS_NMETER

instead of

0x32

?

GUI

Hi, very awesome library.
I'm just fairly new to Zwave and also node.

Could someone point me in a direction of how to create a GUI for this script?
Be happy to work on that and contribute, but not sure where to start in with including this add-on which provides perfect terminal logs to a browser?

BTW. Sorry for creating a issue, not sure how to start this conversation else..

nodejs segfaults on zwave.disconnect()

Hello,

I'm creating a Node-Red node for node-openzwave, and I have some listeners that run when the flows are starting and stopping. But the thing is that Node-Red sends a stop before sending the start event, and so I end up calling zwave.disconnect() before ever calling the connect. And that is causing zwave to segfault nodejs. For now I'll just use boolean to avoid that, but I don't think that node-openzwave should crash like that.

unable to exit without ctrl-c

please forgive my newbie nodejs status. If I call zwave.connect() I find it impossible to exit without a forceful exception or explicitly using Ctrl-C.

with a final statement of zwave.disconnect() I continue processing, but no exit from the script.

2014-02-21 22:11:03.686 ***************************************************************************
2014-02-21 22:11:03.686 ********************* Cumulative Network Statistics *********************
2014-02-21 22:11:03.687 *** General
2014-02-21 22:11:03.687 Driver run time: . . . 0 days, 0 hours, 0 minutes
2014-02-21 22:11:03.687 Frames processed: . . . . . . . . . . . . . . . . . . . . 1
2014-02-21 22:11:03.687 Total messages successfully received: . . . . . . . . . . 0
2014-02-21 22:11:03.687 Total Messages successfully sent: . . . . . . . . . . . . 1
2014-02-21 22:11:03.687 ACKs received from controller: . . . . . . . . . . . . . 1
2014-02-21 22:11:03.687 *** Errors
2014-02-21 22:11:03.687 Unsolicited messages received while waiting for ACK: . . 0
2014-02-21 22:11:03.687 Reads aborted due to timeouts: . . . . . . . . . . . . . 0
2014-02-21 22:11:03.687 Bad checksum errors: . . . . . . . . . . . . . . . . . . 0
2014-02-21 22:11:03.687 CANs received from controller: . . . . . . . . . . . . . 0
2014-02-21 22:11:03.687 NAKs received from controller: . . . . . . . . . . . . . 0
2014-02-21 22:11:03.687 Out of frame data flow errors: . . . . . . . . . . . . . 0
2014-02-21 22:11:03.687 Messages retransmitted: . . . . . . . . . . . . . . . . . 0
2014-02-21 22:11:03.687 Messages dropped and not delivered: . . . . . . . . . . . 0
2014-02-21 22:11:03.687 ***************************************************************************
2014-02-21 22:11:03.687 contrlr, Received: 0x01, 0x10, 0x01, 0x15, 0x5a, 0x2d, 0x57, 0x61, 0x76, 0x65, 0x20, 0x32, 0x2e, 0x33, 0x36, 0x00, 0x01, 0x91
2014-02-21 22:11:03.688
2014-02-21 22:11:03.688 contrlr, Received reply to FUNC_ID_ZW_GET_VERSION:
2014-02-21 22:11:03.688 contrlr, Static Controller library, version Z-Wave 2.36
2014-02-21 22:11:03.688 contrlr, Expected reply was received
2014-02-21 22:11:03.688 contrlr, Message transaction complete
2014-02-21 22:11:03.688
2014-02-21 22:11:03.688 contrlr, Removing current message
2014-02-21 22:11:05.791 mgr, Driver for controller /dev/ttyUSB0 removed
-------------this is the final console.log statement before EOF--------------------------------------

Extending write support

The current write support allows us to use binary and multilevel switches by utilizing switchOn, switchOff and setLevel. But these methods are tied to specific classes such as 0x20 and 0x26.

We have a lot of use cases where we need to write to other classes as well. A good simple example is configuration - a lot of the devices have configuration options that we cannot utilize without the write support for it. For example, the Aeotec Smart Energy Switch has the following configuration class (0x70):

<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4">
  <Instance index="1" />
  <Value type="list" genre="config" instance="1" index="1" label="Report type" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="1" vindex="0" size="1">
    <Help>Defines the contents of Multilevel Sensor Report after Multilevel Sensor Get received.</Help>
    <Item label="Power" value="0" />
    <Item label="Voltage" value="1" />
  </Value>
  <Value type="short" genre="config" instance="1" index="2" label="Blinking behavior" units="" read_only="false" write_only="true" verify_changes="true" poll_intensity="0" min="0" max="65535" value="0">
    <Help>This is actually a double byte value. The LSB defines the total time the device needs to blink in seconds. The MSB defines the on/off interval of the blink in tenths of seconds.</Help>
  </Value>
  <Value type="list" genre="config" instance="1" index="80" label="Notification status" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="0" vindex="0" size="1">
    <Help>Enables automatic notifications to associated devices whenever there is a state change.</Help>
    <Item label="None" value="0" />
    <Item label="Hail" value="1" />
    <Item label="Basic" value="2" />
  </Value>
  <Value type="bool" genre="config" instance="1" index="90" label="Enable Wattage Reports" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="0" value="False">
    <Help>Enable/disable Wattage threshold and percent.</Help>
  </Value>
  <Value type="short" genre="config" instance="1" index="91" label="Wattage threshold" units="watts" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="32000" value="50">
    <Help>The minimum change in wattage for a report to be sent.</Help>
  </Value>
  <Value type="byte" genre="config" instance="1" index="92" label="Wattage threshold percent" units="%" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="99" value="10">
    <Help>Minimum change in percent of wattage to send a report.</Help>
  </Value>
  <Value type="button" genre="config" instance="1" index="100" label="Default Group Reports" units="" read_only="false" write_only="true" verify_changes="true" poll_intensity="0" min="0" max="0" affects="101,102,103">
    <Help>Set report types for groups 1, 2 and 3 to default. Reverts to 0 after set.</Help>
  </Value>
  <Value type="int" genre="config" instance="1" index="101" label="Report type G1" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="-2147483648" max="2147483647" value="8">
    <Help>Defines the type of report sent for reporting group 1. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts. Value 1 (msb) Reserved Value 2 Reserved Value 3 Reserved Value 4 (lsb) bits 7-4 reserved bit 3 MRC(KWH) bit 2 MRC(watt) bit 1 MSRC bit 0 reserved The MRC(KWH) flag signals that Report Group 1 send(1) or don&apos;t send(0) Meter Report Command(KWh) automatically. The MRC(Watt) flag signals that Report Group 1 send(1) or don&apos;t send(0) Meter Report Command(wattage) automatically. The MSRC flag signals that Report Group 1 send(1) or don&apos;t send(0) Multilevel Sensor Report Command(wattage) automatically.</Help>
  </Value>
  <Value type="int" genre="config" instance="1" index="102" label="Report type G2" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
    <Help>Defines the type of report sent for reporting group 2. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts. Value 1 (msb) Reserved Value 2 Reserved Value 3 Reserved Value 4 (lsb) bits 7-4 reserved bit 3 MRC(KWH) bit 2 MRC(watt) bit 1 MSRC bit 0 reserved The MRC(KWH) flag signals that Report Group 1 send(1) or don&apos;t send(0) Meter Report Command(KWh) automatically. The MRC(Watt) flag signals that Report Group 1 send(1) or don&apos;t send(0) Meter Report Command(wattage) automatically. The MSRC flag signals that Report Group 1 send(1) or don&apos;t send(0) Multilevel Sensor Report Command(wattage) automatically.</Help>
  </Value>
  <Value type="int" genre="config" instance="1" index="103" label="Report type G3" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
    <Help>Defines the type of report sent for reporting group 3. 2 is multisensor report. 4 is meter report for watts. 8 is meter report for kilowatts. Value 1 (msb) Reserved Value 2 Reserved Value 3 Reserved Value 4 (lsb) bits 7-4 reserved bit 3 MRC(KWH) bit 2 MRC(watt) bit 1 MSRC bit 0 reserved The MRC(KWH) flag signals that Report Group 1 send(1) or don&apos;t send(0) Meter Report Command(KWh) automatically. The MRC(Watt) flag signals that Report Group 1 send(1) or don&apos;t send(0) Meter Report Command(wattage) automatically. The MSRC flag signals that Report Group 1 send(1) or don&apos;t send(0) Multilevel Sensor Report Command(wattage) automatically.</Help>
  </Value>
  <Value type="button" genre="config" instance="1" index="110" label="Default Group Time" units="" read_only="false" write_only="true" verify_changes="true" poll_intensity="0" min="0" max="0" affects="111,112,113">
    <Help>Set time interval for sending reports for groups 1, 2 and 3 to default.</Help>
  </Value>
  <Value type="int" genre="config" instance="1" index="111" label="Send interval G1" units="seconds" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="65535" value="600">
    <Help>Defines the time interval when the defined report for group 1 is sent.</Help>
  </Value>
  <Value type="int" genre="config" instance="1" index="112" label="Send interval G2" units="seconds" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="65535" value="600">
    <Help>Defines the time interval when the defined report for group 2 is sent.</Help>
  </Value>
  <Value type="int" genre="config" instance="1" index="113" label="Send interval G3" units="seconds" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="65535" value="600">
    <Help>Defines the time interval when the defined report for group 3 is sent.</Help>
  </Value>
  <Value type="short" genre="config" instance="1" index="254" label="Device tag" units="" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="65535" value="0">
    <Help>Device tag.</Help>
  </Value>
  <Value type="button" genre="config" instance="1" index="255" label="Reset device" units="" read_only="false" write_only="true" verify_changes="true" poll_intensity="0" min="0" max="0">
    <Help>Reset to the default configuration.</Help>
  </Value>
</CommandClass>

where a lot of the values have writing enabled.

Configuration is just one example, but the support to writing to different classes would be very useful in a lot of other cases.

Is there a way to extend the write support by implementing a more generic solution. Something like a method that would accept the following parameters:

  • command class
  • index
  • value

All the values even have attributes that can validate whether writing is allowed or what type of value is expected that can be used for a validation step. This can obviously be done as a second phase but the basic write support would add great value.

If we have something like this in place then methods like switchOn can be modified as abstraction over the generic write support.

query: range for dinners

ok. i have loaded up the 10 different z-wave things i have here.

since the current command set handles setLevel/switchOn/switchOff, i think that covers binary switches and multi-level switches.

here's a question on multi-level switches, with one device i saw:

level=0->7

and on another

level=0->63

is there a pre-defined range (e.g., 0..100) or something?

Modifying device state not working

Tried turning off and on a device.

I am testing with a z-stick s2 and a GE 45604 Outdoor Module. I am attempting to turn the device off by issuing zwave.switchOff(2) when the node ready event is fired for the respective device.

This is what I get in the log:

2013-10-19 00:44:49.296 Node002, Polling: COMMAND_CLASS_SWITCH_BINARY index = 0 instance = 1 (poll queue has 0 messages)
2013-10-19 00:44:49.297 Node002, Queuing (Poll) SwitchBinaryCmd_Get (Node=2): 0x01, 0x09, 0x00, 0x13, 0x02, 0x02, 0x25, 0x02, 0x25, 0x09, 0xee
2013-10-19 00:44:49.299
2013-10-19 00:44:49.299 Node002, Sending (Poll) message (Callback ID=0x09, Expected Reply=0x04) - SwitchBinaryCmd_Get (Node=2): 0x01, 0x09, 0x00, 0x13, 0x02, 0x02, 0x25, 0x02, 0x25, 0x09, 0xee
2013-10-19 00:44:49.304 Node002,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2013-10-19 00:44:49.304 Node002,   ZW_SEND_DATA delivered to Z-Wave stack
2013-10-19 00:44:49.316 Node002,   Received: 0x01, 0x05, 0x00, 0x13, 0x09, 0x00, 0xe0
2013-10-19 00:44:49.316 Node002,   ZW_SEND_DATA Request with callback ID 0x09 received (expected 0x09)
2013-10-19 00:44:49.316 Node002, Request RTT 17 Average Request RTT 17
2013-10-19 00:44:49.323 Node002,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x02, 0x03, 0x25, 0x03, 0xff, 0x2a
2013-10-19 00:44:49.323
2013-10-19 00:44:49.323 Node002, Response RTT 23 Average Response RTT 23
2013-10-19 00:44:49.323 Node002, Received SwitchBinary report from node 2: level=On
2013-10-19 00:44:49.323 Node002, Refreshed Value: old value=true, new value=true, type=bool
2013-10-19 00:44:49.323 Node002, Changes to this value are not verified
2013-10-19 00:44:49.323 Node002,   Expected reply and command class was received
2013-10-19 00:44:49.323 Node002,   Message transaction complete
2013-10-19 00:44:49.323
2013-10-19 00:44:49.324 Node002, Removing current message

and as per the log, the device is not turning off. It keeps retrying but with no success.

I also have the zwcfg*.cfg file as a gist here.

Ability to change home ID

I would like to request the ability to change the value of the "homeid" parameter that is stored on the device. Out of the box the value doesn't match the existing network and the instructions for the device indicate that the value can be changed through software so I'm hoping it would be an easy feature to add.

Thanks!

Module did not self-register. NodeJS v0.12.2

I am getting this error when trying to require('openzwave')

Error: Module did not self-register.
at Error (native)
at Module.load (module.js:355:32)
at Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object. (/home/developer/workspace/leaf-hub/node_modules/openzwave/lib/openzwave.js:17:13)
at Module._compile (module.js:460:26)
at Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Module._load (module.js:310:12)

If this bug is related to NodeJS v0.12.2, which version of nodejs should i use to run openzwave?

Changed values events not raised

Hello,

I'm using Aeon Stick S2 correctly with openzwave lib, i'm writing C++ programs to handle every logic i need.
I try to move on to nodejs for obvious reasons. Your lib seems a good start, but i can't understand why it does not work like the original openzwave lib.

For example even if i wait for 2 hours for the scan to complete or copy the xml definitions i only have for a door lock/unlock:

Unhandled notification: 10
Unhandled notification: 10

And on the OZW_Log.txt there is a correct detection on the event :

2014-08-15 12:22:34.538 Node008, Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x08, 0x03, 0x20, 0x01, 0xff, 0x27
2014-08-15 12:22:34.538
2014-08-15 12:22:34.538 Node008, Received Basic set from node 8: level=255. Sending event notification.
2014-08-15 12:22:36.131 Node008, Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x08, 0x03, 0x20, 0x01, 0x00, 0xd8
2014-08-15 12:22:36.131
2014-08-15 12:22:36.131 Node008, Received Basic set from node 8: level=0. Sending event notification.

  1. How do you explain that ?
  2. Do i need to upgrade your openzwave version shipped on this github and how can i do this ?

Thanks for your help !

first impressions

hi. first, the package is brilliant! thanks very much for writing it.

with just the Z-stick plugged in, i get one

unsupported command class: 0x20

when i pair this:

node2: Aeon Labs, Smart Energy Switch
node2: type="Binary Power Switch", location=""
node2: switch=true

i get a couple of dozen unsupported command classes/unhandled notifications, running "sort | uniq" yields this:

Unhandled notification: 1
Unhandled notification: 26
Unhandled notification: 4
unsupported command class: 0x20
unsupported command class: 0x25
unsupported command class: 0x27
unsupported command class: 0x31
unsupported command class: 0x32
unsupported command class: 0x70
unsupported command class: 0x86

is this normal? expected? i'm now going through inventory of z-wave stuff and plugging things in to see what gets recognized.

many thanks!

Install Failed

A fresh install with "npm install openzwave -g"

CXX(target) Release/obj.target/openzwave/src/openzwave.o
../src/openzwave.cc:36:24: error: expected class-name before ‘{’ token
 struct OZW: ObjectWrap {
                        ^
../src/openzwave.cc:37:33: error: ‘Arguments’ does not name a type
  static Handle<Value> New(const Arguments& args);
                                 ^
../src/openzwave.cc:37:44: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> New(const Arguments& args);
                                            ^
../src/openzwave.cc:38:37: error: ‘Arguments’ does not name a type
  static Handle<Value> Connect(const Arguments& args);
                                     ^
../src/openzwave.cc:38:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> Connect(const Arguments& args);
                                                ^
../src/openzwave.cc:39:40: error: ‘Arguments’ does not name a type
  static Handle<Value> Disconnect(const Arguments& args);
                                        ^
../src/openzwave.cc:39:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> Disconnect(const Arguments& args);
                                                   ^
../src/openzwave.cc:40:38: error: ‘Arguments’ does not name a type
  static Handle<Value> SetValue(const Arguments& args);
                                      ^
../src/openzwave.cc:40:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SetValue(const Arguments& args);
                                                 ^
../src/openzwave.cc:41:38: error: ‘Arguments’ does not name a type
  static Handle<Value> SetLevel(const Arguments& args);
                                      ^
../src/openzwave.cc:41:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SetLevel(const Arguments& args);
                                                 ^
../src/openzwave.cc:42:41: error: ‘Arguments’ does not name a type
  static Handle<Value> SetLocation(const Arguments& args);
                                         ^
../src/openzwave.cc:42:52: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SetLocation(const Arguments& args);
                                                    ^
../src/openzwave.cc:43:37: error: ‘Arguments’ does not name a type
  static Handle<Value> SetName(const Arguments& args);
                                     ^
../src/openzwave.cc:43:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SetName(const Arguments& args);
                                                ^
../src/openzwave.cc:44:38: error: ‘Arguments’ does not name a type
  static Handle<Value> SwitchOn(const Arguments& args);
                                      ^
../src/openzwave.cc:44:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SwitchOn(const Arguments& args);
                                                 ^
../src/openzwave.cc:45:39: error: ‘Arguments’ does not name a type
  static Handle<Value> SwitchOff(const Arguments& args);
                                       ^
../src/openzwave.cc:45:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SwitchOff(const Arguments& args);
                                                  ^
../src/openzwave.cc:46:40: error: ‘Arguments’ does not name a type
  static Handle<Value> EnablePoll(const Arguments& args);
                                        ^
../src/openzwave.cc:46:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> EnablePoll(const Arguments& args);
                                                   ^
../src/openzwave.cc:47:41: error: ‘Arguments’ does not name a type
  static Handle<Value> DisablePoll(const Arguments& args);
                                         ^
../src/openzwave.cc:47:52: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> DisablePoll(const Arguments& args);
                                                    ^
../src/openzwave.cc:48:39: error: ‘Arguments’ does not name a type
  static Handle<Value> HardReset(const Arguments& args);
                                       ^
../src/openzwave.cc:48:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> HardReset(const Arguments& args);
                                                  ^
../src/openzwave.cc:49:39: error: ‘Arguments’ does not name a type
  static Handle<Value> SoftReset(const Arguments& args);
                                       ^
../src/openzwave.cc:49:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
  static Handle<Value> SoftReset(const Arguments& args);
                                                  ^
../src/openzwave.cc:54:1: error: ‘uv_async_t’ does not name a type
 uv_async_t async;
 ^
../src/openzwave.cc: In function ‘void {anonymous}::cb(const OpenZWave::Notification*, void*)’:
../src/openzwave.cc:149:17: error: ‘async’ was not declared in this scope
  uv_async_send(&async);
                 ^
../src/openzwave.cc:149:22: error: ‘uv_async_send’ was not declared in this scope
  uv_async_send(&async);
                      ^
../src/openzwave.cc: At global scope:
../src/openzwave.cc:155:23: error: variable or field ‘async_cb_handler’ declared void
 void async_cb_handler(uv_async_t *handle, int status)
                       ^
../src/openzwave.cc:155:23: error: ‘uv_async_t’ was not declared in this scope
../src/openzwave.cc:155:35: error: ‘handle’ was not declared in this scope
 void async_cb_handler(uv_async_t *handle, int status)
                                   ^
../src/openzwave.cc:155:43: error: expected primary-expression before ‘int’
 void async_cb_handler(uv_async_t *handle, int status)
                                           ^
In file included from ../src/openzwave.cc:22:0:
/usr/local/lib/node_modules/openzwave/.node-gyp/6.3.0/include/node/node.h:454:3: error: expected ‘}’ at end of input
   }
   ^
/usr/local/lib/node_modules/openzwave/.node-gyp/6.3.0/include/node/node.h:476:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)
   ^
../src/openzwave.cc:728:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(openzwave, init)
 ^
../src/openzwave.cc:84:24: warning: ‘{anonymous}::znodes_mutex’ defined but not used [-Wunused-variable]
 static pthread_mutex_t znodes_mutex = PTHREAD_MUTEX_INITIALIZER;
                        ^
../src/openzwave.cc:87:17: warning: ‘{anonymous}::homeid’ defined but not used [-Wunused-variable]
 static uint32_t homeid;
                 ^
make: *** [Release/obj.target/openzwave/src/openzwave.o] Error 1
make: Leaving directory `/usr/local/lib/node_modules/openzwave/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Linux 3.19.8-100.fc20.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/openzwave
gyp ERR! node -v v6.3.0
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok 
npm ERR! Linux 3.19.8-100.fc20.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "openzwave" "-g"
npm ERR! node v6.3.0
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the openzwave package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs openzwave
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls openzwave
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:

Error during installation: recipe for target 'Release/obj.target/openzwave/src/openzwave.o' failed

I'm stuck during installation and have no clue how to move on. Please, anyone, guide me in a direction and I shall follow! :)

I have provided the console output and the whole npm-debug.log

openzwave.target.mk:104: recipe for target 'Release/obj.target/openzwave/src/openzwave.o' failed

Console:

gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.1.19-v7+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/homeautomation/node_modules/openzwave
gyp ERR! node -v v4.2.1
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Linux 4.1.19-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "openzwave" "--save"
npm ERR! node v4.2.1
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the openzwave package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls openzwave
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/homeautomation/npm-debug.log

npm-debug.log:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install',
1 verbose cli   'openzwave',
1 verbose cli   '--save' ]
2 info using [email protected]
3 info using [email protected]
4 verbose install initial load of /home/pi/homeautomation/package.json
5 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/body-parser/package.json
6 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/cheerio/package.json
7 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/connect-flash/package.json
8 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/cookie-parser/package.json
9 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/express/package.json
10 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/express-session/package.json
11 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/extend/package.json
12 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/feed-read/package.json
13 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/jasmine/package.json
14 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/lowdb/package.json
15 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/moment/package.json
16 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/moment-timezone/package.json
17 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/mongodb/package.json
18 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/morgan/package.json
19 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/nedb/package.json
20 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/node-schedule/package.json
21 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/npmlog/package.json
22 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/passport/package.json
23 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/passport-local/package.json
24 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/pm2/package.json
25 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/prettyjson/package.json
26 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/promisify-me/package.json
27 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/request/package.json
28 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/request-sync/package.json
29 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/socket.io/package.json
30 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/socket.io-client/package.json
31 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/squeezenode/package.json
32 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/sync-request/package.json
33 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/telldus/package.json
34 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/tingodb/package.json
35 verbose installManyTop reading scoped package data from /home/pi/homeautomation/node_modules/winston/package.json
36 info package.json [email protected] No license field.
37 info package.json [email protected] No license field.
38 info package.json [email protected] No license field.
39 info package.json [email protected] No license field.
40 info package.json [email protected] No license field.
41 info package.json [email protected] No license field.
42 info package.json [email protected] license should be a valid SPDX license expression
43 info package.json [email protected] No license field.
44 info package.json [email protected] No license field.
45 verbose readDependencies loading dependencies from /home/pi/homeautomation/package.json
46 silly cache add args [ 'openzwave', null ]
47 verbose cache add spec openzwave
48 silly cache add parsed spec Result {
48 silly cache add   raw: 'openzwave',
48 silly cache add   scope: null,
48 silly cache add   name: 'openzwave',
48 silly cache add   rawSpec: '',
48 silly cache add   spec: '*',
48 silly cache add   type: 'range' }
49 silly addNamed openzwave@*
50 verbose addNamed "*" is a valid semver range for openzwave
51 silly addNameRange { name: 'openzwave', range: '*', hasData: false }
52 silly mapToRegistry name openzwave
53 silly mapToRegistry using default registry
54 silly mapToRegistry registry https://registry.npmjs.org/
55 silly mapToRegistry uri https://registry.npmjs.org/openzwave
56 verbose addNameRange registry:https://registry.npmjs.org/openzwave not in flight; fetching
57 verbose request uri https://registry.npmjs.org/openzwave
58 verbose request no auth needed
59 info attempt registry request try #1 at 07:12:16
60 verbose request id 1c8569f8b3fbfb70
61 verbose etag "99EFR8AFD5SEQ1L8FNCGKQT4M"
62 http request GET https://registry.npmjs.org/openzwave
63 http 304 https://registry.npmjs.org/openzwave
64 verbose headers { date: 'Thu, 24 Mar 2016 07:12:16 GMT',
64 verbose headers   via: '1.1 varnish',
64 verbose headers   'cache-control': 'max-age=300',
64 verbose headers   etag: '"99EFR8AFD5SEQ1L8FNCGKQT4M"',
64 verbose headers   age: '0',
64 verbose headers   connection: 'keep-alive',
64 verbose headers   'x-served-by': 'cache-ams4142-AMS',
64 verbose headers   'x-cache': 'MISS',
64 verbose headers   'x-cache-hits': '0',
64 verbose headers   'x-timer': 'S1458803536.523758,VS0,VE707',
64 verbose headers   vary: 'Accept' }
65 silly get cb [ 304,
65 silly get   { date: 'Thu, 24 Mar 2016 07:12:16 GMT',
65 silly get     via: '1.1 varnish',
65 silly get     'cache-control': 'max-age=300',
65 silly get     etag: '"99EFR8AFD5SEQ1L8FNCGKQT4M"',
65 silly get     age: '0',
65 silly get     connection: 'keep-alive',
65 silly get     'x-served-by': 'cache-ams4142-AMS',
65 silly get     'x-cache': 'MISS',
65 silly get     'x-cache-hits': '0',
65 silly get     'x-timer': 'S1458803536.523758,VS0,VE707',
65 silly get     vary: 'Accept' } ]
66 verbose etag https://registry.npmjs.org/openzwave from cache
67 verbose get saving openzwave to /home/pi/.npm/registry.npmjs.org/openzwave/.cache.json
68 silly addNameRange number 2 { name: 'openzwave', range: '*', hasData: true }
69 silly addNameRange versions [ 'openzwave',
69 silly addNameRange   [ '0.0.1',
69 silly addNameRange     '0.0.2',
69 silly addNameRange     '0.0.3',
69 silly addNameRange     '0.0.4',
69 silly addNameRange     '0.0.5',
69 silly addNameRange     '0.0.6',
69 silly addNameRange     '0.0.7',
69 silly addNameRange     '0.0.8',
69 silly addNameRange     '0.0.9',
69 silly addNameRange     '0.0.10',
69 silly addNameRange     '0.0.11',
69 silly addNameRange     '0.0.12',
69 silly addNameRange     '0.0.13',
69 silly addNameRange     '0.0.14',
69 silly addNameRange     '0.0.15',
69 silly addNameRange     '0.0.16',
69 silly addNameRange     '0.0.17',
69 silly addNameRange     '0.0.18',
69 silly addNameRange     '0.0.22',
69 silly addNameRange     '0.0.23',
69 silly addNameRange     '0.0.24',
69 silly addNameRange     '0.0.25',
69 silly addNameRange     '0.0.26',
69 silly addNameRange     '0.0.27',
69 silly addNameRange     '0.0.28',
69 silly addNameRange     '0.0.29',
69 silly addNameRange     '0.0.30',
69 silly addNameRange     '0.0.32',
69 silly addNameRange     '0.0.33' ] ]
70 silly addNamed [email protected]
71 verbose addNamed "0.0.33" is a plain semver version for openzwave
72 silly cache afterAdd [email protected]
73 verbose afterAdd /home/pi/.npm/openzwave/0.0.33/package/package.json not in flight; writing
74 verbose afterAdd /home/pi/.npm/openzwave/0.0.33/package/package.json written
75 silly install resolved [ { name: 'openzwave',
75 silly install resolved     version: '0.0.33',
75 silly install resolved     description: 'Control a Z-Wave network via the Open Z-Wave library',
75 silly install resolved     main: './lib/openzwave.js',
75 silly install resolved     scripts:
75 silly install resolved      { test: 'echo "Error: no test specified" && exit 1',
75 silly install resolved        install: 'node-gyp rebuild' },
75 silly install resolved     repository:
75 silly install resolved      { type: 'git',
75 silly install resolved        url: 'git://github.com/jperkin/node-openzwave.git' },
75 silly install resolved     keywords:
75 silly install resolved      [ 'automation',
75 silly install resolved        'home',
75 silly install resolved        'iot',
75 silly install resolved        'openzwave',
75 silly install resolved        'open-zwave',
75 silly install resolved        'z-wave',
75 silly install resolved        'zwave' ],
75 silly install resolved     author:
75 silly install resolved      { name: 'Jonathan Perkin',
75 silly install resolved        email: '[email protected]',
75 silly install resolved        url: 'http://www.perkin.org.uk/' },
75 silly install resolved     licenses: [ [Object], [Object] ],
75 silly install resolved     gypfile: true,
75 silly install resolved     gitHead: '5eb3cb9d1082e2a02ad6fb60f4b2fef6c8c37e08',
75 silly install resolved     bugs: { url: 'https://github.com/jperkin/node-openzwave/issues' },
75 silly install resolved     homepage: 'https://github.com/jperkin/node-openzwave',
75 silly install resolved     _id: '[email protected]',
75 silly install resolved     _shasum: 'b60fc86853369a80ac97878c2a0248b7526d12d5',
75 silly install resolved     _from: 'openzwave@*',
75 silly install resolved     _npmVersion: '1.4.28',
75 silly install resolved     _npmUser: { name: 'jperkin', email: '[email protected]' },
75 silly install resolved     maintainers: [ [Object] ],
75 silly install resolved     dist:
75 silly install resolved      { shasum: 'b60fc86853369a80ac97878c2a0248b7526d12d5',
75 silly install resolved        tarball: 'http://registry.npmjs.org/openzwave/-/openzwave-0.0.33.tgz' },
75 silly install resolved     directories: {},
75 silly install resolved     _resolved: 'https://registry.npmjs.org/openzwave/-/openzwave-0.0.33.tgz',
75 silly install resolved     readme: 'ERROR: No README data found!' } ]
76 info install [email protected] into /home/pi/homeautomation
77 info installOne [email protected]
78 verbose installOne of openzwave to /home/pi/homeautomation not in flight; installing
79 verbose lock using /home/pi/.npm/_locks/openzwave-0a8c59141a433d01.lock for /home/pi/homeautomation/node_modules/openzwave
80 silly install write writing openzwave 0.0.33 to /home/pi/homeautomation/node_modules/openzwave
81 verbose unbuild node_modules/openzwave
82 silly gentlyRm /home/pi/homeautomation/node_modules/openzwave is being purged from base /home/pi/homeautomation
83 verbose gentlyRm don't care about contents; nuking /home/pi/homeautomation/node_modules/openzwave
84 verbose tar unpack /home/pi/.npm/openzwave/0.0.33/package.tgz
85 verbose tar unpacking to /home/pi/homeautomation/node_modules/openzwave
86 silly gentlyRm /home/pi/homeautomation/node_modules/openzwave is being purged
87 verbose gentlyRm don't care about contents; nuking /home/pi/homeautomation/node_modules/openzwave
88 silly gunzTarPerm modes [ '755', '644' ]
89 silly gunzTarPerm extractEntry package.json
90 silly gunzTarPerm extractEntry .npmignore
91 silly gunzTarPerm extractEntry README.md
92 silly gunzTarPerm extractEntry test.js
93 silly gunzTarPerm extractEntry LICENSE.md
94 silly gunzTarPerm extractEntry binding.gyp
95 silly gunzTarPerm extractEntry deps/open-zwave/config/leviton/rzi10.xml
96 silly gunzTarPerm extractEntry deps/open-zwave/config/leviton/vrcpg.xml
97 silly gunzTarPerm extractEntry deps/open-zwave/config/leviton/vrf01.xml
98 silly gunzTarPerm extractEntry deps/open-zwave/config/leviton/vri06.xml
99 silly gunzTarPerm extractEntry deps/open-zwave/config/leviton/vri10.xml
100 silly gunzTarPerm extractEntry deps/open-zwave/config/2gig/ct100.xml
101 silly gunzTarPerm extractEntry deps/open-zwave/config/2gig/ct30.xml
102 silly gunzTarPerm extractEntry deps/open-zwave/config/act/lfm20.xml
103 silly gunzTarPerm extractEntry deps/open-zwave/config/act/zdm230.xml
104 silly gunzTarPerm extractEntry deps/open-zwave/config/act/zdw103.xml
105 silly gunzTarPerm extractEntry deps/open-zwave/config/act/zdw232.xml
106 silly gunzTarPerm extractEntry deps/open-zwave/config/act/zir010.xml
107 silly gunzTarPerm extractEntry deps/open-zwave/config/act/zrp110.xml
108 silly gunzTarPerm extractEntry deps/open-zwave/config/act/zrw103.xml
109 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/alms.xml
110 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/doorwindow.xml
111 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/hem.xml
112 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/hemg2.xml
113 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/keyfob.xml
114 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/minimote.xml
115 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/recessed_doorsensor.xml
116 silly gunzTarPerm extractEntry deps/open-zwave/config/aeon_labs/ses.xml
117 silly gunzTarPerm extractEntry deps/open-zwave/config/assa_abloy/RealLivingCapTouch.xml
118 silly gunzTarPerm extractEntry deps/open-zwave/config/danfoss/living.xml
119 silly gunzTarPerm extractEntry deps/open-zwave/config/danfoss/z.xml
120 silly gunzTarPerm extractEntry deps/open-zwave/config/device_classes.xml
121 silly gunzTarPerm extractEntry deps/open-zwave/config/device_classes.xsd
122 silly gunzTarPerm extractEntry deps/open-zwave/config/device_configuration.xsd
123 silly gunzTarPerm extractEntry deps/open-zwave/config/duwi/ZWES1000.xml
124 silly gunzTarPerm extractEntry deps/open-zwave/config/eurotronic/eur_stellaz.xml
125 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/an145.xml
126 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/an158.xml
127 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/se812.xml
128 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/sf812.xml
129 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/sm103.xml
130 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/sp103.xml
131 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/sp814.xml
132 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/st814.xml
133 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/st815.xml
134 silly gunzTarPerm extractEntry deps/open-zwave/config/everspring/tse03.xml
135 silly gunzTarPerm extractEntry deps/open-zwave/config/everspringct/hsm02.xml
136 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgrgbwm441.xml
137 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgbs001.xml
138 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgfs101.xml
139 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgk001.xml
140 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgms.xml
141 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgr221.xml
142 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgd211.xml
143 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgrm222.xml
144 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgs211.xml
145 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgs221.xml
146 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgss101.xml
147 silly gunzTarPerm extractEntry deps/open-zwave/config/fibaro/fgwpe.xml
148 silly gunzTarPerm extractEntry deps/open-zwave/config/frostdale/fdn2nxx.xml
149 silly gunzTarPerm extractEntry deps/open-zwave/config/ge/dimmer.xml
150 silly gunzTarPerm extractEntry deps/open-zwave/config/ge/dimmer_module.xml
151 silly gunzTarPerm extractEntry deps/open-zwave/config/ge/relay.xml
152 silly gunzTarPerm extractEntry deps/open-zwave/config/greenwave/powernode1.xml
153 silly gunzTarPerm extractEntry deps/open-zwave/config/greenwave/powernode6.xml
154 silly gunzTarPerm extractEntry deps/open-zwave/config/homeseer/hsm100.xml
155 silly gunzTarPerm extractEntry deps/open-zwave/config/homeseer/ztroller.xml
156 silly gunzTarPerm extractEntry deps/open-zwave/config/honeywell/th8320zw1000.xml
157 silly gunzTarPerm extractEntry deps/open-zwave/config/horstmann/hrt4zw.xml
158 silly gunzTarPerm extractEntry deps/open-zwave/config/intermatic/ca8900.xml
159 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/1poleswitch.xml
160 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/2poleswitch.xml
161 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/AlarmSound.xml
162 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/BuiltinDimmer.xml
163 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/DoorSensor.xml
164 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/EnergySwitch.xml
165 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/Molite.xml
166 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/PluginDimmer.xml
167 silly gunzTarPerm extractEntry deps/open-zwave/config/BeNext/TagReader.xml
168 silly gunzTarPerm extractEntry deps/open-zwave/config/manufacturer_specific.xml
169 silly gunzTarPerm extractEntry deps/open-zwave/config/manufacturer_specific.xsd
170 silly gunzTarPerm extractEntry deps/open-zwave/config/northq/nq92021.xml
171 silly gunzTarPerm extractEntry deps/open-zwave/config/options.xml
172 silly gunzTarPerm extractEntry deps/open-zwave/config/options.xsd
173 silly gunzTarPerm extractEntry deps/open-zwave/config/philio/pan04.xml
174 silly gunzTarPerm extractEntry deps/open-zwave/config/philio/psm02.xml
175 silly gunzTarPerm extractEntry deps/open-zwave/config/popp/123580.xml
176 silly gunzTarPerm extractEntry deps/open-zwave/config/popp/123601.xml
177 silly gunzTarPerm extractEntry deps/open-zwave/config/popp/123658.xml
178 silly gunzTarPerm extractEntry deps/open-zwave/config/qees/reto-plugin-switch.xml
179 silly gunzTarPerm extractEntry deps/open-zwave/config/qubino/ZMNHAA2.xml
180 silly gunzTarPerm extractEntry deps/open-zwave/config/qubino/ZMNHBA2.xml
181 silly gunzTarPerm extractEntry deps/open-zwave/config/qubino/ZMNHCA2.xml
182 silly gunzTarPerm extractEntry deps/open-zwave/config/qubino/ZMNHDA2.xml
183 silly gunzTarPerm extractEntry deps/open-zwave/config/rcs/em52-zw.xml
184 silly gunzTarPerm extractEntry deps/open-zwave/config/rcs/pm12-zw.xml
185 silly gunzTarPerm extractEntry deps/open-zwave/config/rcs/therm0005.xml
186 silly gunzTarPerm extractEntry deps/open-zwave/config/rcs/therm0007.xml
187 silly gunzTarPerm extractEntry deps/open-zwave/config/rcs/therm0009.xml
188 silly gunzTarPerm extractEntry deps/open-zwave/config/remotec/zurc.xml
189 silly gunzTarPerm extractEntry deps/open-zwave/config/remotec/zxt-120.xml
190 silly gunzTarPerm extractEntry deps/open-zwave/config/schlagelink/itemp.xml
191 silly gunzTarPerm extractEntry deps/open-zwave/config/trane/TZEMT400AB32MAA.xml
192 silly gunzTarPerm extractEntry deps/open-zwave/config/trane/TZEMT400BB32MAA.xml
193 silly gunzTarPerm extractEntry deps/open-zwave/config/vision/zm1601eu.xml
194 silly gunzTarPerm extractEntry deps/open-zwave/config/vision/zs5101eu.xml
195 silly gunzTarPerm extractEntry deps/open-zwave/config/vitrum/vitrumBS.xml
196 silly gunzTarPerm extractEntry deps/open-zwave/config/waynedalton/WDTC-20.xml
197 silly gunzTarPerm extractEntry deps/open-zwave/config/wenzhou/tz65d.xml
198 silly gunzTarPerm extractEntry deps/open-zwave/config/wenzhou/tz66d.xml
199 silly gunzTarPerm extractEntry deps/open-zwave/config/wenzhou/tz88.xml
200 silly gunzTarPerm extractEntry deps/open-zwave/config/zipato/MiniKeypad.xml
201 silly gunzTarPerm extractEntry deps/open-zwave/config/zipato/RGBBulb.xml
202 silly gunzTarPerm extractEntry deps/open-zwave/config/zwave.me/ZME_05431.xml
203 silly gunzTarPerm extractEntry deps/open-zwave/config/zwave.me/ZME_06433.xml
204 silly gunzTarPerm extractEntry deps/open-zwave/config/zwave.me/ZME_06436.xml
205 silly gunzTarPerm extractEntry deps/open-zwave/config/zwave.me/ZME_WCD2.xml
206 silly gunzTarPerm extractEntry deps/open-zwave/config/zwave.me/iTemp.xml
207 silly gunzTarPerm extractEntry deps/open-zwave/config/zwave.me/kfob.xml
208 silly gunzTarPerm extractEntry deps/open-zwave/config/zwscene.xsd
209 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/MinOZW/Main.cpp
210 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/MinOZW/Makefile
211 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/MinOZW/MinOZW.in
212 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/windows/MinOZW/Main.cpp
213 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/windows/MinOZW/vs2008/MinOZW.sln
214 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/windows/MinOZW/vs2008/MinOZW.vcproj
215 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/windows/MinOZW/vs2010/MinOZW.sln
216 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/windows/MinOZW/vs2010/MinOZW.vcxproj
217 silly gunzTarPerm extractEntry deps/open-zwave/cpp/examples/windows/MinOZW/vs2010/MinOZW.vcxproj.filters
218 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/configure.ac
219 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/AUTHORS.txt
220 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/LICENSE-bsd.txt
221 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/LICENSE-gpl3.txt
222 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/LICENSE-orig.txt
223 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/LICENSE.txt
224 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/Makefile.am
225 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/README.txt
226 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/bootstrap
227 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/HACKING.txt
228 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/doxygen/Doxyfile
229 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/hidapi/hidapi.h
230 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/libusb/Makefile-manual
231 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/libusb/Makefile.am
232 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/libusb/Makefile.freebsd
233 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/libusb/Makefile.linux
234 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/libusb/hid.c
235 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/linux/.npmignore
236 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/linux/Makefile-manual
237 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/linux/Makefile.am
238 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/linux/README.txt
239 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/linux/hid.c
240 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/m4/ax_pthread.m4
241 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/m4/pkg.m4
242 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/mac/.npmignore
243 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/mac/Makefile-manual
244 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/mac/Makefile.am
245 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/mac/hid.c
246 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/pc/hidapi-hidraw.pc.in
247 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/pc/hidapi-libusb.pc.in
248 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/pc/hidapi.pc.in
249 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/udev/99-hid.rules
250 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/.npmignore
251 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/Makefile-manual
252 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/Makefile.am
253 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/Makefile.mingw
254 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/ddk_build/.npmignore
255 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/ddk_build/hidapi.def
256 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/ddk_build/makefile
257 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/ddk_build/sources
258 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/hid.cpp
259 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/hidapi.sln
260 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/hidapi.vcproj
261 silly gunzTarPerm extractEntry deps/open-zwave/cpp/hidapi/windows/hidtest.vcproj
262 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Node.h
263 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Bitfield.h
264 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/DoxygenMain.h
265 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Driver.cpp
266 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Driver.h
267 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Group.cpp
268 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Group.h
269 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Manager.cpp
270 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Manager.h
271 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Msg.cpp
272 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Msg.h
273 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Node.cpp
274 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Defs.h
275 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Notification.h
276 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Options.cpp
277 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Options.h
278 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Scene.cpp
279 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Scene.h
280 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Utils.cpp
281 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/Utils.h
282 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aeskey.c
283 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aes.h
284 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aes_modes.c
285 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aescpp.h
286 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aescrypt.c
287 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aes.txt
288 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aesopt.h
289 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aestab.c
290 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/aestab.h
291 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/brg_endian.h
292 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/aes/brg_types.h
293 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MultiInstance.h
294 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Alarm.cpp
295 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ApplicationStatus.cpp
296 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ApplicationStatus.h
297 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Association.cpp
298 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Association.h
299 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/AssociationCommandConfiguration.cpp
300 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/AssociationCommandConfiguration.h
301 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Basic.cpp
302 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Basic.h
303 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/BasicWindowCovering.cpp
304 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/BasicWindowCovering.h
305 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Battery.cpp
306 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Battery.h
307 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/CRC16Encap.cpp
308 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/CRC16Encap.h
309 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ClimateControlSchedule.cpp
310 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ClimateControlSchedule.h
311 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Clock.cpp
312 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Clock.h
313 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/CommandClass.cpp
314 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/CommandClass.h
315 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/CommandClasses.cpp
316 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/CommandClasses.h
317 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Configuration.cpp
318 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Configuration.h
319 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ControllerReplication.cpp
320 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ControllerReplication.h
321 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/DoorLock.cpp
322 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/DoorLock.h
323 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/DoorLockLogging.cpp
324 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/DoorLockLogging.h
325 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/EnergyProduction.cpp
326 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/EnergyProduction.h
327 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Hail.cpp
328 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Hail.h
329 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Indicator.cpp
330 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Indicator.h
331 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Language.cpp
332 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Language.h
333 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Lock.cpp
334 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Lock.h
335 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ManufacturerSpecific.cpp
336 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ManufacturerSpecific.h
337 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Meter.cpp
338 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Meter.h
339 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MeterPulse.cpp
340 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MeterPulse.h
341 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MultiCmd.cpp
342 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MultiCmd.h
343 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MultiInstance.cpp
344 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Alarm.h
345 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MultiInstanceAssociation.cpp
346 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/MultiInstanceAssociation.h
347 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/NoOperation.cpp
348 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/NoOperation.h
349 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/NodeNaming.cpp
350 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/NodeNaming.h
351 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Powerlevel.cpp
352 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Powerlevel.h
353 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Proprietary.cpp
354 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Proprietary.h
355 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Protection.cpp
356 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Protection.h
357 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SceneActivation.cpp
358 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SceneActivation.h
359 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Security.cpp
360 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Security.h
361 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SensorAlarm.cpp
362 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SensorAlarm.h
363 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SensorBinary.cpp
364 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SensorBinary.h
365 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SensorMultilevel.cpp
366 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SensorMultilevel.h
367 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchAll.cpp
368 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchAll.h
369 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchBinary.cpp
370 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchBinary.h
371 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchMultilevel.cpp
372 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchMultilevel.h
373 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchToggleBinary.cpp
374 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchToggleBinary.h
375 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchToggleMultilevel.cpp
376 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/SwitchToggleMultilevel.h
377 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatFanMode.cpp
378 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatFanMode.h
379 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatFanState.cpp
380 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatFanState.h
381 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatMode.cpp
382 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatMode.h
383 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatOperatingState.cpp
384 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatOperatingState.h
385 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatSetpoint.cpp
386 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/ThermostatSetpoint.h
387 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/TimeParameters.cpp
388 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/TimeParameters.h
389 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/UserCode.cpp
390 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/UserCode.h
391 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Version.cpp
392 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/Version.h
393 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/WakeUp.cpp
394 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/command_classes/WakeUp.h
395 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Ref.h
396 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Controller.cpp
397 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Event.cpp
398 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Event.h
399 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/FileOps.cpp
400 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/FileOps.h
401 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/HidController.cpp
402 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/HidController.h
403 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Log.cpp
404 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Log.h
405 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Mutex.cpp
406 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Mutex.h
407 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Controller.h
408 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/SerialController.cpp
409 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/SerialController.h
410 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Stream.cpp
411 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Stream.h
412 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Thread.cpp
413 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Thread.h
414 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/TimeStamp.cpp
415 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/TimeStamp.h
416 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Wait.cpp
417 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/Wait.h
418 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/SerialControllerImpl.cpp
419 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/EventImpl.cpp
420 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/FileOpsImpl.cpp
421 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/FileOpsImpl.h
422 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp
423 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/LogImpl.h
424 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/MutexImpl.cpp
425 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/MutexImpl.h
426 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/EventImpl.h
427 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/SerialControllerImpl.h
428 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/ThreadImpl.cpp
429 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/ThreadImpl.h
430 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/TimeStampImpl.cpp
431 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/TimeStampImpl.h
432 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/WaitImpl.cpp
433 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/unix/WaitImpl.h
434 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/SerialControllerImpl.cpp
435 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/EventImpl.cpp
436 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/FileOpsImpl.cpp
437 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/FileOpsImpl.h
438 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/LogImpl.cpp
439 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/LogImpl.h
440 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/MutexImpl.cpp
441 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/MutexImpl.h
442 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/EventImpl.h
443 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/SerialControllerImpl.h
444 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/ThreadImpl.cpp
445 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/ThreadImpl.h
446 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/TimeStampImpl.cpp
447 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/TimeStampImpl.h
448 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/WaitImpl.cpp
449 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/platform/windows/WaitImpl.h
450 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueInt.h
451 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/Value.cpp
452 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueBool.cpp
453 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueBool.h
454 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueButton.cpp
455 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueButton.h
456 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueByte.cpp
457 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueByte.h
458 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueDecimal.cpp
459 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueDecimal.h
460 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueID.h
461 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueInt.cpp
462 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/Value.h
463 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueList.cpp
464 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueList.h
465 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueRaw.cpp
466 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueRaw.h
467 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueSchedule.cpp
468 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueSchedule.h
469 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueShort.cpp
470 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueShort.h
471 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueStore.cpp
472 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueStore.h
473 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueString.cpp
474 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/value_classes/ValueString.h
475 silly gunzTarPerm extractEntry deps/open-zwave/cpp/src/vers.cpp
476 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/Makefile
477 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/tinystr.cpp
478 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/tinystr.h
479 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/tinyxml.cpp
480 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/tinyxml.h
481 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/tinyxmlerror.cpp
482 silly gunzTarPerm extractEntry deps/open-zwave/cpp/tinyxml/tinyxmlparser.cpp
483 silly gunzTarPerm extractEntry deps/open-zwave/libopenzwave.gyp
484 silly gunzTarPerm extractEntry deps/open-zwave/license/gpl.txt
485 silly gunzTarPerm extractEntry deps/open-zwave/license/lgpl.txt
486 silly gunzTarPerm extractEntry deps/open-zwave/license/license.txt
487 silly gunzTarPerm extractEntry lib/openzwave.js
488 silly gunzTarPerm extractEntry src/openzwave.cc
489 verbose write writing to /home/pi/homeautomation/node_modules/openzwave/package.json
490 info preinstall [email protected]
491 verbose readDependencies loading dependencies from /home/pi/homeautomation/node_modules/openzwave/package.json
492 verbose readDependencies loading dependencies from /home/pi/homeautomation/node_modules/openzwave/package.json
493 silly install resolved []
494 verbose about to build /home/pi/homeautomation/node_modules/openzwave
495 info build /home/pi/homeautomation/node_modules/openzwave
496 info linkStuff [email protected]
497 silly linkStuff [email protected] has /home/pi/homeautomation/node_modules as its parent node_modules
498 verbose linkBins [email protected]
499 verbose linkMans [email protected]
500 verbose rebuildBundles [email protected]
501 info install [email protected]
502 verbose unsafe-perm in lifecycle true
503 info [email protected] Failed to exec install script
504 verbose unlock done using /home/pi/.npm/_locks/openzwave-0a8c59141a433d01.lock for /home/pi/homeautomation/node_modules/openzwave
505 verbose stack Error: [email protected] install: `node-gyp rebuild`
505 verbose stack Exit status 1
505 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:214:16)
505 verbose stack     at emitTwo (events.js:87:13)
505 verbose stack     at EventEmitter.emit (events.js:172:7)
505 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14)
505 verbose stack     at emitTwo (events.js:87:13)
505 verbose stack     at ChildProcess.emit (events.js:172:7)
505 verbose stack     at maybeClose (internal/child_process.js:818:16)
505 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
506 verbose pkgid [email protected]
507 verbose cwd /home/pi/homeautomation
508 error Linux 4.1.19-v7+
509 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "openzwave" "--save"
510 error node v4.2.1
511 error npm  v2.14.7
512 error code ELIFECYCLE
513 error [email protected] install: `node-gyp rebuild`
513 error Exit status 1
514 error Failed at the [email protected] install script 'node-gyp rebuild'.
514 error This is most likely a problem with the openzwave package,
514 error not with npm itself.
514 error Tell the author that this fails on your system:
514 error     node-gyp rebuild
514 error You can get their info via:
514 error     npm owner ls openzwave
514 error There is likely additional logging output above.
515 verbose exit [ 1, true ]
516 verbose unbuild node_modules/openzwave
517 info preuninstall [email protected]
518 info uninstall [email protected]
519 verbose unbuild rmStuff [email protected] from /home/pi/homeautomation/node_modules
520 info postuninstall [email protected]
521 silly gentlyRm /home/pi/homeautomation/node_modules/openzwave is being purged from base /home/pi/homeautomation
522 verbose gentlyRm don't care about contents; nuking /home/pi/homeautomation/node_modules/openzwave
523 silly vacuum-fs purging /home/pi/homeautomation/node_modules/openzwave
524 silly vacuum-fs quitting because other entries in /home/pi/homeautomation/node_modules

Changed values for Decimals

I noticed that the decimal values have a cast to Interger, then the exact value is lost here :

        case OpenZWave::ValueID::ValueType_Decimal:
        {
            float val;
            OpenZWave::Manager::Get()->GetValueAsFloat(value, &val);
            valobj->Set(String::NewSymbol("value"), Integer::New(val));
            break;
        }

I had to remove those lines, and add a new line above the String case to use the same procedure a keep the exact value (in string) :

        case OpenZWave::ValueID::ValueType_Decimal:
        case OpenZWave::ValueID::ValueType_String:
        {
            std::string val;
            OpenZWave::Manager::Get()->GetValueAsString(value, &val);
            valobj->Set(String::NewSymbol("value"), String::New(val.c_str()));
            break;
        }

I'm not an expert, then maybe there's a better way to keep the Float type too ?
What do you think, folks ?

Proposed ISC license is invalid / not compatible with GPLv3.. right?

Since your code heavily hooks into OpenZWave which is licensed under GPLv3, if I understand the GPLv3 correctly don't you have to license Your code under GPLv3 as well (if you wish to distribute the program or code as you are doing here)? Perhaps if OpenZWave had been licensed under LGPL then you could license your software and code under any license like the ISC.

I would much prefer the ISC license for this library (node-openzwave), but I'm pretty sure you can't just pick your own license when you use a GPL'd piece of software like this (hence the movement toward BSD, MIT, and ISC licenses for many open source projects, because they are less restrictive and don't raise problems like this).

What are your thoughts? Or anyone's?

feature request: support for binary and multi-level sensors

at present, openwave.cc supports

COMMAND_CLASS_SWITCH_{BINARY,MULTILEVEL}

i would like to add

GENERIC_TYPE_SENSOR_BINARY / SPECIFIC_TYPE_ROUTING_SENSOR_BINARY

for

COMMAND_CLASS_BATTERY
COMAND_CLASS_SENSOR_BINARY
COMMAND_CLASS_SENSORMULTILEVEL

this will allow support for a range of sensors, viz. the aeotec multisensor, door and window sensors, and water detectors. i suspect that the battery level is important.

do you want me to try my hand at this? here are the devices i have that fit this profile:

Aeotec Multisensor
http://products.z-wavealliance.org/products/710
http://aeotec.com/z-wave-sensor/47-multisensor-manual.html

Aeon Labs Z-Wave Door and Window Sensor
http://aeotec.com/z-wave-door-window-sensor/644-door-window-sensor-instructions.html
http://products.z-wavealliance.org/products/701

Everspring Flood Sensor / UtiliTech Wireless Water Leak Detector
http://products.z-wavealliance.org/products/585
fortrezhttp://www.everspring.com/ST812.aspx

FortrezZ Wireless Water & Freeze Alarm
http://www.fortrezz.com/index.php/products/water-sensors/itemlist/category/16-water-freeze-sensor-led
http://products.z-wavealliance.org/products/317

thanks!

Connections property deprecated

I am using Node version 0.10.35 on OSX.

This works great to discover and event as things change.

However, when I attempt to send a command using switchOn, or setValue methods, I receive the following console response:

"connections property is deprecated. Use getConnections() method"

Any suggestions?

Debian npm install failure

have nodejs-legacy installed as well.
node -v
v4.1.0

openzwave.target.mk:104: recipe for target 'Release/obj.target/openzwave/src/openzwave.o' failed
make: *** [Release/obj.target/openzwave/src/openzwave.o] Error 1
make: Leaving directory '/root/node_modules/openzwave/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/root/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.1.0-2-686-pae
gyp ERR! command "/usr/bin/nodejs" "/root/node_modules/.bin/node-gyp" "rebuild"
gyp ERR! cwd /root/node_modules/openzwave
gyp ERR! node -v v4.1.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the openzwave package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls openzwave
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 4.1.0-2-686-pae
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "openzwave"
npm ERR! cwd /root
npm ERR! node -v v4.1.0
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /root/npm-debug.log
npm ERR! not ok code 0

Multi-instance devices not working

I have a Fibaro FGS-221 (2x1,5KW in-wall switch) which is a multi-instance device. ValueID's get scanned correctly by OZW, however there's currently no way to pass the "_instance" of a ValueID to the underlying C++ library.
In order to do that we can:
-- add the instance in the list of setValue arguments:

Handle OZW::SetValue(const Arguments& args)
{
HandleScope scope;

uint8_t nodeid = args[0]->ToNumber()->Value();
uint8_t comclass = args[1]->ToNumber()->Value();
uint8_t index = args[2]->ToNumber()->Value();

*** uint8_t instance = args[3]->ToNumber()->Value(); ***

OR
--- be able to pass ValueID objects as returned by the 'value added' callback directly into openZWave, maybe through a call like "setValueID(OpenZWaveValueID, value)", perhaps?

AddNode ?

with this project you can't add device to the z-wave network , can i add this function ?

second impressions

i've been adding devices, overall it just seems to work in terms of adding and discovery. two things though:

  1. i notice that the nodeinfo parameter passed on the 'node ready' event doesn't contain a network address. i need something like that in order to uniquely identify a device (someday perhaps there are multiple zwave networks in use with one steward, who knows?) i haven't cracked open the openzwave source, is that something that's available?
  2. every time i remove the stick from my mbp, push the button, pair a device, push the button, and plug it back into the mbp again, it takes longer and longer to discover anything (including the stick). is that normal? is there a way to "reboot the stick"?

right now, i've been watching the test script run for 10m and it's found only the stick.

thanks!

query: status

hi. i'm one of the curators of @TheThingSystem -- an open source automation system that went live a few weeks ago.

several folks have asked for zwave support. my original thinking was to write a node interface to the zstick2.

can you give me a sense as to where you are in the code and what your interest might be in helping to get it "ready for prime time"?

you might also want to look at the website -- http://thethingsystem.com/

i would very much appreciate hearing your thoughts.

thanks!

/mtr

Cannot toggle my fibaro switch

Hi guys, I'm totally new to openzwave so I may be asking a silly question

here's my fibaro switch node:

node2: FIBARO System, FGS211 Switch 3kW
node2: name="", type="Binary Power Switch", location=""
node2: class 32
node2: class 37
node2:   Switch=false
node2: class 39
node2:   Switch All=240
node2: class 112
node2:   1. Enable/Disable ALL ON/OFF=-32096
node2:   3. Enable/Disable OFF-delay=-32096
node2:   4. Relay: OFF-delay time (10ms)=20
node2:   6. Separation of association sending (key 1)=-32236
node2:   13. Inputs behaviour=-32236
node2:   14. Inputs Button/Switch configuration=-32236
node2:   15. Dimmer/Roller shutter control=-32236
node2:   16. Saving state before power faillure=-32236
node2:   30. Relay: Response to General Alarm=-32236
node2:   31. Relay: Response to Water Flood Alarm=-32236
node2:   32. Relay: Response to Smoke, CO, CO2 Alarm=3
node2:   33. Relay: Response to Temperature Alarm=1
node2:   39. ALARM FLASHING alarm time=88
node2: class 115
node2:   Powerlevel=240
node2:   Timeout=0
node2:   Set Powerlevel=undefined
node2:   Test Node=0
node2:   Test Powerlevel=0
node2:   Frame Count=120
node2:   Test=undefined
node2:   Report=undefined
node2:   Test Status=120
node2:   Acked Frames=48
node2: class 134
node2:   Library Version=3
node2:   Protocol Version=3.42
node2:   Application Version=2.01

I'm trying to turn it on ... so I did

var OZW = require('openzwave');
undefined
var zwave = new OZW('/dev/ttyUSB0');
undefined
zwave.connect();
undefined
zwave.switchOn(2);
TypeError: Illegal invocation
at repl:1:7
at REPLServer.eval (repl.js:80:21)
at repl.js:190:20
at REPLServer.eval (repl.js:87:5)
at Interface. (repl.js:182:12)
at Interface.emit (events.js:67:17)
at Interface._onLine (readline.js:162:10)
at Interface._line (readline.js:426:8)
at Interface._ttyWrite (readline.js:603:14)
at ReadStream. (readline.js:82:12)

any idea what's wrong ?

thanks !

Sensors not working

Doesn't seem to work with or support binary (motion) sensors - perhaps related to #33. Works in current C++ API/lib. I'll look into it if I have time, but since node.js isn't a requirement for this project, might just stick with C++.

How to use setValue?

Sorry if this is a beginner question, but I could not find any information about it sadly.

I am trying to change the value of a Thermostat that i have connected, but I don't know who to do it. I tried a lot of combinations, but i can't seems to get it right.

I get this from the test script and specified me into the class that is want to change:

node3: node awake
node3: Danfoss, Z Thermostat
node3: name="", type="Setpoint Thermostat", location=""
node3: class 32
node3: class 67
node3:   Heating 1=21
node3: class 70
node3:   Monday=0
node3:   Tuesday=0
node3:   Wednesday=0
node3:   Thursday=1
node3:   Friday=0
node3:   Saturday=0
node3:   Sunday=0
node3:   Override State=0
node3:   Override Setback=127
node3: class 117
node3:   Protection=0
node3: class 128
node3:   Battery Level=100
node3: class 129
node3:   Day=0
node3:   Hour=1
node3:   Minute=32
node3: class 132
node3:   Wake-up Interval=300
node3:   Minimum Wake-up Interval=60
node3:   Maximum Wake-up Interval=900
node3:   Default Wake-up Interval=300
node3:   Wake-up Interval Step=60
node3: class 134
node3:   Library Version=6
node3:   Protocol Version=2.67
node3:   Application Version=2.51

This is the exact object of class 67

{ '1':
   { type: 'decimal',
     genre: 'user',
     instance: 1,
     index: 1,
     label: 'Heating 1',
     units: 'C',
     read_only: false,
     write_only: false,
     min: 0,
     max: 0,
     value: 21 } }

I have tried running this code:

zwave.setValue('node3', '67', '1', '24')
zwave.setValue('node3', '67', '1', 24)

in both the node ready event and driver ready.

<CommandClass id="67" name="COMMAND_CLASS_THERMOSTAT_SETPOINT" version="1" request_flags="4" override_precision="2" base="0">
                <Instance index="1" />
                <Value type="decimal" genre="user" instance="1" index="1" label="Heating 1" units="C" read_only="false" write_only="false" verify_changes="true" poll_intensity="0" min="0" max="0" value="21.00" />
            </CommandClass>

Rest of it https://gist.github.com/kevinsimper/eac358a6bbc8b3db8291

Thanks for any advice! Much appreciated!

disablePoll in src

Hello,

I see that your "openzwave.cc" file in the src folder have one line that seems to be weird.
Indeed, the 719 line is :

NODE_SET_PROTOTYPE_METHOD(t, "disablePoll", OZW::EnablePoll);

But some lines before there is a function called :
Handle<Value> OZW::DisablePoll(const Arguments& args)
And you do not use this function.

Is it normal ?

Thank's,
ALT

Switch slowing down

I'm using a rasberry pi with a razberry controller. I've disabled the original software that was install with the razberry. I've gotten the test script to communicate with the controller.

Here's the problem. I'm using a switch that also is a meter. Once the switch is turned on I'm getting lots of 'value change' events thrown by commandClass 50(decimal) which is the meter class.

Each time I toggle the switch it takes a little longer to effect the real world switch.

on - instant on
off - near instant off
on - 1 sec delay
off - 2 sec delay
etc...

thinking that there is a problem with the callbacks queueing up too much...

I modified openzwave.cc to not call MakeCallback for the 'value change' event when the CommandClass == 50.

And still the delay occurs.

I'm not looking for you to solve this issue...but rather help direct my next efforts at debugging.

Thanks.

feature request: report magic numbers in addition to text

compare:

node2: Aeon Labs, Smart Energy Switch
node2: name="", type="Binary Power Switch", location=""

v.

node5: Cooper, Unknown: type=4449, id=0003
node5: name="Plug-in Dimmer", type="Multilevel Power Switch", location=""

this may seem kind of odd, but i'd really like to get the type & id that are used by openzwave to construct the product field

would you consider having the 'node ready' event also return values from

    string GetNodeManufacturerId( uint32 const _homeId, uint8 const _nodeId );
    string GetNodeProductId( uint32 const _homeId, uint8 const _nodeId );
    string GetNodeProductType( uint32 const _homeId, uint8 const _nodeId );

thanks!

/mtr

'Assertion failed' on OS X

I have successfully got everything working on a Raspberry Pi but for development I am trying to get this working on OS X 10.8.5 with my Aeon Z-Stick S2.
The example mac application within open-zwave works as expected and outputs state changes of devices, but when running your example with all logging enabled I get an assertion failed error.

Assertion failed: (Type_Notification==m_type), function GetNotification, file ../deps/open-zwave/cpp/src/Notification.h, line 165.
[1]    7624 abort      node main.js
...
var zwave = new OZW('/dev/cu.SLAB_USBtoUART', {
        logging: true,           // enable logging to OZW_Log.txt
        consoleoutput: true,     // copy logging to the console
        saveconfig: true,        // write an XML network layout
        driverattempts: 3        // try this many times before giving up
});
...

Not too sure how to debug this further.

Ubuntu & Mac npm install error

Hi There,
Thanks for this package.
This looks like its going to be the cure to most of my problems!

I'm just having some issues installing on Ubuntu.
I have included the log file in this pastebin
Its the result from this command
sudo npm install -g openzwave > log.txt 2>&1 &
npm 3.9.5 node 6.2.2

And on Mac as well.
Here is the pastebin from my Mac.
npm 3.10.2 node v6.2.2

I have forked and tried converting the ozwcp into a json api I can poll.
But the all poll functionality is not working in their CP.

I'm trying to install your package to build an RESTful API over OpenZWave.

Thanks!

[Raspbian Wheezy] Error building libopenzwave

Hi,

very interesting project, I´m looking forward to play with it, but unfortunately
it seems like I´m not able to install it on RPi.

I personally believe that it has something to do with using the latest & greatest Node Version v0.11.9, because I was able to install it without any errors using a friends RPi that runs the latest stable Node version from the v0.10.x branch.

my knowledge of C++ is quite limited & I was hoping that we might be able to solve this issue together, also because I believe that it will arise with the next stable Node release (if it is really connected to the node version).

Thanks in advance & keep up the great work.

Cheers
Sebastian

Stack trace snippet:

../deps/open-zwave/cpp/hidapi/linux/hid.c: In function ‘get_device_string’:
../deps/open-zwave/cpp/hidapi/linux/hid.c:308:6: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
  AR(target) Release/obj.target/deps/open-zwave/libopenzwave.a
  COPY Release/libopenzwave.a
  CXX(target) Release/obj.target/openzwave/src/openzwave.o
../src/openzwave.cc:36:24: error: expected class-name before ‘{’ token
../src/openzwave.cc:37:33: error: ‘Arguments’ does not name a type
../src/openzwave.cc:37:44: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:38:37: error: ‘Arguments’ does not name a type
../src/openzwave.cc:38:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:39:40: error: ‘Arguments’ does not name a type
../src/openzwave.cc:39:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:40:38: error: ‘Arguments’ does not name a type
../src/openzwave.cc:40:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:41:38: error: ‘Arguments’ does not name a type
../src/openzwave.cc:41:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:42:41: error: ‘Arguments’ does not name a type
../src/openzwave.cc:42:52: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:43:37: error: ‘Arguments’ does not name a type
../src/openzwave.cc:43:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:44:38: error: ‘Arguments’ does not name a type
../src/openzwave.cc:44:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:45:39: error: ‘Arguments’ does not name a type
../src/openzwave.cc:45:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:46:40: error: ‘Arguments’ does not name a type
../src/openzwave.cc:46:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:47:41: error: ‘Arguments’ does not name a type
../src/openzwave.cc:47:52: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:48:39: error: ‘Arguments’ does not name a type
../src/openzwave.cc:48:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:49:39: error: ‘Arguments’ does not name a type
../src/openzwave.cc:49:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:54:1: error: ‘uv_async_t’ does not name a type
../src/openzwave.cc: In function ‘void {anonymous}::cb(const OpenZWave::Notification*, void*)’:
../src/openzwave.cc:149:17: error: ‘async’ was not declared in this scope
../src/openzwave.cc:149:22: error: ‘uv_async_send’ was not declared in this scope
../src/openzwave.cc: At global scope:
../src/openzwave.cc:155:23: error: variable or field ‘async_cb_handler’ declared void
../src/openzwave.cc:155:23: error: ‘uv_async_t’ was not declared in this scope
../src/openzwave.cc:155:35: error: ‘handle’ was not declared in this scope
../src/openzwave.cc:155:43: error: expected primary-expression before ‘int’
../src/openzwave.cc:728:1: error: expected ‘}’ at end of input
../src/openzwave.cc:84:24: warning: ‘{anonymous}::znodes_mutex’ defined but not used [-Wunused-variable]
../src/openzwave.cc:87:17: warning: ‘{anonymous}::homeid’ defined but not used [-Wunused-variable]
make: *** [Release/obj.target/openzwave/src/openzwave.o] Error 1
make: Leaving directory `/home/pi/playground/node_modules/openzwave/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/opt/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:101:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:827:12)
gyp ERR! System Linux 3.6.11+
gyp ERR! command "node" "/opt/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/playground/node_modules/openzwave
gyp ERR! node -v v0.11.9
gyp ERR! node-gyp -v v0.12.1
gyp ERR! not ok
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! System Linux 3.6.11+

Getting `Unhandled notification: 4` and `unsupported value type: 0x2` in the log

Currently using the latest 0.0.27 version and I have to say it is working great - a big thank you to @jperkin and his work.

Done some testing with some power switches and dimmers from GE and everything worked with no hiccups.

Today I started testing the Aeon Labs Smart Energy Switch which aside from working as an on/off switch also reports information on power consumption.

Once I added the device I started getting multiple occurrences of the following:

  • unsupported value type: 0x2
  • Unhandled notification: 4

I though it would be beneficial if I provided some details on this hoping that it can be addressed.

I created a gist that can be found here and contains:

  • the output from the test.js script
  • the full OZW log
  • the zwcfg xml file

Please let me know if I can provide anything else that can help resolve this issue.

Node JS 0.12

Hi,
are there any plans to update this to nodejs 0.12 ?

best regards

Certain Z wave devices fail with value validation

Some Z-Wave devices (including the Aeon Labs 4-in-1 Multisensor, but there may well be others) do not update properly when the open z wave option to verify value updates is set to true. From my research it is unclear whether this is a bug in open z wave or the actual devices, but for these devices to work properly with openzwave, SetChangeVerified must be set to false. Since for many devices verifying changes is a desirable behavior, I propose adding an option to verify changes globally as part of the node module config.

Here's an example from a log file showing the problem:

2014-10-21 08:59:40.811
2014-10-21 08:59:40.811 Node004, Response RTT 30 Average Response RTT 29
2014-10-21 08:59:40.811 Node004, Received SensorMultiLevel report from node 4, instance 1, Temperature: value=1627389.952F
2014-10-21 08:59:40.811 Node004, Refreshed Value: old value=72.2, new value=1627389.952, type=string
2014-10-21 08:59:40.811 Node004, Changes to this value are verified
2014-10-21 08:59:40.811 Node004, Changed value (changed again)--rechecking
2014-10-21 08:59:40.811 mgr,     Refreshing node 4: COMMAND_CLASS_SENSOR_MULTILEVEL index = 1 instance = 1 (to confirm a reported change)
2014-10-21 08:59:40.811 Node004, Queuing (Send) SensorMultilevelCmd_Get (Node=4): 0x01, 0x0a, 0x00, 0x13, 0x04, 0x03, 0x31, 0x04, 0x01, 0x25, 0xae, 0x5e
2014-10-21 08:59:40.811 Node004, Queuing (Send) SensorMultilevelCmd_Get (Node=4): 0x01, 0x0a, 0x00, 0x13, 0x04, 0x03, 0x31, 0x04, 0x03, 0x25, 0xaf, 0x5d
2014-10-21 08:59:40.811 Node004, Queuing (Send) SensorMultilevelCmd_Get (Node=4): 0x01, 0x0a, 0x00, 0x13, 0x04, 0x03, 0x31, 0x04, 0x05, 0x25, 0xb0, 0x44
2014-10-21 08:59:40.811 Node004,   Expected reply and command class was received
2014-10-21 08:59:40.811 Node004,   Message transaction complete
2014-10-21 08:59:40.811
2014-10-21 08:59:40.811 Node004, Removing current message
2014-10-21 08:59:40.901
2014-10-21 08:59:40.901 Node004, Response RTT 30 Average Response RTT 29
2014-10-21 08:59:40.901 Node004, Received SensorMultiLevel report from node 4, instance 1, Temperature: value=0.000F
2014-10-21 08:59:40.901 Node004, Refreshed Value: old value=72.2, new value=0.000, type=string
2014-10-21 08:59:40.901 Node004, Changes to this value are verified
2014-10-21 08:59:40.901 Node004, Changed value (changed again)--rechecking
2014-10-21 08:59:40.901 mgr,     Refreshing node 4: COMMAND_CLASS_SENSOR_MULTILEVEL index = 1 instance = 1 (to confirm a reported change)
2014-10-21 08:59:40.901 Node004, Queuing (Send) SensorMultilevelCmd_Get (Node=4): 0x01, 0x0a, 0x00, 0x13, 0x04, 0x03, 0x31, 0x04, 0x01, 0x25, 0xb1, 0x41
2014-10-21 08:59:40.901 Node004, Queuing (Send) SensorMultilevelCmd_Get (Node=4): 0x01, 0x0a, 0x00, 0x13, 0x04, 0x03, 0x31, 0x04, 0x03, 0x25, 0xb2, 0x40
2014-10-21 08:59:40.901 Node004, Queuing (Send) SensorMultilevelCmd_Get (Node=4): 0x01, 0x0a, 0x00, 0x13, 0x04, 0x03, 0x31, 0x04, 0x05, 0x25, 0xb3, 0x47
2014-10-21 08:59:40.901 Node004,   Expected reply and command class was received
2014-10-21 08:59:40.901 Node004,   Message transaction complete
2014-10-21 08:59:40.901

Basically, for this particular sensor the initial read of the temperature is correct, but all of these attempts initiated by the controller to verify that value fail, and this generates A never-ending stream of traffic to attempt to verify the value.

PR to come....

Install fails on Pi2/Razberry

I seem to get the following errors installing on a raspberry pi2 with raspian and razberry z wave controller.

Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux

../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp: In member function ‘std::string OpenZWave::CommandClass::ExtractValue(const uint8_, uint8_, uint8_, uint8) const’:
../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp:411:50: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat]
../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp:411:50: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat]
../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp:419:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat]
../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp:419:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat]
../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp: In member function ‘virtual void OpenZWave::CommandClass::ReadXML(const TiXmlElement_)’:
../deps/open-zwave/cpp/src/command_classes/CommandClass.cpp:185:6: warning: ‘instance’ may be used uninitialized in this function [-Wuninitialized]

../deps/open-zwave/cpp/src/platform/unix/EventImpl.cpp: In member function ‘void OpenZWave::EventImpl::Set()’:
../deps/open-zwave/cpp/src/platform/unix/EventImpl.cpp:92:81: warning: format ‘%s’ expects argument of type ‘char*’, but argument 4 has type ‘int’ [-Wformat]
CXX(target) Release/obj.target/libopenzwave/deps/open-zwave/cpp/src/platform/unix/FileOpsImpl.o
CXX(target) Release/obj.target/libopenzwave/deps/open-zwave/cpp/src/platform/unix/LogImpl.o
../deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp: In member function ‘std::string OpenZWave::LogImpl::GetTimeStampString()’:
../deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp:251:60: warning: format ‘%d’ expects argument of type ‘int’, but argument 10 has type ‘long int’ [-Wformat]
../deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp:251:60: warning: format ‘%d’ expects argument of type ‘int’, but argument 10 has type ‘long int’ [-Wformat]
../deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp: In member function ‘std::string OpenZWave::LogImpl::GetThreadId()’:
../deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp:291:54: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘pthread_t {aka long unsigned int}’ [-Wformat]
../deps/open-zwave/cpp/src/platform/unix/LogImpl.cpp:291:54: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘pthread_t {aka long unsigned int}’ [-Wformat]

../deps/open-zwave/cpp/hidapi/linux/hid.c: In function ‘get_device_string’:
../deps/open-zwave/cpp/hidapi/linux/hid.c:308:6: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
AR(target) Release/obj.target/deps/open-zwave/libopenzwave.a
COPY Release/libopenzwave.a
CXX(target) Release/obj.target/openzwave/src/openzwave.o
../src/openzwave.cc:36:24: error: expected class-name before ‘{’ token
../src/openzwave.cc:37:33: error: ‘Arguments’ does not name a type
../src/openzwave.cc:37:44: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:38:37: error: ‘Arguments’ does not name a type
../src/openzwave.cc:38:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:39:40: error: ‘Arguments’ does not name a type
../src/openzwave.cc:39:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:40:38: error: ‘Arguments’ does not name a type
../src/openzwave.cc:40:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:41:38: error: ‘Arguments’ does not name a type
../src/openzwave.cc:41:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:42:41: error: ‘Arguments’ does not name a type
../src/openzwave.cc:42:52: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:43:37: error: ‘Arguments’ does not name a type
../src/openzwave.cc:43:48: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:44:38: error: ‘Arguments’ does not name a type
../src/openzwave.cc:44:49: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:45:39: error: ‘Arguments’ does not name a type
../src/openzwave.cc:45:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:46:40: error: ‘Arguments’ does not name a type
../src/openzwave.cc:46:51: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:47:41: error: ‘Arguments’ does not name a type
../src/openzwave.cc:47:52: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:48:39: error: ‘Arguments’ does not name a type
../src/openzwave.cc:48:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:49:39: error: ‘Arguments’ does not name a type
../src/openzwave.cc:49:50: error: ISO C++ forbids declaration of ‘args’ with no type [-fpermissive]
../src/openzwave.cc:54:1: error: ‘uv_async_t’ does not name a type
../src/openzwave.cc: In function ‘void {anonymous}::cb(const OpenZWave::Notification_, void_)’:
../src/openzwave.cc:149:17: error: ‘async’ was not declared in this scope
../src/openzwave.cc:149:22: error: ‘uv_async_send’ was not declared in this scope
../src/openzwave.cc: At global scope:
../src/openzwave.cc:155:23: error: variable or field ‘async_cb_handler’ declared void
../src/openzwave.cc:155:23: error: ‘uv_async_t’ was not declared in this scope
../src/openzwave.cc:155:35: error: ‘handle’ was not declared in this scope
../src/openzwave.cc:155:43: error: expected primary-expression before ‘int’
../src/openzwave.cc:728:1: error: expected ‘}’ at end of input
../src/openzwave.cc:84:24: warning: ‘{anonymous}::znodes_mutex’ defined but not used [-Wunused-variable]
../src/openzwave.cc:87:17: warning: ‘{anonymous}::homeid’ defined but not used [-Wunused-variable]

openzwave.target.mk:98: recipe for target 'Release/obj.target/openzwave/src/openzwave.o' failed
make: *** [Release/obj.target/openzwave/src/openzwave.o] Error 1
make: Leaving directory '/home/peter/node_modules/openzwave/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack at ChildProcess.emit (events.js:110:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
gyp ERR! System Linux 3.18.7-v7+
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/peter/node_modules/openzwave
gyp ERR! node -v v0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok
npm ERR! Linux 3.18.7-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "openzwave"
npm ERR! node v0.12.0
npm ERR! npm v2.5.1
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the openzwave package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls openzwave
npm ERR! There is likely additional logging output above.

Unable to build on Ubuntu 10.04

Building the module fails on Ubuntu 10.04.
It looks like it's failed to include the udev headers or something, or the version of the udev library is incompatible?

../deps/open-zwave/cpp/hidapi/linux/hid.c:384: warning: implicit declaration of function ‘udev_list_entry_foreach’
../deps/open-zwave/cpp/hidapi/linux/hid.c:384: error: expected ‘;’ before ‘{’ token
../deps/open-zwave/cpp/hidapi/linux/hid.c:366: warning: unused variable ‘prev_dev’
../deps/open-zwave/cpp/hidapi/linux/hid.c:365: warning: unused variable ‘cur_dev’
make: *** [Release/obj.target/libopenzwave/deps/open-zwave/cpp/hidapi/linux/hid.o] Error 1
make: Leaving directory `/home/glenn/build/nodejs/node-v0.10.24/node_modules/openzwave/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Linux 2.6.32-54-server
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/glenn/build/nodejs/node-v0.10.24/node_modules/openzwave
gyp ERR! node -v v0.10.24
gyp ERR! node-gyp -v v0.12.1
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the openzwave package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild

require openzwave

Hello,
I can't get your example file working.
I require the openzwave file:
var OpenZWave = require('node_modules/openzwave/build/Release/openzwave');

I run it:
node test.js

And i get:

module.js:356
Module._extensions[extension](this, filename);
^
Error: node_modules/openzwave/build/Release/openzwave.node: undefined symbol: udev_new
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/home/edouard/Desktop/test.js:5:17)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)

What am i doing wrong?
Thx.
eo

Am i loading the wrong openzwave file?

Failed to start driver

I'm attempting to get a new board up and running, and be able to use openzwave on it. I'm using the Aeon Labs z-stick, and it works as expected on my Raspberry Pi using the SD card image from The Thing System.

However, when I try to run the test.js sample provided I get "failed to start driver" - since it currently works on the RPi, I'm guessing it's a dependency issue. Any chance you have a list of deps/reqs that I can use to make sure I have what I need to get it working on the new board? Thanks!

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.