README auf den Stand gebracht: Fahrzeug-Reiter, Vorabend, skoda_ladepunkte
- skodaKeys.php in Verzeichnisbaum, Modelltabelle und Include-Graph - settings.js hat vier Reiter, ajax/settings.php die skoda-keys-Aktionen - Kachelformat leistung_kw, carForm.php in der Endpunkttabelle - solarLog.skoda_ladepunkte, Schalter "Am Vorabend" bei den Automatiken - SolarManager-Repo ohne Wecker Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -56,6 +56,7 @@ smart/
|
|||||||
│ ├── roomControls.php Bedienelemente des Raum-Modals
|
│ ├── roomControls.php Bedienelemente des Raum-Modals
|
||||||
│ ├── commands.php ein Kommando tatsächlich abschicken
|
│ ├── commands.php ein Kommando tatsächlich abschicken
|
||||||
│ ├── wallboxen.php beide Wallboxen über MQTT
|
│ ├── wallboxen.php beide Wallboxen über MQTT
|
||||||
|
│ ├── skodaKeys.php MyŠkoda-Schlüssel in skoda.conf (nie zurück an den Browser)
|
||||||
│ ├── logdateien.php Logdateien lesen
|
│ ├── logdateien.php Logdateien lesen
|
||||||
│ ├── aussenplan.php Schrägbild des Außengeländes (SVG, gerechnet)
|
│ ├── aussenplan.php Schrägbild des Außengeländes (SVG, gerechnet)
|
||||||
│ ├── reiter.php das eine Reiter-Bauteil der ganzen Seite
|
│ ├── reiter.php das eine Reiter-Bauteil der ganzen Seite
|
||||||
@@ -288,7 +289,8 @@ aus `homeRooms` — der Raumtabelle, die `home.php` als JSON in die Seite
|
|||||||
schreibt. `homeSVG.kachelWert()` ist die Stelle, an der aus einer Nachricht
|
schreibt. `homeSVG.kachelWert()` ist die Stelle, an der aus einer Nachricht
|
||||||
Text wird: Topic oder Wechselrichtersumme lesen, ggf. JSON-Pfad
|
Text wird: Topic oder Wechselrichtersumme lesen, ggf. JSON-Pfad
|
||||||
herausgreifen, Vorzeichen drehen (`negativ`), skalieren (`format:
|
herausgreifen, Vorzeichen drehen (`negativ`), skalieren (`format:
|
||||||
"leistung"`), runden (`stellen`), Einheit anhängen. Klick auf eine Kachel
|
"leistung"` für Watt-Quellen, `"leistung_kw"` für Quellen, die schon
|
||||||
|
Kilowatt melden — die Wallboxen), runden (`stellen`), Einheit anhängen. Klick auf eine Kachel
|
||||||
öffnet das Raum-Modal über `ajax/room.php?room=EG_Bad`.
|
öffnet das Raum-Modal über `ajax/room.php?room=EG_Bad`.
|
||||||
|
|
||||||
**`solarMQTT.js`** — die große Anlagenübersicht. `solarSVG` zeichnet den
|
**`solarMQTT.js`** — die große Anlagenübersicht. `solarSVG` zeichnet den
|
||||||
@@ -318,9 +320,9 @@ Anfragen dazu, und die Auswahlfelder füllten sich asynchron. Dazu die
|
|||||||
Übersicht: Nachfolger einklappen (`toggleAutomationGroup`) und die Rückfrage
|
Übersicht: Nachfolger einklappen (`toggleAutomationGroup`) und die Rückfrage
|
||||||
vor dem Löschen (`frageNachfolger`).
|
vor dem Löschen (`frageNachfolger`).
|
||||||
|
|
||||||
**`settings.js`** — drei Reiter in einer Datei, deutlich getrennt: Preistabellen,
|
**`settings.js`** — vier Reiter in einer Datei, deutlich getrennt: Preistabellen,
|
||||||
Home-Kacheln, Geräte. Jeder Abschnitt hat sein Modell (`kachelModell`,
|
Home-Kacheln, Geräte, Fahrzeug. Jeder Abschnitt hat sein Modell (`kachelModell`,
|
||||||
`geraeteModell`), seine `zeichne…()`-Funktion und eine `…Binden()`-Funktion,
|
`geraeteModell`, `skodaModell`), seine `zeichne…()`-Funktion und eine `…Binden()`-Funktion,
|
||||||
die genau einen Ereignisbehandler auf den Container legt (Delegation) —
|
die genau einen Ereignisbehandler auf den Container legt (Delegation) —
|
||||||
deshalb überlebt Bedienung jedes Neuzeichnen.
|
deshalb überlebt Bedienung jedes Neuzeichnen.
|
||||||
|
|
||||||
@@ -337,7 +339,7 @@ klein: Diagramme füllen bzw. Logzeilen nachladen und einfärben.
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `room.php` | `?room=EG_Bad`, `POST ?action=command\|temp` | Raum-Modal bauen; ein Kommando oder eine Solltemperatur senden |
|
| `room.php` | `?room=EG_Bad`, `POST ?action=command\|temp` | Raum-Modal bauen; ein Kommando oder eine Solltemperatur senden |
|
||||||
| `AutoAction.php` | `?action=editor\|list\|followers\|werte`, `POST save\|delete\|toggle` | Automatik-Editor und -Übersicht |
|
| `AutoAction.php` | `?action=editor\|list\|followers\|werte`, `POST save\|delete\|toggle` | Automatik-Editor und -Übersicht |
|
||||||
| `settings.php` | `?action=list\|kacheln\|geraete`, `POST save\|kacheln-save\|geraete-raeume\|geraet-loeschen` | Einstellungsseite |
|
| `settings.php` | `?action=list\|kacheln\|geraete\|skoda-keys`, `POST save\|kacheln-save\|geraete-raeume\|geraet-loeschen\|skoda-keys-save` | Einstellungsseite; `skoda-keys` meldet nur, ob ein Schlüssel hinterlegt ist und worauf er endet |
|
||||||
| `getStats.php` | `GET` | Jahresstatistik, alle Jahre, mit Metadaten je Kennzahl |
|
| `getStats.php` | `GET` | Jahresstatistik, alle Jahre, mit Metadaten je Kennzahl |
|
||||||
| `energyHistory.php` | `?series=prod\|cons&range=month\|year\|decade` | Verbrauchs-/Erzeugungsverlauf (Rohdaten oder Stundenarchiv) |
|
| `energyHistory.php` | `?series=prod\|cons&range=month\|year\|decade` | Verbrauchs-/Erzeugungsverlauf (Rohdaten oder Stundenarchiv) |
|
||||||
| `getProdData` `getConsData` `getForecastData` `getHeaterData` `getWaterData` | `?FROM=&TO=` | Chart.js-Datensätze für die jeweilige Karte |
|
| `getProdData` `getConsData` `getForecastData` `getHeaterData` `getWaterData` | `?FROM=&TO=` | Chart.js-Datensätze für die jeweilige Karte |
|
||||||
@@ -346,7 +348,7 @@ klein: Diagramme füllen bzw. Logzeilen nachladen und einfärben.
|
|||||||
| `skodaCmd.php` | `POST befehl=…` | Laden/Klima/Lüftung am Fahrzeug |
|
| `skodaCmd.php` | `POST befehl=…` | Laden/Klima/Lüftung am Fahrzeug |
|
||||||
| `tile.php` | `?z=&x=&y=` | Kartenkachel aus dem eigenen Zwischenspeicher, sonst einmalig von OSM |
|
| `tile.php` | `?z=&x=&y=` | Kartenkachel aus dem eigenen Zwischenspeicher, sonst einmalig von OSM |
|
||||||
| `logs.php` | `?action=list\|read` | Zustand und Zeilen der Logdateien |
|
| `logs.php` | `?action=list\|read` | Zustand und Zeilen der Logdateien |
|
||||||
| `carEG.php` `carOG.php` `carSteuerung.php` `heater.php` `watering.php` `tahoma.php` | | Wallboxen, Heizstab, Bewässerung, Tahoma-Bedienung |
|
| `carEG.php` `carOG.php` `carSteuerung.php` `carForm.php` `heater.php` `watering.php` `tahoma.php` | | Wallboxen, Heizstab, Bewässerung, Tahoma-Bedienung |
|
||||||
| `chartData.php` | (kein Endpunkt) | gemeinsame Bausteine der Chart-Endpunkte |
|
| `chartData.php` | (kein Endpunkt) | gemeinsame Bausteine der Chart-Endpunkte |
|
||||||
| `phpMQTT.php` | (Bibliothek) | MQTT aus PHP heraus, für Kommandos |
|
| `phpMQTT.php` | (Bibliothek) | MQTT aus PHP heraus, für Kommandos |
|
||||||
|
|
||||||
@@ -367,6 +369,7 @@ Kennzahlen, `energyHistory.php` wählt die Quelle nach Zeitraum,
|
|||||||
| `roomControls.php` | Welches Gerät welches Bedienelement bekommt | `bedienform()`, `zeichneBeschattung()`, `zeichneLicht()`, `zeichneMesswerte()` |
|
| `roomControls.php` | Welches Gerät welches Bedienelement bekommt | `bedienform()`, `zeichneBeschattung()`, `zeichneLicht()`, `zeichneMesswerte()` |
|
||||||
| `commands.php` | Ein Kommando abschicken (MQTT/WLED/HTTP/Tahoma) | `executeCommand()`, `sendeMqtt()`, `sendeWled()`, `sendeHttp()`, `sendeTahoma()` |
|
| `commands.php` | Ein Kommando abschicken (MQTT/WLED/HTTP/Tahoma) | `executeCommand()`, `sendeMqtt()`, `sendeWled()`, `sendeHttp()`, `sendeTahoma()` |
|
||||||
| `wallboxen.php` | Beide Wallboxen über MQTT | `wallboxen()`, `wallboxSetzen()` |
|
| `wallboxen.php` | Beide Wallboxen über MQTT | `wallboxen()`, `wallboxSetzen()` |
|
||||||
|
| `skodaKeys.php` | MyŠkoda-Schlüssel in `skoda.conf` (SolarManager): lesen, prüfen, eintragen — ein Wert geht nie an den Browser zurück | `skodaStand()`, `skodaSchluesselSpeichern()` |
|
||||||
| `logdateien.php` | Logdateien vom Ende her lesen | `logDateien()`, `logLesen()`, `logZerlegen()` |
|
| `logdateien.php` | Logdateien vom Ende her lesen | `logDateien()`, `logLesen()`, `logZerlegen()` |
|
||||||
| `aussenplan.php` | Schrägbild des Außengeländes | Projektion + SVG |
|
| `aussenplan.php` | Schrägbild des Außengeländes | Projektion + SVG |
|
||||||
| `reiter.php` | Reiter | `reiterLeiste()`, `reiterFlaecheAuf/Zu()`, `reiterBlock()` |
|
| `reiter.php` | Reiter | `reiterLeiste()`, `reiterFlaecheAuf/Zu()`, `reiterBlock()` |
|
||||||
@@ -392,6 +395,7 @@ flowchart LR
|
|||||||
HOME["home.php"] --> ROOMS
|
HOME["home.php"] --> ROOMS
|
||||||
HOME --> REITER
|
HOME --> REITER
|
||||||
SET["settings.php"] --> COSTS & KACH & REITER
|
SET["settings.php"] --> COSTS & KACH & REITER
|
||||||
|
SET --> SKK["skodaKeys.php<br/><small>skoda.conf</small>"]
|
||||||
HEADER["header.php"] --> ROOMS
|
HEADER["header.php"] --> ROOMS
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -434,6 +438,7 @@ erDiagram
|
|||||||
| `stats_daily` | Tageswerte für die Jahresstatistik | `solarManager.py` |
|
| `stats_daily` | Tageswerte für die Jahresstatistik | `solarManager.py` |
|
||||||
| `Heater`, `puffertemp`, `wasser`, `zisterne`, `windrad`, `kiga_windrad` | Heizung, Speicher, Wasser, Windrad | `solarManager.py` |
|
| `Heater`, `puffertemp`, `wasser`, `zisterne`, `windrad`, `kiga_windrad` | Heizung, Speicher, Wasser, Windrad | `solarManager.py` |
|
||||||
| `skoda`, `skoda_raw` | Fahrzeugzustand im Verlauf | `gatherSkodaData.py` |
|
| `skoda`, `skoda_raw` | Fahrzeugzustand im Verlauf | `gatherSkodaData.py` |
|
||||||
|
| `skoda_ladepunkte` | Wallbox-Verlauf während einer Ladung, im Minutentakt, wird nicht ausgedünnt (`solarLog_skoda_ladepunkte.sql`) | `gatherSkodaData.py`; ältere Ladungen `skoda_ladepunkte_nachtragen.py` |
|
||||||
| `weatherStation`, `weatherHours`, `weatherDays`, `daylight`, `simPower` | Wetter, Sonnenzeiten, Ertragsprognose | Wetterbrücke, Open-Meteo, Prognose |
|
| `weatherStation`, `weatherHours`, `weatherDays`, `daylight`, `simPower` | Wetter, Sonnenzeiten, Ertragsprognose | Wetterbrücke, Open-Meteo, Prognose |
|
||||||
| `gridCosts`, `gasCosts`, `fuelCosts` | Preiszeitreihen (Stichtag, kein Enddatum) | Einstellungsseite (`costs.php`) |
|
| `gridCosts`, `gasCosts`, `fuelCosts` | Preiszeitreihen (Stichtag, kein Enddatum) | Einstellungsseite (`costs.php`) |
|
||||||
| `kachelWerte` | Überschreibungen der Home-Kacheln, JSON je Raum | Einstellungsseite (`kacheln.php`) |
|
| `kachelWerte` | Überschreibungen der Home-Kacheln, JSON je Raum | Einstellungsseite (`kacheln.php`) |
|
||||||
@@ -474,7 +479,8 @@ Eine Wertdefinition ist ein kleines JSON-Objekt, überall in derselben Form:
|
|||||||
```
|
```
|
||||||
|
|
||||||
`wechselrichter` + `feld` statt `topic` summiert mehrere Wechselrichter;
|
`wechselrichter` + `feld` statt `topic` summiert mehrere Wechselrichter;
|
||||||
`format: "leistung"` skaliert selbst zwischen W und kW; `negativ` dreht das
|
`format: "leistung"` skaliert selbst zwischen W und kW (`"leistung_kw"`, wenn
|
||||||
|
die Quelle schon Kilowatt schickt); `negativ` dreht das
|
||||||
Vorzeichen (für einen Zähler, der verkehrt herum eingebaut ist); `icon` ist
|
Vorzeichen (für einen Zähler, der verkehrt herum eingebaut ist); `icon` ist
|
||||||
der Name **irgendeines** Bootstrap-Icons — die Codepunkte liest
|
der Name **irgendeines** Bootstrap-Icons — die Codepunkte liest
|
||||||
`bootstrapIcons()` aus `css/bootstrap-icons.min.css`, gezeichnet wird als
|
`bootstrapIcons()` aus `css/bootstrap-icons.min.css`, gezeichnet wird als
|
||||||
@@ -622,6 +628,14 @@ Auslösen bis Mitternacht. Für alles, was man hinterher von Hand wieder anders
|
|||||||
stellt: ein Rollladen, den man um acht zugezogen hat, soll nicht um neun von
|
stellt: ein Rollladen, den man um acht zugezogen hat, soll nicht um neun von
|
||||||
selbst wieder auffahren, nur weil eine Wolke weiterzieht.
|
selbst wieder auffahren, nur weil eine Wolke weiterzieht.
|
||||||
|
|
||||||
|
**„Am Vorabend"** (`next_day`) lässt Wochentage, Ferien und Feiertage für
|
||||||
|
**morgen** gelten. Für alles, was abends für den nächsten Tag geschieht:
|
||||||
|
*Kinderrollos zu, wenn morgen Schule ist* heißt dann Mo–Fr, Ferien nie,
|
||||||
|
Feiertage nie — dieselben Tage wie der Wecker. `rahmenText()`,
|
||||||
|
`rahmenKurzText()` und die Spalte „Wann" der Übersicht nennen den Vorabend
|
||||||
|
vorne, damit auch „nicht an Feiertagen" als Folgetag gelesen wird. Uhrzeit
|
||||||
|
und Zeitfenster bleiben beim heutigen Tag.
|
||||||
|
|
||||||
Wie der Runner das auswertet — Datentyp `elapsed`, topologische Reihenfolge,
|
Wie der Runner das auswertet — Datentyp `elapsed`, topologische Reihenfolge,
|
||||||
der Rahmen, was beim Pausieren geschieht — steht in
|
der Rahmen, was beim Pausieren geschieht — steht in
|
||||||
[`autoActions/README.md`](../../homes/wagner/SolarManager/autoActions/README.md)
|
[`autoActions/README.md`](../../homes/wagner/SolarManager/autoActions/README.md)
|
||||||
@@ -780,7 +794,7 @@ Zwei Repositories, beide auf Gitea (`gitea.nas.el-wa.org`):
|
|||||||
| Repo | Ort | Inhalt |
|
| Repo | Ort | Inhalt |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `admin/Smart-Dashboard` | `/volume1/web/smart` | dieses hier |
|
| `admin/Smart-Dashboard` | `/volume1/web/smart` | dieses hier |
|
||||||
| `admin/SolarManager` | `/volume1/homes/wagner/SolarManager` | Sammler, Runner, Wecker |
|
| `admin/SolarManager` | `/volume1/homes/wagner/SolarManager` | Sammler, Brücken, Automatik-Runner |
|
||||||
|
|
||||||
Rekursive Suchen (`grep -r`) laufen über die SMB-Freigabe in Zeitüberschreitungen —
|
Rekursive Suchen (`grep -r`) laufen über die SMB-Freigabe in Zeitüberschreitungen —
|
||||||
auf der NAS selbst sind sie sofort fertig.
|
auf der NAS selbst sind sie sofort fertig.
|
||||||
|
|||||||
Reference in New Issue
Block a user