Apollon77 / ioBroker.alexa2

ioBroker Adapter to control Amazon Alexa/Echo devices
MIT License
163 stars 47 forks source link

Datenpunkt history wird nicht aktualisiert #1078

Closed uwe72 closed 1 year ago

uwe72 commented 1 year ago

Kann es sein, dass der history Datenpunkt wieder nicht mehr aktualisiert wird. Zumindest ist dies bei uns so, aktuell, und immer wieder die letzten Tage.

Hat noch jemand das Problem?

IchBinSmart commented 1 year ago

metoo - Der Workaround vom letzten Mal geht aber noch. Aber der Adapter merkt die Aktualisierung nicht.

uwe72 commented 1 year ago

Scheint endgültig so zu sein, dass ich über den iot Adapter gehen muss. Funktioniert dieser fehlerfrei?

m0rph2k commented 1 year ago

Scheint endgültig so zu sein, dass ich über den iot Adapter gehen muss. Funktioniert dieser fehlerfrei?

Abwarten, bis jetzt hat es immer wieder funktioniert, wer weiß was Amazon wieder macht

che1000sassa commented 1 year ago

@IchBinSmart : welcher Workaround? Wo finde ich den?

flapman commented 1 year ago

@IchBinSmart : welcher Workaround? Wo finde ich den?

Userdatenpunkt mit false/true erstellen. Ein virtuelles Gerät (Schalter) in IOT erstellen mit diesem Datenpunkt. Alexa nach neuen Geräten suchen lassen. In allen deinen Routinen den Schalter einbinden. Userdatenpunkt per Skript lesen Trigger im Historypfad von Alexa ansteuern, wenn der virtuelle Schalter auf wahr geht Schalter mit 1 sek Verzögerung wieder auf false switchen lassen

JestfulW commented 1 year ago

Gleiches Problem. So langsam steigt mir meine Familie aufs Dach weil ständig das SmartHome ausfällt. @Apollon77 bist du da im Thema? Gruß

Apollon77 commented 1 year ago

Leute ... looocker. Vor 5h issue eröffnet. Ich hab kein debug log. Also Antwort: nein ich bin nicht im Thema. Noch nicht.

USKapproved commented 1 year ago

Ich hab das gleiche Problem. In History wird summary nicht aktualisiert. Nach neustart des Adapters geht es für 1-2 Tage aber dann wieder das oben genannte Problem. Im Log hab ich nix auffäliges gesehen :/

JestfulW commented 1 year ago

Leute ... looocker. Vor 5h issue eröffnet. Ich hab kein debug log. Also Antwort: nein ich bin nicht im Thema. Noch nicht.

Sorry, es sollte nicht klingen als würde ich meckern wollen. Du kannst nichts dafür. Ganz im Gegenteil. Ich bin dir äußerst dankbar für deine Arbeit. Es ärgert mich nur das Amazon in letzter Zeit vermehrt an den Abfragen herumdreht.

Wenn ich irgendwas dazu beitragen kann das es wieder funktioniert lass es mich wissen.

Apollon77 commented 1 year ago

Also ich habe geprüft und muss leider sagen das Amazon aktuell die "Activity" Messages jetzt auch über den neuen Kanal nicht liefert. Also ja Equilizer und Volume kommen noch - scheinbar Listen und Timer/Alarme kommen ebenso noch.

Ob das ein Fehler oder Absucht ist sehen wir die nächsten Tage ... Ber ja bitte teilt hier nochmals Eure Erfahrungen bezüglich des Workarounds und des "Timing" des selben ... Danke

uwe72 commented 1 year ago

@Apollon77 Habe folgende Frage: Ich gehe davon aus, dass der Alexa-Adapter keine offizielle API verwendet, welche Amazon bereitstellt? Von da her wird man (bzw. ich) nie eine Garantie haben, dass dies dauerhaft funktioniert. Deshalb überlege ich auf den iot-Adapter umzustellen. Die Frage ist, verwendet dieser eine "offizielle-API", welche verlässlicher ist? Es ist halt viel Aufwand für mich umzustellen, deshalb wäre mir die Antwort hier wichtig. Danke dir und insbesondere auch DANKE für deine Arbeit bis jetzt.

