[37_echodevice] Amazon Echo Modul (nicht Alexa)

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

Vorheriges Thema - Nächstes Thema

HansDampfHH

Da würde ich mal mit verbose 5 schauen was das Problem ist.
Findet sich dann bestimmt im Log.
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

MadMax-FHEM

Wie hast du definiert?

Mit dem Fake-Account?

Was liefert get Status beim Account-Device?

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)

Superposchi

Versuche gerade die Anmeldung über NPM umzusetzen, doch leider scheitert es daran, dass er offenbar die 127.0.0.1 nicht auflösen kann und dazu auffordert das Atribut NPM_Proxy_IP auszufüllen.
Wenn ich das mache, geht leider gar nichts mehr und ich muss beim set-Befehl sogar den ganzen Serer neustarten.

Testweise habe ich mal Speak bei Verbose 5 ausgeführt, dabei kam im Log folgendes zutage:
2022.06.06 18:31:45.119 4: [ECHO_G091ET15210502TV] [echodevice_SendCommand] [speak] START
2022.06.06 18:31:45.119 4: [ECHO_G091ET15210502TV] [echodevice_SendCommand] [speak] PushToCmdQueue SendURL =https://layla.amazon.de/api/behaviors/preview
2022.06.06 18:31:45.119 4: [ECHO_G091ET15210502TV] [echodevice_SendCommand] [speak] PushToCmdQueue SendData={"behaviorId":"PREVIEW","sequenceJson":"{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.Speak\",\"operationPayload\":{\"deviceType\":\"A2H4LV5GIZ1JFT\",\"deviceSerialNumber\":\"G091ET15210502TV\",\"textToSpeak\":\"Das ist ein Test\",\"locale\":\"de-DE\",\"customerId\":\"A1HY2T5VKFL3M5\"}}}","status":"ENABLED"}
2022.06.06 18:31:45.119 4: [ECHO_G091ET15210502TV] [echodevice_HandleCmdQueue] [speak] [127] [0] send command=https://layla.amazon.de/api/behaviors/preview Data={"behaviorId":"PREVIEW","sequenceJson":"{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.Speak\",\"operationPayload\":{\"deviceType\":\"A2H4LV5GIZ1JFT\",\"deviceSerialNumber\":\"G091ET15210502TV\",\"textToSpeak\":\"Das ist ein Test\",\"locale\":\"de-DE\",\"customerId\":\"A1HY2T5VKFL3M5\"}}}","status":"ENABLED"}
2022.06.06 18:31:45.174 4: [ECHO_G091ET15210502TV] [echodevice_Parse] [speak] [127]
2022.06.06 18:31:45.174 5: [ECHO_G091ET15210502TV] [echodevice_Parse] [speak] [127] DATA Dumper=$VAR1 = '';

2022.06.06 18:31:45.175 4: [ECHO_G091ET15210502TV] [echodevice_Parse] [speak] [127] json for unknown message
$VAR1 = {
          'data' => 'nodata'
        };


Welchen Fake-Account?
Ich habe mich an die Installationsanleitung auf der Webseite https://anwass.de/amazon-echo-geraete-mit-fhem-steuern/ gehalten.

Get-Status gibt folgendes aus:
Modul Infos:

Beschreibung    Bereich    Wert
STATE    Reading connected
Version    Reading 0.2.15
NPM Cookie Version    Reading 4.0.1
COOKIE_STATE    Reading OK
COOKIE_TYPE    Reading READING
COOKIE_MODE    Reading NORMAL
amazon_refreshtoken    Reading wait for refreshtoken
icon    Attribut mqtt_bridge_2
group    Attribut Bridges
room    Attribut Alexa,System
npm_proxy_ip    Attribut 192.168.178.1

Amazon Cookie:

Beschreibung    Bereich    Wert
.COOKIE    Reading session-id=260-39746....
COOKIE_STATE    Reading OK
COOKIE_TYPE    Reading READING
amazon_refreshtoken    Reading wait for refreshtoken
.COOKIE    Helper session-id=260-39746....
.COMMSID    Helper amzn1.comms.id.perso....
.CSRF    Helper 8....
.DIRECTID    Helper amzn1.account.AGO22C....
RUNLOGIN    Helper 0
RUNNING_REQUEST    Helper 0
LOGINERROR    Helper 0

MadMax-FHEM

Und warum nicht mit der Anleitung des Modulentwicklers?

Die Anleitung ist alt, das Modul ist in fhem enthalten und auch das define ist eben FALSCH!
EDIT: aber der Link "hier herunterladen" führt doch direkt da hin wo es steht usw.

Fake-Account: xxxx@xxxx.de xxxx statt die "echten" Daten...

