Command line:
OFF:
sudo -E sh -c 'echo 1 > /sys/class/backlight/rpi_backlight/bl_power'
ON:
sudo -E sh -c 'echo 0 > /sys/class/backlight/rpi_backlight/bl_power'
TIP: I define the above as backlight_off and backlight_on in ~/.bash_aliases. Be sure to save that file elsewhere, since you'll lose it if you re-image.
Python:
- First save the above as
backlight_off.sh and backlight_on.sh (with proper #!/bin/sh shebang header), maybe saved to /usr/local/bin/ if you want it available in your $PATH
- ... then you can use Python
subprocess() to invoke these new scripts. Use the "command syntax" to run the script files, and the script's own shell should take care of things.
- If you are doing this in a web application (and therefore rightly concerned about security), then avoid use of variables around these calls (hardcode the Python subprocess calls), and get the code peer-reviewed.
If you read Subprocess documentation, it may contain suggestions to not use it to run shell scripts. That's fine in most cases, but not in this one.
FYI - "-c" is a life-saver
The "-c" option is often used to "wrap" commands into a user context, like sudo. You'll see this in some cron files, or used heavily by the Docker community.
More reading (and doing this in "pure" Python):
There are downsides to this, and you may need to run your Python script as sudo (not a good idea, generally) or make configuration changes to your Pi. You'll learn a bit going down this rabbit hole..
FYI this also worked:
pi@pi3:~ $ echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
1
That works because the redirect is executed as sudo, but there is the unintended side-effect of 1 output text.
ls -l /sys/class/backlight/rpi_backlight/? – rob Jun 07 '18 at 12:20sudoincorrectly.sudoworks on commands, not on redirections, sosudo command > fileruns the command elevated, but accesses the files with your initial permissions. – Dmitry Grigoryev May 28 '19 at 11:19rpi_backlightwith10-0045(the rest looks the same). However, the display only gets a bit darker, not turned off, when running the commands... – Manuel Popp Oct 16 '22 at 09:37