Schaltet per Taster oder HTTP Request den Monitor in der Fahrzeughalle an oder aus.
- Der Fernseher muss immer vor der Stromversorgung an den Raspberry Pi angeschlossen werden.
- Alle HDMI-CEC-Steueroptionen müssen am Fernseher aktiviert sein.
- In den Sperr-Optionen des Fernsehers sollten über den Hotel-Modus alle Eingangsquellen, außer der FF-Agent Monitor, gesperrt werden (Standard Passwort zum entsperren:
0000
).
(Das ist wichtig, um zu gewährleisten, dass nach einem Neustart aller Systeme die richtige Quelle im Fernseher gewählt ist.)
- Raspberry Pi OS 10 (buster) auf einem Pi Zero W
- Python 3.7
- python-cec 0.2.8
-
Python Modul
python-cec
mit Abhängigkeiten installieren:sudo apt install libcec-dev build-essential python3-dev && pip3 install cec
-
Repository nach
/usr/bin
klonen:sudo git clone https://github.com/gersko/fw-monitor-control /usr/bin/fw-monitor-control
-
Service erstellen:
sudo nano /lib/systemd/system/monitor-control.service
Inhalt von
monitor-control.service
:[Unit] Description=Monitor Control [Service] Type=simple ExecStart=/usr/bin/python3 /usr/bin/fw-monitor-control/monitor-control.py User=pi [Install] WantedBy=multi-user.target
-
Systemctl Daemon aktualisieren:
sudo systemctl daemon-reload
-
Service aktivieren:
sudo systemctl enable monitor-control
-
Service starten:
sudo systemctl start monitor-control
-
HDMI Hotplug aktivieren:
Dazu folgende Zeile in/boot/config.txt
entkommentieren:hdmi_force_hotplug=1
Um den Monitor an-/auszuschalten zieht man, bei Verwendung eines Pi Zeros, mit dem Taster GPIO 18
auf GND
. Wenn ein anderes Board verwendet wird, muss evtl. der GPIO Pin im Skript angepasst werden.
Der Monitor ebenso über folgende HTTP Requests gesteuert werden:
GET http://<ip-address>:8080/monitor?turn=on
GET http://<ip-address>:8080/monitor?turn=off
GET http://<ip-address>:8080/monitor?state
Der cec-client
ist Teil von cec-utils
, einer Library, mit der CEC-fähige Monitore/Fernseher gesteuert werden können.
Installation von cec-utils
:
sudo apt install cec-utils
Aktion | Befehl |
---|---|
An | echo on 0 | cec-client -s -d 1 |
Aus | echo standby 0 | cec-client -s -d 1 |
Bildschirm Status | echo pow 0 | cec-client -s -d 1 |
Nach verfügbaren Geräten suchen | echo scan | cec-client -s -d 1 |
Alle Befehle anzeigen | echo h | cec-client -s -d 1 |