[37_echodevice] Amazon Echo Modul (nicht Alexa)

Begonnen von michael.winkler, 12 Januar 2018, 18:20:12

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: bart0190 am 09 Oktober 2022, 15:21:20
Hallo Joachim,
Danke für die schnelle Antwort.
Meine nodejs am Raspi war v10.21.0 und ist nach jetztigem Update V10.24.0

Hab

sudo apt-get update
sudo apt-get install nodejs npm

gemacht.

Das ist/war ja nur der Unterbau und NICHT die npm-Login Module!
Die meinte ich... ;)


Zitat von: bart0190 am 09 Oktober 2022, 15:21:20
Ist eher zu empfehlen das aktuelle Modul einfach ins FHEM Verzeichnis zu den anderen pm dazuzukopieren (überschreiben) oder ein ganzes FHEM-Update?

Naja nur Teile upzudaten (und das geht/ginge auch anders als die pm-Datei überzukopieren ;)  ) ist mMn nicht ratsam bzw. kommt drauf an wie alt der Rest ist.
Es ist bei sowas immer zu befürchten, dass es nicht zusammen passt...

Aber noch mal: ob das hilft -> keine Ahnung.
Kenne deine Historie bzw. die deines fhem zu wenig.
Also wann du was geupdated hast und was/welche Module gegebenenfalls nicht (mehr) oder in alter Version zurück gespielt hast...

Ich halte alles soweit aktuell inkl. OS und habe (aktuell) keine Probleme...
(... bis Amazon wieder was rumbastelt)

Evtl. (noch mal) ein getStatus des Account-Devices und warten was Michael dazu sagt...

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)

bart0190

Hallo Joachim,
Danke für die Info. Da muss ich mir dann noch ein wenig mehr Zeit nehmen für das FHEM update. Aber hast natürlich recht, besser sauber auf Letztstand.

lg
Bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

MadMax-FHEM

Zitat von: bart0190 am 10 Oktober 2022, 08:07:01
Aber hast natürlich recht, besser sauber auf Letztstand.

Vermutlich, da selbst wenn das Problem weiterhin bestehen sollte Michael eine Chance hat zu helfen.
Wenn unklar ist auf welcher/welchen Versionen du bzw. dein System so läuft, wird es schwierig...

Viel Erfolg, 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)

bart0190

Hallo Joachim,
Vielen, vielen Dank für die Ratschläge und Hilfe!
Ich hab nun heute etwas mehr Zeit gehabt und folgendes gemacht und damit hat es funktioniert:

Den gesamten Raspi mit FHEM drauf neu gestartet.
Dann in FHEM:
Zitatset Alexa_AmazonAccount NPM_login new
und dann konnte ich mich mit meinem Amazon Account anmelden und in FHEM sind nun alle meine Geräte "connected".

Ich meine trotzdem, dass es u.U. auch die alte Version war, FHEM habe ich (noch) nicht hochgezogen, aber es klappt nun.
Vielleicht war ich auch einfach nur zu dumm alleine drauf zu kommen, aber das passiert eben.  :)

Jetzt mach ich mal ein schönes Backup und werde dann die Versionen updaten. :D

lg
Bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

Jack_n

Hallo,

ich bekomme auch immer die Meldung, dass der Port 3002 in Benuzung ist.
Wenn ich dann mit der Methode von Shadow3561 den Port schliesse kommt trotzdem wieder die gleiche Meldung mit diesem Eintrag im Log:
(ich habe für npm_proxy_ip und npm_proxy_listen_ip die IP eingetragen unter der der Raspi erreicht wird).

NPM Version 8.19.2
Node Version V14.20.1

Hat bitte noch Jemand einen Tip für mich, was ich noch ausrichten könnte ?

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port Proto Recv-Q Send-Q Local Address           Foreign Address         State     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 localhost:36963         0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 0.0.0.0:39301           0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 0.0.0.0:4711            0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 0.0.0.0:41205           0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 0.0.0.0:38421           0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 4: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 FHEMWLAN.fritz.box:3002 0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 3: [unsereAlexas] [echodevice_NPMLoginNew] Result Proxy Port tcp        0      0 FHEMWLAN.fritz.box:3002 0.0.0.0:*               LISTEN     

2022.10.18 12:31:51 3: [unsereAlexas] [echodevice_NPMLoginNew] Proxy Port 3002 is in use

JudgeDredd

Hi,
mal geschaut, was passiert, wenn Du im Browser auf den Port 3002 zugreifst ?
Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Jack_n

Hallo,

das hat hingehauen - ich bin auf die Amazon Seite gekommen, login gemacht, cookie received.

Danke :-) - hat das hier irgendwo in den Beiträgen gestanden ? Hab wirklich viel gesucht und gelesen...

Panik

#5377
Hallo,

ich habe aktuell dieselben Probleme wie einige hier: bekomme keinen NPM-Login mehr hin.

