Hab mir ein Script gebastelt.
Es schaut ob der TV an oder aus ist und schaltet dann das Ambilight ein.
Wenn ich es über bash... ausführe funktioniert es. Nur er schreibt nicht in die Output Datei warum auch immer.
Wollte dann das ganze per Autostart starten lassen. Hab dann unter
/etc/systemd/System die Datei startcec_adapter.service angelegt.
Nur es funktioniert dann nicht. Er muss die bash aber aufrufen da der CEC nicht erreichbar ist und verwendet wird.
Warum schreibt er nicht in die Output Datei und warum läuft es über Autostart nicht?
Code
[Unit]
Description=Check CEC Status to Turn ON/OFF
[Service]
Type=simple
ExecStart=/usr/bin/sudo /bin/bash /usr/local/sbin/startcec.sh
[Install]
WantedBy=multi-user.target
Hier der Code der Bash
Bash
#!/bin/sh
OUTPUT="/var/state/tvpower/tvpowerlog.txt"
SLEEP=5
DEVICE=0
STATE=""
OnState=0
(while true; do sleep $SLEEP ; echo "pow 0"; done) | cec-client -d 8 -p 1 -b 5 -t p | grep power --line-buffered | while read x ; do
STATE=`echo $x | awk '{split($0,a,":");print a[2]}' | sed 's/ //'`
if [ $STATE == "on" -o $STATE == "standby" ] && [ ! "$STATE" == "$PREV_STATE" ]
then
echo $STATE
PREV_STATE=$STATE
if [ $STATE == "on" ] ; then
if [ $OnState == "0" ] ; then
hyperhdr-remote --on
OnState=1
echo "TVAN"
echo $STATE | tee $OUTPUT
fi
fi
if [ $STATE == "standby" ] ; then
if [ $OnState == "1" ] ;then
hyperhdr-remote --off
OnState=0
echo "TVAus"
echo $STATE | tee $OUTPUT
fi
fi
fi
done
Alles anzeigen