Seite 1 von 1

Asynchrone Schaltbefehle

Verfasst: Di 22. Mai 2018, 10:08
von mrberni
Normalerweise wird beim Aufruf eines Schaltbefehls via URL erst eine Rückantwort geliefert wenn der Schaltbefehl abgeschlossen ist. Solange läuft der Request weiter und das aufrufende Gerät wartet auf eine Antwort. Beim Einsatz der HA-Bridge mit Alexa z. B. kann dies aber zu Problemen führen, wenn z. B. größere Gruppen oder Aktionen getriggert werden: Es dauert dann ein bisschen bis alle Befehle abgearbeitet sind und es eine Rückantwort gibt. Die HA-Bridge bzw. Alexa ist da aber etwas "pingelig" und erwartet relativ schnell eine Antwort, sonst gibt es eine (irreführende) Fehlermeldung.

Um dies zu umgehen, können die Befehle durch Anhängen von "&async=true" asynchron ausgeführt werden. Zum Beispiel so:
index.php?type=group&action=on&id=1&async=true
Es gibt dann sofort eine positive Rückantwort auf welche Alexa reagieren kann während die eigentlichen Schaltbefehle in einem extra Thread ausgeführt werden.

Gruß

Re: Asynchrone Schaltbefehle

Verfasst: Do 31. Mai 2018, 20:20
von onkeldave
Nabend!
Vielleicht wäre es möglich, diese Funktion auch für URL und SSH Geräte zu ermöglichen? Das Schalten von URL Geräten dauert manchmal eine ganze Weile...

Re: Asynchrone Schaltbefehle

Verfasst: Do 31. Mai 2018, 21:50
von mrberni
Hi,

das sollte für jegliche Schaltvorgänge funktionieren. Gruppen, Aktionen, Geräte. Gerätetyp sollte da keine Rolle spielen...

Gruß

Re: Asynchrone Schaltbefehle

Verfasst: Fr 1. Jun 2018, 07:02
von onkeldave
Ja, das ist klar, aber async=true kann ich ja nur dahinter schreiben, wenn ich das Gerät per URL aus dem Browser Aufrufe. Wie ist es, wenn ich ein Gerät direkt aus FB.Switch schalte? Wie bekomme ich es da mit eingebaut? Ich könnte natürlich ein neues Gerät anlegen, das ein vorhandenes per URL Aufruf startet, aber dann werden es wieder mehr „Dummy“ Geräte.

Re: Asynchrone Schaltbefehle

Verfasst: Fr 1. Jun 2018, 09:31
von mrberni
onkeldave hat geschrieben:
Fr 1. Jun 2018, 07:02
Ja, das ist klar, aber async=true kann ich ja nur dahinter schreiben, wenn ich das Gerät per URL aus dem Browser Aufrufe. Wie ist es, wenn ich ein Gerät direkt aus FB.Switch schalte? Wie bekomme ich es da mit eingebaut? Ich könnte natürlich ein neues Gerät anlegen, das ein vorhandenes per URL Aufruf startet, aber dann werden es wieder mehr „Dummy“ Geräte.
Ah, jetzt verstehe ich. :)
Stimmt das wäre ein sinnvolles Feature-Request.

Gruß