Lichtwecker in FHEM anlegen und mit Alexa steuern

Lichtwecker in FHEM und mit Alexa steuern

Lichtwecker mit Hue und Alexa in FHEM erstellen

+++ Update +++ Neue, einfachere MöglichkeitAlexa Wecker direkt in FHEM übernehmen

Zum Smarthome gehört irgendwie auch die Anbindung der Weckfunktion. Ich habe die bisherigen Ansätze gescheut, da es mir irgendwie zu aufwendig war und ich ohnehin ein Fitbit Charge2 besitze, welches mich morgens mit einem sanften Vibrationsalarm weckt. Da ich allerdings seit einiger Zeit auch einen Amazon Echo Dot im Schlafzimmer habe, wollte ich die Weckfunktion von Alexa nicht ungenutzt lassen. Der Echo Dot muss aber FHEM mitteilen können, dass soeben der Weckeralarm ausgelöst wurde. Dies wird mithilfe einer Verknüpfung mit IFTTT bewerkstelligt.

Man könnte damit beispielsweise eine Sonnenaufgangssimulation mit HUE Lampen (oder allen anderen Lampen die übers Smarthome erreichbar sind) realisieren. Weiter gedacht könnte man sich in der Küche bereits einen Kaffee zubereiten lassen, die Fussbodenheizung im Bad anschalten oder das Küchenradio einschalten lassen. Ich habe vorerst erstmal eine Sonnenaufgangssimulation eingerichtet.

Gliederung

Alexa soll mit FHEM kommunizieren

Zuerst einmal muss FHEM wissen sobald der Wecker vom Amazon Echo Dot losging. Hierfür verwende ich IFTTT. Eingerichtet habe ich das ganze mithilfe der Anleitung von haus-automatisierung.com (Link zum IFTTT Tutorial). Vorausgesetzt ist hierfür, dass vorher ein Reverse Proxy mit Apache auf dem Raspberry Pi eingerichtet wurde (Link zum Reverse Proxy Tutorial). Wer keinen Reverse Proxy besitzt, kann sich auch mit einem DynDNS Service behelfen. Eine entsprechende Anleitung zur Anbindung findest du hier (Link zum DynDNS IFTTT Tutorial).

WEB-Device für IFTTT anlegen

Im folgenden nochmal die groben Arbeitsschritte für das Anlegen eines sicheren WEB Devices für IFTTT. Der Sinn eines eigenen WEB-Devices für den IFTTT Services ist, dass man damit relativ sicher fährt. Das heißt, dass IFTTT nur auf den Port 8089 zugreifen kann, und dass auf dem Port 8089 auch nur der FHEM Befehl "setreading" ausgeführt werden kann. Somit lässt sich in dem Dummy, den wir später anlegen auch nur ein Reading verändern.

define WEBApi FHEMWEB 8089
define WEBApi FHEMWEB 8089
attr WEBApi csrfToken none
attr WEBApi room webAPI
define allowedWEBApi allowed
attr allowedWEBApi allowedCommands setreading
attr allowedWEBApi room webAPI
attr allowedWEBApi validFor WEBApi

IFTTT Dummy Device in FHEM anlegen

In FHEM legen wir uns ein Dummy Device mit dem Namen IFTTT an. In diesem Device werden später von IFTTT sämtliche Readings geschrieben. Wir erinnern uns: IFTTT soll nur Readings schreiben dürfen. Dies dient der Sicherheit, falls doch jemand an deine Zugangsdaten kommt.

define IFTTT dummy
attr IFTTT room webAPI

IFTTT Applet anlegen

Erstelle dir einen IFTTT Account und verlinke dein Amazon Echo mit dem Service. Der Service ist übrigens kostenlos. Dann ist es an der Zeit, ein eigenes Applet auf IFTTT zu erstellen.

