FHEM Alexa Connect

FHEM Alexa Connector
FHEM Alexa Connect

FHEM und Amazon Alexa sind echt ein gutes Paar, eine der besten Hausautomatisierung Server und Amazon Rennpferd Alexa. Mit FHEM Connector für Amazon Echo Gerät ist eine Schnittstelle entworfen welche ist echte Benefit für beide genannte Geräte. Alexa ist nicht mehr nur auf die einfache Aufgaben begrenzt, sonst durch FHEM Connect kann viel mehr mitwirken in Smart Home Welt. Und FHEM ist auch nicht ohne, hat für seine Anwender neue Möglichkeit erschaffen, Steuerung per Sprache.

Früher war kompliziert FHEM mit Echo Gerät zu verbinden, jetzt brauchen Sie nicht mehr wie damals, ein Entwickler Account bei Amazon, eigene Lambda und Skillfunktionen zu schreiben und das Öffnen eines eingehenden Ports aus dem Internet ist nicht mehr nötig. Die Kommunikation zur Software auf dem heimischen Rechner und dann zu FHEM verläuft über SSH und einen vom FHEM-Verein gehosteten Server. Funktioniert mit IPv4, IPv6, echtem Dual Stack und DS-Lite und als Skill bei Amazon wird FHEM Connector verwendet.

FHEM Alexa Connector Installation

Zuerst müssen Sie sich mit Unterstützung von SSH Client (z.B. Putty) oder Terminal verbinden mit Server Ebene (z.B. Raspberry Pi) und mit Installation von nodeJS und Node Paketmanager (npm) anfangen. NodeJS ist ein Javascript ausführender Miniserver, der lokal auf einem Zufallsport auf Anfragen lauscht.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nodejs npm

NodeJS und Paketmanager sind installiert, weiter geht mit Installation von Alexa-FHEM aus dem offiziellen Repository.

sudo npm install -g alexa-fhem

Installation von alexa-fhem ist abgeschlossen, jetzt müssen Sie zu FHEM Weboberfläche wechseln und FHEM einmal mit update aktualisieren und danach mit shutdown restart, neu starten.

Jetzt definieren wir über FHEM Web Kommandozeile ein neues Device mit define alexa alexa.

FHEM Alexa Connector - Fehler bei der Aktivierung
FHEM Alexa Connector – Fehler bei der Aktivierung

FHEM Alexa Connector meldet Fehler bei der Aktivierung weil FHEM Instanz ist mit Benutzername und Passwort geschützt, alles was Sie machen müssen ist in FHEM Web- Kommandozeile User/Passwort noch einmal explizit setzen.

attr alexa alexaFHEM-auth user:password

Danach startet FHEM Alexa Connector automatisch neu und wird Aktivierung durchgesetzt, jetzt sehen Sie unter Readings Verbindungsdaten wie in die Abbildung unten.

FHEM Alexa Connector installiert
FHEM Alexa Connector ist ordnungsgemäß installiert

Um FHEM Alexa Connector mit FHEM Skill verbinden, brauchen Sie noch Proxy Key welche wird mit get alexa proxyKey ausgegeben.

FHEM Alexa Connector - Ausgabe Proxy Key
FHEM Alexa Connector – Proxy Key Ausgabe

Die Echo Geräte sind angemeldet und konfigurierbar unter alexa.amazon.de. Sie müssen die Webseite besuchen, sich anmelden oder registrieren und FHEM Alexa Installation abschließen. Unter Menüpunkt Skill >> Suche nach FHEM Skill suchen, danach auf “Aktivieren” klicken, jetzt öffnet sich neue Fenster mit Anforderung für Proxy Key, Key einkopieren und bestätigen. Wenn alles ordnungsgemäß abläuft, wird Skill verbunden und ab jetzt ist FHEM für Sprachsteuerung vorbereitet.

FHEM Geräte für Alexa Sprachsteuerung vorbereiten

Die eingebundene FHEM Geräte soll Alexa erkennen, aber bevor das passiert müssen Sie die Geräte “kennzeichnen”, bzw. Echo Gerät sagen um welches Gerätetyp handelt sich. Das passiert mit Attribut “genericDeviceType“, Alexa kann verschiedene Gerätetypen erkennen, wie z.B. switch, light, blind, thermometer, thermostat, etc. ungefähr 13 verschiedene Gerätetypen. Sie können Gerätetyp direkt in Geräteeinstellungen auswählen oder per Web- Kommandozeile zuweisen.

attr MyDevice genericDeviceType switch

Sind entsprechende Readings beim Device vorhanden z.B. temperature, state mit on/off erkennt das FHEM Alexa Connector automatisch. Die Liste der automatisch erkannten Readings wächst ständig. Daher erst mal schauen ob das Device bereits entsprechend erkannt (typisiert) wurde. Das kann durch prüfen des FHEM Alexa Log Datei in /fhem/log Verzeichnis geschehen. Die Gerätetypen welche Alexa erkennen und steuern kann finden Sie hier auf Amazon Entwicklerseite oder in FHEM Wiki.

