valashko / xaapi

Java API for interacting with Aqara-compatible devices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XAAPI

Java API for interacting with Aqara-compatible devices.

The ones which connect to a gateway through Zigbee:

  • Xiaomi Door and Window Sensor
  • Xiaomi Button
  • Xiaomi Plug (Socket)
  • Xiaomi Magic Cube
  • Xiaomi Motion Sensor

Built-in into the gateway:

  • Xiaomi Gateway Light
  • Xiaomi Gateway Illumination Sensor

Examples

Discover

XiaomiGateway gateway = XiaomiGateway.discover(); // works only for single gateway at the moment

Bind manually

XiaomiGateway gateway = new XiaomiGateway("192.168.1.105"); // works for multiple gateways

Subscribe and receive updates

IInteractiveDevice.SubscriptionToken illuminationChangeSubscriptionToken =
    gateway.getBuiltinIlluminationSensor().subscribeForIlluminationChange((Integer value) -> System.out.println("Illumination changed to: " + value));

String buttonSid = "158d0001232e95";
IInteractiveDevice.SubscriptionToken buttonActionsSubscriptionToken =
    gateway.getDevice(buttonSid).asXiaomiSwitchButton().subscribeForActions((String action) -> System.out.println("Button: " + action));

ExecutorService threadPool = Executors.newFixedThreadPool(1);
gateway.startReceivingUpdates(threadPool);
threadPool.awaitTermination(60, TimeUnit.SECONDS); // run for 60 seconds

Unsubscribe

// cancelling subscription is optional
gateway.getDevice(buttonSid).asXiaomiSwitchButton().unsubscribeForActions(buttonActionsSubscriptionToken);

About

Java API for interacting with Aqara-compatible devices


Languages

Language:Java 100.0%