Amazon Echo Einbindung Quick&Dirty mit IFTTT

Hallo Zusammen,

da es ja gerade in ist, verschiedenste Amazon Alexa Einbindungen zu realisieren, hier noch eine etwas rudimentäre, dafür aber wohl die einfachste Einbindung mittels IFTTT.

Es gibt zwar keinen IFTTT Skill, Alexa spricht aber von Haus aus schon IFTTT. So triggert Alexa z.B. in IFTTT, wenn der Wecker klingelt, ein neues Lied abgespielt wird, … und viele mehr. Eine Liste der Trigger findet man hier https://ifttt.com/amazon_alexa

Man kann aber auch eigene Trigger ausführen, in dem man sagt „Alexa, trigger …“ und dann eine beliebige Phrase hinzufügt. In IFTTT kann man dann auf diese Phrase triggern und mit dem Maker Channel eine HTTP Request an Symcon absetzten.

So wird’s in 3 Schritten eingerichtet:

1. Amazon Echo
Hier ist nicht zu tun - Alexa spricht von Haus aus IFTTT

2. IFTTT
IFTTT mit Alexa verbinden:
Auf der IFTTT Startseite bei „Search“ „Alexa“ eingeben. Gleich auf den ersten Eintrag unter „Service“ auf „Amazon Alexa“ klicken. Hier dann auf „Connect“. Jetzt kann man IFTTT über OAuth Zugriff auf Amazon Alexa geben.

In IFTTT ein neues Applet anlegen:
Auf IFTTT Website oben rechts auf den Benutzernamen klicken -> danach auf „new Applet“.
Trigger: Amazon Alexa -> „Say a specific phrase“ -> Befehl eingeben, auf den Alexa reagieren soll.
Hier muss man, sofern noch nicht geschehen, IFTTT mit Amazon Alexa verknüpfen.

Action: Maker Channel -> „Make a web request“ -> URL eingeben und Variablen definieren, die an Symcon gesendet werden sollen.
Wenn man Symcon-Connect verwendet sieht die URL so ähnlich aus: https://0123456789abcde.ipmagic.de/hook/ifttt

3. IP-Symcon
Script
Neues Script erstellen und folgenden Inhalt hinein kopieren. Für jeden Befehl ein „case“ Block anlegen, und dort die gewünschte Aktion ausführen.


$password = '123456789';


if ( isset( $_REQUEST['trigger'] ) && isset( $_REQUEST['password'] ) && $_REQUEST['password'] == $password ){
	IPS_LogMessage('IFTTT', print_r($_REQUEST, true));

	switch ( $_REQUEST['trigger'] ){
		case 'alles_aus':
			// script ausführen oder Variablen setzten
			break;
			
		case 'party':
			// script ausführen oder Vraiablen setzten
			break;
			
		default:
			break;
	}
}

WebHook
Kern Instanzen -> Webhook -> Hinzufügen -> Bei hook „ifttt“ eintragen und bei ScriptID, die ID des eben angelegten angeben.
Übernehmen klicken und fertig!

Alternativ kann man auch das IFTTT Modul von Fonzo verwenden: https://www.symcon.de/forum/threads/32856-IFTTT-Modul?highlight=ifttt

Jetzt nur noch sagen „Alexa, trigger …“

Sag mal, wo kann ich das hier erstellen. Finde es einfach nicht unter IFTTT

  1. IFTTT
    In IFTTT ein neues Applet anlegen.
    Trigger: Amazon Alexa -> „Say a specific phrase“ -> Befehl eingeben, auf den Alexa reagieren soll.
    Hier muss man, sofern noch nicht geschehen, IFTTT mit Amazon Alexa verknüpfen.

Kannst Du mir schritt für schrit sagen wie, und wo ich das erstelle??

Danke

Wahrscheinlich musst du vorher IFTTT mit Alexa verbinden:

Auf der IFTTT Startseite bei „Search“ „Alexa“ eingeben. Gleich auf den ersten Eintrag unter „Service“ auf „Amazon Alexa“ klicken. Hier dann auf „Connect“. Jetzt kannst du IFTTT über OAuth Zugriff auf Amazon Alexa geben.

