diff --git a/README.md b/README.md index 2067cb5..3e4e13b 100644 --- a/README.md +++ b/README.md @@ -296,6 +296,14 @@ zwave.on('scan complete', function() { console.log('scan complete, hit ^C to finish.'); }); +zwave.on('node event', function(nodeid, eventid) { + console.log('node%d: node event %d', nodeid, eventid); +}); + +zwave.on('scene event', function(nodeid, sceneid) { + console.log('node%d: scene %d activated', nodeid, sceneid); +}); + zwave.connect(); process.on('SIGINT', function() { diff --git a/src/openzwave.cc b/src/openzwave.cc index 0939480..78246bf 100644 --- a/src/openzwave.cc +++ b/src/openzwave.cc @@ -402,6 +402,24 @@ void async_cb_handler(uv_async_t *handle, int status) args[2] = Integer::New(notif->notification); MakeCallback(context_obj, "emit", 3, args); break; + /* + * A node event (including scene deactivation) + */ + case OpenZWave::Notification::Type_NodeEvent: + args[0] = String::New("node event"); + args[1] = Integer::New(notif->nodeid); + args[2] = Integer::New(notif->event); + MakeCallback(context_obj, "emit", 3, args); + break; + /* + * A scene activation + */ + case OpenZWave::Notification::Type_SceneEvent: + args[0] = String::New("scene event"); + args[1] = Integer::New(notif->nodeid); + args[2] = Integer::New(notif->sceneid); + MakeCallback(context_obj, "emit", 3, args); + break; /* * Send unhandled events to stderr so we can monitor them if * necessary.