Skip to content

Add charging mode select to Silla Prism - #181424

Open
ebaschiera wants to merge 1 commit into
home-assistant:devfrom
ebaschiera:silla-prism-select
Open

Add charging mode select to Silla Prism#181424
ebaschiera wants to merge 1 commit into
home-assistant:devfrom
ebaschiera:silla-prism-select

Conversation

@ebaschiera

Copy link
Copy Markdown
Contributor

Breaking change

Proposed change

The initial Silla Prism PR (#176785) was reduced to a single platform for review, with the controls left as follow-ups. This is the first of them: the charging mode select.

The Prism publishes the port operating mode on a retained topic and accepts a set_mode command on the matching command topic, so the select reads its state from the accumulated status and writes back through the library's command builders. To make that possible, the coordinator now passes a publish callback to PrismDevice, mapping it onto mqtt.async_publish. That callback is the plumbing every remaining control platform will reuse.

Only Solar, Normal and Pause are user-settable. The Prism also reports a fourth mode when its own load balancing suspends the session; it cannot be selected back, so current_option returns None and the entity reads as unknown while it lasts. The port state remains visible on the status sensor throughout.

The shared test helper gained an optional platform list, since snapshot_platform requires a single loaded platform and the integration now sets up two.

No library change is needed: pysillaprism 0.2.0 already exposes the command surface.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies a diff between library versions and ideally a link to the changelog/release notes is added to the PR description.

To help with the load of incoming pull requests:

Wire the publish callback into the coordinator and expose the port
operating mode (Solar/Normal/Pause) as a select entity.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants