[PLUGIN] IR Remote Controller feedback thread


That change to the config.txt file worked! Thanks for that.

I failed to mention that my Volumio version is 2.806. I decided to upgrade the system so had to do a Factory Reset since it complained that I had some manually modified files (probably due to the manual installation of the mpd_oled code). Then I did the upgrade to 2.861.

Then I installed the IR Remote plugin and configured it for GPIO 26. It worked fine and the resulting output from the systemctl status -l lirc.service command was:

    * lirc.service - LSB: Starts LIRC daemon.
       Loaded: loaded (/etc/init.d/lirc)
       Active: active (running) since Sat 2021-02-13 13:29:19 PST; 34min ago
       CGroup: /system.slice/lirc.service
               |-1208 /usr/sbin/lircd --driver=default --device=/dev/lirc0 --uinput
               `-1213 /usr/bin/irexec -d /etc/lirc/lircrc

    Feb 13 13:29:19 volumio1 systemd[1]: Starting LSB: Starts LIRC daemon....
    Feb 13 13:29:19 volumio1 lirc[1199]: Loading LIRC modules:.
    Feb 13 13:29:19 volumio1 lircd-0.9.0-pre1[1208]: lircd(default) ready, using /var/run/lirc/lircd
    Feb 13 13:29:19 volumio1 lirc[1199]: Starting remote control daemon(s) : LIRC :.
    Feb 13 13:29:19 volumio1 lircd-0.9.0-pre1[1208]: accepted new client on /var/run/lirc/lircd
    Feb 13 13:29:19 volumio1 systemd[1]: Started LSB: Starts LIRC daemon..
    Feb 13 13:29:19 volumio1 lirc[1199]: Starting execution daemon: irexec:.
    Feb 13 13:29:28 volumio1 systemd[1]: Started LSB: Starts LIRC daemon..

Now everything is working and there’s no comments in the /boot/config.txt file about the ir controller gpio.

Thanks so much!


Great it’s working!

Thanks for your feedback! :grinning:

hello everyone, I hope someone can kindly help me, … I modified the lirccr file in the Volumio plugin related to the xiaomi tv remote control in order to change the functions of the keys to my liking and everything works for now; my problem is that I would like to assign to the menu key the possibility to open the playback queue and with the up and down keys move through the song list and then select that choice with the central key, to do this I need to insert in the string of the lircrc file to the keys in question the corresponding Volumio command, would someone be able to tell me the syntax of these commands please? thank anyone who will help me!

I applied this solution and the play/pause button in the remote worked properly, but now i can’t use the “play” button in the site (volumio.local) or app to play a new song. The only way to go around this is to delete the playlist and start a new one with the songs i want.
is anybody experiencing the same?



shall plugin work while playing music via Tidal Connect ?
I updated to the latest Volumio version today, remote/plugin works while playing all other sources (SSD drive, spotify connect and tidal within volumio)
While playing through tidal connect after pressing any mapped button plugin stops to work 🥲

Maybe this issue is related.

Yes, totally! Thank you :slight_smile:

Cross posting from How to override the default IR Remote Control functions in order to collect (hopefully) relevant information about the plugin:

This has been implemented with version 1.4.2 of the plugin.

User-specific configurations for remote controls can now be stored in a dedicated folder named “/data/INTERNAL/ir_controller/configurations”. A subfolder must be created in the aforementioned directory for each remote control, in which the LIRC files “lircrc” and “lirc.conf” are stored for the remote control.

The name of the subfolder appears in the list of selectable remote controls. If this name is also used for one of the remote control configurations already supplied, the user’s own configuration with the same name takes precedence.

NOTE: Updating the plugin does not affect the user-defined configurations. However, when the plugin is uninstalled, the “/data/INTERNAL/ir_controller” directory is deleted along with all the subfolders and files it contains.

object: IR Remote plugin overwrite lirc config file hardware.conf with wrong modules.

I used your plugin to customize a remote.
Every boot the plugin overwrite the line “MODULES” in /etc/lirc/hardware.conf
My correct modules line (for Odroid N2) is:

The plugin replace it (at every boot) with a wrong one:

I think the problem is in the file /data/plugins/accessory/ir_controller/index.js:

if (device === ‘Odroid-C’) {
data = data.replace(new RegExp(’^#? MODULES="."$’, ‘m’), ‘MODULES=“meson-ir”’);
} else {
data = data.replace(new RegExp(’^#? MODULES="."$’, ‘m’), ‘MODULES=’ + ((overlay === ‘gpio-ir’) ? ‘“gpio_ir_recv”’ : ‘“lirc_rpi”’));

My device should be probably considered an “Odroid-C” or you should add the Odroid N* devices in that line.
I’m not an expert and I wasn’t able to find my device name according to your script, so I just removed that part of your script and now EVERYTHING is working.

Thank you, I hope it will be useful to you or someone else.

Could you post the result of

cat /volumio/app/plugins/system_controller/system/devices.json


cat /volumio/app/plugins/system_controller/system/config.json


This list gets queried to determine the device. At least here Odroid N2 as a device is missing, but on your image this might be different and the list may contain a dedicated entry for Odroid N2.

@gkkpch I just have downloaded the volumio-2.877-2021-04-19-odroidn2 image. The included “/volumio/app/plugins/system_controller/system/devices.json” does not contain an entry for Odroid N2. I guess this concerns other community builds as well.

Would it make sense to extend the list with the device the (community) image was built for, so in this case something like “ODROID-N2”?

cat /volumio/app/plugins/system_controller/system/devices.json
{“name”:“Raspberry PI”, “cpuid”:“BCM2835”},
{“name”:“Raspberry PI”, “cpuid”:“BCM2836”},
{“name”:“Raspberry PI”, “cpuid”:“BCM2837”},
{“name”:“Raspberry PI”, “cpuid”:“BCM2709”},
{“name”:“Raspberry PI”, “cpuid”:“BCM2708”},
{“name”:“Raspberry PI”, “cpuid”:“BCM2711”},
{“name”:“Odroid-C”, “cpuid”:“ODROIDC”},
{“name”:“Odroid-C2”, “cpuid”:“ODROID-C2”},
{“name”:“Sparky”, “cpuid”:“gs705a”},
{“name”:“Pine64”, “cpuid”:“sun50iw1p1”},
{“name”:“BBB”, “cpuid”:“GenericAM33XX(FlattenedDeviceTree)”},
{“name”:“Tinkerboard”, “cpuid”:“Rockchip(DeviceTree)”},
{“name”:“NanoPi NEO2”, “cpuid”:“Allwinnersun50iw2Family”},
{“name”:“Amlogic”, “cpuid”:“Amlogic”}

cat /volumio/app/plugins/system_controller/system/config.json
“playerName”: {
“value”: “Volumio”,
“type”: “string”
“startupSound”: {
“value”: true,
“type”: “boolean”
“kernelSettingValue”: {
“value”: 1,
“type”: “number”
“kernelSettingLabel”: {
“value”: “Default”,
“type”: “string”
“device”: {
“value”: “”,
“type”: “string”
“show_wizard”: {
“value”: true,
“type”: “boolean”

My image was very recent too:

The content of “/volumio/app/plugins/system_controller/system/devices.json” shows that the Odroid N2 is not listed as a device.

Currently the plugin uses the Raspberry Pi settings as default if the device is unkown. I guess will do a PR with a new plugin version that will not alter the module to be used at all, if the device is unkown (according to “devices.json”).

That would require the users of “unknown” devices (probably all community builds) to manually set the approriate module in “/etc/lirc/hardware.conf”.

In case the list in “/volumio/app/plugins/system_controller/system/devices.json” should be extended (and the correct settings for new device are known), the handling of the new device can be added in the plugin, as it is currently the case for Ordoid-C.

I recall having issues with the way current device identification is being done (based on cpuid) especially with the Allwinner H3 based boards…

But with the Buster and above builds, all devices should have an entry in etc/os-release that identifies them. Have a look at the table from volumioOS/recipes/devices – you could technically use this instead of depending on what the API returns…

Thanks a lot for the reference!

In the past I opted for using “self.commandRouter.executeOnPlugin(‘system_controller’, ‘system’, ‘getConfigParam’, ‘device’)” considering it to be on a higher level of abstraction and to be dedicated for exactly the purpose of querying the device type. :wink:

But as of now looking at “/etc/os-release” appears to be more reliable and will surely help. Nevertheless, I would no longer set the Raspberry Pi value by default for devices where it is not known which module must be used.

That would indeed be the correct way – but that API needs some love…
It’s parsing /proc/cpuinfo which isn’t the most robust.
I initially proposed using /proc/device-tree/model instead in Volumio2/issues/1757. Perhaps once Buster is released, getConfigParam can be refactored to use VOLUMIO_HARDWARE which is completely under our control and set at build time.

For now I plan to use the value of property “hardware” delivered by “getSystemVersion” which resorts to /etc/os-release.

Does JustBoom work on Volumio. I tried looking for the remote but all sold out, or i’m assume. JustBoom website is sold out. But I think i found one on Arrow.com https://www.arrow.com/en/products/jbm-016/pi-supply

I have no experience of my own with that remote control, but according to the OP the JBM-16 should work.

First, I have my Volumio player setup on a SmartiPi. But, of all of the usb remotes out there, looks like there be a remote out there to work.