Skip to content

Source vaillant_ebus: time programs through the Vaillant eBUS integration - #2

Merged
citoki merged 4 commits into
mainfrom
vaillant-ebus-source
Nov 9, 2026
Merged

citoki merged 4 commits into
mainfrom
vaillant-ebus-source

Conversation

@citoki

@citoki citoki commented Nov 8, 2026

Copy link
Copy Markdown
Owner

What

A second data source next to MQTT: with source: vaillant_ebus the card reads and writes the time programs through the
Vaillant eBUS integration, which talks to ebusd over TCP. No MQTT and no
sensor per slot needed.

type: custom:ebusd-time-program-card
source: vaillant_ebus
programs: [z1, hwc, cc]

Depends on MarkBovee/vaillant-ebus#229, which adds the read_time_program and write_time_program actions. Until
that is released, source: vaillant_ebus shows "not found" with a hint; the MQTT source (default) is unchanged.

How

  • New options source (mqtt | vaillant_ebus), refresh_interval (default 300 s, reads from ebusd's cache) and
    entry_id (only with several integration entries).
  • src/adapters/vaillant-ebus.ts: calls the actions with returnResponse; one shared read per program for all cards
    on the page; a failed read keeps the last values (offline) and is retried after 30 s.
  • Write job: a day can be written by an action that reads it back itself. Retry, continue and restore work as before.
  • The set-back temperature needs setback_entity with this source (no MQTT write).
  • Dev page: ?source=vaillant_ebus uses a fake integration in test/fake-ebusd.ts.
  • Three new texts in all 14 languages; docs/options.md has a new "Source" section.

Tests

  • npm test: 168 tests (17 new), npm run typecheck clean.
  • npm run test:e2e: all 9 checks, 2 new for the vaillant_ebus source (write, and a day the controller ignores).
  • Live: local Home Assistant dev instance with the integration from the PR above, against the production ebusd
    (CTLV2 SW0514). Read and write worked; the MQTT card on the production system showed the changes shortly after.

…t eBUS integration instead of MQTT

- new options source (mqtt | vaillant_ebus), refresh_interval, entry_id
- adapters/vaillant-ebus.ts: read_time_program / write_time_program actions, one shared read per program for all cards
- write job: a day can be written by an action that reads it back itself
- fake integration on the dev page (?source=vaillant_ebus), unit and browser smoke tests
- three new texts in all languages, options documented
@citoki
citoki merged commit dbeaccb into main Nov 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant