Nonlinear Performance Magnification

    node-zway

    0.2.3 • Public • Published

    Z-Way Client

    Client library for the Z-Way Device API, allows for easy polling for changes, running commands, and events.

    Overview

    Initializing

    var zway = require('node-zway');
     
    // without password
    var deviceApi = new zway.DeviceApi('192.168.0.123');
     
    // with password
    var deviceApi = new zway.DeviceApi({ host: '192.168.0.123', user: 'admin', password: 'mypass' });

    Manually Refreshing

    deviceApi.refresh()
    .then(() => {
        console.log('Done!');
    });

    Polling

    Rather than manually refreshing for updates you can just start polling at a defined interval.

    var interval = 1000; // ms
    deviceApi.poll(interval);

    Events

    The main reason to poll is to receive events. The client uses EventEmitter2 that supports wildcard events. The event format is device_id.command_class_id.eventname.

    deviceApi.on('5.98.*', data => {
        console.log('event data:', data);
    });

    For debugging:

    deviceApi.onAny(() => {
        console.log('event data:', data);
    });

    Reading Device Data

    var device1 = deviceApi.getDevice(1, 98);
    console.log(device1.DoorLock.get('mode'));

    Running Device Commands

    var device1 = deviceApi.getDevice(1, 98);
    console.log(device1.DoorLock.lock());

    Command Class Info

    37 - SwitchBinary

    Commands:

    • activate();
    • deactivate();
    • toggle();
    • refresh();

    Queries:

    • TODO: isActivated();

    48 - SensorBinary

    Events:

    • onChange();

    Queries:

    • getItems();

    49 - SensorMultilevel

    Commands:

    • refresh();

    Events:

    • onChange();

    Queries:

    • getItems();

    98 - DoorLock

    Commands:

    • lock();
    • unlock();
    • refresh();

    Queries:

    • isLocked();

    113 - Alarm

    Events:

    • on();

    Notes

    Have also looked at using the JS API (/ZAutomation) but the authentication system for this is limited and impractical.

    TODO

    • Make it more flexible to reference everything by either command class name or ID (decimal or hex).
    • Add more command class info

    Keywords

    Install

    npm i node-zway

    DownloadsWeekly Downloads

    14

    Version

    0.2.3

    License

    MIT

    Last publish

    Collaborators

    • denwilliams