[miio] Update channels only if they are linked (backport #9163) (#9211)

* [miio] Update channels only if they are linked

With introduction of miot devices with enormous amount of channels
refreshes can become slow. With this change only relevant updates are
done.

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
This commit is contained in:
Marcel 2020-12-03 11:14:11 -08:00 committed by GitHub
parent b2efdd4356
commit 3e4466d8f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -291,6 +291,11 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
int maxProperties = device.getDevice().getMaxProperties();
JsonArray getPropString = new JsonArray();
for (MiIoBasicChannel miChannel : refreshList) {
if (!isLinked(miChannel.getChannel())) {
logger.debug("Skip refresh of channel {} for {} as it is not linked", miChannel.getChannel(),
getThing().getUID());
continue;
}
JsonElement property;
if (miChannel.isMiOt()) {
JsonObject json = new JsonObject();