Smarthome: Active Notifications mit Homematic und Alexa

Grüß euch, Smarthome-Freunde!

Ja – still ist es um unser Projekt geworden – Aber keine Sorge: Parallel zur Hardware gehts natürlich auch softwareseitig stetig weiter.

Der Testaufbau meiner Smarthome-Installation mit Homematic ist fertiggestellt und kabel-technisch bereits im Neubau umgesetzt. Da ich nachts zwischen halb zwei und drei noch ein bisschen Zeit habe, musste ich mir mal ein paar neue Projektideen ausdenken.

Wie wäre es denn, wenn Alexa die Bewohner aktiv mit wichtigen Smarthome-Informationen versorgt?!

„Aktiv“ heißt in diesem Fall das Auslösen der Benachrichtigung direkt beim Eintreten eines bestimmten Homematic-Ereignisses ohne das Aktivierungswort „Alexa“.

Wäre das nicht cool? Ja – das wäre in der Tat überaus cool!

Ich nenne die ganze Geschichte sehr zärtlich „active Notifications“, wobei ich mich bei der Kernanwendung bei dem Kollegen Alexander Noack von Lötzimmer bedient habe – Vielen Dank, Alexander!

Uns so gehts:

Neben ein paar netten Funktionen wie Playlisten abspielen, Routinen aktivieren, TuneIn-Radio wiedergeben und vielem mehr, kann Alex‘ Script auch beliebigen Text auf einem oder mehreren Alexa-Lautsprechern ausgeben.

Wie können wir das für uns nutzen? Homematic kann ja leider nur recht eingeschränkt Shell-Befehle ausführen.

Nun: Mit einem kleinen Raspberry, Alex‘ Script, ein bisschen Python-Klimperei und ein paar Zeilen Homematic-Script spricht Alexa ab sofort beliebige Variableninhalte aus Homematic.

Fangen wir mit Alex‘ alexa_remote_control_plain.sh-Script an (Dokumentation beachten: Amazon Login-E-Mail-Adresse und Passwort erforderlich) und legen es im User-Verzeichnis des PIs ab.

Nun schreiben wir mit unserem Lieblings-Text-Editor nano ein hübsches kleines Python-Script „speechconnector.py“, füllen Sie mit dem nachfolgenden Inhalt und speichern es im selben Verzeichnis wie Alex‘ Script ab.

from bottle import route, run, template
import subprocess

@route(‚/speak/<textstring>‘)
def index(textstring):
        speakstring = ‚./alexa_remote_control_plain.sh -d Wohnzimmer -e speak:\“;
        speakstring = speakstring + textstring;
        speakstring = speakstring + ‚\“;

        subprocess.call(speakstring, shell=True)
        return template(‚<b>{{textstring}}</b>!‘, textstring=textstring)
run(host=’0.0.0.0′, port=8080, debug=True)

Daraufhin einfach mit python starten:

 

Nun, was passiert hier?

Mit pythons bottle-Framework (kann über pip installiert werden) können wir einen sehr einfachen Webservice starten. Wird nun bei einem Web-Aufruf hinter der IP-Adresse des Pi’s „/speak/hier_kommt_der_Benachrichtigungstext_hin“ eingesetzt, wird Alex‘ Script ausgeführt und im „-d Wohnzimmer“ der entsprechende Text ausgegeben. Das ist schon ziemlich cool – noch besser ist aber, dass mit einem Homematic-Script sehr einfach eine Web-URL aufgerufen werden kann, zum Beispiel so wie in diesem Programm:

Sobald die Systemvariable „Alexa.Function“ auf „Speak“ gesetzt wird, läuft nun das Homematic-Programm ab und führt folgendes Script aus:

! HomeMatic-Script
! Alexa-Sprachausgabe
! http://heupel.family

var sText = dom.GetObject(„Alexa.Speak“).Variable();

string stdout;
string stderr;
system.Exec(„wget -O /dev/null -q http://192.168.10.163:8080/speak/“ # sText # „““)

Hier wird der Inhalt der Systemvariablen „Alexa.Speak“ hinter den URL-Aufruf des PIs gesetzt und ausgeführt.

Mit Hilfe der Systemvariablen und diesem Programm kann nun auf einfache Art und Weise von fast überall aus dem Homematic-System eine aktive Benachrichtigung auf einem oder mehreren Alexa-Lautsprechern ausgegeben werden, wie hier im Test-Programm:

Mit der Kopplung an andere Homematic-Funktionen eröffnen „active Notifications“ nun nahezu unbegrenzte Möglichkeiten für viele Aktionen, wie zum Beispiel

  • Waschmaschine/Trockner ist fertig
  • Außenstecktose ist eingeschaltet / Ausgeschaltet
  • „Es klingelt an der Türe“
  • Morgen muss der Restmüll rausgestellt werden.

Jap – damit kann man schon einige hübsche Dinge anstellen.

Habt Ihr noch weitere Anwendungsbereiche oder Verbesserungsvorschläge?

Dann lasst doch einen Kommentar da!

 

Beste Grüße

euer Hausbau-Basti

Posted on: August 12, 2018heupel.family

4 Gedanken zu „Smarthome: Active Notifications mit Homematic und Alexa

  1. Hey Basti,

    hört sich alles schon recht interessant an. Schade, dass ich nur ne CCU2 hab… Hätte es glatt mal getestet..

    Wär vielleicht mal ein Video drin, in dem man das ganze auch mal live hört, wie das bei Alexa rüberkommt?

    Weiter so…

    Gruß Rafa

    1. Grüß dich Rafa,

      Vielen Dank für deinen Kommentar! hab mich sehr gefreut!!!
      Die Basis bildet bei mir auch die CCU2. Die führt auch den http-Request aus.
      Der Webserver und das Shell-Script läuft auf meinem Raspberry – dieser könnte aber ja durch jeden Linux-PC mit Python ersetzt werden.
      Einem Test steht somit nichts mehr im Wege 😉

      Jep – wollte tatsächlich sehr gern mal ein Video dazu erstellen. Halte dich auf dem Laufenden, wenn es soweit ist 🙂

      LG
      Seb

  2. Hallo
    ich weis nicht ob diese Seite noch aktiv ist aber ich bekomme beim ausführen des Skripts
    speechconnector.py immer eine Fehlermeldung
    File „./speechconnector.py“, line 4
    @route(,/speak/‘)
    ^
    als ob das Komma falsch währe

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert