We have released version 3.3.0 of the openHAB app for iOS and watchOS. The headline change is a complete migration to Apple’s App Intents framework, replacing the legacy SiriKit extension. Alongside that, the release includes a significant number of fixes and improvements.
Siri Shortcuts — App Intents
The Shortcuts integration has been rewritten on the App Intents framework. The old SiriKit extension has been removed. All actions now run in the background without launching the app.
The following actions are available: control a switch, read item state, set a dimmer or rollershutter value, set a color, set a number, control a player, set a string, set a date/time, check a contact sensor state, and switch the active home. Items and homes use stable cross-device identifiers, so shortcuts created on one device synchronise correctly to another. Group items are now included in the item picker. The “Get Item State” action returns the formatted display value in addition to the raw state string.
App Intents are also available on Apple Watch with full multi-home support.
Credential Security
Connection credentials are now stored in the system Keychain instead of UserDefaults, both on iPhone and on Apple Watch. This keeps credentials out of app data backups and aligns the app with iOS security guidelines.
watchOS — WidgetKit Complications
The deprecated ClockKit complications have been replaced with WidgetKit. The new complications support all current watch face families and use the standard system timeline mechanism.
Notifications
Foreground push notifications now display image attachments when present. If a notification action fails — for example because the server was briefly unreachable — the notification is re-posted so the user can retry without waiting for a new one. Navigation to a sitemap sub-page triggered by tapping a notification is more reliable across both foreground and background launch paths.
Reliability & Polish
A number of long-standing issues have been addressed:
- Sitemap sub-pages refresh their items when the app returns to the foreground
- Sub-page navigation is deferred until the root sitemap poll has completed, avoiding blank screens on slow connections
- Optimistic widget state is reverted when a command is rejected by the thing
- Relative image widget URLs are resolved against the server root URL
- Image widgets no longer flicker during periodic auto-refresh
- The Input widget sends the correct value when the state description changes unit mid-session
- A prompt is shown when Local Network access has not been granted, avoiding silent connection failures
Localisation
The string catalogue has been cleaned up and completed: French, Italian, Dutch translations now cover all keys
