Apollon77 / ioBroker.alexa2

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

Keine automatische Statusabfrage der Smarthome-Geräte #107

Closed oggy81 closed 6 years ago

oggy81 commented 6 years ago

Hallo,

Ich habe folgendes bemerkt: Die Statusabfrage der Smarthome-Geräte aktualisiert sich nicht automatisch.

Wenn ich beispielsweise das Licht per Visualisierung einschalte und es per Sprache ausschalte, ändert sich im ioBroker der powerState nicht. Klicke ich aber auf den #quere Button ändert sich der Status von true auf false.

In der Adapterkonfiguration habe ich den Datenaktualisierungsintervall mal auf 60s gestellt. Auch mit der Push-Verbindung wird der Status nicht aktualisiert.

Lässt sich dieser Fehler beheben?

Gruß, Stefan

Apollon77 commented 6 years ago

Korrekt, kein Fehler. Der Status ist nur über die "query" Datenpunkte bei den Geräten manuell abfragbar, aber nicht zu oft weil das immer über die Skills läuft und beim Skill-Owner Kosten generiert

SHSolution commented 6 years ago

Ich habe das gleiche Problem. Ich wollte via ioBroker die Temperaturen aus meiner innogy Smarthome Zentrale, welche über Alexa 2 Adapter in ioBroker eingebunden ist protokollieren und habe festgestellt, dass sich die Werte nicht aktualisieren, bzw. nur wenn ich den Query Button betätige. Ich hatte nun ein Blockly Script erstellt, um den Button von da zu triggern, bekomme dann aber den Fehler:

Smart Home device request blocked for SKILL_eyJza2lsbElkIjoiYW16bjEuYXNr....

Du schreibst oben:

aber nicht zu oft weil das immer über die Skills läuft und beim Skill-Owner Kosten generiert

Ist das der Grund für diese Meldung? Und wenn ja welcher Intervall wäre denn nicht "zu oft"? und kommt man um diese Meldung überhaupt drum rum?

Apollon77 commented 6 years ago

Im Moment ist das Limit hart auf "Nach einer Anfrage mindestens 10 Minuten warten" eingestellt. Der Grund ist, dass jeder Klick auf Query (oder schlimmer queryall) eine Anfrage zu Amazon sendet und von dort dann je Gerät eine Anfrage an den Skill des entsprechenden Anbieters (in deinem Fall Innogy SKill) geht um die Daten zu lesen. Jede Anfrage kostet für den Anbieter Geld was dieser an Amazon zahlen muss.

Wir haben beim ioBroker-eigenen Skill gesehen das von einem Tag auf den anderen die Anzahl der Anfragen um 700% gestiegen sind deswegen und das bedeutet faktisch 700% mehr Kosten.

Im ersten Schritt brauchten wir einen Weg das zu stoppen und deswegen ist da ein recht hartes Limit drin.

In einem Update demnächst werde ich das Limit konfigurierbar machen, was dennoch heisst das der Nutzer selbst dafür Verantwortlich ist - auch eine Sperrung durch Amazon wegen zu vieler Anfragen (wenn man es hier übertreibt) ist denkbar. Diese ganzen Optionen sind faktisch für seltene Sprach oder App-Zugriffe gedacht und nicht wirklich für eine API-Nutzung wie wir es hier ermöglichen.

Also: Aktuell solltest Du mit einem Abfrageintervall von 10 Minuten auskommen können ohne in die Blocks zu rennen. Demnächst kannst DU es selbst konfigurieren und die Verantwortung dafür übernehmen was Du an Kosten bei deinen Skill-Anbietern generierst.

Colt89 commented 5 years ago

Hallo, besteht das "Problem" immer noch weil bei mir aktualisiert es auch noch nicht automatisch?!?!

Apollon77 commented 5 years ago

Noch nichts weiter passiert und es wird auch nie automatisch aktualisieren.

mamama1 commented 5 years ago

Hallo,

ich verstehe das Problem und auch den Grund dahinter. Habe daher in meinem iobroker Script einen Schedule von 60 Minuten erstellt, d.h. alle 60 Minuten wird der Status von EINER (Original Amazon) Alexa Steckdose und vom EINEM Echo Plus (nix QueryAll) abgefragt. trotzdem hab ich im iobroker Log genau einmal stündlich die entsprechende Fehlermeldung:

Smart Home device request blocked for AAASonarCloudService

Was mache ich falsch?

Danke!

frankyboy1973 commented 5 years ago

Ich muss dieses Thema leider noch mal aufgreifen. Ich will nur den Status von ein paar Leuchten die direkt über den Echo Plus Hub angebunden sind abfragen, also keinen Status über irgendwelche Geräte die per Skill angebunden sind. Es handelt sich um ca. 10 Leuchtmittel. Wie sieht es damit aus? Da sollten doch keine Kosten für die Abfrage anfallen. Kann man da bedenkenlos alles 10 Minuten ne Statusabfrage durchführen?

Apollon77 commented 5 years ago

Naja "Kosten" fallen an weil die Daten immer bei der Amazon Cloud abgefragt werden 8auch wenn es Dein Echo Plus ist läuft alles über die Cloud). In dem Fall sind es Kosten für Amazon :)

frankyboy1973 commented 5 years ago

Wow, vielen Dank für die schnelle Antwort. Wenn ich das jetzt aber richtig verstehe, kriege ich bei einem 10 Minuten Intervall noch keine Probleme. Dann werde ich das mal testen und hoffe das ich nicht geblockt werde.