Zum Inhalt

ebusd-lueftung – Vaillant recoVAIR 275/3

Übersicht

Der LXC-Container ebusd-lueftung (ID 107, IP 192.168.178.19) verbindet die Vaillant recoVAIR 275/3 Lüftungsanlage über den eBUS-Protokollbus mit Home Assistant.

Geräte auf dem Bus

Adresse Gerät SW HW Beschreibung
0x15 (VAI00) Fernbedienung/Regler 0125 8901 Steuert Lüftungsstufen, Bypass, Intensivmodus
0xC0 (WTW04) Wärmetauscher 0127 9001 Temperatursensoren, Ventilator, Bypass-Position

ebusd Konfiguration

Startbefehl (/etc/default/ebusd)

EBUSD_OPTS="--device=ens:192.168.178.14:9999 \
  --configpath=/etc/ebusd/ebusd-2.1.x/en \
  --scanconfig \
  --latency=10 \
  --mqttint=/etc/ebusd/mqtt-hassio.cfg \
  --mqtthost=192.168.178.5 \
  --mqttport=1883 \
  --mqtttopic=ebusd-lueftung \
  --mqttuser=mqtt-usr \
  --mqttpass=mqtt-usr \
  --mqttretain \
  --mqttjson \
  --loglevel=notice"

Wichtige Pfade

Pfad Inhalt
/etc/ebusd/ebusd-2.1.x/en/vaillant/15.vai00.csv VAI00-Konfiguration (Regler)
/etc/ebusd/ebusd-2.1.x/en/vaillant/c0.wtw04.csv WTW04-Konfiguration (Wärmetauscher)
/etc/ebusd/mqtt-hassio.cfg MQTT Autodiscovery-Konfiguration für HA

CSV-Konfiguration VAI00 (15.vai00.csv)

PBSB: Read B509,0D / Write B509,0F

# type,circuit,name,comment,QQ,ZZ,PBSB,ID,field,part,datatype,values,unit
*r,,,,,,B509,0D,,,,,,
*w,,,,,,B509,0F,,,,,,

r5;w,,Lueftungsstufe_Status,Lüftungsstufe,,,,2400,,,UCH,1=Tag;2=Aus;3=Auto;5=Nacht,,
r5;w,,Lueftung_HI_Status,Lüftung Intensiv,,,,5800,,,UIN,0=Aus;31=30 min;61=1h;91=1.5h;121=2h;181=3h;241=4h;301=5h;361=6h;421=7h;481=8h;541=9h;601=10h;661=11h;721=12h,,

r5;,,Bypass_Status,Bypass aktueller Status (heat/cool),,,,0a00,,,UCH,1=heat;2=cool,,
r5;w,,Bypass_Tage,Bypass Tage (0=aus),,,,3600,,,UCH,,,d

r5;,,Party,Party-Modus Status,,,,3200,,,UCH,0=off;1=on,,
r5;,,EcoMode,Eco-Modus,,,,4f00,,,UCH,0=off;1=on,,

r5;w,,NormalFlow,Volumenstrom Tag,,,,1700,,,UIN,,m3/h,
r5;w,,ReducedFlow,Volumenstrom Nacht,,,,1800,,,UIN,,m3/h,
r5;w,,IntenseFlow,Volumenstrom Intensiv,,,,4a00,,,UIN,,m3/h,
r5;w,,BypassFlow,Volumenstrom Bypass,,,,4800,,,UIN,,m3/h,
r5;w,,HolidayFlow,Volumenstrom Urlaub,,,,4900,,,UIN,,m3/h,

r5;w,,FilterDays,Filter Resttage,,,,4600,,,UCH,,,d
r5;w,,FilterDaysAlarm,Filter Alarm Tage,,,,4500,,,UIN,,,

r5;,,Yield,Ertrag Gesamt kWh,,,,4d00,,,UIN,,,

Wichtige Eigenheiten VAI00

  • Lueftung_HI_Status nutzt UIN (nicht HCD:2!) und Minuten als Einheit
  • Das Gerät decrementiert beim Schreiben sofort um 1 Schritt
  • Schreiben von 61 → Gerät zeigt 60 → läuft 60 Minuten
  • Bypass_Tage: 0 = Bypass aus, N = Bypass aktiv für N Tage (zählt täglich runter)
  • Lueftungsstufe_Status Auto = internes Zeitprogramm des Geräts (Fallback wenn HA ausfällt)

CSV-Konfiguration WTW04 (c0.wtw04.csv)

PBSB: Read B509,0D / Write B509,0E

Wichtig für HW=9001: Temperaturen benötigen PBSB B509,29 mit 2-Byte IGN-Prefix!

*r,,,,,,B509,0D,,,,,,
*w,,,,,,B509,0E,,,,,,

# Direkte Fan-Speed-Writes (hardcodiert, 50-300 m³/h in 5er-Schritten)
w,,Lueftung_75qmh,,,,,1500fa00,,,,,,
# ... weitere Lueftung_XXqmh-Einträge ...

r9;w,,BypassValve,Bypass Steuerung,,,,0a00,,,UCH,0=auto;1=off;2=on,,
r;,,Soll_Volumenstromkorrektur_Mode,Volumenstromkorrektur,,,,2000,,,D1B,,,
r5;,,CurrentFlow,Aktueller Volumenstrom,,,,1500,,,UIN,12,l/s,

