Skip to content

Add repair flow to remap speaker IP #11

Description

@jelledelaender

Goal

Add a Homey repair flow that lets users refresh a paired SoundTouch speaker's stored IP address without deleting/re-adding the device and without changing presets.

Context

SoundTouch speakers may receive a new IP address after DHCP changes, router changes, office network changes, or Homey moving between LANs. The app already stores the Bose device ID and IP address, so repair should be able to rediscover the same physical speaker and update only the connection details.

Matching Strategy

When repairing an existing device, discover SoundTouch devices and match candidates against the current Homey device by:

  1. Bose device ID / MAC from /info against device.getData().id.
  2. Stored discovery ID / mDNS instance name as fallback.
  3. Current Homey device name as a softer fallback, only if needed.

Scope

  • Add a repair flow to the SoundTouch driver.
  • Reuse discovery where possible.
  • Let the user select the replacement/current speaker if multiple candidates are found.
  • Update only store.address, store.discoveryId, and settings.ip_address.
  • Reconnect websocket and sync status after repair.
  • Do not alter preset names, preset URLs, active preset state, or Flow cards.

Acceptance Criteria

  • A user can repair an existing speaker after its IP changes.
  • The repair flow prefers exact Bose device ID matches.
  • If no exact match is available, the user can manually select a discovered candidate.
  • Existing preset settings remain unchanged after repair.
  • The device reconnects and becomes available after a successful repair.
  • npx homey app validate passes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:discoverySpeaker discovery and pairingquestionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions