NEWS
Alexa2 - Welcher Echo ist Absender ?
-
Hab grad in Github Logs hochgeladen.
Mal abwarten was dabei raus kommt.
Grüsse
Ingo
-
Checke ich morgen. Aber es kann auch Tanzbar der Art des blockly Skriptes liegen!! Der Adapter aktualisiert mehrere States. Da gibt es keine Garantie wie weit die zeitlich auseinander exakt aktualisiert werden!
Dann triggert dein Skript auf einen der States und geht davon aus das die neuen werte der anderen States auch schon „angekommen“ sind. Das kann ganz einfach such schief gehen und das Skript läuft mit teilweise alten Daten!!
Aus dem Grund habe ich ein State mit einem json Objekt drin gemacht weil wenn der aktualisiert wird ist da sichergestellt das alle diese Werte zusammen aktuell sind in dem json!
Kurz: ja ich checke, denke aber (da 1.1.3 nur am Cookie Handlung es geändert hat) das Amazon schuld ist oder es ein „timing Problem“ in deinem Skript ist!
Gesendet vom Handy …
-
Danke für die Info.
Etwas Ähnliches hab ich mir auch schon gedacht.
Mich hatte erst stutzig gemacht dass der Sprachbefehl am Echo-Schlafzimmer die History nicht aktualisierte, auch nach einiger Zeit stand da noch Echo-Wohnzimmer drin. Dann ist mir aber aufgefallen dass sofort eine Ausgabe auf den Echo folgt der in EchoDeviceName steht und wenn das noch der Alte ist bekommt der die Ausgabe und ist ja wieder aktuell.
Ich versuche mal ne Verzögerung einzubauen.
Grüsse
Ingo
-
Nee, bringt nix.
Habe jetzt mal ganz unabhängig von diesen Scripts am Echo-Schlafzimmer die Nachttischlampe eingeschaltet.
History wurde überhaupt nicht aktualisiert und es standen noch die alten Daten drin.
Werde erstmal ne Nacht drüber schlafen.
Grüsse
Ingo
-
Ich habe auch die 1.1.3 Version aktiv und gerade mal ausprobiert. Funktioniert problemlos mit dem History.
Gesendet von iPhone mit Tapatalk
-
Bei mir funktionierte die History bis gestern auch problemlos, auch mit meinen Scripten. Und das schon fast von Beginn an.
Wenn ich jetzt einen ECHO anspreche steht manchmal nicht mal was drinn in der History/summary
Es flackert kurz auf, aber dann ist kein verstandener Satz drinn, aber amEcho Spot Display steht der richtige Befehl drann…
Aber erst seit gestern Abend.
Edit: Gerade meinen Fernseher mit Alexa an/aus geschaltet und funktioniert wieder.
Scheint wohl doch an Amazon zu liegen...
-
seit wann gibt es diesen Aufmerksamkeitsmodus ? (war/ist aber aus bei mir…vielleicht fummeln die daran rum ?)
Ich wollte nur mal schauen ob es unterschiedliche Firmware auf den Geräten ist, aber die ist gleich, dann habe ich diesen Aufmerksamkeitsmodus gesehen, kannte ich noch nicht.
<link_text text="https://uploads.tapatalk-cdn.com/201811 ... 5a6532.jpg">https://uploads.tapatalk-cdn.com/20181122/02942682f4997764a7969938ed5a6532.jpg</link_text>" /><link_text text="https://uploads.tapatalk-cdn.com/201811 ... b2687f.jpg">https://uploads.tapatalk-cdn.com/20181122/a603e68d890494e58cb122d6e2b2687f.jpg</link_text>" />~~~~ -
Den auf Aufmerksamkeitsmodus gibt es schon paar Tage. Der ist bei mir aktiv.
Es ist echt entspannter nicht jedes Mal Alexa zu sagen wenn man mehre verschiedene Aktionen ausführt
Gesendet von iPhone mit Tapatalk
-
Den auf Aufmerksamkeitsmodus gibt es schon paar Tage. Der ist bei mir aktiv.
Es ist echt entspannter nicht jedes Mal Alexa zu sagen wenn man mehre verschiedene Aktionen ausführt
Gesendet von iPhone mit Tapatalk ` also geht der auch in deutsch ? (steht ja da, das es nur in englisch geht)
-
Ja geht auch auf deutsch.
Gesendet von iPhone mit Tapatalk
-
Ich hatte den Aufmerksamkeitsmodus getestet und wieder abgeschaltet.
Bringt mir keinen Mehrwert weil ich sowieso Hauptsächlich mit Szenen und Gruppen arbeite also "Fernseher an" schaltet TV, Amp, LED-Leiste usw.
Grundsätzlich finde ich die Idee aber ganz gut, sollte aber erweitert werden so dass man auch "und" benutzen kann.
Grüsse
Ingo
-
Das Speak hab ich jetzt nur zum testen eingebaut.
Das funktioniert auch, wenn ich jetzt hier im Wohnzimmer Alexa anspreche kommt auch das Speak. Gehe ich dann ins Schlafzimmer wird auf dem Spot-Bildschirm quittiert aber die Sprachausgabe kommt aus dem Wohnzimmer.
Genauso beim Umschalt-Skript. Bestätigung kommt visuell auf dem Spot Bildschirm aber umgeschaltet wird im Wohnzimmer und "Echo Device Name" bleibt auf Echo-Wohnzimmer stehen.
Irgendwo ist da der Wurm drin. `
Habe das gleiche Problem. Glaube aber zu wissen, warum das so ist:
Sobald ein Speak-Kommando an die Alexa geschickt wird, ist diese Alexa auch wieder die zuletzt verwendete.
Es ist also nicht das Device, das das letzte Sprachkommando von außen erhalten hatte, sondern, das die letzte Anweisung erhalten hat.
Wenn ich also ein Speak unterlasse, stimmt die History.
Nur: Ich wollte tatsächlich das kommando ausgeben
-
An sich korrekt. Ein speak Ist nichts anderes wie „Alexa, Sprich mir nach: bla blubb“ das müsstest du ignorieren.
Oder du schaust bei History nur auf die wake wird Kommandos und merkst Dir so wer zuletzt angesprochen wurde in einer Variable und nutzt das dann weiter.
Gesendet vom Handy …
-
Da bin ich auch grad am verzweifelt (Anruferliste nur auf dem Gerät bei dem gefragt wurde).
Letztlich hab ich es nur mit einem setTimeout hinbekommen. Vlt. fällt jemandem noch was Besseres ein.
... on({ id: 'javascript.0.Alexa-trigger.vAnruferliste', change: "any" }, function(obj) { ... setTimeout(function () { setState("alexa2.0.Echo-Devices." + getState('alexa2.0.History.serialNumber').val + ".Commands.speak", volume +";"+alexatext); },3000); });
Ich hab den mal auf 3sec zum Test gesetzt, da scheint das zuverlässig zu gehen. Muss mal testen, wie weit ich da runtergehen kann.
-
Da bin ich auch grad am verzweifelt (Anruferliste nur auf dem Gerät bei dem gefragt wurde).
Letztlich hab ich es nur mit einem setTimeout hinbekommen. Vlt. fällt jemandem noch was Besseres ein.
... on({ id: 'javascript.0.Alexa-trigger.vAnruferliste', change: "any" }, function(obj) { ... setTimeout(function () { setState("alexa2.0.Echo-Devices." + getState('alexa2.0.History.serialNumber').val + ".Commands.speak", volume +";"+alexatext); },3000); });
Ich hab den mal auf 3sec zum Test gesetzt, da scheint das zuverlässig zu gehen. Muss mal testen, wie weit ich da runtergehen kann. ` zwischen 500 und 650 ms sollte reichen
-
Danke,
so rein optisch sieht das ja wirklich fix aus. Die states sind längst aktualisiert, bevor der speak kommt, so dass man denkt, das kann gar nicht sein.
Macht man aber unmittelbar vor dem speak eine log Ausgabe, sieht man ganz klar, dass der speak vor dem getState kommt.
Wenn es stabil läuft, kann ich mit dem setTimeout gut leben.
-
Nach wie vor habe ich Probleme, mein Sprachkommando und die Alexa-Historie zu synchronisieren.
Ich triggere das Kommando über den Wemo-Node.
Aber die Historie werte ich mit Alexa2 aus, weil der Wemo Node das letzte Device nicht weiter gibt. (obwohl als experimantell angegeben).
Damit ergeben sich zwangsläufig Laufzeitprobleme.
Also Wemo trigegrt das Kommando und legt schon los, während Alexa2 erst danach mitbekommt, dass etwas passiert ist.
ein möglicher Workaround könnte sein, einfach nach dem Lommando etwas zu warten.
Das ist aber eher eine Reduzierung der Wahrscheinlichkeit, mit der Auswertung schneller als die Aktualisierung der States zu sein.
Oder aber, man wartet ab, bis das Kommando in der History ankommt.
Das funktioniert aber nur, wenn es nur ein Kommando gibt und das auch nicht unmittelbar nacheinander in verschiedenen Räumen gesprochen wird.
Gibt es noch eine andere Mögllichkeit?
-
Ich glaube jetzt eine Lösung gefunden zu haben:
Ich definiere mir einen Wemo-Knoten, um das Sprachkommando für Alexa zu definieren. Im node-red kommt danach aber kein Knoten mehr.
Der Trick ist jetzt, einen weiteren Flow zu erstellen, der auf das ack im Objekt alexa2.0/History/summary reagiert.
Denn wenn es hier startet, wurde das Objekt von alexa2 neu geschrieben.
Jetzt kann ich von hier aus mit einem Switch-Node prüfen, ob von mir gesprochene Kommandos relevant (heißt: Raumbezogen) erkannt wurden.
In meinem Beispiel ist es das Licht.
Sage ich "Alexa Licht an", kennt Alexa das Wemo-Device Licht und sendet eine Antwort an ioBoroker
Der eigentliche Flow startet dann mit der Statusänderung im Summary-Knoten:
Wurde der Flow gestartet, reagiere ich nur auf Kommandos "alexa licht an" und "alexa licht aus"
Da die Kommandos alleine nix starten, habe ich einen Function-Node hinten dran gestartet, der mir den Payload in einen Booleschen Wert überträgt.
Das ginge zwar auch anders, ich fand das aber so am Besten zu lesen:
(und dann natürlich auch mit false)Erst jetzt greife ich auf das Objekt serialNumer zu, um zu sehen, welche Alexa das Kommando gehört hat:
Danach kann ich mit dem weiter machen, was mit korrektem Kommando und bekanntem Echo getan werden muss.
Und genau so, wie ich das mit Licht mache, kann ich es natürlich mit allen lokal begrenzten Aktionen machen. Also auch mit TV und Sendern.
-
Ich hätte da mal ne Zwischenfrage, wo ich Verständnisprobleme habe.
Warum verwendest du überhaupt den Wemo-Adapter, wenn du dennoch den Alexa2 Adapter verwendest?
Eigentlich kannst du doch alles mit dem Alexa2 Adapter machen.
Den Wemo oder auch Alexa-local zu verwenden kann durchaus Sinn machen, wenn der Alexa2 instabil arbeitet. Aber wenn Beides benutzt wird, multiplizieren sie die Risiken eher.
Oder hab ich da was übersehen ?
-
Ich hatte das Problem, dass ich mit meinem Dot Gen.3 plötzlich im gesamten Heimnetz meine Routinen nicht mehr verwenden konnte.
Heißt: node-red kann nicht mit Gen.3 mit alexa-home oder dem alexa-node
Auf der anderen Seite wollte ich tatsächlich (und das hatte ich vorher nicht implementiert) pro Raum unterschiedliche Dinge tun. Trotz gleichem Kommando.