From a191c16f5030a25d2d114bb4bf8df77c166766a9 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Mon, 8 Aug 2022 01:43:54 -0600 Subject: [PATCH] [homekit] fix window coverings based on groups of rollershutters (#13232) it was getting the state as a decimal type, not a percent type, so it was getting 1 instead of 100. Signed-off-by: Cody Cutrer --- .../AbstractHomekitPositionAccessoryImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/AbstractHomekitPositionAccessoryImpl.java b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/AbstractHomekitPositionAccessoryImpl.java index 4ce360288..0cbb761b1 100644 --- a/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/AbstractHomekitPositionAccessoryImpl.java +++ b/bundles/org.openhab.io.homekit/src/main/java/org/openhab/io/homekit/internal/accessories/AbstractHomekitPositionAccessoryImpl.java @@ -164,7 +164,15 @@ abstract class AbstractHomekitPositionAccessoryImpl extends AbstractHomekitAcces final Optional taggedItem = getCharacteristic(type); if (taggedItem.isPresent()) { final Item item = taggedItem.get().getItem(); - if ((item instanceof RollershutterItem) || ((item instanceof DimmerItem))) { + Item baseItem = item; + // Check the type of the base item for a group item + if (item instanceof GroupItem) { + baseItem = ((GroupItem) item).getBaseItem(); + if (baseItem == null) { + baseItem = item; + } + } + if (baseItem instanceof RollershutterItem || baseItem instanceof DimmerItem) { value = item.getStateAs(PercentType.class); } else { value = item.getStateAs(DecimalType.class);