Apollon77 commented 1 year ago

Der iot Adapter ist die gegenstelle für einen "offiziellen und zertifizierten Skill" von Amazon, also ja das wíst eine offizielle Schnisttselle, aber die kann halt nur Smart Home devices abbilden. lso ja der Weg virtuelle Geräte pro Routine anzulegen und diese zu schalten ist "the way to go"

engelsofta commented 1 year ago

Also ich habe geprüft und muss leider sagen das Amazon aktuell die "Activity" Messages jetzt auch über den neuen Kanal nicht liefert. Also ja Equilizer und Volume kommen noch - scheinbar Listen und Timer/Alarme kommen ebenso noch.

Ob das ein Fehler oder Absucht ist sehen wir die nächsten Tage ... Ber ja bitte teilt hier nochmals Eure Erfahrungen bezüglich des Workarounds und des "Timing" des selben ... Danke

Hey - hängt es auch damit zusammen dass aktuell die Routinen nicht schalten? Besten Dank

engelsofta commented 1 year ago

@IchBinSmart : welcher Workaround? Wo finde ich den?

Userdatenpunkt mit false/true erstellen. Ein virtuelles Gerät (Schalter) in IOT erstellen mit diesem Datenpunkt. Alexa nach neuen Geräten suchen lassen. In allen deinen Routinen den Schalter einbinden. Userdatenpunkt per Skript lesen Trigger im Historypfad von Alexa ansteuern, wenn der virtuelle Schalter auf wahr geht Schalter mit 1 sek Verzögerung wieder auf false switchen lassen

Kostet der IOT Zugang nicht was?

JestfulW commented 1 year ago

Kostet der IOT Zugang nicht was?

Ab einer gewissen Anzahl von Schaltvorgängen ja. Einen minimalen Beitrag. Ich denke für die Arbeit die die Jungs hier hinter den Kulissen haben ist das nicht zu viel verlangt.

engelsofta commented 1 year ago

Kostet der IOT Zugang nicht was?

Ab einer gewissen Anzahl von Schaltvorgängen ja. Einen minimalen Beitrag. Ich denke für die Arbeit die die Jungs hier hinter den Kulissen haben ist das nicht zu viel verlangt.

ja ich wollte ja nur diesen einen Schalter anlegen ;-)

flapman commented 1 year ago

Also ich habe geprüft und muss leider sagen das Amazon aktuell die "Activity" Messages jetzt auch über den neuen Kanal nicht liefert. Also ja Equilizer und Volume kommen noch - scheinbar Listen und Timer/Alarme kommen ebenso noch.

Ob das ein Fehler oder Absucht ist sehen wir die nächsten Tage ... Ber ja bitte teilt hier nochmals Eure Erfahrungen bezüglich des Workarounds und des "Timing" des selben ... Danke

Klappt wie damals ohne Verzögerung.

massiemassie commented 1 year ago

Ich verwende einen gefälschten physischen Switch, der auch als ZigBee-Router fungiert: https://it.aliexpress.com/item/1005005242045109.html?spm=a2g0o.order_list.order_list_main.5.5c823696RaRSfc&gatewayAdapt=glo2ita

engelsofta commented 1 year ago

Ich verwende einen gefälschten physischen Switch, der auch als ZigBee-Router fungiert: https://it.aliexpress.com/item/1005005242045109.html?spm=a2g0o.order_list.order_list_main.5.5c823696RaRSfc&gatewayAdapt=glo2ita

Ich einen "gefälschten" Schalter über NodeRed - braucht weniger Strom ;-)

coyote9999 commented 1 year ago

Habe wieder das Trigger-Script über den Muted DP aktiviert. Dann funktioniert es wieder.

on({ id: [].concat(['alexa2.0.Echo-Devices.XXXXXXXXXXXX.Player.muted']), change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; getState('alexa2.0.History.#trigger', (err, state) => { setStateDelayed('alexa2.0.History.#trigger' / Trigger/Rescan /, state ? !state.val : true, 500, true); }); });

Apollon77 commented 1 year ago

also triggerst Du nach 500ms? ist das nicht ein bissl schnell?

uwe72 commented 1 year ago

Hab es aktuell so. Leider funktioniert dies nicht.

on({id: [].concat(Array.prototype.slice.apply($("state[id=alexa2.0.Echo-Devices.*.Player.volume]"))), change: "any"}, async function (obj) {

  let value = obj.state.val;
  let oldValue = obj.oldState.val;
  getState("alexa2.0.History.#trigger", function (err, state) {
      setStateDelayed("alexa2.0.History.#trigger"/*Trigger/Rescan*/, state ? !state.val : true, 2000, false);
  });
  setStateDelayed("alexa2.0.History.summary"/*summary*/, '', 2500, false);
});

UPDATE: Korrigiere. Es funktioniert, aber mit ca. 1 minütiger Verspätung wird der summary Datenpunkt befüllt.

coyote9999 commented 1 year ago

also triggerst Du nach 500ms? ist das nicht ein bissl schnell?

Also bei mir funktionieren 500ms zuverlässig. Musst du bei dir ausprobieren.

massiemassie commented 1 year ago

Ich benutze:

on({id: [].concat(['ham.0.Ripetitore-.Switch.On']), change: "any"}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; setStateDelayed("alexa2.0.History.#trigger"/Trigger/Rescan/, true, 1000, false); setStateDelayed("alexa2.0.History.summary"/summary/, '', 3000, false); });

uwe72 commented 1 year ago

ham.0.Ripetitore-.Switch.On

was ist "ham.0.Ripetitore-.Switch.On"?

massiemassie commented 1 year ago

was ist "ham.0.Ripetitore-.Switch.On"?

Der Schalter, der in Alexas Geisterroutine umgelegt wird

HartmutKr commented 1 year ago

Hab jetzt alles was ich über die Summary bearbeite in dummy routinen gepackt die dann die Lautstärke auf 40 stellen. Da man mehrere Auslösesätze in eine Routine packen kann ist das relativ unaufwendig. Über ein Blockly wird dann ein trigger ausgelöst. Funktioniert soweit. bs

IchBinSmart commented 1 year ago

Leider gibt es diverse Artikel, dass Alexa mit ifttt eingestellt wird. Das Webinterface von alexa ist bereits abgeschaltet. Es ist also gut möglich, dass Amazon demnächst keinen Pushservice mehr anbietet, damit User nur die offiziellen (zahlungspflichtigen) Apps nutzen. Das ist natürlich nur Spekulation.

Lob an den Entwickler: Der Alexa Adapter hilft dabei ein viel natürlicheres Spracherlebnis mit Alexa zu haben - die offiziellen Befehle sind sehr oft holprig. Es bleibt abzuwarten, wie lange die Workarounds noch greifen.

mcbirne commented 1 year ago

Hallo zusammen, gibt es einen Lösungsansatz für den Adapter oder muss man demnächst über IOT gehen?

uwe72 commented 1 year ago

Hallo zusammen, gibt es einen Lösungsansatz für den Adapter oder muss man demnächst über IOT gehen?

Gute Frage, würde mich auch interessieren, wobei ich für mich entschieden habe auf den iot-Adapter über zu gehen. Bin da auch gerade dabei.

martink1979 commented 1 year ago

Ja, das Phänomen mit dem "History" Datenpunkt ist schon blöd. Hoffentlich gibt's da bald ein Update auf den Adapter, damit die Funktion wieder gegeben ist

flapman commented 1 year ago

Hallo zusammen, gibt es einen Lösungsansatz für den Adapter oder muss man demnächst über IOT gehen?

Ja siehe oben.

flapman commented 1 year ago

Ja, das Phänomen mit dem "History" Datenpunkt ist schon blöd. Hoffentlich gibt's da bald ein Update auf den Adapter, damit die Funktion wieder gegeben ist

Du kannst auch einfach den Vorschlag von oben umsetzen, dann musst du nicht warten

rotodt commented 1 year ago

