NEWS
Script zyklisch per variabler Zeit steuern
-
Hallo zusammen,
ich arbeite schon einige Zeit erfolgreich mit Blockly, habe aber nun ein Problem, das ich nicht verstehe:Ziel: Ein Script soll zyklisch, jedoch variablen Abständen laufen.
Dafür habe ich einen Datenpunkt erzeugt.
Das Script läuft auch in einer Schleife mit dem Intervall aus dem Datenpunkt (z.B. 1.000 Sekunden).
Ändere ich während der Laufzeit denDatenpunkt auf z.B. 2.000 Sek. so hat das keinen Einfluß auf das Script.
Erst, wenn das Script angehalten und wieder gestartet wird, wird der neue Wert berücksichtigt.Wie kan nich das lösen?
Vielen Dank
Hier das Script in Kurzform.
-
@tors7en sagte: Wie kan nich das lösen?
Man muss das laufende Intervall stoppen und mit der neuen Zykluszeit neu starten.
-
@tors7en
Verrätst Du uns auch, was Du damit machst?
Ein Intervall ist nicht unbedingt ressourcensparend. Das könnte man evtl. besser lösen. -
timeout ist besser wie intervall.
dann kannst du bei jedem durchgang neu entscheiden, wann das skript das nächste mal ausgeführt wird.
mit intervall hat man manchmal das risiko eines memory leaks. timeout beendet sich immer safe -
Vielern Dank für Euer Feeback.
Ich werden das testen und umsetzen und berücksichtigen.Was mache ich damit:
Ich steuere damit den Überschuss aus meiner PV-Anlage zum PKW laden.
Per diesem Parameter möchte ich steuern, wie oft bzw. in welchem Zyklus die Berechnung durchgeführt bzw. der Ladestrom angepasts wird.
Eingeben möchte ich den Wert über einen Datnpunkt im vis, was bereits funktioniert, nur eben mit dem o.g. Problem. -
@tors7en sagte in Script zyklisch per variabler Zeit steuern:
Vielern Dank für Euer Feeback.
Ich werden das testen und umsetzen und berücksichtigen.Was mache ich damit:
Ich steuere damit den Überschuss aus meiner PV-Anlage zum PKW laden.
Per diesem Parameter möchte ich steuern, wie oft bzw. in welchem Zyklus die Berechnung durchgeführt bzw. der Ladestrom angepasts wird.
Eingeben möchte ich den Wert über einen Datnpunkt im vis, was bereits funktioniert, nur eben mit dem o.g. Problem.An dieser Stelle würde ich vollständig auf ein Intervall / timeout verzichten. Wie funktioniert es dann ?
Du benötigst einen Datenpunkt in dem du ablegst was die Berechnung ergibt. Dazu kannst du nicht den Datenpunkt des Ladestroms nutzen, da dieser nur dann sinnvoll gefüllt ist wenn auch geladen werden soll - sprich ein Auto ist angeschlossen.
Ansonsten folgt das Skript dem folgenden Muster:
- Trigger auf Änderung des Überschusses
- Vergleich: Zeitstempel letzte Aktualisierung des "Ergebnis Datenpunkt" zu jetzt. Ist die Zeitspanne grösser als in der Vis angegeben: Neuberechnung anstossen. Ist sie es nicht, nix tun.
A.