Lüftung – vollständige LXC-Neuinstallation und Restore¶
Produktivstand gegen CT 107 geprüft: 10. August 2026.
Diese Seite beschreibt den vollständigen Neuaufbau von CT 107 einschließlich
LXC, Debian, ebusd, eigener CSV-Dateien, MQTT und Home Assistant. Produktiv
läuft Debian 12 mit ebusd 26.1 (ebusd --version: 26.1.26.1).
Aktueller produktiver Stand¶
| Komponente | Wert |
|---|---|
| Proxmox CT | 107 |
| Hostname | ebusd-lueftung |
| Betriebssystem | Debian 12 (Bookworm) |
| IP-Adresse | 10.10.10.32/24 |
| Gateway | 10.10.10.1 |
| MAC | BC:24:11:49:13:31 |
| RAM | 256 MiB |
| Swap | 256 MiB |
| Kerne | 1 |
| Root-Disk | 8 GiB auf local-lvm |
| Unprivilegiert | ja |
| Features | keyctl=1,nesting=1 |
| Autostart | ja |
| ebusd | 26.1 (ebusd --version: 26.1.26.1) |
| eBUS-Adapter | 10.10.30.15:9999 |
| MQTT-Broker | Home Assistant 10.10.10.20:1883 |
| MQTT-Topic | ebusd-lueftung |
| Service | ebusd.service, enabled und active |
Der Live-Scan erkennt aktuell VAI00 an Adresse 0x15 und WTW04 an
Adresse 0xC0; geladen werden die eigenen Dateien 15.vai00.csv und
c0.wtw04.csv.
Voraussetzungen¶
- Proxmox läuft
- eBUS-Adapter auf
10.10.30.15:9999erreichbar - Home Assistant auf
10.10.10.20läuft - Mosquitto MQTT auf HA läuft (Port 1883, User:
mqtt-usr) - MQTT-Zugangsdaten aus dem Passwortmanager verfügbar
- Internetzugang für Installation und Konfigurationsdateien
Schritt 1: LXC Container anlegen¶
Option A: Proxmox Community Script (empfohlen)¶
Auf dem Proxmox-Host im Shell-Tab ausführen:
Quelle: community-scripts.org → ebusd
Produktive Zielwerte (gegen den aktuellen Container geprüft):
| Parameter | Script-Default | Verwendet |
|---|---|---|
| RAM | 512 MB | 256 MB |
| Disk | 2 GB | 8 GB |
| OS | Debian 13 | Debian 12 |
| CT-ID | auto | 107 |
| Hostname | ebusd | ebusd-lueftung |
| IP | DHCP | 10.10.10.32/24 |
Option B: Manuell via pct¶
pct create 107 /var/lib/vz/template/cache/debian-12-standard_12.7-1_amd64.tar.zst \
--hostname ebusd-lueftung \
--memory 256 \
--swap 256 \
--cores 1 \
--net0 name=eth0,bridge=vmbr0,ip=10.10.10.32/24,gw=10.10.10.1,hwaddr=BC:24:11:49:13:31,firewall=0 \
--rootfs local-lvm:8 \
--unprivileged 1 \
--features keyctl=1,nesting=1 \
--onboot 1 \
--ostype debian \
--arch amd64 \
--tags ebusd,ha-addon,monitoring
pct start 107
Netzwerk in /etc/network/interfaces konfigurieren (siehe Konfiguration).
Schritt 2: ebusd installieren¶
Hinweis: Bei Verwendung des Community Scripts (Option A) ist ebusd normalerweise bereits installiert. Version trotzdem mit
ebusd --versionprüfen. Produktiv läuft Paketversion26.1.
# Im LXC Container (nur bei manueller Installation nötig)
apt update && apt install -y wget
# Neueste ebusd Version von GitHub Releases
wget https://github.com/john30/ebusd/releases/download/v26.1/ebusd-26.1_amd64.deb
dpkg -i ebusd-26.1_amd64.deb
apt-get install -f
Schritt 3: ebusd Konfigurationsverzeichnis anlegen¶
mkdir -p /etc/ebusd/ebusd-2.1.x/en/vaillant
# ebusd-Configuration CDN klonen
cd /etc/ebusd
# Die offiziellen CSV-Dateien werden per --scanconfig automatisch geladen
# ODER manuell von https://ebus.github.io/en/vaillant/ kopieren
Schritt 4: Eigene CSV-Dateien anlegen¶
/etc/ebusd/ebusd-2.1.x/en/vaillant/15.vai00.csv¶
→ Vollständiger Inhalt: ebusd-konfiguration.md
# Datei erstellen mit dem dokumentierten Inhalt
nano /etc/ebusd/ebusd-2.1.x/en/vaillant/15.vai00.csv
/etc/ebusd/ebusd-2.1.x/en/vaillant/c0.wtw04.csv¶
→ Vollständiger Inhalt: ebusd-konfiguration.md
Schritt 5: mqtt-hassio.cfg einrichten¶
# Basis-Version von ebusd herunterladen
wget https://raw.githubusercontent.com/john30/ebusd/master/contrib/mqtt-hassio.cfg \
-O /etc/ebusd/mqtt-hassio.cfg
# Dann die Anpassungen aus der Dokumentation einpflegen:
# 1. filter-direction = r|u|^w
# 2. Number-Fallback: number,, = ,
# 3. circuit_part für Vaillant recoVAIR 275/3
# 4. via_device entfernen
# 5. area = Lüftung
nano /etc/ebusd/mqtt-hassio.cfg
Schritt 6: ebusd Startparameter konfigurieren¶
Inhalt:
EBUSD_OPTS="--device=ens:10.10.30.15:9999 --configpath=/etc/ebusd/ebusd-2.1.x/en --scanconfig --latency=10 --mqttint=/etc/ebusd/mqtt-hassio.cfg --mqtthost=10.10.10.20 --mqttport=1883 --mqtttopic=ebusd-lueftung --mqttuser=mqtt-usr --mqttpass=<MQTT_PASSWORT> --mqttretain --mqttjson --loglevel=notice"
> ⚠️ **loglevel=notice** (nicht debug!) — debug erzeugt ~37 MB/Tag und füllt die Disk in Wochen.
Schritt 7: Verifikation¶
# Verbindung zum eBUS prüfen
ebusctl state
# Erwartete Ausgabe: "signal acquired, XX symbols/sec"
# Geräte-Scan prüfen
ebusctl info | grep -E "address|scan"
# Erwartete Ausgabe:
# address 15: slave #2, scanned "MF=Vaillant;ID=VAI00;SW=0125;HW=8901"
# address c0: slave, scanned "MF=Vaillant;ID=WTW04;SW=0127;HW=9001"
# Alle Werte lesen
ebusctl find -d
Schritt 8: MCP-SSH-Zugang einrichten¶
Für Proxmox und die Linux-Container verwendet der MCP-Server einheitlich den
Remote-Benutzer mcp-agent. Der lokale MCP-Prozess auf CT 108 läuft dagegen
als unprivilegierter Benutzer mcp.
Auf CT 107:
useradd -m -s /bin/bash mcp-agent
usermod -aG adm,systemd-journal mcp-agent
mkdir -p /home/mcp-agent/.ssh
chmod 700 /home/mcp-agent/.ssh
chown mcp-agent:mcp-agent /home/mcp-agent/.ssh
Den öffentlichen Schlüssel des MCP-Servers aus der sicheren Quelle in
/home/mcp-agent/.ssh/authorized_keys eintragen. Keine privaten Schlüssel im
Wiki oder auf dem Zielcontainer ablegen.
chmod 600 /home/mcp-agent/.ssh/authorized_keys
chown mcp-agent:mcp-agent /home/mcp-agent/.ssh/authorized_keys
Auf den Arbeitscontainern 102, 106 und 107 besitzt mcp-agent bei aktiviertem
shell_execute vollen sudo-Zugriff:
echo "mcp-agent ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/mcp-agent-full
chmod 440 /etc/sudoers.d/mcp-agent-full
visudo -cf /etc/sudoers.d/mcp-agent-full
Optional bleibt der eingeschränkte Wartungs-Wrapper zusätzlich bestehen; er
ersetzt auf CT 107 aber nicht den dokumentierten Vollzugriff bei aktiviertem
shell_execute.
Vom MCP-Server prüfen:
Erwartet werden der Benutzer mcp-agent, erfolgreicher sudo-Test und ein
aktiver ebusd-Service.
Schritt 9: Home Assistant Entities wiederherstellen¶
Nach dem Start von ebusd sendet MQTT Autodiscovery alle Entities automatisch an HA.
Zusätzlich manuell wiederherstellen:
- Template-Sensoren und Automationen in
packages/lueftung.yaml: sensor.luftung_filterstatus— Filterstatus basierend auf Stromverbrauchsensor.intensivmodus_countdown— HI-Timer Countdownsensor.luftungsmodus_anzeige— Lüftungsstufe als Text- MQTT-Sensor
sensor.vaillant_recovair_275_3_intensivmodus_countdown -
MQTT-Binary-Sensor
binary_sensor.vaillant_recovair_275_3_luftung_kuhlung_status -
Helpers (alle über HA UI anlegen) → vollständige Liste: automatik.md
-
Automationen → automatik.md:
automation.luftung_package_hauptsteuerungautomation.luftung_package_badfeuchte_timer-
automation.luftung_package_frostschutz_abschaltung -
Scripts → in
packages/lueftung.yaml: script.lueftung_modus_setzen_packagescript.lueftung_bypass_setzen_package-
script.lueftung_hi_modus_setzen_package -
Filterstatus-Schwellwerte setzen:
- Tag Prüfen: 45W, Tag Reinigen: 50W
- Nacht Prüfen: 20W, Nacht Reinigen: 28W
Bekannte Stolpersteine¶
| Problem | Ursache | Lösung |
|---|---|---|
ERR: element not found |
Noch nicht gepollt nach Neustart | 30s warten, dann ebusctl read -f |
| Temperaturen lesen 0 | WTW04 HW=9001 braucht B509,29 + IGN:2 Prefix | CSV korrekt mit *r,,,,,,B509,29,,,IGN:2,,, |
| MQTT Entities kommen nicht | filter-seen noch nicht erfüllt | Nach 2-3 Min homeassistant/status online senden |
| Bypass geht nicht | Schreibt Bypass_Tage aber Gerät ignoriert | Prüfen: Bypass_Tage korrekt schreibbar via ebusctl write -c vai00 Bypass_Tage 2 |