Skip to content

Add Steinway & Lyngdorf virtual integration - #181432

Open
fishloa wants to merge 2 commits into
home-assistant:devfrom
fishloa:steinway-lyngdorf-virtual
Open

Add Steinway & Lyngdorf virtual integration#181432
fishloa wants to merge 2 commits into
home-assistant:devfrom
fishloa:steinway-lyngdorf-virtual

Conversation

@fishloa

@fishloa fishloa commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Proposed change

The Steinway & Sons P100, P200 and P300 surround processors are made by Lyngdorf
and sold under the Steinway & Lyngdorf brand. They are supported by the
lyngdorf integration, and have been discoverable since #181032 added their
Steinway Lyngdorf SSDP manufacturer string, but a user searching for the brand
printed on their processor finds nothing.

This adds the brand as a virtual integration pointing at lyngdorf, so the
brand appears in the integrations list and leads to the right config flow. No
code, no tests: the manifest plus the regenerated integrations.json.

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:

The P100, P200 and P300 processors are made by Lyngdorf and sold under the
Steinway & Lyngdorf brand. They are supported by the lyngdorf integration,
and are discovered by it since their SSDP manufacturer string was added, but
a user looking for the brand they bought does not find it.

This adds the brand as a virtual integration pointing at lyngdorf.

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.

🟢 Approval recommended

The manifest follows established virtual-integration conventions and the generated metadata matches it.

Pull request overview

Adds a virtual Steinway & Lyngdorf integration that redirects users to the existing Lyngdorf integration.

Changes:

  • Adds the virtual integration manifest.
  • Regenerates integration metadata.
File summaries
File Description
homeassistant/components/steinway_lyngdorf/manifest.json Defines the virtual integration and Lyngdorf mapping.
homeassistant/generated/integrations.json Registers the generated integration metadata.
Review details
  • Files reviewed: 1/2 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

The mypy CI step scopes itself to changed integrations and fails with
"There are no .py[i] files in directory" when a component has none. This
matches how the other virtual integrations are laid out.
Copilot AI review requested due to automatic review settings September 6, 2026 08:37

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.

🟢 Approval recommended

The virtual integration follows established patterns and correctly targets Lyngdorf.

Review details
  • Files reviewed: 2/3 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@fishloa

fishloa commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Merge order: this needs the brand images in home-assistant/brands#11111 to land first, otherwise the integration appears without a logo. Documentation is in home-assistant/home-assistant.io#47930.

@EetuPelkonen EetuPelkonen left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Shape looks right: supported_by: lyngdorf resolves to a real integration, integrations.json is regenerated, and the docs PR is linked. The init.py matches what most virtual integrations ship (115 of the 139 in tree have one). Nothing missing that I can see.

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.

3 participants