39_gassistant.pm (Google Assistant, Google Home)

Begonnen von dominik, 29 Januar 2019, 21:59:53

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo Tueftler1983,

ich hab's halbwegs hinbekommen, allerdings muss ich den Begriff Event in der eventMap stehen lassen, da das physische Gerät mit Tasmota läuft - so ist der Stand an dieser Stelle.

Es funktioniert jetzt mit 2 von 4 Befehlen: hoch und runter.
attr RollladenWohnzimmerTerrasse eventMap /Event Up:opens/Event Down:closes/Event Up:DriveUp/Event Stop:Stop/Event Slit:DriveSlit/Event Down:DriveDown/
Wie könnte ich die Befehle Stop und DriveSlit (auf Lücke fahren) in Google Assistant reinbringen?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Tueftler1983

Was steht denn im gassistent wenn du diese 2 Befehle sagst, was versteht Google?

Gisbert

Zitat von: Tueftler1983 am 23 Mai 2021, 01:34:07
Was steht denn im gassistent wenn du diese 2 Befehle sagst, was versteht Google?
Bei gesprochenem "Rollladen Terrasse stop" und "Rollladen Terrasse DriveSlit" wird eine Googlesuche gestartet und die gesprochene Antwort lautet in etwa "Ich habe in deiner Nähe mehrere Rollladenanbieter gefunden".

Ich befürchte, dass ich um HomebridgeMapping nicht herum komme, nur habe ich nicht den blassesten Schimmer, wie das geht.

Viele​ Gisbert​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Tueftler1983

Was bedeutet DriveSlit?
Versuch Mal statt Stopp halt oder anhalten.

Gisbert

#2659
Zitat von: Tueftler1983 am 23 Mai 2021, 08:29:46
Was bedeutet DriveSlit?
Versuch Mal statt Stopp halt oder anhalten.

Der Befehl DriveSlit wird per MQTT an den Rollladenaktor gesendet. Dort wird der Befehl so interpretiert, dass der Rollladen eine fix definierte Zeit nach unten fährt (sagen wir 30.4 Sekunden) und dann anhält. Dann sind alle Lamellen auf Lücke gefahren, und die unterste Lamelle berührt gerade nicht das Fensterbrett. Das dient, wie man schon erahnt, der Verschattung.
Ich hab bewusst den Fahrbefehl und den Stopbefehl in das MQTT-Gerät verlagert und nicht in Fhem, um keine eventuellen Verzögerungen durch die Funkstrecke oder Fhem reinzubekommen. Wenige 1/10-Sekunden würden das Ergebnis schlecht aussehen lassen.

Damit ist klar, was DriveSlit bei mir macht, ich hätte es auch Pusteblume nennen können. Jedes dreijährige Kind würde es durchschauen, aber die smarte Technik ist so vertrauensselig, und letzten Endes genauso intelligent wie eine Scheibe Brot (getoastet oder nicht ;D 8)).

Viele​ Grüße​ Gisbert​

Edit:
Sorry, vergessen hab ich zu erwähnen, dass stop, halte an, etc. nur zu einer Googlesuche schaltet.
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

dominik

Zitat von: saschko am 05 April 2021, 23:06:05
Beim Versuch, den Connector in fhem zu installieren/definieren, warte ich vergeblich auf den Freischalt-Link. Ich erhalte ich folgende Fehlermeldung im Log:

Loading cli.js...
/usr/lib/node_modules/gassistant-fhem/node_modules/vm2/lib/main.js:157
if (!code.startsWith('#!')) return code;
          ^

TypeError: code.startsWith is not a function
    at removeShebang (/usr/lib/node_modules/gassistant-fhem/node_modules/vm2/lib/main.js:157:12)
    at NodeVM.jsCompiler (/usr/lib/node_modules/gassistant-fhem/node_modules/vm2/lib/main.js:120:9)
    at NodeVM.run (/usr/lib/node_modules/gassistant-fhem/node_modules/vm2/lib/main.js:1154:11)
    at getModule (/usr/lib/node_modules/gassistant-fhem/lib/cli.js:13:13)
    at Object.<anonymous> (/usr/lib/node_modules/gassistant-fhem/lib/cli.js:16:18)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)


