Raspberry Türklingel mit Blockly exec Funktion

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.

Was brauchen wir für die Raspberry Türklingel mit Blockly ?

Wichtiger Hinweis
  • 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

Blockly Programmablauf für Raspberry Pi Türklingel
Türklingel – Blockly Programmablauf

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 Pi
  • alsa[: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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

* Bitte akzeptiere die Bestimmungen zum Datenschutz.