Awesome. Thanks for the detailed instructions @streamy68 . Much appreciated.
I made note of this up above:
This is because UPnP on the Phantom is not responding with subscribe events.
I didn’t investigate this more because I had a weekend, I don’t use Spark, and my knob controls Roon (which then controls the Phantom via this extension).
There is a comment in the code that shows this. If anyone wants to dig further, feel free: https://github.com/RoonLabs/roon-extension-devialet-phantom-volume/blob/master/app.js#L96
A well deserved one. My comments weren’t intended as a judgement against the extension, just a comment to investigate how it was working perfectly for @grossmsj who also seemed to be using a Devialet Volume Control.
Thanks for sharing this.
Thank you very much! I’ll try it out as soon as possible.
You’re right. I’m just glad to be free of the constraints of Airplay, Dialog, and Spark. I’ve been in music systems for over 45 years and the Devialet Phantom system is the most twitchy, frustrating piece of equipment I’ve ever used. Roon is probably the most satisfying part of my audiophile journey. Getting them to play nice together has been a seemingly endless sequence of hope and disappointment.
Finally, I can just connect this endpoint up and get everything I need out of Roon. True, I don’t see the volume numeric feedback from Roon, but when I’m using this system the Devialet remote is right beside me in my shop and the volume control works fine now.
Definitely agree. The physical remote within arms reach is an essential accessory. I couldn’t imagine my system without it.
@ragwo I don’t think I have this quite sorted out yet, despite best intentions beyond my skill set. I didn’t realize that when I close the ssh session for the root user, the extension goes away. Clearly I don’t have it installed correctly so that it will run continually.
I put in a pull request on the Extension Manager Repository on Github to see about getting this extension added to the Manager, which would automate the systemd hurdles as well. Hopefully that gets merged, or someone with stronger tinkering chops can point us both to a step-by-step on manual extension installation. The Extension Manager has overtaken every Google search making locating a manual guide elusive. I thought I might find something in the KB, but I’m striking out there too.
I saw your pull request but for this to work a small change in the Devialet Phantom extension is necessary. I created a pull request for it, let’s see if it gets accepted.
The trick here is to use nohup.
I made some edits to the above instructions based on @Jan_Koudijs’s nohup suggestion. I appreciate all the help folks.
The pull request is merged. Thanks @danny!
I just released an update of the Extension Repository that includes the Devialet Phantom extension. For those who use the full setup as demoed by Danny, for the Powermate extension to show up in the Extension Manager it should have access to a Docker install. There is a video on how to do this on a DietPi setup on my YouTube Channel.
I’ve finally installed the extension and it works like a charm on a Chromecast Audio. A Raspberry Pi with Hifiberry Digi+ is ordered and hopefully on its way soon. Thanks again!
@Danny great work. I’m currently using two Golds connected to a RPi 3B+ with HiFiBerry Digi+ an optical splitter and direct optical mode. I’m interested in enabling “device volume” through Roon in order to get bit-perfect playback vs. controlling the volume via DSP. Is this possible with your extension? It seems like using the direct-optical mode would negate any uPNP capabilities of the device?
Sorry, but I’m not sure I understand your question. The 2 things that threw me off:
You refer to some “direct optical mode” that I’m unaware of. Please clarify.
My extension speaks to the Phantom via UPnP to control the volume, not to stream audio. I’m not sure what negation you may be referring to.
You can’t use the UPnP volume extension with direct optical mode.
Here’s something interesting. The chap seems to have figured out how to get the volume from the device.
He’s not mentioned it in the usage section of his readme, but ?getVolume=1 gives the current volume.
Stumbled onto this rotary encoder with built-in display, and figured I’d put a bug in everybody’s ear. It’d obviously need a recasing with a board and battery to be of practical use, and it isn’t exactly cheap ($180 retail if I’m not mistaken), but…
Has anyone who was running this extension also updated their Phantom to the new DOS2 firmware? Since doing so, the extension can no longer find the Phantom on my network. I’ve tried to dig into it a bit, but I don’t have the chops to solve it completely. It looks as though the modelName tag in the UPnP xml has been changed.
In the new version of the Devialet Phantom firmware, it looks like the model name is now “Phantom”
but in @danny’s extension, it looks like perhaps the old name in DOS1 was “Devialet UPnP Renderer”:
Could this be the root of the issue?
It is, you need to edit the source code to get it to work.
Just to connect the dots for others following this thread, “work” is a relative term. It seems editing the code to look for the DOS2
<modelName> does allow Roon to find the Phantom, but attenuating the volume with this plugin still doesn’t work if you update your Phantoms to DOS2.
@mvrlogins have I captured that correctly?