[avmfritz] Fixed update of data for blinds (#11773)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
This commit is contained in:
committed by
GitHub
parent
caa9e3500d
commit
05e782ec1a
@@ -91,7 +91,7 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
/**
|
||||
* keeps track of the current state for handling of increase/decrease
|
||||
*/
|
||||
private @Nullable AVMFritzBaseModel state;
|
||||
private AVMFritzBaseModel currentDevice = new DeviceModel();
|
||||
private @Nullable String identifier;
|
||||
|
||||
/**
|
||||
@@ -130,7 +130,7 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
} else {
|
||||
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, "Device not present");
|
||||
}
|
||||
state = device;
|
||||
currentDevice = device;
|
||||
|
||||
updateProperties(device, editProperties());
|
||||
|
||||
@@ -156,13 +156,12 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
}
|
||||
if (deviceModel.isHANFUNBlinds()) {
|
||||
updateLevelControl(deviceModel.getLevelControlModel());
|
||||
}
|
||||
if (deviceModel.isColorLight()) {
|
||||
} else if (deviceModel.isColorLight()) {
|
||||
updateColorLight(deviceModel.getColorControlModel(), deviceModel.getLevelControlModel());
|
||||
} else if (deviceModel.isDimmableLight()) {
|
||||
updateDimmableLight(deviceModel.getLevelControlModel());
|
||||
} else if (device.isHANFUNUnit() && device.isHANFUNOnOff()) {
|
||||
updateSimpleOnOffUnit(device.getSimpleOnOffUnit());
|
||||
} else if (deviceModel.isHANFUNUnit() && deviceModel.isHANFUNOnOff()) {
|
||||
updateSimpleOnOffUnit(deviceModel.getSimpleOnOffUnit());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -438,7 +437,7 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
((QuantityType<?>) command).getUnit(), SIUnits.CELSIUS);
|
||||
}
|
||||
} else if (command instanceof IncreaseDecreaseType) {
|
||||
temperature = state.getHkr().getTsoll();
|
||||
temperature = currentDevice.getHkr().getTsoll();
|
||||
if (IncreaseDecreaseType.INCREASE.equals(command)) {
|
||||
temperature.add(BigDecimal.ONE);
|
||||
} else {
|
||||
@@ -449,7 +448,7 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
}
|
||||
if (temperature != null) {
|
||||
fritzBox.setSetTemp(ain, fromCelsius(temperature));
|
||||
HeatingModel heatingModel = state.getHkr();
|
||||
HeatingModel heatingModel = currentDevice.getHkr();
|
||||
heatingModel.setTsoll(temperature);
|
||||
updateState(CHANNEL_RADIATOR_MODE, new StringType(heatingModel.getRadiatorMode()));
|
||||
}
|
||||
@@ -465,10 +464,10 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
targetTemperature = TEMP_FRITZ_OFF;
|
||||
break;
|
||||
case MODE_COMFORT:
|
||||
targetTemperature = state.getHkr().getKomfort();
|
||||
targetTemperature = currentDevice.getHkr().getKomfort();
|
||||
break;
|
||||
case MODE_ECO:
|
||||
targetTemperature = state.getHkr().getAbsenk();
|
||||
targetTemperature = currentDevice.getHkr().getAbsenk();
|
||||
break;
|
||||
case MODE_BOOST:
|
||||
targetTemperature = TEMP_FRITZ_MAX;
|
||||
@@ -480,7 +479,7 @@ public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implemen
|
||||
}
|
||||
if (targetTemperature != null) {
|
||||
fritzBox.setSetTemp(ain, targetTemperature);
|
||||
state.getHkr().setTsoll(targetTemperature);
|
||||
currentDevice.getHkr().setTsoll(targetTemperature);
|
||||
updateState(CHANNEL_SETTEMP, new QuantityType<>(toCelsius(targetTemperature), SIUnits.CELSIUS));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user