Feature Request: Russound RNET plugin support

@Garret

It would be great if you could add support for the new Russound plugin.

Thanks again for the great app and your continued effort amidst life’s other demands!

I’ll have a look at the current state of the plug in and add it to my list of plugins to support.

  • Garrett

Thank you sir.

Are you running the current beta? The reason I ask is if you are, can you perform a test for me? If you go to create a home screen shortcut for a device, are you able to select the russound device and does the control menu appear with a list of options? Can you use any of those controls to send a command to the russound device?

  • Garrett

Yes I’m on the latest beta and yes I can create a short cut to one of the devices but It only allows Media Navigation with the associated stop, play, etc. Which aren’t relevant to changing volume or powering on and off so I can’t test for a response.

It looks like the plugin is using DescretePower and not SwitchPower to turn on and off the device. It is also using a different service for volume which I also need to implement.

  • Garrett

If there are logs I can provide or any other way I can be of assistance please let me know. Thaks for looking into this.

I know what I have to add to support it. I was hoping it would share the same services that the squeeze box and sonos plugin use. But I’ll gave to add additional services. I am in the process of making some big changes in the next release and it might be some time before it will be released. But I’ll try my best to get it into that release.

  • Garrett

@garrettwp: I can make the switch on the RNET plugin from DiscretePower to SwitchPower to make it easier for you. What do Sonos and Squeezebox plugins use for volume control (I used the S_Volume file as I thought that was most common)? Also the latest version of the plugin will have an RNET service file for a textbox that allows a volume value to be entered (a feature request). If there is a common service file that would support it that you’ve already incorporated, let me know and I can make the switch on that, too. Otherwise I’m not sure it’s needed for the mobile interface.

Kabdalla,

If you want to make the changes that is great. I’ll still add the other services for the future. For SwitchPower you would use the action of SetTarget and newTargetValue with a value of 1 or 0.

For the volume, you have it correct for the up and down buttons. However, for the mute the other plugins are using “urn:upnp-org:serviceId:RenderingControl”. They are also using that for setting the volume value which is a percentage.

Let me know if you need more details and I can provide them.

  • Garrett

No problem at all but can you point me in the direction of the “urn:upnp-org:serviceId:RenderingControl” description? I couldn’t find it with a quick Google search and if there isn’t one I can just download one of their plugins and see how they’re using it.

For Sonos, we are implementing Mute from service “urn:micasaverde-com:serviceId:Volume1” as a toggle + SetMute from service “urn:upnp-org:serviceId:RenderingControl”.

Ok, I have the power control converted to SwitchPower. Since Sonos uses S_Volume for toggling mute, I’ve kept that the same since that’s is what my plugin currently does.

I’m going to keep my volume input textbox in the still-to-be-deployed S_RNET file as I took one look at the UPNP settings on the Sonos plugin and was nothing but confused. I’ll need the S_RNET for Party Mode and DND deployment, anyways. I’m hoping to have it all ready by the end of the week.

Sorry for the delay. Here are some details:

Volume:

Service ID: urn:upnp-org:serviceId:RenderingControl
Action: SetVolume
Value: DesiredVolume

Mute:

Service ID: urn:upnp-org:serviceId:RenderingControl
Action: SetMute
Value: DesiredMute

Sonos uses both S_Volume and RenderingControl for mute. Here is a link to the files for the squeezebox plugin:

http://forum.micasaverde.com/index.php/topic,9451.msg115289.html#msg115289

That might be much easier to understand. If you have any more questions let me know.

  • Garrett

Thanks, garrettwp. Is there something special I need to do to initialize UPNP? I have the service/service file (S_RNETRenderingControl) correctly identified in the D_ file. I have the json changed to the new service/variables, and I’ve updated my I_ file. I keep getting a “No Implementation” error and I’ve been through it a dozen times trying to find a typo or mismatch and can’t find one.

Honestly, if it’s all the same to you I’d rather keep my volume setting textbox in my S_RNET file the way I have it as it will be one less file to manage. The RenderingControl file also has a log more variables/settings than I need. If it is a big difference on the configuration on your end I may need another set of eyes on this.

If you can provide me the files of what you have, I can have a look to see what might be the issue.

  • Garrett

Thanks for taking a look. I’ve compressed the relevant files and attached here.

Garrett,
I’d imagine this is going to become a common request for supporting various flavours of Audio control gear. It might pay to document what ServiceId’s you’re using for this control, and how you look for the specific device to bind the widget to (DeviceType, or [hopefully] some specific combination of services). With that, others can simply implement against “the spec” and the control will appear and function correctly.

Just a thought…

[quote=“guessed, post:18, topic:176602”]Garrett,
I’d imagine this is going to become a common request for supporting various flavours of Audio control gear. It might pay to document what ServiceId’s you’re using for this control, and how you look for the specific device to bind the widget to (DeviceType, or [hopefully] some specific combination of services). With that, others can simply implement against “the spec” and the control will appear and function correctly.

Just a thought…[/quote]

Guessed,

Thanks for the heads up. I’ll try and get something written up in the near future on the authomation website. It may take some time as I have a lot on my plate right now.

  • Garrett

I found your problem (well hopefully)! In your D_RNETZones.json file you have NewVolume instead of Volume for the ID.

{
    "ControlType": "button",
        "Label": {
            "lang_tag": "lblMsg",
            "text": "Set"
        },
        "Display": {
            "Service": "urn:upnp-org:serviceId:RenderingControl",
            "Variable": "Volume",
            "Top": 37,
            "Left": 110,
            "Width": 30,
            "Height": 16
        },
        "Command": {
            "Service": "urn:upnp-org:serviceId:RenderingControl",
            "Action": "SetVolume",
            "Parameters": [
                {
                    "Name": "DesiredVolume",
                    "ID": "newVolume"
                }
            ]
        }
}

It should be:

{
    "ControlType": "button",
        "Label": {
            "lang_tag": "lblMsg",
            "text": "Set"
        },
        "Display": {
            "Service": "urn:upnp-org:serviceId:RenderingControl",
            "Variable": "Volume",
            "Top": 37,
            "Left": 110,
            "Width": 30,
            "Height": 16
        },
        "Command": {
            "Service": "urn:upnp-org:serviceId:RenderingControl",
            "Action": "SetVolume",
            "Parameters": [
                {
                    "Name": "DesiredVolume",
                    "ID": "Volume"
                }
            ]
        }
}
  • Garrett