Amazon Echo Remote Control

TuneIn funktioniert derzeit nicht, sowohl auf der alexa.amazon.de Seite als auch mit dem Modul.
@UweR hatte oben einen Hinweis gepostet wo es gefixt wurde. Anscheinend wurde der API Call geändert und müsste nachgezogen werden.

Gruß Heiko

Hallo Ralf,

nein diese Anleitung habe ich gar nicht gehabt, sondern bin nach der Anleitung (Doku) aus dem Modul gegangen. Dann werde ich dieses mal probieren.

Hi,
in den ersten Versionen wurde nur Cookie unterstützt und das musste alle X-Wochen erneuert werden. 2FA hält eigentlich ewig wenn man es zulässt.

Ralf

Hallo,

ich bekomme seit Einbindung regelmäßig folgende Fehlermeldung. Ich hatte anfänglich gedacht, das die Kinder der „Alexa“ einen falschen Sprachbefehl erteilen, aber aufgrund der letzten Meldungen (Zeitstempel) kann ich das ausschließen. Hat jemand eine Idee wie ich das beheben kann.

IPS-Err-PHP 2021-10-14 00:09:38.914 Notice: Trying to access array offset on value of type bool Error in Script /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php on Line 919 137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out) 44 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err) 919 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call IPSLogger_PhpErrorHandler) 881 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call GetDevices) 1073 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call GetDeviceList) 3051 in __generated.inc.php (call GetLastDevice) 1 in /- (call ECHOIO_GetLastDevice) IPS-Err-PHP 2021-10-14 00:09:38.917 Notice: Trying to access array offset on value of type bool Error in Script /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php on Line 882 137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out) 44 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err) 882 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call IPSLogger_PhpErrorHandler) 1073 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call GetDeviceList) 3051 in __generated.inc.php (call GetLastDevice) 1 in /- (call ECHOIO_GetLastDevice)

Ist das nur bei mir so oder generell, das die Lautstärke nicht bidirektional synchronisiert wird?
Stelle ich per Sprache den Echo lauter, dann bleibt die Volume-Variable stehen und wird nicht aktualisiert.

Eigentlich wollte ich mitunter die letzte eingestellte Lautstärke in eine Variable schreiben, dann unter Umständen lautere Ansage machen, dann wieder die vorherige Lautstäke in die Volume Variable zurückführen.

Leider fuktioniert das nicht, da der Wert der Variablen ja nicht dem tatsächlichen Wert entspricht, wenn diese nicht synchron gehalten werden :frowning:

Kann einer der Supporter nicht den Fix von Uwe mal ausprobieren?

Ich würde es selber machen, wenn ich es könnte. Meine Frau heult mir quasi jeden Tag die Ohren voll, weil es mit TuneIN nicht mehr funktioniert :smiley:

Wäre auf jedenfall sehr nice, wenn es wieder funktionieren würden, ich denke ich spreche da für viele :wink:

ich müsste mich damit beschäftigen aber wenn es eine Lösung gibt…

Mein Workaround wenn ihr einen festen Sender hört.

  • Legt eine Routine an und die startet ihr über Remote.
    Funktioniert bei mir bestens.

Juhu, habe gerade den Durchbruch erziehlt … TuneIn geht bei mir :loveips:

Habe @Fonzo schon angeschrieben, aber noch keine Rückmeldung bekommen.

Kann gern (die Tage) eine Anleitung posten was man alles wo ändern muss. Ob die Änderungen Nebenwirkungen haben auf andere Funktionalitäten kann ich nicht 100% sagen, nutze sonst viel zu wenig davon :slight_smile:

Gruß Heiko

Hi,
Fonzo war seit ca. 4 Monaten hier nicht mehr aktiv. Kennt ihn jemand persönlich und könnte mal nachhaken? In der jetzigen Zeit ist ja leider alles möglich.

Ralf

Hallo an Alle,

Ich führe ein Script aus um ein bestimmten Song aus einer Playlist abzuspielen.
Allerdings wird immer der erste Titel der Playlist abgespielt.
Die Daten habe ich mir vorher mit ECHOREMOTE_GetQueueInformation geholt.

Das habe ich jetzt erst gemerkt. Seit wann es nicht mehr geht weiß ich nicht.

ECHOREMOTE_JumpToMediaId(33414,„b128a1f2-4c62-4f59-b4fb-7ff5d609967b:8“);

Bitte schreib eine Anleitung für uns. Das wäre super klasse. Kann ja jeder für sich ausprobieren. Meine Frau geht mir schon tierisch auf die Schnürsenkel weil es nicht mehr funzt. Gewohnheitstier und so :wink:

Dachte schon ich komm drum rum - nach dem doch sehr verhaltenen Reaktionen!!

Aber gut, Anleitung kommt jetzt gleich :wink:

Also, damit TuneIn wieder funktioniert muss man das Modul an paar Stellen patchen.

Basis des Patches ist die Beta Version aus dem Store!!!

Zu finden ist das Modul im Store-Unterverzeichnis von IPS => modules/.store/ fonzo.ipsymconechoremote.

HINWEIS: Da ich IPS auf einem RasbPi laufen zu haben => Erklärung via Linux (für Windows adaptieren)

