NEWS
homematic adapter aktualisiert werte mehrfach
-
Hallo zusammen,
mal ne frage an die runde..
gibt es die möglichkeit, entweder über die CCU oder über den iobroker homematic adapter, einstellungen vorzunehmen, welches die werte nicht mehr als einmal aktualisieren lässt?mir ist nämlich beim erstellen eines scripts, welches mir eine email schicken soll, sobald ein wert länger als x minuten auf true ist, dieses verhalten aufgefallen.
Eigentlich nicht weiter tragisch... jedoch wird dadurch der trigger 4 - 5 mal statt lediglich einmal ausgelöst, was
- ressourcen verbraucht und
- je nach dem, wie oft der wert aktualisiert wurde, entsprechend emails mit der gewünschten info raus schickt.
mir ist dieses verhalten bis jetzt auch nur bei homematic werten aufgefallen.
alle anderen werte (von zigbee, xiaomi, sonoff adaptern etc...) zeigen das problem nicht...
hier blinkt der wert, beim state wechsel kurz einmal auf grün, und das wars.
beim homematic adapter, wie gesagt, 4 - 5 mal... -
@ltsalvatore
Wie triggert den Dein Script diesen Wert.
auf "wurde aktualisiert" ?
Es geht ja auch als trigger "wurde geändert" -
@dslraser sagte in homematic adapter aktualisiert werte mehrfach:
@ltsalvatore
Wie triggert den Dein Script diesen Wert.
auf "wurde aktualisiert" ?
Es geht ja auch als trigger "wurde geändert"Hi dslraser
ich habe zwei scripte.. einer um mir über alexa ansagen zu lassen, dass das objekt länger als x minuten an ist und einmal via email.
beide male wird mit "ist wahr" getriggert. -
@ltsalvatore sagte in homematic adapter aktualisiert werte mehrfach:
beim homematic adapter, wie gesagt, 4 - 5 mal...
Kann ich so nicht bestätigen ehrlich gesagt. Letztendlich wird der State dann gesetzt, wenn die CCU ihn dem ioBroker mitteilt - dies sollte nur bei Änderung geschehen. Bei welchem Gerät tritt das denn auf? Zusätzlich werden beim Adapterstart durch hm-rega die States ein mal gesetzt. Zudem wäre es hilfreich dein Skript zu posten.
-
@foxriver76 sagte in homematic adapter aktualisiert werte mehrfach:
@ltsalvatore sagte in homematic adapter aktualisiert werte mehrfach:
beim homematic adapter, wie gesagt, 4 - 5 mal...
Kann ich so nicht bestätigen ehrlich gesagt. Letztendlich wird der State dann gesetzt, wenn die CCU ihn dem ioBroker mitteilt - dies sollte nur bei Änderung geschehen. Bei welchem Gerät tritt das denn auf? Zusätzlich werden beim Adapterstart durch hm-rega die States ein mal gesetzt. Zudem wäre es hilfreich dein Skript zu posten.
hallo foxriver76
das passiert im laufe des betriebs und die beiden schalter, welche ich besitze sind
HMIP-PS und HMIP-PSMhier noch mal meine beiden scripts
ich hoffe man kann es lesen....
-
@ltsalvatore sagte:
meine beiden scripts
Verwende besser nur ein Skript (Resourcen !) mit einem Trigger, der nur bei Änderung reagiert. Innerhalb des Triggers prüfe den Wert des Triggerdatenpunktes und beim Ausschalten stoppe den Timeout. Durch den Stopp beim Ausschalten ist eine Abfrage innerhalb des Timeouts nicht nötig. Außerdem wird so verhindert, dass mehrere Timeouts gleichzeitig laufen können.
-
@ltsalvatore Schätze dass die CCU bei Schaltern evtl je nach Drucklänge öfter sendet. Habe selbst keinen, kann man allerdings im Skript abfangen. -> siehe Paul
-
@foxriver76 sagte in homematic adapter aktualisiert werte mehrfach:
@ltsalvatore Schätze dass die CCU bei Schaltern evtl je nach Drucklänge öfter sendet. Habe selbst keinen, kann man allerdings im Skript abfangen. -> siehe Paul
hallo foxriver76
das dürfte nicht der fall sein, da selbst beim schalten über das iobroker objekt mehrfach der zustand aktualisiert wird.@paul53 sagte in homematic adapter aktualisiert werte mehrfach:
@ltsalvatore sagte:
meine beiden scripts
Verwende besser nur ein Skript (Resourcen !) mit einem Trigger, der nur bei Änderung reagiert. Innerhalb des Triggers prüfe den Wert des Triggerdatenpunktes und beim Ausschalten stoppe den Timeout. Durch den Stopp beim Ausschalten ist eine Abfrage innerhalb des Timeouts nicht nötig. Außerdem wird so verhindert, dass mehrere Timeouts gleichzeitig laufen können.
hi paul53
sorry.. ich habe nur der einfachheit halber beide blockly scripte in einem gepackt um ein screenshot zu machen..
oder macht das kein unterschied bezogen auf deine erste aussage? das würde mich stark wundern, denn sonst müsste man ja aufpassen, dass man bei all den scripten, die man besitzt keine doppelten trigger benutzt...das mit dem timeout stop hab ich bis jetzt ehrlich gesagt nie so wirklich in erwägung gezogen...
bei deinem vorgeschlagenen script sehe ich jedoch ein problem..
die aktionen werden trotzdem nach 15 minuten ausgeführt, egal ob innerhalb der 15 Minuten das objekt wieder ausgeschaltet wurde....
macht so gesehen kein sinn...müsste nicht noch eine if abfrage nach dem 15 minütigen timeout folgen?
oder hab ich gerade komplett den faden verloren?und so gesehen, tut das script ja genau das, was ich will.. das problem aktuell ist ja blos, dass das script mehrfach läuft, da der wert des objekts entsprechend auch mehr als einmal aktualisiert wurde
nachtrag:
also die lösung zu dem problem, ist wohl doch einfach als gedacht auch wenn nicht ganz sauber mMn...wobei ich denke, dass der timeout dort am ende auch überflüssig ist.
einzige sache, welche mich jetzt noch an der aktuellen lösung stört ist die tatsache, dass ja der wert sich innerhalb der 15 minuten einige male ändern kann, was ja dazu führen müsste, dass im hintergrund dieses script entsprechend oft, wie der wert in der zeit geändert wurde, ja auch läuft, oder?!...
-
@ltsalvatore sagte:
bei all den scripten, die man besitzt keine doppelten trigger benutzt...
So schlimm ist es nicht. Allerdings sollte man dort, wo es offensichtlich ist, auf weitere identische Trigger verzichten.
@ltsalvatore sagte in homematic adapter aktualisiert werte mehrfach:
die aktionen werden trotzdem nach 15 minuten ausgeführt, egal ob innerhalb der 15 Minuten das objekt wieder ausgeschaltet wurde....
Nein, das Stoppen des Timers innerhalb der 15 Minuten verhindert die verzögerte Ausführung.
@ltsalvatore sagte in homematic adapter aktualisiert werte mehrfach:
dass ja der wert sich innerhalb der 15 minuten einige male ändern kann, was ja dazu führen müsste, dass im hintergrund dieses script entsprechend oft, wie der wert in der zeit geändert wurde, ja auch läuft, oder?!...
So wie Du es gemacht hast, können mehrere Timer laufen, wenn sich der Wert innerhalb der 15 Minuten mehrmals ändert. Die Verzögerung (timeout) muss in den mache-Zweig der Abfrage !
-
@paul53 sagte in homematic adapter aktualisiert werte mehrfach:
@ltsalvatore sagte:
bei all den scripten, die man besitzt keine doppelten trigger benutzt...
So schlimm ist es nicht. Allerdings sollte man dort, wo es offensichtlich ist, auf weitere identische Trigger verzichten.
@ltsalvatore sagte in homematic adapter aktualisiert werte mehrfach:
die aktionen werden trotzdem nach 15 minuten ausgeführt, egal ob innerhalb der 15 Minuten das objekt wieder ausgeschaltet wurde....
Nein, das Stoppen des Timers innerhalb der 15 Minuten verhindert die verzögerte Ausführung.
@ltsalvatore sagte in homematic adapter aktualisiert werte mehrfach:
dass ja der wert sich innerhalb der 15 minuten einige male ändern kann, was ja dazu führen müsste, dass im hintergrund dieses script entsprechend oft, wie der wert in der zeit geändert wurde, ja auch läuft, oder?!...
So wie Du es gemacht hast, können mehrere Timer laufen, wenn sich der Wert innerhalb der 15 Minuten mehrmals ändert. Die Verzögerung (timeout) muss in den mache-Zweig der Abfrage !
aaaah...oki... das magische wort heist innerhalb!!
das war mir nicht bewusst..bedeutet, wenn ich dein script weiter oben nehme, dass es so dann richtig aussehen sollte:
dadurch wird eine email rausgeschickt, wenn der verbraucher 15 min lang an (true) war,
und das script wird gestoppt, sollte das objekt innerhalb der 15 minuten wieder auf false stehen, richtig? -
@ltsalvatore sagte:
wird eine email rausgeschickt, wenn der verbraucher 15 min lang an (true) war, und das script wird gestoppt, sollte das objekt innerhalb der 15 minuten wieder auf false stehen, richtig?
Nicht das Skript wird gestoppt, aber der Timer (timeout3). So funktioniert es.
-
@paul53 sagte in homematic adapter aktualisiert werte mehrfach:
@ltsalvatore sagte:
wird eine email rausgeschickt, wenn der verbraucher 15 min lang an (true) war, und das script wird gestoppt, sollte das objekt innerhalb der 15 minuten wieder auf false stehen, richtig?
Nicht das Skript wird gestoppt, aber der Timer (timeout3). So funktioniert es.
ja sorry.. das meinte ich auch..
prima.. hat auch wunderbar funktioniert beim testen...toll danke.. dann darf ich mich jetzt am WE wieder hinsetzen und meine ganzen scripts überarbeiten.. denn da ist jetzt so einiges zu korrigieren