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 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,7 @@ flowchart LR
|
|||||||
MGR["<b>solarManager.py</b><br/><small>gatherModbusData · gatherOpenDTUData<br/>gatherDTUBIData · gatherShellyEM3Data EG/UG<br/>gatherHeaterData · gatherSkodaData<br/>gatherBYDData · gatherWaterData<br/>charger_goE</small>"]
|
MGR["<b>solarManager.py</b><br/><small>gatherModbusData · gatherOpenDTUData<br/>gatherDTUBIData · gatherShellyEM3Data EG/UG<br/>gatherHeaterData · gatherSkodaData<br/>gatherBYDData · gatherWaterData<br/>charger_goE</small>"]
|
||||||
WPB["<b>wattpilot_bruecke.py</b>"]
|
WPB["<b>wattpilot_bruecke.py</b>"]
|
||||||
WSB["<b>wsMQTTbridge.py</b>"]
|
WSB["<b>wsMQTTbridge.py</b>"]
|
||||||
|
FCS["<b>gatherForecastData.py</b><br/><small>Open-Meteo</small>"]
|
||||||
RAIN["<b>gatherRainData.py</b>"]
|
RAIN["<b>gatherRainData.py</b>"]
|
||||||
|
|
||||||
BROKER{{"<b>MQTT-Broker</b>"}}
|
BROKER{{"<b>MQTT-Broker</b>"}}
|
||||||
@@ -44,9 +45,11 @@ flowchart LR
|
|||||||
WPILOT -->|WebSocket| WPB
|
WPILOT -->|WebSocket| WPB
|
||||||
STATION -->|WebSocket| WSB
|
STATION -->|WebSocket| WSB
|
||||||
METEO -->|HTTPS| RAIN
|
METEO -->|HTTPS| RAIN
|
||||||
|
METEO -->|HTTPS| FCS
|
||||||
|
|
||||||
SOLARLOG -->|zisterne| MGR
|
SOLARLOG -->|zisterne| MGR
|
||||||
MGR -->|"EnergyFlow · skoda<br/>skoda_ladepunkte · byd<br/>byd_zellen"| SOLARLOG
|
MGR -->|"EnergyFlow · skoda<br/>skoda_ladepunkte · byd<br/>byd_zellen"| SOLARLOG
|
||||||
|
FCS -->|"weatherHours · weatherDays<br/>weatherTilted · weatherForecastLog"| SOLARLOG
|
||||||
|
|
||||||
MGR -->|"solarManager/#"| BROKER
|
MGR -->|"solarManager/#"| BROKER
|
||||||
WPB -->|"wattpilot/#"| BROKER
|
WPB -->|"wattpilot/#"| BROKER
|
||||||
@@ -60,11 +63,11 @@ flowchart LR
|
|||||||
classDef skript fill:#fff6e5,stroke:#d0a548
|
classDef skript fill:#fff6e5,stroke:#d0a548
|
||||||
classDef speicher fill:#eaf5ee,stroke:#6fa981
|
classDef speicher fill:#eaf5ee,stroke:#6fa981
|
||||||
class WR,EM3,HEIZ,BYD,GOE,WPILOT,SKODA,STATION,METEO,VENTILE,HAUSGER quelle
|
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
|
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
|
Ventilsteuerungen, die Wallbox und jedes Gerät, das
|
||||||
Home-Assistant-Discovery spricht, schreiben ohne Umweg auf den Broker. Für
|
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
|
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
|
alle 100 Sekunden einen vollständigen Satz. Einzelheiten im Kopf des Moduls
|
||||||
und, ausführlich, im Web-Repository unter `doku/byd.md`.
|
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
|
Die Zisterne fällt aus der Reihe — ihr Stand steht in `solarLog`, und
|
||||||
`gatherWaterData` liest ihn von dort. Die Daten laufen also durch die
|
`gatherWaterData` liest ihn von dort. Die Daten laufen also durch die
|
||||||
Datenbank hindurch von einem Prozess zum nächsten.
|
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` |
|
| `homeassistant/#` | die Geräte selbst | `device_discovery.py` |
|
||||||
| **`solarLog`** | `solarManager.py` | `ajax/*.php`, `gatherWaterData` |
|
| **`solarLog`** | `solarManager.py` | `ajax/*.php`, `gatherWaterData` |
|
||||||
| `byd`, `byd_zellen` (in `solarLog`) | `gatherBYDData.py`, alle 5 bzw. 15 Minuten | Web-Repo (`solarLog_byd.sql`) |
|
| `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` |
|
| **`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` |
|
| `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) |
|
| `solarManager.py` | `startSolarServer.sh` (Aufgabenplaner, beim Hochfahren) |
|
||||||
| `autoActions/autoaction_runner.py` | dito |
|
| `autoActions/autoaction_runner.py` | dito |
|
||||||
| `gatherRainData.py` | dito |
|
| `gatherRainData.py` | dito |
|
||||||
|
| `gatherForecastData.py` | dito |
|
||||||
| `wsMQTTbridge.py` | `startMQTTbridge.sh` |
|
| `wsMQTTbridge.py` | `startMQTTbridge.sh` |
|
||||||
| `wattpilot_bruecke.py` | `startWattpilotMQTT.sh` |
|
| `wattpilot_bruecke.py` | `startWattpilotMQTT.sh` |
|
||||||
| `autoActions/fetch_calendar.py` | Cronjob, einmal im Jahr |
|
| `autoActions/fetch_calendar.py` | Cronjob, einmal im Jahr |
|
||||||
|
|||||||
Reference in New Issue
Block a user