MonatFebruar 2017

Den Fernseher per CEC überwachen

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

 

JDownloader Headless installieren (ohne X!)

Diese Anleitung bezieht sich auf Debian (Ubuntu / Raspbian / …) Systeme. Nachfolgend ein kleines HowTo wie JDownloader headless installiert werden kann. In meinem Fall geschieht die Installation unter Raspbian als root (sudo -s). JDownloader funktioniert auch ohne grafische Oberfläche! Dazu wird der Dienst My.JDownloader genutzt. Für diesen Dienst ist ein vorhandenes Konto zwingend notwendig.

Die Installation (JDownloader Headless)

cd /opt
mkdir jdownloader

In diesen Ordner die heruntergeladene jar-Datei kopieren (http://jdownloader.org/download/index / „Other“), z.B. unter Windows per WinSCP.

Anschließend folgende Befehle ausführen:

apt-get update
apt-get install oracle-java8-jdk
cd /opt/jdownloader
java -jar JDownloader.jar -norestart
java -jar JDownloader.jar -norestart

Mit My.Jdownloader verknüpfen

Nach dem zweiten Start sollte JDownloader nach den Zugangsdaten für My.JDownloader fragen.

|---------------------------Headless Information-------------------------------
| MyJDownloader Setup
| Deine Anmeldedaten von "My.JDownloader" sind nicht korrekt.
| Bitte überprüfe den Nutzernamen bzw. die E-Mail-Adresse sowie das Passwort!
| Enter y -> Enter Logins
| Enter n -> Exit JDownloader

„Y“, gefolgt von Enter und die Daten eingeben

Zum Schluss JDownloader mit „Strg+C“ beenden.

Den Dienst installieren:

cd /etc/systemd/system
nano jdownloader.service

Die Datei „jdownloader.service“ bearbeiten:

[Unit]
Description=JDownloader
Wants=network.target
After=network.target

[Service]
Type=simple

ExecStart=/usr/bin/java -jar /opt/jdownloader/JDownloader.jar

[Install]
WantedBy=multi-user.target

Nun die Dienste neu laden, starten und den Autostart aktivieren

systemctl daemon-reload
systemctl start jdownloader.service
systemctl enable jdownloader.service

Fertig! JDownloader kann jetzt über https://my.jdownloader.org gesteuert werden. Sogar Click’n’Load ist über das Chrome-Plugin möglich.

© 2018 Hobbykritiker

Theme von Anders Norén↑ ↑