ZWave4J
ZWave4J - java wrapper for OpenZWave library.
The goal is to provide to java the same API as OpenZWave has. Besides the wrapper ZWave4J has a simple executable Main class which demonstrates how to work with ZWave4J.
Supported platforms:
- Windows: x86, amd64
- Linux: x86, amd64, arm
- OS X: x86, amd64
Usage
You can download the latest ZWave4J release from GitHub or from Maven Central, or unstable snapshot from sonatype.
To execute sample Main class, run:
java -cp zwave4j-X.jar org.zwave4j.Main "open-zwave/config" "/dev/ttyUSB0"
- First argument is path to OpenZWave configuration directory.
- Second argument is path to serial device, which Z-Wave controller is connected to, e.g.
/dev/ttyUSB0for Linux or//./COM1for Windows.
Build
Requirements
Build configuration
- Copy
example.gradle.propertiesintogradle.properties. - Edit properties in
gradle.properties:
openZWaveDir- path to OpenZWave library source directory, needed compile.openZWaveConfigDir- path to OpenZWave configuration directory, needed for OpenZWave library in runtime.zWaveControllerPort- path to serial device, which Z-Wave controller is connected to.
Build
Run ./gradlew build (gradlew build for Windows) in console. It will compile native JNI binaries and java classes, assemble jar archive and put it into build/libs directory. Native binaries for platforms supported by your host will be built. To include native binaries for other platforms into compiled jar, put native_libs directory from other ZWave4J jars in the project root directory.
After build
If you have built a library from sources, you can use several options:
- Run
./gradlew installto install library into local maven repository for using ZWave4J as a library in your other projects. - Run
./gradlew runin console. It will execute sampleMainclass. - Run
./gradlew installAppto install application with start scripts intobuild/install/zwave4j, then you can start it manually frombuild/install/zwave4j/bin:zwave4j.bat "open-zwave/config" "/dev/ttyUSB0" - Execute ZWave4J
Mainclass manually frombuild/libsdirectory:java -cp zwave4j-X.jar org.zwave4j.Main "open-zwave/config" "/dev/ttyUSB0"
Development
You can generate IntelliJ IDEA project files running ./gradlew idea task. You can use C/C++ plugin to work with native sources.