External source controls no longer show after version 1.8 upgrade [Resolved with Build 763]

Nuc : Linux
Rock 1.8 build 73 stable
Same on all IOS/ANDROID and PC displays tested
Ethernet

Multiples Marantz Heos Players

External source control buttons and display_name no longer show.
API extension that uses these to control connected devices allows External source control to be added but button no longer shows when “supports_standby” is true ins source control object.

Hi @peter_richardson ,

Can you try to disable and re-enable the zone under Roon Settings -> Audio?
For what zone is this, can you share a screenshot of the Device Setup?

1 Like

Thanks Noris. Disable and enable made no difference.

Screen shot :s:

The code I use with previous versions has always resulted in two devices being shown - the space is created and the code switched on he two Heos devices that are attached - but I can no longer select them independently or see them as attached to the output/zone.

Same issue for me - can only select/see one zone. Have reset these through settings - audio. Still nothing. Doomed to play everything in the bedroom on the pi4 currently- using qnap nas

Edit:fixed after after cycling through this and restarting core twice

Here’s a small extension script that shows the change in behavior.

This would previously display two buttons to “control” player 1 and player 2. Both are available to add as external controls but are no longer displayed un v 1.8.
var RoonApi = require(“node-roon-api”),

RoonApiStatus           = require("node-roon-api-status"),

RoonApiSourceControl    = require("node-roon-api-source-control"),

RoonApiTransport        = require("node-roon-api-transport");

var roon = new RoonApi({

extension_id:        '',

display_name:        "Roon API Test - Source Control v 1.8",

display_version:     "1.0.0",

publisher:           '',

email:               '',

website:             '',

log_level:           'none',

core_paired: function(core) {

    let transport = core.services.RoonApiTransport;

    transport.subscribe_zones(function(cmd, data) {

                                  console.log(core.core_id,

                                              core.display_name,

                                              core.display_version)

     })

},

core_unpaired: function(core) {

               console.log(core.core_id,

                       core.display_name,

                       core.display_version,

                       "-",

                       "LOST");

 }

});

var svc_status = new RoonApiStatus(roon);

var svc_source_control = new RoonApiSourceControl(roon);

roon.init_services({

required_services: [ RoonApiTransport ],

provided_services: [svc_status, svc_source_control ]

});

svc_status.set_status(“All is good”, false);

roon.start_discovery();

svc_source_control.new_device(test_source_control_1())

svc_source_control.new_device(test_source_control_2())

function test_source_control_1 () {

const control = {   

    state: {

        control_key: 1001,

        display_name:  "PLAYER 1",

        supports_standby: true,

        status: "selected",

    },  

    convenience_switch : function (req) {

        console.log("PLAYER 1 CONVENIENCE SWITCHED ")

        req.send_complete("Success")

    },  

    standby:  function (req) {

        console.log("PLAYER 1 STANDBY ")

        req.send_complete("Success")            

    }

}

return (control)

}

function test_source_control_2 () {

const control = {

    state: {

        control_key: 1002,

        display_name:  "PLAYER 2",

        supports_standby: true,

        status: "selected",

    },  

    convenience_switch : function (req) {

        console.log("PLAYER 2 CONVENIENCE SWITCHED ")

        req.send_complete("Success")  

    },  

    standby:  function (req) {

        console.log("PLAYER STANDBY 2 ")

        req.send_complete("Success")             

    } 

}

return (control)

}

Fixed issue by cycling through disabling and enabling twice with restarting core in between twice

Unfortunately not solved for me. :thinking:

Good luckstrong text

Same issue for me. I’ve tried removing the source controls, restart server re-add the source controls and restart server again.
Unfortunately the external source controls are not showing up.

If I add only one, it works. Once I add 2 or more (I need actually 3), just get the empty space like shown by Peter before.

Please fix this. It was working fine in 1.7 Is there maybe some limitation with amount of characters due to the font updates?

1 Like

Thanks for confirming. I have no solution and like you use this as a key feature.

I’ve also raised it as an issue on the api GitHub - source_controls. If you could add the issue there we may get a response. I am sure the support team is triaging all the issues that have been raised - but it’s import the API continues to function as before.

1 Like

Also have the same issue. More than one source doesn’t show.

Mike

1 Like

Hi @peter_richardson & @MorrMusic ,

Thanks for the additional confirmation. Would you be able to please provide a set of reproduction steps that I can pass on to QA regarding this issue? Which extensions / devices are needed to reproduce this in the lab? Please let me know when possible, thanks!

Hi @noris,
It’s super easy to reproduce this issue. Simply have 2 or more extensions which implement the source-control and they are setup to support standby mode.
Then enable all of them in ‘Zone Settings → Device Setup → External source controls’.

Once they are in and user tries to click on the standby button, the menu opens up a bit (same like in 1.7), but we only get a blank area with no buttons.
Previously in 1.7 we had in this blank area a standby button for each enabled source control.
Peter has already provided several screenshots so if this is shown to the developers, it should be very clear to them.

This issue happens on all remotes I’ve tried:
Windows, iPhone, iPad, Android phone

2 Likes

Thanks for so elegantly demonstrating the issue and how it can be simply replicated. I already provided the code for a basic extension that creates two source controls attached to an output.

This should be enough to pass on and I can either put on git hub or share directly if the forum post is not adequate (I can’t seem to be able upload a script file to a forum post)

@StefanK , @peter_richardson , thank you for your detailed descriptions of this issue, I was able to reproduce this and put a ticket in for our dev team.

Thanks!


Ivan

3 Likes

Not getting any resolution to this so starting a new thread please put it where it belongs but CAN I HAVE A SOLUTION a please? Every day - yes every day since 1.8 I have to restart the core to get the audio end points recognised. There is a Dac which always used to work and more recently 3 raspberry pi 4 with hats. Have restart the core and go into audio settings and disable and enable to use them - every day. When can I have a fix , for the love of god. Running it from a qnap nas. Happy to dig up more details if I can get anyone to answer me . Pleeese. Pete

I’ve had this problem too @pete_keeley. It’s not every endpoint, but many of them. Roon is aware of the problem. I’m sure it will get fixed, but Roon almost never posts a time estimate.

1 Like

Hi @pete_keeley,

I shifted your post here as I understand this is the issue you are referring to. If so it has been reproduced and a ticket opened for a fix.

1 Like

Thank you very much, glad it is being looked at. Sticking with Spotify over airplay (sadly) for now

Thanks for letting me know good to hear someone is working on this. I am losing all endpoints until I reboot the core so no music at all. Will sit on my hands for a week at hope for the best