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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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!
-
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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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!
-
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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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!
-
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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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: 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); }); -
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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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 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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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 :-)
-
@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 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>.AVAILABLEist zwar nett, aber braucht zu lange für ein Update.
Auch ein<Gerät>.DEVICE_QUERYgeht 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