[PROBLEM] Python scripting - run script when moode plays/stops - Printable Version +- Moode Forum (https://moodeaudio.org/forum) +-- Forum: moOde audio player (https://moodeaudio.org/forum/forumdisplay.php?fid=3) +--- Forum: Support (https://moodeaudio.org/forum/forumdisplay.php?fid=7) +--- Thread: [PROBLEM] Python scripting - run script when moode plays/stops (/showthread.php?tid=1158) |
Python scripting - run script when moode plays/stops - chalojak - 02-23-2019 Hi, please could you provide guidance how to call a custom python script when moode plays music as well another one that would be called when music stops? - I want to control a relay by the RPI GPIO that would be switching the amplifier on and off. Thanks, Jakub RE: Python scripting - run script when moode plays/stops - tristanc - 02-26-2019 Here's how I do it. Two files: autoamp.sh autoamp.service Put the first in your home directory. Put the second in /etc/systemd/system/ Then run sudo systemctl enable autoamp.service sudo systemctl daemon-reload sudo systemctl start autoamp.service The 1st file, which I borrowed from someone (thanks!), polls the /proc/asound/card0/pcm0p/sub0/status virtual file (this works for my set-up, you might need to alter which file it polls depending on yours) for the text "RUNNING". This only appears when sound is playing. If it finds it, then it changes the state of your specified GPIO pin (in my case 23). If it doesn't find it, then no change. If it did find it, but then it doesn't anymore, then the state is changed as well. There's a counter in there for a delay on this change. Hope this helps. RE: Python scripting - run script when moode plays/stops - chalojak - 03-13-2019 (02-26-2019, 10:28 AM)tristanc Wrote: Here's how I do it. Two files: Thanks! Great, this works and I especially like that it is independent way how to control the relay (on moOde or anything else). You may use the cat to help you show what the sound card output is cat /proc/asound/card0/pcm0p/sub0/ or other file, depending on the sound card that you are using. If others follow this procedure, you will most likely further need to make the script executable (first line below) or even run it always as root - second line (GPIO needs to be called as root, or at least it is the simplest way that I found to do that): sudo chmod +x autoamp.sh sudo chmod +s autoamp.sh Have fun! |