Bei der Installation der Voraussetzungen (Schritt 2 der Installationsanleitung von https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect) hatte ich die folgenden Warnungen, weiß aber nicht so recht, was ich damit anfangen soll bzw. wie ich die Probleme am besten lösen kann:

pi@rpi4:~ $ sudo npm install -g gassistant-fhem --unsafe-perm
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated node-pre-gyp@0.16.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
/usr/bin/gassistant-fhem -> /usr/lib/node_modules/gassistant-fhem/bin/gassistant-fhem
+ gassistant-fhem@3.0.3


Kann mir jemand weiter helfen?

Ich habe den Fehler soeben in 3.0.4 behoben. Sorry, dass im Moment meine Zeit recht knapp ist mit Support..
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Gisbert

Hallo zusammen,

ich bin in erster Linie daran interessiert Google Assistant  2 weitere Befehle für meinen Rollladenaktor beizubringen.

Beim Warten auf Eingebung oder Hilfe habe ich entdeckt, dass das Handy gar nicht im gleichen Wlan sein muss, um Befehle ins Handy zu sprechen, die Fhem dann ausführt. Ist das so gewollt und ein Feature? Und wie sieht es mit der Sicherheit aus?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Reinhard.M

Hallo Gisbert,

herzlich willkommen in der Welt von Alexa, "Google Assistant" und Co :)
Wie alles miteinander spielt kannst du im sehr guten Wiki von Dominik nachlesen: https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect.
Übrigens auch deine Frage bezüglich der Sicherheit wird dort beantwortet. Grundsätzlich, alle derzeit bekannten und weit verbreiteten Sprachassistenten sind Cloud basiert. Sobald du etwas sagst geht es erst einmal raus in die Cloud, egal wo du gerade bist. Was der Assistent glaubt verstanden zu haben versucht er wiederum mit seiner ihm bekannten Umgebung zu matchen, in unserem Fall also Google, Google Home und was es sonst noch gibt. Die Systeme sind immer noch alle in der Cloud. Wenn es auf Google Home passt geht es eben an Google Home. Von da aus geht es dann über Google Firebase weiter an "gassistant" in deiner FHEM Umgebung und steuert z.B. deine Rolladenaktoren. Der Weg der Steuerung inklusive Sicherung ist für mich alles andere als trivial, Respekt und vielen Dank für die Implementierung an Dominik :D

Viele Grüße
Reinhard

dominik

Zitat von: Reinhard.M am 24 Mai 2021, 11:59:14
Hallo Gisbert,

herzlich willkommen in der Welt von Alexa, "Google Assistant" und Co :)
Wie alles miteinander spielt kannst du im sehr guten Wiki von Dominik nachlesen: https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect.
Übrigens auch deine Frage bezüglich der Sicherheit wird dort beantwortet. Grundsätzlich, alle derzeit bekannten und weit verbreiteten Sprachassistenten sind Cloud basiert. Sobald du etwas sagst geht es erst einmal raus in die Cloud, egal wo du gerade bist. Was der Assistent glaubt verstanden zu haben versucht er wiederum mit seiner ihm bekannten Umgebung zu matchen, in unserem Fall also Google, Google Home und was es sonst noch gibt. Die Systeme sind immer noch alle in der Cloud. Wenn es auf Google Home passt geht es eben an Google Home. Von da aus geht es dann über Google Firebase weiter an "gassistant" in deiner FHEM Umgebung und steuert z.B. deine Rolladenaktoren. Der Weg der Steuerung inklusive Sicherung ist für mich alles andere als trivial, Respekt und vielen Dank für die Implementierung an Dominik :D

Viele Grüße
Reinhard

Richtig zusammengefasst :) Ein Input noch...

