Amazon Echo Modul (nicht Alexa) - 37_amazonecho (deprecated)

Begonnen von Markus M., 03 Oktober 2017, 14:17:31

Vorheriges Thema - Nächstes Thema

JoWiemann

Zitat von: adn77 am 19 Oktober 2017, 22:46:01
Ich habe den Login Prozess automatisiert, allerdings als Shell Script, welches ich durch FHEM aufrufen lasse: http://blog.loetzimmer.de/2017/10/amazon-alexa-hort-auf-die-shell-echo.html

Ich denke übrigens nicht, dass das Cookie 20 Jahre gültig ist, schließlich wird Amazon auf ihren Servern gelegentlich alte Sessions aufräumen...

Hallo,

wie hast Du jq installiert. Im Standard Repository von Debian ist es nicht enthalten.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

adn77


adn77

Zitat von: Markus M. am 20 Oktober 2017, 10:27:44
Cool, wie hast du das mit dem Javascript gelöst das für den automatischen Login benötigt wird? Habs mir nicht genauer angesehen da ich noch keinen Bedarf habe.

Cookie musste ich bisher noch nicht erneuern. Wir halten die Session ja auch mit FHEM aktiv.

Ich benutze pures HTTP/HTML mit cURL. Hatte im Browser Javascript deaktiviert, um das Login zu debuggen.

Wenn du as Sicherheitsgründen das Login nicht einbauen möchtest, so kann man das Script zumindest dazu benutzen, um das Cookie und den CSRF auszulesen.

JoWiemann

Zitat von: adn77 am 20 Oktober 2017, 20:47:16
https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=jq

Zeigt bei mir Pakete für Jessie/Stretch und sogar noch Wheezy

Danke für die Info. Die Lösung ist ein Eintrag in der sources.list: deb http://http.debian.net/debian wheezy-backports main

Allerdings bekomme ich nun das Problem der zwei Faktor Authentifizierung. Hast Du da auch eine Lösung für?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

KölnSolar

Hi Markus,

vermutlich weil mein Cookie abgelaufen war, hatte ich 36.000 lines pro h im Logfile. Fing mit
017.10.20 10:11:22 1: echo: json evaluation error
$VAR1 = "


<!doctype html><html class=\"a-no-js a-touch a-mobile\" data-19ax5a9jf=\"mongoose\">
  <head>
<script type='text/javascript'>var ue_t0=ue_t0||+new Date();</script>
<script type='text/javascript'>
var ue_csm = window,
    ue_hob = +new Date();