https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482
bzw.: https://www.mwinklerblog.de/smarthome/eigene-module/echodevice/

Ob das dann schon die Probleme löst: mal sehen.

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)

Superposchi

Langsam, Langsam.

Zum einen habe ich die von mir genannte Anleitung genannt, weil ich mit dieser Informationsquelle mehrfach gute Ergebnisse erziehlt habe und die Anleitungen schnell und einfach verstehe. Ich finde sie oft einfach besser geschrieben als so manche in den Foren.
Zum Anderen ist das define doch das gleiche wie im Thread. Erst auf der Seite von mwinkler wird von dem so genannten Fakeaccount gesprochen, das ist aber doch außerhalb des Forums.

Habe jetzt aber die Schritte von mwinkler so durchgearbeitet und das Erhebnis ist und bleibt das gleiche. Habe den manuellen Weg genutzt, da ich aufgrund der Verndung des Containers keine Sudo-Befehle ausführen kann und auch nicht an "/etc/sudoers" rankomme.
Ich habe zwar jetzt andere Set-Befehle zur Verfügung, doch wenn ich das NPM_install wähle kommt als Ergebnis:
Login ErgebnisDie Ermittlung der IP-Adresse 127.0.0.1 des FHEM Servers hat nicht funktioniert, bitte das Attribut "npm_proxy_ip" entsprechend anpassen.

Leider geht daraus ja nicht erfolgt, was man im Attr. npn_proxy_ip eintragen soll. Habe es sowohl mit der IP meines Routers probiert und mit der 127.0.0.1 (was ja eigentlich Schwachsinn ist). Wüsste nicht was sonst noch Sinn ergeben würde.
Aber egal was ich im Attribut eingetragen habe, sobald etwas drin steht, geht der Server nur noch durch Neustart weiter zu bedienen.

Beim dritten Versuch kam dann plötzlich diese Meldung zurück:
Login Ergebnis
Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durch


Das daraufhin ausgeführte NPM_Install lieferte folgendes zurück:
Installationsergebnis
Vorhandene Installation wird aktualisiert up to date, audited 91 packages in 3s 10 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
!!Installation fehlgeschlagen!!


