NEWS
Google Assistant über IFTTT mit ioBroker verbinden
-
Leider ist der Adapter für Google Assistant ja noch nicht fertig.
Bis dahin wollte ich aber ein wenig Erfahrungen sammeln, ob der Assistent von uns auch genutzt wird, oder einfach nur eine Spielerei für die erste Zeit ist.
Aus dem Grund habe ich mich dran gemacht, und ein kleines Script geschrieben, dass die Antwort von IFTTT auswertet und in ioBroker States setzt.
Der Einstieg ist für Anfänger oft nicht einfach, drum schreibe ich hier mal eine kleine Anleitung, mit der es einfach sein sollte, sich die Ansagen nach Bedarf anzupassen.
in ioBroker habe ich ein Javascript mit folgendem Inhalt angelegt:
! ````
on({id: "cloud.0.services.ifttt"}, function(obj) {
if(obj.newState.val.length > 0)
{
var objVal = JSON.parse(obj.newState.val);
log(objVal.room);
switch(objVal.room)
{
case 'global':
switch(objVal.type)
{
case 'szene':
if(objVal.value == 'Fernsehen')
setState("scene.0.state", 2);
if(objVal.value == 'Kino')
setState("scene.0.state", 1);
break;
}
break;
case 'wohnzimmer':
switch(objVal.do)
{
case 'schalte':
switch(objVal.value)
{
case 'ein':
case 'an':
setState("modbus.0.holdingRegisters.12342_BELEUCHTUNG_WOHNZIMMER DIMMER", 255);
break;
case 'aus':
setState("modbus.0.holdingRegisters.12342_BELEUCHTUNG_WOHNZIMMER DIMMER", 0);
break;
}
break;
case 'dimmen':
setState("modbus.0.holdingRegisters.12342_BELEUCHTUNG_WOHNZIMMER DIMMER", objVal.value);
break;
}
break;
case 'esszimmer':
switch(objVal.do)
{
case 'schalte':
switch(objVal.value)
{
case 'ein':
case 'an':
setState("modbus.0.holdingRegisters.12343_BELEUCHTUNG_ESSZIMMER DIMMER", 255);
break;
case 'aus':
setState("modbus.0.holdingRegisters.12343_BELEUCHTUNG_ESSZIMMER DIMMER", 0);
break;
}
break;
case 'dimmen':
setState("modbus.0.holdingRegisters.12342_BELEUCHTUNG_WOHNZIMMER DIMMER", objVal.value);
break;
}
break;
case 'buero':
switch(objVal.do)
{
case 'schalte':
switch(objVal.value)
{
case 'ein':
case 'an':
setState("modbus.0.coils.12309_Beleuchtung_Buero", true);
break;
case 'aus':
setState("modbus.0.coils.12309_Beleuchtung_Buero", false);
break;
}
break;
case 'dimmen':break; } break; } }
});
Das Ding ist noch etwas rudimentär programmiert, da ich erstmal was zusammenklöppeln wollte, um überhaupt zu sehen, ob und wie schnell die Reaktionszeit ist. Man sieht aber sehr schön, wie ich Szenen, Dimmer und Licht (ein/aus) schalten kann. In IFTTT müssen wir nach folgender Anleitung ioBroker einbinden: [https://github.com/ioBroker/ioBroker.cl … c/ifttt.md](https://github.com/ioBroker/ioBroker.cloud/blob/master/doc/ifttt.md) Ein Beispiel Applet >! ![1534_iobroker-ifttt.png](/assets/uploads/files/1534_iobroker-ifttt.png) Anhand des JSON kann man nun seine Routinen im Script beliebig erweitern oder aber auch zur besseren Übersicht auf mehrere Scripte verteilen. Ich hoffe, ich konnte dme ein oder anderen hiermit den Einstieg erleichtern.
-
Sehr schön. Sowas habe ich schon gesucht.
Leider scheint es dann doch nicht so einfach für einen Anfänger zu sein es anzupassen.
Ohne Programierkenntnisse stoße ich da gleich an meine Grenzen.
Ist es vielleicht möglich ein noch einfacheres Beispiel zu nehmen, z.B. nur um einen Homematic-Lichtschalter AN/AUS zu schalten? Vielleicht finde ich damit den Zugang.
-
Schreib doch mal, wie weit du bisher gekommen bist. Gerne kann ich versuchen, dir dann weiterzuhelfen.
-
Moin!
Sehe ich das richtig das für jede Sprachaktion ein Applet bei ifttt erstellt werden muß?
Danke Dir
Mr.Lee
-
Ja - aktuell ist das leider so. Deshalb habe ich auch nur 6 Stück zum Test eingerichtet, da es sehr viel Aufwand wäre, da alles aktuell zu halten.
-
Hallo,
wenn man bei IFTTT ein Applet mit Parameterübergabe verwendet, können beliebig viele Befehle mit einem Applet übertragen werden. Am Anfang wird dabei immer das gleiche Aktivierungswort verwendet. In ioBroker kann man das dann mit einem Script analysieren und verschiedene Aktionen auslösen.
Tschau
Uwe
-
Hallo,
wenn man bei IFTTT ein Applet mit Parameterübergabe verwendet, können beliebig viele Befehle mit einem Applet übertragen werden. Am Anfang wird dabei immer das gleiche Aktivierungswort verwendet. In ioBroker kann man das dann mit einem Script analysieren und verschiedene Aktionen auslösen.
Tschau
Uwe `
Hast du so ein Applet am Laufen?Blockly Script zum Analysieren kann ich mir noch vorstellen.
-
Hallo lobomau,
ein Beispiel habe ich hier beschrieben:
http://forum.iobroker.net/viewtopic.php?p=91559#p91559
Tschau
Uwe
-
Hey. Ich habe mal eine kurze Frage:
Ist die Einrichtung des iobrokers für Google Home schwieriger als mit Alexa?
Ich habe mich auf dem Markt jetzt etwas umgesehen und denke, dass entweder io.broker oder homeassistant die besten Lösungen, um praktisch alles zu steuern.
Was empfehlt ihr mir? Danke im Voraus!
Sent from my SM-G930F using Tapatalk
-
Hi, ich habe mich auch ein wenig an IFTTT und iobroker.pro versucht und stolper über das Problem, dass jetzt Google jeden befehl an IO-Broker leitet und mein definiertes Komando nicht prüft.
Mein applet sieht wie folgt aus:
Option: Say a phrase with a text ingredient
What do you want to say?: Mach mal bitte $
What's another way to say it? (optional): Mach mal $
And another way? (optional): Mach ma $
What do you want the Assistant to say in response?: Wird an IO Broker übergeben
Language: German
–> Make a web request
Ich hatte die Hoffnung das ich es möglichst einfach halten kann und so intuitiv wie möglich, aber wie erwähnt wird jetzt jede Anfrage mit "Wird an IO Broker übergeben" quittiert.
Die optionalen Kommandos hatte ich eingetragen, da ich zunächst dachte das hier das Problem liegt. Aber Hilft auch nicht.
Hat hier jemand eine Idee ob es daran liegt, das "Mach mal" zu kurz und damit zu unspezifisch ist, oder ob es generell so ist, dass IFTTT immer alle Anfragen abfängt?
-
Hi, ich habe mich auch ein wenig an IFTTT und iobroker.pro versucht und stolper über das Problem, dass jetzt Google jeden befehl an IO-Broker leitet und mein definiertes Komando nicht prüft.
Mein applet sieht wie folgt aus:
Option: Say a phrase with a text ingredient
What do you want to say?: Mach mal bitte $
What's another way to say it? (optional): Mach mal $
And another way? (optional): Mach ma $
What do you want the Assistant to say in response?: Wird an IO Broker übergeben
Language: German
–> Make a web request
Ich hatte die Hoffnung das ich es möglichst einfach halten kann und so intuitiv wie möglich, aber wie erwähnt wird jetzt jede Anfrage mit "Wird an IO Broker übergeben" quittiert.
Die optionalen Kommandos hatte ich eingetragen, da ich zunächst dachte das hier das Problem liegt. Aber Hilft auch nicht.
Hat hier jemand eine Idee ob es daran liegt, das "Mach mal" zu kurz und damit zu unspezifisch ist, oder ob es generell so ist, dass IFTTT immer alle Anfragen abfängt? `
Zum Testen würde ich mal die beiden optionalen Texte weglassen. Wenn immernoch nicht geht, mal anderes trigger-Wort, z.B. schalte $ -
Danke, hat leider nicht geklappt. Ich befürchte Google ist einfach zu schlau und setzt "Schalte" "Mache" "Tue" etc. als ein generellen Befehl um und somit triggert GH immer IFTTT.
Habe mit jetzt ein Applet mit nem längeren Text "mach im Flur die Musik an" und ohne Parameter erstellt und damit klappt es wunderbar.
Werde mich dann mal zwischen den Feiertagen hinsetzen und diverse Applets für GH bauen (für alles was GH noch nicht von haus aus unterstützt.)
Bzw. mich mal mit eigenen Actions auseinander setzen….