Wenn das "localHome" Reading im gassistant Device auf "active" steht, dann werden Commands im eigenen Netzwerk nicht an die Cloud geschickt. Es läuft dann am Google Home/Nest Hub/... ein kleines JavaScript welches die Commands direkt an FHEM weiterleitet.
Wie das funktioniert hat Google sehr gut hier zusammengefasst: https://developers.google.com/assistant/smarthome/concepts/local
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Reinhard.M

#2664
Zitat von: dominik am 24 Mai 2021, 12:55:50
Richtig zusammengefasst :) Ein Input noch...

Wenn das "localHome" Reading im gassistant Device auf "active" steht, dann werden Commands im eigenen Netzwerk nicht an die Cloud geschickt. Es läuft dann am Google Home/Nest Hub/... ein kleines JavaScript welches die Commands direkt an FHEM weiterleitet.
Wie das funktioniert hat Google sehr gut hier zusammengefasst: https://developers.google.com/assistant/smarthome/concepts/local

Vielen Dank Dominik,
die Info zum "localHome" hat mir noch gefehlt zum Verständnis. Wenn du das noch in deinem Wiki aufnehmen könntest wäre super. "Again what learned" wie ein großer Fußballer unserer Zeit zu sagen pflegt  ;)

Schöne Woche
Reinhard

P.S.: @Dominik, könnte es sein, dass du inzwischen an den Limits von Firebase und Auth0 kratzt? Ich beobachte in den letzten 2, 3 Wochen häufig ein recht hohes Delay bis zum Status "connected" bei der Wiederanmeldung nach einem Reload oder Restart. Das "localHome" Reading braucht dann gerne nochmals eine weitere Stunde bis es auf "active" steht.

Nachtrag:
Ganz ohne Cloud geht es auch im "localHome" Fall nicht. Wenn ich "Google Home" zur Ansteuerung anwenden möchte (warum auch immer), ist es egal ob das Kommando via Sprache oder über die Google Home-App abgesetzt wird. Es geht immer erst einmal raus in die Cloud.

Gisbert

Hallo Reinhard,
hallo Dominik,

vielen Dank für eure Unterstützung.
Im Wiki steht folgendes:
ZitatIch kann in der Home App manche Geräte nicht steuern
Google entwickelt die Home App laufend weiter. Manche Funktionen, die zwar über Sprache funktionieren, sind in der Home App noch nicht steuerbar (z.B. Rollos).

Heißt das, dass bei Rollläden außer opens und closes noch keine weiteren Befehle vorhanden sind?
Bitte diesbzgl. um eine Rückmeldung, damit ich weiß, womit ich rechnen kann und nicht etwas suche, was es noch gar nicht gibt.

Vielen Dank und viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

dominik

Zitat von: Reinhard.M am 24 Mai 2021, 13:34:32
Vielen Dank Dominik,
die Info zum "localHome" hat mir noch gefehlt zum Verständnis. Wenn du das noch in deinem Wiki aufnehmen könntest wäre super. "Again what learned" wie ein großer Fußballer unserer Zeit zu sagen pflegt  ;)

Schöne Woche
Reinhard

P.S.: @Dominik, könnte es sein, dass du inzwischen an den Limits von Firebase und Auth0 kratzt? Ich beobachte in den letzten 2, 3 Wochen häufig ein recht hohes Delay bis zum Status "connected" bei der Wiederanmeldung nach einem Reload oder Restart. Das "localHome" Reading braucht dann gerne nochmals eine weitere Stunde bis es auf "active" steht.

Nachtrag:
Ganz ohne Cloud geht es auch im "localHome" Fall nicht. Wenn ich "Google Home" zur Ansteuerung anwenden möchte (warum auch immer), ist es egal ob das Kommando via Sprache oder über die Google Home-App abgesetzt wird. Es geht immer erst einmal raus in die Cloud.

Hab es im Wiki ergänzt.

Es dauert meistens einige Sekunden bis es auf Connected geht. Das liegt teilweise am SYNC der bei Google manchmal länger dauert. Limits sind da bei Auth0 und Firebase noch keine erreicht - zumindest keine technischen, da ist noch genug Luft in der Cloud :) Preislich muss ich aber noch schauen wie ich es nach dem aufgebrauchten Guthaben optimieren kann...

