Amazon Echo Remote Control

Ich habe in die aktuelle Version auf dem BETA-Kanal einen Fix dafür eingebaut. Teste das mal.

Ha, ich hab den Fehler gefunden :wink:
Ich wars :smiley:
Ich hab damals das Cookie geholt (noch vor deinem „neuen“ Modul) und es schreibgeschützt, damit es nicht überschrieben wird. Daher hat auch das Abmelden nicht funktioniert. Da hab ich sofort die Meldung „Permission denied“ bekommen.
Den Schreibschutz rausgenommen und alles ist gut.
Kein Fehler mehr auch mit der aktuellen Stable.
Trotzdem Danke fürs nachdenken. Sorry für die Umstände.

Danke für die Rückmeldung! Fix lasse ich dennoch drin, da das Problem ggf. ähnlich dennoch auch bei anderen auftreten könnte.

Es gibt nun eine neue Version auf dem Stable Kanal mit ein paar kleinen Fixes:

Version 2.2.1 (2023-06-23)

  • Fix: TextToSpeech an ALL_DEVICES spielt Ansagen nur noch auf Geräte vom Typ ECHO, KNIGHT und ROOK

  • Fix: Lautstärke bei Lautsprecher-Paaren wird nicht mehr auf Null gesetzt

  • Fix: Nutze LogMessage bei allen Fehlern (behebt Problem beim Erstellen von Instanzen bei fehlerhafter Internetverbindung)

  • Fix: CookieRefreshTimer wird maximal auf zwei Wochen gesetzt

  • Fix: CopyTuneInStationsToFavorites nutzt nun UpdateFormField

Hallo zusammen,

Gibt es irgend eine Möglichkeit einen Artikel auf die Einkaufsliste zu setzen?

Viele Grüße
Stephan

Es gibt im Modul keinen Befehl dafür. Du kannst als Workaround aber TextCommand benutzen, z.B.:

ECHOREMOTE_TextCommand( $instanceID, "Setze Milch auf die Einkaufsliste");

super, genau an diese Alternative hatte ich auch schon gedacht aber nichts in der Doku gefunden.
Perfekt!

Viele Grüße
Stephan

Auf dem BETA-Kanal gibt es eine neue Version

Version 2.3 BETA (2023-06-27)

  • Neu: Verwendet Websockets zur Auswertung der letzten Aktivität (Sprachbefehl und Gerät) - kein Polling mehr notwendig
  • Fix: Dateipfad des Cookies konnte nach Migration von IP-Symcon auf andere Plattform nicht gefunden werden
  • Change: Erfordert min. IP-Symcon 6.1 (wegen Custom Headers Support des Websockets)

Das Echo Remote Modul ist übrigens seit der Version 2.2 kompatibel mit der neuen Visualisierung von Symcon 7.0

Um den vollen Funktionsumfang zu erhalten, müssen folgende Variablen aktiviert werden:

  • Variablen für Mediaplayer-Steuerung
  • Variablen für erweiterte Informationen
  • Variable für Mute
  • Variable für Favoriten (diese werden in der erweiterten Ansicht als Playlist angezeigt)

2 „Gefällt mir“

Moin,

d.h. kein X Sekunden Timer in der IO-Instanz mehr und letzte Aktivität kommt trotzdem zeitnah an? Ich hatte den Timer immer auf 0 um das Netz nicht mit überflüssigen Abfragen zu stressen.

Ralf

Ja genau. Der 2-Sekunden Timer entfällt, daher keine unnötigen Anfragen mehr, die das Netz und Server belasten. Per Websocket erhält das Modul eine Push-Nachricht bei einer neuen Aktivität, sodass diese direkt in Symcon angezeigt wird.

Bekomme nach Update folgende Meldung!

image

Was mach ich falsch?

Da war noch ein Fehler drin. Ich habe gerade eine neue Version im BETA-Kanal eingestellt. Mach mal ein Update, dann sollte der Fehler nicht mehr auftauchen.

1 „Gefällt mir“

Perfekt, läuft!

Danke!

Hi,
es kann vorkommen das $deviceInfo false ist und dann kann es im Modul von Echo Device in Zeile 2410 ein Problem (IPS 7) mit json_decode geben. Ich habe jetzt mal

if ($deviceInfo !== false) json_decode($deviceInfo, true);

eingetragen und werde es beobachten. Besser wäre vielleicht is_string zu benutzen.

Ralf

Gab es denn eine Fehlermeldung bei dir? Meinem Verständnis nach sollte es egal sein, da json_decode NULL zurück gibt, wenn der String nicht decodiert werden konnte (auch schon vor PHP8.2 bzw. IPS 7)

Deine eingefügte Zeile sollte auch nichts ändern, da der Rückgabewert von json_decode in deiner Änderung nicht verwendet wird (du verwendest hier kein return oder speicherst den Wert in eine Variable).

Hi,
jupp gibt Fehlermeldung:

28.06.2023 09:56:57 | 51464 | ERROR   | InstanceManager      | Kann Schnittstellen-Instanz nicht erstellen: 
Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, bool given in /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo Device/module.php:2410
Stack trace:
#0 /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo Device/module.php(2410): json_decode(false, true)
#1 /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo Device/module.php(2095): EchoRemote->GetDeviceInfo()
#2 /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo Device/module.php(142): EchoRemote->RegisterVariables()
#3 /-(3): EchoRemote->ApplyChanges()
#4 {main}
  thrown in /var/lib/symcon/modules/.store/fonzo.ipsymconechoremote/Echo Device/module.php on line 2410

Ok, Danke! Dann liegt das an strict_types.
In IPS 7.0 werden ähnliche Fehler vermutlich auch an anderen Stellen noch vorkommen - da müsste ich mal systematisch das ganze Modul durchgehen.

Ja besonders bei Stringoperationen sind einige Sachen nicht mehr so erlaubt. str_replace mit NULL oder Integer geht z.B. auch nicht mehr ohne Mecker.

Ralf

In der aktuellen BETA von heute habe ich ein paar potentielle type errors in Verbindung mit IPS 7.0 behoben.