Donnerstag, 3. Juli 2014

Mit Voicecommand und Raspberry Pi, openHAB mit der Stimme steuern


Computer Licht dimmen........

Der Stoff aus Science Fiction Filmen wird Wirklichkeit. Die Maschinen in unsere Umgebung werden immer Smarter.

Warum nicht openHAB smart per Stimme steuern. Im KNX Forum habe ich vor einigen Monaten von Jasper gelesen und und habe es nicht mehr aus dem Kopf bekommen. Ich war mal wieder dem Techwahn verfallen. Nun gehört also ein dritter Raspberry zur Familie. Leider wurde ich von Jasper und seiner doch sehr Androiden Stimmer sehr enttäuscht. Nicht das ich etwas gegen Androiden hätte, seit dem Nexus One sind die mir sehr willkommen. Aber Siri, Google Now und Cortana klingen eindeutig besser, menschlicher.

Also habe ich noch ein wenig weiter gesucht und bin auf Voicecommand gestossen. Dessen Stimme ist die von Google und viel angenehmer. Die Konfiguration ist recht simpel. Voicecommand selber hat eine Hand voll Parameter die licht zu konfigurieren sind. Die Worterkennung ist gut, auch in Sätzen. Die Commandos führen im Prinzip Terminal Eingaben aus. In einem Tutorial zeige ich die Kommunikation mit Openhab.

Installation 

sudo apt-get install git-core
git clone git://github.com/StevenHickson/PiAUISuite.git
cd PiAUISuite/Install/
./InstallAUISuite.sh

Im root Ordner liegt die Datei .commands.conf die bei mir wie folgt aus sieht und bis auf das keyword und response, default Werte sind.


!verify==1
!keyword==tom
!thresh==0.7
!continuous==1
!response==Ja Meister?
!quiet==0
!ignore==0
!filler==0
!duration==2
!com_dur==3
!language==de
~licht an==/home/pi/openhab/sofa.sh ON
~licht aus==/home/pi/openhab/sofa.sh OFF

Das 
~ vor dem Wort sorgt dafür, dass das Kommando "licht an" irgendwo im Satz vorkommen kann.



Das Shell Script das aufgerufen wird ist folgendes.


#!/bin/bash

if [ $1 == "OFF" ]

then     

curl --header "Content-Type: text/plain" --request POST --data "OFF" http://192.168.177.138:8080/rest/items/Light_LR_Living_Sofa
      
fi

if [ $1 == "ON" ]

then

curl --header "Content-Type: text/plain" --request POST --data "ON" http://192.168.177.138:8080/rest/items/Light_LR_Living_Sofa

fi

Und das war es eigentlich schon.Ich finde wirklich sehr simpel zu konfigurieren.
Dazu gerade noch eine kleine Demonstration.