Wenn du das gemacht hast, dann führe die Schritte wie beschrieben aus.

Konnte das nicht mehr richtig nachvollziehen, da ich ja schon verbunden war. Wenn es so klappt, gib mir nochmal Rückmeldung, damit ich das in der Anleitung mit einfügen kann.

Das ist ganz einfach:

  • IFTTT Modul installieren und eine Instanz zum Empfangen mit einer Variable anlegen

  • In IFTTT gehen

My Applets auswählen
ifttt-alexa1a.png

New Applet anklicken
ifttt-alexa1.png

This anklicken
ifttt-alexa2.png

Alexa auswählen
ifttt-alexa3.png

Say a specific phrase auswählen
ifttt-alexa4.png

Ausdruck wählen auf den Alexa reagieren soll (Kleinschreibung beachten)
ifttt-alexa5.png

Create Trigger wählen und dann That anklicken
ifttt-alexa6.png

Maker Channel auswählen
ifttt-alexa7.png

Make a web request auswählen
ifttt-alexa8.png

Form ausfüllen, Hier den Webhook Usernamen und das Webhook Passwort eintragen das im IO von IFTTT eingetragen wurde und die Objekt Id der IFTTT Instanz die die Daten entgegen nimmt.

Die Daten kommen dann in der IFTTT Instanz an und die Variable wird automatisch gesetzt oder aber wenn man in der Instanz eine Variable angibt die geschaltet werden soll wird diese im Beispiel auf true gesetzt.

Dann nur noch

„Alexa trigger Fernseher einschalten“ sagen und schon wir die Variable in IP-Symcon auf true gesetzt.

Zum ausschalten legt man dann ein neues Applet an mit
fernseher ausschalten

und gibt entsprechend dem Beispiel oben


{"username":"superuser","password":"dollespasswort","objectid":18372,"values":{"EventName":"tvoff","Value1":false,"OccuredAt":"{{TriggeredAt}}"<<<}>>>}

an. Dann wird an die gleiche Instanz ein false geschickt und die Variable auf false gesetzt.

Man kann aber grundsätzlich jeden Variablentyp in IP-Symcon setzten den man will.

Supi, den muss man erstmal finden. Danke

Morgen!

Kann man auch statt trigger ein anderes Wort nehmen?

Mfg
Maxx

Nein trigger scheint ein reserviertes Wort für IFTTT zu sein, dafür hast Du aber sonst keinen zusätzlichen InvocationName wie bei einem Custom Skill.

…danke für die tolle Anleitung bin gerade dabei das für meinen google Home zu verwenden und habe auch alles hinbekommen nur an einem Punkt stehe ich auf dem Schlauch siehe bild im Anhang :
wie weiß das script das es mein Licht im Wohnzimmer anschalten soll???

Ist Licht Sofa eine IFTTT Instanz oder die eigentlich zu schaltende Lampe?

das ist die eigentlich zu schaltende Lampe !?

Wichtig wäre zu wissen welchen Ansatz Du nutzt? Willst Du das selber einrichten oder nutzt Du das IFTTT PHP Modul? Hast Du mal bei Google Assistant / Home Integration - Seite 4 geschaut da ist das speziell für google home beschrieben.

Geht das auch in die andere Richtung ?

Gerne würde ich per IPS meine Alexa zum Schweigen bringen. Eine Alexa Aktion finde ich aber in IFTTT nicht.

Was meinst Du mit „Schweigen“ denn genau? Wenn Du damit meinst laufende Musik zu starten oder zu stoppen kannst Du
Amazon Echo Remote Control benutzten.

Ja, das meine ich. Den Thread über die Echo Remote Control kenne ich - aber leider hat man damit ja dieses überaus nervige Cookie-Problem, oder ? Daher dachte ich an einen Umweg über IFTTT.

Ja das Problem hat man und ich hatte auch noch keine Zeit gefunden zu schauen ob man das irgendwie anderes lösen kann. Aber so lange Amazon keine Notwendigkeit sieht die API über OAuth oder wie auch immer zugänglich zu machen wird sich daran auch nichts ändern, auch nicht mit IFTTT.