Dummy Device können Sie per Sprache steuern, nur müssen Sie zusätzlich das Attribut setList benutzen um FHEM Alexa Connector die Zustände zuweisen. Hier ein Beispiel aus FHEM Wiki, ein Dummy Device sollte einen Kontaktschalter simulieren und in Alexa wird als Routine definiert.

define voicetrigger1 dummy
attr voicetrigger1 alexaName alle Fenster
attr voicetrigger1 alexaProactiveEvents 1
attr voicetrigger1 genericDeviceType contact
attr voicetrigger1 homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED
attr voicetrigger1 setList open closed

set alexa add voicetrigger1
set alexa restart

Bei manchen Gerätetypen brauchen Sie noch zusätzliche Information über Gerät liefern damit FHEM Alexa Connector Gerät richtig steuern kann, das geschieht z.B. bei Thermostaten und dafür brauchen Sie Attribut “homebridgeMapping” welche sich in Geräteeinstellungen befindet. Die Beispiele für verschiedene Gerätetypen und homebridgeMapping finden Sie hier.

attr mythermostat homebridgeMapping TargetTemperature=desired-temp,cmd=desired-temp,minValue=16.0,maxValue=24.0,minStep=0.5

Um kompromisslose Sprachsteuerung zu ermöglichen, braucht Alexa noch ein Geräte-Attribut und das ist “AlexaName“, befindet sich auch unter Geräteeinstellungen. Das ist Name mit welchen FHEM Alexa Connect Gerät deutlich erkennen kann, einen Gerät können Sie auch mehreren Namen getrennt durch Komma zuweisen.

attr Flur_dl AlexaName Deckenlampe,Deckenlicht

Die weiterführende Informationen für FHEM Alexa Connect finden Sie hier.

Alexa als FHEM Sprachrohr

Der Amazon Echo ist eigentlich nur ein WLAN Lautsprecher mit die eingebaute digitale Assistentin Alexa und das wollen wir uns zu Nutze machen. Mit dem FHEM und passendes Modul (37_echodevice.pm) lässt sich auch der Echo Lautsprecher für andere Zwecke ausnutzen, z.B. das FHEM bei bestimmten Ereignissen per Alexa Sprachausgabe uns informiert, ob es um Anruf geht oder ist Luft im Raum schlecht geworden, ist Waschmaschine mit waschen fertig, etc. Die Möglichkeiten sind fast unbegrenzt.

FHEM Alexa Sprachausgabe und Geräteauflistung
Echodevice – FHEM wird durch Alexa sprachfähig

Jetzt können Sie in FHEM das Echo-Device anlegen, dazu ist auch erforderlich Amazon Zugangsdaten eintragen, damit FHEM sich anmelden kann und den Echo (Alexa) steuern kann.

define MyEcho echodevice EMAILADRESSE PASSWORT

Ist MyEcho eingebunden, wird ein neues Menüpunkt Amazon erstellt und dort finden Sie Ihre EchoDevice, so können Sie mit set MyEcho autocreate_devices die alle an Amazon angemeldete Geräte auflisten lassen. Wenn Sie z.B. ein Echo Dot besitzen, dann soll er auftauchen und durch Klick auf Echo Gerät, öffnet sich Fenster mit Geräteeinstellungen.

alexa dot
Echo Dot – Geräteeinstellungen

Für uns sind jetzt 2 Befehle interessant (sounds und speak), damit ist möglich z.B. Eingangsgong realisieren, hier ein paar Beispiele für Nutzung von Alexa als Sprachrohr.

Eingangsgong

define Eingangsgong DOIF ([MagnetKontakt] eq "open" and [07:00-21:00])(set ECHO_G090LF1XXXXX sounds tuerklingel_1)

Raumluftqualität

define LuftQuali DOIF ([LS:IAQ] > 55.0 and [Presence] eq "present")(set ECHO_G090LF1071XXXXX speak Luftqualität in Wohnzimmer ist schlecht bitte Raum lüften.)

Frostgefahr

define frost_gefahr DOIF ([Proplanta:temperature] < 2.0 and [+00:30] and [Presence] eq "present")(set ECHO_G090LF10XXXXX speak Frostgefahr, Aussetemperatur ist gerade [Proplanta:temperature] °C.)

Wie Sie selbst sehen können FHEM Alexa Connect ist echt gute Sache, so lassen sie sich sehr viele Aufgaben realisieren. Vielleicht jemand jetzt meint nur Spielerei, aber für z.B. Senioren ist so was sehr große Hilfe.

Echodevice Entwicklerseite (Michael Winkler).

Kommentar hinterlassen

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