Repository navigation
Retry handshake collisions, start specless ovens, and fix microwave progress - #585
Merged
Merged
Conversation
…#567) A PeerInitiatedHandshakeError means the appliance was opening its own session toward us; the library says an immediate retry normally clears it. The coordinator treated it like any failure, so it cost a poll cycle or a failed command. _connect_session now retries it once on the same port, the rule config_flow._worth_retrying already applies. Port rediscovery now runs only after a timeout or endpoint error. An appliance that answered with an alert is still on the stored port, and the exception that triggered the lookup is now logged.
The NW9000KD wall oven publishes no modeSpec, so it got no start, yet it started Bake from Ready with the same Collection write every other board takes. A board without a modeSpec now offers its own live modes, less maintenance programs and the modes no modeSpec ever declares startable (Broil, Autocook, microwave power, self-clean and similar). The setpoint is bounded by the oven's static range, and the cook time is optional.
TP1X microwaves report progressPercentage 201 from the start of a cook to its end, so the sensor showed 201 %. The oven-family progress sensor now reports anything outside 0-100 as unknown.
…300) A microwave with no modeSpec picked up the oven's 175-550 F range, so the NW9300MD would accept a 550 F convection start. It now gets the microwave family's static range, which is Celsius only, matching its setpoint control. In Fahrenheit it offers no temperature.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three fixes from a pass over the open issues.
Handshake collisions (#567)
PeerInitiatedHandshakeErrormeans the appliance was opening its own session toward us. The library says an immediate retry normally clears it, but the coordinator treated it as any other failure, so it cost a poll cycle or a failed command._connect_sessionnow retries it once on the same port, which is whatconfig_flow._worth_retryingalready does. This covers the poll path and the command path.EndpointError. An appliance that answered with an alert is still on the stored port. The exception that triggered a lookup is now logged, where it used to be dropped.test_port_rediscovery.py, and both tests fail without the change.Start a cook on boards with no modeSpec (#300)
modeSpec, so it got no start. The reporter started Bake from Ready with the same Collection write every other board takes.modeSpecnow offers its own live modes, minus:modeSpecdeclaresStart&Setting: Broil*, Autocook/Easycook*, Defrost, BreadProof, Toast*, MicroWave*, and Speed*.oven)Only Bake on the NW9000KD is confirmed on hardware, and that start included a cook time. Three tests that pinned the old "no modeSpec, no start" rule are updated. New tests cover:
Microwave progress (#181)
progressPercentage201 for the whole of a cook, so the sensor showed 201 %.Checks
ruff format --check,ruff check,ty checkandpytest tests/all pass locally on Python 3.13, with 2,691 tests.Refs #567, #300, #181
🤖 Generated with Claude Code
https://claude.ai/code/session_01LvafUqpe5oSKcVcp5Z8c1N