39_gassistant.pm (Google Assistant, Google Home)

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

Vorheriges Thema - Nächstes Thema

dominik

Zitat von: slawekking am 05 Februar 2019, 09:20:18
Hallo Dominik,

ich danke erst mal für die Top Arbeit. Meine Installation läuft auf einem NUC mit Ubuntu 16.4 LTS

Ich habe aktuell das Problem, dass ich in Fhem dauerhaft den State: gassistant-fhem-connection auf connecting... habe und bei der Verbindung der Action in der Google Home App die Fehlermeldung : accounts failed to link. Please close your browserand try again.

In Fhem bekomme ich folgenden Log Einträge:

[2019-2-5 08:56:56] Google Assistant FHEM Connect 1.0.11 started
[2019-2-5 08:56:56] Fetching FHEM connections...
[2019-2-5 08:56:56] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1549353416941
[2019-2-5 08:56:57] [FHEM] Checking devices and attributes...
  executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&fwcsrf=csrf_30458690689398&XHR=1
  executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dgassistant&fwcsrf=csrf_30458690689398&XHR=1
[2019-2-5 08:56:57] [FHEM] FHEM Google Assistant device detected: gassistant
[2019-2-5 08:56:57] [FHEM] Get refresh token...
  executing: http://127.0.0.1:8083/fhem?cmd=get%20gassistant%20refreshToken&fwcsrf=csrf_30458690689398&XHR=1
  executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-connection%20connecting...&fwcsrf=csrf_30458690689398&XHR=1
[2019-2-5 08:56:57] [FHEM] Found refresh token in reading
[2019-2-5 08:56:59] [FHEM] refreshAllTokens executed
[2019-2-5 08:56:59] [FHEM] Fetching FHEM devices...
[2019-2-5 08:56:59] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=GoogleAssistant&fwcsrf=csrf_30458690689398&XHR=1
[2019-2-5 08:56:59] [FHEM] start connection executed
  executing: http://127.0.0.1:8083/fhem?cmd=setreading%20gassistant%20gassistant-fhem-lasterror%20none&fwcsrf=csrf_30458690689398&XHR=1
(node:8844) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead
[2019-2-5 08:57:00] [FHEM] got: 0 results
**** SERVER FeatureLevel: {"featurelevel":1,"changelog":" - support KNX dpt1.001, dpt5.001"}
**** SYNC   FeatureLevel: {"featurelevel":1}
GOOGLE MSG RECEIVED: {"id":"12079195331652930373","msg":"RELOAD_DEVICES"}
**** Received firestore2fhem: {"id":"12079195331652930373","msg":"RELOAD_DEVICES"}
GOOGLE MSG RECEIVED: {"id":"3904853768067011973","msg":"RELOAD_DEVICES"}
**** Received firestore2fhem: {"id":"3904853768067011973","msg":"RELOAD_DEVICES"}

Bitte um Rückmeldung.

Gruß

Christoph

Fuege mal eine Lampe den GoogleAssistant Raum hinzu, dann sollte das auf connected umspringen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: Det20 am 05 Februar 2019, 09:56:28
So, es funktioniert endlich, sehr sehr geil, danke für das Modul. Ich habe testhalber mehrere Unterputz-ZWaves mit dem Attribut "genericDeviceType:Light" ausgestatt und "gassistantName" gesetzt. Die Geräte tauchen in GoogleHome auf. Bei einigen Geräten bleibt Google trotz "Synchronisiere meine Geräte" der Meinung dass es ein Schalter und kein Licht ist. Kann man das noch aktualisieren/ändern, ohne wieder alles rauszulöschen und neu hinzuzufügen?

Im Google Home habe ich die Schalter nun Räumen zugeordnet und kann über "Ok google, mach das Licht bei Finja an" auch anschalten. Himmel ist das cool ...

Was noch Probleme macht, ist die Synchronisation. Also schalte ich per Google ein, dann per FHEM wieder aus dann rafft Google das manchmal nicht und ist der Meinung, dass die Lampe noch eingeschaltet ist. Schalten von Google aus wird in FHEM erkannt (an/aus), andersrum in 50% der Fälle nicht.

Hat jemand eine Übersicht, welche genericDeviceType's in Google funktionieren? Also Fenster, Licht, Strom usw?
Ein Dummy "webcmd on:off" wird auch leider nicht erkannt, obwohl der Typ auf "switch" gestezt ist. Schade.

