package com.beowulfe.hap.impl.characteristics.outlet;
import java.util.concurrent.CompletableFuture;
import com.beowulfe.hap.HomekitCharacteristicChangeCallback;
import com.beowulfe.hap.accessories.Outlet;
import com.beowulfe.hap.characteristics.BooleanCharacteristic;
import com.beowulfe.hap.characteristics.EventableCharacteristic;
public class OutletInUseCharacteristic extends BooleanCharacteristic implements EventableCharacteristic {
private final Outlet outlet;
public OutletInUseCharacteristic(Outlet outlet) {
super("00000026-0000-1000-8000-0026BB765291", false, true, "The outlet is in use");
this.outlet = outlet;
}
@Override
protected void setValue(Boolean value) throws Exception {
//Read Only
}
@Override
protected CompletableFuture<Boolean> getValue() {
return outlet.getOutletInUse();
}
@Override
public void subscribe(HomekitCharacteristicChangeCallback callback) {
outlet.subscribeOutletInUse(callback);
}
@Override
public void unsubscribe() {
outlet.unsubscribeOutletInUse();
}
}