Zum Inhalt

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:9999 erreichbar
  • Home Assistant auf 10.10.10.20 lä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:

bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/ebusd.sh)"

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 --version prüfen. Produktiv läuft Paketversion 26.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

nano /etc/ebusd/ebusd-2.1.x/en/vaillant/c0.wtw04.csv

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

nano /etc/default/ebusd

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.

systemctl enable ebusd
systemctl start ebusd
systemctl status ebusd

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:

ssh mcp-agent@10.10.10.32 'id && sudo -n true && systemctl is-active ebusd'

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:

  1. Template-Sensoren und Automationen in packages/lueftung.yaml:
  2. sensor.luftung_filterstatus — Filterstatus basierend auf Stromverbrauch
  3. sensor.intensivmodus_countdown — HI-Timer Countdown
  4. sensor.luftungsmodus_anzeige — Lüftungsstufe als Text
  5. MQTT-Sensor sensor.vaillant_recovair_275_3_intensivmodus_countdown
  6. MQTT-Binary-Sensor binary_sensor.vaillant_recovair_275_3_luftung_kuhlung_status

  7. Helpers (alle über HA UI anlegen) → vollständige Liste: automatik.md

  8. Automationenautomatik.md:

  9. automation.luftung_package_hauptsteuerung
  10. automation.luftung_package_badfeuchte_timer
  11. automation.luftung_package_frostschutz_abschaltung

  12. Scripts → in packages/lueftung.yaml:

  13. script.lueftung_modus_setzen_package
  14. script.lueftung_bypass_setzen_package
  15. script.lueftung_hi_modus_setzen_package

  16. Filterstatus-Schwellwerte setzen:

  17. Tag Prüfen: 45W, Tag Reinigen: 50W
  18. 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