Amazon Echo Remote Control

Hallo,
Beim Anlagen einer Benachrichtigung über Echo Geräte kommt nach dem Abscpeichern und erneuter Auftraf folgende Meldung

Konnte Formular nicht laden

Warning: Instance #0 does not exist in C:\Windows\System32\- on line 7

Warning: Trying to access array offset on value of type bool in C:\Windows\System32\- on line 7
[{"type":"ValidationTextBox","name":"MESSAGE","caption":"Message","width":"100%","multiline":true},{"type":"List","name":"DEVICES","caption":"Target devices","width":"100%","rowCount":10,"add":true,"delete":true,"columns":[{"name":"InstanceID","caption":"InstanceID","width":"auto","add":0,"edit":{"type":"SelectInstance","validModules":["{496AB8B5-396A-40E4-AF41-32F4C48AC90D}"]}}],"values":[{"InstanceID":41155,"rowColor":"#FFC0C0"}]}]

Das ist eine Fehlermeldung von der Aktion aus dem Echo Remote Modul.
Ich verschiebe es einmal.
Vermutlich hast du als Ziel nichts ausgewählt.
Michael

Es wurde das Ziel ausgewählt ist auch im Fenster del Aplaufplanes, gespeichert ohne Fehler.
Wenn man dann den Anrufmonitor/Benitzerdef Aktion wieder aufruft ist alles weg.

Da oben?
Da muss ein Ziel rein… (eine Echo Remote Instanz)

Hatten wir hier schon, darum frage ich.

Welcher Ablaufplan bitte jetzt? :smiley:

Du musst als Ziel eine EchoRemote Instanz angeben, wenn du eine Ansage auf dem Echo ausführen möchtest.
Demnächst gibt es ein Update, damit die Aktionen des Moduls auch nur noch angezeigt werden, wenn eine EchoRemoteInstanz als Ziel ausgewählt ist.

Hallo @hirschbrat
Ich habe eben das Update gemacht und bekomme beim WS Client folgende Meldung


Alle Instanzen (auch die Splitterinstanz) sind aktiv und auch bei den Echo (die der Lautpsrecher) Instanzen sind in Ordnung.
Habe auch schon mal den Schalter für das „Zertifikate verifzieren“ verändert (aus/ein) und gespeichert. Die Meldung geht nicht weg. Ein Problem?

Eben noch in der Splitterinstanz entdeckt:
image
Wenn ich den Schalter „Websocket vervewenden“ deaktivieren und wieder aktivieren, hatte ich zwei WS Clients. Das ist unschön. Zur Sicherheite habe ich diesen Schlater einmal deaktiviert, alle WS Instanzen gelöscht und dann wieder aktiviert. An obiger Meldung ändert sich allerdings nicht.

Du kannst die Meldung ignorieren bzw. mit ok bestätigen. Sie wird jedes Mal wieder kommen, das macht aber nichts.

Edit: Zu deiner zweiten Frage: Das Verhalten ist so korrekt - wenn auch nicht unbedingt schön. Ich musste es so umsetzen, um beim erneuten aktivieren nicht einen „fremden“ Websocket zu kapern. Es gibt auch nur ganz spezielle Gründe, warum man den Websocket deaktivieren sollte - daher unter Experten-Optionen.

Ok, danke für die rasche Rückmeldung. Die Auswertung von „Letzer Aktion“ funktionert einwandfrei.
Eine Frage hab ich noch. Es gibt die Variable „letztes Gerät“. Wird das noch befüllt? Es wird aktualisiert, aber es ändert nicht den Wert.

Ja, die Variable wird noch befüllt. Hast du mal mit verschiedenen Echos gesprochen?

Hab mal mit allen geredet :smiley:
Passt :+1:

Hab ich was übersehen, oder gibt es die Funktion ECHOIO_GetLastDevice($AmazonEchoIO_ID); nicht mehr? Ich verwende (oder verwendete) diese Funktion um zu erkennen, welcher Echo angesprochen wurde. Ich weiß, es gibt die Variable, aber das ist nicht immer so zuverlässig.
Ist mir jetzt eben passiert. Ich sage im Wohnzimmer „Licht ein“, die in der Küche fühlt sich auch irgendwie angsprochen, aber der Befehl wird vom Echo im Wohnzimmer entgegengenommen (quitiert) . Statt im Wohnzimmer, wirds in der Küche hell.
Das war mit der Funktion nie ein Problem. Mit der Variable schon.

