2 * Copyright (c) 2010-2024 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.io.homekit.internal.accessories;
15 import java.util.List;
16 import java.util.concurrent.CompletableFuture;
18 import org.eclipse.jdt.annotation.NonNullByDefault;
19 import org.openhab.io.homekit.internal.HomekitAccessoryUpdater;
20 import org.openhab.io.homekit.internal.HomekitSettings;
21 import org.openhab.io.homekit.internal.HomekitTaggedItem;
23 import io.github.hapjava.accessories.DoorAccessory;
24 import io.github.hapjava.characteristics.HomekitCharacteristicChangeCallback;
25 import io.github.hapjava.characteristics.impl.windowcovering.PositionStateEnum;
26 import io.github.hapjava.services.impl.DoorService;
30 * @author Eugen Freiter - Initial contribution
33 public class HomekitDoorImpl extends AbstractHomekitPositionAccessoryImpl implements DoorAccessory {
35 public HomekitDoorImpl(HomekitTaggedItem taggedItem, List<HomekitTaggedItem> mandatoryCharacteristics,
36 HomekitAccessoryUpdater updater, HomekitSettings settings) {
37 super(taggedItem, mandatoryCharacteristics, updater, settings);
38 getServices().add(new DoorService(this));
43 public CompletableFuture<Integer> getCurrentPosition() {
44 return super.getCurrentPosition();
49 public CompletableFuture<PositionStateEnum> getPositionState() {
50 return super.getPositionState();
55 public CompletableFuture<Integer> getTargetPosition() {
56 return super.getTargetPosition();
61 public CompletableFuture<Void> setTargetPosition(Integer value) {
62 return super.setTargetPosition(value);
67 public void subscribeCurrentPosition(HomekitCharacteristicChangeCallback callback) {
68 super.subscribeCurrentPosition(callback);
73 public void subscribePositionState(HomekitCharacteristicChangeCallback callback) {
74 super.subscribePositionState(callback);
79 public void subscribeTargetPosition(HomekitCharacteristicChangeCallback callback) {
80 super.subscribeTargetPosition(callback);
85 public void unsubscribeCurrentPosition() {
86 super.unsubscribeCurrentPosition();
91 public void unsubscribePositionState() {
92 super.unsubscribePositionState();
97 public void unsubscribeTargetPosition() {
98 super.unsubscribeTargetPosition();