[ghome-fhem] HowTo: Google Home/Assistant Integration

Begonnen von dominik, 27 November 2018, 21:56:29

Vorheriges Thema - Nächstes Thema

habl

hallo,

ich komm trotz der sehr guten Anleitung einfach nicht weiter  :-[

ich denke ich bin gefühlt 5x nach Anleitung vorgegangen, ich bekomme einfach die login Seite nicht angezeigt (Cannot GET /login).
oauth (response_type undefined must equal "code") und
token (missing required parameter) funktionieren soweit.

wenn ich ghome per cmd starte, erhalte ich folgende Ausgabe:
root@server:/opt/ghome-fhem/bin# ./ghome
[2018-12-2 16:16:29] using /root/.ghome/config.json
[2018-12-2 16:16:29] ---
[2018-12-2 16:16:29] this is ghome-fhem 0.4.0
[2018-12-2 16:16:29] Fetching FHEM devices...
[2018-12-2 16:16:29] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1543763789999
[2018-12-2 16:16:30] Server listening on: https://:::3000
[2018-12-2 16:16:30] [FHEM] Checking devices and attributes...
[2018-12-2 16:16:30] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_483417543482159&XHR=1
[2018-12-2 16:16:30] [FHEM] Fetching FHEM devices...
[2018-12-2 16:16:30] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20room=GoogleHome&fwcsrf=csrf_483417543482159&XHR=1
[2018-12-2 16:16:30] [FHEM] got: 1 results
[2018-12-2 16:16:30] [FHEM] r4ArbeitszLampe1 has
[2018-12-2 16:16:30] [FHEM]   On [state;on,off]
[2018-12-2 16:16:30] [FHEM] { reading: 'state',
  valueOff: '/off|A0|000000/',
  cmdOn: 'on',
  cmdOff: 'off',
  device: 'r4ArbeitszLampe1',
  format: 'bool',
  informId: 'r4ArbeitszLampe1-state',
  characteristic_type: 'On',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2018-12-02 16:16:30 caching: r4ArbeitszLampe1-state: on
GET /oauth 400 27.812 ms - 41
/token query {}
/token body {}
missing required parameter
GET /token 400 10.557 ms - 26
GET /login 404 63.785 ms - 144


ich würde ja vermuten, das hier das frontend nicht installiert ist. Ist es aber.

Ich habe es momentan auf ein Debian Strech installiert, allerdings auch schon auf ein Ubuntu 18.04 getestet: genauso erfolglos.
Was kann ich noch überprüfen/testen...

fragende Grüße
  habl

kadettilac89

Ist der login-pfad lokal erreichbar? Was passierten wenn du http://<lokale ip>:3000/login aufrufst? Nutzt du reverse Proxy?

Mal rebootet?

habl

Zitat von: kadettilac89 am 02 Dezember 2018, 18:52:01
Ist der login-pfad lokal erreichbar? Was passierten wenn du http://<lokale ip>:3000/login aufrufst? Nutzt du reverse Proxy?

Mal rebootet?

nein, auch lokal nicht erreichbar und auch ein reboot hat bisher leider nicht geholfen, andere ideen? gib es evtl logdateien?

pattex

Schau mal bitte, dein ghome start log zeigt https://:::3000 dies bedeutet, das du auch den Testaufruf mit https machen musst.

kadettilac89

Läuft dein ghome unter root? Ist aus security sicht nicht zu empfehlen. Ich weiß nicht ob irgendwo in nodejs eine prüfung darauf läuft. Teste mal mit pi oder einem anderen normalen user. Ggf. Musst fu fie Rechte entsprechend setzen.

habl

Zitat von: pattex am 02 Dezember 2018, 19:11:41
Schau mal bitte, dein ghome start log zeigt https://:::3000 dies bedeutet, das du auch den Testaufruf mit https machen musst.

ja, hatte ich schon beides durch, weder mit noch ohne ssl geht's (probier schon ein wenig länger  ;) )


pattex

Hat das denn mal funktioniert? Ich habe von ca. 1 Woche ein Änderung an den Urls gemacht, damit der ghome besser Reverse Proxy tauglich wird. Evtl. ist da was bei schief gelaufen...

pattex

#22
Ich konnte gerade das Verhalten was du beschrieben hast bei mir nachstellen. Wenn ich ghome unter dem User pi starte, bekomme ich die gleichen Meldungen wie du. Wenn ich ghome normal über service ghome start starte, dann funktioniert es. Kannst du das bestätigen?

Wenn du ghome direkt aus dem bin Verzeichnis aufrufst, kommst es zu dem Verhalten. rufst du aus dem ghome-fhem verzeichnis mit ./bin/ghome auf, klappt es.

habl

Zitat von: pattex am 02 Dezember 2018, 19:23:34
Hat das denn mal funktioniert? Ich habe von ca. 1 Woche ein Änderung an den Urls gemacht, damit der ghome besser Reverse Proxy tauglich wird. Evtl. ist da was bei schief gelaufen...

vor ca 1 Monat hat es funktioniert, dann hat's vorletzte Woche durch ein Stromausfall mein Wlan Router zerschossen.

Ich wollte jetzt das ganze mal aktualisieren.. und jetzt bekomme es nicht mehr am hin  :-[

Ich habe es auch schon auf einer virtuellen Ubuntu 18.04 versucht, da war das gleiche Problem.

es könnte natürlich auch an der Änderung liegen ?!

habl

Zitat von: pattex am 02 Dezember 2018, 19:39:18
Ich konnte gerade das Verhalten was du beschrieben hast bei mir nachstellen. Wenn ich ghome unter dem User pi starte, bekomme ich die gleichen Meldungen wie du. Wenn ich ghome normal über service ghome start starte, dann funktioniert es. Kannst du das bestätigen?

Wenn du ghome direkt aus dem bin Verzeichnis aufrufst, kommst es zu dem Verhalten. rufst du aus dem ghome-fhem verzeichnis mit ./bin/ghome auf, klappt es.

ja, kann ich bestätigen. So funktioniert es, Super vielen Dank!
Wobei, wo ist jetzt ein Unterschied? Es sollte doch eigentlich beides funktionieren?!

pattex

Da gebe ich dir recht. Für die Authentifizierung wird das Verzeichnis frontend benutzt. Verweise darauf beginnen mit ./frontend er sucht also in bin nach frontend. da gibts kein frontend und somit wird nichts angezeigt.
Ich versuche gerade durch den code zu blicken. Evtl. kann man das Abfangen, damit nicht noch jemand in die Falle tappt :-)

habl

einen hab ich noch  :)

sofern ich die Login - Seite aufrufe und ohne (oder mit?) Credentials den Login Button betätige, erhalte ich das als Rückgabe:

Error: No default engine was specified and no extension was provided.
    at new View (/opt/ghome-fhem/node_modules/express/lib/view.js:61:11)
    at Function.render (/opt/ghome-fhem/node_modules/express/lib/application.js:570:12)
    at ServerResponse.render (/opt/ghome-fhem/node_modules/express/lib/response.js:1008:7)
    at login (/opt/ghome-fhem/lib/auth-provider.js:390:16)
    at /opt/ghome-fhem/lib/auth-provider.js:211:20
    at Layer.handle [as handle_request] (/opt/ghome-fhem/node_modules/express/lib/router/layer.js:95:5)
    at next (/opt/ghome-fhem/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/opt/ghome-fhem/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/opt/ghome-fhem/node_modules/express/lib/router/layer.js:95:5)
    at /opt/ghome-fhem/node_modules/express/lib/router/index.js:281:22


ist das bei euch auch so?



pattex

Sieht deine Login Seite so wie im Anhang hier aus?

habl

Zitat von: pattex am 02 Dezember 2018, 20:41:13
Sieht deine Login Seite so wie im Anhang hier aus?

Ja, genauso. Wenn ich die richtigen Credentials eingebe funktioniert es auch.

gvzdus

Hi Dominik,

angenommen, ich merge alexa-fhem von justme-1968 mit ghome-fhem: Zunächst als Branch, nach "Abnahme" dann in den Head.
Würde Dir das passen, oder ist Dir das Google-Only lieber?

Hintergrund: Ich habe einerseits den Code von justme-1968 etwas erweitert, z.B. um generische Erkennung meines Zoos. Andererseits habe ich mir jetzt auch Google-Home zwecks Vergleich zugelegt. Ich denke, es wäre sinnvoller, wenn die beiden Damen in einer Codebasis gepflegt werden, weil die Arbeit wohl eher in der Device-Seite besteht.

Cheers, Georg