Crate rzw[−][src]
Rusty Z-Wave
The rzw
crate provides a native functionality to control a Z-Wave network over a USB Z-Wave dongle. It's completely written in Rust to ensure safety and performance.
Compatibility
The rzw
crate depends on the serial create, which is compatible with Windows and any Unix operating system that implements the termios API. The following platforms are confirmed to be compatible:
- Linux (x86_64, armv6l)
- OS X (x86_64)
- FreeBSD (amd64)
- OpenBSD (amd64)
- Windows (x86_64)
Compiling the
rzw
crate requires Rust 1.9 or later.
Usage
Add rzw
as a dependency in Cargo.toml
:
[dependencies]
rzw = { git = "https://github.com/Roba1993/rzw" }
Use the rzw::Controller
as starting point to communicate, which communicates with the Z-Wave network.
ⓘThis example is not tested
extern crate rzw; fn main() { // Access the zwave network let mut zwave = rzw::open("/dev/tty.usbmodem1411").unwrap(); // get all node ids let nodes = zwave.nodes(); // loop over the nodes for node in nodes { // print the available command classes for each node println!("{:?}", zwave.node(node).map(|n| n.get_commands())); // set the basic value on all nodes // for binary switch this means, turn them on zwave.node(node).map(|n| n.basic_set(0xFF)).unwrap().unwrap(); } }
Modules
basic |
ZWave basic functionality - top layer |
cmds |
ZWave command classes - mid layer |
driver |
ZWave driver - bottom layer |
error |
rzw specific error types |
Functions
open |
Function to start a Z-Wave Controller |