Google Home ab 8 August in Deutschland

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

Vorheriges Thema - Nächstes Thema

CoolTux

Danke. Ich gehe davon aus das heute Abend das Paket kommt. Genau richtig so übers Wochenende  ;D
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

Rheingold

Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

n4rrOx

Kurze Info:

Google Home Mini bei Otto als Neukunde inkl. Versand für ca. 16€!

Folgenden Gutschein benutzen: 81128
Mindesbestellwert: 30€, deshalb z. B. noch ein USB Kabel dazubestellen .... Mein Endpreis 16,28€

HF ;-)

kimbolero

Ich habe mich die letzten Tage mal ein wenig mit Google Home in Verbindung mit ifttt auseinandergesetzt. War zuerst ein großer Kampf, bis die Erreichbarkeit von FHEM via IFTTT, HTTPS, allowedWeb, eigenem FHEM-Webfrontend und MyFritz und der dazugehörigen Portfreigabe funktioniert hat.

Ein einfacher URL-Aufruf funktioniert bereits und IFTTT sendet dies auch korrekt an FHEM. Aktuell ändere ich lediglich den Wert eines Dummys.
https://Benutzername:Passwort@xxxxxxxxx.myfritz.net:8088/webhook?cmd=set%20dummywert%20blabla&XHR=1

Nun würde ich gerne ein Applet via IFTTT anlegen, welches eine Funksteckdose schaltet. Folgende URL habe ich mir zusammengestellt:
https://Benutzername:Passwort@xxxxxxxxx.myfritz.net:8088/webhook?cmd=set%20BT_Speaker%20off&XHR=1

Komischerweise erhalte ich dafür aber folgenden Wert im Browser:
Please define  first

AllowedDevices ist keins hinterlegt - nach meinem Verständnis sollten somit alle freigegeben sein.
allowedCommands hat folgendes hinterlegt: list,set,get

Hat jemand eine Idee, weshalb das nicht funktioniert?

Grüße, Kimbolero



CUL 868, Jeelink 868 Clone, NanoCUL 868, HM-CC-RT-DN,  max! Fensterkontakte, Zigbee, GoogleAssistant, GHoma Wifi-Steckdosen, Telegram etc.....

Clockwork

Moin, habe mir auch einen Google Home zugelegt. Nun würde ich diesen natürlich gerne mit FHEM verbinden. Mir gehen allerdings irgendwie die Nackenhaare hoch wenn ich dies nur über einen Umweg, mit Clouddiensten wie IFTTTT realisieren kann. Mein Sprachkommando von Google Home über die ganze Welt und dann geht das Licht an. Eine direkte Verknüpfung scheint aber zurzeit nicht möglich zu seien, oder sehe ich das falsch?

Rheingold

@Clockwork: meines Wissens nicht. Aber eine Umsetzung nur im lokalen Netzwerk würde ich auch begrüßen.

@kimbolero:
Ich hab genau das gleiche Setup und es klappt (endlich) richtig gut. Ein paar Anmerkungen/Fragen oder Dinge die du ausprobieren kannst:
- Wenn du in FHEM in die Befehlszeile einfach "set BT_Speaker off" eintippst funktioniert es nehme ich an?
- Gib den Befehl mal in deinem lokalen Netzwerk an FHEM per URL weiter. Also http://192.168.178.123:8083/fhem?cmd=set%20BT_Speaker%20off Was passiert?
- Hast du den URL-Aufruf in einem neuen Inkognito/privaten Browserfenster getestet?
- Als Berechtigungen habe ich folgendes:
define WEBApi FHEMWEB 8088 global
attr WEBApi allowfrom 192.168.178.78|127.0.0.1|192.168.178.66
attr WEBApi csrfToken none
define allowedWEBApi allowed
attr allowedWEBApi allowedCommands setreading,set,get
attr allowedWEBApi validFor WEBApi
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

kimbolero

#126
Danke für die Tipps.

Habe es mal versucht, jedoch leider mit dem gleichen Ergebnis:

1. Internes Standard-Webfrontend (nicht https-geschützt und auch nicht von außen erreichbar):
Aufruf: http://fhemdev:8083?cmd=set%20BT_Speaker%20off
Ergebnis: funktioniert (wie zuvor auch bereits)

2. Externes Webfrontend (https-geschützt, basicAuth geschützt etc.)
Aufruf direkt über Befehlsmaske mit "set BT_Speaker on" --> es folgt in FHEM ebenfalls " Please define first " als Ergebnis

