In diesem Beitrag geht es um eine Raspberry Türklingel mit Blockly. Wir verwenden die exec Funktion von Blockly. Die Verbindung zur Raspberry Türklingel wird mit SSH ohne Passwort aufgebaut. Nach Betätigung der Türklingel wird eine MP3 Datei abgespielt.
Der Raspberry PI steht im Wohnzimmer beim Fernseher, so dass die Anschlussmöglichkeiten der Tonausgabe ohne weiteres über HDMI und 3,5mm Klinke möglich sind. Wir behandeln in diesem Beitrag den analogen Ausgang (Kopfhöreranschluss). Die Tonausgabe erfolgt über passive Lautsprecher von Logitech – deren Stromversorgung erfolgt über USB.
Table of Contents
Was brauchen wir für die Raspberry Türklingel mit Blockly ?

- Raspberry Pi mit SSH (ohne Passwort mit Key)
- Raspbian Lite oder Desktop
- OMXPlayer auf Raspberry Pi
- Lautsprecher mit 3,5mm Klinkeanschluss
- Monitor/TV mit Lautsprechern (HDMI-Anschluss)
OMXPlayer auf dem Raspberry installieren
Zuerst prüfen wir auf der Konsole vom Raspberry, ob der OMXPlayer installiert ist:
omxplayer -v
Die Ausgabe sollte ähnlich zu dieser sein:
omxplayer - Commandline multimedia player for the Raspberry Pi
Build date: Fri, 07 Jun 2019 19:49:22 +0000
Version : f06235c [master]
Repository: https://github.com/popcornmix/omxplayer.git
Ist der OMXPlayer nicht installiert (keine Anzeige der Versionsnummer), so führt den folgenden Befehl auf der Konsole aus:
sudo apt install omxplayer
Der OMXPlayer ist nun installiert. Wir können jetzt in Blockly unser Skript erstellen. Die Erklärungen zu der Logik beschreibe ich weiter unten im Beitrag.
Übersicht des Türklingel-Programmablaufs in Blockly

Der Trigger „Falls Objekt“ löst aus, wenn die Türklingel kurz oder lang gedrückt wurde. Die zweite Türklingel befindet sich an anderer Stelle auf dem Grundstück und findet ebenfalls Berücksichtigung. Die Datenpunkte im Trigger sind logisch mit ODER (OR) verknüpft.
Der erste Block „falls mache“ beinhaltet eine Sperre für das Mehrfachklingeln, damit ist sie für 30 Sekunden aktiv und erfüllt ihren Zweck bisher sehr gut. Die Postboten haben es immer eilig und manch andere wollen einen nur ärgern.
Der zweite Block „falls mache“ überprüft die Zeiträume von 19 Uhr – 6 Uhr, sowie von 11:30 Uhr – 14:30 Uhr. Zu diesen Zeiten ist die Klingel sehr leise eingestellt, weil wir, sowie unsere Kinder, keine laute Störung der Klingelanlage dulden.
Die Zeiten geben vor, wie laut die Ausgabe des Türgongs sein darf. Alexa darf auch etwas plaudern, sowie Telegram eine Nachricht auf das Smartphone senden.
OMXPlayer Befehl über Blockly exec Funktion senden
Wir nutzen auf dem Raspberry Pi den OMXPlayer zur Ausgabe einer MP3-Datei. Der Player lässt sich über die Konsole steuern und benötigt in unserem Fall zwei Optionen für die Ausführung. Der Aufbau des Befehls lautet:
omxplayer -o GERÄT PFAD/ZUR/DATEI --vol ZAHL
Die möglichen Parameter für die Option -o sind:
hdmi
– HDMI-Anschluss (digital)local
– Kopfhörer-Anschluss (analog – 3,5mm Klinke)both
– Audio-Ausgabe über beide Geräte – HDMI und analoge Verbindungen auf dem Pialsa[:device]
– Auswahl eines speziellen ALSA-Geräts
Die Option –vol erwartet eine positive oder negative Zahl. Auf die Berechnung der Werte gehe ich hier nicht weiter ein.
- 1% Lautstärke = -4000
- 10% Lautstärke = -2000
- 50% Lautstärke = -602
- 100% Lautstärke = 0
- 150% Lautstärke = 352
Wenn die Bedingung der Zeiträume erfüllt ist, dann wird die Laustärke der Klingel um 50% reduziert.
Der gesamte Befehl für den exec Block lautet:
ssh pi@192.168.0.139 omxplayer -o local /home/pi/tuerklingel/doorbell-chimes-melody.mp3 --vol -602
So sieht der Befehl für die restlichen Zeiten aus:
ssh pi@192.168.0.139 omxplayer -o local /home/pi/tuerklingel/doorbell-chimes-melody.mp3 --vol 0
Über SSH bauen wir die Verbindung zum Raspberry auf und weisen den OMXPlayer an, über den analogen Anschluss eine MP3-Datei abzuspielen. Wer es braucht, kann auch beide Ausgabe-Geräte (Analog und HDMI) benutzen, insofern die Zielgeräte verfügbar sind.
Ich bin gespannt, welche Lösungen ihr für eure Türklingel umgesetzt habt. Schreibt doch einfach ein Kommentar, wenn euch der Beitrag gefallen hat.