Auch steht bei mir im state des Hauptdevice nicht "connected but Loginerrors" sondern nur "connected". Hier das Listing vom Device:
Internals:
   DEF        xxx@xxx.xx xxx
   FUUID      629e15c4-f33f-6c14-e94f-c449d60226707fe8
   FVERSION   37_echodevice.pm:v5.0.0-s25459/2022-01-12
   IODev     
   LOGINMODE  NPM
   NAME       Echo
   NR         326
   NTFY_ORDER 50-Echo
   STATE      connected
   TYPE       echodevice
   model      ACCOUNT
   OLDREADINGS:
   READINGS:
     2022-06-06 16:57:14   2FACode         not used
     2022-06-06 20:41:18   BrowserLanguage de,en-US;q=0.7,en;q=0.3
     2022-06-06 20:41:18   BrowserUserAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
     2022-06-06 20:26:03   COOKIE_MODE     NPM
     2022-06-06 20:41:14   COOKIE_STATE    OK
     2022-06-06 20:26:14   COOKIE_TYPE     READING
     2022-06-06 20:41:14   alarm_count     0
     2022-06-06 18:18:19   amazon_refreshtoken wait for refreshtoken
     2022-06-06 20:26:14   autocreate_devices stop
     2022-06-06 20:41:14   config_address_between -
     2022-06-06 20:41:14   config_address_from XXXXX
     2022-06-06 20:41:14   config_address_to -
     2022-06-06 20:41:16   list_SHOPPING_ITEM
     2022-06-06 20:41:17   list_TASK       
     2022-06-06 20:41:14   musicalarm_count 0
     2022-06-06 20:41:14   reminder_count  0
     2022-06-06 20:41:14   state           connected
     2022-06-06 20:41:14   timer_count     0
     2022-06-06 20:41:14   timer_id        -
     2022-06-06 20:41:14   timer_remainingtime 0
     2022-06-06 20:26:14   version         0.2.15
   helper:
     CMD_QUEUE_NUMBER 724
     DEVICETYPE A2H4LV5GIZ1JFT
     RUNLOGIN   0
     RUNNING_REQUEST 0
     SERVER     layla.amazon.de
     SHOPPING_LIST_ID YW16bjEuYWNjb3VudC5BR0VFVkhJNDZISUs2SUFHUkFTR0k0SjJJQkpRLVNIT1BQSU5HX0lURU0=
     TO_DO_LIST_ID YW16bjEuYWNjb3VudC5BR0VFVkhJNDZISUs2SUFHUkFTR0k0SjJJQkpRLVRBU0s=
     TWOFA     
     VERSION    7148111492
     echodevice_refreshvoice 0
     echodevice_refreshvoice_lastdate 1654539974.55276
     CMD_QUEUE:
     getbehavior:
       amzn1.alexa.automation.44870703-98d5-4705-aca1-eefd84b668ac:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.647a034d-d8b9-4dc6-9a4d-129153b41790
           startNode:
             @type      com.amazon.alexa.behaviors.model.SerialNode
             name       
             nodesToExecute:
               HASH(0x5598ea29e5b8)
         triggers:
           HASH(0x5598ea893328)
       amzn1.alexa.automation.49054c1f-6f34-443a-b82d-e0806ecddbe7:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.5aebae61-515d-4f46-bf9e-eee194db157c
           startNode:
             @type      com.amazon.alexa.behaviors.model.SerialNode
             name       
             nodesToExecute:
               HASH(0x5598ea92dd78)
         triggers:
           HASH(0x5598ea3c9838)
       amzn1.alexa.automation.afc038a7-065a-471b-a3cc-8ff209305800:
         status     DISABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.33441ffe-0064-4068-b9ba-5437dea411e0
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name       
             nodeState 
             presentationDataList
             skillId    noop
             tag       
             type       DoNothing
             operationPayload:
               doNothing:
         triggers:
           HASH(0x5598e83d6888)
       amzn1.alexa.automation.f9cd652b-7b6b-4891-9a2d-7c0acac49c3a:
         status     ENABLED
         sequence:
           @type      com.amazon.alexa.behaviors.model.Sequence
           sequenceId amzn1.alexa.sequence.2fbaf3c4-2fea-4394-9dc5-faf65c61063e
           startNode:
             @type      com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode
             clientData
             context   
             name       
             nodeState 
             presentationDataList
             skillId    amzn1.ask.1p.saysomething
             tag       
             type       Alexa.Speak
             operationPayload:
               customerId A1HY2T5VKFL3M5
               deviceSerialNumber G091AA12203402B3
               deviceType A2U21SRK4QGSE1
               locale     de-DE
               textToSpeak Ich bin auf dem Weg nach Hause. Brauche ungefähr eine dreiviertel Stunde
         triggers:
           HASH(0x5598ea3259f0)
     getsettingstraffic:
       between   
       from       XXXXX
       to         
     notifications:
       709405166272000J:
       G070VM1904970GV5:
       G091AA12203402B3:
       G091ET15210502TV:
       _42084cd6982d4fd2b5d89b1298f4d44f:
       _709405166272000J:
       _G070VM1904970GV5:
       _G091AA12203402B3:
       _G091ET15210502TV:
       _account:
Attributes:
   group      Bridges
   icon       mqtt_bridge_2
   room       Alexa,System
   server     layla.amazon.de


Also alles in Allem keine Veränderung.

MadMax-FHEM

#5255
Drum nutze ich "Bare-Metal", anderes Thema.

Soweit ich weiß muss da die IP von fhem rein inkl. u.U. einem freien Port (sofern der Standard-Port belegt ist)...
EDIT: also ins Port-Attribut nat. ;)

Ansonsten weiß ich leider nicht, wie man Pakete usw. in einem Container installiert und ohne sudo noch viel weniger...

Evtl. gibt es in dem Thread oder im Forum was zu finden bzgl. echodevice und Container...
Oder eigenen gezielten Thread aufmachen...

Poste doch mal ein get Status vom Account-Device, vielleicht sieht Michael mehr...

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)

Superposchi

Hatte ich zwar auch schon probiert, aber jetzt noch mal mit eingetragenem Port.
Trotzdem das gleiche Ergebnis.

Lier das Ergebnis von Get Status:
Modul Infos:

Beschreibung    Bereich    Wert
STATE    Reading connected
Version    Reading 0.2.15
NPM Cookie Version    Reading 4.0.1
COOKIE_STATE    Reading OK
COOKIE_TYPE    Reading READING
COOKIE_MODE    Reading NPM
amazon_refreshtoken    Reading wait for refreshtoken
npm_proxy_ip    Attribut 192.168.178.230
room    Attribut Alexa,System
server    Attribut layla.amazon.de
icon    Attribut mqtt_bridge_2
group    Attribut Bridges
npm_proxy_port    Attribut 8083

Amazon Cookie:

Beschreibung    Bereich    Wert
.COOKIE    Reading session-id=260-39746....
COOKIE_STATE    Reading OK
COOKIE_TYPE    Reading READING
amazon_refreshtoken    Reading wait for refreshtoken
.COOKIE    Helper session-id=260-39746....
.COMMSID    Helper amzn1.comms.id.perso....
.CSRF    Helper 8....
.DIRECTID    Helper amzn1.account.AGO22C....
RUNLOGIN    Helper 0
RUNNING_REQUEST    Helper 0
LOGINERROR    Helper 0

