[[00 Marstek Speicher (MOC)|← Zurück zur Marstek-Übersicht]]
# Word-Export: Marstek-Systemdokumentation
Erzeugt `Marstek-Systemdokumentation.docx` – eine zusammenfassende Projektdokumentation des
Batteriespeicher-Systems. Die `.docx` ist **bewusst nicht eingecheckt**, sie lässt sich
jederzeit neu erzeugen.
> [!important] Quelle ist EINE Notiz, keine Zusammenstellung
> Wie bei [[02 HA-Systemdokumentation|Home Assistant]] ist die Quelle eine **redaktionell
> geschriebene Zusammenfassung**: [[00 Marstek-Systemdokumentation]]. Aus 7.108 Wörtern
> Rohmaterial (≈ 20 Seiten) sollten 5–10 Seiten werden – das ist eine **Verdichtung**, keine
> Zusammenstellung. Die 11 Einzelnotizen bleiben die Detailebene und werden **nicht**
> exportiert.
>
> **Konsequenz:** Ändert sich eine Detailnotiz inhaltlich, muss die Zusammenfassung von Hand
> nachgezogen werden.
## Aufruf
```bash
# 1) Zwischenstufe bauen -> _build/out/marstek-systemdoku.md
PYTHONIOENCODING=utf-8 python "30 Energie/01 Marstek Speicher/_build/build_marstek.py"
# 2) Word erzeugen
"/c/Program Files/Pandoc/pandoc" "30 Energie/01 Marstek Speicher/_build/out/marstek-systemdoku.md" \
-o "30 Energie/01 Marstek Speicher/Marstek-Systemdokumentation.docx" \
--reference-doc="40 Projekte/CooleSenioren/_build/reference-footer.docx" \
--toc \
--metadata title="Marstek-Batteriespeicher" \
--metadata subtitle="Systemdokumentation: Aufbau, Steuerung, Wirtschaftlichkeit" \
--metadata author="Joachim Berger" \
--metadata date="Stand: 17.07.2026" \
--metadata lang="de-DE" \
--metadata toc-title="Inhaltsverzeichnis"
# 3) Titelseite/Verzeichnis zurechtrücken (Pflichtschritt)
PYTHONIOENCODING=utf-8 python "20 Software/Home Assistant/_build/layout_ha.py" \
"30 Energie/01 Marstek Speicher/Marstek-Systemdokumentation.docx"
# 4) Dokumenteigenschaften setzen (Pflichtschritt)
PYTHONIOENCODING=utf-8 python "40 Projekte/CooleSenioren/_build/set_props.py" \
"30 Energie/01 Marstek Speicher/Marstek-Systemdokumentation.docx"
```
> [!warning] Word muss die Zieldatei geschlossen haben
> Sonst bricht Pandoc mit `permission denied` ab. Schritt 3 und 4 prüfen die Lockdatei
> `~$...docx` selbst und brechen sauber ab.
## Wiederverwendete Bausteine
Drei Bausteine liegen **nicht** in diesem Ordner – sie sind nicht projektspezifisch und
werden von allen Word-Exporten des Vaults genutzt:
| Baustein | Liegt in | Was es tut |
|---|---|---|
| `reference-footer.docx` | `40 Projekte/CooleSenioren/_build/` | Obeco-Vorlage: A4, Fußzeile mit Logo und „Seite X von Y" |
| `set_props.py` | `40 Projekte/CooleSenioren/_build/` | Dokumenteigenschaften inkl. Firma „Obeco GmbH"; kennt die Marstek-Datei über einen eigenen `PROPS`-Eintrag |
| `layout_ha.py` | `20 Software/Home Assistant/_build/` | Zieht den Adressblock vor das Inhaltsverzeichnis, setzt Seitenumbrüche |
> [!note] Offene Aufräumarbeit
> Der Name `layout_ha.py` ist inzwischen irreführend – das Skript ist generisch (es findet
> die Adressabsätze über ihren Text) und wird auch hier benutzt. Sauber wäre ein neutraler
> Ort für alle drei Bausteine, z. B. `90 Vorlagen/_build/`. Das berührt aber die laufende
> CooleSenioren-Pipeline und deren `.gitignore`-Ausnahme. Bewusst verschoben, siehe auch
> `20 Software/Home Assistant/_build/README.md`.
## `build_marstek.py` – was beim Export passiert
| Was | Warum |
|---|---|
| Nav-Kopfzeile, Status-Block, Änderungshistorie, Footer | interne Vault-Elemente |
| Zeilen `→ Details: …` | verweisen auf Einzelnotizen, die nicht mitexportiert werden |
| Wikilinks `[[Ziel\|Label]]` | zu `Label` bzw. `Ziel` aufgelöst |
| H1 entfernt, Ebenen hochgestuft | Der Titel steht auf der Titelseite; sonst wäre die H1 ein redundanter erster Verzeichnis-Eintrag. Die Notiz im Vault behält ihre H1. |
### Eingebaute Prüfungen
Bricht **hart ab**, statt eine kaputte Datei zu erzeugen:
- Notiz ohne H1 oder Status-Block; Wikilink-Reste; `→ Details:`-Zeilen; keine Kapitel
- Wortzahl außerhalb **1.400–3.800** (Zielkorridor 5–10 Seiten)
- **Faktische Sperre:** `39 kWh`, `je 13 kWh` oder `B2500` im Ergebnis → Abbruch.
Umgekehrt müssen `15 kWh` und `13 kWh` vorkommen.
> [!warning] Warum die Kapazitäts-Sperre existiert
> Die Speicherkapazität war bis 17.07.2026 **widersprüchlich** dokumentiert: MOC und
> Omnibattery-Notiz nannten „je 13 kWh" bzw. „39 kWh gesamt", die Wirtschaftlichkeitsanalyse
> dagegen „3× Marstek B2500, je 5 kWh". Richtig ist: **3× Marstek Venus E v3 à 5 kWh =
> 15 kWh brutto, davon ca. 13 kWh nutzbar** (12–15 % Reserve, sonst Zellschädigung).
> Die „13 kWh" dürften ursprünglich die nutzbare Gesamtkapazität gewesen sein und wurden
> versehentlich als Einzelkapazität notiert – daraus wurden die 39 kWh.
> Die Sperre verhindert, dass eine der Falschangaben ins Vorzeige-Dokument zurückkehrt.
---
**Status:** In Bearbeitung
**Version:** 1.0
**Letzte Aktualisierung:** 17.07.2026 11:35 Uhr
### Änderungshistorie
| Version | Datum | Uhrzeit | Änderung |
|---|---|---|---|
| 1.0 | 17.07.2026 | 11:35 | Erstfassung – Pipeline für die Marstek-Systemdokumentation (Nutzervorgabe: eigenes Word, Machart wie Home Assistant). Quelle ist eine redaktionelle Zusammenfassung. Vorlage, `set_props.py` und `layout_ha.py` wiederverwendet. Kapazitäts-Sperre eingebaut, nachdem die widersprüchliche Dokumentation der Speichergröße aufgefallen war |
---
[[Impressum|Impressum]] | [[Datenschutzerklärung|Datenschutz]]