NEWS
Alexa Aktualisierung Datenpunkte
-
Hallo liebe Gemeinde,
mir ist aufgefallen, das der Alexa2-Adapter bei den Smart Home Devices die Datenpunkte/Werte nicht bzw. nur sehr langsam aktualisiert werden.
zbsp.: alexa2.0.Smart-Home-Devices.84085529-936e-442a-841d-d1dc0695e18b.powerState
Andere Werte, wzbsp. Titelsongs werden spontan aktualisiert. Nach einem Neustart des Adapters werden auch die restlichen Werte aktualisiert. Nur ist es unschön, den Adapter immer neu zu starten. Da es für die Smart Home Geräte unter anderem einen #query Datenendpunkt gibt würde ich gerne diesen nutzen um den Wert zu aktualisieren.
zbsp.: alexa2.0.Smart-Home-Devices.84085529-936e-442a-841b-b1dc0695e18b.#query
Gibt es da eine Möglichkeit mit Javascript, diesen virtuellen Taster zu aktivieren ( zbsp. in vis ) ? Oder gibt es noch eine andere Möglichkeit diesen Wert zu triggern, damit dieser sich aktualisiert?
Gruß Coraxx
-
Hallo Gemeinde,
konnte nun selber das kleine Problem lösen, obwohl JS nicht meine bevorzugte Lieblingsscriptsprache ist.
function Licht (){ var lampe=getState("alexa2.0.Smart-Home-Devices.xxx.#query"/*#query*/).val; if (lampe === false) { setState("alexa2.0.Smart-Home-Devices.xxx.#query"/*#query*/,true); //setze Aktualisierung } else if (lampe === true) { setState("alexa2.0.Smart-Home-Devices.xxx.#query"/*#query*/,false); //setze Aktualisierung } console.log(lampe); schedule("* * * * *", function () { Licht(); }); }
Das Problem dabei war, das zum einen nur jede Minute dies aktualisiert werden darf und zum zweiten, der #query dennoch seinen Wert ändert, daher das Scheduling auf eine Minute und die wechselnde Abfrage. Viel Spaß.
Gruß Coraxx
-
STOP!
Durch so eine unbedachte brachiale Vorgehensweise passiert ggf sowas: viewtopic.php?f=37&t=16882#p178234
UND sowas viewtopic.php?f=37&t=16960#p178189
Bitte lesen und dann überdenke Deine vorgehensweise …
Mal abgesehen davon das dein minütlicher Ansatz aktuell zu einigem an Logs führen müsste weil Requests aktuell minütlich nicht erlaubt sind.
-
Nabend,
das ist ja mal ein richtig guter Start in diesem Forum ;).
Na so unbedacht und brachial ist dies nun auch nicht, zumindest nicht in diesem Fall. Hier ist nur eine Steckdose aktiv und von daher sieht das Log übersichtlich aus. Zudem ist dies nur eine Abfrage auf einem #query, also nur eine Aktualisierung auf einem Gerät. Sollte dies minütlich über das "böse" #query aktualisiert werden, so würde ich dir voll und ganz zustimmen, dann wäre dies nicht sehr netzwerkfreundlich.
Vielen Dank jedoch für diesen Hinweis, er wird sicherlich Anklang finden.
Gruß Coraxx
-
Das Triggern eines "query" Datenpunkts sendet eine Anfrage zur Aktualisierung dieser Info an Amazon und wird dort von den Skill-Funktionen des entsprechenden Anbieters bearbeitet und generiert dort Kosten.
-
Hallöchen,
eben hab ich diesen Thread im Forum entdeckt und hätte eine ähnliche Frage zu der Theamatik:
Ich würde gerne in Zukunft mittels IOBroker eine kleine Zeitschalte ermöglichen, damit die Lichter 5-10 Minuten nach dem anmachen automatisch wieder abgeschalten werden. Eigentlich dachte ich, es wäre möglich über den PowerState einen simplen If-then-Fall zu schalten, leider steht der PowerState leider immer auf dem Status der letzten manuellen Query Abfrage und wird auch nach mehreren Stunden nicht aktualisiert.
Meine Idee(die dann eben mit einem etwas "größeren" Programmieraufwand verbunden wäre) ist nun, die Summary der History nach den Namen der Lichter abzufragen und anschließend der #query für das entsprechende Gerät neu abzufragen. Meine Versuche mit Blocky das Ganze umzusetzen waren bisher erfolglos. Die eigentliche Frage die ich mir da nun stelle im Bezug auf die Aussage von apollon77 ist nun, ob dieses vorgehen ebenfalls zu "unbedacht und brachial" wäre, oder ob meine Idee einen vernünftigen Ansatz in sich birgt?
-
Das Triggern eines "query" Datenpunkts sendet eine Anfrage zur Aktualisierung dieser Info an Amazon und wird dort von den Skill-Funktionen des entsprechenden Anbieters bearbeitet und generiert dort Kosten. `
Welche Einstellungen sollte man dann nehmen, damit die vis-Anzeige, die auf die Datenpunkte der smart devices > powerState lauscht, "zeitnah aktualisiert" wird und somit den richtigen Status anzeigt (z.B. Lampe an/aus) ? Zeitnah ist für mich < 5 Sekunden….. Ist das überhaupt möglich?
-
Kurze Antwort: nein.
Amazon meldet Statusänderungen nicht aktiv sondern es muss abgefragt werden. Jede dieser abfragen geht von deinem Rechner zu amazon und von dort zum entsprechenden skill und von dort zu deinem Gerät und den ganzen weg zurück. Bei mehreren Geräten kam allein das weit mehr als 5s dauern.
Und jede Anfrage generiert für den skill Anbieter kosten die er an Amazon zahlen muss. Bedenke das.
Und Amazon hat auch Rate Limits Gründer Anfragen eingebaut. Also irgendwann blocken die.
Der Adapter nutzt halt die APIs Die für die Sprachbefehle bzw App gedacht sind.
Für Echtzeit Statusleiste das also komplett nicht gedacht.
Der Adapter limitiert auch aktuell die Anfragen aus den genannten Gründen.
Gesendet vom Handy …