Google Home ab 8 August in Deutschland

Begonnen von CoolTux, 18 Juli 2017, 12:24:16

Vorheriges Thema - Nächstes Thema

tiroso

@CoolTux:
Jetzt habe ich doch mal die eine oder andere Frage. Ich habe mir rein aus Interesse mal API.ai angesehen und habe versucht mir was zusammen zu basteln.

Mal angenommen...Ich habe in jedem Raum eine Deckenlampe...wie bekommt man die dort zugeordnet? Was passiert wenn man die Deckenlampe ohne Angabe eines Raumes schalten will? Kann man auch mehrere Aktionen kombinieren?

"Schalte die Deckenlampe ein" -> Ich möchte als Response das es mehrere Deckenlampen gibt und das man einen Raum mit angeben soll.
"Schalte in der Küche die Deckenlampe ein" -> Bekomme ich dann wirklich das Device zurück welches sich im Raum Küche befindet?

CoolTux

Ich habe das bei mir über alias gemacht. linke Deckenlampe rechte Deckenlampe. Und so gebe ich aliases als Variable zurück und baue sie im Filter des Set Befehl es ein.
Und ja Du kannst sagen das der Raum Pflicht ist und was er als Response sagen soll wenn Raum nicht erkannt wurde.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

oggy

#77
bei mir ist das Gerät selber Pflicht. Bei "Schalte Wohnzimmer an" kann man auch Steckdosen meinen, also ist bei "Schalte" zumindest das Wort "Licht" Pflicht (Licht ist bei mir ein Gerät). bei "färbe" und "dimme" kann nur Licht gemeint sein. Leider fehlt wie beim Alexa-Custom-Skill möglich, die Zuordnung von welchem Gerät der Befehl kommt. Vielleicht kommt es ja noch. Ich nutze die Räume praktisch als Gruppe. Bei Multimedia-Geraffel gehe ich bei Nichtangabe des Raumes davon aus, dass das Wohnzimmer gemeint ist.... Ich finde das Nachfragen von "Mussangaben" sehr gut. ...


[edit] und seit heute kann man das dimmen über api.ai und alexa vergessen.Alexa übergibt Zahlen nur noch als Text.

Ma_Bo

Zitat von: oggy am 09 August 2017, 09:14:11
@Ma_Bo

ja, für IFTTT habe ich einen separaten Port geöffnet/weitergeleitet, mit separaten Benutzernamen/Passwort versehen und mit der Einschränkung nur auf ein Geräte(Dummy) zu schreiben. Ist für mich ersteinmal sicher genug.

Hey oggy, kannst du mir mal im Detail beschreiben, was du dafür genau alles gemacht hast, gerne auch per PN...

Ich würde das gerne mal testen, über Tasker und IFTTT geht es schon recht gut, aber wenn ich meinen Tabletscreen an habe, hab ich ein Delay von knapp 2-3 Sekunden, wenn aber der Screen aus ist hab ich ein Delay von 5-6 Sekunden, daher würde ich es gerne mal direkt von IFTTT nach fhem versuchen um zu sehen, wie groß da das Delay ist.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

oggy

@Ma_Bo
sorry, hab gerade Urlaub und da bleibt dann doch etwas weniger Zeit zum Basteln :)

wie hier schon grob aufgezeichnet, ist es kein großes Hexenwerk über IFTTT

- in IFTTT verknüpft man zuerst seinen Google-Account mit IFTTT
- als "This" wählt man den Google Assistant aus und wählt "say a phrase with a text ingredient" --> bei mir "sage smarthome $"
- als "That" wählt man Webhook aus und gibt als URL FHEM an mit einem beschnittenen Account als Anmeldung --> landet bei mir auf dem Dummy "ifttt"
- alles was auf dem dummy reinkommt, jage ich dann durch meine Auswertung


Ich hoffe, dass Google bald mal AutoVoice freischaltet. Das gefällt mir bis jetzt am besten.

Ma_Bo

Danke für deine Antwort.

Ich habe es zwischezeitlich über IFTTT, Tasker, AutoRemote und AndFHEM Premium gemacht, hat zwar ein Delay von 4 sec, aber klappt bisher absolut ohne Probleme.

