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:
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.
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.
Wenn du da den Namen noch dazu machen könntest wäre ich glücklich
Die funktion gabs bis vor dem Update
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.
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
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.
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“
Ich denke, dass ich an Hand der Server-Antwort im Modul entscheiden könnte, ob ein Echo auch tatsächlich den Befehl ausgeführt (habe das mal nachgestellt und ein entsprechendes Flag gefunden, wenn an einen anderen Echo weitergegeben wurde). Dann würde ich die Variablen nur aktualisieren, wenn auch tatsächlich der Befehl ausgeführt wurde - muss ich aber nochmal genauer evaluieren.
Das was man bei dir sieht könnte aber auch einen anderen Grund habe: Eigentlich sollte der Sprachbefehl auch jedesmal gleich lauten, bei dir ist er aber einmal leer. Das kann passieren, wenn du aus dem Modul heraus eine Aktion startest (wie TextToSpeech oder TextCommmand und ggf. auch bei anderen dingen)
Das kommt daher, weil die Szene bzw. das hinterlegte Skript eine Audioausgabe auf den, in meinem Fall (Wohnzimmer) richtigen Echo macht. Sie sagt mir, dass jetzt noch nicht die Zeit zum Fernsehen ist
Daher ist die „Letzte Aktion“ leer.
Ich habe zu dieser Thematik mal eine neue Version auf dem BETA-Kanal reingestellt. Gebt mir mal Rückmeldung, ob das Problem mit der wechselnden LastDevice-Anzeige behoben ist.
Version 2.3.1 (BETA)
Fix: GetLastDevice liefert wieder deviceName zurück
Fix: Wenn mehrere Echo-Geräte einen Sprachbefehl erkannt habe, werden nur die Variablen LastDevice und LastAction des Gerätes aktualisiert, dass die Aktion auch tatsächlich ausgeführt hat
Change: Variable LastDevice ist nun vom Typ String: Variablen-Wert:DeviceSerial, Profil-Wert:Gerätename
Scheint auch zu funktionieren. Jedenfalls sehe ich die Aktualisierung erst dann, wenn der Befehl quittiert wurde.
Ich hab mein Skript zur Findung des letzten Echos der einen Befehl ausgeführt hat, mal auf die Variablen umgebaut. Mal schauen wie es läuft. Die Option mit der Funktion habe ich ja noch immer.