Nur so als Vorschlag: Anstelle über den IOT Adapter zu gehen, schalte ich einen ungenutzten Switch auf den ich triggere.

flapman commented 1 year ago

Nur so als Vorschlag: Anstelle über den IOT Adapter zu gehen, schalte ich einen ungenutzten Switch auf den ich triggere.

Kannst du das bitte genauer beschrieben. Welcher ungenutzter Switch? Einen physischen? Einen im Broker? Also wie wird dieser Switch ausgelöst. Bitte die Reihenfolge aufschreiben von Sprachbefehl erhalten bis zum verarbeiten im Histroy DP.

martink1979 commented 1 year ago

@flapman Ich habe es jetzt auch so gelöst, das ich mit der Alexa Abfrage (Routine) einen physisch nicht genutzten Schalter (in meinem Fall ein Shelly) schalte, und mit dem Schaltvorgang den "Trigger Rescan" des des Alexa Adapters einmal schalte. Anschließend kann man dann wieder mit dem aktualisierten "summary Wert" aus dem Alexa Adapter weiter arbeiten. Funktioniert soweit super.

uwe72 commented 1 year ago

@flapman Ich habe es jetzt auch so gelöst, das ich mit der Alexa Abfrage (Routine) einen physisch nicht genutzten Schalter (in meinem Fall ein Shelly) schalte, und mit dem Schaltvorgang den "Trigger Rescan" des des Alexa Adapters einmal schalte. Anschließend kann man dann wieder mit dem aktualisierten "summary Wert" aus dem Alexa Adapter weiter arbeiten. Funktioniert soweit super.

Ist der Shelly in Alexa eingebunden, oder?

martink1979 commented 1 year ago

@flapman Ja, der ist in Alexa eingebunden.

iai2192 commented 1 year ago

Hallo zusammen

Ich habe mich nun mit allen Workarounds herum geschlagen und viele funktionierten und andere weniger. Mein Favorit (einfach und effektiv) ist zur Zeit folgendes Blockly:

image

ID Selektor von Player.muted: alexa2.0.Echo-Devices.XXXX.Player.muted

Ich hoffe jemandem hilft es, so wie mir.

Grüsse

Domi920 commented 1 year ago

Hallo, habe auch den Workaround mit dem Player.mute Datenpunkt im Einsatz. Es gibt aber ein großes Problem, das noch nicht erwähnt wurde (oder ich mache einen großen Fehler):

Der Player.mute Datenpunkt wird nur beim Starten der Anfrage aktualisiert. Nach x Sekunden wird der Datenpunkt Trigger/Rescan ausgeführt und der summary Datenpunkt befüllt.

Das Problem dabei ist allerdings: Dauert der gesprochene Satz zur Alexa länger als die eingestellte Wartezeit x, so wird der summary Datenpunkt nicht richtig befüllt (weil man noch gar nicht mit den Sprechen fertig geworden ist).

Man könnte natürlich die Wartezeit x erhöhen. Aber dann wartet man zu lange bis etwas passiert.

Gibt es bei den Workaround auch eine Lösung dafür?

@Apollon77 gibt es bei Dir schon neue Erkenntnisse? Bzw. hättest Du Zeit, Dir das Problem mal anzusehen? Im Besten Fall gibt es doch noch einen Weg die Funktionalität wie "früher" herzustellen.

Gruß Dominik

JestfulW commented 1 year ago

Es gibt leider noch ein weiteres Problem... Echo Kids löst keine Routinen aus. Damit funktioniert der WorkAround bei den Echo Kids Geräten nicht 🤔 Ich habe dafür auch noch keinen alternativen Ansatz gefunden.

uwe72 commented 1 year ago

Gibt's eine offizielle Aussage/Planung zum thema? Ich kann damit leben wenn diese summary Funktionalität nicht mehr unterstützt wird. Denke klarheit wäre gut. Auf diese workarounds wollte ich nicht setzen. Alexa Anbindung ist bei mir die wichtigste Funktionalität rund um dmarthone/iobroker. Ich werde dann auf den iot Adapter umsteigen

mcbirne commented 1 year ago