Ich habe es auch über IFTTT, AutoRemote und Automagic (AMAD4.0) versucht, aber anscheinend werden dann nicht immer alle Kommandos, die bei Autoremote ankommen, an Automagic weitergegeben.
Das Problem dabei scheint zu sein, dass der Screen vom Handy oder Tablet an sein muss. (mit insgesamt schon 3 Geräten versucht)
Ist der Screen an, funktioniert alles super, ist er aus, kommen zwar die Webhooks bei Autoremote an (sieht man im LOG von Autoremote) aber werden von Automagic wohl nicht angenommen.
Zum testen habe ich mir bei IFTTT 4 Timer gestellt, die alle 15 Minuten ein "Alive" schicken, dieses wiederrum werte ich dann in FHEM aus, ob es angekommen ist oder eben nicht.

Sobald ich mal wieder etwas mehr Zeit für FHEM habe, werde ich mir mal API.ai anschauen, wobei mir das mit IFTTT auch sehr gut gefällt, da man von dort auch viel gebrauchen kann, aber hier geht es mir erst eonmal mehr um die Anbindung von GoogleHome an fhem.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

oggy

bei AutoRemote hatte ich auch heftig Delays bei ausgeschaltetem Display. Teilweise sogar so lange bis ich das Display wieder angemacht hatte. Für AutoRemote gibt es einen Nachfolger der eigentlich immer gut funktioniert --> Join. Join ist zb auch genial wenn man eine Zwischenablage schnell von einem Geräte aufs nächste transferieren will.... Für die Kommunikation meiner Androiden untereinander und mit FHEM benutze ich aber lieber XMPP in Verbindung mit AutoNotification zB um das Haustürklingeln zu signalisieren (incl. Bild) oder um zB Netflix auf dem AndroidTV zu starten (funktioniert sehr gut --> "hey google, netflix" oder "Hey google, kodi")...

Ma_Bo

Im Moment bin ich von dem Umweg über Takser usw. weg und habe mir nen extra Raspberry als "Bridge" gebaut, dort hab ich ein minimalst FHEM laufen, auf dem ich dann per IFTTT ein webhook ausführe. (HTTPS und User Kennwort geschützt)
Der dadurch beschriebene Dummy beschreibt mir dann einen Dummy im Produktivsystem was dann meinen Text auswertet und weitere Aktionen ausführt.

Soweit echt genial, da man mit IFTTT das ganze soweit "basteln" kann, dass ich ganz normale Sätze sprechen kann oder auch Fragen stellen kann und diese dann bei mir als gesamter Text ankommen.
z.Z. habe ich 19 Applets bei IFTT und kann eigentlich auf alle normal gesprochenen Sätze reagieren.
Nicht wie bei Alexa, "Alexa sage <Skillname> schalte den Fernseher ein", das ist für mich der riesen Vorteil an Google im Moment.

Z.b.:

OK Google, schalte den Fernseher ein
OK Google, wie viel Grad sind es im Wohnzimmer
OK Google, wie warm ist es im Kinderzimmer
OK Google, wann wird der Müll abgeholt
OK Google, fahre das Rollo im Wohnzimmer hoch

usw...

Was mich jetzt noch stört, ist, dass man über IFTTT leider nur eine fest vorgegebene Antwort ausgeben kann.
Somit gebe ich im Moment nur ein "OK ich gebe es an die Haussteuerung weiter" aus und wenn der Text bei mir in FHEM ausgewertet ist, eine Sprachausgabe über mein Tablet.
Funktioniert auch super, aber wäre schon schöner direkt über das Google Home die Ausgabe zu bekommen, vor allem wenn man mehrere in verschiedenen Räumen haben sollte und wenn man eine Frage stellt.

Jetzt kommt meine eigentliche Frage:
wenn man das ganze über api.ai macht, muss man google vorher sagen

"OK Google starte Haussteuerung"

und erst dann kann man seinen Text sprechen auf den man dann in api.ai reagieren kann???

Oder

"OK Google sage Haussteuerung schalte den Fernseher ein"

Oder ist das auch möglich, dass ich sagen kann

"OK Google, schalte den Fernseher ein"

und mit api.ai kann ich dann darauf reagieren???

Ich hoffe ich habe verständlich genug beschrieben, was ich damit meine.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

oggy

@Ma_Bo

mal kurz meine Gedanken zu api.ai:

api.ai scheint man nicht "privat" nutzen zu können. Wenn man etwas bastelt, ist es für "alle" nutzbar (das Trigger-Wort ist einmalig, zB AutoVoice oder FHEM kann man nicht mehr registrieren). Um es mit Google Home nutzen zu können, muss eine Infrastruktur dahinter aktiv sein, die man eventuell bei Google bezahlen muss. ... der für mich einzige Weg wäre über AutoVoice, das als Abo weniger als 1€ im Monat kostet.

