Fix SmartIR fan state restore on restart + oscillation toggle behavior #1508
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.
This PR fixes several issues in
custom_components/smartir/fan.pythat can lead to incorrect state after restart and incorrect oscillation behavior for toggle-style IR codes.What changed
percentagewhenspeedis not available (HA versions may persist percentage instead of speed). If HA restoresstate=onwithout speed/percentage, fall back tolast_on_speed(or first speed).oscillatecommand that toggles oscillation. The integration now sends the oscillate command only when the desired oscillation state changes, and no longer lets oscillation “override” speed commands.speed=Nonewhen the sensor indicates the device is turned on externally (prevents breaking percentage/commands).delayas a float (cv.positive_float) and cast to float before passing to the controller.Why
percentageinstead ofspeedin some cases).Nonebreaks percentage/command logic.How to test