Wie hast du das getestet ob bei Local Home noch etwas in die Cloud geht? Weil eigentlich sollte da, bis auf die Spracherkennung, nichts raus gehen. Zumindest in Firebase kommt da bei mir nichts an wenn localHome active ist.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: Gisbert am 24 Mai 2021, 21:21:28
Hallo Reinhard,
hallo Dominik,

vielen Dank für eure Unterstützung.
Im Wiki steht folgendes:
Heißt das, dass bei Rollläden außer opens und closes noch keine weiteren Befehle vorhanden sind?
Bitte diesbzgl. um eine Rückmeldung, damit ich weiß, womit ich rechnen kann und nicht etwas suche, was es noch gar nicht gibt.

Vielen Dank und viele Grüße
Gisbert

In der Home App geht leider noch nichtmal ein open/close. Du kannst es nur per Sprache via Handy steuern.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Reinhard.M

Zitat von: dominik am 24 Mai 2021, 21:48:40
Hab es im Wiki ergänzt.

Es dauert meistens einige Sekunden bis es auf Connected geht. Das liegt teilweise am SYNC der bei Google manchmal länger dauert. Limits sind da bei Auth0 und Firebase noch keine erreicht - zumindest keine technischen, da ist noch genug Luft in der Cloud :) Preislich muss ich aber noch schauen wie ich es nach dem aufgebrauchten Guthaben optimieren kann...

Wie hast du das getestet ob bei Local Home noch etwas in die Cloud geht? Weil eigentlich sollte da, bis auf die Spracherkennung, nichts raus gehen. Zumindest in Firebase kommt da bei mir nichts an wenn localHome active ist.

Ich habe meinem Mobile den Internetzugriff im Router entzogen, es aber weiterhin im LAN belassen. Zugriff vom Mobile über FHEM auf einen entsprechenden Schalter funktionierte problemlos, der gleiche Schalter aus der Google Home App war aber nicht mehr erreichbar. Dann WLAN im Handy deaktiviert und mobile Daten verwendet. Von meinem Handy ausgehend funktioniert FHEM Zugriff auf den Schalter jetzt nicht mehr, dafür aber Google Home. Mein Google Home Mini war die ganze Zeit normal im heimischen WLAN. Darauf müsste ja die lokale Instanz laufen.

lucca111

Hallo Dominik,

schön das Du wieder da bist. Kannst Du bitte mal gucken ob Du mir zu meinem Problem was sagen kannst.

Es ist der Post  #2627 am: 18 April 2021, 12:08:24

ZitatVielleicht kann hier jemand was zu sagen. Ich habe mit der Rückgabe einiger TV-Sender Probleme.
Wenn ich zum Beispiel Schalte den Fernseher auf RTL sage bekomme ich vom reading den state "channel 16" zurück.
Das ist auch gut denn damit kann ich weiterarbeiten.
Bei zum Beispiel Schalte den Fernseher auf RTL 2 bekomme ich aber den state "RTL Zwei" zurück was natürlich
für meine Unterfunktion in der 99myUtils ungünstig ist.
Weiss jemand warum das so ist oder wie ich immer ein eindeutiges State Ergebnis zurück bekomme?
Bei 90 % der Sender anfragen klappt es übrigens einwandfrei.