Fangen wir mit dem Echo Device an:

  1. Wechseln in das Verzeichnis „Echo Device“ => cd Echo\ Device/
  2. Die Datei module.php mit Editor öffnen => sudo nano module.php
  3. in der Funktion public function TuneIn(string $guideId): bool folgendes ändern …
        $postfields = [
            'contentType'          => 'station',
            'guideId'              => $guideId,
            'mediaOwnerCustomerId' => $this->GetCustomerID()];

in

        $postfields = [
              'contentToken'          => 'music:' . base64_encode(base64_encode('["music/tuneIn/stationId","' . $guideId .'"]|{"previousPageId":"TuneIn_SEARCH"}'))];
//            'contentType'          => 'station',
//            'guideId'              => $guideId,
//            'mediaOwnerCustomerId' => $this->GetCustomerID()];

Also die original Fields auskommentieren oder löschen und den neuen ‚contentToken‘ aufnehmen.

  1. Speichern nicht vergessen :slight_smile:
  2. Wieder ein Verzeichnis hoch => cd ..

Jetzt geht’s an das Echo IO:

  1. Wechseln in das Verzeichnis „Echo IO“ => cd Echo\ IO/
  2. Die Datei module.php mit Editor öffnen => sudo nano module.php
  3. in der Funktion private function GetHeader(): array folgendes ändern …
        $header = [
            'User-Agent: ' . $this->ReadPropertyString('browser'),
            'Accept-Encoding: gzip, deflate, br',
            'Accept-Language:  de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
            'Accept: application/json, text/javascript, */*; q=0.01',
            'Referer: http://alexa.' . $this->GetAmazonURL() . '/spa/index.html',
            'Connection: keep-alive'];
        //'Content-Type: application/x-www-form-urlencoded; charset=UTF-8']; //todo: experimentell auskommentiert, damit Capabilities abgefragt werden können

in

        $header = [
            'User-Agent: ' . $this->ReadPropertyString('browser'),
            'Accept-Encoding: gzip, deflate, br',
            'Accept-Language:  de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
            'Accept: application/json, text/javascript, */*; q=0.01',
            'Referer: http://alexa.' . $this->GetAmazonURL() . '/spa/index.html',
            'Connection: keep-alive',
            'Content-Type: application/json; charset=UTF-8'];
            // 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8']; //todo: experimentell auskommentiert, damit Capabilities abgefragt werden können

Also die Zeile mit dem ‚Content-Type‘ kommt dazu!

  1. In der Funktion private function TuneinQueueandplay(array $getfields, array $postfields) folgendes ändern …
    private function TuneinQueueandplay(array $getfields, array $postfields)
    {
        $url = 'https://' . $this->GetAlexaURL() . '/api/tunein/queue-and-play?' . http_build_query($getfields);

        $header = $this->GetHeader();

        return $this->SendEcho($url, $header, $postfields);
    }

in

    private function TuneinQueueandplay(array $getfields, array $postfields)
    {
        //HW $url = 'https://' . $this->GetAlexaURL() . '/api/tunein/queue-and-play?' . http_build_query($getfields);
        $url = 'https://' . $this->GetAlexaURL() . '/api/entertainment/v1/player/queue?' . http_build_query($getfields);

        $header = $this->GetHeader();

        return $this->SendEcho($url, $header, $postfields, null, 'PUT');
    }

Also die URL und der SendEcho Aufruf ändert sich hier.

  1. Speichern nicht vergessen :slight_smile:

Das war’s auch schon! Sollte eigentlich ohne Restart usw. gehen, aber ich weiß es nicht mehr genau :slight_smile:

VielErfolg
Heiko

1 „Gefällt mir“

Hi Pitti,

Dankeschön. Hast Du auch noch eine Lösung für mein Problem ? …siehe 3 Posts weiter oben.

Leider nein - mit Playlists habe ich noch nix gemacht! Sorry!

Perfekt @pitti . Funktioniert bei mir auch. Auch mit der Stable Version.

1 „Gefällt mir“

Super, hat hier auch geklappt. Danke. :+1:

Gruß Horst

1 „Gefällt mir“

Hallo zusammen, ich hatte oben ( Beitrag 1283) mein Problem beschrieben, bin ich damit alleine? Hat keiner eine Idee was da schief läuft?

Danke!! Hat super funktioniert - gut und nachvollziehbar beschrieben.

1 „Gefällt mir“

`Hallo zusammen,

Ich brauche dringend Hilfe, seit gestern bekomme ich im 5-Minuten- Takt diese Meldungen. An IPS habe ich nichts geändert, da ich gar nicht zu Hause war.


IPS-Err-PHP  2021-11-13 13:55:44.799  Notice: Trying to access array offset on value of type bool
  Error in Script /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php on Line 919
 137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
  44 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
 919 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call IPSLogger_PhpErrorHandler)
 881 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call GetDevices)
 1073 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call GetDeviceList)
 3555 in __generated.inc.php (call GetLastDevice)
   1 in /- (call ECHOIO_GetLastDevice)


IPS-Err-PHP  2021-11-13 13:55:44.812  Notice: Trying to access array offset on value of type bool
  Error in Script /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php on Line 882
 137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
  44 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
 882 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call IPSLogger_PhpErrorHandler)
 1073 in modules/.store/fonzo.ipsymconechoremote/Echo IO/module.php (call GetDeviceList)
 3555 in __generated.inc.php (call GetLastDevice)