NEWS
Gelöst: Stur schalten oder lieber vorher IST-Zustand abfrag
-
Hi zusammen,
ich überlege gerade einige Scripte, die zum Beispiel Licht ein- und ausschalten bei Erkennung von Präsenz, zu optimieren. Betrifft aber auch einige andere ähnliche Scripte.
Ist es sinnvoller (ressourcenschonender) wenn ich jetzt in einem Script vor dem Absenden eines Schaltbefehls nochmal abfrage, ob der Schaltbefehl Sinn macht (einen Zustand ändert) bzw. der Datenpunkt bereits passend steht, oder ist es sinnvoller (ressourcenschonender) wenn ich die Abfrage im Script spare und den Schaltbefehl einfach abschicke, auch wenn er dann nichts ändert?
Hier mal zwei Beispiele. Beide machen exakt das Gleiche (laufen nicht beide, nur hier als Beispiel
)
Obiges schaltet immer, auch wenn das Schalten "unnötig" wäre, falls der Zustand bereits besteht. Unteres prüft vorher, hat aber halt etwas mehr Code.
Oder kommt es gar auf den Adapter des Schalters an, wie der damit umgeht, wenn ein eigentlich unnötiger Schaltbefehl kommt? Bei mir betroffen wären MQTT, Homematic (+IP), Sonoff, Shelly, Deconz und Hue.
Mir geht es einmal darum, unnötigen (Funk-)Verkehr einzusparen, andererseits aber die Scripte nicht unnötig aufzublähen und nur das zu tun, was auch nötig und sinnvoll ist.
Gruss, Jürgen
-
@wildbill sagte: unnötigen (Funk-)Verkehr einzusparen
Das sollte man, da man so gegenseitige Störungen vermeidet. Bei 868 MHz (HomeMatic) muss man unnötiges Senden auch mit Rücksicht auf den Duty Cycle vermeiden.
EDIT: Die komplexe Funktion "steuere" nur einmal per Callback-Funktion verwenden:
-
@paul53 Da muss ich mich erstmal reindenken. Aber sieht gut aus, dann werde ich die Scripte so auf- bzw. umbauen.
Auf welche ID bezieht sich in Deinem Beispiel „Wert von Objekt-ID (ID auswählen)? Schon auf den jeweils zu schaltenden Datenpunkt (den Du an den anderen Stellen „Licht“ genannt hast?Da Du den Duty cycle ansprichst. Das heißt also, Homematic (und andere?) würde stur ein Paket absenden, auch wenn es eigentlich unnötig wäre?
Gruss, Jürgen
-
@wildbill sagte: Auf welche ID bezieht sich in Deinem Beispiel „Wert von Objekt-ID (ID auswählen)?
Bei dir "BWM_Alle_aktiv".
@wildbill sagte in Stur schalten oder lieber vorher IST-Zustand abfragen:
Homematic (und andere?) würde stur ein Paket absenden, auch wenn es eigentlich unnötig wäre?
Ja. Die anderen genannten Protokolle funken auf 2,4 GHz. Auf 868 MHz funken auch Z-Wave und Enocean.
-
@paul53 Ich Blindfisch, vor lauter Abfragen hatte ich vergessen, dass ich ja auch abfrage, ob auf Bewegungsmelder gerade überhaupt reagiert werdedn soll oder ich zu nachtschlafender Zeit lieber darauf verzichte. Super, dann ist mir klar, was ich zu tun habe. Ich danke Dir.
Und Danke für die Info, dass Adapter auch stur Pakete absenden, wenn es eigentlich nicht nötig wäre. Da habe ich dann doch noch einiges mehr zu optimieren.
Gruss, Jürgen