Compare commits

...

6 commits

Author SHA1 Message Date
Bas Nijholt
371693a25b
Merge branch 'main' into compare-service-datas-with-ignore-fields 2023-04-27 13:02:10 -07:00
Bas Nijholt
886c2cb8d0
Merge branch 'main' into compare-service-datas-with-ignore-fields 2023-04-26 19:19:41 -07:00
Benjamin Auquite
1ddae7ac48
Merge branch 'main' into compare-service-datas-with-ignore-fields 2023-04-10 12:52:56 -05:00
Benjamin Auquite
0a4c7ed1dd Revert "keep line length under 100"
This reverts commit 461efb5fed.
2023-04-09 23:26:41 -05:00
Benjamin Auquite
461efb5fed keep line length under 100 2023-04-09 22:38:04 -05:00
Benjamin Auquite
beece5c06f ignore ATTR_TRANSITION in checks 2023-04-09 22:33:50 -05:00

View file

@ -1169,12 +1169,16 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
elif supports_colors and adapt_color:
_LOGGER.debug("%s: Setting rgb_color of light %s", self._name, light)
service_data[ATTR_RGB_COLOR] = self._settings["rgb_color"]
context = context or self.create_context("adapt_lights")
# See #80. Doesn't check if transitions differ but it does the job.
last_service_data = self.turn_on_off_listener.last_service_data
if not force and last_service_data.get(light) == service_data:
# Check if service data differs from the last. See #80.
listener = self.turn_on_off_listener
last_service_data = listener.last_service_data.get(light)
ignore_fields = {ATTR_TRANSITION}
if (
not force
and last_service_data
and {k for k, _ in last_service_data.items() ^ service_data.items()}
== ignore_fields
):
_LOGGER.debug(
"%s: Cancelling adapt to light %s, there's no new values to set (context.id='%s')",
self._name,
@ -1182,8 +1186,9 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
context.id,
)
return
else:
self.turn_on_off_listener.last_service_data[light] = service_data
listener.last_service_data[light] = service_data
context = context or self.create_context("adapt_lights")
async def turn_on(service_data):
_LOGGER.debug(