Zum Inhalt

Heizung – vollständige LXC-Neuinstallation und Restore

Produktivstand gegen CT 106 geprüft: 10. August 2026.

Diese Seite beschreibt den vollständigen Neuaufbau von ebusd-heizung. Sie ist bewusst eigenständig und verweist nicht mehr nur auf die Lüftungsinstallation.

Aktueller produktiver Stand

Komponente Wert
Proxmox CT 106
Hostname ebusd-heizung
Betriebssystem Debian 12 (Bookworm)
IP-Adresse 10.10.10.31/24
Gateway 10.10.10.1
MAC BC:24:11:AC:E6:E0
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.14:9999
MQTT-Broker Home Assistant 10.10.10.20:1883
MQTT-Topic ebusd-heizung
Service ebusd.service, enabled und active

Der Live-Scan erkennt aktuell:

  • BAI00 an Adresse 0x08, SW 0518, HW 7401;
  • 47000 / VR470 an Adresse 0x15, SW 0348, HW 9502;
  • geladen werden vaillant/bai.0010003886.inc, vaillant/08.bai.csv und vaillant/15.470.csv.

Voraussetzungen

Für den vollständigen Wiederaufbau werden benötigt:

  • funktionierender Proxmox-Host;
  • Management-Netz 10.10.10.0/24;
  • eBUS-Adapter Heizung unter 10.10.30.14:9999;
  • Home Assistant und Mosquitto unter 10.10.10.20:1883 für die spätere MQTT-Anbindung;
  • MQTT-Benutzer und Passwort aus dem Passwortmanager;
  • Internetzugang für Paketinstallation und ebusd-Konfiguration.

Heizung und Warmwasser laufen auch ohne diesen Container über die Vaillant- Regelung weiter. Der Container stellt Messwerte, MQTT-Anbindung und zusätzliche Smart-Home-Funktionen bereit.

Schritt 1: LXC-Container anlegen

Option A: Proxmox Community Script

Auf dem Proxmox-Host:

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

Für den produktiven Aufbau anschließend folgende Werte verwenden beziehungsweise gegen die Script-Auswahl prüfen:

Parameter Wert
CT-ID 106
Hostname ebusd-heizung
OS Debian 12
RAM 256 MiB
Swap 256 MiB
CPU 1 Kern
Disk 8 GiB
IP 10.10.10.31/24
Gateway 10.10.10.1
Bridge vmbr0
unprivilegiert ja
Features keyctl=1,nesting=1
Autostart ja

Das Community Script kann sich ändern. Deshalb nach dem Erstellen immer die Werte oben gegen die erzeugte CT-Konfiguration prüfen.

Option B: Manuell mit pct

Voraussetzung ist ein vorhandenes Debian-12-LXC-Template. Der genaue Dateiname kann sich mit dem verfügbaren Template ändern.

pct create 106 /var/lib/vz/template/cache/debian-12-standard_12.7-1_amd64.tar.zst \
  --hostname ebusd-heizung \
  --memory 256 \
  --swap 256 \
  --cores 1 \
  --net0 name=eth0,bridge=vmbr0,ip=10.10.10.31/24,gw=10.10.10.1,hwaddr=BC:24:11:AC:E6:E0,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 106

Schritt 2: Netzwerk im Container prüfen

Produktiver Inhalt von /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.10.10.31/24
    gateway 10.10.10.1

Prüfen:

ip addr show eth0
ip route
ping -c 3 10.10.10.1
ping -c 3 10.10.30.14

Erst fortfahren, wenn Gateway und eBUS-Adapter erreichbar sind.

Schritt 3: ebusd 26.1 installieren

Bei Verwendung des Community Scripts ist ebusd normalerweise bereits installiert. In diesem Fall nur die Version prüfen:

ebusd --version

Produktiv läuft Paketversion 26.1.

Bei manueller Installation:

apt update
apt install -y wget ca-certificates git

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 -y

ebusd --version

Schritt 4: ebusd-Konfiguration bereitstellen

Die Heizung verwendet im produktiven Betrieb die Online-Konfiguration:

--configpath=https://ebus.github.io/
--scanconfig

Zusätzlich befindet sich aktuell ein lokaler Checkout des offiziellen Konfigurationsrepositories unter /etc/ebusd. Für einen Neuaufbau kann er so angelegt werden:

rm -rf /etc/ebusd
mkdir -p /etc/ebusd
git clone https://github.com/eBUS/ebus.github.io.git /etc/ebusd

Wichtig: Der produktive --configpath zeigt trotzdem auf https://ebus.github.io/. Die lokale Kopie ist vor allem Referenz- und Arbeitsbestand.

Schritt 5: MQTT-Home-Assistant-Konfiguration einrichten

Die Datei liegt unter:

/etc/ebusd/mqtt-hassio.cfg

Als Ausgangsbasis kann die offizielle Datei verwendet werden:

wget https://raw.githubusercontent.com/john30/ebusd/master/contrib/mqtt-hassio.cfg \
  -O /etc/ebusd/mqtt-hassio.cfg

Für die Heizung sind produktiv mindestens folgende Anpassungen relevant:

filter-seen = 5
filter-name = status|temp|humidity|yield|count|energy|power|runtime|hours|starts|mode|curve|^load$|^party$|sensor|timer
filter-direction = r|u|^w
area = Heizung

