NEWS
Zeitplan Probleme
-
@codierknecht
Danke, werde ich bei Gelegenheit mal umbauen. -
@labamba sagte in Zeitplan Probleme:
Danke, werde ich bei Gelegenheit mal umbauen.
Wenn das jetzt erstmal so funktioniert, weißt Du ja wie es geht.
Wenn das auch beim Start des Script sofort starten soll, würde ich das in eine Funktion auslagern und diese dann beim Start des Script und im Intervall aufrufen.
Also in etwa so:
So wird das 1x beim Start des Script und dann alle 17 Minuten ausgeführt. Durch die Funktion erspart man sich das doppelte Codieren (macht man grundsätzlich nicht und ist fehleranfällig).Noch kurz zum Unterschied zwischen Pause und Timeout:
Eine Pause "wartet" bis zur Ausführung des nächsten Blocks.
Die Timeouts werden quasi unmittelbar gestartet. Hier "wartet" nix. Stattdessen wird quasi intern ein Zeitgeber aktiviert, der den Code innerhalb des Timeout zur angegebenen Zeit ausführt.
Weil die Timeouts unmittelbar gestartet werden, wird die 1 Minute auch nicht zu den 5 Minuten "addiert". Darum muss der zweite Timeout auch auf 6 Minuten gesetzt werden.Timeouts sollten theoretisch effizienter sein als Pausen.
-
@codierknecht
Ich bin jetzt mal dazugekommen deinen Vorschlag umzusetzen.
Meine Frage ist geht es auch einfacher mit der Antwort über telegramm? Das macht das Skript ewig lange. Im Moment benötige ich es aber um einen Pumpenausfall zu registrieren und zu sehen ob das Skript sauber läuft.
Zweitens möchte ich noch eine zweite Ebene für Nachts mit längeren Intervallen einführen (hier ist keine Photosyntese der Pflanzen). Das bekomme ich aber leider nicht hin. -
Bitte auch als Screenshot liefern.
Ohne installierten Telegram-Adapter lässt sich das nicht importieren. -
Das ist meine letzte Version. Jedoch weiss ich nicht ob sie läuft!
Kann sie hier nicht reinstellen da sie zu groß ist!
-
Mein altes Skript ist gut gelaufen. Jedoch habe ich es nicht hinbekommen die Tag /Nacht unterscheidung mit hineinzubekommen.
-
@labamba die falls-Abfrage zur Uhrzeit muss in das Intervall, nicht vor das Intervall.
Ansonsten betrifft es nur das starten des Intervalls und ist abhängig davon wann das Skript gestartet wird.
A.
-
@asgothian
Das habe ich auch schon versucht. Mein Problem ist dann aber, dass wenn es im Intervall steht die Fallunterscheitung zwischen Tagund Nacht mit unterschiedlichen Intervalllängen nicht funktioniert. -
-
@labamba auch so geht es nicht - die Entscheidung Tag oder Nacht findet nur zum skriptstart statt.
Vorschlag:
- eine variable ’toggle’, vordefinieren mit True.
- ein Zeitplan alle 17 Minuten.
- darin ein falls für Tag-Nacht Unterscheidung.
- bei Tag - jedes Mal Tag Skript ausführen.
- bei nacht: toggle=nicht toggle. Falls toggle -> Nacht Skript ausführen.
A.
-
@asgothian
da kenne ich mich leider zu wenig aus! -
@labamba
Prinzip: -
@labamba
Wenn Nachtintervall bedeutet, dass nur jeder 2. Durchlauf nötig ist:Beim Start des Script wird die Variable "flag" auf
false
gesetzt.
Ist es Nacht, wird geprüft, ob sietrue
ist. Das ist beim ersten Durchlauf nach 17 Minuten nicht der Fall. Die Variable wechselt auftrue
.
Nach weiteren 17 Minuten ist sie danntrue
. Die Funktion ""hydroNachts" wird ausgeführt.
Die Variable wechselt wieder auffalse
und der Spaß beginnt von vorne.Also ziemlich genau das was @Asgothian vorgeschlagen hat.
Alternative: Man prüft, ob die aktuelle Minute gerade oder ungerade ist. Funktioniert natürlich nur mit einem ungeraden Intervall.
-
@codierknecht
@Asgothian
Erstmal danke, für das Skript. Ich werde jetzt mal versuchen es einzubinden.
Jedoch bin ich noch im Versuchsstadium bzgl. der nächtlichen Bewässerung. Folglich kann es sein, dass ich die Zeiten noch wegen Energieeinsparung usw. verlängern muss. Das ist dann Imit diesem Skript nicht möglich oder?
Wenn ich es richtig verstanden habe ist jetzt das Intervall am Tag 17 Minuten und in der Nacht 34 min. Ist es z.B. möglich die nächtliche Bewässerung dann nur alle 4 Intervalle z.B. 4*17 min also 68 Minuten zu schalten? -
@labamba sagte in Zeitplan Probleme:
Ist es z.B. möglich die nächtliche Bewässerung dann nur alle 4 Intervalle z.B. 4*17 min also 68 Minuten zu schalten?
Dann müsste man statt mit 'nem einfachen Flag mit einer Zählvariablen arbeiten.
Bei jedem Durchlaf hochzählen und wenn z.B. die 4 erreicht ist dann ausführen und Variable zurücksetzen.Oder aber, man setzt 2 Zeitpläne auf.
Einer morgens, der ein "IntervallTags" z.B. alle 17 Minuten startet und "IntervallNachts" löscht.
Und einer Abends, der ein "IntervallNachts" (z.B. alle 68 Minuten) startet und "IntervallTags" löscht.
Das wäre insgesamt am variabelsten, da man dann nicht auf Vielfache von Intervall1 angewiesen ist.
-
@labamba sagte: Ist es z.B. möglich die nächtliche Bewässerung dann nur alle 4 Intervalle z.B. 4*17 min also 68 Minuten zu schalten?
Dann nimm anstelle der Toggle-Variable eine Zählvariable und vergleiche sie zum Ausführen und Rücksetzen mit 4.
-
Ich habe es seit 1 1/2 Stunden laufen aber beim Skript passiert gar nichts. Ich überprüfe dies ja auch mit Telegramm. Vielleicht sehe ich meinen Fehler nicht.
Das Blockly Skript ist leider zu lange um es hier reinzustellen.
-
Ich habe jetzt die Alternative eingesetzt.
Bei stop zyklische Ausführung gibt es bei mir keine Wahlmöglichkeit (direkt unter Astro). Das ist nur möglich wenn ich stop einsetze! Ob es geht werde ich morgen Abend mal testen.
-
@labamba sagte in Zeitplan Probleme:
Bei stop zyklische Ausführung gibt es bei mir keine Wahlmöglichkeit
Du musst ein Intervall nehmen (alle X Minuten) - keinen Timeout (in X Minuten)!
-
Bei der zyklischen Ausführung kann ich aber nichts auswählen!
Ich habe doch gar kein Timeout.