Ich stelle gerade alles auf den IOT Adapter um. Es funktioniert bis jetzt zuverlässig.

uwe72 commented 1 year ago

Ich stelle gerade alles auf den IOT Adapter um. Es funktioniert bis jetzt zuverlässig.

Ja, kann ich bestätigen. Was noch schön wäre, hast du aber vermutlich auch keine Lösung. Ich würde gerne, Befehle absetzen wie "Alexa, [Smartnane]", d.h. ohne suffix an,ein,....und ohne workaround Routine?!

mcbirne commented 1 year ago

Aktuell sage ich Alexa [einen Satz oder Wortgruppe]. Was dann passiert habe ich in der Alexa App als Routine angelegt. Die Routine schaltet einen virtuellen Schalter, welchen ich über den IOT Adapter mit dem IO Broker verbunden habe. Meine "alten" Alexa Skripte reagieren nun nicht mehr auch eine Wortgruppe sondern auf das true setzten des Schalters. Zu welcher Alexa ich spreche erfahre ich über ein neues Skript, welches bei allen Alexas reagiert, sobald sich der muted Zeitstempel (Alexa/Plaxer/muted) ändert. Ich schreibe dann die ID der aktuellen Alexa in eine neue Variable. Mit dieser Info kann ich eine Antwort auf dem aktuellen Gerät gewährleisten. Das Anlegen der Variablen ist etwas mühsam und auch ein Rückschritt zum Auswerten der Sätze. Außerdem muss die Alexa App nun auch mit konfiguriert werden. Aber es läuft wenigstens.

Apollon77 commented 1 year ago

Ich bin am experimentieren

massiemassie commented 1 year ago

Verwenden Sie einen Schalter, real oder virtuell, und fügen Sie ihn in alle Phantomroutinen von Alexa ein. Die Routine des Iobroker ist unveränderlich. Fügen Sie in iobroker dieses Skript hinzu: on({id: [].concat(['Switch']), change: "any"}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; setStateDelayed("alexa2.0.History.#trigger"/Trigger/Rescan/, true, 1000, false); setStateDelayed("alexa2.0.History.summary"/summary/, '', 3000, false); });

uwe72 commented 1 year ago

Verwenden Sie einen Schalter, real oder virtuell, und fügen Sie ihn in alle Phantomroutinen von Alexa ein. Die Routine des Iobroker ist unveränderlich. Fügen Sie in iobroker dieses Skript hinzu: on({id: [].concat(['Switch']), change: "any"}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; setStateDelayed("alexa2.0.History.#trigger"/Trigger/Rescan/, true, 1000, false); setStateDelayed("alexa2.0.History.summary"/summary/, '', 3000, false); });

Für mich stellt sich die Frage wie lange diese Konstrukte noch verfügbar sind?! /Trigger/Rescan/ alexa2.0.History.summary

mcbirne commented 1 year ago

Da ich da auch nicht sicher bin, habe ich diesen Trigger umgangen.

flapman commented 1 year ago

Aktuell sage ich Alexa [einen Satz oder Wortgruppe]. Was dann passiert habe ich in der Alexa App als Routine angelegt. Die Routine schaltet einen virtuellen Schalter, welchen ich über den IOT Adapter mit dem IO Broker verbunden habe. Meine "alten" Alexa Skripte reagieren nun nicht mehr auch eine Wortgruppe sondern auf das true setzten des Schalters. Zu welcher Alexa ich spreche erfahre ich über ein neues Skript, welches bei allen Alexas reagiert, sobald sich der muted Zeitstempel (Alexa/Plaxer/muted) ändert. Ich schreibe dann die ID der aktuellen Alexa in eine neue Variable. Mit dieser Info kann ich eine Antwort auf dem aktuellen Gerät gewährleisten. Das Anlegen der Variablen ist etwas mühsam und auch ein Rückschritt zum Auswerten der Sätze. Außerdem muss die Alexa App nun auch mit konfiguriert werden. Aber es läuft wenigstens.

Kannst du mal den Teil zu welcher Alexa gesprochen wurde einstellen. Das wäre noch was was mir fehlt.