Writing this post to see if there’s interest in using and possibly supporting the development of an app dedicated to the Devialet speakers.
I have a proof of concept already running locally (volumeUp, volumeDown, mute), using default Homey widgets, but development is slow for the moment since I can only combine a Homey Pro with a Devialet speaker (a Dione) only for a few hours every week, to test stuff. I know that the API is dedicated to the Phantom but most of the API calls seem to be similar.
I will gather feedback and report on roadblocks and hopefully on progress in this thread.
I am also thinking about contacting Devialet and see if they would be interested in providing a device (any device that supports their published API would be fine) so I can speed up development, so if someone is closer to their dev or mkt team, drop me a message.
And since I mentioned roadblocks, dropping here a reference to how the devices “could” notify homey about changes (volume change, playback change, playback position etc) but don’t.
In the API it is mentioned that:
In order to show up to date information, the client application may subscribe to or perform regular polling on the following endpoints:
● /groups/current/sources (the list of all available sources)
● /groups/current/sources/current (the current playback state)
● /systems/current/sources/current/soundControl/volume (the current volume for the system)
● /groups/current/sources/current/playback/position (the position within the current track)
Unfortunately, none of the obvious methods to subscribe to those SSE (server side events) works, so if anyone has any idea what they meant and how we could subscribe to those SSE’s I could use that help.
I asked ChatGPT about making an app for Devialet. Seems possible, but experienced some trouble with Homey Pro 2019. ChatGPT says there are functions in Homey 2023 that will handle this better. And also something about the roadblocks that were mentioned, this is what ChatGPT says: Possible solution for integrating Devialet Phantom with Homey (API limitations and workaround):
The Devialet IP Control API provides endpoints to get information like volume, playback status, and track metadata. The documentation mentions the ability to “subscribe” to these endpoints (e.g., /groups/current/sources, /groups/current/sources/current, /systems/current/sources/current/soundControl/volume), but in reality, no working subscription or server-sent events (SSE) mechanism is implemented.
This means the API doesn’t provide push notifications or event streams. Instead, the only reliable method is to perform regular polling by sending HTTP GET requests to these endpoints at intervals.
Proposed solution:
Implement polling in the Homey app’s driver using a timer (e.g., setInterval).
Periodically fetch the relevant API endpoints (every 5 or 10 seconds) to get the latest volume, playback status, etc.
Update Homey device capabilities with the retrieved data so the dashboard and flows reflect the current state.
Provide an app or driver setting to let the user configure the polling interval (e.g., choose between 2, 5, 10, 30 seconds).
Stop polling when the device is removed or unavailable.
Optionally add a manual “refresh” action or flow card for on-demand updates.
Benefits:
Works with the current API without requiring undocumented or unsupported methods.
Keeps the device state in Homey reasonably up-to-date.
Gives users flexibility over update frequency.
Limitations:
Polling increases network traffic and CPU usage, especially on older hardware like Homey Pro 2019.
Status updates will always be delayed by the polling interval (it’s not real-time).
High polling frequency might affect performance on less powerful devices.
Homey Pro 2023 handles polling better thanks to improved hardware.
Future-proofing:
If Devialet later implements a real subscription mechanism (e.g., WebSocket or SSE), the app can be updated to switch from polling to push notifications to improve efficiency and reduce latency.
In short:
Since the Devialet API doesn’t support true event subscriptions, polling is currently the only practical solution to keep Homey in sync with the speaker’s state.