Mein Ziel: Den Fernseher per CEC überwachen. Derzeit wird nur der Schaltzustand protokolliert. Bisher recht stabil und zuverlässig. Benötigt wird ein CEC-fähiges Gerät, wie z.B. einen Raspberry Pi oder einen Pulse Eight CEC-Adapter. Das funktioniert bei mir sogar obwohl mein Raspberry Pi an einem HDMI-Receiver (Onkyo TX-NR626) angeschlossen ist, zusammen mit erwähntem Fernseher.

Wie kann man den Fernseher per CEC überwachen?

Dazu habe ich ein Script geschrieben welches cec-lib nutzt. Die Befehle sind recht übersichtlich und in der Hilfe (cec-client -h) aufgelistet.

Das Script

Neue Version! https://github.com/PacGyver/ha-scripts/blob/master/tv_power.sh

#!/bin/bash
#/usr/bin/screen -dmS tvpower_cec /opt/scripts/cec/tv_power.sh
OUTPUT="/var/state/tvpower"
SLEEP=5
DEVICE=0
STATE=""

(while true; do sleep $SLEEP ; echo "pow $DEVICE"; 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 | tee $OUTPUT
 PREV_STATE=$STATE
 fi
done

Mit dem Befehl „pow 0“ wird der Zustand des ersten Gerätes abgefragt. Welches Gerät welche ID hat kann man mit cec-client prüfen.

Das Scrip läuft derzeit in einer Screen-Session

/usr/bin/screen -dmS tvpower_cec /opt/scripts/cec/tv_power.sh

OpenRemote

Command

or-command - Fernseher per CEC überwachen

Command Konfiguration in OpenRemote

Sensor

or-sensor - Fernseher per CEC überwachen

Sensor-Konfiguration in OpenRemote