NEWS
Alexa2 3.26.x
-
Ja genau, hab nach räumen in der App aufgeteilt, aber das Licht per Sprachbefehl steuert dennoch Iobroker alleine
Heißt iobroker erkennt ein Sprachbefehl aus der History, verarbeitet Schlüsselwörter wie "Licht", nimmt das angesprochene Gerät für die Raumdefinition und schaltet entsprechend der Programmierung.Bis auf im Wohnzimmer, steht nur eine Alexa in jedem Raum und richtig, dass Problem ist, dass die Geräte in den anderen Räumen zu gut mithören, grundsätzlich kein Problem, Alexa hat da wohl ein nahezu perfekten Weg gefunden, zu erkennen welchem Gerät man am nächsten ist (ausnahmen bestätigen die Regel), nur der Adapter bekommt dennoch im Zweifel von mehren Geräten die Info über den selben Befehl, den diese zwar anscheinend mitgehört, aber dennoch nicht weiter verarbeitet bzw. Zumindest nicht ausgeführt haben.
Als Beispiel sage ich laut „Alexa, wie spät ist es?“ selbst wenn dies mehrere Geräte hören, wird nur ein Gerät antworten.
In der History vom Adapter erscheinen aber mehrere Geräte, die diesen Befehl wahrgenommen haben (dies war früher nicht der Fall), dadurch verarbeitet iobroker diese Information natürlich auch mehrfach und löst entsprechende Reaktion/Aktion mehrfach mit unterschiedlichen Gerät als vermeintlichen Auslöser (der in dem Fall den zu steuernden Raum bestimmen soll) aus.Meine gewünschte Steuerung bekomme ich nicht alleine nur in der Alexa App umgesetzt.
Über Umwege könnte ich zwar einen fiktiven Schalter oder ähnliches steuern, der dann in iobroker als trigger fungiert aber für mich auch keine sehr schöne Lösung und auch nicht für jede Steuerung möglich so umzusetzen.Aktuell ist mein Plan nur die erste Aktualisierung des History Datenpunkt zu verwenden, es scheint als wäre diese auch immer das Gerät welches auch von Alexa am ehesten als angesprochen betrachtet wird, werde dies aber weiter beobachten und bin für alternative Ideen offen und dankbar.
-
Naja, im Prinzip habe ich genau das gleiche wie du gemacht, aber für unserer Fernseher.
Ich kann "Alexa, schalte Fernseher Wohnzimmer aus" sagen, dann wird direkt das Gerät gesteuert.
Sage ich "Alexa, schalte Fernseher aus" kommt die Antwort das es mehrere Geräte gibt.
Da habe ich eine Routine erstellt die nur "ok" ausgibt und fange das auch über History ab.
Wobei ich auch die Geräte in der Nähe berücksichtige.Beim Licht: Ich habe ein offenes Erdgeschoss, Wohnzimmer, Essbereich und Kühe gehen ineinander ohne Wände über.
In allen 3 Bereichen hängt ein Alexa.Ich habe zwar manchmal das Problem das ich in der Küche einen Timer stelle und das Wohnzimmer den annimmt.
Aber bei Licht hatte ich noch nie das Problem, da hat er wohl immer nach Nähe entschieden -
@bananajoe sagte in Alexa2 3.26.x:
Ich kann "Alexa, schalte Fernseher Wohnzimmer aus" sagen, dann wird direkt das Gerät gesteuert.
Sage ich "Alexa, schalte Fernseher aus" kommt die Antwort das es mehrere Geräte gibt.ist IMHO aber logisch. die antwort bezieht sich auf die fernseher, nicht auf alexa.
meine 3 fernseher sind unterschiedlich benannt, somit kann ich über jede alexa das entsprechende gerät schalten.
bei mir kommen ja auch noch die kabeltv kisten dazu, die ich ja auch mitschalten muss. -
@da_woody sagte in Alexa2 3.26.x:
ist IMHO aber logisch. die antwort bezieht sich auf die fernseher, nicht auf alexa.
schon klar. Meine Fernseher heißen auch alle anders (mit Zusatz), das war aber nicht Ehefrauen und Tochter tauglich.
Hinzu kommen 1.001 Nuschelvariante -
@bananajoe
dann gibts nur die fernbedienungslösung... -
@bananajoe said in Alexa2 3.26.x:
Aber bei Licht hatte ich noch nie das Problem, da hat er wohl immer nach Nähe entschieden
Und du benutzt iobroker um das Licht zu steuern also den History Datenpunkt?
Und vor allem das angesprochene Gerät um zu bestimmen wo das Licht geschaltet werden soll?Ich denke du lässt das Licht sicherlich direkt in der App schalten, denn dass funktioniert wirklich sehr gut.
Auch mit dem History Datenpunkt funktioniert es theoretisch ganz ok, wie gesagt hab ich zumindest bei mir das Problem, dass NUR über den History Datenpunkt es vorkommen kann (nicht immer), dass mehrere Geräte den Befehl "Licht an" wahrnehmen und in der History Datenpunkt erscheinen.
Ich stehe in der Küche und sage "Licht an", dann aktualisiert der Datenpunkt z.B. zwei mal, einmal erscheint [gerät:"Küche",befehl:"Licht an"] und danach aktualisiert der Datenpunkt nochmal mit [gerät:"Flur",befehl:"Licht an"], natürlich schaltet iobrocken dann in der Küche und im Flur das Licht an, habe es aber wie gesagt nur in der Küche gesagt.
Dies liegt daran, dass zwar manchmal mehrere Geräte zuhören wenn sie das Aktivierungswort hören, Alexa auch intern relativ gut einschätzen kann, zu welchem Gerät man dann aber tatsächlich gesprochen hat und selbst wenn dies nicht immer das richtige sein muss wie in deinem Beispiel mit dem Timer, so führt Alexa den Befehl nur einmal an einem Gerät aus.
Im Iobroker Adapter landen aber dennoch beide Aktivitäten (bzw. Wahrgenommene Befehle), dies war früher nicht der Fall, da wurde anscheinend nur die Aktivität an iobroker bzw. dem Adapter weitergegeben, welches Gerät diesen Befehl auch tatsächlich verarbeitet hat.Es geht hier aber wirklich nicht darum, wie ich mein Licht schalte oder wie ich es anders machen könnte
Sondern darum in iobroker über den Alexa2 Adapter in dessen History Datenpunkt am zuverlässigsten das angesprochene Gerät zu ermitteln, weil wie gesagt es hier vorkommen kann, dass mehrere Geräte den Befehl wahrnehmen und und im History Datenpunkt erscheinen.
Das Licht war hier nur das einfachste Beispiel und ist etwas aus dem Ruder geraten befürchte ich -
@bananajoe said in Alexa2 3.26.x:
Naja, im Prinzip habe ich genau das gleiche wie du gemacht, aber für unserer Fernseher.
Ich kann "Alexa, schalte Fernseher Wohnzimmer aus" sagen, dann wird direkt das Gerät gesteuert.
Sage ich "Alexa, schalte Fernseher aus" kommt die Antwort das es mehrere Geräte gibt.Wenn du dass machen würdest, was ich gemacht habe, könntest du im Wohnzimmer sagen "Alexa, schalte Fernseher aus" und Alexa würde das bestätigen und den Fernseher im Wohnzimmer abschalten, gleiches für weitere Fernseher in anderen Räumen mit dem selben Befehl
Erst bei zwei Fernseher im Wohnzimmer z.B. würde es beim zweiten wieder einen Zusatz brauchenUnd wie @da_Woody schon erwähnt hat, kann man so auch direkt KabelTV, Soundsysteme oder andere Geräte direkt mit schalten und steuern
-
@newpicsel said in Alexa2 3.26.x:
Sondern darum in iobroker über den Alexa2 Adapter in dessen History Datenpunkt am zuverlässigsten das angesprochene Gerät zu ermitteln, weil wie gesagt es hier vorkommen kann, dass mehrere Geräte den Befehl wahrnehmen und und im History Datenpunkt erscheinen.
Und warum nimmst du jetzt nicht einfach nur die erste History Änderung und ignorierst die folgenden?
-
@gaspode said in Alexa2 3.26.x:
Und warum nimmst du jetzt nicht einfach nur die erste History Änderung und ignorierst die folgenden?
Genau, habe ein paar Posts vorher geschrieben, dass ich das testen und beobachten möchte.
Ich bin mir nicht sicher ob es tatsächlich immer die erste Änderung ist, auch habe ich schon beobachtet, dass es Aktualisierungen gibt, bei dem zwar ein Gerät angegeben wird allerdings kein Befehl erkannt wurde bzw. angegeben wird, dies wird wohl der Fall sein wenn ein Gerät zwar kurz reagiert aber eigenständig abbricht weil erkannt wird, dass ein anderes direkter angesprochen wird.
Vielleicht hat jemand eine Idee wie eben andere als die erste Änderungen am sinnvollsten ignoriert werden können oder hat eine komplett andere Idee, wie ich das angesprochene Gerät am sichersten identifizieret kann, ich denke nicht, dass ich mit dem Problem alleine bin und selbst wenn, gibt es hier eine Menge brillanter Köpfe, die gefühlt für fast alles eine Lösung haben oder finden
-
@newpicsel sagte in Alexa2 3.26.x:
eine komplett andere Idee, wie ich das angesprochene Gerät am sichersten identifizieret kann, ich denke nicht, dass ich mit dem Problem alleine bin und selbst wenn, gibt es hier eine Menge brillanter Köpfe, die gefühlt für fast alles eine Lösung haben oder finden
Wie stellst du dir das vor? Das kann wohl nur Amazon ändern. Der Adapter verarbeitet das was er bekommt, kann es aber nicht beeinflussen. Wenn mal der, dann der andere Echo sich zuerst meldet, kann man nicht erraten wer der nächste zum Sprecher ist. Das liegt alleine im Programm der Echos.
Man hat dir hier auch schon mehrere Lösungen vorgeschlagen um dieses Problem wenigstens teilweise zu umgehen. Was willst du noch hören? Wenn du meinst es muss besser gehen, dann nur zu. Probiere es aus. Hätte jemand die Lösung, würde sie hier schon stehen nachdem du gefühlt zehnmal alles erklärt hast.
-
@dr-bakterius
Ich ermittele das Angesprochene Gerät über die Aktualisierung des Werts muted.
Das klappt sehr zuverlässig. Dieser Wert wird aktualisiert, wenn die Alexa angesprochen wird. -
Habe ich dir auf den Schlips getreten?
Was ich hören will? Wie ich mir das vorstelle?
Man hat mir mehrere Lösungen vorgeschlagen?Ja ich habe das Problem mehrfach beschrieben, weil es anscheinend nicht ganz klar war, es Missverständnisse gab oder nachgefragt wurde.
Deine Lösung mag für dich super sein, abgesehen davon, dass ich diese nicht optimal finde, bezieht sich diese auf das Licht und ich wollte lediglich noch einmal klarstellen, dass dies nur ein Beispiel war und ich eben die Information über das Gerät auch anderweitig nutze.
Ich wollte dich oder deine "Lösung" damit nicht angreifen…Ist es wirklich unangebracht oder zu viel verlang auf mehrere Vorschläge zu hoffen und diese abzuwarten?
Ich habe die Lösung meines Problems definitiv nicht von dir oder nur von dir erwartet.
Es ist vollkommen ok, wenn du dazu nicht in der Lage bist.
Wäre es dann aber nicht fair mir und anderen gegenüber, die hier vielleicht mehr Erfahrung oder Fantasie haben, sich aus dem Thema zurückzuziehen?Ich wünsche dir auf jeden Fall schöne Festtage und ein guten Rutsch ins neue Jahr, dass dir einmal bei einem Problem mehr Verständnis und Geduld entgegengebracht wird als du selber bereit bist zu geben.
-
Werde ich mir mal genauer ansehen, vielen Dank.
Wenn hier tatsächlich nur das angesprochene Gerät aktualisiert, wäre dies tatsächlich sehr hilfreich!
-
@newpicsel sagte in Alexa2 3.26.x:
auch habe ich schon beobachtet, dass es Aktualisierungen gibt, bei dem zwar ein Gerät angegeben wird allerdings kein Befehl erkannt wurde bzw. angegeben wird, dies wird wohl der Fall sein wenn ein Gerät zwar kurz reagiert aber eigenständig abbricht weil erkannt wird, dass ein anderes direkter angesprochen wird.
Hast Du im Adapter unter
"Verlaufseinstellungen" den Punkt
"Verlaufseinträge ignorieren, wenn kein Befehl erkannt wurde" aktiviert? -
@newpicsel sagte in Alexa2 3.26.x:
Und du benutzt iobroker um das Licht zu steuern also den History Datenpunkt?
Und vor allem das angesprochene Gerät um zu bestimmen wo das Licht geschaltet werden soll?Nein! Nur für Fernseher. Licht macht ausschließlich Alexa. Oder die Schalter in der Wand.
-
-
@newpicsel said in Alexa2 3.26.x:
Vielleicht hat jemand eine Idee wie eben andere als die erste Änderungen am sinnvollsten ignoriert werden können
Ich würde das mal mit einem ganz einfachem Ansatz probieren:
const ignoreTimeInMs = 1000; // 1 Sekunde let lastTs = Date.now(); on('alexa2.0.History.json', (json) => { if (json.state.ts - lastTs > ignoreTimeInMs) { // Hier kommt nur der erste Befehl an } lastTs = json.state.ts; });
So wird jede Aktualisierung nicht berücksichtigt, die innerhalb einer Sekunde nach der vorherigen Aktualisierung kommt.
Nachteil: wenn in zwei Räumen zufällig gleichzeitig ein Befehl gegeben wird, gewinnt natürlich auch nur der erste.
Mit der Sekunde kannst du ja ein bisschen spielen, wenn das vom Timing her nicht zum gewünschten Ergebnis führt.
Aber evtl. bist du ja mit dem Mute Ansatz schon zum gewünschten Ergebnis gekommen. -
@gaspode said in Alexa2 3.26.x:
Ich würde das mal mit einem ganz einfachem Ansatz probieren:
Mega vielen Dank, diese Möglichkeit kannte ich nicht und hätte es definitiv komplizierter umgesetzt
Ich werde das erst nach den Feiertagen weiter testen, gerade auch was die Zuverlässigkeit der ersten Aktualisierung angeht und die Mute Datenpunkte beobachten.
Natürlich könnte so eine Lösung wieder zu Problemen führen wenn nahezu zeitgleich in mehreren Räumen ein Befehl abgegeben wird, es ist aber deutlich angenehmer im Zweifel ein Befehl erneut zu sagen als erstmal zu kontrollieren wo nun überall das Licht angegangen ist
Zusätzlich könnte das differenzieren des Befehls etwas Abhilfe verschaffen, damit sich wenn überhaupt nur identische Befehle in die Quere kommen könnten.Vielen Dank auf jeden Fall, damit oder aber eventuell mit der zusätzlichen Information aus dem Mute Objekt lässt sich bestimmt etwas machen, ich werde meine Ergebnisse definitiv hier teilen, vielleicht hilft es noch jemanden.
-
@padrino sagte in Alexa2 3.26.x:
Hast Du im Adapter unter
"Verlaufseinstellungen" den Punkt
"Verlaufseinträge ignorieren, wenn kein Befehl erkannt wurde" aktiviert?hüstel
Sollte das nicht das Problem lösen, wenn sich zwei Echos angesprochen fühlen, aber nur einer schließlich ausführt? -
@padrino said in Alexa2 3.26.x:
Sollte das nicht das Problem lösen, wenn sich zwei Echos angesprochen fühlen, aber nur einer schließlich ausführt?
Ich meine mich zu erinnern, dass das nur bedeutet, dass es grundsätzlich einen passenden Befehl gibt. Wenn du also sagst "Weihnachtsbaum an", es diesen Befehl bzw. das Gerät aber nicht gibt, dann wird er ignoriert.
Also Nein, ich denke nicht, dass das Problem damit gelöst wird. Hab's aber nicht ausprobiert und bin mir nicht zu 100 % sicher. Testen schadet also sicherlich nicht.