Hallo zusammen,
ich bin gerade dabei Python zu lernen, kenne mich aber bei anderen Sprachen (Java, PHP,...) nicht so schlecht aus, ein solches "Problem" hatte ich aber bisher noch nicht zu lösen.
Und zwar will ich mit meinem Raspberry Pi 3 (und später dem Pi Zero Wifi) 6 Magnetventile zur Gartenbewässerung steuern.
Zum einen möchte ich einstellen können, dass z.B. täglich um 4 Uhr morgens die Ventile 1 - 3 öffnen und für 30 Minuten offen bleiben, danach sollen sie wieder schließen. Um 5 Uhr morgens sollen die Ventile 4 - 6 öffnen und 30 Minuten später wieder schließen.
Die Ventile hängen an einem Relais und dieses über die GPIO am PI. Grundsätzlich kann ich jedes Ventil ansprechen. Das ist kein Problem.
Für mich stellen sich folgende Fragen:
- wie merke ich, wenn die 30 Minuten rum sind
1. Möglichkeit: 4 Cronjobs, der erste um 4 Uhr der die Ventile 1-3 öffnet, der zweite um 4.30 Uhr, der die Ventile 1-3 schließt. Cronjob 4 und 5 machen dasselbe mit den Ventilen 4-6 um 5 bzw. 5.30 Uhr.
2.Möglichkeit: Zwei Cronjobs, der eine ruft um 4 Uhr ein Script auf, öffnet das Ventil, danach kommt eine while-Schleife, die so lange läuft, wie die Uhrzeit < 4.30 Uhr ist. Der zweite macht dasselbe für 5 bis 5.30 Uhr.
Zusätzlich will ich mit Python, MariaDB und NGinx eine "Webseite" in meinem Intranet aufbauen, über die ich manuell jedes Ventil an- und ausmachen kann (das soll nicht verwendet werden, um die täglichen Bewässerungen zu beenden).
Da wäre es natürlich auch sehr schön, wenn ich auch die tägliche Bewässerung darüber konfigurieren könnte. Z.B. wenn ich sehe, dass es am nächsten Tag regnet, ich für den nächsten Tag die tägliche Bewässerung aussetze, die Uhrzeit und Intervalle (z.B. jeder zweite Tag), in denen die Bewässerung startet und deren Dauer, welche Ventile dabei geöffnet werden,...
Würdet ihr dazu dann z.B. immer im Hintergrund bei jeder Änderung die bestehenden Cronjobs löschen und neue anlegen oder wie würdet ihr das machen?
Was ich eher kritisch sehe ist, ein Skript mit Dauer-Schleife laufen zu haben, das "nie" endet und ständig in der DB prüft, wann bewässert werden soll und ob zufällig gerade die Uhrzeit ist,...
Für Ideen / "best practices", wie man sowas angeht, wäre ich sehr Dankbar.
Vielen Dank und viele Grüße,
Dirk