Hello,
nachdem mein Modbus-Logging vom SDM230-Modbus mittels MinimalModbus für Python3 und einem "Isolation-Board" (galvanische Trennung für die Raspberry Pi) double-stackable (!) nun fast zufriedenstellend läuft, möchte ich das weiter automatisieren.
Wie kann ich für Linux einen Cronjob bauen, der regelmäßig alle fünf Minuten ein Py-Script aufruft, aber z. B. von 20:00h bis 06.00h nur alle 30 Minuten.
Den ersten Teil habe ich schon. Aber die Ausnahmezeit bekomme ich logisch nicht rein ins Cron-Konzept.
Alternativ könnte ich die Ausnahmeregel auch ins Skript einbauen, würde die Konfiguration dafür dann aber gleich auslagern in eine *.conf-Datei. Leider fehlen mir dazu (noch) die Python-Kenntnisse.
Dafür habe ich jetzt den Source Code
Tabelle mit:
Von-Datum Bis-Datum Ausnahmezeit
03-15 04-30 17:00, 08:00
05-01 09-15 20:00, 06:00
09-16 03-14 17:00, 08:00
oder so ähnlich.
Hintergrund:
In der Zeit, in der die Sonne nicht scheinen kann, muss ich nicht loggen, oder nur minimal, um eventuell Fehler zu erkennen oder (später mal) den Netzbezug von einem weiteren Modbus-Zähler erfassen zu lassen.
Das Ganze soll dann wieder per SVG-Grafik dargestellt werden können.
Daten (Beispiel):
Datum Zeit(MESZ) Volt Hz kWh-Up kWh-Dn W-Up W-Dn
20230524 135211 237.43 50.0 912.58 16.15 923.3 0.0
20230524 135358 237.59 50.05 912.6 16.15 797.61 0.0
20230524 140010 238.64 50.0 912.7 16.15 858.86 0.0
20230524 140228 242.18 49.95 912.77 16.15 1362.14 0.0
20230524 140400 241.82 49.95 912.9 16.15 2232.62 0.0
20230524 140432 240.42 50.0 912.93 16.15 2877.77 0.0
Das Ganze soll ohne Grafana laufen und mittels einfachster Installationsanleitung zum Laufen gegracht werden können.
Es werden auch Steuerungsfunktionen per HTTPS möglich sein, also das gesamte (einfache) HTML- und CSV-Spektrums wird sinnvoll genutzt werden können.
AJAX will ich mir, soweit es geht, verkneifen.
Kleine Macke noch:
Da der Jonas Berg (Author von MinimalModbus) leider die Function-Codes hart an die meisten Funktionen gekoppelt hat, kann man das Rücksetzen des "Größter Watt-Wert" nicht mit seiner Klasse per Modbus vornehmen. Ich würde Jonas Berg gerne erreichen, um den Misstand im Quellcode beseitigen zu können (wenn ich dann mal irgendwann Python kann...). Leider habe ich keine eMail von ihm.
Vielleicht kann man das aber auch jetzt schon durch Konfigurationsänderung erreichen. Dazu müsste ich die Doku vollständig verstehen, oder ein(e) Python-Kundige(r) müsste mir die Stelle im Manual zeigen, an der das möglich wäre :-)
Dafüe habe ich jetzt aber den Source Code erhalten :-)
Es bleibt also noch viel zu tun!
Glück Auf
Tom vom Berg