Ignore Shelly block update with cfgChanged None (#113587)

This commit is contained in:
Shay Levy 2024-03-16 16:18:41 +02:00 committed by GitHub
parent a7fd1c278c
commit d17e397455
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View file

@ -217,7 +217,7 @@ class ShellyBlockCoordinator(ShellyCoordinatorBase[BlockDevice]):
# Check for input events and config change
cfg_changed = 0
for block in self.device.blocks:
if block.type == "device":
if block.type == "device" and block.cfgChanged is not None:
cfg_changed = block.cfgChanged
# Shelly TRV sends information about changing the configuration for no

View file

@ -68,6 +68,18 @@ async def test_block_reload_on_cfg_change(
mock_block_device.mock_update()
await hass.async_block_till_done()
# Make sure cfgChanged with None is ignored
monkeypatch.setattr(mock_block_device.blocks[DEVICE_BLOCK_ID], "cfgChanged", None)
mock_block_device.mock_update()
await hass.async_block_till_done()
# Wait for debouncer
freezer.tick(timedelta(seconds=ENTRY_RELOAD_COOLDOWN))
async_fire_time_changed(hass)
await hass.async_block_till_done()
assert hass.states.get("switch.test_name_channel_1") is not None
# Generate config change from switch to light
monkeypatch.setitem(
mock_block_device.settings["relays"][RELAY_BLOCK_ID], "appliance_type", "light"