NEWS
Wie erkenne ich ob ein SetState erfolgreich war?
-
Hallo zusammen!
Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.<Gerät>.AVAILABLE
ist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERY
geht nicht häufig genug und ich hätte so 10s Verzögerung.TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?
Danke im Voraus!
-
@kodijack
Wenn es anpingbar ist, dann z.B. mit dem ping-adapter. -
@kodijack Ich würde es direkt mit try/catch versuchen.
Das heißt über ein try den SetState setzen, falls der nicht erfolgreich ist, dann über Catch abfangen. Aktueller gehts nicht.
-
@kodijack: Wie erkenne ich ob ein SetState erfolgreich war?
Das sollte durch state.ack = true mitgeteilt werden.setState(id, soll); var timer = setTimeout(function() { // Aktion, wenn nicht erfolgreich }, 1000); on({id: id, ack: true}, function(dp) { if(dp.state.val == soll) clearTimeout(timer); });
-
@kodijack sagte in Wie erkenne ich ob ein SetState erfolgreich war?:
Hallo zusammen!
Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.<Gerät>.AVAILABLE
ist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERY
geht nicht häufig genug und ich hätte so 10s Verzögerung.TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?
Danke im Voraus!
Ob ein SetState() erfolgreich war kannst du am Ack-Flag sehen. Normalerweise steuerst du eine Hardware, indem das Ack-Flag false ist. Der Adapter reagiert darauf und setzt das Ack-Flag bei Erfolg auf true.
Wie schnell der Adapter ein Gerät als offline erkennt, wenn keine Aktion damit erfolgt, hängt einzig vom Adapter ab
-
@paul53
Ah danke dir, so ähnlich hatte ich es versucht, aber ohne Erfolg.Allerdings klappt das so auch nur mit AN/AUS oder Brightness. Ändere ich unwichtige States (so daß das Licht nicht verändert wird ich aber dennoch eine Rückmeldung bekomme), so ist das stets erfolgreich (da verm. nicht an den Empfänger gesendet). Aber immerhin
-
@peterfido Danke, aber leider nicht so simpel. Hätte auch Zigbee erwähnen sollen, sorry
-
@mickym Hm, wär auch zu einfach gewesen, aber geht leider so nicht. Ist stets erfolgreich. Aber danke!
-
@fastfoot Danke auch dir! Das ist wohl tatsächlich die einzige Möglichkeit.