"Modes":[{
"reading":"state",
"cmds":[
"Sender vor:DirectionRight",
"Sender zurück:DirectionLeft",
"Sender pause:command pause",
"Sender weiter:command play",
"ARD: channel 1",
"Tagesschau: channel 2",
"ARD Eins Alpha: channel 3",
"ONE: channel 4",
"ZDF: channel 5",
"ZDFneo: channel 6",
"ZDF Info: channel 7",
"RBB: channel 8",     
"TV Berlin: channel 9",     
"Spreekanal: channel 10",
"Alex Berlin: channel 11",     
"Hauptstadt TV: channel 12",
"Sat Eins: channel 13",
"Sat Eins Emotion: channel 14",     
"Sat Eins Gold: channel 15",
"RTL: channel 16",     
"RTLZWEI: channel 17",     
"RTLplus: channel 18",     
"RTL Living: channel 19",     
"NITRO: channel 20",     
"SUPER RTL: channel 21",
"Welt: channel 22"
       ],
"mode_attributes":{"name":"sender","name_values":[{"name_synonym":["sender","sendung","programm"],"lang":"de"}],
"settings":[
{"setting_name":"Sender vor","setting_values":[{"setting_synonym":["Sender vor","Programm vor","den nächsten Sender"],"lang":"de"}]},
{"setting_name":"Sender zurück","setting_values":[{"setting_synonym":["Sender zurück","Programm zurück","den vorigen Sender"],"lang":"de"}]},
{"setting_name":"Sender pause","setting_values":[{"setting_synonym":["Sender pause","Sender stop","Sender anhalten","Programm pause","Programm stop","Programm anhalten"],"lang":"de"}]},
{"setting_name":"ARD","setting_values":[{"setting_synonym":["ARD","Das Erste"],"lang":"de"}]},
{"setting_name":"Tagesschau","setting_values":[{"setting_synonym":["Tagesschau"],"lang":"de"}]},
{"setting_name":"ARD Eins Alpha","setting_values":[{"setting_synonym":["ARD 1 Alpha","ARD Eins Alpha"],"lang":"de"}]},
{"setting_name":"ONE","setting_values":[{"setting_synonym":["ONE"],"lang":"de"}]},
{"setting_name":"ZDF","setting_values":[{"setting_synonym":["ZDF"],"lang":"de"}]},
{"setting_name":"ZDFneo","setting_values":[{"setting_synonym":["ZDFneo"],"lang":"de"}]},
{"setting_name":"ZDF Info","setting_values":[{"setting_synonym":["ZDF Info"],"lang":"de"}]},
{"setting_name":"RBB","setting_values":[{"setting_synonym":["RBB"],"lang":"de"}]},
{"setting_name":"TV Berlin","setting_values":[{"setting_synonym":["TV Berlin"],"lang":"de"}]},
{"setting_name":"Spreekanal","setting_values":[{"setting_synonym":["Spreekanal"],"lang":"de"}]},
{"setting_name":"Alex Berlin","setting_values":[{"setting_synonym":["Alex Berlin"],"lang":"de"}]},
{"setting_name":"Hauptstadt TV","setting_values":[{"setting_synonym":["Hauptstadt TV"],"lang":"de"}]},
{"setting_name":"Sat Eins","setting_values":[{"setting_synonym":["Sat Eins","Sat 1"],"lang":"de"}]},
{"setting_name":"Sat Eins Emotion","setting_values":[{"setting_synonym":["Sat Eins Emotion"],"lang":"de"}]},
{"setting_name":"Sat Eins Gold","setting_values":[{"setting_synonym":["Sat Eins Gold","Sat 1 Gold"],"lang":"de"}]},
{"setting_name":"RTL","setting_values":[{"setting_synonym":["RTL"],"lang":"de"}]},
{"setting_name":"RTL Zwei","setting_values":[{"setting_synonym":["RTL Zwei","RTL 2"],"lang":"de"}]},
{"setting_name":"RTL Plus","setting_values":[{"setting_synonym":["RTL Plus","RTL +"],"lang":"de"}]},
{"setting_name":"RTL Living","setting_values":[{"setting_synonym":["RTL Living"],"lang":"de"}]},
{"setting_name":"RTL Nitro","setting_values":[{"setting_synonym":["RTL Nitro"],"lang":"de"}]},
{"setting_name":"Super RTL","setting_values":[{"setting_synonym":["Super RTL"],"lang":"de"}]},
{"setting_name":"Welt","setting_values":[{"setting_synonym":["Welt"],"lang":"de"}]}
]
  }
}
  ]
}




Vielen Dank für Deine Mühe

Gruß Lucca