NEWS
Verhalten von getState, setState im Zusammenhang mit Homematic
-
Mahlzeit Leute,
mal wieder eine Anfängerfrage von mir:
Ich hatte ein Skript begonnen, dass regelmäßig gewisse Stati setzt mittels der Schedule Funktion. Da ich eigentlich den Messageload, der von der HM CCU zu den Akteuren raus geht minimieren möchte, habe ich mal eine Frage zum Verhalten der beiden Methoden.
1. Wenn ich jetzt jede Stunde ein setState ausführe, versucht Homematic dann komplett an den Akteur durchzufunken auch wenn er schon auf dem gewünschten Status steht?
2. Da ich vermute, dass ersteres mit ja beantwortet wird, dachte ich mir ich könne den Nachrichtenverkehr verringern, indem ich vor dem ausführen von setState mittels getState abfrage, ob der State schon auf gewünschtem Wert ist? Nun entsprechende Frage: Sorgt die getState Methode auch für zusätzlichen Funkverkehr zwischen HM und Akteur oder wird hier nur der Stati der sowieso im Adapter regelmäßig aktualisiert wird returned?
Schon mal vielen Dank an denjenigen der sich meiner Frage annimmt.
beste Grüße
Fox
-
Deshalb wird hier im Allgemeinen empfohlen, immer den Status abzufragen, ob er denn überhaupt nochmal neu gesetzt werden muss!
Und ja, es geht dabei um Vermeidung von Funksignalen, da ja nur eine bestimmte Anzahl von Signalen in einer bestimmten Zeit gesendet werden darf (Stichwort: duty cycle)!
Hast du denn ein bestimmtes Problem, warum du regelmäßig einen Status neu setzen willst?
Enrico
Edit: Eine Frage hatte ich überlesen. Es entsteht kein Funkverkehr für die Statusabfrage (außer vielleicht im WLAN, aber darum gehts ja nicht!), es wird ja nur in der CCU nachgefragt, wie der Status ist, so jedenfalls bei HM-Geräten.
-
Deshalb wird hier im Allgemeinen empfohlen, immer den Status abzufragen, ob er denn überhaupt nochmal neu gesetzt werden muss!
Und ja, es geht dabei um Vermeidung von Funksignalen, da ja nur eine bestimmte Anzahl von Signalen in einer bestimmten Zeit gesendet werden darf (Stichwort: duty cycle)! `
Vielen Dank schon mal, also dann werde ich das erst mal so abändern auf die schnelle!
Hast du denn ein bestimmtes Problem, warum du regelmäßig einen Status neu setzen willst? `
Mein Problem ist eigentlich, dass ich am Anfang (also vor 3 Tagen) in meinem Leichtsinn dachte ich code einfach mal darauf los. Habe dann entsprechend eine (wenn ich hier Skripte anschaue, vergleichsweiße simple) Heizungssteuerung auf Basis von schedule statt subscribe gebaut. Das ganze möchte ich am Wochenende mal angehen und es umstellen. Nur jetzt als Quick Fix dachte ich eben baue ich in meine setter-Methoden noch eine if-Abfrage vor dem state setzen.
beste Grüße & vielen Dank
-
Viel Spaß beim Scripten!
Wenn Fragen dann fragen! Ich kann dir bei "normalem" Javascript nicht mal ansatzweise helfen, aber dafür tummeln sich hier genug Profis, die auch gern helfen!
Enrico