[hdpowerview] Refresh battery level when receiving refresh command (#11933)

* Refresh battery level when receiving REFRESH command.

Fixes #11932

Update README with shade refresh logic.

Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
Jacob Laursen 2022-01-02 13:44:51 +01:00 committed by GitHub
parent e4cd27f623
commit e8df66f1d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 3 deletions

View File

@ -156,6 +156,17 @@ then
end
```
For single shades the refresh takes the item's channel into consideration:
| Channel | Hard refresh kind |
|----------------|-------------------|
| position | Position |
| secondary | Position |
| vane | Position |
| lowBattery | Battery |
| batteryLevel | Battery |
| batteryVoltage | Battery |
## Full Example
### `demo.things` File

View File

@ -104,12 +104,25 @@ public class HDPowerViewShadeHandler extends AbstractHubbedThingHandler {
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
if (RefreshType.REFRESH.equals(command)) {
requestRefreshShadePosition();
String channelId = channelUID.getId();
if (RefreshType.REFRESH == command) {
switch (channelId) {
case CHANNEL_SHADE_POSITION:
case CHANNEL_SHADE_SECONDARY_POSITION:
case CHANNEL_SHADE_VANE:
requestRefreshShadePosition();
break;
case CHANNEL_SHADE_LOW_BATTERY:
case CHANNEL_SHADE_BATTERY_LEVEL:
case CHANNEL_SHADE_BATTERY_VOLTAGE:
requestRefreshShadeBatteryLevel();
break;
}
return;
}
switch (channelUID.getId()) {
switch (channelId) {
case CHANNEL_SHADE_POSITION:
if (command instanceof PercentType) {
moveShade(PRIMARY_ACTUATOR, ZERO_IS_CLOSED, ((PercentType) command).intValue());