binford6000

Hatte hier letztens auch mal was probiert und das echodevice testweise in einen Container gestopft...
Am besten das Image hier: ghcr.io/fhem/fhem/fhem-docker:bullseye. Damit klappt alles out-of-the-box. Du musst dann:

  • npm_proxy_listen_ip mit der IP des Containers setzen... (und nicht npm_proxy_ip)
  • und den Port auf einen freien Port ungleich der von FHEM setzen (3002 im std.,3003,3004,...)
Und dann kannst du mit set <echodevice> NPM_login new ein neues Token generieren
Steht aber auch genauso in der Anleitung von Michael...

Superposchi

Danke für den Hinweis, nutze Bullseye eh schon.
Nur das andere Attribut ist wohl entscheidend.

Habe ich in der Anleitung von mwinkler die ich gelesen habe nirgends gefunden. Im Gegenteil, da gab es mehrere Stellen wo man urplötzlich z. B. Device-Namen las, die vorher nirgendwo Eerwähnung fanden.

Werde es heute Abend mal ausprobieren wenn ich zu Hause bin.

Superposchi

So, hab's zwar gestern noch getestet, aber bin nicht mehr zum Posten gekommen.
Leider bringt auch diese Einstellung keinen Erfolg:

Das NPM Install New liefert:
Login Ergebnis
Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durch


Die Einträge im Log dazu lauten:
[ECHO_G091ET15210502TV] [echodevice_HandleCmdQueue] [media] [116991] [0] send command=https://layla.amazon.de/api/media/state?deviceSerialNumber=SERIAL&deviceType=A2H4LV5GIZ1JFT&screenWidth=1392&_=1654692563 Data=
[ECHO_G091ET15210502TV] [echodevice_Parse] [media] [116991]
[ECHO_G091ET15210502TV] [echodevice_Parse] [media] [116991] DATA Dumper=$VAR1 = '{"clientId":null,"contentId":null,"contentType":null,"currentState":"IDLE","imageURL":null,"isDisliked":false,"isLiked":false,"looping":false,"mediaOwnerCustomerId":null,"muted":false,"programId":null,"progressSeconds":0,"providerId":null,"queue":null,"queueId":null,"queueSize":0,"radioStationId":null,"radioVariety":0,"referenceId":null,"service":null,"shuffling":false,"timeLastShuffled":0,"volume":50}';


Was mich irritiert ist der Bezug auf "Amazon Account Device". In der Anleitung tauchte auch ein Device "Amazon Account" auf, jedoch ohne Angabe woher oder um welches Device es sich dabei handelt.
Ist es der virtuelle Echo?
Muss dieser "Amazon Account" heißen?

Wenn ich den geforderten Installversuch mache kommt folgende Meldung:
Installationsergebnis
Installation wird angestartet up to date, audited 91 packages in 2s 10 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
!!Installation fehlgeschlagen!!


binford6000

ZitatMuss dieser "Amazon Account" heißen?
Nein. Das Account-Device ist das einzige device was du als erstes manuell anlegst:
defmod amazon echodevice xxx@xxx.xx xxx
Dei eigentlichen Echos werden nach erfolgreichem NPM-Login-Prozess dann mit
set amazon autocreate_devices
angelegt.

fh168

Kann es sein das der homescreen Befehl seit letzter Woche nicht mehr geht?

liebe Grüsse Robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Superposchi

#5262
Also ich habe inzwischen 3 verschiedene Anleitungen gesehen und in mindestens zweien davon steht drin (wie auch sonst immer) der Name ist frei bestimmbar. Daher habe ich das Device bei mir lediglich Echo genannt.

Also wie muss das Device genau heißen? "Amazon" oder "Amazon Account"?

P.S. Name geändert, trotzdem die gleichen Fehlermeldungen.

Oder muss das Device zwingend mit dem Namen erstellt werden? Hatte es jetzt nur mit rename umbenannt.

MadMax-FHEM

Der Name ist egal.

Bei mir heißt es echoIODev...

Liegt wohl an dem ganzen Docker-Zeugs...

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)

fz55

Hallo Michael,

es wäre schön, wenn du ein weiteres Gerät aufnehmen würdest:

elsif($ModelNumber eq "A347N36W21919O" || $ModelNumber eq "Yamaha ATS-2090 Soundbar") {return "Yamaha ATS-2090 Soundbar";}

Die ATS-2090 ist baugleich mit YAS-209, die bereits im Modul definiert ist.

Vielen Dank