Aufruf via URL im Incognito-Modus: https://fhemdev:8088/webhook?cmd=set%20BT_Speaker%20on --> es folgt in FHEM ebenfalls " Please define first " als Ergebnis

Aufruf via externer URL: https://benutzername:passwort@xxxxxxxxxxxxx.myfritz.net:8088/webhook?cmd=set%20BT_Speaker%20on&XHR=1
Es erscheint eine weiße Seite, auf welcher lediglich " Please define first " steht



Mit einem normalen Dummy funktioniert das komischerweise einwandfrei - auch von extern und via IFTTT.
https://benutzer:passwort@xxxxxxxxxx.myfritz.net:8088/webhook?cmd=set%20iftt%20Hallo&XHR=1

Meine Konfiguration sieht ähnlich aus wie deine:
define WEBApi FHEMWEB 8088 global
attr WEBApi csrfToken none
define allowedWEBApi allowed
attr allowedWEBApi allowedCommands list,set,get
attr allowedWEBApi validFor WEBApi
attr allowedDevices iftt,BT_Speaker

CUL 868, Jeelink 868 Clone, NanoCUL 868, HM-CC-RT-DN,  max! Fensterkontakte, Zigbee, GoogleAssistant, GHoma Wifi-Steckdosen, Telegram etc.....

Rheingold

Hmm.... das ist in der Tat merkwürdig. Adhoc weiß ich auch nicht mehr Rat als ich dir schon gegeben habe. Für mich war es selbst eine lange Reise endlich alles ans Laufen zu bekommen.

Was passiert, wenn du die allowedDevices löschst und mal versucht ein anderes Device zu schalten? Klappt das?
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

kimbolero

Habe nochmals ein weiteres Dummy angelegt, komischerweise kann ich dies auch nicht mit einem Wert befüllen. Das erste Dummy funktioniert aber problemlos.

https://fhemdev:8088/webhook?cmd=set%20dummy123%20hallo&XHR=1
--> funktioniert nicht, Ergebnis:Please define  first

https://fhemdev:8088/webhook?cmd=set%20iftt%20hallo&XHR=1
--> funktioniert

http://fhemdev:8083/fhem?cmd=set%20dummy123%20hallo&XHR=1  --> funktioniert
http://fhemdev:8083/fhem?cmd=set%20iftt%20hallo&XHR=1 --> funktioniert

Die Internals für allowedApiWEB:
Internals
NAME allowedApiWEB
NR 331
STATE validFor:apiWEB
TYPE allowed
allowedCommands list,set,get
validFor apiWEB


ich bin gerade echt ratlos....
CUL 868, Jeelink 868 Clone, NanoCUL 868, HM-CC-RT-DN,  max! Fensterkontakte, Zigbee, GoogleAssistant, GHoma Wifi-Steckdosen, Telegram etc.....

CoolTux

Die Google Home Geräte sind heute angekommen. Hatte leider nur ne Stunde um fest zu stellen das ich ein neues Subnetz erstellen muss. Mir sind die IP Adressen ausgegangen.
Daher noch kein Erfolg zu vermelden. DHCP ist konfiguriert und das Subnetz in der Firewall bekannt. Port 8009 ist forwarded. Nun muss ich erstmal weg.



Grüße
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

yanniks

Bei den ganzen Black Friday-Deals für Google Homes habe ich auch mal zugeschlagen. Da mir die Basteleien mit IFTTT nicht als Dauerlösung in Betracht ziehen wollte, habe ich mich heute mal dran gemacht, das alexa-fhem Node.JS-Paket so umzubauen, dass es vom Google Assistant angesteuert werden kann. Alle Geräte werden gefunden und Lichter gehen schon an und aus. Farben, Thermostate, etc. sind noch WIP. Besonderheit bei Google ist, dass zwangsläufig ein OAuth2-Server benötigt wird, sonst lässt sich der Skill nicht aktivieren. Man benötigt also einen Keycloak, AD FS, o. Ä..
Lasst mich noch ein bisschen dran arbeiten und dann schicke ich euch, vielleicht im Laufe der nächsten Woche, mal eine erste Version :).

Ma_Bo

