RoonCommandLine Version 2.0.8 Release 1

A significant update is available for RoonCommandLine at https://gitlab.com/doctorfree/RoonCommandLine/-/releases/v2.0.8r1.

This update provides compatibility with the latest release of the Python Roon API. The latest release of roonapi included significant improvements which unavoidably broke previous volume control via the API. This release of RoonCommandLine addresses that issue.

Installing this version of RoonCommandLine will automatically upgrade or install the latest version of the Python Roon API, providing improved volume control especially for those Roon endpoints with dB volume ranges.

Changes in RoonCommandLine 2.0.8 include:

  • Compatibility with Python Roon API 0.1.3
  • Support for percentage volume change/setting
  • Add immediate mode to roon_fade with ‘now’ argument
  • Implement non-interactive immediate fading
  • Add interactive menu system (roon_fade -i)
  • Set man permissions correctly in manual install scripts

One other significant improvement in RoonCommandLine is an upgrade to the latest WebSocket client library.

Note that users of any previous release of RoonCommandLine should update to this version or later if the Python roonapi module is updated.

5 Likes

Updated just fine. Thanks for staying on top of things, Ronald. All the best for 2023!

1 Like

Wow man what commitment releasing this just into the new year. Much respect :+1:t2:

1 Like

Super cool to see the fading upgrade.

Will try it out, @Ronald_Record.

Thanks a lot!

Ok, just installed the new release on macOS.

Two troubles came up:

roontoken.txt permissions

  1. When I tried to set the volume with

    $ roon -v r:+20

I got the error:

Traceback (most recent call last):
  File "/usr/local/Roon/api/set_volume.py", line 83, in <module>
    with open(tokenfile, "w") as f:
PermissionError: [Errno 13] Permission denied: '/usr/local/Roon/etc/roontoken.txt'

Issuing ls on roontoken.txt revealed:

-rw-r--r-- 1 root 36 Jan 19 19:07 /usr/local/Roon/etc/roontoken.txt

so I fixed it with

$ sudo chown [myusername] /usr/local/Roon/etc/roontoken.txt

roon_fade now fails with repeated “Volume argument required”

When typing

roon_fade now

I get

Fading volume levels in iMac zone
Volume argument required
Volume argument required
.
.
.

with no fading result.

I haven’t found a fix for this yet. :dizzy_face:

Also one other thing which I nearly forgot:

Mac installer fails with “pip: command not found”

before rnning anything the installer had already reported an error:

After
$ sudo ./Install

I get:

Install RoonCommandLine version 2.0.8r1 ? ('Y'/'N'): y
./macInstall: line 70: pip: command not found

I was able to fix this by replacing the line 70

if pip list | grep roonapi > /dev/null

with

if ${SUDO} ${PYTHON} -m pip list | grep roonapi > /dev/null

PS: Would it help to create PRs for something like this on GitLab? I noticed the issue list doesn’t look very attended to, maybe here, the Roon forum, is the better place?

Thanks for reporting these issues. I will look into them right away.

Raising issues here in the Roon forum is fine, I get notified and others can chime in. Just make sure it’s a topic I created or tag me.

@hallo_leo I’ve uploaded a new release of RoonCommandLine which addresses the Mac installation issues you report. The problem with roon_fade you encountered was caused by the installer failing to upgrade the roonapi Python module using pip.

On a Mac, clone the repository or do a git pull in an existing cloned directory and re-run the ./Install script. Debian and RPM format installation packages are also available for Linux platforms.

Thanks Ronald! :smile:

I have just install RCL 2.0.8 R2 - and the install itself went smoothly.

However – and sorry to say – when running roon I still have the issue with

PermissionError: [Errno 13] Permission denied: '/usr/local/Roon/etc/roontoken.txt' 

plus other permission errors on roon_fade now like

/usr/local/bin/roon_fade: line 40: /usr/local/Roon/etc/fadeconf: Permission denied

Maybe it helps when I describe step-by-step how I install:

  1. I pull the new version.
  2. Issue `sudo ./Install
  3. On password prompt type password.
  4. On “Using root as the Roon user…” type n
  5. Then choose my normal username (who on macOS is a user that can become root via sudo, but is not root).
  6. Wait for Extension approval in Roon UI.
  7. Than try roon pause – and get first perm error.
  8. Fix this via sudo chown [username] /usr/local/Roon/etc/roontoken.txt
  9. Than try roon-fade now – and get second perm error multiple times.

Something might go wrong with the normal user and the use of sudo for the Installer. It looks like the installer only installs RCL for root! Or do I do something wrong?

I fiddled a bit more and discovered: When I run

sudo roon_fade now

no perm errors are issued – and the fading works BRILLIANTLY! :smile:

It is off course in everyday use not practical to use sudo, but at least we know the fading works!

So it must be something with the installer and sudo. Should I try to install without sudo?

@hallo_leo I think your problem stems from installing RoonCommandLine with sudo. That is, in your step by step description you say:

sudo ./Install

but the RoonCommandLine installation instructions say:

git clone `https://gitlab.com/doctorfree/RoonCommandLine.git`
cd RoonCommandLine
./Install

Maybe I should fix the Install script to somehow figure out who is actually invoking me and ignore the sudo. I will think about it.

But, the problem is probably incorrect permissions in /usr/local/Roon/etc as a result of invoking the Install script as root.

Ok, will try this!

I had miss-interpreted the info in the ReadMe:

Note: A cleaner installation can be accomplished by executing the Install script as a user with sudo privileges and as the user which will be used to SSH in to the system. If you are not going to enable SSH support, at least make sure the user has sudo privileges.

I though it means I should install with sudo, not just as a user with sudo capabilities. My bad.

Works perfectly now – once I’ve installed it as a normal admin user!

roon_fade now rocks!

Thanks a lot for all your work, @Ronald_Record!

I will try to clarify this along with checking if the install user is root and issuing a warning. One of the goals of the RoonCommandLine project is to make difficult things easy. The command line poses a challenge to some users and knowing about sudo and privileges just adds to that.

It helps improve the project when users report the wrong turns they may have made or any unclear directions. So, thanks!

1 Like