}));
}
+ protected ChannelUpdateHandler getAndUpdateSelectedProgramStateUpdateHandler() {
+ return (channelUID, cache) -> {
+ Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
+ if (channel.isPresent()) {
+ defaultSelectedProgramStateUpdateHandler().handle(channel.get().getUID(), cache);
+ }
+ };
+ }
+
+ protected ChannelUpdateHandler getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler() {
+ return (channelUID, cache) -> {
+ Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
+ if (channel.isPresent()) {
+ updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler()
+ .handle(channel.get().getUID(), cache);
+ }
+ };
+ }
+
protected ChannelUpdateHandler defaultActiveProgramStateUpdateHandler() {
return (channelUID, cache) -> updateState(channelUID, cache.putIfAbsentAndGet(channelUID, () -> {
Optional<HomeConnectApiClient> apiClient = getApiClient();
handlers.put(CHANNEL_ACTIVE_PROGRAM_STATE, defaultActiveProgramStateUpdateHandler());
handlers.put(CHANNEL_SELECTED_PROGRAM_STATE,
updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
+
+ // register dryer specific handlers
+ handlers.put(CHANNEL_DRYER_DRYING_TARGET,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
}
@Override
import org.openhab.binding.homeconnect.internal.type.HomeConnectDynamicStateDescriptionProvider;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.QuantityType;
-import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import org.openhab.core.types.Command;
}
return UnDefType.UNDEF;
})));
- handlers.put(CHANNEL_SETPOINT_TEMPERATURE, (channelUID, cache) -> {
- Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
- if (channel.isPresent()) {
- defaultSelectedProgramStateUpdateHandler().handle(channel.get().getUID(), cache);
- }
- });
- handlers.put(CHANNEL_DURATION, (channelUID, cache) -> {
- Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
- if (channel.isPresent()) {
- defaultSelectedProgramStateUpdateHandler().handle(channel.get().getUID(), cache);
- }
- });
+ handlers.put(CHANNEL_SETPOINT_TEMPERATURE, getAndUpdateSelectedProgramStateUpdateHandler());
+ handlers.put(CHANNEL_DURATION, getAndUpdateSelectedProgramStateUpdateHandler());
}
@Override
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.homeconnect.internal.client.HomeConnectApiClient;
import org.openhab.binding.homeconnect.internal.client.exception.CommunicationException;
import org.openhab.binding.homeconnect.internal.type.HomeConnectDynamicStateDescriptionProvider;
import org.openhab.core.library.types.StringType;
-import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import org.openhab.core.types.Command;
updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
// register washer specific handlers
- handlers.put(CHANNEL_WASHER_SPIN_SPEED, (channelUID, cache) -> {
- Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
- if (channel.isPresent()) {
- updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler()
- .handle(channel.get().getUID(), cache);
- }
- });
- handlers.put(CHANNEL_WASHER_TEMPERATURE, (channelUID, cache) -> {
- Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
- if (channel.isPresent()) {
- updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler()
- .handle(channel.get().getUID(), cache);
- }
- });
+ handlers.put(CHANNEL_WASHER_SPIN_SPEED,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
+ handlers.put(CHANNEL_WASHER_TEMPERATURE,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
+ // register dryer specific handlers
+ handlers.put(CHANNEL_DRYER_DRYING_TARGET,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
}
@Override
handlers.put(EVENT_WASHER_SPIN_SPEED,
event -> getThingChannel(CHANNEL_WASHER_SPIN_SPEED).ifPresent(channel -> updateState(channel.getUID(),
event.getValue() == null ? UnDefType.UNDEF : new StringType(event.getValue()))));
+ // register dryer specific event handlers
handlers.put(EVENT_DRYER_DRYING_TARGET,
event -> getThingChannel(CHANNEL_DRYER_DRYING_TARGET).ifPresent(channel -> updateState(channel.getUID(),
event.getValue() == null ? UnDefType.UNDEF : new StringType(event.getValue()))));
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.openhab.binding.homeconnect.internal.client.HomeConnectApiClient;
import org.openhab.binding.homeconnect.internal.client.exception.CommunicationException;
import org.openhab.binding.homeconnect.internal.type.HomeConnectDynamicStateDescriptionProvider;
import org.openhab.core.library.types.StringType;
-import org.openhab.core.thing.Channel;
import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing;
import org.openhab.core.types.Command;
updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
// register washer specific handlers
- handlers.put(CHANNEL_WASHER_SPIN_SPEED, (channelUID, cache) -> {
- Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
- if (channel.isPresent()) {
- updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler()
- .handle(channel.get().getUID(), cache);
- }
- });
- handlers.put(CHANNEL_WASHER_TEMPERATURE, (channelUID, cache) -> {
- Optional<Channel> channel = getThingChannel(CHANNEL_SELECTED_PROGRAM_STATE);
- if (channel.isPresent()) {
- updateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler()
- .handle(channel.get().getUID(), cache);
- }
- });
+ handlers.put(CHANNEL_WASHER_SPIN_SPEED,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
+ handlers.put(CHANNEL_WASHER_TEMPERATURE,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
+ handlers.put(CHANNEL_WASHER_IDOS1,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
+ handlers.put(CHANNEL_WASHER_IDOS2,
+ getAndUpdateProgramOptionsStateDescriptionsAndSelectedProgramStateUpdateHandler());
}
@Override