From b4e3531800463b1b4ad193806dc081efc4be8f87 Mon Sep 17 00:00:00 2001 From: "m0@nas" Date: Mon, 21 Sep 2026 14:07:08 +0200 Subject: [PATCH] README: gatherForecastData.py aufgenommen Der fuenfte Prozess, der aktiv etwas abholt - im Bild, in der Tabelle der geschriebenen Tabellen und in der, die sagt, was wann startet. Co-Authored-By: Claude Opus 5 --- README.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 67f9cc9..7384cca 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ flowchart LR MGR["solarManager.py
gatherModbusData · gatherOpenDTUData
gatherDTUBIData · gatherShellyEM3Data EG/UG
gatherHeaterData · gatherSkodaData
gatherBYDData · gatherWaterData
charger_goE
"] WPB["wattpilot_bruecke.py"] WSB["wsMQTTbridge.py"] + FCS["gatherForecastData.py
Open-Meteo"] RAIN["gatherRainData.py"] BROKER{{"MQTT-Broker"}} @@ -44,9 +45,11 @@ flowchart LR WPILOT -->|WebSocket| WPB STATION -->|WebSocket| WSB METEO -->|HTTPS| RAIN + METEO -->|HTTPS| FCS SOLARLOG -->|zisterne| MGR MGR -->|"EnergyFlow · skoda
skoda_ladepunkte · byd
byd_zellen"| SOLARLOG + FCS -->|"weatherHours · weatherDays
weatherTilted · weatherForecastLog"| SOLARLOG MGR -->|"solarManager/#"| BROKER WPB -->|"wattpilot/#"| BROKER @@ -60,11 +63,11 @@ flowchart LR classDef skript fill:#fff6e5,stroke:#d0a548 classDef speicher fill:#eaf5ee,stroke:#6fa981 class WR,EM3,HEIZ,BYD,GOE,WPILOT,SKODA,STATION,METEO,VENTILE,HAUSGER quelle - class MGR,WPB,WSB,RAIN skript + class MGR,WPB,WSB,RAIN,FCS skript class BROKER,SOLARLOG speicher ``` -Vier Prozesse holen aktiv etwas ab. Alles andere meldet sich von selbst: die +Fünf Prozesse holen aktiv etwas ab. Alles andere meldet sich von selbst: die Ventilsteuerungen, die Wallbox und jedes Gerät, das Home-Assistant-Discovery spricht, schreiben ohne Umweg auf den Broker. Für deren Messwerte ist also **kein Skript** zuständig — wer sie sucht, sucht am @@ -85,6 +88,19 @@ kurz danach — der Sammler klopft deshalb jede Sekunde an und bekommt so rund alle 100 Sekunden einen vollständigen Satz. Einzelheiten im Kopf des Moduls und, ausführlich, im Web-Repository unter `doku/byd.md`. +`gatherForecastData` holt alle zwanzig Minuten die Wettervorhersage von +Open-Meteo und schreibt sie nach `solarLog` (`weatherHours`, `weatherDays`, +`weatherForecastLog`, `weatherTilted`) — Grundlage des Meteogramms der +Weboberfläche. Es ist der einzige Sammler, der nichts nach MQTT +veröffentlicht: ein Meteogramm liest niemand im Sekundentakt. + +**Es löscht nichts.** Die Tabellen sind zugleich ein Archiv — aus der +Einstrahlung und `EnergyFlow_hourly.pv_kwh` soll später eine eigene +Ertragsprognose gerechnet werden. `wetterarchiv_nachtragen.py` hat sie +einmalig aus der ERA5-Schnittstelle von Open-Meteo bis zum 02.04.2022 +zurückgefüllt. Einzelheiten stehen im Web-Repository unter +`doku/meteogramm.md`. + Die Zisterne fällt aus der Reihe — ihr Stand steht in `solarLog`, und `gatherWaterData` liest ihn von dort. Die Daten laufen also durch die Datenbank hindurch von einem Prozess zum nächsten. @@ -160,6 +176,7 @@ von Hand, wenn sich am Bestand etwas geändert hat. | `homeassistant/#` | die Geräte selbst | `device_discovery.py` | | **`solarLog`** | `solarManager.py` | `ajax/*.php`, `gatherWaterData` | | `byd`, `byd_zellen` (in `solarLog`) | `gatherBYDData.py`, alle 5 bzw. 15 Minuten | Web-Repo (`solarLog_byd.sql`) | +| `weatherHours`, `weatherDays`, `weatherTilted`, `weatherForecastLog` (in `solarLog`) | `gatherForecastData.py`, alle 20 Minuten; nichts wird geloescht | Web-Repo (`solarLog_weather.sql`) | | **`homeMesh`** | `device_discovery.py`, Runner, Web-Editor | Runner, `ajax/*.php` | | `skoda.conf` | Einstellungen → Fahrzeug (`restricted/skodaKeys.php`) oder von Hand | `gatherSkodaData.py`, `ajax/skodaCmd.php` | @@ -170,6 +187,7 @@ von Hand, wenn sich am Bestand etwas geändert hat. | `solarManager.py` | `startSolarServer.sh` (Aufgabenplaner, beim Hochfahren) | | `autoActions/autoaction_runner.py` | dito | | `gatherRainData.py` | dito | +| `gatherForecastData.py` | dito | | `wsMQTTbridge.py` | `startMQTTbridge.sh` | | `wattpilot_bruecke.py` | `startWattpilotMQTT.sh` | | `autoActions/fetch_calendar.py` | Cronjob, einmal im Jahr |