Doku: Rollup-Job mit Pfad und Betriebsarten nachgetragen
Liegt in ~/Backup-scripts/solarlog-rollup.sh. Dazu die Eigenschaften der Rohdaten, die man beim Rechnen kennen muss (Momentanleistungen, gemischte Einheiten und Vorzeichen). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+26
-1
@@ -134,6 +134,31 @@ Wichtig beim Auswerten:
|
|||||||
Verbindung zur OpenDTU verliert: Senken sind dann vollständig gemessen, die
|
Verbindung zur OpenDTU verliert: Senken sind dann vollständig gemessen, die
|
||||||
Erzeugung nicht — ohne die Korrektur wird der Direktverbrauch negativ.
|
Erzeugung nicht — ohne die Korrektur wird der Direktverbrauch negativ.
|
||||||
|
|
||||||
|
### Der Rollup-Job
|
||||||
|
|
||||||
|
`~/Backup-scripts/solarlog-rollup.sh` (Schema dazu:
|
||||||
|
`solarlog-rollup.sql`) hat drei Betriebsarten:
|
||||||
|
|
||||||
|
| Aufruf | Was er tut |
|
||||||
|
|---|---|
|
||||||
|
| `fill [--from … --to …]` | Stunden- und Tageswerte fortschreiben. Idempotent (`INSERT … ON DUPLICATE KEY UPDATE`), darf jederzeit wiederholt werden |
|
||||||
|
| `thin [--dry-run] [--months 12]` | Rohdaten älter als zwölf Monate ausdünnen — **nur**, wenn für den Monat ein Aggregat vorliegt. Vorher wird der betroffene Zeitraum monatsweise nach `/volume1/docker/solarLog_history` weggesichert |
|
||||||
|
| `status` | zeigt, bis wohin aggregiert und ab wann ausgedünnt ist |
|
||||||
|
|
||||||
|
Ausgedünnt werden `EnergyFlow`, `Heater` und `weatherStation`; das Zielraster
|
||||||
|
beträgt 15 Minuten. Was man beim Rechnen auf den Rohdaten wissen muss, steht
|
||||||
|
ausführlich im Kopf der SQL-Datei — die wichtigsten Punkte:
|
||||||
|
|
||||||
|
* **Alles sind Momentanleistungen**, gemittelt über rund fünf Minuten. kWh
|
||||||
|
entstehen nur durch Integration über die Zeit, nie durch Mittelwerte über
|
||||||
|
Zeilen.
|
||||||
|
* **Die Einheiten sind gemischt:** die Wallbox-Spalten liefern Kilowatt, alle
|
||||||
|
übrigen Leistungsspalten Watt.
|
||||||
|
* **Die Vorzeichen sind es auch:** `totalConsumption` negativ = Hausverbrauch,
|
||||||
|
`battP` negativ = Laden, und `PL*_OG` kommt negativ, während `PL*_EG` und
|
||||||
|
`PL*_UG` positiv sind.
|
||||||
|
* Messlücken über 15 Minuten zählen nicht als durchgehende Leistung.
|
||||||
|
|
||||||
Die Preistabellen tragen **einen Stichtag und kein Enddatum**; das Ende holt
|
Die Preistabellen tragen **einen Stichtag und kein Enddatum**; das Ende holt
|
||||||
sich die Auswertung mit `LEAD()` beim nächsten Eintrag. Weil ein Stichtag ein
|
sich die Auswertung mit `LEAD()` beim nächsten Eintrag. Weil ein Stichtag ein
|
||||||
Datum ist, kann ein Tag nie zwei Tarife haben — die Verdichtung auf Tage
|
Datum ist, kann ein Tag nie zwei Tarife haben — die Verdichtung auf Tage
|
||||||
@@ -166,7 +191,7 @@ Oberfläche Geräte über den Server statt direkt.
|
|||||||
|
|
||||||
| Aufgabe | Wer | Takt |
|
| Aufgabe | Wer | Takt |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Rohdaten ausdünnen, Stundenarchiv und Tageswerte fortschreiben | Rollup-Job auf der NAS (`solarlog-rollup.sh`) | nachts |
|
| Rohdaten ausdünnen, Stundenarchiv und Tageswerte fortschreiben | `~/Backup-scripts/solarlog-rollup.sh` (läuft als root im MariaDB-Container) | nachts |
|
||||||
| `automation_log` aufräumen | Runner selbst | täglich, 30 Tage Aufbewahrung |
|
| `automation_log` aufräumen | Runner selbst | täglich, 30 Tage Aufbewahrung |
|
||||||
| `calendar_days` füllen | `fetch_calendar.py` | jährlich per Cron |
|
| `calendar_days` füllen | `fetch_calendar.py` | jährlich per Cron |
|
||||||
| Datenbanksicherung | `backupDB.sh` | per Cron |
|
| Datenbanksicherung | `backupDB.sh` | per Cron |
|
||||||
|
|||||||
Reference in New Issue
Block a user