getServices() {
- return Collections.singleton(new FaucetService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/FilterMaintenanceAccessory.java b/src/main/java/io/github/hapjava/accessories/FilterMaintenanceAccessory.java
deleted file mode 100644
index 2ebee5495..000000000
--- a/src/main/java/io/github/hapjava/accessories/FilterMaintenanceAccessory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.filtermaintenance.FilterChangeIndicationEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.FilterMaintenanceService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A Filter maintenance with mandatory characteristics.
- *
- * The HomeKit app doesn't support a separate FilterMaintenance, but as a linked service to
- * AirPurifier.
- */
-public interface FilterMaintenanceAccessory extends HomekitAccessory {
-
- /**
- * The filter change indictaion. It's either yes or no.
- *
- * @return FilterChangeIndicationEnum
- */
- CompletableFuture getFilterChangeIndication();
-
- /**
- * Subscribes to changes in the filter change indication.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeFilterChangeIndication(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the filter change indication. */
- void unsubscribeFilterChangeIndication();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new FilterMaintenanceService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/GarageDoorOpenerAccessory.java b/src/main/java/io/github/hapjava/accessories/GarageDoorOpenerAccessory.java
deleted file mode 100644
index 37bd8a063..000000000
--- a/src/main/java/io/github/hapjava/accessories/GarageDoorOpenerAccessory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.garagedoor.CurrentDoorStateEnum;
-import io.github.hapjava.characteristics.impl.garagedoor.TargetDoorStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.GarageDoorOpenerService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * garage door opener accessory with control and status of a garage door
- *
- * @author Andy Lintner
- */
-public interface GarageDoorOpenerAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current state of the door
- *
- * @return a future which will contain the door's state
- */
- CompletableFuture getCurrentDoorState();
-
- /**
- * Retrieves the targeted state of the door
- *
- * @return a future which will contain the door's targeted state
- */
- CompletableFuture getTargetDoorState();
-
- /**
- * Retrieves an indicator of an obstruction detected by the door
- *
- * @return a future which will contain the indicator
- */
- CompletableFuture getObstructionDetected();
-
- /**
- * Sets the targeted state of the door.
- *
- * @param state the targeted state
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetDoorState(TargetDoorStateEnum state) throws Exception;
-
- /**
- * Subscribes to changes in the door's state
- *
- * @param callback the function to call when the state changes
- */
- void subscribeCurrentDoorState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the door's targeted state
- *
- * @param callback the function to call when the targeted state changes
- */
- void subscribeTargetDoorState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the obstruction detected indicator
- *
- * @param callback the function to call when the indicator chnages
- */
- void subscribeObstructionDetected(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the door's state */
- void unsubscribeCurrentDoorState();
-
- /** Unsubscribes from changes in the door's targeted state */
- void unsubscribeTargetDoorState();
-
- /** Unsubscribes from changes in the door's obstruction detected indicator */
- void unsubscribeObstructionDetected();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new GarageDoorOpenerService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/HeaterCoolerAccessory.java b/src/main/java/io/github/hapjava/accessories/HeaterCoolerAccessory.java
deleted file mode 100644
index d72af203a..000000000
--- a/src/main/java/io/github/hapjava/accessories/HeaterCoolerAccessory.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.heatercooler.CurrentHeaterCoolerStateEnum;
-import io.github.hapjava.characteristics.impl.heatercooler.TargetHeaterCoolerStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.HeaterCoolerService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Heater Cooler accessory */
-public interface HeaterCoolerAccessory extends HomekitAccessory {
- /**
- * Retrieves the current temperature, in celsius degrees.
- *
- * @return a future that will contain the temperature.
- */
- CompletableFuture getCurrentTemperature();
-
- /**
- * Mandatory: Retrieves the current active state of the Heater Cooler.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture isActive();
-
- /**
- * Sets the active state of the Heater Cooler
- *
- * @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;
-
- /**
- * Retrieves the heater /cooler current state.
- *
- * @return a future that will contain the heater cooler current state .
- */
- CompletableFuture getCurrentHeaterCoolerState();
-
- /**
- * Retrieves the heater cooler target state.
- *
- * @return a future that will contain the heater cooler target state .
- */
- CompletableFuture getTargetHeaterCoolerState();
-
- /**
- * set heater cooler target state the lock target state.
- *
- * @param state heater cooler target state
- * @return a future that completes when the change is made
- */
- CompletableFuture setTargetHeaterCoolerState(TargetHeaterCoolerStateEnum state);
-
- /**
- * Subscribes to changes in the heater cooler current state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentHeaterCoolerState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in heater cooler current state. */
- void unsubscribeCurrentHeaterCoolerState();
-
- /**
- * Subscribes to changes in the heater cooler target state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetHeaterCoolerState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in heater cooler target state. */
- void unsubscribeTargetHeaterCoolerState();
-
- /**
- * Subscribes to changes in the active state of the heater cooler .
- *
- * @param callback the function to call when the active state changes.
- */
- void subscribeActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the active state of the heater cooler . */
- void unsubscribeActive();
-
- /**
- * Subscribes to changes in the current temperature.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentTemperature(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current temperature. */
- void unsubscribeCurrentTemperature();
-
- /**
- * Valid values for current state.
- *
- * @return array of valid current states
- */
- default CurrentHeaterCoolerStateEnum[] getCurrentHeaterCoolerStateValidValues() {
- return CurrentHeaterCoolerStateEnum.values();
- }
-
- /**
- * Valid values for target state.
- *
- * @return array of valid target states
- */
- default TargetHeaterCoolerStateEnum[] getTargetHeaterCoolerStateValidValues() {
- return TargetHeaterCoolerStateEnum.values();
- }
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new HeaterCoolerService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/HomekitAccessory.java b/src/main/java/io/github/hapjava/accessories/HomekitAccessory.java
deleted file mode 100644
index 64c406492..000000000
--- a/src/main/java/io/github/hapjava/accessories/HomekitAccessory.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.AccessoryInformationService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Base interface for all HomeKit Accessories. You can implement this interface directly, but most
- * users will prefer to use the more full featured interfaces in {@link
- * io.github.hapjava.accessories} which include a default implementation of {@link #getServices()}.
- *
- * @author Andy Lintner
- */
-public interface HomekitAccessory {
-
- /**
- * A unique identifier that must remain static across invocations to prevent errors with paired
- * iOS devices. When used as a child of a Bridge, this value must be greater than 1, as that ID is
- * reserved for the Bridge itself.
- *
- * @return the unique identifier.
- */
- int getId();
-
- /**
- * Returns a name to display in iOS.
- *
- * @return the label.
- */
- CompletableFuture getName();
-
- /**
- * Performs an operation that can be used to identify the accessory. This action can be performed
- * without pairing.
- */
- void identify();
-
- /**
- * Returns a serial number to display in iOS.
- *
- * @return the serial number, or null.
- */
- CompletableFuture getSerialNumber();
-
- /**
- * Returns a model name to display in iOS.
- *
- * @return the model name, or null.
- */
- CompletableFuture getModel();
-
- /**
- * Returns a manufacturer to display in iOS.
- *
- * @return the manufacturer, or null.
- */
- CompletableFuture getManufacturer();
-
- /**
- * Returns a firmware revision to display in iOS.
- *
- * @return the firmware revision, or null.
- */
- CompletableFuture getFirmwareRevision();
-
- /**
- * The collection of Services this accessory supports. Services are the primary way to interact
- * with the accessory via HomeKit. Besides the Services offered here, the accessory will
- * automatically include the required information service.
- *
- * This method will only be useful if you're implementing your own accessory type. For the
- * standard accessories, use the default implementation provided by the interfaces in {@link
- * io.github.hapjava.accessories}.
- *
- * @return the collection of services.
- */
- default Collection getServices() {
- return Collections.singleton(new AccessoryInformationService(this));
- };
-
- /**
- * default implementation which is sufficient if accessory has only one service
- *
- * @return primary service
- */
- default Service getPrimaryService() {
- Iterator iterator = getServices().iterator();
- while (iterator.hasNext()) {
- Service service = iterator.next();
- if (!(service instanceof AccessoryInformationService)) {
- return service;
- }
- }
- return null;
- };
-}
diff --git a/src/main/java/io/github/hapjava/accessories/HumidifierDehumidifierAccessory.java b/src/main/java/io/github/hapjava/accessories/HumidifierDehumidifierAccessory.java
deleted file mode 100644
index 63a460526..000000000
--- a/src/main/java/io/github/hapjava/accessories/HumidifierDehumidifierAccessory.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.humidifier.CurrentHumidifierDehumidifierStateEnum;
-import io.github.hapjava.characteristics.impl.humidifier.TargetHumidifierDehumidifierStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.HumidifierDehumidifierService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Humidifier/Dehumidifier accessory */
-public interface HumidifierDehumidifierAccessory extends HomekitAccessory {
- /**
- * Retrieves the current relative humidity.
- *
- * @return a future that will contain the humidity as a value between 0 and 100.
- */
- CompletableFuture getCurrentHumidity();
-
- /**
- * Mandatory: Retrieves the current active state of the humidifier/dehumidifier.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture isActive();
-
- /**
- * Sets the active state of the humidifier/dehumidifier
- *
- * @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;
-
- /**
- * Retrieves the humidifier/dehumidifier current state.
- *
- * @return a future that will contain the humidifier/dehumidifier current state .
- */
- CompletableFuture getCurrentHumidifierDehumidifierState();
-
- /**
- * Retrieves the humidifier/dehumidifier target state.
- *
- * @return a future that will contain the humidifier/dehumidifier target state .
- */
- CompletableFuture getTargetHumidifierDehumidifierState();
-
- /**
- * set humidifier/dehumidifier target state the lock target state.
- *
- * @param state humidifier/dehumidifier target state
- * @return a future that completes when the change is made
- */
- CompletableFuture setTargetHumidifierDehumidifierState(
- TargetHumidifierDehumidifierStateEnum state);
-
- /**
- * Valid values for target state.
- *
- * @return array of valid target states.
- */
- default TargetHumidifierDehumidifierStateEnum[]
- getTargetHumidifierDehumidifierStateValidValues() {
- return TargetHumidifierDehumidifierStateEnum.values();
- }
-
- /**
- * Subscribes to changes in the humidifier/dehumidifier current state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentHumidifierDehumidifierState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in humidifier/dehumidifier current state. */
- void unsubscribeCurrentHumidifierDehumidifierState();
-
- /**
- * Subscribes to changes in the humidifier/dehumidifier target state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetHumidifierDehumidifierState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in humidifier/dehumidifier target state. */
- void unsubscribeTargetHumidifierDehumidifierState();
-
- /**
- * Subscribes to changes in the active state of the humidifier/dehumidifier .
- *
- * @param callback the function to call when the active state changes.
- */
- void subscribeActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the active state of the humidifier/dehumidifier . */
- void unsubscribeActive();
-
- /**
- * Subscribes to changes in the current humidity.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentHumidity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current humidity. */
- void unsubscribeCurrentHumidity();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new HumidifierDehumidifierService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/HumiditySensorAccessory.java b/src/main/java/io/github/hapjava/accessories/HumiditySensorAccessory.java
deleted file mode 100644
index 07c24be58..000000000
--- a/src/main/java/io/github/hapjava/accessories/HumiditySensorAccessory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.HumiditySensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A humidity sensor that reports the current relative humidity.
- *
- * @author Andy Lintner
- */
-public interface HumiditySensorAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current relative humidity.
- *
- * @return a future that will contain the humidity as a value between 0 and 100
- */
- CompletableFuture getCurrentRelativeHumidity();
-
- /**
- * Subscribes to changes in the current relative humidity.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentRelativeHumidity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current relative humidity. */
- void unsubscribeCurrentRelativeHumidity();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new HumiditySensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/InputSourceAccessory.java b/src/main/java/io/github/hapjava/accessories/InputSourceAccessory.java
deleted file mode 100644
index cfa5ae3d6..000000000
--- a/src/main/java/io/github/hapjava/accessories/InputSourceAccessory.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.IsConfiguredEnum;
-import io.github.hapjava.characteristics.impl.inputsource.CurrentVisibilityStateEnum;
-import io.github.hapjava.characteristics.impl.inputsource.InputSourceTypeEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.InputSourceService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Input Source accessory. */
-public interface InputSourceAccessory extends HomekitAccessory {
-
- /**
- * Retrieves configured name of input source.
- *
- * @return configured name of input source
- */
- CompletableFuture getConfiguredName();
-
- /**
- * Sets the configured name.
- *
- * @param name configured name
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setConfiguredName(String name) throws Exception;
-
- /**
- * Subscribes to changes in configured name.
- *
- * @param callback the function to call when the configured name changes.
- */
- void subscribeConfiguredName(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the configured name. */
- void unsubscribeConfiguredName();
-
- /**
- * Retrieves the flag whether input source is configured.
- *
- * @return a future that will contain the flag .
- */
- CompletableFuture isConfigured();
- /**
- * set the flag whether input source is configured.
- *
- * @param state is configured state
- * @return a future that completes when the change is made
- */
- CompletableFuture setIsConfigured(IsConfiguredEnum state);
-
- /**
- * Subscribes to changes in isConfigured.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeIsConfigured(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in isConfigured. */
- void unsubscribeIsConfigured();
-
- /**
- * Retrieves the input source type.
- *
- * @return a future that will contain the input source type.
- */
- CompletableFuture getInputSourceType();
-
- /**
- * Subscribes to changes in input source type.
- *
- * @param callback the function to call when the type changes.
- */
- void subscribeInputSourceType(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the input source type. */
- void unsubscribeInputSourceType();
-
- /**
- * Retrieves the current visibility state.
- *
- * @return a future that will contain the current visibility state.
- */
- CompletableFuture getCurrentVisibilityState();
-
- /**
- * Subscribes to changes in current visibility state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentVisibilityState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current visibility state. */
- void unsubscribeCurrentVisibilityState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new InputSourceService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/IrrigationSystemAccessory.java b/src/main/java/io/github/hapjava/accessories/IrrigationSystemAccessory.java
deleted file mode 100644
index dffa2e00b..000000000
--- a/src/main/java/io/github/hapjava/accessories/IrrigationSystemAccessory.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.ActiveEnum;
-import io.github.hapjava.characteristics.impl.common.InUseEnum;
-import io.github.hapjava.characteristics.impl.common.ProgramModeEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.IrrigationSystemService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** irrigation system accessory that controls several valves. */
-public interface IrrigationSystemAccessory extends HomekitAccessory {
-
- /**
- * An irrigation system is set to Active when the system is enabled. When one of the valves is set
- * to In Use, the irrigation system must be set to in use.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getActive();
-
- /**
- * Sets the irrigation active state
- *
- * @param active 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(ActiveEnum active) throws Exception;
-
- /**
- * Retrieves the program mode status
- *
- * @return a future that will contain the valve type.
- */
- CompletableFuture getProgramMode();
-
- /**
- * Retrieves the current inUse state of the irrigation; InUse means one of the valves is set to In
- * Use.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getInUse();
-
- /**
- * Subscribes to changes in the inUse state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeInUse(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the inUse state. */
- void unsubscribeInUse();
-
- /**
- * Subscribes to changes in the active state of the irrigation.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the irrigation active state. */
- void unsubscribeActive();
-
- /**
- * Subscribes to changes in the program mode of the irrigation system.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeProgramMode(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the program mode. */
- void unsubscribeProgramMode();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new IrrigationSystemService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/LeakSensorAccessory.java b/src/main/java/io/github/hapjava/accessories/LeakSensorAccessory.java
deleted file mode 100644
index c36ce278c..000000000
--- a/src/main/java/io/github/hapjava/accessories/LeakSensorAccessory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.leaksensor.LeakDetectedStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.LeakSensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A leak sensor that reports whether a leak has been detected.
- *
- * @author Tim Harper
- */
-public interface LeakSensorAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the state of the leak sensor. If true then leak has been detected.
- *
- * @return a future that will contain the leak sensor's state
- */
- CompletableFuture getLeakDetected();
-
- /**
- * Subscribes to changes in the leak sensor.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeLeakDetected(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the leak sensor. */
- void unsubscribeLeakDetected();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new LeakSensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/LightSensorAccessory.java b/src/main/java/io/github/hapjava/accessories/LightSensorAccessory.java
deleted file mode 100644
index 2087b1e99..000000000
--- a/src/main/java/io/github/hapjava/accessories/LightSensorAccessory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.lightsensor.CurrentAmbientLightLevelCharacteristic;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.LightSensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A light sensor that reports current ambient light level.
- *
- * @author Gaston Dombiak
- */
-public interface LightSensorAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current ambient light level.
- *
- * @return a future that will contain the luminance level expressed in LUX.
- */
- CompletableFuture getCurrentAmbientLightLevel();
-
- /**
- * Subscribes to changes in the current ambient light level.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentAmbientLightLevel(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current ambient light level. */
- void unsubscribeCurrentAmbientLightLevel();
-
- /**
- * return the min value for current ambient light level. overwrite if you want to change the
- * default value.
- *
- * @return min current ambient light level
- */
- default double getMinCurrentAmbientLightLevel() {
- return CurrentAmbientLightLevelCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for current ambient light level. overwrite if you want to change the
- * default value.
- *
- * @return max current ambient light level
- */
- default double getMaxCurrentAmbientLightLevel() {
- return CurrentAmbientLightLevelCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for current ambient light level. overwrite if you want to change the
- * default value.
- *
- * @return min step current ambient light level
- */
- default double getMinStepCurrentAmbientLightLevel() {
- return CurrentAmbientLightLevelCharacteristic.DEFAULT_STEP;
- }
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new LightSensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/LightbulbAccessory.java b/src/main/java/io/github/hapjava/accessories/LightbulbAccessory.java
deleted file mode 100644
index 8a6caaed8..000000000
--- a/src/main/java/io/github/hapjava/accessories/LightbulbAccessory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.LightbulbService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A simple light with a binary state.
- *
- * @author Andy Lintner
- */
-public interface LightbulbAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current binary state of the light.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getLightbulbPowerState();
-
- /**
- * Sets the binary state of the light
- *
- * @param powerState the binary state to set
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setLightbulbPowerState(boolean powerState) throws Exception;
-
- /**
- * Subscribes to changes in the binary state of the light.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeLightbulbPowerState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the binary state of the light. */
- void unsubscribeLightbulbPowerState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new LightbulbService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/LockMechanismAccessory.java b/src/main/java/io/github/hapjava/accessories/LockMechanismAccessory.java
deleted file mode 100644
index f12f3e286..000000000
--- a/src/main/java/io/github/hapjava/accessories/LockMechanismAccessory.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.lock.LockCurrentStateEnum;
-import io.github.hapjava.characteristics.impl.lock.LockTargetStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.LockMechanismService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Lock mechanism with current and target state. */
-public interface LockMechanismAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the lock current state.
- *
- * @return a future that will contain the lock current state .
- */
- CompletableFuture getLockCurrentState();
-
- /**
- * Retrieves the lock target state.
- *
- * @return a future that will contain the lock target state .
- */
- CompletableFuture getLockTargetState();
-
- /**
- * set lock target state the lock target state.
- *
- * @param state lock target state
- * @return a future that completes when the change is made
- */
- CompletableFuture setLockTargetState(LockTargetStateEnum state);
-
- /**
- * Subscribes to changes in the lock current state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeLockCurrentState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in lock current state. */
- void unsubscribeLockCurrentState();
-
- /**
- * Subscribes to changes in the lock target state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeLockTargetState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in lock target state. */
- void unsubscribeLockTargetState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new LockMechanismService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/MicrophoneAccessory.java b/src/main/java/io/github/hapjava/accessories/MicrophoneAccessory.java
deleted file mode 100644
index f63f8b70c..000000000
--- a/src/main/java/io/github/hapjava/accessories/MicrophoneAccessory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.MicrophoneService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Microphone accessory with mute state. */
-public interface MicrophoneAccessory extends HomekitAccessory {
-
- /**
- * Retrieves mute status.
- *
- * @return true if accessory is muted
- */
- CompletableFuture isMuted();
-
- /**
- * Sets the mute status
- *
- * @param mute true if accessory should be muted
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setMute(boolean mute) throws Exception;
-
- /**
- * Subscribes to changes in mute state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeMuteState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the mute state. */
- void unsubscribeMuteState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new MicrophoneService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/MotionSensorAccessory.java b/src/main/java/io/github/hapjava/accessories/MotionSensorAccessory.java
deleted file mode 100644
index e843068b1..000000000
--- a/src/main/java/io/github/hapjava/accessories/MotionSensorAccessory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.MotionSensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A motion sensor that reports whether motion has been detected.
- *
- * @author Gaston Dombiak
- */
-public interface MotionSensorAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the state of the motion sensor. If true then motion has been detected.
- *
- * @return a future that will contain the motion sensor's state
- */
- CompletableFuture getMotionDetected();
-
- /**
- * Subscribes to changes in the motion sensor.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeMotionDetected(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the motion sensor. */
- void unsubscribeMotionDetected();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new MotionSensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/OccupancySensorAccessory.java b/src/main/java/io/github/hapjava/accessories/OccupancySensorAccessory.java
deleted file mode 100644
index 5fc3cff1e..000000000
--- a/src/main/java/io/github/hapjava/accessories/OccupancySensorAccessory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.occupancysensor.OccupancyDetectedEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.OccupancySensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * An occupancy sensor that reports whether occupancy has been detected.
- *
- * @author Tim Harper
- */
-public interface OccupancySensorAccessory extends HomekitAccessory {
- /**
- * Retrieves the state of the occupancy sensor. If true then occupancy has been detected.
- *
- * @return a future that will contain the occupancy sensor's state
- */
- CompletableFuture getOccupancyDetected();
-
- /**
- * Subscribes to changes in the occupancy sensor.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeOccupancyDetected(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the occupancy sensor. */
- void unsubscribeOccupancyDetected();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new OccupancySensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/OutletAccessory.java b/src/main/java/io/github/hapjava/accessories/OutletAccessory.java
deleted file mode 100644
index 213f673b7..000000000
--- a/src/main/java/io/github/hapjava/accessories/OutletAccessory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.OutletService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A power outlet with boolean power and usage states.
- *
- * @author Andy Lintner
- */
-public interface OutletAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current binary state of the outlet's power.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getPowerState();
-
- /**
- * Retrieves the current binary state indicating whether the outlet is in use.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getOutletInUse();
-
- /**
- * Sets the binary state of the outlet's power.
- *
- * @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 setPowerState(boolean state) throws Exception;
-
- /**
- * Subscribes to changes in the binary state of the outlet's power.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribePowerState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the binary state indicating whether the outlet is in use.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeOutletInUse(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the binary state of the outlet's power. */
- void unsubscribePowerState();
-
- /** Unsubscribes from changes in the binary state indicating whether hte outlet is in use. */
- void unsubscribeOutletInUse();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new OutletService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/SecuritySystemAccessory.java b/src/main/java/io/github/hapjava/accessories/SecuritySystemAccessory.java
deleted file mode 100644
index 43c12acd2..000000000
--- a/src/main/java/io/github/hapjava/accessories/SecuritySystemAccessory.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.securitysystem.CurrentSecuritySystemStateEnum;
-import io.github.hapjava.characteristics.impl.securitysystem.TargetSecuritySystemStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.SecuritySystemService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A security system that can be armed so that when a contact sensor is opened or a motion sensor
- * detects movement, then a siren could be fired off. There are different modes for arming the
- * system. See {@link TargetSecuritySystemStateEnum} for more information.
- *
- * @author Gaston Dombiak
- */
-public interface SecuritySystemAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current state of the security system. The state describes if the system is armed
- * in any of its variations; or if the alarm has been triggered; or if the system is disarmed.
- *
- * @return current state of the security system.
- */
- CompletableFuture getCurrentSecuritySystemState();
-
- /**
- * Subscribes to changes to the state of the security system.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentSecuritySystemState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the state of the security system. */
- void unsubscribeCurrentSecuritySystemState();
-
- /**
- * Sets the state of the security system. The security system could be armed in any of its
- * variations or disarmed.
- *
- * @param state target state of the security system.
- * @throws Exception when the change cannot be made.
- */
- void setTargetSecuritySystemState(TargetSecuritySystemStateEnum state) throws Exception;
-
- /**
- * Retrieves the pending, but not yet completed, state of the security system.
- *
- * @return target state of the security system.
- */
- CompletableFuture getTargetSecuritySystemState();
-
- /**
- * Subscribes to changes in the pending, but not yet completed, state of the security system.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetSecuritySystemState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Unsubscribes from changes in the pending, but not yet completed, state of the security system.
- */
- void unsubscribeTargetSecuritySystemState();
-
- /**
- * Valid values for current state.
- *
- * @return array of valid current states.
- */
- default CurrentSecuritySystemStateEnum[] getCurrentSecuritySystemStateValidValues() {
- return CurrentSecuritySystemStateEnum.values();
- }
-
- /**
- * Valid values for target state.
- *
- * @return array of valid targe states.
- */
- default TargetSecuritySystemStateEnum[] getTargetSecuritySystemStateValidValues() {
- return TargetSecuritySystemStateEnum.values();
- }
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new SecuritySystemService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/SlatAccessory.java b/src/main/java/io/github/hapjava/accessories/SlatAccessory.java
deleted file mode 100644
index 62888ab60..000000000
--- a/src/main/java/io/github/hapjava/accessories/SlatAccessory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.slat.CurrentSlatStateEnum;
-import io.github.hapjava.characteristics.impl.slat.SlatTypeEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.SlatService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** A slat accessory which tilts on a vertical or a horizontal axis. */
-public interface SlatAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current state of the slat
- *
- * @return a future that will contain the state
- */
- CompletableFuture getSlatState();
-
- /**
- * Subscribes to changes in the state of the slat.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeSlatState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the state of the slat. */
- void unsubscribeSlatState();
-
- /**
- * Retrieves the slat type.
- *
- * @return a future that will slat type.
- */
- CompletableFuture getSlatType();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new SlatService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/SmartSpeakerAccessory.java b/src/main/java/io/github/hapjava/accessories/SmartSpeakerAccessory.java
deleted file mode 100644
index 9f70af2be..000000000
--- a/src/main/java/io/github/hapjava/accessories/SmartSpeakerAccessory.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.television.CurrentMediaStateEnum;
-import io.github.hapjava.characteristics.impl.television.TargetMediaStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.SmartSpeakerService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Smart Speaker accessory. */
-public interface SmartSpeakerAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current media state (see {@link
- * io.github.hapjava.characteristics.impl.television.CurrentMediaStateEnum} for supported values).
- *
- * @return a future that will contain the current media state
- */
- CompletableFuture getCurrentMediaState();
-
- /**
- * Subscribes to changes in the current media state.
- *
- * @param callback the function to call when the current media state changes.
- */
- void subscribeCurrentMediaState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current media state. */
- void unsubscribeCurrentMediaState();
-
- /**
- * Retrieves the target media state (see {@link TargetMediaStateEnum} for supported values).
- *
- * @return a future that will contain the target media state
- */
- CompletableFuture getTargetMediaState();
-
- /**
- * Set the target media state (see {@link TargetMediaStateEnum} for supported values).
- *
- * @param targetMediaState target media state
- * @return a future that completes when the change is made
- */
- CompletableFuture setTargetMediaState(TargetMediaStateEnum targetMediaState);
-
- /**
- * Subscribes to changes in the target media state.
- *
- * @param callback the function to call when the target media state changes.
- */
- void subscribeTargetMediaState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target media state. */
- void unsubscribeTargetMediaState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new SmartSpeakerService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/SmokeSensorAccessory.java b/src/main/java/io/github/hapjava/accessories/SmokeSensorAccessory.java
deleted file mode 100644
index b6a8b1054..000000000
--- a/src/main/java/io/github/hapjava/accessories/SmokeSensorAccessory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.smokesensor.SmokeDetectedStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.SmokeSensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A smoke sensor reports whether smoke has been detected or not.
- *
- * @author Gaston Dombiak
- */
-public interface SmokeSensorAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the state of the smoke sensor. This is whether smoke has been detected or not.
- *
- * @return a future that will contain the smoke sensor's state
- */
- CompletableFuture getSmokeDetectedState();
-
- /**
- * Subscribes to changes in the smoke sensor's state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeSmokeDetectedState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the smoke sensor's state. */
- void unsubscribeSmokeDetectedState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new SmokeSensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/SpeakerAccessory.java b/src/main/java/io/github/hapjava/accessories/SpeakerAccessory.java
deleted file mode 100644
index 661607a30..000000000
--- a/src/main/java/io/github/hapjava/accessories/SpeakerAccessory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.SpeakerService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Speaker accessory. */
-public interface SpeakerAccessory extends HomekitAccessory {
-
- /**
- * Retrieves mute status.
- *
- * @return true if accessory is muted
- */
- CompletableFuture isMuted();
-
- /**
- * Sets the mute status
- *
- * @param mute true if accessory should be muted
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setMute(boolean mute) throws Exception;
-
- /**
- * Subscribes to changes in mute state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeMuteState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the mute state. */
- void unsubscribeMuteState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new SpeakerService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/StatelessProgrammableSwitchAccessory.java b/src/main/java/io/github/hapjava/accessories/StatelessProgrammableSwitchAccessory.java
deleted file mode 100644
index 354c36587..000000000
--- a/src/main/java/io/github/hapjava/accessories/StatelessProgrammableSwitchAccessory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.ProgrammableSwitchEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.StatelessProgrammableSwitchService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** The Stateless Programmable Switch accessory */
-public interface StatelessProgrammableSwitchAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the last states of the switch. Bluetooth device should return the last event, the IP
- * device should always return null
- *
- * @return state of the switch event
- */
- CompletableFuture getSwitchEvent();
-
- /**
- * Subscribes to changes in switch event, i.e. pressing on the button.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeSwitchEvent(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in switch event. */
- void unsubscribeSwitchEvent();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new StatelessProgrammableSwitchService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/SwitchAccessory.java b/src/main/java/io/github/hapjava/accessories/SwitchAccessory.java
deleted file mode 100644
index aae442f90..000000000
--- a/src/main/java/io/github/hapjava/accessories/SwitchAccessory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.SwitchService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A simple switch with a binary state.
- *
- * @author Andy Lintner
- */
-public interface SwitchAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current binary state of the switch.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getSwitchState();
-
- /**
- * Sets the binary state of the switch
- *
- * @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 setSwitchState(boolean state) throws Exception;
-
- /**
- * Subscribes to changes in the binary state of the switch.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeSwitchState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the binary state of the switch. */
- void unsubscribeSwitchState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new SwitchService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/TelevisionAccessory.java b/src/main/java/io/github/hapjava/accessories/TelevisionAccessory.java
deleted file mode 100644
index b51efe319..000000000
--- a/src/main/java/io/github/hapjava/accessories/TelevisionAccessory.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.television.RemoteKeyEnum;
-import io.github.hapjava.characteristics.impl.television.SleepDiscoveryModeEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.TelevisionService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Television accessory. */
-public interface TelevisionAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current active state of the TV.
- *
- * @return a future that will contain the state
- */
- CompletableFuture isActive();
-
- /**
- * Sets the active state of the TV
- *
- * @param state the 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 TV .
- *
- * @param callback the function to call when the active state changes.
- */
- void subscribeActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the active state of the TV. */
- void unsubscribeActive();
-
- /**
- * Retrieves the active identifier
- *
- * @return a future that will contain the active identifier.
- */
- CompletableFuture getActiveIdentifier();
-
- /**
- * Sets the active identifier
- *
- * @param identifier the active identifier
- * @return a future that completes when the active identifier is changed
- * @throws Exception when the active identifier cannot be set
- */
- CompletableFuture setActiveIdentifier(Integer identifier) throws Exception;
-
- /**
- * Subscribes to changes in the active identifier.
- *
- * @param callback the function to call when the active identifier changes.
- */
- void subscribeActiveIdentifier(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the active identifier. */
- void unsubscribeActiveIdentifier();
-
- /**
- * Retrieves configured name.
- *
- * @return configured name
- */
- CompletableFuture getConfiguredName();
-
- /**
- * Sets the configured name
- *
- * @param name configured name
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setConfiguredName(String name) throws Exception;
-
- /**
- * Subscribes to changes in configured name.
- *
- * @param callback the function to call when the configureed name changes.
- */
- void subscribeConfiguredName(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the configured name state. */
- void unsubscribeConfiguredName();
-
- /**
- * Sends the remote key.
- *
- * @param key remote key
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setRemoteKey(RemoteKeyEnum key) throws Exception;
-
- /**
- * Retrieves the sleep discovery mode.
- *
- * @return a future that will contain the sleep discovery mode .
- */
- CompletableFuture getSleepDiscoveryMode();
-
- /**
- * Subscribes to changes in sleep discovery mode.
- *
- * @param callback the function to call when the sleep discovery mode changes.
- */
- void subscribeSleepDiscoveryMode(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the sleep discovery mode. */
- void unsubscribeSleepDiscoveryMode();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new TelevisionService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/TelevisionSpeakerAccessory.java b/src/main/java/io/github/hapjava/accessories/TelevisionSpeakerAccessory.java
deleted file mode 100644
index 28df1437d..000000000
--- a/src/main/java/io/github/hapjava/accessories/TelevisionSpeakerAccessory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.TelevisionSpeakerService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** Television speaker accessory. */
-public interface TelevisionSpeakerAccessory extends HomekitAccessory {
-
- /**
- * Retrieves mute status.
- *
- * @return true if accessory is muted
- */
- CompletableFuture isMuted();
-
- /**
- * Sets the mute status
- *
- * @param mute true if accessory should be muted
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setMute(boolean mute) throws Exception;
-
- /**
- * Subscribes to changes in mute state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeMuteState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the mute state. */
- void unsubscribeMuteState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new TelevisionSpeakerService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/TemperatureSensorAccessory.java b/src/main/java/io/github/hapjava/accessories/TemperatureSensorAccessory.java
deleted file mode 100644
index 4f9184926..000000000
--- a/src/main/java/io/github/hapjava/accessories/TemperatureSensorAccessory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.TemperatureSensorService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A temperature sensor that reports the current temperature
- *
- * @author Andy Lintner
- */
-public interface TemperatureSensorAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current temperature, in celsius degrees.
- *
- * @return a future that will contain the temperature.
- */
- CompletableFuture getCurrentTemperature();
-
- /**
- * return the min value for current temperature. overwrite if you want to change the default
- * value.
- *
- * @return min current temperature
- */
- default double getMinCurrentTemperature() {
- return 0;
- }
-
- /**
- * return the max value for current temperature. overwrite if you want to change the default
- * value.
- *
- * @return max current temperature
- */
- default double getMaxCurrentTemperature() {
- return 100;
- }
-
- /**
- * return the min step value for current temperature. overwrite if you want to change the default
- * value.
- *
- * @return min step current temperature
- */
- default double getMinStepCurrentTemperature() {
- return 0.1;
- }
-
- /**
- * Subscribes to changes in the current temperature.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentTemperature(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current temperature. */
- void unsubscribeCurrentTemperature();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new TemperatureSensorService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/ThermostatAccessory.java b/src/main/java/io/github/hapjava/accessories/ThermostatAccessory.java
deleted file mode 100644
index 837993853..000000000
--- a/src/main/java/io/github/hapjava/accessories/ThermostatAccessory.java
+++ /dev/null
@@ -1,214 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.thermostat.CurrentHeatingCoolingStateEnum;
-import io.github.hapjava.characteristics.impl.thermostat.TargetHeatingCoolingStateEnum;
-import io.github.hapjava.characteristics.impl.thermostat.TemperatureDisplayUnitEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.ThermostatService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A thermostat with heating and cooling controls.
- *
- * @author Andy Lintner
- */
-public interface ThermostatAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current temperature, in celsius degrees.
- *
- * @return a future that will contain the temperature.
- */
- CompletableFuture getCurrentTemperature();
-
- /**
- * return the min value for current temperature. overwrite if you want to change the default
- * value.
- *
- * @return min current temperature
- */
- default double getMinCurrentTemperature() {
- return 0;
- }
-
- /**
- * return the max value for current temperature. overwrite if you want to change the default
- * value.
- *
- * @return max current temperature
- */
- default double getMaxCurrentTemperature() {
- return 100;
- }
-
- /**
- * return the min step value for current temperature. overwrite if you want to change the default
- * value.
- *
- * @return min step current temperature
- */
- default double getMinStepCurrentTemperature() {
- return 0.1;
- }
-
- /**
- * Retrieves the target temperature, in celsius degrees.
- *
- * @return a future that will contain the target temperature.
- */
- CompletableFuture getTargetTemperature();
-
- /**
- * Sets the target temperature.
- *
- * @param value the target temperature, in celsius degrees.
- * @throws Exception when the temperature cannot be changed.
- */
- void setTargetTemperature(Double value) throws Exception;
-
- /**
- * return the min value for target temperature. overwrite if you want to change the default value.
- *
- * @return min target temperature
- */
- default double getMinTargetTemperature() {
- return 10;
- }
-
- /**
- * return the max value for target temperature. overwrite if you want to change the default value.
- *
- * @return max target temperature
- */
- default double getMaxTargetTemperature() {
- return 38;
- }
-
- /**
- * return the min step value for target temperature. overwrite if you want to change the default
- * value.
- *
- * @return min step target temperature
- */
- default double getMinStepTargetTemperature() {
- return 0.1;
- }
-
- /**
- * Retrieves the current {@link CurrentHeatingCoolingStateEnum} of the thermostat.
- *
- * @return a future that will contain the mode.
- */
- CompletableFuture getCurrentState();
-
- /**
- * Sets the {@link TargetHeatingCoolingStateEnum} of the thermostat.
- *
- * @param mode The {@link TargetHeatingCoolingStateEnum} to set.
- * @throws Exception when the change cannot be made.
- */
- void setTargetState(TargetHeatingCoolingStateEnum mode) throws Exception;
-
- /**
- * Retrieves the pending, but not yet complete, {@link TargetHeatingCoolingStateEnum} of the
- * thermostat.
- *
- * @return a future that will contain the target mode.
- */
- CompletableFuture getTargetState();
-
- /**
- * Retrieves the temperture display units, e.g. C or F.
- *
- * @return a future that will contain the temperature unit.
- */
- CompletableFuture getTemperatureDisplayUnit();
-
- /**
- * Sets the temperature unit.
- *
- * @param value the temperature display unit.
- * @throws Exception when the temperature cannot be changed.
- */
- void setTemperatureDisplayUnit(TemperatureDisplayUnitEnum value) throws Exception;
-
- /**
- * Subscribes to changes in the pending, but not yet complete, {@link
- * TargetHeatingCoolingStateEnum} of the thermostat.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the target temperature.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetTemperature(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the temperature display unit.
- *
- * @param callback the function to call when the uni changes.
- */
- void subscribeTemperatureDisplayUnit(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the current temperature.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentTemperature(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the {@link CurrentHeatingCoolingStateEnum} of the thermostat.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the mode of the thermostat. */
- void unsubscribeCurrentState();
-
- /**
- * Unsubscribes from changes in the pending, but not yet complete, {@link
- * TargetHeatingCoolingStateEnum} of the thermostat.
- */
- void unsubscribeTargetState();
-
- /** Unsubscribes from changes in the current temperature. */
- void unsubscribeCurrentTemperature();
-
- /** Unsubscribes from changes in temperature display unit */
- void unsubscribeTemperatureDisplayUnit();
-
- /** Unsubscribes from changes in the target temperature. */
- void unsubscribeTargetTemperature();
-
- /**
- * Valid values for current state.
- *
- * @return array of valid current states.
- */
- default CurrentHeatingCoolingStateEnum[] getCurrentHeatingCoolingStateValidValues() {
- return CurrentHeatingCoolingStateEnum.values();
- }
-
- /**
- * Valid values for target state.
- *
- * @return array of valid targe states.
- */
- default TargetHeatingCoolingStateEnum[] getTargetHeatingCoolingStateValidValues() {
- return TargetHeatingCoolingStateEnum.values();
- }
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new ThermostatService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/ValveAccessory.java b/src/main/java/io/github/hapjava/accessories/ValveAccessory.java
deleted file mode 100644
index 3db17e41f..000000000
--- a/src/main/java/io/github/hapjava/accessories/ValveAccessory.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.ActiveEnum;
-import io.github.hapjava.characteristics.impl.common.InUseEnum;
-import io.github.hapjava.characteristics.impl.valve.ValveTypeEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.ValveService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * A Valve (sprinkler head, faucet, etc.)
- *
- * @author Tim Harper
- */
-public interface ValveAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the current active state of the valve; Active could mean the valve is open (but not
- * necessarily running), or that the valve is associated with an active watering program (like a
- * watering program) but is not currently running.
- *
- * To communicate water is flowing through a valve, inUse should be used.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getValveActive();
-
- /**
- * Sets the valve active state
- *
- * @param active the binary state to set
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setValveActive(ActiveEnum active) throws Exception;
-
- /**
- * Subscribes to changes in the active state of the valve.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeValveActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the valve active state. */
- void unsubscribeValveActive();
-
- /**
- * Retrieves the current inUse state of the valve; InUse usually means water is flowing through
- * the valve.
- *
- * To communicate water is flowing through a valve, inUse should be used.
- *
- * @return a future that will contain the binary state
- */
- CompletableFuture getValveInUse();
-
- /**
- * Subscribes to changes in the inUse state of the valve.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeValveInUse(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the valve inUse state. */
- void unsubscribeValveInUse();
-
- /**
- * Retrieves the valve type.
- *
- * @return a future that will contain the valve type.
- */
- CompletableFuture getValveType();
-
- /**
- * Subscribes to changes in the valveType state of the valve.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeValveType(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the valveType state. */
- void unsubscribeValveType();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new ValveService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/WindowAccessory.java b/src/main/java/io/github/hapjava/accessories/WindowAccessory.java
deleted file mode 100644
index 6cc52322b..000000000
--- a/src/main/java/io/github/hapjava/accessories/WindowAccessory.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.windowcovering.PositionStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.WindowService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** motorized window accessory. */
-public interface WindowAccessory extends HomekitAccessory {
-
- /**
- * Retrieves the position state of the door
- *
- * @return a future which will contain the door's position state
- */
- CompletableFuture getPositionState();
-
- /**
- * Retrieves the current position of the door
- *
- * @return a future which will contain the door's current position
- */
- CompletableFuture getCurrentPosition();
-
- /**
- * Retrieves the target position of the door
- *
- * @return a future which will contain the door's target position
- */
- CompletableFuture getTargetPosition();
-
- /**
- * Sets the targeted state of the door.
- *
- * @param position the targeted position
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetPosition(Integer position) throws Exception;
-
- /**
- * Subscribes to changes in the door's position state
- *
- * @param callback the function to call when the state changes
- */
- void subscribePositionState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the door's current position
- *
- * @param callback the function to call when the current position changes
- */
- void subscribeCurrentPosition(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the door's target position
- *
- * @param callback the function to call when the target position changes
- */
- void subscribeTargetPosition(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the door's state */
- void unsubscribePositionState();
-
- /** Unsubscribes from changes in the door's current position */
- void unsubscribeCurrentPosition();
-
- /** Unsubscribes from changes in the door's target position */
- void unsubscribeTargetPosition();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new WindowService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/WindowCoveringAccessory.java b/src/main/java/io/github/hapjava/accessories/WindowCoveringAccessory.java
deleted file mode 100644
index 1b618d66f..000000000
--- a/src/main/java/io/github/hapjava/accessories/WindowCoveringAccessory.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package io.github.hapjava.accessories;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.windowcovering.PositionStateEnum;
-import io.github.hapjava.services.Service;
-import io.github.hapjava.services.impl.WindowCoveringService;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.concurrent.CompletableFuture;
-
-/** A window covering, like blinds, which can be remotely controlled. */
-public interface WindowCoveringAccessory extends HomekitAccessory {
- /**
- * Retrieves the current position
- *
- * @return a future that will contain the position as a value between 0 and 100
- */
- CompletableFuture getCurrentPosition();
-
- /**
- * Retrieves the target position
- *
- * @return a future that will contain the target position as a value between 0 and 100
- */
- CompletableFuture getTargetPosition();
-
- /**
- * Retrieves the state of the position: increasing, decreasing, or stopped
- *
- * @return a future that will contain the current state
- */
- CompletableFuture getPositionState();
-
- /**
- * Sets the target position
- *
- * @param position the target position to set, as a value between 1 and 100
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetPosition(int position) throws Exception;
-
- /**
- * Subscribes to changes in the current position.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentPosition(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the target position.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetPosition(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the position state: increasing, decreasing, or stopped
- *
- * @param callback the function to call when the state changes.
- */
- void subscribePositionState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current position. */
- void unsubscribeCurrentPosition();
-
- /** Unsubscribes from changes in the target position. */
- void unsubscribeTargetPosition();
-
- /** Unsubscribes from changes in the position state */
- void unsubscribePositionState();
-
- @Override
- default Collection getServices() {
- return Collections.singleton(new WindowCoveringService(this));
- }
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithAccessoryFlags.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithAccessoryFlags.java
deleted file mode 100644
index 27d9c2e18..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithAccessoryFlags.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.accessoryinformation.AccessoryFlagsEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with accessory flags, which indicates that additional setup is required */
-public interface AccessoryWithAccessoryFlags {
-
- /**
- * When set indicates accessory requires additional setup.
- *
- * @return a future that will contain the accessory flags
- */
- CompletableFuture getAccessoryFlags();
-
- /**
- * Subscribes to changes in accessory flags
- *
- * @param callback the function to call when the accessory flags changes.
- */
- void subscribeAccessoryFlags(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the accessory flags . */
- void unsubscribeAccessoryFlags();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithActive.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithActive.java
deleted file mode 100644
index 4ad11be63..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithActive.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.ActiveEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with active characteristic {@link
- * io.github.hapjava.characteristics.impl.common.ActiveCharacteristic}.
- */
-public interface AccessoryWithActive {
-
- /**
- * Retrieves the active state (see {@link
- * io.github.hapjava.characteristics.impl.common.ActiveEnum} for supported values).
- *
- * @return a future that will contain the active state
- */
- CompletableFuture getActive();
-
- /**
- * Set the active state (see {@link ActiveEnum} for supported values).
- *
- * @param active active state
- * @return a future that completes when the change is made
- */
- CompletableFuture setActive(ActiveEnum active);
-
- /**
- * Subscribes to changes in the active state.
- *
- * @param callback the function to call when the active state changes.
- */
- void subscribeActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the active state. */
- void unsubscribeActive();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithAirPlayEnable.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithAirPlayEnable.java
deleted file mode 100644
index 76b90b43f..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithAirPlayEnable.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with AirPlay enable characteristic {@link
- * io.github.hapjava.characteristics.impl.common.AirPlayEnableCharacteristic}.
- */
-public interface AccessoryWithAirPlayEnable {
-
- /**
- * Retrieves the AirPlay enable state
- *
- * @return a future that will contain the AirPlay enable state.
- */
- CompletableFuture getAirPlayEnable();
-
- /**
- * Sets the AirPlay enable state
- *
- * @param state AirPlay enable state
- * @return a future that completes when the AirPlay enable is changed
- * @throws Exception when the AirPlay enable cannot be set
- */
- CompletableFuture setAirPlayEnable(Integer state) throws Exception;
-
- /**
- * Subscribes to changes in the AirPlay enable state.
- *
- * @param callback the function to call when the AirPlay enable state changes.
- */
- void subscribeAirPlayEnable(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the AirPlay enable state. */
- void unsubscribeAirPlayEnable();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithBrightness.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithBrightness.java
deleted file mode 100644
index 4fa4557c2..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithBrightness.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with brightness values.
- *
- * @author Andy Lintner
- */
-public interface AccessoryWithBrightness {
-
- /**
- * Retrieves the current brightness of the light
- *
- * @return a future that will contain the brightness, expressed as an integer between 0 and 100.
- */
- CompletableFuture getBrightness();
-
- /**
- * Sets the current brightness of the light
- *
- * @param value the brightness, on a scale of 0 to 100, to set
- * @return a future that completes when the brightness is changed
- * @throws Exception when the brightness cannot be set
- */
- CompletableFuture setBrightness(Integer value) throws Exception;
-
- /**
- * Subscribes to changes in the brightness of the light.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeBrightness(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the brightness of the light. */
- void unsubscribeBrightness();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCarbonDioxideLevel.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCarbonDioxideLevel.java
deleted file mode 100644
index bd143b22f..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCarbonDioxideLevel.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.carbondioxidesensor.CarbonDioxideLevelCharacteristic;
-import io.github.hapjava.characteristics.impl.carbondioxidesensor.CarbonDioxidePeakLevelCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with carbon dioxide level and peak level characteristic. */
-public interface AccessoryWithCarbonDioxideLevel {
-
- /**
- * Retrieves the carbon dioxide peak level
- *
- * @return a future that will contain the carbon dioxide level as a value between 0 and 100000
- */
- CompletableFuture getCarbonDioxidePeakLevel();
-
- /**
- * Retrieves the carbon dioxide level
- *
- * @return a future that will contain the carbon dioxide level as a value between 0 and 100000
- */
- CompletableFuture getCarbonDioxideLevel();
-
- /**
- * return the min value for carbon dioxide level. overwrite if you want to change the default
- * value.
- *
- * @return min carbon dioxide level
- */
- default double getMinCarbonDioxideLevel() {
- return CarbonDioxideLevelCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for carbon dioxide level. overwrite if you want to change the default
- * value.
- *
- * @return max carbon dioxide level
- */
- default double getMaxCarbonDioxideLevel() {
- return CarbonDioxideLevelCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for carbon dioxide level. overwrite if you want to change the default
- * value.
- *
- * @return min step carbon dioxide level
- */
- default double getMinStepCarbonDioxideLevel() {
- return CarbonDioxideLevelCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * return the min value for carbon dioxide peak level. overwrite if you want to change the default
- * value.
- *
- * @return min carbon dioxide peak level
- */
- default double getMinCarbonDioxidePeakLevel() {
- return CarbonDioxidePeakLevelCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for carbon dioxide peak level. overwrite if you want to change the default
- * value.
- *
- * @return max carbon dioxide peak level
- */
- default double getMaxCarbonDioxidePeakLevel() {
- return CarbonDioxidePeakLevelCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for carbon dioxide peak level. overwrite if you want to change the
- * default value.
- *
- * @return min step carbon dioxide peak level
- */
- default double getMinStepCarbonDioxidePeakLevel() {
- return CarbonDioxidePeakLevelCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in the carbon dioxide level.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCarbonDioxideLevel(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the carbon dioxide level. */
- void unsubscribeCarbonDioxideLevel();
-
- /**
- * Subscribes to changes in the carbon dioxide level.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCarbonDioxidePeakLevel(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the carbon dioxide level. */
- void unsubscribeCarbonDioxidePeakLevel();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCarbonMonoxideLevel.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCarbonMonoxideLevel.java
deleted file mode 100644
index cbccd9647..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCarbonMonoxideLevel.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.carbonmonoxidesensor.CarbonMonoxideLevelCharacteristic;
-import io.github.hapjava.characteristics.impl.carbonmonoxidesensor.CarbonMonoxidePeakLevelCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with carbon monoxide level and peak level characteristic. */
-public interface AccessoryWithCarbonMonoxideLevel {
-
- /**
- * Retrieves the carbon monoxide peak level
- *
- * @return a future that will contain the carbon monoxide level as a value between 0 and 100000
- */
- CompletableFuture getCarbonMonoxidePeakLevel();
-
- /**
- * Retrieves the carbon monoxide level
- *
- * @return a future that will contain the carbon monoxide level as a value between 0 and 100000
- */
- CompletableFuture getCarbonMonoxideLevel();
-
- /**
- * return the min value for carbon monoxide level. overwrite if you want to change the default
- * value.
- *
- * @return min carbon monoxide level
- */
- default double getMinCarbonMonoxideLevel() {
- return CarbonMonoxideLevelCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for carbon monoxide level. overwrite if you want to change the default
- * value.
- *
- * @return max carbon monoxide level
- */
- default double getMaxCarbonMonoxideLevel() {
- return CarbonMonoxideLevelCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for carbon monoxide level. overwrite if you want to change the
- * default value.
- *
- * @return min step carbon monoxide level
- */
- default double getMinStepCarbonMonoxideLevel() {
- return CarbonMonoxideLevelCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * return the min value for carbon monoxide peak level. overwrite if you want to change the
- * default value.
- *
- * @return min carbon monoxide peak level
- */
- default double getMinCarbonMonoxidePeakLevel() {
- return CarbonMonoxidePeakLevelCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for carbon monoxide peak level. overwrite if you want to change the
- * default value.
- *
- * @return max carbon monoxide peak level
- */
- default double getMaxCarbonMonoxidePeakLevel() {
- return CarbonMonoxidePeakLevelCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for carbon monoxide peak level. overwrite if you want to change the
- * default value.
- *
- * @return min step carbon monoxide peak level
- */
- default double getMinStepCarbonMonoxidePeakLevel() {
- return CarbonMonoxidePeakLevelCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in the carbon monoxide level.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCarbonMonoxideLevel(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the carbon monoxide level. */
- void unsubscribeCarbonMonoxideLevel();
-
- /**
- * Subscribes to changes in the carbon monoxide level.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCarbonMonoxidePeakLevel(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the carbon monoxide level. */
- void unsubscribeCarbonMonoxidePeakLevel();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithClosedCaptions.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithClosedCaptions.java
deleted file mode 100644
index c13da3289..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithClosedCaptions.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.television.ClosedCaptionsEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with closed captions characteristic {@link
- * io.github.hapjava.characteristics.impl.television.ClosedCaptionsCharacteristic}.
- */
-public interface AccessoryWithClosedCaptions {
-
- /**
- * Retrieves the closed captions state (see {@link ClosedCaptionsEnum} for supported values).
- *
- * @return a future that will contain the closed captions
- */
- CompletableFuture getClosedCaptions();
-
- /**
- * Set the closed captions state (see {@link ClosedCaptionsEnum} for supported values).
- *
- * @param closedCaptions closed captions
- * @return a future that completes when the change is made
- */
- CompletableFuture setClosedCaptions(ClosedCaptionsEnum closedCaptions);
-
- /**
- * Subscribes to changes in the closed captions.
- *
- * @param callback the function to call when the closed captions changes.
- */
- void subscribeClosedCaptions(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the closed captions. */
- void unsubscribeClosedCaptions();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithColor.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithColor.java
deleted file mode 100644
index e8f2dd66a..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithColor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with Color
- *
- * @author Andy Lintner
- */
-public interface AccessoryWithColor {
-
- /**
- * Retrieves the current hue of the light.
- *
- * @return a future that will contain the hue, expressed in arc degrees from 0 to 360.
- */
- CompletableFuture getHue();
-
- /**
- * Sets the current hue of the light
- *
- * @param value the hue to set, expressed in arc degrees from 0 to 360.
- * @return a future that completes when the hue is changed
- * @throws Exception when the hue cannot be changed.
- */
- CompletableFuture setHue(Double value) throws Exception;
-
- /**
- * Subscribes to changes in the hue of the light.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeHue(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the hue of the light. */
- void unsubscribeHue();
-
- /**
- * Retrieves the saturation of the light.
- *
- * @return a future that will contain the saturation, expressed as a value between 0 and 100.
- */
- CompletableFuture getSaturation();
-
- /**
- * Sets the saturation of the light.
- *
- * @param value the saturation to set, expressed as a value between 0 and 100.
- * @return a future that completes when the saturation is changed.
- * @throws Exception when the saturation cannot be set.
- */
- CompletableFuture setSaturation(Double value) throws Exception;
-
- /**
- * Subscribes to changes in the saturation of the light.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeSaturation(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the saturation of the light. */
- void unsubscribeSaturation();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithColorTemperature.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithColorTemperature.java
deleted file mode 100644
index ecf74ba63..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithColorTemperature.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.lightbulb.ColorTemperatureCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with color temperature. */
-public interface AccessoryWithColorTemperature {
-
- /**
- * Retrieves the color temperature
- *
- * @return a future that will contain the brightness, expressed as an integer between 0 and 100.
- */
- CompletableFuture getColorTemperature();
-
- /**
- * Sets the color temperature
- *
- * @param value the brightness, on a scale of 0 to 100, to set
- * @return a future that completes when the brightness is changed
- * @throws Exception when the brightness cannot be set
- */
- CompletableFuture setColorTemperature(Integer value) throws Exception;
-
- /**
- * return the min value for color temperature. overwrite if you want to change the default value.
- *
- * @return min color temperature
- */
- default int getMinColorTemperature() {
- return ColorTemperatureCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for color temperature. overwrite if you want to change the default value.
- *
- * @return max color temperature
- */
- default int getMaxColorTemperature() {
- return ColorTemperatureCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * Subscribes to changes in color temperature.
- *
- * @param callback the function to call when the color temperature changes.
- */
- void subscribeColorTemperature(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the color temperature. */
- void unsubscribeColorTemperature();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithConfiguredName.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithConfiguredName.java
deleted file mode 100644
index 0c9528130..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithConfiguredName.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with configured name. */
-public interface AccessoryWithConfiguredName {
-
- /**
- * Retrieves configured name.
- *
- * @return configured name
- */
- CompletableFuture getConfiguredName();
-
- /**
- * Sets the configured name
- *
- * @param name configured name
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setConfiguredName(String name) throws Exception;
-
- /**
- * Subscribes to changes in configured name.
- *
- * @param callback the function to call when the configureed name changes.
- */
- void subscribeConfiguredName(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the configured name state. */
- void unsubscribeConfiguredName();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCoolingThresholdTemperature.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCoolingThresholdTemperature.java
deleted file mode 100644
index c42398a10..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCoolingThresholdTemperature.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with cooling threshold temperature. */
-public interface AccessoryWithCoolingThresholdTemperature {
-
- /**
- * Retrieves the temperature above which the thermostat should begin cooling.
- *
- * @return a future that will contain the threshold temperature, in celsius degrees.
- */
- CompletableFuture getCoolingThresholdTemperature();
-
- /**
- * Sets the temperature above which the thermostat should begin cooling.
- *
- * @param value the threshold temperature, in celsius degrees.
- * @throws Exception when the threshold temperature cannot be changed.
- */
- void setCoolingThresholdTemperature(Double value) throws Exception;
-
- /**
- * return the min value for cooling threshold temperature. overwrite if you want to change the
- * default value.
- *
- * @return min threshold temperature
- */
- default double getMinCoolingThresholdTemperature() {
- return 10;
- }
-
- /**
- * return the max value for cooling threshold temperature. overwrite if you want to change the
- * default value.
- *
- * @return max threshold temperature
- */
- default double getMaxCoolingThresholdTemperature() {
- return 35;
- }
-
- /**
- * return the min step value for cooling threshold temperature. overwrite if you want to change
- * the default value.
- *
- * @return step for threshold temperature
- */
- default double getStepCoolingThresholdTemperature() {
- return 0.1;
- }
-
- /**
- * Subscribes to changes in the cooling threshold.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCoolingThresholdTemperature(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the cooling threshold. */
- void unsubscribeCoolingThresholdTemperature();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentHorizontalTilting.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentHorizontalTilting.java
deleted file mode 100644
index b5ce298bf..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentHorizontalTilting.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with current horizontal tilting characteristic.
- *
- * @author Andy Lintner
- */
-public interface AccessoryWithCurrentHorizontalTilting {
-
- /**
- * Retrieves the current horizontal tilt angle
- *
- * @return a future that will contain the position as a value between -90 and 90
- */
- CompletableFuture getCurrentHorizontalTiltAngle();
-
- /**
- * Subscribes to changes in the current horizontal tilt angle.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentHorizontalTiltAngle(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current horizontal tilt angle */
- void unsubscribeCurrentHorizontalTiltAngle();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentMediaState.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentMediaState.java
deleted file mode 100644
index 22350d9b4..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentMediaState.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.television.CurrentMediaStateEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with current media state characteristic {@link
- * io.github.hapjava.characteristics.impl.television.CurrentMediaStateCharacteristic}.
- */
-public interface AccessoryWithCurrentMediaState {
-
- /**
- * Retrieves the current media state (see {@link
- * io.github.hapjava.characteristics.impl.television.CurrentMediaStateEnum} for supported values).
- *
- * @return a future that will contain the current media state
- */
- CompletableFuture getCurrentMediaState();
-
- /**
- * Subscribes to changes in the current media state.
- *
- * @param callback the function to call when the current media state changes.
- */
- void subscribeCurrentMediaState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current media state. */
- void unsubscribeCurrentMediaState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentRelativeHumidity.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentRelativeHumidity.java
deleted file mode 100644
index 562e42649..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentRelativeHumidity.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** accessory with current relative humidity. */
-public interface AccessoryWithCurrentRelativeHumidity {
-
- /**
- * Retrieves the current relative humidity.
- *
- * @return a future that will contain the current relative humidity.
- */
- CompletableFuture getCurrentRelativeHumidity();
-
- /**
- * Subscribes to changes in current relative humidity.
- *
- * @param callback the function to call when the current relative humidity changes.
- */
- void subscribeCurrentRelativeHumidity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current relative humidity. */
- void unsubscribeCurrentRelativeHumidity();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentTilting.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentTilting.java
deleted file mode 100644
index 54a558491..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentTilting.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with current tilting characteristic. */
-public interface AccessoryWithCurrentTilting {
-
- /**
- * Retrieves the current tilt angle
- *
- * @return a future that will contain the position as a value between -90 and 90
- */
- CompletableFuture getCurrentTiltAngle();
-
- /**
- * Subscribes to changes in the current tilt angle.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentTiltAngle(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current tilt angle */
- void unsubscribeCurrentTiltAngle();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentVerticalTilting.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentVerticalTilting.java
deleted file mode 100644
index 3b996c925..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithCurrentVerticalTilting.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with current vertical tilting characteristic. */
-public interface AccessoryWithCurrentVerticalTilting {
- /**
- * Retrieves the current vertical tilt angle
- *
- * @return a future that will contain the position as a value between -90 and 90
- */
- CompletableFuture getCurrentVerticalTiltAngle();
-
- /**
- * Subscribes to changes in the current vertical tilt angle.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeCurrentVerticalTiltAngle(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current vertical tilt angle */
- void unsubscribeCurrentVerticalTiltAngle();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithDuration.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithDuration.java
deleted file mode 100644
index a5cebf97c..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithDuration.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.valve.SetDurationCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with duration characteristic. */
-public interface AccessoryWithDuration {
-
- /**
- * Retrieves the current set duration;
- *
- * @return a future with the value
- */
- CompletableFuture getSetDuration();
-
- /**
- * return the min value for duration. overwrite if you want to change the default value.
- *
- * @return min remaining duration
- */
- default int getMinDuration() {
- return SetDurationCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for duration. overwrite if you want to change the default value.
- *
- * @return max duration
- */
- default int getMaxDuration() {
- return SetDurationCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * Sets the duration for which the service should run.
- *
- * @param value duration in seconds
- * @return a future that completes when the change is made
- */
- CompletableFuture setSetDuration(int value);
-
- /**
- * Subscribes to changes in the set duration
- *
- * @param callback the function when the duration has changed
- */
- void subscribeSetDuration(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeSetDuration();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithFanState.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithFanState.java
deleted file mode 100644
index 75be61e8c..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithFanState.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.fan.CurrentFanStateEnum;
-import io.github.hapjava.characteristics.impl.fan.TargetFanStateEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * An accessory with current and target fan states.
- *
- * @author Andy Lintner
- */
-public interface AccessoryWithFanState {
-
- /**
- * Retrieves the current state of the fan (INACTIVE, IDLE, BLOWING AIR).
- *
- * @return a future that will contain the state
- */
- CompletableFuture getCurrentFanState();
-
- /**
- * Retrieves the target state of the fan (MANUAL, AUTO).
- *
- * @return a future that will contain the state
- */
- CompletableFuture getTargetFanState();
-
- /**
- * Set the target state of the fan (MANUAL, AUTO).
- *
- * @param targetState target state
- * @return a future that completes when the change is made
- */
- CompletableFuture setTargetFanState(TargetFanStateEnum targetState);
-
- /**
- * Subscribes to changes in the current fan state.
- *
- * @param callback the function to call when the direction changes.
- */
- void subscribeCurrentFanState(HomekitCharacteristicChangeCallback callback);
-
- /**
- * Subscribes to changes in the target fan state.
- *
- * @param callback the function to call when the direction changes.
- */
- void subscribeTargetFanState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current state of the fan. */
- void unsubscribeCurrentFanState();
-
- /** Unsubscribes from changes in the target state of the fan. */
- void unsubscribeTargetFanState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithFilterLifeLevel.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithFilterLifeLevel.java
deleted file mode 100644
index 2b94d4ec9..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithFilterLifeLevel.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with filter level characteristics */
-public interface AccessoryWithFilterLifeLevel {
-
- /**
- * what's the filter life level, percentage wise
- *
- * @return filter life level
- */
- CompletableFuture getFilterLifeLevel();
-
- /**
- * Subscribes to changes in the filter life level.
- *
- * @param callback the function to call when the level changes.
- */
- void subscribeFilterLifeLevel(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the current filter life level. */
- void unsubscribeFilterLifeLevel();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHardwareRevision.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHardwareRevision.java
deleted file mode 100644
index 866921817..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHardwareRevision.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with hardware revision. */
-public interface AccessoryWithHardwareRevision {
-
- /**
- * Returns a hardware revision to display in iOS.
- *
- * @return the hardware revision, or null.
- */
- CompletableFuture getHardwareRevision();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHeatingThresholdTemperature.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHeatingThresholdTemperature.java
deleted file mode 100644
index 02cb3f819..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHeatingThresholdTemperature.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-public interface AccessoryWithHeatingThresholdTemperature {
-
- /**
- * Retrieves the temperature below which the thermostat should begin heating.
- *
- * @return a future that will contain the threshold temperature, in celsius degrees.
- */
- CompletableFuture getHeatingThresholdTemperature();
-
- /**
- * Sets the temperature below which the thermostat should begin heating.
- *
- * @param value the threshold temperature, in celsius degrees.
- * @throws Exception when the threshold temperature cannot be changed.
- */
- void setHeatingThresholdTemperature(Double value) throws Exception;
-
- /**
- * return the min value for heating threshold temperature. overwrite if you want to change the
- * default value.
- *
- * @return min threshold temperature
- */
- default double getMinHeatingThresholdTemperature() {
- return 0;
- }
-
- /**
- * return the max value for heating threshold temperature. overwrite if you want to change the
- * default value.
- *
- * @return max threshold temperature
- */
- default double getMaxHeatingThresholdTemperature() {
- return 25;
- }
-
- /**
- * return the min step value for heating threshold temperature. overwrite if you want to change
- * the default value.
- *
- * @return step for threshold temperature
- */
- default double getStepHeatingThresholdTemperature() {
- return 0.1;
- }
-
- /**
- * Subscribes to changes in the heating threshold.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeHeatingThresholdTemperature(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the heating threshold. */
- void unsubscribeHeatingThresholdTemperature();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHoldPosition.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHoldPosition.java
deleted file mode 100644
index b1d0d65fa..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHoldPosition.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with hold position */
-public interface AccessoryWithHoldPosition {
-
- /**
- * Sets the hold position state
- *
- * @param hold whether or not to hold the current position state
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setHoldPosition(boolean hold) throws Exception;
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHumidityDehumidifierThreshold.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHumidityDehumidifierThreshold.java
deleted file mode 100644
index 4dff49352..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHumidityDehumidifierThreshold.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Dehumidifier with humidity threshold. */
-public interface AccessoryWithHumidityDehumidifierThreshold {
-
- /**
- * Retrieves the humidity threshold.
- *
- * @return a future that will contain the humidity threshold.
- */
- CompletableFuture getHumidityThreshold();
-
- /**
- * Sets the humidity threshold above which the dehumidifier should be turned on.
- *
- * @param value the humidity threshold, in celsius degrees.
- * @throws Exception when the threshold cannot be changed.
- */
- void setHumidityThreshold(Double value) throws Exception;
-
- /**
- * Subscribes to changes in the humidity threshold.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeHumidityThreshold(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the humidity threshold. */
- void unsubscribeHumidityThreshold();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHumidityHumidifierThreshold.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHumidityHumidifierThreshold.java
deleted file mode 100644
index f783a3039..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithHumidityHumidifierThreshold.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Humidifier with humidity threshold. */
-public interface AccessoryWithHumidityHumidifierThreshold {
-
- /**
- * Retrieves the humidity threshold.
- *
- * @return a future that will contain the humidity threshold.
- */
- CompletableFuture getHumidityThreshold();
-
- /**
- * Sets the humidity threshold above which the humidifier should be turned on.
- *
- * @param value the humidity threshold, in celsius degrees.
- * @throws Exception when the threshold cannot be changed.
- */
- void setHumidityThreshold(Double value) throws Exception;
-
- /**
- * Subscribes to changes in the humidity threshold.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeHumidityThreshold(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the humidity threshold. */
- void unsubscribeHumidityThreshold();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithIdentifier.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithIdentifier.java
deleted file mode 100644
index b181d4d99..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithIdentifier.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with identifier characteristic {@link
- * io.github.hapjava.characteristics.impl.common.IdentifierCharacteristic}.
- */
-public interface AccessoryWithIdentifier {
-
- /**
- * Retrieves the identifier of service.
- *
- * @return a future with the identifier
- */
- CompletableFuture getIdentifier();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithInputDeviceType.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithInputDeviceType.java
deleted file mode 100644
index fca5f5df1..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithInputDeviceType.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.inputsource.InputDeviceTypeEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with input devices, e.g. television. {@link
- * io.github.hapjava.characteristics.impl.inputsource.InputDeviceTypeCharacteristic}
- */
-public interface AccessoryWithInputDeviceType {
-
- /**
- * Retrieves the input device type. See {@link InputDeviceTypeEnum} for supported values.
- *
- * @return a future with the value
- */
- CompletableFuture getInputDeviceType();
-
- /**
- * Subscribes to changes in input device type.
- *
- * @param callback the function when the input device type changes
- */
- void subscribeInputDeviceType(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeInputDeviceType();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithIsConfigured.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithIsConfigured.java
deleted file mode 100644
index 017fdce5f..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithIsConfigured.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.IsConfiguredEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with isConfigured characteristics. This characteristic describes if the service is
- * configured for use. For example, all of the valves in an irrigation system may not be configured
- * depending on physical wire connection.
- */
-public interface AccessoryWithIsConfigured {
-
- /**
- * isConfigured state
- *
- * @return a future that will contain the isConfigured state
- */
- CompletableFuture getIsConfigured();
-
- /**
- * Set the isConfigured (NOT_CONFIGURED, CONFIGURED).
- *
- * @param isConfigured isConfigured state
- * @return a future that completes when the change is made
- */
- CompletableFuture setIsConfigured(IsConfiguredEnum isConfigured);
-
- /**
- * Subscribes to changes in isConfigured state
- *
- * @param callback the function to call when the isConfigured state changes.
- */
- void subscribeIsConfigured(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the isConfigured state. */
- void unsubscribeIsConfigured();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithLockCurrentState.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithLockCurrentState.java
deleted file mode 100644
index f3f9782ca..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithLockCurrentState.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.lock.LockCurrentStateEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with current lock state. */
-public interface AccessoryWithLockCurrentState {
-
- /**
- * Retrieves the lock states. The current state of the physical security mechanism (e.g. deadbolt)
- *
- * @return a future with the value
- */
- CompletableFuture getLockCurrentState();
-
- /**
- * Subscribes to changes in lock current state.
- *
- * @param callback the function when the lock current state changes
- */
- void subscribeLockCurrentState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeLockCurrentState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithLockTargetState.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithLockTargetState.java
deleted file mode 100644
index 41ef0d3ed..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithLockTargetState.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.lock.LockTargetStateEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with lock target state. */
-public interface AccessoryWithLockTargetState {
-
- /**
- * Retrieves the lock states. The target state of the physical security mechanism (e.g. deadbolt)
- *
- * @return a future with the value
- */
- CompletableFuture getLockTargetState();
-
- /**
- * Sets the lock target state
- *
- * @param state the target state to set
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setLockTargetState(LockTargetStateEnum state) throws Exception;
-
- /**
- * Subscribes to changes in lock target state.
- *
- * @param callback the function when the lock target state changes
- */
- void subscribeLockTargetState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeLockTargetState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithMute.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithMute.java
deleted file mode 100644
index a0bb08579..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithMute.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with mute characteristic {@link
- * io.github.hapjava.characteristics.impl.audio.MuteCharacteristic}.
- */
-public interface AccessoryWithMute {
-
- /**
- * Retrieves mute status.
- *
- * @return true if accessory is muted
- */
- CompletableFuture isMuted();
-
- /**
- * Sets the mute status
- *
- * @param mute true if accessory should be muted
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setMute(boolean mute) throws Exception;
-
- /**
- * Subscribes to changes in mute state.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeMuteState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the mute state. */
- void unsubscribeMuteState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithName.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithName.java
deleted file mode 100644
index 626429124..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithName.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with name. */
-public interface AccessoryWithName {
-
- /**
- * Retrieves the name of service.
- *
- * @return a future with the name
- */
- CompletableFuture getName();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithNitrogenDioxideDensity.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithNitrogenDioxideDensity.java
deleted file mode 100644
index 6aead4f98..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithNitrogenDioxideDensity.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.airquality.NitrogenDioxideDensityCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with nitrogen dioxide density characteristic. */
-public interface AccessoryWithNitrogenDioxideDensity {
-
- /**
- * Retrieves the nitrogen dioxide density.
- *
- * @return a future with the nitrogen dioxide density
- */
- CompletableFuture getNitrogenDioxideDensity();
-
- /**
- * return the min value for nitrogen dioxide density. overwrite if you want to change the default
- * value.
- *
- * @return min nitrogen dioxide density
- */
- default double getMinNitrogenDioxideDensity() {
- return NitrogenDioxideDensityCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for nitrogen dioxide density. overwrite if you want to change the default
- * value.
- *
- * @return max nitrogen dioxide density
- */
- default double getMaxNitrogenDioxideDensity() {
- return NitrogenDioxideDensityCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for nitrogen dioxide density. overwrite if you want to change the
- * default value.
- *
- * @return min step nitrogen dioxide density
- */
- default double getMinStepNitrogenDioxideDensity() {
- return NitrogenDioxideDensityCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in nitrogen dioxide density.
- *
- * @param callback the function when nitrogen dioxide density changes
- */
- void subscribeNitrogenDioxideDensity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeNitrogenDioxideDensity();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithObstructionDetection.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithObstructionDetection.java
deleted file mode 100644
index 859379cd0..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithObstructionDetection.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with hold position */
-public interface AccessoryWithObstructionDetection {
-
- /**
- * Retrieves an indication obstructed is detected
- *
- * @return a future that will contain a boolean indicating whether an obstruction is present
- */
- CompletableFuture getObstructionDetected();
-
- /**
- * Subscribes to changes in the obstruction detected state
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeObstructionDetected(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the obstruction detected state */
- void unsubscribeObstructionDetected();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithOzoneDensity.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithOzoneDensity.java
deleted file mode 100644
index efba2a49f..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithOzoneDensity.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.airquality.OzoneDensityCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with Ozone Density characteristic. */
-public interface AccessoryWithOzoneDensity {
-
- /**
- * Retrieves the ozone density.
- *
- * @return a future with the ozone density
- */
- CompletableFuture getOzoneDensity();
-
- /**
- * return the min value for ozone density. overwrite if you want to change the default value.
- *
- * @return min ozone density
- */
- default double getMinOzoneDensity() {
- return OzoneDensityCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for ozone density. overwrite if you want to change the default value.
- *
- * @return max ozone density
- */
- default double getMaxOzoneDensity() {
- return OzoneDensityCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for ozone density. overwrite if you want to change the default value.
- *
- * @return min step ozone density
- */
- default double getMinStepOzoneDensity() {
- return OzoneDensityCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in ozone density.
- *
- * @param callback the function when ozone density changes
- */
- void subscribeOzoneDensity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeOzoneDensity();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPM10Density.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPM10Density.java
deleted file mode 100644
index 2ae3cded0..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPM10Density.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.airquality.PM10DensityCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with PM10 Density characteristic. */
-public interface AccessoryWithPM10Density {
-
- /**
- * Retrieves the PM10 density.
- *
- * @return a future with the PM10 density
- */
- CompletableFuture getPM10Density();
-
- /**
- * return the min value for PM10 density. overwrite if you want to change the default value.
- *
- * @return min PM10 density
- */
- default double getMinPM10Density() {
- return PM10DensityCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for PM10 density. overwrite if you want to change the default value.
- *
- * @return max PM10 density
- */
- default double getMaxPM10Density() {
- return PM10DensityCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for PM10 density. overwrite if you want to change the default value.
- *
- * @return min step PM10 density
- */
- default double getMinStepPM10Density() {
- return PM10DensityCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in PM10 density.
- *
- * @param callback the function when PM10 density changes
- */
- void subscribePM10Density(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribePM10Density();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPM25Density.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPM25Density.java
deleted file mode 100644
index 02488f52d..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPM25Density.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.airquality.PM25DensityCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with PM25 Density characteristic. */
-public interface AccessoryWithPM25Density {
-
- /**
- * Retrieves the PM25 density.
- *
- * @return a future with the PM25 density
- */
- CompletableFuture getPM25Density();
-
- /**
- * return the min value for PM25 density. overwrite if you want to change the default value.
- *
- * @return min PM25 density
- */
- default double getMinPM25Density() {
- return PM25DensityCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for PM25 density. overwrite if you want to change the default value.
- *
- * @return max PM25 density
- */
- default double getMaxPM25Density() {
- return PM25DensityCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for PM25 density. overwrite if you want to change the default value.
- *
- * @return min step PM25 density
- */
- default double getMinStepPM25Density() {
- return PM25DensityCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in PM25 density.
- *
- * @param callback the function when PM25 density changes
- */
- void subscribePM25Density(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribePM25Density();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPhysicalControlsLock.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPhysicalControlsLock.java
deleted file mode 100644
index 2e1e3cd87..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPhysicalControlsLock.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.fan.LockPhysicalControlsEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with physical controls which can be locked, e.g. child lock */
-public interface AccessoryWithPhysicalControlsLock {
-
- /**
- * OPTIONAL: Retrieves the lock controls.
- *
- * @return a future that will contain the lock controls
- */
- CompletableFuture getLockControls();
-
- /**
- * Set the lock controls (DISABLED, ENABLED).
- *
- * @param lockControls lock controls mode
- * @return a future that completes when the change is made
- */
- CompletableFuture setLockControls(LockPhysicalControlsEnum lockControls);
-
- /**
- * Subscribes to changes in the lock controls.
- *
- * @param callback the function to call when the lock controls changes.
- */
- void subscribeLockControls(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the lock controls. */
- void unsubscribeLockControls();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPictureMode.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPictureMode.java
deleted file mode 100644
index b369b98bf..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPictureMode.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.television.PictureModeEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with picture mode characteristic {@link
- * io.github.hapjava.characteristics.impl.television.PictureModeCharacteristic}.
- */
-public interface AccessoryWithPictureMode {
-
- /**
- * Retrieves the picture mode (see {@link
- * io.github.hapjava.characteristics.impl.television.PictureModeEnum} for supported values).
- *
- * @return a future that will contain the picture mode
- */
- CompletableFuture getPictureMode();
-
- /**
- * Set the picture mode (see {@link
- * io.github.hapjava.characteristics.impl.television.PictureModeEnum} for supported values).
- *
- * @param pictureMode picture mode
- * @return a future that completes when the change is made
- */
- CompletableFuture setPictureMode(PictureModeEnum pictureMode);
-
- /**
- * Subscribes to changes in the picture mode.
- *
- * @param callback the function to call when the picture mode changes.
- */
- void subscribePictureMode(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the picture mode. */
- void unsubscribePictureMode();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPowerMode.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPowerMode.java
deleted file mode 100644
index 5abb7e6f1..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithPowerMode.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.impl.television.PowerModeEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** An accessory with power mode. */
-public interface AccessoryWithPowerMode {
-
- /**
- * Set the power mode. See {@link PowerModeEnum} for supported values
- *
- * @param mode target power mode
- * @return a future that completes when the change is made
- */
- CompletableFuture setPowerMode(PowerModeEnum mode);
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRemainingDuration.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRemainingDuration.java
deleted file mode 100644
index 7859fb396..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRemainingDuration.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.valve.RemainingDurationCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with remaining duration characteristic.
- *
- * @author Tim Harper
- */
-public interface AccessoryWithRemainingDuration {
-
- /**
- * Retrieves the remaining duration
- *
- * @return a future with the duration in seconds
- */
- CompletableFuture getRemainingDuration();
-
- /**
- * return the min value for remaining duration. overwrite if you want to change the default value.
- *
- * @return min remaining duration
- */
- default int getMinRemainingDuration() {
- return RemainingDurationCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for remaining duration. overwrite if you want to change the default value.
- *
- * @return max remaining duration
- */
- default int getMaxRemainingDuration() {
- return RemainingDurationCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * Subscribes to changes in the duration; note it is not necessary to emit a change every second,
- * homekit infers the countdown progress client side.
- *
- * @param callback the function when the existing duration has been replaced with a new one.
- */
- void subscribeRemainingDuration(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeRemainingDuration();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithResetFilterIndication.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithResetFilterIndication.java
deleted file mode 100644
index 737ca03ec..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithResetFilterIndication.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with filter reset characteristics */
-public interface AccessoryWithResetFilterIndication {
-
- /**
- * Request to reset the filter level
- *
- * @param indication always 1, by HomeKit protocol. (to be ignored)
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture resetFilterIndication(Integer indication) throws Exception;
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRotationDirection.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRotationDirection.java
deleted file mode 100644
index 91acf9afa..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRotationDirection.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.fan.RotationDirectionEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** accessory with rotation direction characteristics. */
-public interface AccessoryWithRotationDirection {
-
- /**
- * Retrieves the current rotation direction.
- *
- * @return a future that will contain the direction
- */
- CompletableFuture getRotationDirection();
-
- /**
- * Sets the rotation direction
- *
- * @param direction the direction to set
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setRotationDirection(RotationDirectionEnum direction) throws Exception;
-
- /**
- * Subscribes to changes in the rotation direction.
- *
- * @param callback the function to call when the direction changes.
- */
- void subscribeRotationDirection(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the rotation direction. */
- void unsubscribeRotationDirection();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRotationSpeed.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRotationSpeed.java
deleted file mode 100644
index ef39947ce..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithRotationSpeed.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** accessory with rotation speed characteristics. */
-public interface AccessoryWithRotationSpeed {
-
- /**
- * Retrieves the current speed of the rotation
- *
- * @return a future that will contain the speed, expressed as an integer between 0 and 100.
- */
- CompletableFuture getRotationSpeed();
-
- /**
- * Sets the speed of the rotation
- *
- * @param speed the speed to set, expressed as an integer between 0 and 100.
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setRotationSpeed(Double speed) throws Exception;
-
- /**
- * Subscribes to changes in the rotation speed.
- *
- * @param callback the function to call when the speed changes.
- */
- void subscribeRotationSpeed(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the rotation speed. */
- void unsubscribeRotationSpeed();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSecurityAlarmType.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSecurityAlarmType.java
deleted file mode 100644
index 036fd35b3..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSecurityAlarmType.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.securitysystem.SecuritySystemAlarmTypeEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** This characteristic describes the type of alarm triggered by a security system. */
-public interface AccessoryWithSecurityAlarmType {
-
- /**
- * return alarm type See {@link SecuritySystemAlarmTypeEnum} for possible values
- *
- * @return a future with the value
- */
- CompletableFuture getSecurityAlarmType();
-
- /**
- * Subscribes to changes in status alarm type
- *
- * @param callback the function when the alarm type changes
- */
- void subscribeSecurityAlarmType(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeSecurityAlarmType();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithServiceLabelIndex.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithServiceLabelIndex.java
deleted file mode 100644
index 07cb17fc7..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithServiceLabelIndex.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with service label index. T */
-public interface AccessoryWithServiceLabelIndex {
-
- /**
- * Retrieves the service label index.
- *
- * @return a future with the service label index
- */
- CompletableFuture getServiceLabelIndex();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusActive.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusActive.java
deleted file mode 100644
index 6bd7a18b5..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusActive.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with status active. */
-public interface AccessoryWithStatusActive {
-
- /**
- * Retrieves the status active. A value of true indicates that the accessory is active and is
- * functioning without any errors.
- *
- * @return a future with the value
- */
- CompletableFuture getStatusActive();
-
- /**
- * Subscribes to changes in status active.
- *
- * @param callback the function when the status active changes
- */
- void subscribeStatusActive(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeStatusActive();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusFault.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusFault.java
deleted file mode 100644
index b6b0aebdf..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusFault.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.StatusFaultEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with characteristic that describes an accessory which has a fault. */
-public interface AccessoryWithStatusFault {
-
- /**
- * Retrieves the status fault. A non-zero value indicates that the accessory has experienced a
- * fault that may be interfering with its intended functionality. A value of 0 indicates that
- * there is no fault.
- *
- * @return a future with the value
- */
- CompletableFuture getStatusFault();
-
- /**
- * Subscribes to changes in status fault.
- *
- * @param callback the function when the status fault changes
- */
- void subscribeStatusFault(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeStatusFault();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusLowBattery.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusLowBattery.java
deleted file mode 100644
index def16df5d..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusLowBattery.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.battery.StatusLowBatteryEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** This characteristic describes an accessoryʼs battery status. */
-public interface AccessoryWithStatusLowBattery {
-
- /**
- * A status of 1 indicates that the battery level of the accessory is low. Value should return to
- * 0 when the battery charges to a level thats above the low threshold.
- *
- * @return a future with the value
- */
- CompletableFuture getStatusLowBattery();
-
- /**
- * Subscribes to changes in status low battery.
- *
- * @param callback the function when the status low batter changes
- */
- void subscribeStatusLowBattery(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeStatusLowBattery();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusTampered.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusTampered.java
deleted file mode 100644
index fe25d2f44..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithStatusTampered.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.common.StatusTamperedEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** This characteristic describes an accessory which has been tampered with. */
-public interface AccessoryWithStatusTampered {
-
- /**
- * Retrieves the status tampered.
- *
- * @return a future with the value
- */
- CompletableFuture getStatusTampered();
-
- /**
- * Subscribes to changes in status tampered.
- *
- * @param callback the function when the status tampered changes
- */
- void subscribeStatusTampered(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeStatusTampered();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSulphurDioxideDensity.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSulphurDioxideDensity.java
deleted file mode 100644
index dbe0cc947..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSulphurDioxideDensity.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.airquality.SulphurDioxideDensityCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with sulphur dioxide density characteristic. */
-public interface AccessoryWithSulphurDioxideDensity {
-
- /**
- * Retrieves the sulphur dioxide density.
- *
- * @return a future with the sulphur dioxide density
- */
- CompletableFuture getSulphurDioxideDensity();
-
- /**
- * return the min value for sulphur dioxide density. overwrite if you want to change the default
- * value.
- *
- * @return min sulphur dioxide density
- */
- default double getMinSulphurDioxideDensity() {
- return SulphurDioxideDensityCharacteristic.DEFAULT_MIN_VALUE;
- }
-
- /**
- * return the max value for sulphur dioxide density. overwrite if you want to change the default
- * value.
- *
- * @return max sulphur dioxide density
- */
- default double getMaxSulphurDioxideDensity() {
- return SulphurDioxideDensityCharacteristic.DEFAULT_MAX_VALUE;
- }
-
- /**
- * return the min step value for sulphur dioxide density. overwrite if you want to change the
- * default value.
- *
- * @return min step sulphur dioxide density
- */
- default double getMinStepSulphurDioxideDensity() {
- return SulphurDioxideDensityCharacteristic.DEFAULT_STEP;
- }
-
- /**
- * Subscribes to changes in sulphur dioxide density.
- *
- * @param callback the function when sulphur dioxide density changes
- */
- void subscribeSulphurDioxideDensity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes */
- void unsubscribeSulphurDioxideDensity();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSwingMode.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSwingMode.java
deleted file mode 100644
index ae49ffee6..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithSwingMode.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.fan.SwingModeEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with Swing Mode characteristics. */
-public interface AccessoryWithSwingMode {
-
- /**
- * Retrieves the swing mode.
- *
- * @return a future that will contain the swing mode
- */
- CompletableFuture getSwingMode();
-
- /**
- * Set the swing mode (DISABLED, ENABLED).
- *
- * @param swingMode swing mode
- * @return a future that completes when the change is made
- */
- CompletableFuture setSwingMode(SwingModeEnum swingMode);
-
- /**
- * Subscribes to changes in the swing mode.
- *
- * @param callback the function to call when the swing mode changes.
- */
- void subscribeSwingMode(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the swing mode. */
- void unsubscribeSwingMode();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetHorizontalTilting.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetHorizontalTilting.java
deleted file mode 100644
index cc154520d..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetHorizontalTilting.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with target horizontal tilting characteristic.
- *
- * @author Andy Lintner
- */
-public interface AccessoryWithTargetHorizontalTilting {
-
- /**
- * Retrieves the target horizontal tilt angle
- *
- * @return a future that will contain the target position as a value between -90 and 90
- */
- CompletableFuture getTargetHorizontalTiltAngle();
-
- /**
- * Sets the target position
- *
- * @param angle the target angle to set, as a value between -90 and 90
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetHorizontalTiltAngle(int angle) throws Exception;
-
- /**
- * Subscribes to changes in the target horizontal tilt angle.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetHorizontalTiltAngle(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target horizontal tilt angle */
- void unsubscribeTargetHorizontalTiltAngle();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetMediaState.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetMediaState.java
deleted file mode 100644
index e1f1a34bd..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetMediaState.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.television.TargetMediaStateEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with target media state characteristic {@link
- * io.github.hapjava.characteristics.impl.television.TargetMediaStateCharacteristic}.
- */
-public interface AccessoryWithTargetMediaState {
-
- /**
- * Retrieves the target media state (see {@link TargetMediaStateEnum} for supported values).
- *
- * @return a future that will contain the target media state
- */
- CompletableFuture getTargetMediaState();
-
- /**
- * Set the target media state (see {@link TargetMediaStateEnum} for supported values).
- *
- * @param targetMediaState target media state
- * @return a future that completes when the change is made
- */
- CompletableFuture setTargetMediaState(TargetMediaStateEnum targetMediaState);
-
- /**
- * Subscribes to changes in the target media state.
- *
- * @param callback the function to call when the target media state changes.
- */
- void subscribeTargetMediaState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target media state. */
- void unsubscribeTargetMediaState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetRelativeHumidity.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetRelativeHumidity.java
deleted file mode 100644
index 23ac5fd97..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetRelativeHumidity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** accessory with target relative humidity. */
-public interface AccessoryWithTargetRelativeHumidity {
-
- /**
- * Retrieves the target relative humidity.
- *
- * @return a future that will contain the target relative humidity.
- */
- CompletableFuture getTargetRelativeHumidity();
-
- /**
- * Sets the target relative humidity.
- *
- * @param value the target relative humidity.
- * @throws Exception when the target relative humidity cannot be changed.
- */
- void setTargetRelativeHumidity(Double value) throws Exception;
-
- /**
- * Subscribes to changes in the target relative humidity.
- *
- * @param callback the function to call when the target relative humidity changes.
- */
- void subscribeTargetRelativeHumidity(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target relative humidity. */
- void unsubscribeTargetRelativeHumidity();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetTilting.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetTilting.java
deleted file mode 100644
index 9c2bc8009..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetTilting.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with target tilting characteristic. */
-public interface AccessoryWithTargetTilting {
-
- /**
- * Retrieves the target tilt angle
- *
- * @return a future that will contain the target position as a value between -90 and 90
- */
- CompletableFuture getTargetTiltAngle();
-
- /**
- * Sets the target tilt angle
- *
- * @param angle the target angle to set, as a value between -90 and 90
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetTiltAngle(int angle) throws Exception;
-
- /**
- * Subscribes to changes in the target tilt angle.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetTiltAngle(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target tilt angle */
- void unsubscribeTargetTiltAngle();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetVerticalTilting.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetVerticalTilting.java
deleted file mode 100644
index e87607204..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetVerticalTilting.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with target vertical tilting characteristic. */
-public interface AccessoryWithTargetVerticalTilting {
-
- /**
- * Retrieves the target vertical tilt angle
- *
- * @return a future that will contain the target position as a value between -90 and 90
- */
- CompletableFuture getTargetVerticalTiltAngle();
-
- /**
- * Sets the target position
- *
- * @param angle the target angle to set, as a value between -90 and 90
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetVerticalTiltAngle(int angle) throws Exception;
-
- /**
- * Subscribes to changes in the target vertical tilt angle.
- *
- * @param callback the function to call when the state changes.
- */
- void subscribeTargetVerticalTiltAngle(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target vertical tilt angle */
- void unsubscribeTargetVerticalTiltAngle();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetVisibilityState.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetVisibilityState.java
deleted file mode 100644
index dcadd1cc5..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTargetVisibilityState.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.inputsource.TargetVisibilityStateEnum;
-import java.util.concurrent.CompletableFuture;
-
-/** accessory with target visibility state characteristics. */
-public interface AccessoryWithTargetVisibilityState {
-
- /**
- * Retrieves the target visibility state.
- *
- * @return a future that will contain the target visibility state
- */
- CompletableFuture getTargetVisibilityState();
-
- /**
- * Sets the target visibility state
- *
- * @param state the target visibility state to set
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTargetVisibilityState(TargetVisibilityStateEnum state)
- throws Exception;
-
- /**
- * Subscribes to changes in t target visibility state.
- *
- * @param callback the function to call when the target visibility state changes.
- */
- void subscribeTargetVisibilityState(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the target visibility state. */
- void unsubscribeTargetVisibilityState();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTemperatureDisplayUnits.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTemperatureDisplayUnits.java
deleted file mode 100644
index b9407b34b..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithTemperatureDisplayUnits.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.thermostat.TemperatureDisplayUnitEnum;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Accessory with characteristic that describes units of temperature used for presentation purposes
- * (e.g. the units of temperature displayed on the screen).
- */
-public interface AccessoryWithTemperatureDisplayUnits {
-
- /**
- * Retrieves temperature display units
- *
- * @return a future that will contain temperature display units
- */
- CompletableFuture getTemperatureDisplayUnits();
-
- /**
- * Sets the temperature display units
- *
- * @param units the target temperature display units
- * @return a future that completes when the change is made
- * @throws Exception when the change cannot be made
- */
- CompletableFuture setTemperatureDisplayUnits(TemperatureDisplayUnitEnum units)
- throws Exception;
-
- /**
- * Subscribes to changes in the temperature display units
- *
- * @param callback the function to call when temperature display units changes.
- */
- void subscribeTemperatureDisplayUnits(HomekitCharacteristicChangeCallback callback);
-
- /** Unsubscribes from changes in the temperature display units */
- void unsubscribeTemperatureDisplayUnits();
-}
diff --git a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithVOCDensity.java b/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithVOCDensity.java
deleted file mode 100644
index f8a7bc46b..000000000
--- a/src/main/java/io/github/hapjava/accessories/optionalcharacteristic/AccessoryWithVOCDensity.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package io.github.hapjava.accessories.optionalcharacteristic;
-
-import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
-import io.github.hapjava.characteristics.impl.airquality.VOCDensityCharacteristic;
-import java.util.concurrent.CompletableFuture;
-
-/** Accessory with VOC Density characteristic. */
-public interface AccessoryWithVOCDensity {
-
- /**
- * Retrieves the VOC density.
- *
- * @return a future with the VOC density
- */
- CompletableFuture