public static final String PROPERTY_TIMEOUT = "timeout";
public static final String PROPERTY_CLOUDSERVER = "cloudServer";
+ public static final Set<String> PERSISTENT_CHANNELS = Collections.unmodifiableSet(
+ Stream.of(CHANNEL_COMMAND, CHANNEL_RPC, CHANNEL_SSID, CHANNEL_BSSID, CHANNEL_RSSI, CHANNEL_LIFE)
+ .collect(Collectors.toSet()));
+
public static final byte[] DISCOVER_STRING = org.openhab.binding.miio.internal.Utils
.hexStringToByteArray("21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
public static final int PORT = 54321;
actions = new HashMap<>();
final MiIoBasicDevice device = this.miioDevice;
if (device != null) {
+ for (Channel cn : getThing().getChannels()) {
+ logger.trace("Channel '{}' for thing {} already exist... removing", cn.getUID(),
+ getThing().getUID());
+ if (!PERSISTENT_CHANNELS.contains(cn.getUID().getId().toString())) {
+ thingBuilder.withoutChannels(cn);
+ }
+ }
for (MiIoBasicChannel miChannel : device.getDevice().getChannels()) {
logger.debug("properties {}", miChannel);
if (!miChannel.getType().isEmpty()) {
return null;
}
ChannelUID channelUID = new ChannelUID(getThing().getUID(), channel);
-
- // TODO: Need to understand if this harms anything. If yes, channel only to be added when not there already.
- // current way allows to have no issues when channels are changing.
- if (getThing().getChannel(channel) != null) {
- logger.info("Channel '{}' for thing {} already exist... removing", channel, getThing().getUID());
- thingBuilder.withoutChannel(new ChannelUID(getThing().getUID(), channel));
- }
ChannelBuilder newChannel = ChannelBuilder.create(channelUID, dataType).withLabel(miChannel.getFriendlyName());
boolean useGeneratedChannelType = false;
if (!miChannel.getChannelType().isBlank()) {