Roon CEC Controller Extension should allow you to control Roon Core (⏮, ⏪,
You should install this extension on a device connected to your HDMI amplifier, probably your Roon Bridge (although you may have the Roon Bridge and the Roon Core on the same computer).
NB: This extension is heavily inspired by roon-extension-powermate.
It relies on
- the Node Roon API
- hdmi-cec which relies on libcec
It should work with any device that supports libcec:
- Raspberry Pi
- Vero4K+
- Pulse-Eight USB-CEC Adapter
- Pulse-Eight Intel NUC CEC Adapter
- Some Exynos SoCs
- NXP TDA995x
- Odroid C2 (Amlogic S905)
This is a work in progress (but it works for me). Use at your own risks.
Todo:
- Add volume control from Roon Core to the amplifier.
- Display music titles on Amplifier
- Power on amplifier / switch source automatically
Installing Node.js via package manager
wget -qO- https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install cec-utils
If you see the following error message while running the program, you probably have to take a closer look at the two following paragraphs.
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:992:11)
at Pipe.onread (net.js:618:25)
If you are on Raspberry Pi, you probable need to do these:
echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules
usermod -a -G video YourUnprivilegedUser
Log off, log back in.
If you are using a Pulse-Eight Intel NUC CEC Adapter, you probably want to add the current user to dialout group so that you have access to /dev/ttyACM0
:
usermod -a -G dialout USERNAME
Log off, log back in.
echo "scan" | cec-client -s -d 1
git clone https://github.com/benjaminbellamy/roon-cec-controller-extension.git
cd roon-cec-controller-extension/
npm install
node .
Open Roon Control software, go to Setting, then Extensions and enable Roon CEC Controller.
- Edit
roon-cec-controller-extension.service
so thatExecStart
andWorkingDirectory
directories match your configuration. - Copy
roon-cec-controller-extension.service
to/etc/systemd/system/
:
sudo cp roon-cec-controller-extension.service /etc/systemd/system/
- Give access to nobody to your CEC hardware, for instance on NUC:
usermod -a -G dialout nobody
- Run the service:
systemctl start roon-cec-controller-extension.service
- Enable it to run on boot:
systemctl enable roon-cec-controller-extension.service
Et voilà !