beim GoogleAssistant in Verbindung mit AutoVoice muss man immer das "Skill-Wort" sagen --> hey google, sage autovoice dimme die stehlampe um vier uhr dreißig auf fünfundfünfzig prozent. Man kann es dann wieder starr gestalten und kürzen, wenn man Befehle als Verknüpfung anlegt zB aus hey google sage autovoice stelle Lautstärke auf siebzig prozent wird hey google ich bin müde

Ma_Bo

Mhhh ok, das ist für mich so nicht zu gebrauchen, dann bleibe ich erst einmal bei meinem Konstrukt mit IFTTT und meinem ,,FHEM in the middle"

Das funktioniert so auch ohne Probleme, nur das mir halt die frei definierbare akustisch Rückmeldung fehlt, nur die starre akustische Rückmeldung von IFTTT ist nicht so schön, aber geht zur Not auch.

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Ma_Bo

Vielleicht gibt es ja auch die Möglichkeit, die google Assistant Seite mit httpmod auszulesen.

Damit könnte man zwar auch keine akustische Rückmeldung geben, aber auf alles was gesprochen wird, reagieren.

Für mich ist httpmod leider ein Buch mit 7 Siegeln, ich habe mit viel Hilfe hier mal eine Abfrage meines Traccar Servers hinbekommen.

Hat vielleicht jemand ne Idee ob das überhaupt machbar ist?

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

heifei

Hallo Marcel/Ma_Bo,

ich habe für Google Home auch den Weg über IFTTT und Webrequest in Richtung FHEM gewählt. Der gesprochene Text liegt dann ja als Text vor und muss interpretiert werden. Ich habe jetzt für ein paar Geräte zum Testen ein DOIF Statement genommen um den Text zu interpretieren. Für ein einfaches ein- und ausschalten funktioniert das mit dem Ansatz ganz ok. Wenn ich jetzt aber in Richtung dimmen denke und die Prozentzahl auf die ich dimmen möchte aus dem Text extrahieren will, muss die Auswertung aber wohl intelligenter erfolgen. Daher meine Frage: Wie puzzelst du denn den Text auseinander um ihn in FHEM Befehle umzuwandeln? Machst du das alles über Regex oder füllst du vorher irgendwie Variablen für Gerät, Raum, Aktion und Wert oder so und machst dann daraus die Übersetzung in einen FHEM Befehl? - Wenn du da was Schönes hast, würde ich mich über ein kleines Code-Beispiel freuen  :)

Besten Dank schon mal und viele Grüße,
Heiner

oggy

Ich lasse jedes Wort auswerten. Wenn es ein "Match" auf ein Device gibt, wird die Device-Variable gefüllt. Jetzt noch nach einem Toggle-Wort suchen, nach Wörter wie "Minute" , "Uhr", "Prozent", die Zahlen noch raussuchen und dann einfach annehmen, dass derjenige, der ins Mikro spricht, nicht irgendwie Mist gelabert hat.

sind bestimmte Variablen gesetzt, wird entsprechend gedimmt, geschaltet oder gefärbt

Ma_Bo

Zitat von: heifei am 21 September 2017, 21:41:22
Hallo Marcel/Ma_Bo,

ich habe für Google Home auch den Weg über IFTTT und Webrequest in Richtung FHEM gewählt. Der gesprochene Text liegt dann ja als Text vor und muss interpretiert werden. Ich habe jetzt für ein paar Geräte zum Testen ein DOIF Statement genommen um den Text zu interpretieren. Für ein einfaches ein- und ausschalten funktioniert das mit dem Ansatz ganz ok. Wenn ich jetzt aber in Richtung dimmen denke und die Prozentzahl auf die ich dimmen möchte aus dem Text extrahieren will, muss die Auswertung aber wohl intelligenter erfolgen. Daher meine Frage: Wie puzzelst du denn den Text auseinander um ihn in FHEM Befehle umzuwandeln? Machst du das alles über Regex oder füllst du vorher irgendwie Variablen für Gerät, Raum, Aktion und Wert oder so und machst dann daraus die Übersetzung in einen FHEM Befehl? - Wenn du da was Schönes hast, würde ich mich über ein kleines Code-Beispiel freuen  :)

Besten Dank schon mal und viele Grüße,
Heiner
Genau wie oggy geschrieben hat, mache ich das auch.

Teste gerade aber ein neues Modul durch, TEERKO, schau dir das mal an, hab leider gerade keinen Link zu dem Thread.

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.