npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cdif-openzwave

v0.0.8

Published

CDIF framework open zwave module

Downloads

10

Readme

Notes to CDIF's open zwave implementation

This module relies on openzwave-shared, please refer to its prerequisites on how to install it on the system.

The concept of Z-Wave's command class and values are similar to other open standards which categorized them into "services", "characteristics" or "state variables". So in this module's design we decide to map them accordingly. E.g. the concept of command class would be equal to service, and value equal to state variable which is managed by the service. We use this to create the device model for Z-Wave based devices. After connected to the Z-Wave network, this module would listen to the Z-Wave library events and selectively emit device event to CDIF.

Because of Z-Wave's low power design, commands are not guaranteed to always successfully deliver to device, for example battery powered devices may stay in sleep state for a long time and won't respond to any action or query command. In addition, in Z-Wave there is no guarantee of something similar to the "service discovery" process in other protocols, where controller can issue commands to fully explore a device's capabilities at one time. For battery powered devices, it could take hours to report its full capabilities. Due to these facts, this implementation would progressively build CDIF's common device model whenever a new value or node info is reported through 'value add', or 'node ready' event. This means a discovered Z-Wave device through CDIF's REST interface may automatically refresh its device model from time to time.

Since there is no reliable way to query a Z-Wave device for its latest status, this implementation would return CDIF's cached status value to the client upon a read action call. Because the underlying zwave.setValue() library call doesn't return error, value write action calls would assume always success and update CDIF's cached value status, which could also be updated by 'value change' event.

Due to device availability, for now this module is only tested with below products:

Limitations

At this time below Z-Wave features are not supported:

  • Association group and scene control (maybe these features could be fulfilled by the rules engine built on top of CDIF)
  • Z-Wave global operations such as device polling, network healing, controller reset etc. (maybe they could be wrapped as controller's service)
  • Security API

See following links for more details:

Common device interconnect framework

Open Z-Wave library