Geräteblock:

circuit_part = {
   "identifiers":"vaillant_heizung",
   "manufacturer":"Vaillant",
   "name":"Vaillant AuroCompact","model":"AuroCompact VSC S 196/3-5 200 R3",
   "sw_version":"%version",
   "suggested_area":"%area"
  }

via_device wird nicht verwendet. Die vollständige produktive Datei sollte aus einem Backup oder vom noch vorhandenen Container übernommen werden, da sie mehr Mapping-Regeln als nur die oben genannten Ausschnitte enthält.

Schritt 6: /etc/default/ebusd konfigurieren

Produktive Parameter mit anonymisiertem MQTT-Passwort:

EBUSD_OPTS="--device=ens:10.10.30.14:9999 --configpath=https://ebus.github.io/ --scanconfig --latency=10 --mqttint=/etc/ebusd/mqtt-hassio.cfg --mqtthost=10.10.10.20 --mqttport=1883 --mqtttopic=ebusd-heizung --mqttuser=mqtt-usr --mqttpass=<MQTT_PASSWORT> --mqttretain --mqttjson --mqttclientid=ebusd_heizung --loglevel=notice"

Wichtig:

  • 10.10.30.14:9999 ist der Heizungs-eBUS-Adapter;
  • MQTT läuft über Home Assistant 10.10.10.20:1883;
  • --mqttclientid=ebusd_heizung verhindert eine Verwechslung mit der Lüftungsinstanz;
  • --loglevel=notice beibehalten. debug hat früher mehrere GiB Logdaten erzeugt.

Schritt 7: Dienst aktivieren und starten

systemctl daemon-reload
systemctl enable ebusd
systemctl restart ebusd
systemctl status ebusd --no-pager

Schritt 8: eBUS-Verbindung verifizieren

ebusctl state
ebusctl info
ebusctl find -d

Erwarteter Grundzustand:

signal acquired
scan: finished
address 08: ... ID=BAI00 ...
address 15: ... ID=47000 ...

Aktuell wurden bei der Prüfung unter anderem geladen:

vaillant/bai.0010003886.inc
vaillant/08.bai.csv
vaillant/15.470.csv

Wenn signal acquired fehlt, zuerst Netzwerk und Adapter 10.10.30.14:9999 prüfen. Home Assistant ist für diesen Test noch nicht notwendig.

Schritt 9: MQTT und Home Assistant prüfen

Wenn Mosquitto und Home Assistant laufen:

  1. ebusd neu starten;
  2. MQTT-Verbindung im ebusd-Log prüfen;
  3. Home-Assistant-MQTT-Discovery kontrollieren;
  4. Gerät Vaillant AuroCompact und seine Entitäten prüfen.

Logs:

journalctl -u ebusd -n 100 --no-pager

Optional MQTT-Traffic vom Broker aus prüfen:

mosquitto_sub -h 10.10.10.20 -u mqtt-usr -P '<MQTT_PASSWORT>' \
  -t 'ebusd-heizung/#' -v

Schritt 10: MCP-SSH-Zugang wiederherstellen

Für Linux-Zielsysteme verwendet der MCP-Server einheitlich mcp-agent als Remote-SSH-Benutzer. Auf CT 106 ist dies der produktive Administrationszugang.

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 hinterlegen und anschließend:

chmod 600 /home/mcp-agent/.ssh/authorized_keys
chown mcp-agent:mcp-agent /home/mcp-agent/.ssh/authorized_keys

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

Vom MCP-Server prüfen:

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

Alternativ steht vom Proxmox-Host weiterhin die lokale Konsole zur Verfügung:

pct exec 106 -- bash

Schritt 11: Abschlussprüfung

systemctl is-enabled ebusd
systemctl is-active ebusd
ebusd --version
ebusctl state
ebusctl info
df -h /

Zusätzlich in Home Assistant prüfen:

  • Gerät Vaillant AuroCompact vorhanden;
  • Außentemperatur und Heizungswerte plausibel;
  • MQTT-Entities nicht unavailable;
  • keine permanenten ebusd-Fehler im Journal.

Bekannte Probleme und Hinweise

Debug-Logs füllen die Disk

--loglevel=debug erzeugte früher etwa 37 MB pro Tag und hatte den Container mit mehreren GiB Logs gefüllt. Produktiv läuft deshalb notice.

Bereinigung bei Bedarf:

rm -f /var/log/ebusd.log.1-*.backup /var/log/ebusd.log.1
journalctl --vacuum-time=14d
df -h /

MQTT funktioniert nicht, eBUS aber schon

Das ist kein Heizungsfehler. Zuerst prüfen:

  • Home Assistant erreichbar unter 10.10.10.20;
  • Mosquitto läuft;
  • MQTT-Benutzer und Passwort stimmen;
  • keine zweite Instanz verwendet dieselbe MQTT-Client-ID.

Keine Geräte im Scan

nc -vz 10.10.30.14 9999
ebusctl state
ebusctl info
journalctl -u ebusd -n 100 --no-pager

Wenn der Adapter erreichbar ist, aber kein Signal erkannt wird, liegt der Fehler hinter dem TCP-Netzwerkweg auf eBUS-/Adapterseite.

Verweise