ebusd & entities¶
The card has no integration of its own. It reads the sensors that ebusd's Home Assistant MQTT discovery creates, and writes by publishing to ebusd's MQTT topics.
flowchart LR
C[VRC 720 controller] <-- eBUS --> A[eBUS adapter] <--> E[ebusd]
E <-- MQTT --> B[MQTT broker] <--> H[Home Assistant]
H --> K[Time program card]
K -- mqtt.publish --> B
ebusd setup¶
You need:
- an eBUS adapter, e.g. the C6 stick
- ebusd, e.g. as the Home Assistant add-on, with MQTT enabled
- Home Assistant MQTT discovery in ebusd (
--mqttint=/etc/ebusd/mqtt-hassio.cfg), see the ebusd MQTT wiki - the controller's message definitions, e.g.
15.ctlv2.csvfor the VRC 720, with all three slots per day of the…Timer_<Day>messages. The upstream definitions don't have them yet, see ebusd configuration
What the card reads¶
For each program and day the controller has up to three slots. ebusd exposes each slot as one message, and
discovery turns its fields into sensors. With the defaults (mqtt_prefix: ebusd, circuit: ctlv2):
| Entity | Content |
|---|---|
sensor.ebusd_ctlv2_z1timer_monday0_htm |
start of slot 0 on Monday, e.g. 06:00 |
sensor.ebusd_ctlv2_z1timer_monday0_htm_1 |
end of slot 0 |
sensor.ebusd_ctlv2_z1timer_monday0_slottemp |
temperature of slot 0 (zones and hot water) |
sensor.ebusd_ctlv2_z1timer_monday1_…, …monday2_… |
slots 1 and 2 |
sensor.ebusd_ctlv2_z1timer_timeslots_slotcount |
number of slots on Monday |
sensor.ebusd_ctlv2_z1timer_timeslots_slotcount_1 … _6 |
number of slots Tuesday … Sunday |
sensor.ebusd_ctlv2_z1setbacktemp |
set-back temperature of zone 1, shown in the info text (optional; number.… when writes are discovered too; older configs: …_z1nighttemp) |
The other programs use the prefixes z2timer, z3timer, hwctimer and cctimer. That is about 70 sensors per
program. The card only re-renders when one of them changes.
The slot-count message is called …Timer_Timeslots in the current ebusd configuration and …Timer_Timeframes in
older ones. The card finds it by itself; set count_message if yours is named differently.
What the card writes¶
A day is always written as a whole, one /set message per slot, in order:
topic: ebusd/ctlv2/Z1Timer_Monday/set
payload: 0;2;06:00;08:00;21.0 slot index; slot count; start; end; temperature
1;2;16:00;22:00;21.0
Circulation has no temperature (0;2;06:00;06:10). An empty day is written as one slot with count 0.
After writing a day the card publishes ?1 to the /get topics of that day's messages, so ebusd reads them
again from the controller, and compares the result with what it wrote. See how writing works.
Different names¶
If your entities or topics are named differently, adjust the templates instead of renaming entities:
| Option | Default | Placeholders |
|---|---|---|
mqtt_prefix |
ebusd |
ebusd's --mqtttopic |
circuit |
ctlv2 |
ebusd circuit of the controller |
entity_template |
sensor.{prefix}_{circuit}_{message}_{field} |
{prefix}, {circuit}, {message}, {field} |
topic_template |
{prefix}/{circuit}/{message}/{action} |
{prefix}, {circuit}, {message}, {action} (set / get) |
Entity ids are lower-cased like Home Assistant does. A renamed message prefix (e.g. a custom CSV) can be set per
program with message_prefix.
Status and troubleshooting¶
The dot in the card's header shows the state of the current program:
| Dot | Meaning | What to do |
|---|---|---|
| Connected, all values received | – | |
| Waiting for values: some slots haven't been read yet | Wait a few minutes after an ebusd restart | |
ebusd not available: all sensors of the program are unavailable |
Check that ebusd runs and is connected to MQTT | |
| No ebusd entities found | The card lists the entity it looked for. Check mqtt_prefix, circuit and entity_template, or remove programs your system doesn't have (e.g. z2) |
Find your entity names
In Home Assistant open Developer tools States and filter for timer_monday0.
The part before z1timer is your {prefix}_{circuit}.