Hierzu logge dich in deinen Account ein und klicke auf "My Applets", dann auf "New Applet" und zuletzt auf das blau hinterlegte "+this".

 Gib dann "Alexa" ein und klicke unten auf das "Amazon Alexa" Symbol. Wähle dann das vorletzte Kärtchen mit dem Namen "Your Alarm goes off" aus. Klicke dann auf das blau hinterlegte "+that" und gib in die Suchleiste "Webhooks" ein und wähle "Webhooks" unten aus. Klicke dann auf "make a web request"

Als URL gibst du folgendes ein (bitte mit eigenen Logindaten einpassen)

https://nutzername:passwort@fhem.deineinternetseite.de/api?cmd=setreading%20IFTTT%20alarm%20{{AlertTime}}&XHR=1

Als Method wählst du "GET". Content Type ist "plain/text". Klicke dann auf "Save".

Jetzt kannst du einen ersten Testlauf starten. Sage Alexa, sie solle einen Wecker in 5 Minuten erstellen. Sobald der Alarm ertönt, müsste in deinem Device IFTTT in FHEM ein neues Reading mit dem Namen "alarm" auftauchen. Als Wert des Readings erhälst du die Weckzeit.

Notify für Sonnenaufgang bei Alarm erstellen

Den Code habe ich bei Computerhilfen.de gefunden (Link zum Code). Nur ein Leerzeichen hat gefehlt, damit man den Code so ausführen kann. Solltest du den Code nicht über die FHEM Kommandozeile eingeben können, so erstelle zuerst ein notify ohne code und klicke dann auf DEF und füge den restlichen Code ein.

define act_on_alexa_alarm notify IFTTT:alarm.* {
	fhem("set HUEDevice1 rgb 030100; set HUEDevice3 rgb 030100;");
	my @sonne = ('0B0300','190601','230902','2F0D03','370F03','401204','481405','521806','591007','622108','6E2508','772809','7F2A09','882D0A','90300A','96320A','9D330A','A6360A','B0390A','B0450A','B9480B','C1580B','CB610B','D3650C','D6740C','DC770B','DC810B','E5860B','ED8E12','F2A113','F2B013','F5B51A','F9BA22','FBBD29','FEC232','FFC742','FECC55','FED166','FDD473','FDD880','FEDD8C','FDDF97','FDE4A7','FDEABC','FDEEC8','FDF0D1','FDF3DA','FCF4E2');
	my $counter = 2;
		for(my $i = 0; $i < @sonne; $i++) {
		fhem("sleep ".$counter." ; set HUEDevice1 rgb ".$sonne[$i]." ; set HUEDevice3 rgb ".$sonne[$i].";");
		$counter = $counter + 4;
		}
	}

Code anpassen

Je nachdem welche HUE Lampen du verwendest musst du den Code natürlich noch anpassen. Lampen löschen oder hinzufügen, oder den Namen entsprechend ändern.

  • Änderst du die Zeile "my $counter = 2;" kannst du ändern wie viele Sekunden es dauern soll, bis der erste Farbwechsel / Helligkeitswechsel stattfindet
  • Wenn du "$counter = $counter + 3;" änderst kannst du die Zeit (in Sekunden) zwischen den einzelnen Farbwechselvorgängen beeinflussen

Beispielkonfiguration eines IFTTT Dummys in FHEM

So sieht das IFTTT Dummy in FHEM aus, das bereits erste Readings von Amazon Alexa erhalten hat

Weitere Möglichkeiten

Du kannst das ganze auch an Anregung für weitere Einsatzmöglichkeiten von IFTTT mit Alexa und FHEM verwenden. Du kannst in das Device IFTTT in FHEM jedes erdenkliche Reading schreiben lassen. Beispielsweise wenn der Timer von Alexa rum ist, um dann die Lichter blinken zu lassen oder ein Soundfile abspielen zu lassen. Hier bin ich gespannt, auf was für Ideen ihr kommt und freue mich über Kommentare.

Über den Author

Emanuel

teilt seine Begeisterung im Bereich Technik, DIY und Hausautomatisierung gerne auf seinem Blog coldcorner.de

Abonnieren
Benachrichtige mich bei
0 Kommentare
Inline Feedbacks
View all comments