Die NPM-Installation sowohl manuell (SSH) als auch über FHEM hat funktioniert.
Der NPM-Login_new läuft endlos oder es kommt die Meldung, dass der Port belegt sei.
Daran haben auch mehrfache Neustarts des Raspi3 nichts geändert. Port immer belegt.
Portänderung erfolglos. Auch das killen der PID_Nr hat nicht geholfen.
Also hab ich http://raspberrypi:3002 gewählt und die Anmeldung durchgeführt
"Amazon Alexa Cookie successfully retrieved. You can close the browser."

Wähle ich dann NPM-Login_refresh kommt die Meldung, dass das RefreshToken ungültig sei:
"Das angegebene Refreshtoken Cookie ist ungeueltig! Refreshtoken="0""

Ich hab jetzt eigentlich alles durch, was hier empfohlen wurde.
Selbst die 2FA hatte ich mal zwischenzeitlich deaktiviert.

:-[ :'(

Echodevice: 0.2.15
node --version: v16.18.0
npm --version: 8.19.2


Modul Infos:

Beschreibung    Bereich    Wert
STATE    Reading unauthorized
Version    Reading 0.2.15
NPM Cookie Version    Reading 4.0.1
COOKIE_STATE    Reading unbekannt
COOKIE_TYPE    Reading NEW
COOKIE_MODE    Reading NPM
amazon_refreshtoken    Reading wait for refreshtoken
intervallogin    Attribut 1200
icon    Attribut echo
npm_refresh_intervall    Attribut 3600
TTS_Voice    Attribut German_Female_Google
room    Attribut Amazon

Amazon Cookie:

Beschreibung    Bereich    Wert
.COOKIE    Reading unbekannt....
COOKIE_STATE    Reading unbekannt
COOKIE_TYPE    Reading NEW
amazon_refreshtoken    Reading wait for refreshtoken
.COOKIE    Helper ....
.COMMSID    Helper ....
.CSRF    Helper ....
.DIRECTID    Helper ....
RUNLOGIN    Helper 0
RUNNING_REQUEST    Helper
LOGINERROR    Helper 0


defmod myAlexa echodevice xxx@xxx.xx xxx
attr myAlexa TTS_Voice German_Female_Google
attr myAlexa icon echo
attr myAlexa intervallogin 1200
attr myAlexa npm_refresh_intervall 3600
attr myAlexa room Amazon

setstate myAlexa INITIALIZED
setstate myAlexa 2022-10-21 18:06:51 BrowserLanguage de,en-US;;q=0.7,en;;q=0.3
setstate myAlexa 2022-10-21 18:06:51 BrowserUserAgent Mozilla/5.0 (Windows NT 10.0;; Win64;; x64;; rv:62.0) Gecko/20100101 Firefox/62.0
setstate myAlexa 2022-10-21 18:42:42 COOKIE_MODE NPM
setstate myAlexa 2022-10-21 18:43:34 COOKIE_TYPE NEW
setstate myAlexa 2022-10-21 18:18:13 amazon_refreshtoken wait for refreshtoken
setstate myAlexa 2022-10-21 18:43:34 autocreate_devices stop
setstate myAlexa 2022-10-21 18:06:51 state unauthorized
setstate myAlexa 2022-10-21 18:43:34 version 0.2.15

[/size]





Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

Borkk

Hallo Zusammen,

irgendwie ist hier doch der Wurm drin. Bei mir sind die Echos auch aus heiterem Himmel verstummt und ich bekomme den State "connected but loginerror"


COOKIE_MODE  NPM
COOKIE_STATE. OK
COOKIE_TYPE    READING_NPM
alarm_count      0
amazon_refreshtoken. wait for refresh-token


Wenn ich ein NPM_Login machen kommt: "Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durch"

Und wenn ich ein NPM_install mache kommt:

Installationsergebnis

Installation wird angestarrte

up to date, audited 90 packages in 2s

10 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
!!Installation fehlgeschlagen!!


Version ist 0.2.15 und ich hab das ganze im Docker laufen.
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

JudgeDredd

Hi Panik,
Zitat von: Panik am 21 Oktober 2022, 18:47:38
Also hab ich http://raspberrypi:3002 gewählt und die Anmeldung durchgeführt
"Amazon Alexa Cookie successfully retrieved. You can close the browser."

Wähle ich dann NPM-Login_refresh kommt die Meldung, dass das RefreshToken ungültig sei:
"Das angegebene Refreshtoken Cookie ist ungeueltig! Refreshtoken="0""
Du hast zwar die Meldung bekommen, das FHEM das COOKIE erfolgreich bekommen hat, aber das
Zitat von: Panik am 21 Oktober 2022, 18:47:38
amazon_refreshtoken      Reading   wait for refreshtoken
steht dazu ja im Widerspruch.

Ich kenne Deine Netzwerkumgebung nicht, aber Probleme bekommt man bei einer IPv6 only Verbindung.
Die hat man aber (wenn man es im Netzwerk nicht ausdrücklich konfiguriert hat) normalerweise nicht.

Falls Du FHEM im Docker betreibst, dann musst Du natürlich noch die entsprechenden Attribute setzen (npm_proxy_listen_ip)

Versuche nochmal ein
set <DEVICE> NPM_login new
und schaue danach mal, ob das Reading ".COOKIE" existiert.
{ ReadingsVal( '<DEVICE>', '.COOKIE', 'nicht vorhanden') }
Wenn da kein Cookie angezeigt wird (langer kryptischer Text), dann wird auch ein Refresh niemals funktionieren.

Solltest Du dort aber das Cookie sehen, dann bitte anschließend ein
set <DEVICE> NPM_login refresh

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

adn77

#5380
Gefühlt geht es bei den 300 der 360 Seiten dieses Threads um Login-Probleme....

Ich habe eine Version "gebaut" die ein Account Device allein mit dem Refresh_Token definiert (das Refresh Token bekommt man von der Stand-Alone AlexaCookie-Cli z.B. hier: https://github.com/adn77/alexa-cookie-cli ).

Der Vorteil ist, man benötigt keinen NodeJS Container auf dem FHEM mehr, sondern führt EINMALIG das Login auf einem beliebigen Gerät mit der Anwendung oben aus.
(Die Anwendung ist nichts anderes, als das original alexa-cookie NodeJS von Apollon77, was auch der Docker Container benutzt.)

Definiert wird das device per:
define <name> echodevice <REFRESH_TOKEN>

und anschließendem set token_login

WARNUNG: Ich bin kein FHEM Programmierer - wahrscheinlich fehlt in dem Code noch das Eine oder Andere...
(hab z.B. noch nicht ganz durchschaut, was im Fall eines ausgelaufenen Cookies passiert)

Vielleicht kann mal jemand mit Ahnung drüberschauen.

Alex

UPDATE: ich habe nun hoffentlich die Stelle gefunden, wo der Cookie-Refresh gemacht werden muss.
Es ist wahrscheinlich sinnvoll, den npm_refresh_intervall auf knapp einen Tag zu setzten 86220
(ich benutze noch die alten Variablen - kann man bestimmt auch besser machen :)

Panik

Hallo JudgeDredd,

ich habe kein Docker und benutze da auch kein IPv6.

Das funktionierende Device lief von einem auf den anderen Tag nicht mehr und der Status aller
zugehörigen Geräte war auf "INITIALIZED" und am echodevice "unautorisiert" (so ähnlich)

Heute morgen hab ich dann im Anfall von Wahnsinn per ssh
sudo netstat -tulpen | grep -v '127.0.0.1'  | grep -v '::1:'
und sobald die Adresse mit dem Port erschien
sudo kill xxxx
danach in FHEM den NPM_Login_new

und das ständig wiederholt, bis nicht mehr die Meldung ... Port wird gerade benutzt ... kam, sondern
die Meldung mit dem Link zur Eingabe der Amazon-Anmeldedaten.

Dann schlussendlich war es vollbracht - das ist schon extrem ätzend diese Tortour. 

Aber jetzt hat ja adn77 einen Lichtblick geschaffen.
Das muss ich mir mal ansehen.

Danke euch Beiden!
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

michael.winkler

Zitat von: adn77 am 22 Oktober 2022, 02:38:22
Gefühlt geht es bei den 300 der 360 Seiten dieses Threads um Login-Probleme....

Ich habe eine Version "gebaut" die ein Account Device allein mit dem Refresh_Token definiert (das Refresh Token bekommt man von der Stand-Alone AlexaCookie-Cli z.B. hier: https://github.com/adn77/alexa-cookie-cli ).

Der Vorteil ist, man benötigt keinen NodeJS Container auf dem FHEM mehr, sondern führt EINMALIG das Login auf einem beliebigen Gerät mit der Anwendung oben aus.
(Die Anwendung ist nichts anderes, als das original alexa-cookie NodeJS von Apollon77, was auch der Docker Container benutzt.)

Definiert wird das device per:
define <name> echodevice <REFRESH_TOKEN>

und anschließendem set token_login

WARNUNG: Ich bin kein FHEM Programmierer - wahrscheinlich fehlt in dem Code noch das Eine oder Andere...
(hab z.B. noch nicht ganz durchschaut, was im Fall eines ausgelaufenen Cookies passiert)

Vielleicht kann mal jemand mit Ahnung drüberschauen.

Alex
Länger als 14 Tage wird das Cookie nicht überleben!

adn77

#5383
Genau, deshalb muss der TokenExchange erneut aufgerufen werden.
Ich habe bisher nur nicht verstanden, wo die Cookie Prüfung stattfindet.

Alex
(Das RefreshToken ist bei mir bereits seit über einem Jahr gültig. Laut Doku hat es eine "unbegrenzte" Gültigkeit)

adn77

Zitat von: michael.winkler am 24 Oktober 2022, 08:25:23
Länger als 14 Tage wird das Cookie nicht überleben!

Ich habe meinen Post oben mit einer geänderten Version versehen:

  • das RefreshToken wird nach der Definition in einem versteckten Internal gespeichert
  • Cookie Refresh der Funktion echodevice_LoginStart hinzugefügt

Alex