What's Changed since v6.0.0-beta.3
✨ New Features
- Volume Slider: Added an optional volume slider so scenes and automations can set the TV volume. It appears as a lightbulb where brightness sets the volume (0 to 100) and turning the light off mutes the TV. Enable it with
Volume.Slider.Enable. - Deferred Pairing: Pairing no longer requires the TV to be powered on when Homebridge starts. The pairing prompt will automatically appear on screen as soon as the TV turns on. If denied, it will ask again the next time the TV boots.
- UPnP Binding: Added
upnp.addressto manually specify the IP address the TV should use to send volume and mute events back to Homebridge.
🔧 Improvements
- UPnP Network Routing: Volume and mute events are now correctly bound to the Homebridge interface that actually reaches each TV. This fixes live volume and mute tracking on hosts using Docker, WireGuard, or multiple network interfaces.
- SmartThings Resiliency:
- The client now recovers on its own when the internet or SmartThings servers are down. Token refreshes are retried with an exponential backoff, and requests gracefully time out after 5 seconds.
- If SmartThings rejects an access token before it expires, the plugin will proactively refresh it and retry the request once.
- If the authorization itself is rejected/revoked, the plugin stops retrying and marks it as expired in the UI. Running the wizard again picks up the new authorization without requiring a Homebridge restart.
- The plugin no longer overwrites SmartThings authorizations or disconnects triggered from the settings UI while Homebridge is actively running.
- v5 Backwards Compatibility: v5 values are now automatically converted at startup. Legacy values like
device_id,type: art, anddigitalTvwill work for now. The log will print a list of every v5 setting still present in your config, alongside a link to the upgrade guide. - State Sync: Turning off a switch that tracks an app, source, mode, or channel now triggers an immediate state read, eliminating the wait for the next polling cycle.
- Updated internal dependencies.
🐛 Bug Fixes
- MAC Address Formatting: Saving a TV in the settings screen now preserves its MAC address format exactly as written. Previously, a different MAC casing/format could cause the TV to be published to HomeKit as a duplicate accessory.
- Network Error Handling: A network error during UPnP discovery, or encountering a port already in use for volume/mute events, is now safely logged instead of crashing the Homebridge process.
🖥️ Config UI (Settings Screen)
- Reordering: Added Move up and Move down buttons for inputs and switches to easily change the order they appear in Apple Home.
- Global App Picker: Plugin-level inputs and switches now aggregate and list the installed apps from all your configured TVs.
- Command Validation: Remote commands are now validated in real-time as you type them.
- Child Bridge Warning: Added a UI warning if the Child Bridge option is enabled (the plugin already isolates and publishes each TV as its own standalone External Accessory).
- SmartThings Wizard: The authorization wizard now accepts the auth code even if it's pasted with quotes or as the entire redirect URL. Copying the authorization URL also works seamlessly over plain HTTP.
- Documentation: Added direct links to the relevant documentation pages throughout the UI.
- Localization: The settings screen is now exclusively in English.
- Misc Fixes: Prevented double-saves, ensured the delete confirmation modal references the correct item, allowed retrying failed deletes/disconnects, and polished overall stability.