Skip to content

Release v4.0.0-rc2 - #752

Merged
asantaga merged 5 commits into
masterfrom
dev
Oct 18, 2026
Merged

asantaga merged 5 commits into
masterfrom
dev

Conversation

@asantaga

@asantaga asantaga commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Summary

Fixes device switches (e.g. TRV/RoomStat/Button Panel Identify) breaking the coordinator refresh when the hub temporarily stops reporting a device.

  • WiserDeviceSwitch now finds its device in wiserhub.devices.all on each refresh, matching on device id, the switch key, and the product type it was created with. Before, it called devices.get_by_id() and read the attribute straight off whatever came back.
  • When the device is missing, the entity reports available = False and is_on = False instead of raising, and turn_on/turn_off do nothing.
  • unique_id and device_info use the product type and firmware version stored at setup, so they no longer read from a device object that may be missing.
  • When the device comes back in a later refresh, the switch becomes available again on its own.

Notes

  • The other commit on dev (ci: drop removed --panel-config-repository flag from publish workflow) is already on master as c2faa69 and adds nothing to the diff here.
  • The withdrawn v4.0.0 release and its tag have been removed, so this ships as 4.0.0-rc2. const.py, manifest.json, the README title, and the CHANGELOG.md heading now read 4.0.0-rc2, and the fix is listed under Fixed.

Test plan

  • python3 -m unittest tests.test_switch_hot_water: 19 tests OK, including the new WiserDeviceSwitchRefreshTest, which covers a device going missing and coming back
  • All other test modules pass, except tests.test_build and tests.test_card_updates. Those two fail the same way on master because of local environment issues (awesomeversion not installed, test import path), not because of this change.
  • Local HA dev container restarted with manifest version 4.0.0-rc2: the integration loaded with only the usual "untested custom integration" warning and no version error

🤖 Generated with Claude Code

asantaga and others added 4 commits October 18, 2026 21:55
scripts/build.py stopped accepting --panel-config-repository in 8afdaf7
when the frontend registry moved into the integration, but publish.yml
still passed it, so the v4.0.0 release build failed during argument
parsing. Also stop uploading panel-config-release.json, which build.py
no longer produces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The v4.0.0 release was withdrawn, so the device switch refresh fix ships
as a second release candidate instead. Retitle the CHANGELOG entry to
v4.0.0-rc2 and add the fix under Fixed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@asantaga asantaga changed the title fix: tolerate missing device switches during refresh Release v4.0.0-rc2 Oct 18, 2026
@asantaga
asantaga merged commit 9bda276 into master Oct 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants