[miio] also refresh after custom commands (#10714)

Signed-off-by: Marcel Verpaalen <marcel@verpaalen.com>
This commit is contained in:
Marcel 2021-05-26 21:04:19 +02:00 committed by GitHub
parent 705f5c577c
commit aa665e54f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 6 deletions

View File

@ -130,8 +130,8 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
} }
return; return;
} }
if (channelUID.getId().equals(CHANNEL_COMMAND)) { if (handleCommandsChannels(channelUID, command)) {
cmds.put(sendCommand(command.toString()), command.toString()); forceStatusUpdate();
return; return;
} }
logger.debug("Locating action for {} channel '{}': '{}'", getThing().getUID(), channelUID.getId(), command); logger.debug("Locating action for {} channel '{}': '{}'", getThing().getUID(), channelUID.getId(), command);
@ -263,15 +263,19 @@ public class MiIoBasicHandler extends MiIoAbstractHandler {
} }
} }
} }
updateDataCache.invalidateValue(); forceStatusUpdate();
miIoScheduler.schedule(() -> {
updateData();
}, 3000, TimeUnit.MILLISECONDS);
} else { } else {
logger.debug("Actions not loaded yet, or none available"); logger.debug("Actions not loaded yet, or none available");
} }
} }
private void forceStatusUpdate() {
updateDataCache.invalidateValue();
miIoScheduler.schedule(() -> {
updateData();
}, 3000, TimeUnit.MILLISECONDS);
}
private @Nullable JsonElement miotTransform(MiIoBasicChannel miIoBasicChannel, @Nullable JsonElement value) { private @Nullable JsonElement miotTransform(MiIoBasicChannel miIoBasicChannel, @Nullable JsonElement value) {
JsonObject json = new JsonObject(); JsonObject json = new JsonObject();
json.addProperty("did", miIoBasicChannel.getChannel()); json.addProperty("did", miIoBasicChannel.getChannel());

View File

@ -190,6 +190,7 @@ public class MiIoVacuumHandler extends MiIoAbstractHandler {
return; return;
} }
if (handleCommandsChannels(channelUID, command)) { if (handleCommandsChannels(channelUID, command)) {
forceStatusUpdate();
return; return;
} }
if (channelUID.getId().equals(CHANNEL_VACUUM)) { if (channelUID.getId().equals(CHANNEL_VACUUM)) {