[homekit] Target Fan state - add support for Switch Item (#12985)
* add support for SwitchItem for target fan state Signed-off-by: Eugen Freiter <freiter@gmx.de>
This commit is contained in:
@@ -634,23 +634,12 @@ public class HomekitCharacteristicFactory {
|
||||
|
||||
private static TargetFanStateCharacteristic createTargetFanStateCharacteristic(HomekitTaggedItem taggedItem,
|
||||
HomekitAccessoryUpdater updater) {
|
||||
return new TargetFanStateCharacteristic(() -> {
|
||||
final @Nullable DecimalType value = taggedItem.getItem().getStateAs(DecimalType.class);
|
||||
@Nullable
|
||||
TargetFanStateEnum targetFanStateEnum = value != null ? TargetFanStateEnum.fromCode(value.intValue())
|
||||
: null;
|
||||
if (targetFanStateEnum == null) {
|
||||
targetFanStateEnum = TargetFanStateEnum.AUTO;
|
||||
}
|
||||
return CompletableFuture.completedFuture(targetFanStateEnum);
|
||||
}, (targetState) -> {
|
||||
if (taggedItem.getItem() instanceof NumberItem) {
|
||||
((NumberItem) taggedItem.getItem()).send(new DecimalType(targetState.getCode()));
|
||||
} else {
|
||||
logger.warn("Item type {} is not supported for {}. Only Number type is supported.",
|
||||
taggedItem.getItem().getType(), taggedItem.getName());
|
||||
}
|
||||
}, getSubscriber(taggedItem, TARGET_FAN_STATE, updater),
|
||||
return new TargetFanStateCharacteristic(
|
||||
() -> getEnumFromItem(taggedItem, TargetFanStateEnum.MANUAL, TargetFanStateEnum.AUTO,
|
||||
TargetFanStateEnum.AUTO),
|
||||
(targetState) -> setValueFromEnum(taggedItem, targetState, TargetFanStateEnum.MANUAL,
|
||||
TargetFanStateEnum.AUTO),
|
||||
getSubscriber(taggedItem, TARGET_FAN_STATE, updater),
|
||||
getUnsubscriber(taggedItem, TARGET_FAN_STATE, updater));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user