Zitat von: yanniks am 25 November 2017, 17:40:56
Bei den ganzen Black Friday-Deals für Google Homes habe ich auch mal zugeschlagen. Da mir die Basteleien mit IFTTT nicht als Dauerlösung in Betracht ziehen wollte, habe ich mich heute mal dran gemacht, das alexa-fhem Node.JS-Paket so umzubauen, dass es vom Google Assistant angesteuert werden kann. Alle Geräte werden gefunden und Lichter gehen schon an und aus. Farben, Thermostate, etc. sind noch WIP. Besonderheit bei Google ist, dass zwangsläufig ein OAuth2-Server benötigt wird, sonst lässt sich der Skill nicht aktivieren. Man benötigt also einen Keycloak, AD FS, o. Ä..
Lasst mich noch ein bisschen dran arbeiten und dann schicke ich euch, vielleicht im Laufe der nächsten Woche, mal eine erste Version :).

Coole Sache, habe dazu ein paar Fragen:




1. ist es dann möglich zu sagen
"OK Google schalte ..... ein|aus|um"
oder
"OK Google fahre das Rollo vom Wohnzimmer nach oben"

oder muss man immer sagen "OK Google sage <Name> schalte .... ein", also so wie bei Alexa.

Wenn es nämlich mit dem "...sage ...." so ist, wäre es blöd.




2. Wäre es mit deinem Modul möglich, so wie bei Alexa-fhem, eine sub anzusprechen und den Return Wert als Antwort für GH zu nehmen?




3. Ist damit auch möglich, den gesamten gesprochenen Text in ein Reading zu bekommen, so dass ich selber darauf reagieren kann oder mit einer sub darauf reagieren kann und es selber auswerte oder evtl. mit dem 39_TEERKO Modul auswerten kann?




4. Kann man GH direkt einen Text vorgeben, also von FHEM eine Nachricht an GH schicken, die dann vorgelesen wird?

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.

yanniks

Hallo Marcel,

Zitat von: Ma_Bo am 25 November 2017, 18:44:34

1. ist es dann möglich zu sagen
"OK Google schalte ..... ein|aus|um"
oder
"OK Google fahre das Rollo vom Wohnzimmer nach oben"
Man kann wie bei Amazons Smart Home-Section verschiedene Räume anlegen, welchen man Geräten zuweist. Ich sage also
"OK Google, schalte Wohnzimmerlampen ein" und der Google Home antwortet mit "Okay, Stehlampe ist eingeschaltet".

Zitat von: Ma_Bo am 25 November 2017, 18:44:34
"OK Google fahre das Rollo vom Wohnzimmer nach oben"
2. Wäre es mit deinem Modul möglich, so wie bei Alexa-fhem, eine sub anzusprechen und den Return Wert als Antwort für GH zu nehmen?

Nein, das ist aktuell nicht angedacht. Plan ist nur, eine Schnittstelle für Google Smart Home zur Verfügung zu stellen, mehr nicht  :)

Zitat von: Ma_Bo am 25 November 2017, 18:44:34
3. Ist damit auch möglich, den gesamten gesprochenen Text in ein Reading zu bekommen, so dass ich selber darauf reagieren kann oder mit einer sub darauf reagieren kann und es selber auswerte oder evtl. mit dem 39_TEERKO Modul auswerten kann?

4. Kann man GH direkt einen Text vorgeben, also von FHEM eine Nachricht an GH schicken, die dann vorgelesen wird?
Nein, siehe Antwort davor :)

Ich möchte aber den Code dann auf GitHub stellen, damit man erstens die Änderungen nachvollziehen kann und jeder zweitens Code beisteuern kann.

MadMax-FHEM

#133
Zitat von: Clockwork am 25 November 2017, 10:02:36
Moin, habe mir auch einen Google Home zugelegt. Nun würde ich diesen natürlich gerne mit FHEM verbinden. Mir gehen allerdings irgendwie die Nackenhaare hoch wenn ich dies nur über einen Umweg, mit Clouddiensten wie IFTTTT realisieren kann. Mein Sprachkommando von Google Home über die ganze Welt und dann geht das Licht an. Eine direkte Verknüpfung scheint aber zurzeit nicht möglich zu seien, oder sehe ich das falsch?

Es gibt eine Alternative: ha-bridge
(allerdings ohne Einfluss auf die Rückantwort [zumindest soweit mir bekannt])

Manche Berichten allerdings von Fehlern/Problemen (bzw. hab ich irgendwie sowas im Ohr) mit irgendwelchen Updates, konnte ich noch nicht feststellen.
Hab allerdings schon länger nichts mehr mit Google Home probiert.

