io.github.hapjava.accessories.FanAccessory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hap Show documentation
Show all versions of hap Show documentation
Homekit Accessory Protocol for Java
package io.github.hapjava.accessories;
import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
import io.github.hapjava.services.Service;
import io.github.hapjava.services.impl.FanService;
import java.util.Collection;
import java.util.Collections;
import java.util.concurrent.CompletableFuture;
/**
* A fan with mandatory characteristics.
*
* @author Andy Lintner
*/
public interface FanAccessory extends HomekitAccessory {
/**
* Mandatory: Retrieves the current active state of the fan'.
*
* @return a future that will contain the binary state
*/
CompletableFuture isActive();
/**
* Sets the active state of the fan
*
* @param state the binary state to set
* @return a future that completes when the change is made
* @throws Exception when the change cannot be made
*/
CompletableFuture setActive(boolean state) throws Exception;
/**
* Subscribes to changes in the active state of the fan.
*
* @param callback the function to call when the active state changes.
*/
void subscribeActive(HomekitCharacteristicChangeCallback callback);
/** Unsubscribes from changes in the active state of the fan. */
void unsubscribeActive();
@Override
default Collection getServices() {
return Collections.singleton(new FanService(this));
}
}