Hm, da musste ich selbst erstmal suchen. Diese Funktion gibt es nicht mehr, stattdessen gibt es ECHOIO_GetLastActivity( $id).

Du erhältst dann ein Array mit folgenden Werten:

Array
(
    [id] => 
    [creationTimestamp] => 
    [utterance] => 
    [deviceType] => 
    [serialNumber] => 
)

Wenn du da den Namen noch dazu machen könntest wäre ich glücklich :wink:
Die funktion gabs bis vor dem Update :smiley:
Wenn das mit dem Namen nicht geht, dann mache ich das über die Seriennummer.
Edit: Ich hab es in der Zwischenzeit umgebaut und frage jetzt die Seriennummern ab. Geht auch. Also passt das so für mich.

Spricht nichts dagegen den Namen wieder mit zu übergeben - ist irgendwo verloren gegangen.

Die Funktion führt übrigens bei jedem Aufruf einen Request an den Server durch, daher wäre es performanter direkt mit den Variablen-Werten zu arbeiten.

Danke.

Das mag sein, geht aber was ich bis jetzt so gesehen habe, durchaus zügig. Natürlich würde die Variable funktionieren, aber es kommt vor, dass das nicht der Echo ist, der den Befehl ausgeführt hat. Die Varable gabs schon länger, auch vor deiner Übernahme. Und auch da gab es schon das Phänomen. Daher habe ich die Funktion verwendet, womit das Problem behoben war.
Ich verwende es zum Beispiel für die aktvier- und deaktivierbare Szene „Fernseher“.
Ich aktiviere die Szene mit „Fernseher ein“ und deaktiviere sie mit „Fernseher aus“. Je nachdem, welcher Echo angesprochen wird, wird der entsprechende Zwischenstecker im Raum ein- oder ausgeschaltet. Ebenso bei der Szene „Licht“.

Seit heute ist die neueste Version auch auf dem STABLE-Kanal verfügbar:

Version 2.3 (2023-08-21)

  • Neu: Websockets
    • Auswertung der letzten Aktivität (Sprachbefehl und Gerät) erfolgt nun sofort per Push - kein Polling mehr notwendig
    • EchoIO-Instanz ist nun ein Splitter (Name und Prefix bleiben aus Kompatibilitätsgründen bestehen)
  • Optimierungen:
    • Optimiertes Handling von mehreren gleichzeitigen/hintereinanderfolgenden Automations-Befehlen (z.B. TextToSpeech, StartAlexaRoutine,…) um das Rate-Limit der API nicht zu überschreiten
    • Optimierung beim Aktualisieren von Routinen und den entsprechenden Variablenprofilen
  • Change: Erfordert min. IP-Symcon 6.1 (wegen Custom Headers Support des Websockets)
  • Fix: Anpassungen für Symcon 7.0 (Php 8.2) zur Vermeidung von type_errors
  • Fix: Dateipfad des Cookies konnte nach Migration von IP-Symcon auf andere Plattform nicht gefunden werden
  • Fix: In der Konfiguration von Ereignissen werden die Aktionen dieses Moduls nur noch angezeigt, wenn als Ziel auch eine Echo Remote Instanz ausgewählt ist
1 „Gefällt mir“

Hi,
mit Device vorsichtig sein und nicht sofort auf Änderungen reagieren. Wenn 2 Echos in hörweite sind meldet sich oft der falsche und dann der richtige. Wenn ich wissen will welcher Echo den Befehl angenommen hat warte ich erst 1 Sekunde und dann ist der Wert bisher stabil und ich kann reagieren jenach Echo und so gezielt Befehle in Räumen starten.

Ralf

@HarmonyFan
Mache ich genau so. Nur keine ganze, sondern nur eine halbe Sekunde. Eben aus den von dir genannten Gründen.

Hi,
eine Sekunde hat einen kleinen Vorteil denn dann sieht man auch Text den man vielleicht zusammen mit dem Befehl gesagt hat wie „Alexa, schalte Fernseher aus Du Ziege“ :smiling_imp:

Ralf

:scream: I’m shocked …
Wie sprichst du mit der netten Dame :wink:
Der Text ist mir wurscht. Mir ist nur wichtig, wer den letzen Befehl quittiert hat.