Skip to content

Commit

Permalink
fixed on off behavior of lights
Browse files Browse the repository at this point in the history
Signed-off-by: Tobias Lange <vich-667@gmx.de>
  • Loading branch information
Tobias Lange committed Feb 9, 2023
1 parent df82da0 commit 58065d9
Showing 1 changed file with 17 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@
* @author Christoph Weitkamp - Added support for AVM FRITZ!DECT 300 and Comet DECT
* @author Christoph Weitkamp - Added support for groups
* @author Ulrich Mertin - Added support for HAN-FUN blinds
* @author Christoph Sommer, Tobias Lange - Added support for color temperature
* @author Christoph Sommer - Added support for color temperature
* @author Tobias Lange - Fixed Thing value changes and on/off behavior of Light Blub
*/
@NonNullByDefault
public abstract class AVMFritzBaseThingHandler extends BaseThingHandler implements FritzAhaStatusListener {
Expand Down Expand Up @@ -203,7 +204,8 @@ public void onDeviceUpdated(ThingUID thingUID, AVMFritzBaseModel device) {
if (deviceModel.isHANFUNBlinds()) {
updateLevelControl(deviceModel.getLevelControlModel());
} else if (deviceModel.isColorLight()) {
updateColorLight(deviceModel.getColorControlModel(), deviceModel.getLevelControlModel());
updateColorLight(deviceModel.getColorControlModel(), deviceModel.getLevelControlModel(),
deviceModel.getSimpleOnOffUnit());
} else if (deviceModel.isDimmableLight() && !deviceModel.isHANFUNBlinds()) {
updateDimmableLight(deviceModel.getLevelControlModel());
} else if (deviceModel.isHANFUNUnit() && deviceModel.isHANFUNOnOff()) {
Expand Down Expand Up @@ -260,11 +262,16 @@ private void updateDimmableLight(@Nullable LevelControlModel levelControlModel)
}

private void updateColorLight(@Nullable ColorControlModel colorControlModel,
@Nullable LevelControlModel levelControlModel) {
@Nullable LevelControlModel levelControlModel, @Nullable SimpleOnOffModel simpleOnOff) {
if (colorControlModel != null && levelControlModel != null) {
DecimalType hue = new DecimalType(colorControlModel.hue);
PercentType saturation = ColorControlModel.toPercent(colorControlModel.saturation);
PercentType brightness = new PercentType(levelControlModel.getLevelPercentage());
PercentType brightness;
if (simpleOnOff.state) {
brightness = new PercentType(levelControlModel.getLevelPercentage());
} else {
brightness = PercentType.ZERO;
}
updateThingChannelState(CHANNEL_COLOR, new HSBType(hue, saturation, brightness));

if (colorControlModel.currentMode == 4) {
Expand Down Expand Up @@ -510,7 +517,12 @@ public void handleCommand(ChannelUID channelUID, Command command) {
}
}
if (brightness != null) {
fritzBox.setLevelPercentage(ain, brightness);
if (brightness.equals(BigDecimal.ZERO)) {
fritzBox.setSwitch(ain, false);
} else {
fritzBox.setSwitch(ain, true);
fritzBox.setLevelPercentage(ain, brightness);
}
}
break;
case CHANNEL_COLORTEMPERATURE:
Expand Down

0 comments on commit 58065d9

Please sign in to comment.