Ich setze aktuell [noch] auf Alexa und alexa-fhem bzw. ha-bridge (anderer Haushalt).

Google Home ist zwar von der Spracherkennung (gefühlt) besser aber optisch finde ich ihn nicht so...
Die Integration ist (noch) nicht soooo...
Da hoffe ich noch drauf bzw. würde ich dann erneut einen Vergleichstest starten...
Und mir ist Google Home zu neugierig: ohne App(s) auf dem Smartphone mit tausenden Berechtigungen geht mal gar nix.

Gut eine App zum Einrichten: ok.
Aber für den Betrieb eines "eigenständigen" Gerätes: nein...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

venom

Hallo Zusammen,

dieses ist mein erster Beitrag in dem Forum.

Also erstmal danke an alle die hier was schreiben und Programmieren. Habe hier schon viel gelesen und gelernt. Auch bei diesem Beitrag.

Nun wollte ich auch mal meinen aktuellen Aufbau mitteilen. Ob dass der beste oder sicherste ist, weis ich nicht, aber er funktioniert.

Ich habe seit 3 Wochen mein fhem mit Google Home am laufen und ich kann nur sagen, es macht Spaß.

Ich baue ein Verbindung über ifttt auf und gebe dieses dann als Post Befehl an mein fhem weiter.

Ich habe für jeden Befehl ein eigenes ifttt aufgebaut und gebe dieses an ein speziellen Dummy weiter, der über ein notify und if Befehle den Text auseinander nimmt und dann ausführt. Rolladen auf/ab sowie %, Licht an/aus, Fernseher an/aus, Temperatur innen und außen ansagen usw.

Mein Aufbau ist wie folgt, als beispiel mein rolladen :

Ifttt
Fahre Rolladen $ auf # % bzw alternativ Texte.
Als Antwort bekomme ich dann gesagt "Der Rolladen $ wird auf # Prozent gefahren.
$ ist der Text z.b. Obergeschoss Wohnzimmer
# ist die zahl z.b. 20

Als that sende ich dann über
Webhook
https://user:pw@ipadresse/fhem?cmd=set%20google_rolladen_dummy%20<<< txt field number  >>> &fwcsrf="csrftoken der unten eingestellt ist"
Methode: Post
Content type: text

Als Befehl kommt dann "Obergeschoss Wohnzimmer 20" an

Nachteil bei ifttt ist, dass man nur 3 alternativ Texte hinterlegen kann. Man kann hier also nicht den text komplett tauschen. Ich hatte dass auch mal mit api.ai versucht, habe es aber noch nicht hinbekommen. Ist aber genial, wie man hier den text und die variablen hin und her schieben kann.

Port 443 auf meiner Fritzbox zu meinem pi aufgemacht, dieses dann mit einem Revers apache Proxy (der über über fail2bain den User und Password überwacht), der dann auf den fhem port weiterleitet. Der Aufbau ist Klasse auf der https://haus-automatisierung.com erklärt, ohne hier Werbung machen zu wollen.
In fhem habe ich dann den FHEMWEB aufgebaut, so das nur die Dummys beschrieben werden können die von ifttt kommen.

defmod Webseite FHEMWEB 8085 global
attr Webseite DbLogExclude .*
attr Webseite csrfToken "Token schreiben"
attr Webseite csrfTokenHTTPHeader 1
attr Webseite defaultRoom Google
attr Webseite hiddenroom "alle Räume sperren"

defmod allowed_WEBhook allowed
attr allowed_WEBhook allowedCommands set,get
attr allowed_WEBhook allowedDevices "hier die dummys"
attr allowed_WEBhook validFor Webseite

Wenn ich dann irgendetwas vom fhem zurück auf den home geben möchte, mache ich dieses über das Modul chromecast.

set raum.chromecast play https://translate.google.com/translate_tts?tl=de&client=tw-ob&q= "Der Text". (bei leerzeichen ein "%20"  und wenn eine variale eingebaut wird dieses mit ".$variable." trennen)

Ist noch nicht optimal, da es bis zu 6 sek dauert oder manchmal verloren geht, ich kann auch noch nicht unterscheiden, von welchem Google home die anfrage kommt und meine Musik muss danach neu gestartet werten. Ist also noch verbesserungswürdig.

Für Vorschläge und Verbesserungen bin ich offen.

Mfg

Björn