NEWS
[gelöst] Stark verzögerte Triggerreaktion IDs vom Selektor
-
@puppet1912 Hab da mal was gebastelt und getestet. Zumindest funktionierts bei mir so ohne Verzögerung mit den Shellys:
JS-Funktion:
return getObject(id).common.name;
-
@djmarc75 said in Stark verzögerte Triggerreaktion IDs vom Selektor:
return getObject(id).common.name;
Guten Abend!
Erstmal Danke für deine Mühen. Ich habe mir mal erlaubt dein Blockly nachzubauen und die vier bis fünf mal die ich eben getestet habe, war keine großartige Verzögerung da. Bei meinem Testscript im Moment allerdings auch nicht. Es ist mir wirklich ein Rätsel.
Deine Herangehensweise finde ich recht interessant. Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?
Eins haben unsere Scripte allerdings gemein, beide reagieren auf jede Änderung, sodass wenn bspw drei von zehn überwachten Zuständen nur wenige Millisekunden hintereinander auf false wechseln, auch mehrere Nachrichten kommen. Hier muss ich wohl an geeigneter Stelle noch etwas einbauen.
Ich danke dir für deine Hilfe.
Beste Grüße
-
@puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:
Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?
Dass beim Skriptstart die Variable auf den Selektor gesetzt wird und somit nicht verloren geht.
@puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:
war keine großartige Verzögerung da
Bei mir max. 1 Sekunde beim Test.
@puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:
nur wenige Millisekunden hintereinander auf false wechseln
Da ergibt sich die Frage: Warum wechseln denn diese Shellys so oft den Onlinezustand ??? Welche sind das denn ?
-
Da ergibt sich die Frage: Warum wechseln denn diese Shellys so oft den Onlinezustand ??? Welche sind das denn ?
Das ist nicht der Regelfall, eher ein Schönheitsfehler. Ich nutze bspw 6 Shellys für meine Ventilsteuerung der Gartenbewässerung. Diese sind alle über die gleiche Sicherung abgesichert. Wenn also mal der Strom weg ist, aus welchen Gründen auch immer, wechseln gleich mehrere auf false. Beim Zuschalten des Stromes wechseln natürlich nicht alle zum exakt gleichen Zeitpunkt auf true.
Wie gesagt, nur ein Schönheitsfehler und nicht die Regel.
-
@puppet1912 Könntest ja dann das ganze per CRON/Zeitplan abfragen. Nur als Idee.
-
@puppet1912 sagte: Welchen Vorteil hat es, vor dem Trigger den Selektor in eine Variable zu überführen?
Wenn das Ergebnis einer komplexe Funktion - wie Selektor - mehr als einmal verwendet wird (hier zweimal), schont es Ressourcen, wenn man eine Variable mit dem Ergebnis der Funktion füllt und dann diese verwendet.
-
@djmarc75 said in Stark verzögerte Triggerreaktion IDs vom Selektor:
@puppet1912 Könntest ja dann das ganze per CRON/Zeitplan abfragen. Nur als Idee.
Mahlzeit.
Ja das eine sehr gute Idee. Danke dir.
Eine Änderung werde ich auch noch vornehmen müssen. Der Datenpunkt des Shellys welcher den Onlinestatus ausgibt, hat als Namen ebenfalls nur "online". Sinnvoll wäre es aber, den Namen des eigentlichen Devices auzugeben, denn diese enthält gleichzeitig das Ventil welches angesteuert wird.
Könnte man das direkt über eine JS-Funktion realisieren?Mir kam jetzt nur der Gedanke den gesamten Pfad des Online-DPs zu speichern, über "nimm-Text-Ab" die letzten Stellen zu entfernen und dann über eine weitere Funktion den Namen des so erhaltenen Devices zu ermitteln. War das verständlich wie ich das meine?
Grüße
-
Wenn das Ergebnis einer komplexe Funktion - wie Selektor - mehr als einmal verwendet wird (hier zweimal), schont es Ressourcen, wenn man eine Variable mit dem Ergebnis der Funktion füllt und dann diese verwendet.
Danke für die Erläuterung. Grundlegend nachvollziehbar und setze ich in verschiedenen Scripten auch so um. Bspw mit dem "Wert" des Triggers zu arbeiten.
Meine Frage zielte allerdings darauf ab, warum das vor dem eigentlichen Trigger passiert. Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen? Oder habe ich da einen Denkfehler.
Grüße
-
@puppet1912 sagte: Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen?
Das Ergebnis des Selektors ist u.a. der Trigger.
@puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:
Namen des eigentlichen Devices auzugeben
-
@paul53 said in Stark verzögerte Triggerreaktion IDs vom Selektor:
@puppet1912 sagte: Könnte man nicht auch direkt an erster Stelle innerhalb des Triggers die Variable erstellen?
Das Ergebnis des Selektors ist u.a. der Trigger.
@puppet1912 sagte in Stark verzögerte Triggerreaktion IDs vom Selektor:
Namen des eigentlichen Devices auzugeben
Super, vielen Dank. Schau ich mir direkt mal an. Wieder ein Punkt mal Javascript zu lernen.
Danke und Grüße