Willkommen zum eBUS Adapter Shield C6!
Dies ist die Dokumentation des eBUS Adapter Shield C6, mit dessen Hilfe man mit einer eBUS-fähigen Heizungs-, Lüftungs- oder Solaranlage kommunizieren kann.
Einen solchen Adapter kann man hier reservieren und dieser wird dann der Reihe nach versendet, sobald die nächste Charge verfügbar ist, oder direkt von einem Shop beziehen (Details im Link).
Einführung
Die C6 Edition des eBUS Adapters ist eine Erweiterung des Vorgängermodells Adapter v5 (mit USB-C Anschluss statt Micro-B, mehr RAM im ESP32-C6 und mehr I/O) und die Fortführung des Redesigns der v3.1 mit einem deutlich kleineren Footprint (37x26mm), steckbarer eBUS Verbindung, WIFI on board durch Wechsel auf ESP32-C6, Unterstützung verschiedener Ethernet Module und Kompatibilität zu vielen D1 mini shields (daher der Name “eBUS Adapter Shield”).
Der Adapter erfüllt wie v3.1 und v3.0 die von der eBUS Spezifikation geforderten Zeiten bei der Arbitrierung.
Dies wird durch Einsatz eines ESP32-C6 in RISC Architektur ermöglicht, der u.a. folgende Vorteile mit sich bringt:
- minimale Zeitverzögerung durch speziell entwickelten Treiber im Adapter
- vollständige galvanische Trennung der Signale ohne Stromaufnahme vom eBUS (Klasse 0 laut eBUS Spezifikation)
- flexible, konfigurierbare Verbindung mit dem Host:
- USB seriell über integriertes JTAG/serial interface
- WIFI direkt über onboard PCB Antenne
- Raspberry Pi über GPIO/ttyAMA0
- Ethernet mit Zusatzmodul USR-ES1 oder anderes W5500 Modul
- volle Unterstützung für ebusd enhanced protocol sowie standard protocol
- über Webbrowser konfigurierbare und aktualisierbare Firmware durch OTA Update sowie direkt über das USB JTAG/serial interface
- viele weitere Möglichkeiten, z.B. Anschluss von Sensoren und/oder Displays.
Durch die Verwendung eines DC-DC Wandlers und galvanischer Trennung der Signale ist der eBUS völlig vom Host isoliert und es wird nur marginal Strom vom eBUS ohne jegliche Schwankung entnommen (Klasse 0 laut Spezifikation Kapitel 10.7).
Somit ist die Heizungs-, Lüftungs- oder Solaranlage bestens geschützt und wird an der eigenen Stromquelle in keinster Weise belastet.
Verbindungen
Hier ist eine Übersicht der einzelnen Komponenten mit ihren Verbindungen:
- Heizung/Lüftung/Solarthermie
wird mit dem Adapter über eine 2-Drahtleitung verbunden (die Polung spielt dabei keine Rolle). - Adapter
wird mit ebusd verbunden über- USB (seriell),
- GPIO (UART) des Raspberry Pi,
- WIFI (on board) oder
- Ethernet (USR-ES1 oder andere W5500 Module).
- ebusd
interpretiert das eBUS Protokoll und macht die Daten bidirektional via MQTT, HTTP, KNX und TCP Port für Home-Assistant, KNX, Node-Red, FHEM und weitere verfügbar.
Host-Verbindung
Die Verbindung über USB, WIFI und Raspberry Pi ist immer möglich. Lediglich für Ethernet wird ein zusätzliches W5500 Modul benötigt.
Über das easi> Interface (via USB oder Netzwerk) können sämtliche Parameter eingestellt werden.
Nach Auslieferung muss evtl. erst die Firmware installiert werden, siehe unter erste Schritte.
Als Protokoll zwischen ebusd und dem Adapter kann sowohl direkt das eBUS Protokoll (“standard protocol”), als auch das ebusd “enhanced protocol” verwendet werden. Das enhanced protocol nutzt alle Vorteile des Adapters, indem die eBUS Arbitrierung direkt durch die ESP32 Firmware übernommen wird.
USB
Zur Nutzung des Adapters über den USB-Anschluss muss dieser lediglich mit dem Host verbunden werden.
Alle modernen Betriebssysteme (Windows/Linux/MacOS) haben bereits den dafür notwendigen Treiber.
Der Adapter stellt zwei Interfaces über USB zur Verfügung, die sich als Produkt “USB JTAG/serial debug unit” (idProduct: 0x1001) von “Espressif” (idVendor: 0x303a) darstellen:
- Interface 0 (inkl. 1): CDC ACM (USB “communication device class” mit “abstract control model”)
die serielle Schnittstelle, erscheint unter Linux als “USB ACM device” unter/dev/ttyACM<x>
und unter Windows als “USB JTAG/serial debug unit (interface 0)” oder “Serielles USB-Gerät (COM…)” - Interface 2: JTAG Debug
das Debug Interface, erscheint unter Linux nicht unter/dev
als Device (lsusb -t
meldet es als “If 2, Class=Vendor Specific Class” ohne Treiber) und unter Windows als “USB JTAG/serial debug unit (interface 2)” (wird nicht verwendet)
Über das easi> Interface muss die Host-Verbindung auf USB gestellt werden.
Zusätzlich zum Adapter wird lediglich ein normales USB-Datenkabel mit USB-C-Stecker benötigt. Der Adapter wird bereits mit einem eingesteckten eBUS-Stecker geliefert.
Die Stromversorgung erfolgt direkt über den USB-Anschluss.
Die ebusd device Konfiguration lautet z.B. -d ens:/dev/ttyACM0
, wobei ttyACM0
bei mehreren angeschlossenen
USB Geräten dieser Art anders lauten kann.
WIFI
Zur Nutzung des Adapters über WIFI muss dieser lediglich über die USB Buchse mit Strom versorgt werden.
Über das easi> Interface muss die Host-Verbindung auf WIFI gestellt werden. Darüber kann auch die WIFI Konfiguration (SSID, DHCP/feste IP-Adresse, Netzmaske, Gateway) angepasst werden.
Zusätzlich zum Adapter wird lediglich ein normales USB-Kabel mit USB-C-Stecker benötigt. Der Adapter wird bereits mit einem eingesteckten eBUS-Stecker geliefert.
Die Stromversorgung erfolgt direkt über den USB-Anschluss, kann aber auch über die Pins der Buchsenleiste W2 hergestellt werden, z.B. über ein DC Power Shield. Siehe Stromquelle für Details.
Die ebusd device Konfiguration lautet z.B. -d ens:192.168.178.2:9999
, wobei 192.168.178.2
durch die richtige
IP-Adresse ersetzt werden muss.
Raspberry Pi
Dreht man den Adapter auf den Kopf, lässt er sich auf einen
Raspberry Pi aufstecken.
Hierbei muss darauf geachtet werden, dass die näher an der Bohrung liegende Buchsenleiste des Adapters (links unten im Bild) auf Pin 2 der Raspberry Pi GPIO Leiste gesteckt wird, so dass diese Bohrung genau über der auf dem Raspberry Pi liegt und man einen Abstandshalter dazwischen setzen könnte.
Mit aufgestecktem Adapter (hier in rot zur Verdeutlichung) sieht das so aus:
Über das easi> Interface muss die Host-Verbindung auf Raspberry Pi gestellt werden. Die Firmware erkennt das auch beim Booten und konfiguriert den Adapter bereits entsprechend.
Für Raspberry Pi 5 muss bei älteren Adaptern noch ein extra Hinweis beachtet werden.
Zusätzlich zum Adapter wird nur evtl. ein Stacking-Header benötigt, falls die Raspberry-CPU einen Kühler hat. Der Adapter wird bereits mit einem eingesteckten eBUS-Stecker geliefert.
Die Stromversorgung erfolgt direkt über die Raspberry Pi GPIO Leiste.
Die ebusd device Konfiguration lautet: -d ens:/dev/ttyAMA0 --latency=50
Details zur Einrichtung des Raspberry Pi finden sich hier.
Ethernet
Zur Nutzung via Ethernet gibt es folgende Möglichkeiten:
- USR-ES1 Modul mit W5500 (z.B. von hier oder hier) zum Aufstecken auf W1+USRL,
- W5500 Ethernet Modul (z.B. von hier oder hier) zum geflippten Aufstecken auf USRL+W2 (so dass der 5V Pin des Moduls auf W2/9 sitzt).
Achtung: wird das W5500 Modul falsch auf den Adapter gesteckt (z.B. versetzt oder in umgekehrter Richtung), kann der Adapter dadurch beschädigt und unbrauchbar werden! Also am besten stromlos machen, Modul aufstecken und die Positiion kontrollieren, und erst dann wieder über den USB-Anschluss mit Strom versorgen.
Mit aufgestecktem USR-ES1 Modul sieht das so aus:
Über das easi> Interface muss die Host-Verbindung auf Ethernet gestellt werden. Darüber kann auch die Ethernet Konfiguration (DHCP/feste IP-Adresse, Netzmaske, Gateway) angepasst werden.
Wenn das W5500 Modul von der Firmware nicht erkannt wird, ist es möglicherweise defekt oder im Idealfall nur die Pin-Verbindung nicht stabil. Siehe hier zur Überprüfung.
Die Stromversorgung erfolgt direkt über den USB-Anschluss, kann aber auch über die Pins der Buchsenleiste W2 hergestellt werden, z.B. über ein DC Power Shield. Siehe Stromquelle für Details.
Zusätzlich zum Adapter und Ethernet-Modul wird lediglich ein normales USB-Kabel mit USB-C-Stecker benötigt. Der Adapter wird bereits mit einem eingesteckten eBUS-Stecker geliefert.
Die ebusd device Konfiguration lautet z.B. -d ens:192.168.178.2:9999
, wobei 192.168.178.2
durch die richtige
IP-Adresse ersetzt werden muss.
Power Source
Bei Verwendung von Ethernet oder WLAN als Host-Verbindung erfolgt die Stromversorgung des Adapters einfach über den USB-Anschluss mit einem handelsüblichen USB-Netzteil, z.B. einem, mit dem man auch ein Handy laden kann.
Die Mindestanforderung an die Stromquelle beträgt 1 Watt. Sicherheitshalber empfehlen wir die Verwendung einer Stromquelle mit mindestens 2 Watt, also einer Leistung von 400 mA bei 5 V.
Alternativ kann der Adapter auch über die Pins an der Buchse W2 mit Strom versorgt werden, z.B. über ein DC Power Shield.
Pinleisten, Funktionen
Für den Anschluss weiterer Komponenten stehen zusätzliche Pin Header zur Verfügung. Lediglich bei Ethernet bleiben nicht viele Pins dafür übrig.
Anschluss | Funktion | USB | WIFI | Raspberry Pi | Ethernet |
---|---|---|---|---|---|
USB | USB connector | USB | power | - | power |
W1 | I/O / W5500 | I/O | I/O | I/O | W5500 |
W2 | I/O / Raspi | I/O | I/O | Raspi | I/O |
USRL | W5000 / Raspi | - | - | Raspi | W5500 |
EBUS | eBUS connector | eBUS | eBUS | eBUS | eBUS |
Legende:
- - = nicht anderweitig nutzbar
Die Belegung eines Pins mit einer I/O Funktion kann über das easi> Interface vorgenommen werden.
I/O Belegung
Die ESP32-C6 I/O sind wie folgt belegt bzw. an den Buchsenleisten verfügbar:
IO | Funktion / Leiste/Pin | Setting | USB + WIFI | Raspberry Pi | Ethernet |
---|---|---|---|---|---|
0 | W1/3 | * | * | MISO | |
1 | W1/4 | * | * | RST | |
2 | W1/5, USRL/3, RPI/5 | * | SCL | MOSI | |
3 | W1/2, USRL/4, RPI/7 | * | GPIO4 | SCLK | |
4 | W2/11, RPI/8 | * | TXD | * | |
5 | W2/13, RPI/12 | * | GPIO18 | * | |
6 | W2/14, RPI/G | * | GND | * | |
7 | W1/6 | * | * | 3.3V | |
8 | W2/12, RPI/10 | pull-up | * | RXD | * |
9 | Button | pull-up | - | - | - |
12 | USB- | USB | - | - | |
13 | USB+ | USB | - | - | |
14 | eBUS RX | - | - | - | |
15 | eBUS TX | - | - | - | |
16 | TX, LED red, W2/16, RPI/18 | 500R | LED+* | GPIO24+LED+* | LED+* |
17 | RX, W2/15, RPI/16 | * | GPIO23+* | * | |
18 | USRL/5, RPI/G | * | GND | SCNN | |
19 | USRL/6, RPI/11 | * | GPIO17 | INTN | |
20 | X1/2 | * | * | * | |
21 | X2/4 | * | * | * | |
22 | X2/2 | * | * | * | |
23 | LED RGB, X2/3 | LED RGB | LED RGB | LED RGB | |
EN | Reset, W1/1 | pull-up | Reset | Reset | Reset |
Legende:
- * = beliebige Funktionszuweisung
- - = nicht anderweitig nutzbar
LEDs
Der Adapter verfügt über eine rote LED und eine RGB LED mit folgender Zuordnung:
- RGB LED: eBUS Empfang (grün) oder Signale der Firmware
- rote LED: eBUS Senden oder Firmware-Signal
Beim Booten faden alle LEDs 3 Mal. Dabei hat der Button die Funktion, gespeicherte Einstellungen zu ignorieren und den WIFI Access Point mit SSID “EBUS” zu starten.
Im eBUS Modus blinkt die blaue LED alle 5 Sekunden kurz als Ping, sofern via easi> Interface konfiguriert.
Die LED leuchten grün und rot bei entsprechendem eBUS Traffic (grün bei Empfang, rot bei Senden), sofern der eBUS Modus aktiv ist und es so via easi> Interface konfiguriert wurde.
Button
Der Adapter hat einen Button on board, mit dem verschiedene Aktionen möglich sind:
- Drücken+Halten vor Herstellen der Stromversorgung: Bootloader Modus
- Drücken+Halten während des Bootens (solange die LEDs faden): gespeicherte Einstellungen ignorieren und “EBUS” Access Point starten
- Drücken nach dem Booten: rote LED blinkt
- Drücken+Halten nach dem Booten: Reboot
Zusatzfunktionen
Viele der D1 mini Shields sind kompatibel mit dem Adapter und können einfach aufgesteckt werden. Dabei hängt der Pin links oben des aufgesteckten Moduls absichtlich “in der Luft”, das Modul muss also genau auf die 8 Pins der Buchsenleiste W2 gesteckt werden und ist deshalb um einen Pin versetzt in W1.
Folgende Typen werden vom easi> Interface unterstützt:
- OLED 0.66 Shield: erfolgreich getestet
- BMP280/BME280/BMP180: erfolgreich getestet
- 8x8 RGB Shield: erfolgreich getestet
- DC Power Shield: erfolgreich getestet
Damit kann man nahezu jedes beliebige DC Steckernetzteil mit 5,5mm Hohlstecker verwenden, um die Stromversorgung statt über USB herzustellen. - RGB LED Shield
- PIR Shield (*)
- SHT30 Shield (*)
- DHT Shield (*)
(*) geplant für eine zukünftige Firmware Version
Die Zuordnung der ESP32-C6 Pins zu den Wemos bzw. Shield Ports D0-D8 + A0 ist wie folgt:
Wemos | IO | W1 | Adapter | W2 | IO | Wemos |
---|---|---|---|---|---|---|
RST | - | 16 | IO16 | TX | ||
A0 | EN | 1 | 15 | IO17 | RX | |
D0 | IO3 | 2 | 14 | IO6 | D1 | |
D5 | IO0 | 3 | 13 | IO5 | D2 | |
D6 | IO1 | 4 | 12 | IO8 | D3 | |
D7 | IO2 | 5 | 11 | IO4 | D4 | |
D8 | IO7 | 6 | 10 | GND | GND | |
3V3 | 3.3V | 7 | 9 | 5V | 5V |
Durch die vielen vom W5500 Modul belegten Pins sind bei Ethernet allerdings nur wenige Shields direkt nutzbar. I2C-basierte Shields und solche mit maximal 3 I/O Pins können jedoch an W2 angeschlossen werden über IO4, IO20 und IO21 (bspw. über ein Dupontkabel).
Weiterführende Links
Hier sind einige Links, die zum Thema beitragen, bzw. Basisinformationen und Grundlagen enthalten: