Skip to content

Fix AC sensors stuck unavailable while AC output is off for River 2 and Delta 2#361

Merged
rabits merged 1 commit into
rabits:mainfrom
GnoX:fix/default-inverter-fields-when-ac-off
May 31, 2026
Merged

Fix AC sensors stuck unavailable while AC output is off for River 2 and Delta 2#361
rabits merged 1 commit into
rabits:mainfrom
GnoX:fix/default-inverter-fields-when-ac-off

Conversation

@GnoX
Copy link
Copy Markdown
Collaborator

@GnoX GnoX commented May 30, 2026

This is a followup of #356 - in there, we only updated switch, but all other fields are also unavailable so this PR adds a functionality that allows setting defaults for all fields. This also addresses a comment in #351 (comment) that reported this issue happens for River 2.

This adds a small, generic mechanism rather than patching one field. A field can declare its off value with Field.default_when_missing(value). When a device has any such field, DeviceBase schedules a one-shot fallback after authentication (MISSING_DEFAULT_GRACE = 10s): for each marked field that is still unset once the grace period elapses, it applies the declared value through notify_field. A real message arriving at any point - before or after - still wins. The field iteration and a TypeIs guard live on UpdatableProps (is_props / fields_with_missing_default), so DeviceBase never reaches into props internals.

Config / spec fields (configured charge speed, rated power, etc.) are deliberately left unmarked - an empty inverter reading should not clobber a setpoint to 0, so those stay unavailable until the device actually reports them.

@GnoX GnoX self-assigned this May 30, 2026
@GnoX GnoX added bug Something isn't working enhancement New feature or request labels May 30, 2026
@GnoX GnoX marked this pull request as ready for review May 30, 2026 22:28
@GnoX GnoX requested a review from rabits May 30, 2026 22:28
Copy link
Copy Markdown
Owner

@rabits rabits left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah looks good!

@rabits rabits merged commit eab3186 into rabits:main May 31, 2026
4 checks passed
@GnoX GnoX deleted the fix/default-inverter-fields-when-ac-off branch May 31, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants