Most useful code snippets for Raspberry Pi
I am using Raspberry Pi's since the first generation and I use them a lot. Over the time I collected a few snippets that I find really useful and want to same them with you.
Turn off display programmatically
I've got a Magic Mirror and by default its screen would be always on. Thats not necessary. It should be on when I am looking at it. So I added a PIR Sensor for motion detection and let it trigger the following python lines:
bashCommand1 = ["tvservice -p"]
bashCommand2 = ["export DISPLAY=:0.0"]
bashCommand3 = ["xset dpms force on"]
bashCommand4 = ["fbset -depth 8; fbset -depth 16; xrefresh -d :0.0"]
process1 = subprocess.Popen(bashCommand1, stdout=subprocess.PIPE, shell=True)
process2 = subprocess.Popen(bashCommand2, stdout=subprocess.PIPE, shell=True)
process3 = subprocess.Popen(bashCommand3, stdout=subprocess.PIPE, shell=True)
process4 = subprocess.Popen(bashCommand4, stdout=subprocess.PIPE, shell=True)
bashCommand = ["tvservice -o"]
process = subprocess.Popen(bashCommand, stdout=subprocess.PIPE, shell=True)
Put external HDD into deepsleep
If you have an external HDD attached to your Raspberry Pi it will run all the time. Even if you don't use it. Even if you sleep. Thats a waste of energy and shortens the life of the HDD. I used this command to let my HDD sleep and it automatically wakes up when I use it. Awesome.
sudo hd-idle -i 0 -a /dev/disk/by-uuid/0038-8EE1
Programmatically unplug and replug USB devices
Sometime you have to restart your USB device because they 'hang'. Good example that I expericanced a lot is Bluetooth dongles. Since I don't wanted to go physically to the device and replug it, I came up with this:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0a5c:21e8 Broadcom Corp.
grep -i -s -r 0a5c *
echo 0 > authorized
echo 1 > authorized