package com.beowulfe.hap.impl.characteristics.motionsensor; import com.beowulfe.hap.HomekitCharacteristicChangeCallback; import com.beowulfe.hap.accessories.MotionSensor; import com.beowulfe.hap.characteristics.BooleanCharacteristic; import com.beowulfe.hap.characteristics.EventableCharacteristic; import java.util.concurrent.CompletableFuture; public class MotionDetectedStateCharacteristic extends BooleanCharacteristic implements EventableCharacteristic { private final MotionSensor motionSensor; public MotionDetectedStateCharacteristic(MotionSensor motionSensor) { super("00000022-0000-1000-8000-0026BB765291", false, true, "Motion Detected"); this.motionSensor = motionSensor; } @Override protected CompletableFuture<Boolean> getValue() { return motionSensor.getMotionDetected(); } @Override protected void setValue(Boolean value) throws Exception { //Read Only } @Override public void subscribe(HomekitCharacteristicChangeCallback callback) { motionSensor.subscribeMotionDetected(callback); } @Override public void unsubscribe() { motionSensor.unsubscribeMotionDetected(); } }