Hi Everybody !
I don’t know if I post at the right place …I am looking to create a hardware remote that uses buttons for play, forward, and backward functions to interact with my Roon audio software server. My goal is to utilize a Raspberry Pi 4 / GPIO for this project.(I own it already ) . I installed node.js and a couple of other modules.and the OS of course.
While I have managed to get the unit recognized by Roon, I am struggling with the rest of the setup because I am not a programmer.
My initial attempts involved using a few bits of code, but unfortunately, they didn’t work as expected.
I am wondering if there is any user-friendly software or “solution”available that could help me achieve this functionality without requiring extensive programming skills. Ideally, I would like to set up a couple of buttons on a remote I am building, which can control the play, forward, and backward commands seamlessly with Roon (and eventually volume)
Using the Roon API would be an excellent solution for this,
Is there any guidance or software tools that could simplify this process for someone with my level of expertise? Any assistance or recommendations would be greatly appreciated ,:-)))
thanks a lot for your help !
P
Hi @Phil_88 ,
I think you can look at rooExtend of @DrCWO
You can then use several possible remote devices like Microsoft Dial, …
Just have a look at it, perhaps this will give you all you desire and much more.
Kind regards, Frank
HI Frank , thanks for your answer
I own already the numio … great software … but here I am looking to have access to the Roon transport with some physical button … with new equipment I am building DIY. would like to have physical button on the faceplate …I am not sure rooExtend can do it …
thanks a lot
P
PS : maybe it should be moved to the ROON API DIY section ?
I have a slightly modified version of the code that works on the easiest Zone name:
#!/bin/sh
## Finds the zone of a Roon output_id and issues various commands
## Needs curl and jq on the machine running the script
## Needs the following Roon extension: HTTP Calls for Roon API
## https://github.com/st0g1e/roon-extension-http-api
# Setup variables
SERVER=192.168.1.106
SERVERPORT=4001
DISPLAYNAME="Bedroom"
# Checking for needed tools
command -v curl >/dev/null 2>&1 || { echo "I require curl but it's not installed. Aborting." >&2; exit 1; }
command -v jq >/dev/null 2>&1 || { echo "I require jq but it's not installed. Aborting." >&2; exit 1; }
# Finding zone_id based on display_name
BEDROOMZONE=$(curl -s -H "X-Requested-With: XMLHttpRequest" http://$SERVER:$SERVERPORT/roonAPI/listZones | jq --raw-output '.zones | .[] | select(.display_name =="'$DISPLAYNAME'") | .zone_id')
echo roon_ir: $DISPLAYNAME zone is: $BEDROOMZONE
# Sending the command via the HTTP API
case "$1" in
playpause)
curl -s -o /dev/null http://$SERVER:$SERVERPORT/roonAPI/play_pause?zoneId=$BEDROOMZONE
echo roon_ir: Play-Pause using http://$SERVER:$SERVERPORT/roonAPI/play_pause?zoneId=$BEDROOMZONE
;;
next)
curl -s -o /dev/null http://$SERVER:$SERVERPORT/roonAPI/next?zoneId=$BEDROOMZONE
echo roon_ir: Next using http://$SERVER:$SERVERPORT/roonAPI/next?zoneId=$BEDROOMZONE
;;
previous)
curl -s -o /dev/null http://$SERVER:$SERVERPORT/roonAPI/previous?zoneId=$BEDROOMZONE
echo roon_ir: Previous using http://$SERVER:$SERVERPORT/roonAPI/previous?zoneId=$BEDROOMZONE
;;
*)
echo "Usage: $0 {playpause|next|previous}"
exit 1
esac
Hi Nicholas. Im interested to know your experience with this approach. A rotary encoder gives a much more intuitive feel for volume control. But I’m curious about your experience with precision. The knob will feel “fast,” but the rate of change in vol via IR may be slower than you expect with a “knob” as input. What do you think?
I rarely use the encoder in real life. It’s mainly the IR remote or the app control.
The rates are as slow or fast as you set them in the code, be it IR or encoder.