(function(d){var e=d.ue=d.ue||{},f=Date.now||function(){return+new Date};e.d=function(b){return f()-(b?0:d.ue_t0)};e.stub=function(b,a){if(!b[a]){var c=[];b[a]=function(){c.push([c.slice.call(arguments),e.d(),d.ue_id])};b[a].replay=function(b){for(var a;a=c.shift();)b(a[0],a[1],a[2])};b[a].isStub=1}};e.exec=function(b,a){return function(){if(1==window.ueinit)try{return b.apply(this,arguments)}catch(c){ueLogError(c,{attribution:a||\"undefined\",logLevel:\"WARN\"})}}}})(ue_csm);


    var ue_err_chan = 'jserr-rw';
(function(d,e){function h(f,b){if(!(a.ec>a.mxe)&&f){a.ter.push(f);b=b||{};var c=f.logLevel||b.logLevel;c&&c!==k&&c!==m&&c!==n&&c!==p||a.ec++;c&&c!=k||a.ecf++;b.pageURL=\"\"+(e.location?e.location.href:\"\");b.logLevel=c;b.attribution=f.attribution||b.attribution;a.erl.push({ex:f,info:b})}}function l(a,b,c,e,g){d.ueLogError({m:a,f:b,l:c,c:\"\"+e,err:g,fromOnError:1,args:arguments},g?{attribution:g.attribution,logLevel:g.logLevel}:void 0);return!1}var k=\"FATAL\",m=\"ERROR\",n=\"WARN\",p=\"DOWNGRADED\",a={ec:0,ecf:0,
pec:0,ts:0,erl:[],ter:[],mxe:50,startTimer:function(){a.ts++;setInterval(function(){d.ue&&a.pec<a.ec&&d.uex(\"at\");a.pec=a.ec},1E4)}};l.skipTrace=1;h.skipTrace=1;h.isStub=1;d.ueLogError=h;d.ue_err=a;e.onerror=l})(ue_csm,window);
an.
Lässt sich das vermeiden ? (abgesehen durch ein gültiges Cookie  ;D)

Falls Du das Log brauchst: Noch habe ich alle 400.000 lines verwahrt.
Grüe Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

adn77

Zitat von: JoWiemann am 20 Oktober 2017, 21:04:24
Allerdings bekomme ich nun das Problem der zwei Faktor Authentifizierung. Hast Du da auch eine Lösung für?

Zweiter Amazon Account mit Familienfreigabe OHNE 2-Faktor Authentifizierung und ggfs. ohne Zahlungsdaten....

Ansonsten widerspricht sich Automatisierung und 2-Faktor.

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

adn77

Zitat von: KölnSolar am 20 Oktober 2017, 21:12:00
vermutlich weil mein Cookie abgelaufen war, hatte ich 36.000 lines pro h im Logfile.
Lässt sich das vermeiden ? (abgesehen durch ein gültiges Cookie  ;D)
Ich teste per RegEx die URL https://layla.amazon.de/api/bootstrap auf "authenticated".
s/^.*"authenticated":([^,]+),.*$/\1/g
Bei mir kommt der JSON Parser erst zum Einsatz, wenn ich weiß, dass das Cookie gültig ist.

Markus M.

#143
Zitat von: adn77 am 20 Oktober 2017, 20:50:18
Ich benutze pures HTTP/HTML mit cURL. Hatte im Browser Javascript deaktiviert, um das Login zu debuggen.
Wenn du as Sicherheitsgründen das Login nicht einbauen möchtest, so kann man das Script zumindest dazu benutzen, um das Cookie und den CSRF auszulesen.

Also ich kann mich ohne JS überhaupt nicht einloggen. Faszinierend.
Ich werde demnächst mal versuchen das einzubauen.


Zitat von: KölnSolar am 20 Oktober 2017, 21:12:00
vermutlich weil mein Cookie abgelaufen war, hatte ich 36.000 lines pro h im Logfile.
Mit welchem Intervall arbeitest du?!
(Und was passiert mit der neuen Version?)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Nils

#144
Danke für die neue Version. Das Problem mit dem überquellenden Log hatte ich seit gestern auch. Nach einem Update auf die Version vom 20.10. wird nur noch eine invalid cookie Meldung geschrieben aber den kann ich ja jetzt in aller Ruhe aktualisieren. Ich habe insgesamt drei Echos. Warum der im Badezimmer die Meldung viel öfter bringt als die anderen habe ich noch nicht herausgefunden aber erst einmal das attr interval auf 300 gesetzt (war vorher nicht gesetzt).

Mit der vorherigen Version hatte ich zudem auch das Problem das trotz disable = 1 das Log weiter zugemüllt wurde  :-\.

2017.10.21 09:14:40 2: sz_echo: Invalid cookie
2017.10.21 09:14:40 2: bz_echo: Invalid cookie
2017.10.21 09:14:40 2: wz_echodot: Invalid cookie
2017.10.21 09:14:40 2: bz_echo: Invalid cookie
2017.10.21 09:14:40 2: bz_echo: Invalid cookie
2017.10.21 09:14:40 2: bz_echo: Invalid cookie
2017.10.21 09:14:40 2: bz_echo: Invalid cookie
2017.10.21 09:14:40 2: bz_echo: Invalid cookie


Bin gerne bereit mich beim testen einzubringen.
Viele Grüße
Nils

Markus M.

Nach dieser kurzen Liste hört es jetzt auf?
Dass mehrere Meldungen kommen ist normal, es werden mehrere Anfragen auf einmal gestartet.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Nils

Ja, nach der Liste hört es auf. Ich hatte die neue Version installiert und dann ein shutdown restart gemacht (9:14 Uhr). Dann wurden die acht Logeinträge geschrieben und seitdem, zumindest bis jetzt (11:20 Uhr), kein neuer Eintrag mehr.

LuBeDa

Ich hätte mal einen Featurerequest :-)

Wenn das Ergebnis von get ... tracks als Internal abgespeichert würde könnte man daraus eine Dropdownliste erstellen. Mit der Dropdown könnte man dann per *_DetailFn, Weblink oder FTUI dann die Tracks starten. Soetwas ähnliches für die Playlists wäre auch cool. Dafür müste man aber wahrscheinlich die ASINs und Playlistnamen als Attribut pflegen.

<select name="Tracks">
  <option value="2a08a29a-244a-4fb4-a960-a61205b70c6a ">Atemlos durch die Nacht</option>
  <option value=".....">....</option>
</select>

KölnSolar

ZitatMit welchem Intervall arbeitest du?!
default
Zitat(Und was passiert mit der neuen Version?)
gerade eingespielt  ;D
ich hatte
$Id: 37_amazonecho.pm 13588 2017-10-16[code]
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

ThoTo

Die ersten Tests mit zwei Echos waren vielversprechend - gute Arbeit!  :) :)

Was hältst du von einem Dropdown mit TuneIn Favoriten, festzulegen über Attribute?
1:TUNEINID:Sendername,2:TUNEINID:Sendername

Wäre auch für Prime Music Sender interessant.
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)