项目作者: openwebnet

项目描述 :
OpenWebNet Java client
高级语言: Java
项目地址: git://github.com/openwebnet/rx-openwebnet.git
创建时间: 2015-10-24T15:09:13Z
项目社区:https://github.com/openwebnet/rx-openwebnet

开源协议:MIT License

下载


rx-openwebnet

Build Status
Download

OpenWebNet Java client with RxJava, see also the documentation

Supported frames

  • WHO=1 Lighting Javadoc
  • WHO=2 Automation Javadoc
  • WHO=4 Heating Javadoc
  • WHO=16 SoundSystem Javadoc
  • WHO=17 Scenario Javadoc
  • WHO=18 EnergyManagement Javadoc
  • a single generic frame/message
  • a list of generic frames/messages

Setup

Add the dependency to build.gradle

  1. repositories {
  2. jcenter()
  3. }
  4. dependencies {
  5. compile 'com.github.openwebnet:rx-openwebnet:2.1.1'
  6. }

Examples

  1. // connects to the default gateway
  2. OpenWebNet simpleClient = OpenWebNet.newClient(OpenWebNet.defaultGateway("192.168.1.41"));
  3. // requests status light 21
  4. simpleClient
  5. .send(Lighting.requestStatus("21"))
  6. .map(Lighting.handleStatus(() -> System.out.println("ON"), () -> System.out.println("OFF")))
  7. .subscribe(System.out::println);
  8. // connects to the gateway with domain and password
  9. OpenWebNet client = OpenWebNet.newClient(OpenWebNet.gateway("vpn.home.it", 20000, "12345"));
  10. // turns light 21 on
  11. client
  12. .send(Lighting.requestTurnOn("21"))
  13. .map(Lighting.handleResponse(() -> System.out.println("success"), () -> System.out.println("fail")))
  14. .subscribe(System.out::println);
  1. // sends a list of generic frames/messages with a custom thread pool
  2. ExecutorService executor = Executors.newSingleThreadExecutor();
  3. OpenWebNet
  4. .newClient(OpenWebNet.gateway("192.168.1.41", 20000))
  5. .send(Arrays.asList(() -> "*#1*21##", () -> "*#1*22##"))
  6. .subscribeOn(Schedulers.from(executor))
  7. .doOnError(throwable -> System.out.println("ERROR " + throwable))
  8. .doAfterTerminate(() -> executor.shutdown())
  9. .subscribe(System.out::println, throwable -> {});
  10. // turns light 21 on with a custom scheduler on Android
  11. OpenWebNet
  12. .newClient(OpenWebNet.gateway("10.0.2.2", 20000))
  13. .send(Lighting.requestTurnOff("21"))
  14. .subscribeOn(Schedulers.io())
  15. .observeOn(AndroidSchedulers.mainThread())
  16. .map(Lighting.handleResponse(() -> System.out.println("success"), () -> System.out.println("fail")))
  17. .subscribe(System.out::println, throwable -> {});

Development

  1. export JAVA_HOME='/usr/lib/jvm/java-8-oracle'
  2. ./gradlew clean build
  3. # verbose tests
  4. ./gradlew :lib:test --debug
  5. # run example
  6. ./gradlew runOpenWebNetExample
  7. # update javadocs
  8. ./gradlew copyJavaDoc
  9. # publish javadoc
  10. git subtree push --prefix javadoc origin gh-pages
  11. # publish on bintray
  12. ./gradlew bintrayUpload
  13. # list tasks
  14. ./gradlew tasks
  15. # upgrade gradle version
  16. ./gradlew wrapper --gradle-version=4.6
  17. # verify jar content
  18. unzip lib/build/libs/lib-2.1.1.jar -d /tmp/openwebnet-jar

Command Line Interface

  1. # build uber jar
  2. ./gradlew shadowJar
  3. # show usage
  4. java -jar lib/build/libs/openwebnet-2.1.1.jar
  5. # example simple
  6. java -jar lib/build/libs/openwebnet-2.1.1.jar \
  7. -h 192.168.1.41 \
  8. -f *#1*21##
  9. # example complete
  10. java -jar lib/build/libs/openwebnet-2.1.1.jar \
  11. --host "192.168.1.41" \
  12. --port 8080 \
  13. --password "12345" \
  14. --frame "*#1*21##"