*r,,,,,,B509,29,,,IGN:2,,,
r1;,,AirInletTemp,Außenluft Temperatur,,,,0100,,,temp,,,
r1;,,AirOutletTemp,Zuluft Temperatur,,,,0200,,,temp,,,
r1;,,AirExhaustTemp,Abluft Temperatur,,,,0300,,,temp,,,
r1;,,AirOutgoingTemp,Fortluft Temperatur,,,,0400,,,temp,,,
r1;,,Roomtemp,Raumtemperatur,,,,0000,,,temp,,,
r;,,Unterdruckschutz_Mode,Unterdruckschutz,,,,4700,,,UCH,1=AN;0=AUS,,
r5;,,Yield__Total_kWh,Ertrag Gesamt kWh,,,,4d00,,,UIN,,,
r;,,Desiredtemp,Wunschtemperatur,,,,140e,,,temp,,,
r5;,,Heatrecovery_Mode,Wärmerückgewinnung,,,,8c03,,,UCH,0=auto;1=on;2=off,,
r9;w,,FilterDays,Filter Resttage,,,,4600,,,UCH,,,d
r9;,,FilterDaysAlarm,Filter Alarm Tage,,,,4500,,,UCH,,,d

*r,,,,,,B509,29,,,,,,
r9,,BypassStellung_Status,Bypass-Stellung,,,,0900,,,IGN:2;percent0,,,

Aktueller Volumenstrom

  • Register 0x15 (B509,0D) liefert den aktuellen Sollwert in l/s
  • Divisor 12 → Anzeige in l/s
  • Umrechnung in m³/h: Wert × 3.6
  • HA Template-Sensor sensor.luftung_volumenstrom_m3_h rechnet das um

mqtt-hassio.cfg Anpassungen

Gegenüber dem Original wurden folgende Änderungen vorgenommen:

  1. filter-direction = r|u|^w – Schreibbare Entities im Autodiscovery
  2. Number-Fallback in type_switch-w-number: number,, = , (generischer Fallback für alle numerischen Felder)
  3. circuit_part angepasst für ein einziges HA-Gerät:
    circuit_part = {
      "identifiers":"vaillant_recovair_275",
      "manufacturer":"Vaillant",
      "name":"Vaillant recoVAIR 275/3","model":"recoVAIR 275/3",
      "sw_version":"%version",
      "suggested_area":"Lüftung"
     }
    
  4. via_device entfernt (kein Parent-Device)
  5. area = Lüftung statt Heating

LXC Container Konfiguration

Proxmox CT-Konfiguration (ID 107)

Proxmox Version: 9.2.3
Tags: ebusd, ha-addon, monitoring

Ressourcen

Parameter Wert
Speicher 256 MiB
Swap 256 MiB
Kerne 1
Root-Disk local-lvm:vm-107-disk-0, size=8G

Optionen

Parameter Wert
Beim Booten starten Ja
Startreihenfolge order=any
OS-Typ debian
Architektur amd64
/dev/console Aktiviert
Anzahl TTY 2
Konsolenmodus tty
Geschützt Nein
Unprivilegierter Container Ja
Features keyctl=1,nesting=1
Entrypoint /sbin/init

Netzwerk

Parameter Wert
Interface net0 / eth0
Bridge vmbr0
Firewall Nein
MAC BC:24:11:49:13:31
IP (IPv4) 192.168.178.19/24 (statisch)
Gateway 192.168.178.1
Getrennt Nein

DNS

Parameter Wert
Hostname ebusd-lueftung
DNS Domain vom Host übernommen
DNS Server vom Host übernommen

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.178.19/24
    gateway 192.168.178.1

/etc/hosts

127.0.0.1   localhost
192.168.178.19 ebusd-lueftung.diebrocks.home ebusd-lueftung

User codex

  • Gruppen: codex, sudo, users
  • Shell: /bin/bash
  • Home: /home/codex

SSH-Zugang (Windows-Client)

Eintrag in ~/.ssh/config

Host ebusd-lueftung
  HostName el.diebrocks.com
  User codex
  IdentityFile ~/.ssh/ebusd_lueftung
  ProxyCommand C:/cloudflared/cloudflared-ssh.cmd access ssh --hostname %h
  StrictHostKeyChecking no

Cloudflared Wrapper (C:\cloudflared\cloudflared-ssh.cmd)

@echo off
set GODEBUG=netdns=cgo
"C:\cloudflared\cloudflared.exe" %*

Hinweis: GODEBUG=netdns=cgo ist nötig weil der lokale DNS nur AAAA-Records für el.diebrocks.com zurückgibt und cloudflared (Go-basiert) damit nicht umgehen kann.

Neuen SSH Key anlegen (Restore-Fall)

# Neues Ed25519-Keypair generieren
ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\ebusd_lueftung" -C "ebusd-lueftung-$(Get-Date -Format 'yyyy-MM')"

# Public Key anzeigen (für Eintrag auf Server)
Get-Content "$env:USERPROFILE\.ssh\ebusd_lueftung.pub"

Den ausgegebenen Public Key dann auf dem Server hinterlegen (→ Restore Schritt 8).


Identifizierte unbekannte Bus-Nachrichten

Nachricht Häufigkeit Bedeutung
10c0b503020001/02 ~90× VAI00→WTW04 Keepalive/Ping, keine Aktion nötig
10c0b50903290e00/0f00 ~180× VAI00 liest Status-Register 0x0E/0x0F von WTW04
10c0b509060e0000e70100 ~180× VAI00 setzt automatisch Volumenstrom auf WTW04 (z.B. 487 raw = ~146 m³/h bei NormalFlow 140)

Der letzte Eintrag zeigt: VAI00 steuert WTW04-Lüftergeschwindigkeit direkt über Register 0x0E!