Schau mal im Log nach ob eine Zeile caching: device-reading: neuerwert erscheint. Bitte gassistant-fhem ab Version 1.0.10 nutzen, davor gab es da einen Fehler.

genericDeviceType: Habe ich im Wiki hinzugefuegt.

Dummy: webcmd ist kein Command, das Device muss ein Command (Attribut setList: on off)  haben.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: Det20 am 05 Februar 2019, 12:55:03
Versucht, taucht trotz "Synchronisiere meine Geräte" leider nicht im Google auf.
Brauche ich "homebridgeMapping" / "realRoom"?

Nein, bitte homebridgeMapping NUR verwenden wenn etwas standardmäßig nicht funktioniert. Generell ist mein Ansatz so viele Geräte wie möglich ohne eigene Konfiguration (homebridgeMapping) zu unterstützen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

SouzA

Zitat von: dominik am 05 Februar 2019, 20:11:30
Nein, bitte homebridgeMapping NUR verwenden wenn etwas standardmäßig nicht funktioniert. Generell ist mein Ansatz so viele Geräte wie möglich ohne eigene Konfiguration (homebridgeMapping) zu unterstützen.
Hat ja nicht funktioniert...  ;D ;)
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

dominik

Da hast du auch wieder Recht :D

Hier ein wirklich simples Dummy das funktioniert:
defmod d_gutenmorgen dummy
attr d_gutenmorgen room GoogleAssistant
attr d_gutenmorgen setList on off


Mehr wird nicht benötigt. Dummys sollten aber wirklich nur verwendet werden wenn das eigentliche Device nicht funktioniert oder man mehr als nur das eine Device mit dem Dummy steuern will.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Update gassistant-fhem 1.0.12
- gassistant-fhem-version Reading wird gesetzt
- gassistant-fhem-usedFeatureLevel Reading wird gesetzt (beim Durchfuehren eines SYNCs)

usedFeatureLevel: Ein Beispiel wozu usedFeatureLevel hilfreich ist...
Wenn Google eine neue Funktion unterstuetzt (z.B. Steuerung der Lautstaerke) dann kann ich das serverseitig implementieren. Das fuehrt aber im Test Action noch nicht automatisch dazu, dass es bei euch funktioniert, da Google dazu einen SYNC ("synchronisiere meine geraete") mit den neuen Funktionen erfordert. Der FeatureLevel wird daher im zentralen Google Firebase Projekt von mir verwaltet. Aktuell steht dieser auf 1.
Wenn ich neue Features integriere, setze ich den FeatureLevel hoeher und kann hier kommunizieren ab welchem FeatureLevel was unterstuetzt wird. Ihr braucht dann nur einen reload und SYNC ausfuehren. Sobald der offizielle Action online ist, geht das dann automatisch.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

yrwyddfa

Hmmm... bei mir scheitert es an der loginURL. Braucht es hier noch zusätzliche Prequsites?
Ich habe eine fhem-Instanz auf dem Rechner eingerichtet, der auch ein gültiges letsencrypt-Zertifikat hat (war ja vorher notwendig). hier mein listing:


Internals:
   CFGFN     
   FD         7
   FUUID      5c5a08a3-f33f-2713-8321-11886ec7cc9300e7
   LAST_START 2019-02-05 23:05:24
   NAME       gassistant
   NOTIFYDEV  global
   NR         25
   NTFY_ORDER 50-gassistant
   PID        25152
   STARTS     1
   STATE      running /usr/local/bin/gassistant-fhem
   TYPE       gassistant
   currentlogfile ./log/gassistant-2019-02-05.log
   logfile    ./log/gassistant-%Y-%m-%d.log
   CoProcess:
     cmdFn      gassistant_getCMD
     name       gassistant-fhem
     state      running /usr/local/bin/gassistant-fhem
   READINGS:
     2019-02-05 23:05:24   gassistant-fhem running /usr/local/bin/gassistant-fhem
Attributes:
   devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
   gassistantFHEM-config ./gassistant-fhem.cfg
   gassistantFHEM-log ./log/gassistant-%Y-%m-%d.log
   stateFormat gassistant-fhem


Auch ich musste node.js 9.5 manuell installieren, fhem ist auf dem allerneuesten Stand (und hier ganz frisch installiert).
If every day has its number, Monday would be a zero division.

dominik

fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Ab sofort wird beim Hinzufuegen eines neuen Geraetes in den definierten Raum automatisch ein SYNC initiiert. Ihr braucht also kein "synchronisiere meine geraete" sagen.

Entfernt man ein Geraet aus dem definierten Raum wird ebenfalls ein SYNC ausgeloest. Komischerweise verschwindet es aber nicht gleich aus der Home App. Erst wenn man ein neues Geraet hinzufuegt, werden die geloeschten auch entfernt.

Des Weiteren koennt ihr "set gassistant reload" nutzen um ebenfalls einen kompletten SYNC auszuloesen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

slawekking

Zitat von: dominik am 05 Februar 2019, 19:51:46
Fuege mal eine Lampe den GoogleAssistant Raum hinzu, dann sollte das auf connected umspringen.

Hallo Dominik,

danke für die Info.

Jetzt sehe ich ein connect  :). Da hatte ich wohl ein Verständnisproblem.

Det20

#160
Zitat von: dominik am 06 Februar 2019, 00:10:13
Ab sofort wird beim Hinzufuegen eines neuen Geraetes in den definierten Raum automatisch ein SYNC initiiert. Ihr braucht also kein "synchronisiere meine geraete" sagen.

Funktioniert bei mir leider nicht. Habe einen Dummy erzeugt, realroom usw gesetzt, trotzdem erscheint er nicht automatisch in der Home App. Muss erst die Verknüpfung entfernen, 10 Minuten warten, neu verbinden. Dann taucht auch plötzlich mein Dummy auf.

PS: Aktuell mein absolutes Lieblingsmodul!

CoolTux

Es reicht wenn du sagst synchronisiere meine Geräte. Auf keinen Fall die Verknüpfung löschen. Damit machst du nur mehr kaputt.
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

Det20


the-vince

Zitat von: dominik am 30 Januar 2019, 21:45:38
Kann bitte jemand nochmals WifiLight testen? Vor dem Test muss nur ein "Hey Google, synchronisiere meine Geräte" gemacht werden und dann eine Minute warten.

Ich habe gerade eine Anpassung vorgenommen damit nun hoffentlich auch die Farbeinstellung funktioniert.

Hi Dominik,

im Wifilight scheint noch immer ein Bug drin zu sein. Beim ersten mal Farbe ändern reagiert das Licht korrekt.
Die Male darauf verschluckt es den H Parameter von HSV.
Log sieht dann so aus.

GOOGLE MSG RECEIVED: {"cmd":"set LEDSchlafzimmer HSV 0,1,0","connection":"http://127.0.0.1:8083/fhem","id":"8880799869547759231","msg":"EXECUTE"}
**** Received firestore2fhem: {"cmd":"set LEDSchlafzimmer HSV 0,1,0","connection":"http://127.0.0.1:8083/fhem","id":"8880799869547759231","msg":"EXECUTE"}
  executing: http://127.0.0.1:8083/fhem?cmd=set%20LEDSchlafzimmer%20HSV%200%2C1%2C0&fwcsrf=csrf_XXX&XHR=1
GOOGLE MSG RECEIVED: {"cmd":"set LEDSchlafzimmer HSV ,1,0","connection":"http://127.0.0.1:8083/fhem","id":"8880799869547759231","msg":"EXECUTE"}
**** Received firestore2fhem: {"cmd":"set LEDSchlafzimmer HSV ,1,0","connection":"http://127.0.0.1:8083/fhem","id":"8880799869547759231","msg":"EXECUTE"}
  executing: http://127.0.0.1:8083/fhem?cmd=set%20LEDSchlafzimmer%20HSV%20%2C1%2C0&fwcsrf=csrf_XXX&XHR=1

CoolTux

Zitat von: Det20 am 06 Februar 2019, 14:10:25
Dann fügt er aber doch nichts hinzu ...

Doch macht er. Gibt ihm nur etwas Zeit. Wenn gar nichts kommt dann kennt er das Gerät nicht. Sollte aber eher selten vorkommen. Die Kontoverknüpfung zu entfernen und neu her zu stellen bringt meist mehr Probleme. Doppelte Geräte bei der Sprachsteuerung zum Beispiel.
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