]> git.basschouten.com Git - openhab-addons.git/commitdiff
Add support for group item type to window covering (#10936)
authorColin <12702068+ckeehan@users.noreply.github.com>
Sat, 17 Jul 2021 06:51:44 +0000 (01:51 -0500)
committerGitHub <noreply@github.com>
Sat, 17 Jul 2021 06:51:44 +0000 (08:51 +0200)
Add support for setting TARGET_POSITION of Window Covering accessories from groups with a baseItem type

Closes #10812

Signed-off-by: Colin Keehan <github@colin.xyz>
bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/AbstractHomekitPositionAccessoryImpl.java

index 516e305e564b981fa79565d7c2a22593ce9b62ee..aa307fdffe9797ffb62104d851b94b0a8a5a07bd 100644 (file)
@@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
+import org.openhab.core.items.GroupItem;
 import org.openhab.core.items.Item;
 import org.openhab.core.library.items.DimmerItem;
 import org.openhab.core.library.items.NumberItem;
@@ -84,12 +85,19 @@ abstract class AbstractHomekitPositionAccessoryImpl extends AbstractHomekitAcces
         getCharacteristic(TARGET_POSITION).ifPresentOrElse(taggedItem -> {
             final Item item = taggedItem.getItem();
             final int targetPosition = convertPosition(value, openPosition);
+
             if (item instanceof RollershutterItem) {
                 ((RollershutterItem) item).send(new PercentType(targetPosition));
             } else if (item instanceof DimmerItem) {
                 ((DimmerItem) item).send(new PercentType(targetPosition));
             } else if (item instanceof NumberItem) {
                 ((NumberItem) item).send(new DecimalType(targetPosition));
+            } else if (item instanceof GroupItem && ((GroupItem) item).getBaseItem() instanceof RollershutterItem) {
+                ((GroupItem) item).send(new PercentType(targetPosition));
+            } else if (item instanceof GroupItem && ((GroupItem) item).getBaseItem() instanceof DimmerItem) {
+                ((GroupItem) item).send(new PercentType(targetPosition));
+            } else if (item instanceof GroupItem && ((GroupItem) item).getBaseItem() instanceof NumberItem) {
+                ((GroupItem) item).send(new DecimalType(targetPosition));
             } else {
                 logger.warn(
                         "Unsupported item type for characteristic {} at accessory {}. Expected Rollershutter, Dimmer or Number item, got {}",