In dit topic kunnen we ervaringen uitwisselen over het koppelen van Vaillant, Bulex en AWB spullen aan domotica door middel van ebusd (http://ebusd.eu).
Door hier op aan te koppelen met je domoticasystemen kun je bijvoorbeeld de ruimtetemperatuur instellen, maar ook het gedrag van je systeem loggen voor meer inzicht in waar er instellingen verbeterd kunnen worden voor meer comfort of zuiniger stoken.
https://adapter.ebusd.eu/ komt van de makers van ebusd en zal het beste werken. Leveringsproblemen/chiptekort.
https://lectronz.com/products/54 is een ebus<>Wifi adapter gebaseerd op een ESP32
https://esera.de/en/Products/eBus/135/eBus-Coupler-USB lijkt het best verkrijgbaar te zijn, maar vereist handmatige tuning van het signaal.
Voor het geval jouw (Vaillant-Bulex) toestel niet herkend wordt, is een tip: doe een gitclone van https://github.com/john30...ree/master/ebusd-2.1.x/en repository, kijk naar een CSV van een toestel dat in dezelfde categorie valt als die van jou, en geeft die directory mee aan de ebusd-service bij opstarten. Zo werd bij @Minitrooper de VMS (zonneboiler) niet correct herkend. Een git clone en een kopij van de 06.pmd.csv naar 06.vmd.csv gaf al toegang tot de benodigde registers. Finetuning van enkele temperatuursensoren kon dan lokaal gebeuren (omdat de laatste pull door john30 niet gebeurd werd).
Grafana is populair om dashboards mee te maken, al is dat voor de meeste features afhankelijk van een achterliggende timeseries database.
2) configure ebusd adapter:
--> in deze output dienen allemaal "aa"'s te verschijnen, zoniet moet je "finetunen", in geval van de USB Esera aan het potentiometertje draaien.
3) eerste maal "manueel" opstarten:
4. controle of alles mooi werkt:
5. Voorbeeld van oproepen van parameters vanuit een bash script
6. Voorbeeld bash script om àlle values uit de registers te lezen op de ebus. Let op: dit duurt even
Handig "als backup" als je parameters ligt te veranderen om te zien waarop ieder register stond.
Geeft als (voorbeeld) output:
De sturing van de glycolpomp "aan-uit" parameters worden hierin gevisualiseerd, tesamen met "leuke" temperatuurweetjes.
Inleiding: wat is ebus en wat kan ik ermee?
Ebus is een tweedraads communicatiesysteem dat vooral gebruikt wordt door klimaatbeheersingssystemen (warmtepompen, gasketels, ventilatie) uit de Vaillant familie.Door hier op aan te koppelen met je domoticasystemen kun je bijvoorbeeld de ruimtetemperatuur instellen, maar ook het gedrag van je systeem loggen voor meer inzicht in waar er instellingen verbeterd kunnen worden voor meer comfort of zuiniger stoken.
Wat heb je nodig
- Een ebus-interface om de ebus-draden met je thuisserver te koppelen
- ebusd
- Domotica-software om de gelezen meetwaarden weg te schrijven naar een database en er een dashboard van te maken
Hardware
Omdat de ebus-standaard nogal timing gevoelig is, blijkt de adapter nogal nauw te luisteren.https://adapter.ebusd.eu/ komt van de makers van ebusd en zal het beste werken. Leveringsproblemen/chiptekort.
https://lectronz.com/products/54 is een ebus<>Wifi adapter gebaseerd op een ESP32
https://esera.de/en/Products/eBus/135/eBus-Coupler-USB lijkt het best verkrijgbaar te zijn, maar vereist handmatige tuning van het signaal.
Software
- Uiteraard het opensource ebusd dat de berichten op de bus van betekenis voorziet en ontsluit naar MQTT en json data.
- Home Assistant add-on: https://github.com/LukasGrebe/ha-addons
- Domoticz add-on: https://github.com/guillaumezin/DomoticzEbusd
Voor het geval jouw (Vaillant-Bulex) toestel niet herkend wordt, is een tip: doe een gitclone van https://github.com/john30...ree/master/ebusd-2.1.x/en repository, kijk naar een CSV van een toestel dat in dezelfde categorie valt als die van jou, en geeft die directory mee aan de ebusd-service bij opstarten. Zo werd bij @Minitrooper de VMS (zonneboiler) niet correct herkend. Een git clone en een kopij van de 06.pmd.csv naar 06.vmd.csv gaf al toegang tot de benodigde registers. Finetuning van enkele temperatuursensoren kon dan lokaal gebeuren (omdat de laatste pull door john30 niet gebeurd werd).
Grafana is populair om dashboards mee te maken, al is dat voor de meeste features afhankelijk van een achterliggende timeseries database.
Installatie ebusd software op een raspberry pi
1) install ebusd:code:
1
2
3
4
5
| wget -O - https://raw.githubusercontent.com/john30/ebusd-debian/master/ebusd.gpg.key|apt-key add - wget -O /etc/apt/sources.list.d/ebusd.list https://raw.githubusercontent.com/john30/ebusd-debian/master/ebusd-armhf-default.list apt-get update apt-get install ebusd systemctl enable ebusd |
2) configure ebusd adapter:
code:
1
| ebusd -f -c /tmp --logareas bus --loglevel info --lograwdata=bytes -d /dev/ttyUSB0 |
--> in deze output dienen allemaal "aa"'s te verschijnen, zoniet moet je "finetunen", in geval van de USB Esera aan het potentiometertje draaien.
3) eerste maal "manueel" opstarten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| ebusd -f -d /dev/ttyUSB0 --configpath=http://ebusd.eu/config/ --scanconfig=full --pollinterval=180 2019-12-06 17:27:36.565 [main notice] ebusd 3.3.v3.3 started with full scan 2019-12-06 17:27:36.817 [bus notice] bus started with own address 31/36 2019-12-06 17:27:36.858 [bus notice] signal acquired 2019-12-06 17:27:46.818 [main notice] starting initial full scan 2019-12-06 17:27:48.574 [bus notice] new master 01, master count 2 2019-12-06 17:27:48.575 [bus notice] scan 06: ;Vaillant;VMD01;0108;1703 2019-12-06 17:27:48.575 [update notice] store 06 ident: done 2019-12-06 17:27:48.575 [update notice] sent scan-read scan.06 QQ=31: Vaillant;VMD01;0108;1703 2019-12-06 17:27:48.575 [bus notice] scan 06: ;Vaillant;VMD01;0108;1703 2019-12-06 17:27:48.744 [bus notice] new master 03, master count 3 2019-12-06 17:27:48.744 [bus notice] scan 08: ;Vaillant;BAI00;0104;7803 2019-12-06 17:27:48.744 [update notice] store 08 ident: done 2019-12-06 17:27:48.745 [update notice] sent scan-read scan.08 QQ=31: Vaillant;BAI00;0104;7803 2019-12-06 17:27:48.745 [bus notice] scan 08: ;Vaillant;BAI00;0104;7803 2019-12-06 17:27:56.877 [main error] unable to load scan config 06: no file from vaillant with prefix 06 matches ID "vmd01", SW0108, HW1703 2019-12-06 17:27:56.878 [main error] scan config 06: ERR: element not found 2019-12-06 17:27:59.124 [main notice] read common config file vaillant/scan.csv 2019-12-06 17:27:59.186 [main notice] read common config file vaillant/general.csv 2019-12-06 17:27:59.241 [main notice] read common config file vaillant/broadcast.csv 2019-12-06 17:27:59.305 [main notice] read scan config file vaillant/08.bai.csv for ID "bai00", SW0104, HW7803 |
4. controle of alles mooi werkt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| ebusctl info version: ebusd 22.3.p20220508 update check: version 23.1 available, broadcast.csv: different version available, memory.csv: different version available, vaillant/08.bai.csv: newer version available, vaillant/15.700.csv: newer version available, vaillant/bai.308523.inc: different version available, vaillant/broadcast.csv: different version available, vaillant/ec.sol.sc.csv: different version available, vaillant/errors.inc: different version available, vaillant/general.csv: different version available, vaillant/hcmode.inc: different version available, vaillant/iotestbsol.inc: different version available, vaillant/yield3f40.inc: different version available device: /dev/ttyUSB1 signal: acquired symbol rate: 156 max symbol rate: 526 min arbitration micros: 312 max arbitration micros: 9743 min symbol latency: 1 max symbol latency: 25 reconnects: 4 masters: 5 messages: 800 conditional: 3 poll: 1 update: 10 address 01: master #6 address 03: master #11 address 06: slave #6, scanned "MF=Vaillant;ID=VMD01;SW=0108;HW=1703", loaded "vaillant/06.vmd.csv" address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0104;HW=7803", loaded "vaillant/bai.308523.inc", "vaillant/08.bai.csv" address 10: master #2 address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0614;HW=6903", loaded "vaillant/15.700.csv" address 30: master #3 address 31: master #8, ebusd address 35: slave #3, scanned "MF=Vaillant;ID=VR_91;SW=0415;HW=4803" address 36: slave #8, ebusd address 52: slave, scanned "MF=Vaillant;ID=VR_70;SW=0109;HW=2903", loaded "vaillant/52.vr_70.csv" address ec: slave, scanned "MF=Vaillant;ID=SOL00;SW=0614;HW=6903", loaded "vaillant/ec.sol.sc.csv" address ed: slave, scanned "MF=Vaillant;ID=VMD01;SW=0108;HW=1703" |
5. Voorbeeld van oproepen van parameters vanuit een bash script
code:
1
2
3
4
5
| Daksensor="$(ebusctl read -f Ntc1Sensor | head -1 | cut -b 1-4)" Vatsensor="$(ebusctl read -f Ntc3Sensor | head -1 | cut -b 1-4)" VatsensorT1="$(ebusctl read -f Ntc5Sensor | head -1 | cut -b 1-4)" VatsensorT6="$(ebusctl read -f Ntc6Sensor | head -1 | cut -b 1-4)" BuitenT="$(ebusctl read -f DisplayedOutsideTemp | head -1 | cut -b 1-4)" |
6. Voorbeeld bash script om àlle values uit de registers te lezen op de ebus. Let op: dit duurt even

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| readall.sh #!/bin/sh port=8888 if [ "x$1" = "x-p" ]; then shift port=$1 shift fi readargs= if [ "x$1" = "x-R" ]; then shift readargs=$1 shift fi for i in `echo "f -F circuit,name" "$@"|nc -q 1 127.0.0.1 $port|sort -u|egrep ','`; do circuit=${i%%,*} name=${i##*,} if [ -z "$circuit" ] || [ -z "$name" ] || [ "$circuit,$name" = "scan,id" ]; then continue fi ret=`echo "r -f ${readargs} -c $circuit $name" |nc -q 1 127.0.0.1 $port|head -n 1` echo "$circuit $name = $ret" done |
Geeft als (voorbeeld) output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| 700 Date = 19.02.2023 700 DisplayedOutsideTemp = 11.4375 700 FrostOverRideTime = 4 700 Hc1ActualFlowTempDesired = 23.1005 700 Hc1AutoOffMode = eco 700 Hc1CircuitType = mixer 700 Hc1ExcessTemp = 0.0 700 Hc1FlowTemp = 21.4375 700 Hc1HeatCurve = 0.24542 700 Hc1HeatCurveAdaption = 0.0288874 700 Hc1MaxFlowTempDesired = 40 700 Hc1MinFlowTempDesired = 18 700 Hc1MixerMovement = 10 700 Hc1PumpStatus = 1 700 Hc1RoomTempSwitchOn = thermostat 700 Hc1Status = 1 700 Hc1SummerTempLimit = 19 700 Hc2ActualFlowTempDesired = 22.222 700 Hc2AutoOffMode = eco 700 Hc2CircuitType = mixer 700 Hc2ExcessTemp = 0.0 700 Hc2FlowTemp = 21.0625 700 Hc2HeatCurve = 0.2 700 Hc2HeatCurveAdaption = -0.0100313 700 Hc2MaxFlowTempDesired = 40 700 Hc2MinFlowTempDesired = 18 700 Hc2MixerMovement = 5 700 Hc2PumpStatus = 1 700 Hc2RoomTempSwitchOn = thermostat 700 Hc2Status = 1 700 Hc2SummerTempLimit = 19 |
Voorbeeldimplementatie bij @Minitrooper
Hardware
- esera USB ebus reader: https://esera.de/en/Products/eBus/135/eBus-Coupler-USB
- Vaillant Aurostep 250 - zonneboiler
- Vaillant EcoTec VCW 376 inclusief buitenvoeler
- Vaillant VRC700 & VR91 voor 2 aparte zones in VVW circuit
- Raspberry pi 2
- Mee aangeknutseld: 2x ESP32 met 2x 16 DS18B80 sensoren om deze 2 zones op in- en uitvoer op te volgen - 1 ESP op wifi, de andere rechtstreeks op serial van de Pi.
Software
- ebusd (met handmatige configuratie aanpassingen)
- custom bash scriptjes: eentje voor bv "sunny predictions" te doen, andere om waardes van de ebus te krabben en in mysql te drukkenl
- mysql
- Grafana
Use cases
- Begonnen aan dit project omwille van verschillende redenen: zonneboiler vertoonde zéér raar gedrag - tot 1600 warmde het vat mooi op tot 80+°C, de uren erna vloog de temperatuur eraf tot 50°C. Dankzij het plaatsen van DS18B80 sensoren kunnen uitdokteren dat de installateur de in- en uitgang van de glycol leidingen omgewisseld had. Met als gevolg dat ik 30°C warmte affakkelde op mijn dak.
- Ook bij het inregelen ("waterzijdig calibreren") van de vloerverwarming kwam de ebus goed van pas: Vloerverwarming "gek" gedrag - Vaillant ebusd insights
De sturing van de glycolpomp "aan-uit" parameters worden hierin gevisualiseerd, tesamen met "leuke" temperatuurweetjes.
Voorbeeldimplementatie bij @copy-paste
Hardware
- ebuzzz-adapter; https://gitlab.com/fromeijn/ebuzzz-adapter (Niet meer te koop, ik was een van de gelukkige die deze plug-en-play adapter heeft mogen kopen. Bedankt Floris voor het ontwikkelen en verkopen ervan)
- Vaillant GeoTherm
- Vaillant VWZ IO
- Vaillant VRC700
- Vaillant EcoTec (niet aan de ebus)
Software
- ebusd (met handmatige configuratie aanpassingen)
- custom python scriptje voor mqtt->postgresql
- PostgreSQL
- Grafana
- Home Assistant (van voor de ebusd --mqttint, alleen energie en temperatuur lezen)
Voorbeeldimplementatie bij @Proton_
Hardware
- ebuzzz-adapter; https://gitlab.com/fromeijn/ebuzzz-adapter
- Raspberry Pi 4
- Vaillant Arotherm Plus 65/6
- Vaillant VWZ IO Plus
- Vaillant VRC720
Software
- ebusd met configuratie samengesteld uit diverse pull requests
- custom C# voor json->RavenDB en gedragtweaks
- RavenDB
- Grafana
Externe links/lectuur
http://ebusd.eu[Voor 201% gewijzigd door Minitrooper op 19-02-2023 11:33]
'19 Hyundai Kona EV, douchen met wtw en Auer Edel Eau, verwarming met Vaillant R290 monoblock