Liebe Leserinnen und Leser!

Heute möchte ich euch zeigen, wie ihr die „Voice Control“-App um einige Funktionen erweitern könnt. Damit könnt ihr euch im Prinzip ein eigenes Siri-System für Android basteln. Als Server dient mir hier wieder der Raspberry Pi, auf dem ich das PHP-Backend des Systems bereits installiert habe.

Als Erweiterungsbeispiele zeige ich euch hier, wie ihr Wetterdaten über die Yahoo-Wetter-API abfragen könnt und die aktuelle Temperatur des Raspberry Pi über Sprache erfragen und ausgeben könnt. Es lässt sich natürlich noch viel mehr mit dieser App machen, die Funktionen lassen sich beliebig erweitern. Die folgenden Beispiele sollen ein Anstoß sein, eigene Plugins für die Anwendung zu entwickeln. Gerne könnt ihr mir eure eigenen Erweiterungen auch zukommen lassen, sodass sie hier veröffentlicht werden.

Nun aber zum ersten Beispiel ;)

 

Wetter-Plugin (via Yahoo-Weather-API)

Zur Nutzung der Yahoo-Weather-API habe ich ein kleines Python-Script geschrieben, das mit ein paar aktuelle Wetterdaten zurückgibt. Was ihr euch genau ausgeben lassen wollt und über welche Befehle, ist euch überlassen. Ich habe mir mal einen Satz ausgeben lassen, der die aktuelle Temperatur, Windgeschwindigkeit und Luftfeuchtigkeit ausgibt. Diese Daten werden beim Absenden des Befehls direkt von der Yahoo-Weather-API ausgelesen. In der Variable „url“ müsst ihr noch die WOEID eures Ortes eintragen. Diese kann man z.B. hier ermitteln. Ich habe das Script mal etwas kommentiert, es sollte allerdings nicht allzu schwer verständlich sein, da es sich im Prinzip nur um ein Script handelt, das eine XML-Datei parst und bestimmte Werte in einem string zurückgibt. Wie ihr sicher selbst feststellt, habe ich nicht alle Dinge aus der Wetter-API von Yahoo ausgelesen und auch nicht alle ausgelesenen Werte bei dem zurückgegebenen Satz verwendet. Das liegt daran, dass ich das Script ursprünglich nur zum Test der Wetter-API geschrieben habe, mir aber dann eingefallen ist, dass es sich auch ganz nett in das „Voice Control“-System einfügen lässt. Ich habe diese Dinge mal drinnen gelassen, damit ihr es einfacher an eure eigenen Bedürfnisse anpassen könnt. Hier also das Python-Script für die Yahoo-Wetter-API:

Folgendes müsst ihr zur Benutzung des Scripts in dem Voice-Control-System in der dazugehörigen detect.php noch einfügen:

Natürlich an dieser Stelle nicht vergessen, den Pfad entsprechend zu ändern, damit das Script auch von der Sprachsteuerung gefunden werden kann.

Nun zum nächsten Beispiel.

 

Rückgabe der aktuellen Temperatur des Raspberry Pi

Für dieses Beispiel braucht ihr kein Python-Script, es lässt sich rein in die detect.php einpflegen. Bekannterweise lässt die (CPU-) Temperatur des Raspberry Pi ganz leicht über die Konsole mit dem Befehl sudo vcgencmd measure_temp auslesen. Das zurückgelieferte Ergebnis muss natürlich zur Sprachrückgabe etwas „aufgehübscht“ werden, also das „temp“ am Anfang entfernt werden und die Grad-Celsius-Zeichen am Ende entfernt werden, dass nur noch die Zahl als solches übrigbleibt. Das lässt sich in PHP ganz einfach über die Funktion „substr“ erledigen. Anschließend sollte noch der Punkt zwischen den Zahlen durch ein Komma ersetzt werden, damit sich die Sprachrückgabe besser anhört (zumindest gefällt mir „Komma“ besser als „dot“). Als letztes könnt ihr um die Zahl noch einen schönen Satz bilden, der zurückgegeben wird. Bei mir kommt als Endresultat sowas wie „Meine Temperatur liegt gerade bei 35,9 Grad Celsius“ raus. Hier der dazugehörige PHP-Code, den ihr direkt in die detect.php einfügen könnt (unter die anderen Befehle / if-cases):

 

Das waren jetzt mal 2 triviale Beispiele, die zeigen, wie ihr das System ganz einfach erweitern könnt. Ich hoffe, ich konnte sie verständlich erklären und euch die Funktionsweisen nahebringen. So könnt ihr das System nämlich selbstständig weiterentwickeln und um zahlreiche Funktionen ergänzen, je nachdem was euch euer Pi sagen soll.

Habt ihr Fragen oder Anregungen dazu? Immer her damit, die Kommentarfunktion gehört euch ;)