NEWS
erfolgreiche Scriptausführung startet ein anderes Script
-
Ich habe ein Script, dass mir die Daten meiner PV stündlich abholt.
Irgendwo aus dem Forum geklaut (Solarweb .. für Fronius)
jetzt möchte ich nach erhalt der Daten, also wenn wirklich alle geschrieben sind, wäre meiner Meinung nach der positive Abschluss des Scripts, ein anderes starten.
Kann man die Scriptausführung überwachen und damit steuern?
Mir ist klar, ich könnte eine Variable etc. setzen, aber die Frage ist schreibt er diese zu letzt?
Die Timestamps der Datenpunkte sind leicht unterschiedlich (ms), da aber meines Wissens die Werte der DPs beim Scriptstart ins Script frozen rein gehen, kann ich mich nicht auf einen geänderten DP für einen Trigger verlassen.Kann ich das irgendwie kompensieren, bzw. das vorherige Script aussitzen?
-
@maximal1981 pack doch ejnfach den code in ein scrpt in funktionen, die kannst du dann beliebig aufrufen.sondt gibt es auch noch sendTo, sollte auch gehen
-
@dirkhe das Script ist nicht von mir, und wollte ich eigentlich nicht verändern.
SendTo hab ich noch nie verwendet. Kannst du mir das kurz schildern?
-
@maximal1981 ernsthaft kann man ohne das Skript zu sehen nicht helfen - sollte klar sein !?
-
@djmarc75 aus meiner Sicht nicht notwendig, aber gerne das Script.
Sollte folgendes Script abgearbeitet sein, möchte ich ein anderes anstoßen. kann das der Adapter, ja/nein?
https://forum.iobroker.net/topic/51061/daten-aus-fronius-solarweb-auslesen
-
@maximal1981 sagte in erfolgreiche Scriptausführung startet ein anderes Script:
Kann man die Scriptausführung überwachen und damit steuern?
man kann ein script per datenpunkt starten. im folgenden besipiel zwar per button
den datenpunkt kannst du aber auch in deinem script setzenhttps://forum.iobroker.net/topic/4659/script-per-button-aufrufen/3?_=1704412007566
-
@oliverio ich vermute wir reden aneinander vorbei.
Per DP ist es kein Problem, mir geht es darum, kann ich den Erfolg des Scripts abfangen.
ich würde den DP übergehen (wollen). -
entweder schreibt das skript seinen "erfolg" oder fortschritt selbst wieder in datenpunkte, die du überwachen kannst.
steuern eines skripts nur dann wenn das vorgesehen ist.
das würde ja auch wieder über datenpunkte erfolgen, die dann die verarbeitung eines skriptteils anstößtwenn die einzelnen funktionsbausteine bereits in funktionen vorhanden sind, dann kannst du diese natürlich in einem eigenen skript verwenden und mit business logik versehen wie du willst. (erst teil1, dann wenn wert>5 teil2, wenn nicht teil3, etc)
-
@maximal1981 vlt versteht du script in iobroker Zusammenhang auch falsch. Wenn du auf Betriebssystem ebene bist, startet du ein script, dan ggf. Daraus das nächste usw.
Beim iobroker kann man das auch so machen, aber normalerweise läuft das script die ganze zeit und hört auf Ereignisse, zb. eine dp Änderung.
Also ich schalte meine scripte nur manuell an/aus, zb. Habe ich eines für den Garten, das ist aktuell aus.Die Frage ist doch, wie du Erfolg definierst. Innerhalb eines scriptes werden gewisse Dinge gemacht, jedes für sich gesehen ist doch ein Erfolg. Wenn du eine Aktion durchführen willst, wenn mehrere Dinge eingetreten sind, dann musst du pollen, bis alles erreicht ist, am besten natürlich mit dem wissen, dass eine bestimmte Sache (ein gesetzter dp) auf jeden fall erfolgreich ist, da könntest du dann ansetzten und die anderen Sachen abfragen, wenn nicht gesetzt, rufst du die selbe Funktion ein paar sekunden/minuten später nochmal auf.
Also generell von linearer denke zu event getriebener denke wechseln. Hilft dir sowieso beim scripten hier weiter, weil fast alles asynchron ausgeführt wird -
@dirkhe
@OliverIO
ok, denke ich habe es falsch interpretiert.
da das erste Script zyklisch abläuft, wollte ich mich auf das Ende der Durchführung aufhängen.Jetzt muss ich mir anschauen welches Übel ich in Kauf nehme, oder ich packe es einfach am Ende in das ursprüngliche Script, aber das wollte ich ja vermeiden.
Aber danke für den Input