Experimental, fully local control and monitoring for Brink Excellent ventilation
units using the ESP32-C3 Wi-Fi eBUS adapter. No Brink Home eModule, cloud service,
Home Assistant or separate ebusd process is required.
The current implementation has been tested on:
- Brink Excellent 400 (
0x7c) - Brink Excellent 300 (
0x3c) - ESP32-C3 eBUS Wi-Fi adapter hardware supported by
esp-arduino-ebus - Homey Pro with Apps SDK v3
This repository is a collaboration snapshot, not yet a Homey App Store release. In particular, pairing still uses an explicit target list that a developer must configure before installing the app.
include/,src/,static/: ESP firmware, based onesp-arduino-ebuslib/ebus-brinkfix/: vendored modified eBUS stack; GPLv3 license includedtest/: firmware policy and API testshomey-app/: Homey SDK v3 app, capabilities, Flow cards and testsdocs/: API, architecture and safety notes
Two explicit PlatformIO environments prevent accidentally addressing the wrong Brink family:
esp32-c3-brink-semantic -> Excellent 400, slave 0x7c
esp32-c3-brink-semantic-300 -> Excellent 300, slave 0x3c
Build one target at a time:
pio run -e esp32-c3-brink-semantic
pio run -e esp32-c3-brink-semantic-300The firmware exposes a cached semantic HTTP API. HTTP status reads do not cause eBUS traffic. Writes are allowlisted, bounded, authenticated and never blindly retried. See docs/semantic-api.md.
Hardware warning: only use supported eBUS adapter hardware. Do not power the board through the eBUS terminals from an external supply; that can damage the transmit circuit.
- Copy or edit
homey-app/drivers/brink400/targets.jsand replace the reserved example addresses and IDs with the adapters in the test installation. - Flash the matching 300 or 400 firmware image.
- Reboot the adapter to open its five-minute initial pairing window.
- Install and pair the development app.
cd homey-app
npm ci
npm test
npm run validate
npx homey app runHomey creates a random 256-bit bearer token during pairing. The ESP stores only its SHA-256 hash. A write consists of one POST followed by read-only command status polling and a targeted cache refresh.
- fan mode and physical bypass state
- inside/outside temperature
- inlet and exhaust airflow
- filter notification
- profile 0-3 airflow settings (profile 0 is read-only)
- bypass temperature and hysteresis
- Flow triggers for changed mode, bypass and outside temperature
- Flow conditions for mode, bypass and temperature relationships
- Flow actions for mode, profile airflow and bypass settings
The firmware history is based on Daniel Kucera's
esp-arduino-ebus. The
modified eBUS library originated from
yuhu-/ebus and is included under GPLv3 in
lib/ebus-brinkfix/LICENSE.
The upstream firmware repository currently does not contain a root license file. This repository therefore does not claim a new blanket license over that code. See NOTICE.md before redistributing firmware binaries.
Brink is a trademark of its respective owner. This is an independent community project and is not affiliated with Brink Climate Systems.