Hallo,
ich bin aktuell dabei eine "Wetterstation" mit dem Raspberry Pi 3 + Standard-Hardware (ASH 2200 Sensoren, USB WDE1-2 als Empfänger der Funk-Infos) zu bauen. Ein Stück weit bin ich dem Ansatz hier gefolgt: Feuchtegesteuerte Kellerlüftung und habe mir für das Python-Skript div. Artikel zu dem Thema durchgelesen. Grundsätzlich funktioniert das auch alles so weit, wenn ich es mir im Putty ausgeben lasse. Jetzt will ich das aber nicht in Putty sehen, sondern in eine MariaDB speichern, um es später an einer Web-Oberfläche anzuzeigen.
Wo ich nun aber ins Stocken gekommen bin ist folgendes: Aktuell läuft das Skript in einer endlosschleife (while (1 == 1)) und wird einmalig aufgerufen. Das finde ich aber nicht wirklich schön. Sollte es einmal, warum auch immer, abbrechen, würde es eben nicht mehr laufen, bis ich es merke. Deshalb würde ich es gerne per Cronjob alle X Minuten starten lassen. Das habe ich auch umgesetzt, dass es alle 5 Minuten gestartet wird.
Nun ist es aber ja so, dass nicht genau dann, wenn der Cronjob startet, auch Daten gesendet werden. Die Frequenz kann sich ja auch ändern, wenn z.B. die Batterien des Sensors leer sind. Ich müsste also warten, bis ein Datensatz kam und dann das Skript beenden. Da wiederum sehe ich das Problem, wenn kein Datensatz kommt (z.B. weil Batterien leer), dann werden alle 5 Minuten neue Skripte gestartet, von denen keines mehr endet, bis der Sensor sich wieder meldet, um dann x-fach denselben Eintrag in die DB zu schreiben.
Habt ihr einen Vorschlag / Ideen, wie ich das so umsetzen kann? Klar könnte ich eine while-Schleife laufen lassen die sagt "laufe so lange wie aktuelle - startzeit < 5 Minuten". Schön ist aber anders, wie ich finde. Macht es grundsätzlich für solche Themen in Python Sinn, objektorientiert zu programmieren?
Vielen Dank und viele Grüße,
Dirk