#!/bin/bash export DISPLAY=:0 export BL_PATH=/sys/class/backlight/10-0045/bl_power bl_on() { echo 0 | sudo tee $BL_PATH } bl_off() { echo 1 | sudo tee $BL_PATH } process() { while read line; do echo $line case "$line" in UNBLANK*) bl_on ;; BLANK*) bl_off ;; RUN*) bl_off ;; esac done } --- #!/bin/bash set -xeu -o pipefail echo "started" MQTT_COMMON_ARGS="-u rpi-hl-screensaver-control -P XXX -h mqtt.fritz.box" MQTT_PUB_CMD="/usr/bin/mosquitto_pub $MQTT_COMMON_ARGS" MQTT_SUB_CMD="/usr/bin/mosquitto_sub $MQTT_COMMON_ARGS" export DISPLAY=:0 function report_to_ha() { $MQTT_PUB_CMD -t sjhl/rpi-hl/screensaver/online -m online -r $MQTT_PUB_CMD -r -t "homeassistant/button/sjz_bett_speakertest/config" -m '{"name": "Bett Speakertest", "command_topic": "sj/rpi-sj-bett-display/speakertest", "payload_not_available": "offline", "payload_available": "online", "availability_topic": "sjhl/rpi-hl/screensaver/online", "payload_press": "speakertest", "unique_id": "sjz_bett_speakertest", "device": {"model": "RPI-SJ-Bett-Display", "identifiers": "rpi-sj-bett-display", "via_device": "rpi-sj-bett-display", "name": "rpi-sj-bett-display", "manufacturer": "SteJau"}, "object_id": "sjz_bett_speakertest" }' } while true; do report_to_ha #$MQTT_PUB_CMD -m "" -t sj/rpi-sj-bett/selectvideo $MQTT_SUB_CMD -t "sj/homeassistant/start" -t "sj/rpi-sj-bett/#" -t "sj/rpi-sj-bett-display/#" -t sj/rpi-sj/killchrome -t sj/rpi-sj/screensaver --will-payload offline --will-qos 2 --will-retain --will-topic sjhl/rpi-hl/screensaver/online -v | while read line do message=${line#* } topic=${line%"$message"} topic=${topic// } printf "TOPIC: '%s' Message: '%s'" "$topic" "$message" if [ "$topic" == "sj/rpi-sj/screensaver" ]; then if xscreensaver-command --time | grep "screen non-blanked"; then echo "SCREENSAVER ACTIVATION!" /usr/bin/xscreensaver-command --activate fi fi if [ "$topic" == "sj/homeassistant/start" ]; then report_to_ha fi done echo "ENDED! WAITING FOR RESTART!" sleep 15 done