Manual · for version 1.4.6 · View on GitHub
This manual comes from the public repository of the Home Assistant integration. It still uses the old name OpenThermostat, and calls the box the E32: the BBQKees Gateway E32 V2 that Emthera runs on today.
HA 1.4.6 — "runs its own program" at once, a Heating plan sensor that is never Unknown, no more surprise after a tado write #
Companion of E32 1.4.6; also runs with E32 1.4.5 and older, with the limits under Updating. Needs Home Assistant 2026.10.0 or newer.
New #
- A radiator valve or room thermostat that runs its own program says so at once (issue #15). The valve tile shows "running its own program" as soon as the valve reports it, not up to an hour later, and the room screen's setting device line shows "Running its own program" while the device reports it.
- The Heating plan sensor always says something. While the E32 does not plan (still learning, checking its plans, ready for your confirmation) or Home Assistant waits for the E32, it shows a few words such as "Not planning (still learning)" instead of Unknown or Unavailable. With a next start it shows that time as before.
- A new room's "Last 24 hours" says what is missing. A room that has no measurements to draw yet says "Not yet 24 hours of measurements." instead of showing an empty frame; the line appears by itself once there are some.
- A room's learned model is there at once after Home Assistant restarts (needs E32 1.4.6).
- The learning texts say what an E32 1.4.6 really does. After a morning more than 10 minutes early or late, a room says "next time it starts a little earlier (at most a quarter of an hour a morning)", or later, instead of a number of minutes. Home Assistant picks the wording from the E32's firmware version: an older E32 keeps the old sentence, and while the version is not known yet it says less, never more.
- The Learning tab says how far a room's warm-up time is (needs E32 1.4.6): still learning, with how many of its last mornings count; adjusting; learned; or not learned for now, with the reason. The last mornings follow in words ("1 h 6 min early, on time, not warm within 3 hours"). "Warm on time" turns green only when the E32 says learned; until 1.4.5 it did after three judged mornings, whatever they were.
- A valve that fell back to its own sensor is shown (needs E32 1.4.6). The valve tile says "on its own sensor"; its tooltip says the E32 is putting it back on the room's sensor. It is not a Repair.
- "Learned water temperature" is never Unknown. While the E32 reports none, it shows the last one it reported, with the time, or "Not learned yet". It is still Unavailable while the E32 is silent, like the other water sensors.
Fixed #
- A setting device that falls back to its old target is no longer taken for a person at the knob. Some devices (a tado, for example) report their old target for a moment after Home Assistant wrote a new one. Home Assistant now writes the room's target once more instead of treating it as a manual change; a person who turns the knob still wins.
- Connect E32 no longer reads the E32's old room list when it checks the link.
Updating #
Update under Settings → Updates (Marketplace) and restart Home Assistant. E32 1.4.6 is installed from its file on the E32's own Firmware update page (Recovery); the Firmware entity offers no E32 update for now. You do not confirm the takeover again.
- Entities, IDs and history stay; nothing of this integration is removed or renamed.
- The Heating plan sensor shows words, not a time, while nothing is to start. An automation that uses its time should check that the state is a time.
- With E32 1.4.5 everything works; the learned model after a restart, and the items in the E32 notes, need E32 1.4.6.
- With E32 1.4.6 on HA 1.4.5 everything works; Home Assistant 1.4.5 shows no finding for a valve that is being put back on the room's sensor, a takeover repair says "before its firmware was updated" whatever the reason, and its line "next time it starts about 40 min earlier" is wrong for E32 1.4.6.
Not in this release #
- Several rooms on one boiler, a floor whose pump starts only at about 45 degC, and a room that has not learned how fast it warms: see the E32 notes.
- Floor heating is not yet warm on time on most mornings; see the E32 notes.
- The sentences "Smart warm-up: starts at 07:20 so it is 21 °C at 09:00" and "warm on time" say what the E32 aims at. They are not a promise: floor heating is often late, and a room can be early (see the E32 notes).
Limitations #
- A room shows its Smart warm-up start and its advice only when the E32 has learned enough; until then the card says what it still needs.
- Sentences in sensors (what the E32 learned, the advice) are in Home Assistant's language; the cards use yours.
- A Zigbee2MQTT valve gets "running its own program" at once only when Home Assistant has a single climate entity with the valve's name; otherwise it shows what the E32 reports, up to an hour later.
- When a room's start is already an hour away from the E32's own estimate, Home Assistant can still say "next time it starts a little earlier" where the E32 1.4.6 cannot move the start further; Home Assistant cannot see that estimate.
- With E32 1.4.6 a room that is "not learned for now" can still show the Learning card's "Learned" mark for its warm-up and cooling figures: those are other facts than the warm-up time.
- Boiler settings stay a preview until a real boiler has confirmed them.
- Radiator valve control has run on a few real valves only; a Sonoff TRV Gen2 reports no valve position.
HA 1.4.5 — the hot water flow on the Boiler tab, a lighter settings panel, cards that fit a narrow phone #
Companion of E32 1.4.5; also runs with E32 1.4.4 and older, with the limits under Updating. Needs Home Assistant 2026.10.0 or newer.
New #
- Diagnostics says "shortened" beside a room whose valve details the E32 had to cut to send them (needs E32 1.4.5).
- The hot water flow on the Boiler tab (issue #12). A boiler that measures its hot water flow shows under Hot water "Tapping now" with the flow, or "No tapping". The Hot water flow sensor is no longer hidden under Diagnostic.
- The settings panel loads in smaller pieces, so no single part of it grows past its size budget. Nothing changes on screen.
- Connect E32 removes the old MQTT entities that the previous firmware left under the E32's former MQTT base (an "OpenThermostat 1.0.0" device with unavailable entities).
Fixed #
- The room card keeps all five presets on a narrow phone. Below about 330 px the row wraps onto two rows instead of scrolling sideways, and the room's state ("On", "Off") stays beside a long room name.
- "The E32 cannot be reached" says how things are now. A connection check says "cannot be reached"; a save that failed still says "could not be reached ... Nothing was saved".
- The Hot water flow sensor is back at once after a restart instead of standing Unavailable until the next tap.
- Burner modulation above 100 % counts (hot water on some boilers) in "Reported burner modulation" and the room heat estimates on the older route.
Updating #
Update under Settings → Updates (Marketplace) and restart Home Assistant. Then install E32 1.4.5 from its Firmware entity and confirm the takeover again.
- Entities, IDs and history stay; nothing of this integration is removed or renamed. Connect E32 only removes the old firmware's MQTT leftovers.
- With E32 1.4.4 everything works; the "shortened" note needs the new firmware. The hot water flow works with every E32, because the boiler telemetry already carried it.
- With E32 1.4.5 on HA 1.4.4 everything works too; the flow sensor stays under Diagnostic and the tile is missing.
- Going back to HA 1.4.4 keeps the flow sensor shown, but the Boiler tab loses its tile.
Limitations #
- A room shows its Smart warm-up start and its advice only when the E32 has learned enough; until then the card says what it still needs.
- Sentences in sensors (what the E32 learned, the advice) are in Home Assistant's language; the cards use yours.
- Boiler settings stay a preview until a real boiler has confirmed them.
- Radiator valve control has run on a few real valves only; a Sonoff TRV Gen2 reports no valve position.
HA 1.4.4 — Learn again, a figure for heat along, every radiator valve in Diagnostics #
Companion of E32 1.4.4; also runs with E32 1.4.3 and older, with the limits under Updating. Needs Home Assistant 2026.10.0 or newer.
New #
- Learn again. After a change to your heating, let the E32 learn a room or the house anew: a button on each room's screen (Learning) and under Heating and boiler, a text button on a room's card on the Learning tab, and button entities for automations. It asks first; week programs and settings stay. Needs E32 1.4.4.
- Heat along only shows how well it works: the Learning card says "92 %" with "reaches 19 °C (14 days)", and the room's screen says "Reaches 19 °C 92 % of the time (14 days)"; before 14 days it says "still counting: day 6 of 14".
- Diagnostics fills the screen and has a new section, Radiator valves, listing every valve with its opening or set temperature, battery and what the E32 found.
- A valve whose message is too large to read shows in red on the room card and in Diagnostics, with its size ("message too large (2.3 KB)").
- Diagnostics says when the E32 could not read a device message: "Messages the E32 could not read: 3, last: …" under Connection with the E32 (needs E32 1.4.4).
- Any radiator valve that Home Assistant knows as a climate entity works, also one with only a temperature range.
- A device matrix and a page to add a device. The documentation lists which valves, thermostats, sensors and boilers are verified with a real capture, and "Add a device: send a capture" shows how to send yours, so that every build is tested against it.
Fixed #
- A setting device that only reports a range (a Bosch Room thermostat II through Zigbee2MQTT) now shows its temperature on the room card (issue #16).
- A valve without a setting of its own shows the room's temperature ("set to 19 °C") instead of an empty line.
- Every room card has the same presets (Program, Comfort, Eco, Night, Boost), also a room without a week program and a room on Heat along only; a room that uses the room defaults says so under the row (issue #17).
- Diagnostics no longer lists a Repairs item that Home Assistant stopped showing after a restart (the learned-store item stayed in the download).
Updating #
Update under Settings → Updates (Marketplace) and restart Home Assistant. Then install E32 1.4.4 from its Firmware entity and confirm the takeover again.
- Entities, IDs and history stay; nothing is removed or renamed.
- With E32 1.4.3 everything works, without the Learn again buttons and the line for a valve whose message is too large; a Sonoff TRV-ZBT stays unknown until the E32 is updated.
- With E32 1.4.4 on HA 1.4.3 the valves are read, and the Learn again buttons are missing in Home Assistant.
Limitations #
- A room shows its Smart warm-up start and its advice only when the E32 has learned enough; until then the card says what it still needs.
- Sentences in sensors (what the E32 learned, the advice) are in Home Assistant's language; the cards use yours.
- Boiler settings stay a preview until a real boiler has confirmed them.
- Radiator valve control has run on a few real valves only; a Sonoff TRV Gen2 reports no valve position.
HA 1.4.3 — every tab as wide as your screen, a card per room, everything the E32 learns on one tab #
Companion of E32 1.4.3; also runs with E32 1.4.2 and older, with the limits under Updating. Needs Home Assistant 2026.10.0 or newer.
New #
- Every tab of the dashboard now uses the whole width of your screen, like the Overview: one column on a phone, up to four on a large monitor.
- Rooms: one card per room with the program of today, the last 24 hours and the devices of the room, and the presets and the room's state on the card. The target changes by half a degree with − and +, and the Overview's rooms stand two by two.
- Learning: everything the E32 learns on one tab, per room in figures (how long one degree takes, how fast the room cools, the coolest water that warms it in time, the free heat, seven mornings, the advice). What it does not know yet says what it still needs, never a number. The tab is called Learning now.
- Radiator valves: what the E32 found on each valve (put back, own program, switched off by you, not responding) shows on the room card.
- Overview and Boiler say what the E32 asks of the water in the same words as the Learning tab ("Outdoor 6.7 °C: the E32 asks 42 °C water"), and the room card's presets stay on one row.
- The boiler's Hot water flow sensor switches itself on (hidden, under Diagnostic) once the flow moves, so a hot water tank install sees it.
Fixed #
- The room screen's Reload and "Use …" buttons no longer add a browser history entry, and every figure there follows your unit and number format.
- The notifications save bar says "Suggested phone not saved yet" while a suggested phone is not saved.
- A failed save says the E32 "was" not reachable, not "is".
Updating #
Update under Settings → Updates (Marketplace) and restart Home Assistant. Then install E32 1.4.3 from its Firmware entity and confirm the takeover again.
- Entities, IDs and history stay; nothing is removed or renamed.
- The dashboard changes by itself at the restart: the Rooms and Learning tabs look different. What the E32 learned per room is on the Learning tab now, not on the Rooms tab; the two switches are under Settings.
- With E32 1.4.2 everything above works. The valves' findings need what E32 1.4.2 reports; with E32 1.4.1 a valve tile shows one line.
Limitations #
- A tab with few sections stays narrower than a large monitor, because there is nothing more to put beside them.
- A room shows its Smart warm-up start and its advice only when the E32 has learned enough; until then the card says what it still needs.
- Sentences in sensors (what the E32 learned, the advice) are in Home Assistant's language; the cards use yours.
- Boiler settings stay a preview until a real boiler has confirmed them.
- Radiator valve control has run on a few real valves only; a Sonoff TRV Gen2 reports no valve position.
HA 1.4.2 — recipients per room, every battery on one list, fewer Repairs #
Companion of E32 1.4.2; also runs with E32 1.4.1 and older, with the limits under Updating. Needs Home Assistant 2026.10.0 or newer.
New #
- Per room you choose who gets its messages, on the room's screen. After the update every room keeps the people it had.
- Every battery on one list (Settings → Devices → Batteries) with one limit you choose. A window or door contact, the setting device, a thermometer or a valve that runs low gets its own message naming it, again after a week if it stays low; a device silent for a day is reported as probably empty. The Overview shows a line as soon as one runs low.
- A setting device works both ways, also without a week program: what you turn on it is a manual change of the room. A device is the room's setting device or a valve the E32 drives, not both.
- A temperature never changes the room's state. With a week program it lasts until the next switch time; without one it is the room's temperature. "Length of a manual change" is gone, and a room card says "Off until 14:00, then on again".
- A room on Heat along only has one field, Heat along up to, in General. "Use one fixed temperature" removes its week program after a question.
- Heat along or a fixed temperature. After two weeks the room screen says up to which temperature a room can heat along for free, and what each degree above that costs.
- Fewer Repairs, only faults. Advice moved to "Worth checking" on the Learning tab. A new item tells you when the E32 lost its stored settings.
- Bluetooth: Search works whenever a search is possible, and a sensor's screen says which room it measures for and lets you rename it.
- Home Assistant sees the E32's new abilities at once after a firmware update; no reload is needed. It also uses the E32's connection more sparingly, so the E32's pages stay reachable during an update or a backup.
- Sensors stay available when Home Assistant starts while the E32 is off. A room on Heat along only or Off says "not measured", not Unknown. "Boiler status bits (raw)" is off by default.
- Hot water. "Gas per day" always shows hot water in total. With a hot water tank you get "Charges today" and its taps from the hot water flow (with litres); burner power above 100 % counts.
- The result you share with the tester program now also tells how the E32 controlled the boiler and how that went.
- After an update the settings page asks you to reload instead of mixing old and new. Small buttons are easier to tap.
Fixed #
- A removed room leaves nothing behind; a room you add again with the same name starts empty.
- Polish has been removed: a Polish Home Assistant profile shows English.
Updating #
Update under Settings → Updates (Marketplace; HACS on Home Assistant 2026.10 and older) and restart Home Assistant. Then install E32 1.4.2 from its Firmware entity and confirm the takeover again.
- Entities, IDs and history stay.
- A valve that was also a setting device loses Valve control once, with a Repairs item that goes when you save the room.
- A battery that is already low sends one new message naming the device.
- "Length of a manual change" disappears from Configure and the panel.
- On a hot water tank the sensors Keeping warm today, Tapping gas and Keeping-warm gas are removed after a day and replaced by Charges today.
- With E32 1.4.1 a change "until the next switch point" still lasts at most 24 hours, and a hot water tank's taps are not counted.
Limitations #
- Sentences in sensors (what the E32 learned, the advice) are in Home Assistant's language; the cards use yours.
- Boiler settings stay a preview until a real boiler has confirmed them.
- Radiator valve control has run on a few real valves only; a Sonoff TRV Gen2 reports no valve position.
- After a firmware downgrade to 1.4.1 the hot water day of a tank starts at zero.
HA 1.4.1 — a calmer Settings tab with everything in it, summer mode and cards in the same look #
Companion of E32 1.4.1; also runs with E32 1.4.0 and older, but summer mode needs 1.4.1. Needs Home Assistant 2026.10.0 or newer.
New #
The settings panel #
- A calmer, clearer Settings tab. Seven parts with icons; on a wide screen the right side shows your house at a glance. Every screen has the same look: one column of cards, the value large, one line of help (more behind "More"), and times in Home Assistant's own language and clock. It fits a phone better.
- A room has one screen with everything. General, Temperature, Week program, Windows and doors (with their waiting times), Radiator valves (with their models), Persons, Notifications for this room and Temperature limits, each a section that says in its header what is set. The House keeps only what belongs to the house and shows "Stop holiday" while a holiday runs.
- The week planner is on the room's screen. Add, drag and change a room's reset times right on the day bars (or in the list under them), choose the room's Smart warm-up there, and save it all with the program in one go. The dashboard's separate Week program tab is gone; every link to it opens the room's screen.
- Boiler settings in the panel. Settings → Heating and boiler → Boiler settings (preview): allow, change, watch your boiler, keep or put back, the installer settings and stop, with the same questions and safety as before.
- Devices does what the E32's page did. Pair a new Bluetooth sensor (the E32 searches, you pick yours, name it and, if needed, give its key), give The Pill's probes their pipes, look for the valves paired at your BLU Gateway and add one with a tap, and forget a sensor or remove a device after a clear question.
- Notifications as two simple questions. Who gets messages (each person's phone, the app on their own phone already suggested) and which messages (the house, with what causes each message, and every room with a short summary). One line at the top says where messages go now.
- Installation holds the upkeep. Name and dashboard, the E32's log, time zone and tester program, and under Maintenance: put a settings backup back (one Home Assistant keeps, or a file, also onto a replacement E32), tidy entity IDs with undo, remove old Home Assistant rooms. Energy shows one line of help per field and each sensor's value now.
- Configure has two items while the dashboard is shown: Open the settings page and E32 connection.
Summer mode and the cards #
- Summer mode. A fifth house mode that keeps the heating off until you switch it off; hot water and frost protection stay. The thermostats say why, and after five warm days Home Assistant asks once whether to switch it on (in summer, after three cold days, whether to switch it off). It never switches by itself.
- The dashboard cards look like the Settings tab. Each room shows its state as a coloured label and one line for what it does now; the house card shows the house mode large; in summer mode every tab starts with a banner and a button to switch summer mode off.
Fixed #
- Nothing stays "Unavailable". Yesterday's figures, the Bluetooth readings, the smart warm-up start and last night's heating gas keep their sensor after a restart; on a day without a figure it says Unknown.
- The Nefit TopLine is recognised as a known boiler (product 115, version 3.6) from the reading a tester shared (issue #13). Controlling it is not verified yet.
- The E32's Rooms page says "Temperature without a week program", the same words as in Home Assistant, and Polish uses one word for "Automatic".
Updating #
Update under Settings → Updates (Marketplace) and restart Home Assistant. Then install E32 1.4.1 from its Firmware entity and confirm the takeover again.
- Entities, IDs and history stay. If your house messages were on, the new "Season" question is ticked for you once.
- Going back to 1.4.0: switch summer mode off first. The Settings tab returns to its earlier look, and Configure has three items again.
Limitations #
- Summer mode and its labels need E32 1.4.1; on older firmware Home Assistant does not offer it.
- The Settings tab and the shorter Configure exist only while the OpenThermostat dashboard is shown.
- A figure the E32 did not measure shows as Unknown on the E32's device page; the dashboard hides it.
- Boiler settings stay a preview until a real boiler has confirmed them.
- An E32 restart in the first hour after midnight in summer may leave that day uncounted as a summer day by the self-tuning.
HA 1.4.0 — a Settings tab on the dashboard, reset times, Heat along only as a preset and fewer Repairs #
Companion of E32 1.4.0; also runs with E32 1.3.0 and 1.2.0. Needs Home Assistant 2026.10.0 or newer.
New #
- A Settings tab. The last tab of the OpenThermostat dashboard holds the settings of the installation in eight sections: Rooms, House, Heating and boiler, Devices, Notifications, Energy and outdoor temperature, Dashboard and name, and Advanced. The overview says what is set now. Each screen shows the value in use beside its field and an explanation beside each choice, and saves only what you changed; a setting changed on the E32 meanwhile is shown, with your change kept. Each room card has a Settings button that opens its room. Only an administrator of Home Assistant can save.
- A shorter Configure. While the dashboard is shown, Configure has three items: Open the settings page, E32 connection, and Advanced and diagnostics. Advanced keeps what the tab does not hold yet: a room's radiator valves, persons and temperature limits, the boiler settings (preview), restoring a backup and tidying entity IDs. Without the dashboard, Configure is as before.
- Reset times. Settings → Rooms → the room → Reset times, at most four:
on that moment any manual change ends and the room takes this value; the E32
does not work towards it. The week planner shows them as markers under the
days, the room card names the next one ("Resets at 22:00 to 14 °C"), the
room's thermostat has the attributes
next_resetandnext_reset_value, and a setting device on the wall gets the reset time's temperature. - Heat along only as a preset on the room's thermostat (issue #10), so a card, a voice assistant or an automation can choose all three room states. A temperature, Heat or another preset switches the room to On; Auto leaves it as it is.
- Smart warm-up per room (issue #8): As the house, On or Off, in the room's settings. A room that is off for it says so: "Smart warm-up is off for this room: heating starts at 07:00."
- A room that is Off shows its temperature (issue #9) on its thermostat, its card and its page on the Rooms tab ("Off · 17.2 °C (Bluetooth sensor)").
- The sensor Errors on the OpenThermostat E32 device: the error lines in the E32's system log since the last restart, with the last one and when. It is a figure, never a repair.
Fixed #
- An empty week program stays empty (issue #7). Editing a room without a week program no longer gives it "Workdays and weekend", and after saving the room list says which week program the room has. Only a new room starts with the standard program, and you can clear it.
- Fewer Repairs. Repairs only name what needs your attention. Gone: a room with one temperature source (the sentence is now in the room's help), a room group that came back, "Give your rooms a week program", and the notices about renewed boiler counters and room estimates. Items left by 1.3.0 go by themselves.
- A weather forecast you chose now reaches the E32. Home Assistant read the choice wrongly, so it was never sent, and saving the energy settings cleared it.
- A comfort style changed in Configure is no longer reported as not saved.
Updating #
Update under Settings → Updates (the Marketplace, Home Assistant 2026.11 and newer; HACS on 2026.10 and older) and restart Home Assistant. Then install E32 1.4.0 from its Firmware entity and confirm the takeover again (the repair "Confirm again that the E32 may control the boiler").
- Entities, IDs and history stay. The E32 device gets the sensor Errors once E32 1.4.0 runs.
- Going back to 1.3.0 is safe: the Settings tab goes, and Configure has all its items again.
Limitations #
- Reset times, Smart warm-up per room, the temperature of a room that is Off and the sensor Errors need E32 1.4.0; on older firmware they are not shown.
- The Settings tab does not yet hold a room's radiator valves, persons and temperature limits, the boiler settings (preview) or restoring a backup; they stay in Configure → Advanced and diagnostics. The week program is changed in the week planner.
- The Settings tab and the shorter Configure exist only while the OpenThermostat dashboard is shown.
- Pairing a Bluetooth sensor, The Pill's probe roles and looking for valves at a BLU Gateway stay on the E32's Devices page.
HA 1.3.0 — an E32 devices menu, Heat along only, a visible setting-device link and fixes for the first field tester #
Companion of E32 1.3.0; also runs with E32 1.2.0 and 1.1.0. Needs Home Assistant 2026.10.0 or newer.
New #
- Configure → E32 devices. One menu for Bluetooth sensors (moved from Advanced) and Shelly devices: add a device by its address (the E32 tests it first), a BLU Gateway's valves, and remove them. A line "On the boiler bus" names the devices the E32 hears. A Shelly device's password goes to the E32 and is never kept or shown by Home Assistant.
- Heat along only. The room's Heating choice and Configure → Rooms offer On, Heat along only and Off. With E32 1.3.0 the room keeps its target and its valves, and never asks for heat. During Smart warm-up the room thermostat shows the coming target ("Warming up for 17:30") and the valves follow. On older firmware the option is not offered.
- The setting-device link, visible. A room thermostat with a setting device shows what it last gave it and when, the last value taken from the device's knob, and in plain words why a write failed. Three failed writes in a row raise a repair that says what to check and goes away by itself when a write works. A device that returns from "unavailable" is written to, not taken as a turn of its knob.
- The lowest water temperature on automatic. Configure → Heating and boiler → Water temperature limits has the tick "Lowest water temperature: automatic". The Learning tab says what the E32 tried at lower water, and under the chart of water temperature by outdoor temperature a line says when the lowest water temperature decides. Needs E32 1.3.0.
- The valves tile for valves driven by temperature. A room whose valves do not report an opening shows "Valves" with the temperature they were given, not "Valves open".
- Room devices say what the room is: "Room on the E32: radiators" or "floor heating", with the E32's version, kept right after a rename.
- A fuller diagnostics download: the setting-device link per room and the learned-store figures, without passwords.
- The morning check in minutes: the Learning tab's plan section says "This morning: 6 minutes early" instead of "a little earlier". Needs E32 1.3.0.
Fixed #
- Repairs open with their dialog (issue #6). Seven repairs acted as if their dialog had been submitted; the room-programs repair crashed with a server error. The week-programme repair also no longer fails when the E32 cannot be read.
- A thermostat that only offers a temperature range works as setting device (issue #5), such as the Bosch Room thermostat II through Zigbee2MQTT: the room's target reaches it and a turn of its knob reaches the room.
- A setting changed on the E32 is no longer put back. The Configure forms for the comfort style, the house settings and the water temperature limits send only the fields you changed.
- The repair about what the E32 learned says how many free places the E32's settings memory has and how many it needs.
- Old Home Assistant rooms show in Configure only while an old room exists, in plain words; labels that no menu offered are gone.
Updating #
Update under Settings → Updates (the Marketplace, Home Assistant 2026.11 and newer; HACS on 2026.10 and older) and restart Home Assistant. Then install E32 1.3.0 from its Firmware entity and confirm the takeover again (the repair "Confirm again that the E32 may control the boiler").
- Entities, IDs and history stay; the room devices change their model text.
- Going back to 1.2.0 is safe: the new options and attributes show nothing until the E32 sends them.
Limitations #
- Heat along only, the automatic tick, the learning sentences and the morning check in minutes need E32 1.3.0; on older firmware they are not shown.
- A setting device gets no target while the E32 has no clock, because its own target would then come back to the E32 as a new base; it follows once the clock is back.
- Home Assistant's "Add room" for the old way stays for installations from before the E32 rooms.
HA 1.2.0 — notifications, three plain devices, a restart sensor, room models and the E32's heating plan #
Companion of E32 1.2.0; also runs with E32 1.1.0 and 1.0.0. Needs Home Assistant 2026.10.0 or newer.
New #
- Notifications per room and for the house. Configure → Notifications: choose each person's phone, then switch a room on. Its people get a message when a window or door is open while the room heats, when the room stays cold for over an hour (only those at home), when its sensor goes silent and when the battery of its thermometer or a radiator valve runs low. The house sends problems (boiler fault, the E32 not reporting and back, the E32 waiting for your confirmation, frost protection, low water pressure) and maintenance (boiler maintenance, a new E32 or integration version, a failing settings backup) to people with the tick "Also messages about the house". Off until you switch it on; room messages wait for the morning from 23:00 to 07:00.
- Three devices, plain names. "OpenThermostat E32" keeps the controller, the house, what it learned, gas and diagnostics. The boiler is a device of its own, named after the model you chose ("Nefit EcomLine HRC 22", else "Boiler"), with all its values and settings; a thermostat the E32 hears on the bus is "Thermostat on the boiler bus". Entity IDs and history stay. The seven "Old: ..." energy counters are gone (their history stays). Configure has "Dashboard and name" on the main menu, Smart warm-up and weather compensation as one form, and one name for each thing. New: the sensor "Last restart" (when and why the E32 restarted), two Repairs items when the E32 could not keep what it learned, and fewer history rows.
- What the E32 reports. What the E32 learned says from which water temperature your boiler burns steadily, lists all of the latest day's changes and says about how many minutes a late or early morning moves the next warm-up. Missed comfort time follows the E32's own count of rooms below their target. The Boiler view says what the boiler got when it differs from what was asked. Boiler settings can be changed while the E32 heats.
- Room models and the heating plan. What the E32 learned says per room how far its model is ("checking its predictions for Living room, 2 of 3 days good"). Home Assistant sends the weather forecast every hour (Configure → Energy and outdoor temperature). With E32 1.2.0 the sensor "Heating plan" and the dashboard's "Today's plan" show what the E32 would plan and why ("Starts at 06:20 with 52 °C water so Living room is 20.5 °C at 09:20 ..."), per purpose warm-up, pre-heat, learning move, hold or coast. The E32 only watches at first. When its predictions have been good for a week, Settings → Repairs asks once "The E32 is ready to plan the heating"; nothing changes until you confirm, and a bad spell sends it back to checking. The comfort style (comfort first, balanced, save most) sits beside Smart warm-up.
Fixed #
- Rooms no longer disappear after one plan read. A room loses its group, device and entities only after its device is gone, which takes two plan reads at least a minute apart, and never on a plan without rooms.
- Valve entities go once the last radiator valve is removed.
- Display code 0P is no longer a fault without a service number: it reads "Code 0P (meaning not confirmed for this boiler)", without advice.
- The help texts follow the E32's renamed Settings page: System → Settings → Home Assistant → MQTT broker.
- Reloading the integration no longer adds a time-zone check and an E32 status read per minute each time.
- Boiler settings keep their entities over a restart once the E32 verifies a setting.
- Smaller fixes: a failing room clean-up is logged and tried again; an odd entity-list topic from the broker raises no error; removing an installation forgets the E32 password the E32 refused.
Updating #
Update under Settings → Updates (the Marketplace, Home Assistant 2026.11 and newer; HACS on 2026.10 and older) and restart Home Assistant. Then install E32 1.2.0 from its Firmware entity and confirm the takeover again (the repair "Confirm again that the E32 may control the boiler").
- Entities, IDs and history stay; only the boiler's device changes. Anything customised on an "Old:" counter is disabled, not deleted.
- Going back to 1.1.0 or 1.0.0 is safe: the new sensors and Repairs items show nothing until the E32 sends them.
- Notifications are off until you switch them on.
Limitations #
- The plan, models and forecast need E32 1.2.0; on older firmware they are not shown.
HA 1.1.0 — separate pause delays for doors and windows, boiler settings and recognition, EMS+ values, Shelly floor circuits #
Companion of E32 1.1.0; also runs with E32 1.0.0. Needs Home Assistant 2026.10.0 or newer.
New #
- Window contacts and door contacts: Configure → Rooms → the room → Windows and doors has Window contacts, "Pause after (windows)" (default 2 minutes), Door contacts and "Pause after (doors)" (default 5 minutes). Letting the dog out no longer pauses the heating. A sensor is a window or a door, not both; up to 8 per room. Defaults for all rooms: Configure → House → Comfort defaults for rooms.
- The reason names the kind: "Paused: a door is open" or "Paused: a window is open", with the contact's name when Home Assistant sees it open. The room card, house card and Today say the same. With E32 1.0.0 they keep "window or door".
- Boiler counters: a counter your boiler or adapter never fills in shows unknown with "Not reported by this boiler or adapter" instead of 0.
- Heating problem: "Burner switches on and off too often" appears only when E32 1.1.0 says it persists after its self-tuning. If the E32 stays online but sends no room and boiler values for 15 minutes, they show as unavailable and a repair asks you to restart it.
- Boiler recognition: a diagnostic sensor says which boiler the E32 recognised and whether it may control it; Configure → Heating and boiler → Boiler model shows it. The repair "A different boiler is connected" confirms a replaced boiler.
- EMS+ boilers: nine more values (display code, cause number, heating active, burner rest left, 3-way valve, heating starts and more). EMS+ boilers are read, not controlled yet. Testers switch on Tester and choose Share result: Home Assistant writes the files and links to a GitHub form; it sends nothing itself.
- Boiler settings (preview): Configure → Heating and boiler → Boiler settings lets the E32 change the boiler's own settings after you allow it, one at a time; one not yet verified is watched for up to 15 minutes, then kept or put back. New: the sensor "Boiler settings writes" and the repair "Check the boiler: a setting could not be put back".
Optional, with E32 firmware 1.1.0 on an E32 V2 and Shelly devices:
- Shelly floor circuit: a device with Floor pump (running or not, why in words, its power), Floor supply, Floor return, their difference and Floor circuit problem. Floor pump mode switches the pump on or off for an hour, through the E32 (Home Assistant never talks to the Plug). Heat goes to says whether it goes to the floor only, the radiators or both. A floor loop that returns warmer or cooler than the others is a notification.
- Heating circuits form: Configure → Heating and boiler → Heating circuits has Pump control by the E32 (off: the E32 only shows what it would do), the highest water temperature to the floor and how long the pump may run on while the water is still warm. While it runs on, the reason says "Running on (rest heat)".
- Shelly BLU TRVs through the BLU Gateway: choose them under Configure → Rooms → the room → Radiator valves, mark Floor loop valves and the radiator to Keep this radiator open; up to 8 valves per room. A valve that reports no opening (Sonoff TRV Gen2) says "Regulates itself to the target; the position cannot be read".
- New Repairs: the Plug does not answer, refuses the password or has another device at its address; the pump takes no power; the floor water is too hot; a probe gives no reading; the gateway does not answer; a valve it does not know. Each clears itself.
Fixed #
- Room entities no longer disappear on Home Assistant 2026.11 after a learned value or a restart.
- A contact removed from a room, or moved from window to door, while it was open no longer keeps the room paused for up to 15 minutes, also when Home Assistant restarted in between.
- After an E32 restart or firmware update the room values, contacts and presence are sent once, as soon as the E32 is back online.
- Radiator valve entities are no longer removed when the E32 briefly reports its plan without its valve list.
- The E32's four web sessions fill up less easily.
- Smaller fixes: "Still to learn" is in your language; Yesterday says "1 h late"; the room list and installation status are in Polish; removing an installation clears its repairs.
Updating #
Update Home Assistant first: an older integration does not read the E32's longer list of boiler values. Update through HACS and restart Home Assistant. HACS checks a repository added by URL only every 48 hours of Home Assistant uptime: "Update information" in the OpenThermostat menu shows a new version at once. Then install E32 1.1.0 from the Firmware entity.
- Every contact you chose before is a window with its own delay. Nothing changes until you move a door to "Door contacts".
Limitations #
- With E32 1.0.0 the E32 knows only "a window or door is open": a window opened while a door is already open can pause the room sooner than 2 minutes, and the E32 pages say "a window or door". E32 1.1.0 keeps them apart.
- No EMS+ boiler is controlled yet, and boiler settings are a preview.
- The Shelly entities need E32 firmware 1.1.0, the devices and the E32 V2, and have met simulated devices only.
HA 1.0.0 — the first stable release #
The same code as HA 1.0.0rc7. Companion of E32 1.0.0 (the same code as 1.0.0-rc.5). Needs Home Assistant 2026.10.0 or newer.
New #
- A normal release: HACS now offers it as a regular update. The Pre-release switch is no longer needed for it.
- What 1.0 of the integration brings: everything from Home Assistant: rooms with week programs, house mode and presence, planned holidays, radiator valves, daily backups with restore and a daily summary. A dashboard that opens with a house card and says in plain words why each room heats, what the E32 learned and how it follows your boiler, a Connection page for diagnostics, and repairs that say what to do. Dutch, English and Polish.
Fixed #
- No changes since 1.0.0rc7.
Updating #
Update through HACS and restart Home Assistant, then install E32 1.0.0 from the Firmware entity. HACS checks a repository added by URL only every 48 hours of Home Assistant uptime, and not at start-up: "Update information" in the OpenThermostat menu shows a new version at once.
- Settings, rooms and everything learned are kept. From 1.0.0rc7 nothing else changes.
Limitations #
Radiator valve control is not yet verified on real valves. EMS Classic boilers only; EMS+ comes in 1.1. Pairing Bluetooth sensors is done on the E32. HACS lists OpenThermostat as a custom repository.
HA 1.0.0rc7 — more on the cards, a Connection page, and plainer names #
Companion of E32 1.0.0-rc.5 (also runs with rc.4 until you install rc.5). Needs Home Assistant 2026.10.0 or newer.
New #
- Room cards show the week program: after the reason, the level now and the next step: "Comfort until 22:30, then Night 18.0 °C". It is left out while something else sets the room's target (away, holiday, open window, a temporary change, or a thermostat in Home Assistant the room follows).
- The house card says more: the burner power and the boiler's display code ("burner 37 % · code -H"), the hot water temperature, and the burner starts in the last hour.
- Diagnostics starts with "Connection with the E32": does the E32 report, do the room values reach it (if not: since when, what it refused, and what to do), does the MQTT broker work, and which firmware runs.
- "Your boiler" in lines: highest water temperature, rest and lowest water temperature, each with what the E32 does because of it.
- The knowledge ring is honest: it shows 100 % and "It has learned everything it needs" only when nothing is missing.
- Trial run: the Comparison tiles have names a phone shows in full.
Fixed #
- Plain language: the Today card no longer says "warms up from 9:00 to be warm at 9:00" (it says the room is warm enough by itself), the learning progress no longer says "6 of 6", the rooms chip says "Learned", the burner power graph says "%" without "not kW", and a day with one outdoor temperature says it once.
- Today and Learning, in plain words: no warm-up is announced while the house is away, on holiday or a window is open; the start includes free heat; the trial run says "would". "Did not get warm within 3 hours" replaces "180 minutes late", "next time it starts a little earlier/later" replaces a percentage, and "0.0 °C too warm" is gone. Once judged, "Today it was warm 2 minutes late". A room renamed in Home Assistant keeps its learned lines, and its name in problems and repairs. The weather line says what its line gives and what the room correction adds, and what it sends when a room asks for heat. One outdoor temperature on the Overview; times as 06:10; plurals, hours and dates ("5 Nov") correct; Polish grammar; proposals are never shown as "Latest change"; night advice names the currency and "until {time}"; with a gas meter Yesterday shows the measured m³. The week card marks unsaved changes per tab and asks before Reload.
- The house card and the Boiler tab: the trial-run band says what the E32 would ask; a room's target is said once; a holiday end shows its date; gas without a gas meter says "(estimate)"; a silent E32 says so; the Boiler tab says "Resting"; °F and 12-hour clocks are followed.
- Room values reach the E32 reliably: they are sent again at once when the E32 comes back or restarts, and a source that froze for 3 hours is no longer sent as fresh. A renamed source is followed; a removed one raises a repair after 10 minutes. The "values not accepted" repair now says since when and why.
- A new Dutch installation no longer doubles the room in entity IDs
(
sensor.woonkamer_reden, notsensor.woonkamer_woonkamer_reden). - Firmware installs that fail say where (download, check, upload, not confirmed). Choosing the house mode Holiday starts a planned holiday that begins within a day, or tells you how to start one. Window and door wording is the same everywhere.
- Names changed (entity IDs did not; check automations that use names): "Burner starts today" is now "Burner starts (total)", likewise Burner time and Missed comfort time; the scoreboard sensors say "yesterday" (e.g. "Above target yesterday"; "Gas for heating" is "Heating energy yesterday (estimate)"); trial-run counters end in "(trial run)"; "Valve …" is "Radiator valve …"; "ESP32 CPU temperature" is "E32 temperature"; "Predicted heating start" is "Smart warm-up start"; "Temperature without Home Assistant" is "Temperature without a week program"; "Boiler request" is "Requested water temperature"; "Knowledge" is "Known about your house".
Updating #
- Update OpenThermostat in HACS (switch Pre-release on, or it is not offered) and restart Home Assistant.
- E32 rc.5 stays as it is; there is nothing to do on the E32.
Entity IDs and history are kept. On the first start a one-time tidy-up runs: the degree-day statistics get their new unit (kWh/°C·d, numbers unchanged) and the old "Device uptime" statistics are deleted. No repair is shown. Many existing entities move to the Configuration or Diagnostic group on their device page (settings, and figures the dashboard already shows); your dashboards keep them, dashboards Home Assistant generates by itself leave them out. A Dutch installation made with rc.5 or rc.6 keeps its doubled IDs; Configure → Advanced → Tidy entity IDs can fix them.
Limitations #
The E32's own page still says "6 of 6 warm-ups seen" (firmware, next release). The "still to learn" sentences come in Home Assistant's language, not in the language of your user profile. Radiator valve control is not yet verified on real valves. EMS Classic boilers only; EMS+ comes in 1.1. Pairing Bluetooth sensors is done on the E32. HACS lists OpenThermostat as a custom repository.
HA 1.0.0rc6 — the companion of E32 rc.5: what the E32 knows, and a redesigned dashboard #
Companion release for the E32 1.0.0-rc.5 (install both). Needs Home Assistant 2026.10.0 or newer.
New #
- Knowledge (a sensor on the E32 device): how much of your house the E32 has learned, in %, and what it still has to learn in words ("It still has to see how fast the living room warms up"). The Learning and settings tab now starts with What the E32 knows: a ring with "The E32 knows your house: 70 %" and the missing items.
- Boiler response (a sensor on the E32 device): Still listening, Learned, No return temperature, or E32 not controlling the boiler. Its attributes show how often the boiler held its temperature today, its own rest, the ceiling it learned for this outdoor temperature, the heat the house takes (kW) and kW per °C of water temperature, with one sentence: "Your boiler rests about 6 min each time it reaches its temperature; the E32 asks at most 41 °C now, so it starts less often."
- Yesterday compared with usual: one notification per insight ("Yesterday used 35 % more gas per degree of cold than usual", with what can cause it) and the same list under Noticed on the Learning and settings tab. It is information, not a Repair: dismiss it and it stays dismissed until the insight changes.
- Water temperature by outdoor temperature: a new chart card on the
Learning and settings tab, with the standard line (dashed), the line learned
for your house (solid), the point of now and the value at −10 °C. You can
also add it to your own dashboard (
custom:openthermostat-heating-curve). - Free heat: a section on the Learning and settings tab with what a room gets from sun, cooking and people (when the E32's report for that room has room for it; the E32 page always shows it). The learned overview also says when the Weather compensation line is estimated from your house ("for now, learning more (2 of 6 steady periods)").
- English, Dutch and Polish texts for all of it.
The dashboard, redesigned #
- A house card opens the Overview: a band in the colour of what the boiler does now (a problem turns it red and names the reason), the room that is on, hot water, today's gas with its last 7 days, burner starts, and the day so far from midnight. Under it, side by side: Rooms (a card per room with chips for its state), Today (when each room warms up next, and what Weather compensation asks now) and House (home or away, holiday, outdoor temperature).
- The Boiler tab opens with a Now card: a band in the colour of what the boiler does, with its display code in words, and four large figures: the water to the heating and back, the burner power and the starts in the last hour. After it: Advice, Today and this week, Hot water, Last 24 hours, What the boiler reports and Boiler settings. The gas per day is one chart now.
- The Learning and settings tab in seven sections: What the E32 knows, Your boiler, Water temperature by outdoor temperature, Yesterday in figures (the only Yesterday), Noticed, Free heat, and Smart warm-up and Weather compensation.
- No lone headings: a section hides as a whole while its cards have nothing to show.
The integration's dashboard is rebuilt by itself and your own dashboards keep
working; the house card, the Now card and the water temperature chart are there
for them too, as custom:openthermostat-house, custom:openthermostat-boiler-now and custom:openthermostat-yesterday
and custom:openthermostat-heating-curve.
Fixed #
- Room values stopped reaching the E32 about four hours after every Home Assistant start (1.0.0rc5): a five-minute refresh ran on the wrong thread and silently used up the send queue, so the E32 fell back to its own setpoints until Home Assistant restarted. Fixed, with a watch: when the E32 accepts nothing for 15 minutes while Home Assistant sends, you get a repair with advice and the values are sent again.
- A new installation no longer reports a "restored room group" or duplicate entity IDs.
- Boiler settings the boiler reports only when asked (its heating temperature, burner and pump settings, hot-water settings) stay visible with the time of the last reading instead of going unknown after ten minutes.
- The holiday line no longer shows an empty card; codes and counts show as whole numbers; the dashboard tabs show their names.
- The step that publishes the releases now waits for GitHub to list what it has just created, the likely reason rc.4's first attempt needed a re-run.
Updating #
- Update OpenThermostat in HACS and restart Home Assistant. In HACS, switch Pre-release on for OpenThermostat, or the update is not offered.
- Then install E32 1.0.0-rc.5 from the E32's Firmware entity and confirm the takeover again (Repairs, or Rooms on the E32).
Entity IDs and history are kept. The two new sensors read unknown, and the new section stays hidden, until the E32 runs rc.5 and has reported what it knows.
Limitations #
Everything new needs the E32 on 1.0.0-rc.5. A boiler without a return temperature gets no figure for the heat the house takes. 1.0.0 follows once E32 rc.5 has run 14 days unchanged. Radiator valve control is not yet verified on real valves. EMS Classic boilers only; EMS+ comes in 1.1. Writing boiler settings comes after 1.0. Pairing Bluetooth sensors is done on the E32. HACS lists OpenThermostat as a custom repository, not yet in the default HACS list.
HA 1.0.0rc5 — holidays, yesterday in figures and a safer link to the E32 #
Companion release for the E32 1.0.0-rc.4 (install both). Needs Home Assistant 2026.10.0 or newer.
New #
- Holiday planner (Configure → House → House mode and holiday): plan holidays ahead with their own "Temperature on holiday", stop or shorten a running one; the Overview shows the next holiday.
- Yesterday (Learning and settings): heating hours, burner starts per heating hour, short burner runs, gas for heating (estimate), degree-days, and per room "warm 12 min late · 0.3 °C too warm". Also as sensors, created once the E32 has a figure for them.
- Smart warm-up in plain words: "starts at 07:40 (estimate; it learns from every morning) so it is 21 °C at 09:00", "the warm-up time is learned; the coolest water is still being learned", and "Yesterday warm at 09:12 (12 min late); tomorrow 10 % earlier." In the learned overview and in the climate entity's smart_warm_up attribute.
Fixed #
- An empty room plan from the E32 (for example right after its restart) no longer removes the rooms' devices and entities; a room is removed only when two reads a minute apart both miss it.
- One sign-in path to the E32: a wrong E32 password is tried once and shows one repair instead of a storm of failed logins from every part of the integration; a saved password clears it. A write waiting for a free session no longer blocks reads.
- The trial-run (shadow) connection leaves the heating hub's telemetry alone, so a flood of retained messages no longer fills its queue.
- Broker outages are logged once instead of every 15 seconds; a failing listener logs at most once a minute; the dashboard is rebuilt only for this integration's own entities, not for every change in Home Assistant.
- The legacy set_comfort service is offered only for older Home Assistant rooms and explains itself on an E32 room.
Updating #
- Update OpenThermostat in HACS and restart Home Assistant. In HACS, switch Pre-release on for OpenThermostat, or the update is not offered.
- Then install E32 1.0.0-rc.4 from the E32's Firmware entity and confirm the takeover again (Repairs, or Rooms on the E32).
Entity IDs and history are kept. The Yesterday sensors appear once the E32 has measured a day.
Limitations #
Radiator valve control is not yet verified on real valves. EMS Classic boilers only; EMS+ comes in 1.1. Writing boiler settings comes after 1.0. Pairing Bluetooth sensors is done on the E32. HACS lists OpenThermostat as a custom repository, not yet in the default HACS list.
HA 1.0.0rc4 — a tidier Configure menu and dashboard, and why each room heats #
Companion release for the E32 1.0.0-rc.3; the E32 itself is unchanged. Needs Home Assistant 2026.10.0 or newer.
New #
- Configure, tidied up: six main items (Rooms, House, Heating and boiler, Energy and outdoor temperature, E32 connection, Advanced and diagnostics). Every submenu has "← Back"; after saving you are back in the menu, and "Done" closes it.
- Every setting in Configure: also the house mode and holiday (with its end date, and "Stop holiday"), Smart warm-up, Weather compensation and a room's "Off until".
- Dashboard in tabs: Overview, Rooms, Week program, Boiler, Learning and settings, and Diagnostics. Tiles sit in full rows or pairs, without gaps.
- Why each room heats or not: on the Overview every room has a status card: temperature and target, and in one line why it heats or not (window open, away, warm enough, Smart warm-up heating early…). Also as a "Reason" sensor per room.
- The heating problem says what it is, for example "Waiting for your confirmation", and tapping it opens Repairs.
- Weather compensation is the new name for "Follow outdoor temperature"; its setting is now "Water temperature in hard frost (−10 °C)", with an explanation.
- Plainer words in Configure and Repairs; technical details only under "Technical details".
Fixed #
- Repairs only appear for real problems, and each says what to do. Notices such as renewed boiler counters are shown once as a notification.
- "Switching on and off too often" is shown as learning information while the E32 lengthens the burner rest, not as a problem.
- HACS no longer offers the main branch (a commit such as 5043af7) as an update, and the HACS page shows the logo instead of code.
Updating #
- Update OpenThermostat in HACS and restart Home Assistant. In HACS, switch Pre-release on for OpenThermostat, or the update is not offered.
- The E32 stays on 1.0.0-rc.3: no firmware update and no need to confirm the takeover again.
- If HACS shows a commit such as 5043af7 as the installed version, download the release version once (Redownload, pick 1.0.0rc4).
Entity IDs and history are kept. The dashboard is rebuilt with the new tabs; your own dashboards are not changed.
Limitations #
Radiator valve control is not yet verified on real valves. EMS Classic boilers only; EMS+ comes in 1.1. Writing boiler settings comes after 1.0. Pairing Bluetooth sensors is done on the E32. HACS lists OpenThermostat as a custom repository, not yet in the default HACS list.
HA 1.0.0rc3 — the third 1.0 candidate: everything from Home Assistant, away per room and which rooms want heat #
Companion release for the E32 1.0.0-rc.3. Needs Home Assistant 2026.10.0 or newer.
New #
- Set it all up in Home Assistant: what you can set on the E32 can now
also be set under Configure, except pairing Bluetooth sensors, Wi-Fi, MQTT
and passwords:
- Home → Presence: the house away temperature.
- Rooms → a room: its radiator valves (just pick their climate entities; a known Zigbee2MQTT valve is driven by the E32 directly, so it keeps working without Home Assistant) and the room's own away temperature.
- Home → Comfort and boiler care: each setting automatic or set by you.
- Home → Heating and boiler → Boiler model.
- Advanced and diagnostics: Bluetooth sensor names, the E32 system log and the E32 time zone (with a repair when it differs from Home Assistant's).
- Away per room: the room's climate shows why it is cooler (its own persons are away, everyone is away, or the house mode).
- Smart warm-up: the switch "Warm on time with the coolest water" is now called Smart warm-up and is on by default (same entity ID). The room's climate says when it starts: "starts at 07:20 so it is 21 °C at 09:00".
- Which rooms want heat: a card under Now on the dashboard: how many rooms want heat, which, and the boiler request.
- Boiler device name from the model chosen on the E32, or a neutral "Nefit boiler (product 206)" when none is chosen.
- No old thermostat assumed in setup, repairs and advice.
Fixed #
- "E32 compared with your thermostat" stayed on the dashboard after the E32 took over, with an unavailable agreement entity. The comparison now only appears in a trial run with a thermostat on the boiler bus; once the E32 controls the boiler, the comparison entities you did not change are removed (history is kept).
Updating #
- Install HA 1.0.0rc3 with HACS (or the release ZIP) and restart Home Assistant.
- Update the E32 with its Firmware entity, while someone is home.
- Then fix the repair "Confirm again that the E32 may control the boiler".
Entity IDs and history are kept. Most new features need E32 1.0.0-rc.3.
Limitations #
Radiator valve control is not yet verified on real valves. EMS Classic boilers only; EMS+ comes in 1.1. Writing boiler settings comes after 1.0. Pairing Bluetooth sensors is done on the E32. HACS lists OpenThermostat as a custom repository, not yet in the default HACS list.
HA 1.0.0rc2 — the second 1.0 candidate: HACS, what the thermostat learned and plainer words #
Companion release for the E32 1.0.0-rc.2. Needs Home Assistant 2026.10.0 or newer.
New #
- HACS: install and update through HACS as a custom repository,
https://github.com/dielessen/openthermostat-ha(type Integration). Release candidates are pre-releases; see Updating. - What the thermostat learned: a new sensor and a Learned page on the dashboard: per room the learning progress, warm-up and cool-down, the lowest water temperature that still warms it in time, the planned start ("starts heating at 07:10 to be 21 °C at 09:00") and the night advice; the heating curve, the burner and the last ten self-tuning changes. The Heating view keeps a short summary after the rooms.
- The self-tuning changes explain when the boiler switches on and off by itself and longer pauses would only delay heat.
- Plain-language names and texts in English, Dutch and Polish, the same words as the E32 pages; the dashboard, advice and weekly summary are now in Polish too. Existing entity IDs stay; only a new installation gets IDs from the new names.
- E32 password: the repair "E32 still uses the default password" can now be fixed: "Choose a new E32 password" sets it on the E32 and in Home Assistant in one step. Until then the E32 accepts no changes, and a refused change says so.
- Boiler test and takeover: the sensor Ready for E32 control follows the E32's guided boiler test step by step, and the dashboard shows the next step while the E32 waits for the takeover. A new installation no longer reports a heating problem before its first takeover.
- Tidier device pages: the boiler's settings, counters, fault history and service details are under Diagnostic, a room's "Temperature without Home Assistant" under Configuration, and entities have their own icons instead of the generic eye. Entities and history are kept.
- Configure: a new installation shows the dashboard by default; the room form names its room; sources show by name; the default window pause is in minutes, like each room's.
- Week program card on a phone: only Save and Discard stay at the bottom, the selected room stands out, and the setting device shows by name.
- Backups include what the thermostat learned and its tuning, and the restore summary names each changed setting in plain words. A restore keeps the rooms' mode; a new or reset E32 still waits for your takeover confirmation.
Fixed #
- A backup with accented letters in room or sensor names could be refused as too large before it reached the E32.
- An undo of a restore that the E32 refused no longer loses the "before a restore" backup.
- A restore could overwrite and take over the E32 of another OpenThermostat installation in the same Home Assistant; it is now refused.
- A replacement E32 that already held the backup's settings could not be taken into use; the restore now offers "Use this E32 from now on".
- Setting the house mode and the away temperature right after each other no longer drops one or reverts the other.
- After a restart, a hidden boiler request sensor raised errors and could stop other heating updates.
- Boiler values renamed in 1.0 stayed as empty rows on boilers that do not report them.
- "Ready to take over?" no longer shows "None °C" for a value the E32 does not know yet.
Updating #
- Install HA 1.0.0rc2 (HACS or the release ZIP) and restart Home Assistant.
- Update the E32 with its Firmware entity, while someone is home.
- If the E32 still has the factory password, fix the repair "E32 still uses the default password" first; until then changes wait.
- Then fix the repair "Confirm again that the E32 may control the boiler".
From a manual install to HACS, without a duplicate: keep the integration
as it is (do not delete it under Devices & services) and make a Home
Assistant backup. In HACS add the custom repository above, open
OpenThermostat, choose Download, open "Need a different version?" and pick
1.0.0rc2. HACS writes to the same custom_components/open_thermostat folder
and replaces the manual files. Restart Home Assistant: still one
OpenThermostat entry, same entities. Keep no copy of the old folder inside
custom_components. To be offered later release candidates, turn on the
"Pre-release" switch of OpenThermostat's device under the HACS integration
(enable that entity first if it is disabled).
Entity IDs and history are kept. Most new features need E32 1.0.0-rc.2.
Limitations #
Radiator valve control is not yet verified on real valves. The three-way valve position cannot be seen behind an EMS adapter that leaves byte 7 of telegram 0x18 empty. EMS Classic boilers only; EMS+ comes in 1.1. Writing boiler settings comes after 1.0. HACS lists OpenThermostat as a custom repository, not yet in the default HACS list.
HA 1.0.0rc1 — the 1.0 candidate: radiator valves, house mode, daily backups and a daily summary #
Companion release for the E32 1.0 candidate. Needs Home Assistant 2026.10.0 or newer.
New #
- Daily E32 backups: Home Assistant saves the E32's settings once a day (the last 7 days, inside Home Assistant's own backups), with a "Back up E32 settings now" button and a Repairs item after 3 days without one. Configure → Advanced → Restore settings to this E32 puts a backup on a new or reset E32; it shows what changes first and comes back in shadow mode.
- Configure menu: Rooms · Home · E32 connection · Dashboard and name · Advanced. Window contacts (up to 8), persons and the window pause delay are set in each room; room defaults and presence under Home.
- House mode and presence: a House mode control (Automatic, At home, Away, Holiday until a date) and several people: the house is away once everyone has been away for 15 minutes, counted from when the last person left. The Away actions for automations set the house mode.
- Week planner: independent Comfort, Eco and Night levels per room; room presets Comfort, Eco, Night and Boost.
- Radiator valves per room, off by default: Zigbee2MQTT valves or any climate entity (ZHA, Z-Wave, Shelly, cloud) under Configure → Rooms → Radiator valves, with position, battery and problem entities, the opening on the dashboard and Repairs for a low battery or a silent valve.
- Daily summary on the Heating view: burner time and starts, short runs, time to target, missed comfort, outdoor temperature and gas per day, including keeping hot water warm.
- Warnings for a room that stays cold or a lost E32 link; every heating problem is also a Repairs item that clears itself.
- Takeover readiness sensor: the E32's "Ready to take over?" check.
- Display code in words on the Heating view; the sensor keeps the raw code, so history and automations are unchanged.
- Hot water split into tapping and keeping warm, with gas for each, a boiler activity timeline and an optional water meter (Configure → Home → Energy).
- The devices on the EMS bus appear as Home Assistant devices (and go away 24 hours after they leave the bus). A boiler power is suggested, but only stored when you save your own.
- Tidy entity IDs (Configure → Advanced, optional): preview, where each ID is used (also scenes), rename with history, undo within 30 days.
Fixed #
- Changes made in Home Assistant no longer fail when all four E32 web sessions are busy: writes wait for a free session (up to about 2.5 minutes), and only the newest change per room is sent.
- Values your boiler never sends are hidden instead of reading "unknown"; the old "unavailable" MQTT entities from before the current E32 link are removed once.
- Memory in kB and uptime in hours also on existing installations, and the repeated TV02 notice is gone.
- Help texts name the real E32 menu paths, such as System → Network and Home Assistant.
- After an E32 firmware update, Repairs shows one "Confirm the takeover again" item.
Updating #
Install HA 1.0.0rc1, restart Home Assistant, then update the E32 to the 1.0 candidate with the Firmware entity, while someone is home. Then confirm the takeover again under Repairs. The first E32 backup follows shortly after the start. Most new features need the new E32 firmware; older firmware keeps working as before. Entity IDs and history are kept.
Limitations #
Radiator valve control is not yet verified on real valves. The three-way valve position cannot be seen behind an EMS adapter that leaves byte 7 of telegram 0x18 empty. EMS Classic boilers only; EMS+ comes in 1.1. Writing boiler settings comes after 1.0. No HACS listing yet: install from the release ZIP.
HA 0.4.0b15 — the week planner without "Configuration error" #
A small fix for HA 0.4.0b14. Works with E32 beta22 and beta21. Needs Home Assistant 2026.10.0 or newer.
New #
- Nothing new: this release only fixes the week planner view.
Fixed #
- The week planner view no longer shows "Configuration error" now and then. Another dashboard card could replace the browser's list of card types a few seconds after the page opened, which dropped ours until you clicked elsewhere. The week cards now put themselves back within half a second, and Home Assistant redraws the view by itself.
Updating #
Install 0.4.0b15 and restart Home Assistant. Refresh the browser page once. The E32 needs no update.
Limitations #
EMS Classic boilers only; EMS+ comes later. No HACS listing yet: install from the release ZIP.
HA 0.4.0b14 — shows when the E32 runs the boiler itself #
Companion release for E32 beta22. Needs Home Assistant 2026.10.0 or newer.
New #
- Home Assistant now knows when the E32 itself sends the boiler request (after you switched to active control and confirmed the handover). The room thermostat's attribute boiler_output_enabled then reads true. With E32 beta21 or older it stays false, as before.
Fixed #
- Nothing else changed.
Updating #
Install 0.4.0b14, restart Home Assistant, then update the E32 to beta22 with the Firmware entity. 0.4.0b14 also works with E32 beta21.
Limitations #
EMS Classic boilers only; EMS+ comes later. No HACS listing yet: install from the release ZIP.
HA 0.4.0b13 — window contacts per room and a cleaner dashboard #
Companion release for E32 beta21. Needs Home Assistant 2026.10.0 or newer.
New #
- Window and door contacts in each room's settings: pick the contacts of that room; an open window pauses its heating and the room shows it.
- A redesigned dashboard: the Boiler view is grouped (heating, hot water, status, settings, thermostat on the bus), and values show only while they have one. The Diagnostics view hides empty counters and explains why.
- Readable values: On/Off instead of 1/0, the meaning of boiler codes (for example "Eco" or "Three-way valve") instead of numbers, memory in kB and uptime as a duration. Entity IDs, history and statistics stay the same.
Fixed #
- The week planner opens from the plan Home Assistant already has, without signing in to the E32 each time; Reload still reads the E32.
- The long name "E32-regelaar — ketel en diagnose", left over from an early test setup, is cleared once; names you set yourself are kept.
- Plainer connection error texts, and the Repairs week-program item only shows for rooms without a week program.
- About a third less steady MQTT traffic with E32 beta21; 0.4.0b13 also works with E32 beta20.
Updating #
Install 0.4.0b13, restart Home Assistant, then update the E32 to beta21 with the Firmware entity. 0.4.0b13 also works with E32 beta20.
Limitations #
Shadow mode only: Home Assistant sets the rooms' setting devices, the E32 sends nothing to the boiler. EMS Classic boilers only; EMS+ comes later. No HACS listing yet: install from the release ZIP.
HA 0.4.0b12 — a stability release: boiler values back, no dead integration, a working week planner #
Companion release for E32 beta20, fixes only. Needs Home Assistant 2026.10.0 or newer.
New #
- Nothing new on purpose: this release only makes 0.4.0b11 dependable.
Fixed #
- Boiler values without a session: flow, return, hot water, modulation and the other boiler values come straight from the E32's retained topics, so they no longer disappear when the session with the E32 is refused. "Unavailable" now only means that the E32 itself is offline.
- Only what your boiler has: values that the boiler profile marks as not fitted or never reported are no longer shown. A value that appears later (for example after fitting a pressure sensor) comes back by itself. Entities you renamed or changed are never touched.
- No dead integration after a failed step: a Connect E32 or Repairs "remove the old room" that fails, times out or is cancelled no longer leaves the link switched off. An installation left in that state by 0.4.0b11 is repaired by the next Connect E32. Removing the old room now first checks that the E32 runs beta19 or newer and says so when it does not.
- Clear sign-in messages: "too many open sign-ins" and "too many attempts" instead of "unexpected response", and Home Assistant always signs out of the E32 again.
- The week planner view works with any set of custom cards: another dashboard card could hide ours, which showed "Configuration error".
- A tidier dashboard: boiler values without a value are left out instead of showing "Unavailable", a room that is off takes one line instead of a full dial, "no boiler request" replaces "0 °C", rows show short names, and Bluetooth humidity and battery show whole numbers.
- The Firmware entity keeps the E32's version when a check fails, instead of showing "unknown" for hours after a restart.
- Steadier and lighter: one failing part (a sensor group, a listener, the dashboard) no longer stops the rest; boiler entities are only written when something changed, which removes the "took 0.6 seconds" and "updated while disabled" warnings and much database traffic; Home Assistant retries while MQTT is still starting.
- Tidy entity list: old counters and a duplicate outdoor temperature that this version never fills are removed (history and statistics stay). Repairs items now disappear once their cause is gone.
- Clearer texts: entity names in Dutch and Polish, an honest description of shadow mode, and a new room's setting device is never filled in for you: Home Assistant asks first.
Updating #
Install 0.4.0b12, restart Home Assistant, then update the E32 to beta20 with the Firmware entity. 0.4.0b12 also works with E32 beta19.
Limitations #
Shadow mode only: Home Assistant sets the rooms' setting devices, the E32 sends nothing to the boiler. EMS Classic boilers only; EMS+ comes later. No HACS listing yet: install from the release ZIP.
HA 0.4.0b11 — a room thermostat per E32 room, a week planner and the official update route #
Companion release for E32 beta19. Install both together (see Updating). Needs Home Assistant 2026.10.0 or newer.
New #
- No starter room needed: Connect E32 links the E32 and its room plan directly. Rooms live in the E32 room plan.
- A week program and a thermostat per E32 room: every room runs its E32 week program. A normal climate entity serves the thermostat card and voice assistants. An optional setting device per room (radiator valve, tado or any thermostat, or a number entity) is set to the program's temperature at every switch point; turning it yourself is an override until the next switch point. Repairs offers to give existing rooms a program and warns when a device runs its own schedule.
- One group per room on the integration page, holding the room's device and the Bluetooth sensors only that room uses, plus an "E32 and boiler" group. Entity IDs, names, areas and history stay.
- Safe removal of the old Home Assistant room (Repairs, or Configure → Advanced): the E32 room plan is updated first, the room thermostat takes over the old thermostat's name, icon, area and entity ID, and a room that would lose its only source is kept with a Repairs note.
- Comfort controls: boost or a temporary target (until the next switch point or for a set time), away or holiday until a date (optionally when everyone is away), and window and door contacts per room that pause it.
- Week planner view on the OpenThermostat dashboard: the same visual planner as on the E32 Rooms page. It never overwrites a change made on the E32 meanwhile.
- Redesigned dashboard: "Now" at a glance, advice when there is any, one section per room with its thermostat and a 24-hour graph, then the boiler, curve and learning, and gas per day. The comparison with your thermostat has its own view.
- Clearer menus: Configure now reads Rooms, Comfort, Heating and boiler, Energy and outdoor temperature, Connect E32, Name and dashboard, and Advanced. After adding the integration you are guided to connecting the E32 and your first room.
- Flow settings: switches for the weather curve and the learned flow, and the design flow temperature, with status sensors.
- Energy: "Gas for heating" and "Gas for hot water" for the Energy dashboard, from your gas meter or estimated.
- Weekly advice: a blueprint sends a weekly summary with gas use, night setback and advice. Advice only.
- Diagnostics download for help with problems, without passwords, keys, addresses or Wi-Fi names.
- Boiler profile: entities only for values your boiler has; values it never reported are created disabled.
- Updating the E32 from Home Assistant is the official route: the
Firmware entity checks GitHub's SHA-256, the size and the version marker
before it uploads, and keeps a
last_installrecord of the install. - The default-password Repairs issue now links to the E32's password page.
- Complete Polish translation.
Fixed #
- Duplicate boiler entities for the same value (EMS+ and Classic names) are merged into one; leftovers are removed, history is kept.
- Values no longer go unavailable on a short network hiccup: only after three missed E32 heartbeats or an offline message.
- Devices from the older "intuibase" name are renamed to OpenThermostat once.
- Removed room entities come back without a reload when the room returns.
- After a restart of Home Assistant the link to the E32 now comes back by itself; HA 0.4.0b10 could stay without boiler values until a reload.
Updating #
Install this integration and E32 beta19 together: HA 0.4.0b11 reads the new small E32 topics, and HA 0.4.0b10 does not understand beta19. Install the integration package, keep the existing entry, restart Home Assistant, then update the E32 with its Firmware entity. Entities of other integrations are never removed automatically.
Limitations #
The heat request is shadow-only: active boiler control stays locked in the E32 firmware. EMS Classic boilers only; EMS+ comes later. Window and door pauses use Home Assistant contacts; Bluetooth contacts come later. The advice is advice only.
HA 0.4.0b10 — one place for rooms, a clean dashboard and far fewer entities #
Companion release for E32 beta18. Install both together.
New #
- Rooms are set up in Home Assistant: Settings → Devices & services →
OpenThermostat → Configure → Rooms. Add, change or remove rooms, choose their
temperature sources from your Home Assistant entities and the E32's
Bluetooth sensors, the target, limits and a simple week program such as
mon-fri: 06:30 20.5, 22:30 19. The plan is stored on the E32, so heating keeps running without Home Assistant. - °F and °C: with Home Assistant in °F the room editor shows and accepts °F; sources in °F or K are converted to °C for the E32.
- Flow temperature limits (Configure → Rooms): the lowest and highest flow the E32 may ask for, with a warning for floor heating above 50 °C and above the boiler's own maximum heating temperature, which always stays the ceiling.
- Heating dashboard: per room the temperature, target, mode and "off until"; the E32 boiler request next to your thermostat's; boiler essentials; Bluetooth sensors; heating advice; and a short "How it works" card. English or Dutch.
- Each E32 room and Bluetooth sensor is its own device, with plain names ("Temperature", "Heat demand"). Existing entity IDs and history stay.
- Shadow comparison sensors: heating time and burner starts today for the E32 and the thermostat, and their agreement. They appear only once a thermostat to compare with is seen on the boiler bus.
- Burner short cycling warning and burner starts in the last hour.
- Heating problem: one yes/no sensor for "is my heating OK?", on only for real problems held long enough (a room without measurement for 30 minutes, no E32 report for 10 minutes, low or high water pressure, short cycling for 2 hours). Its attributes list the reasons for your own notifications.
- Heating advice sensor (advice only, never changes a setting): short cycling, a maximum heating temperature far above what the house needs, a return too warm for condensing, the flow your rooms really need, night setback, hot-water temperature, water pressure. Each item says what was seen, why it matters, what to change and where, with its confidence.
- Energy and outdoor temperature (Configure → Energy and outdoor temperature): optionally a gas meter (m³ or kWh), a gas price sensor or fixed price, the calorific value, an outdoor temperature sensor or weather entity, and your boiler power. Without them the advice still works, with rougher estimates.
- Learning per room: learning status, recommended flow and predicted heating start from the E32, plus hot water today.
- Week programs compiled by Home Assistant accept any IANA time zone.
- The E32 address may be a local host name such as
e32.fritz.box,e32.home.arpa,e32.localore32.lan, as long as it resolves to a local address. - When the E32 password changes, Home Assistant asks for the new one; a Repairs notice appears while the E32 still uses the default password.
- Every setup step and field explains in plain language what it does; all boiler values have English and Dutch names; icons for all entities.
Fixed #
- Far fewer entities: boiler values are created only once the boiler really reports them, and old duplicate or never-reported entities of this integration are removed (history is kept; entities you renamed or changed stay).
- Only one room menu is shown when the E32 has a room plan.
- Removing a room also removes its device and entities.
- Heating status with a flow request above 60 °C is accepted (up to 80 °C).
Updating #
Install the matching integration package, keep existing entries and restart HA. Use it with E32 beta18. Entities of other integrations (for example old EMS-ESP or MQTT devices) are never removed automatically.
Limitations #
The heat request is shadow-only; the advice is advice only. EMS Classic boilers only; EMS+ is planned. E32 beta18 accepts a maximum flow up to 80 °C, never above the boiler's own maximum heating temperature. The old HA room records still exist for existing installations; the E32 heating control uses the E32 room plan.
HA 0.4.0b9 — E32 rooms and Bluetooth sensors, firmware updates and the heat request #
Companion release for E32 beta17. Install both together. HA0.4.0b8 was not published; its changes are part of this release.
New #
- Rooms from the E32 in Home Assistant: per room the measured temperature, the active setpoint, the control status with its leading source, and the heat demand.
- Operate rooms from Home Assistant: room state (active or inactive), "inactive until" and the fallback setpoint. HA writes the E32 room plan with its revision; when the E32 page changed it in between, HA reads it again and applies just your change.
- Bluetooth sensors of the E32 appear as temperature, humidity and battery sensors. They stay paired on the E32, so heating keeps working without HA.
- E32 firmware updates in Home Assistant, like ESPHome: an update entity checks GitHub every six hours, verifies the download and uploads it to the E32 over the local network, then confirms the new version.
- Heat request sensor: the flow temperature the E32 calculates (0 when it does not ask for heat). In beta17 the E32 only reports it (shadow mode).
- HA forwards the entities the E32 rooms read (for example the tado) to the E32, on every change and every five minutes.
- One table for all EMS entities: the thermostat, maintenance and EMS+ values arrive over the boiler-fields route and appear as entities.
Fixed #
- The room editor keeps its open advanced and comfort sections when it redraws.
- Unloading a product entry now also unloads its update entity.
Updating #
Install the matching integration package, keep existing entries, storage and resources, validate the configuration and restart HA. Use it with E32 beta17. Room operation needs the controller address and password of the connection step.
Limitations #
The heat request is shadow-only. New rooms and their sources are added on the E32 page "Rooms and heating"; the HA room editor for TRV rooms is not used by the E32 heating control yet.
HA 0.4.0b7 — requested boiler temperature over native MQTT, tidier entities #
Companion release for E32 beta10.
New #
- Read E32 requested flow temperature from the native firmware topic
v1/fw/telemetry/controller_request, using native availability. A live packet also proves the board is online after an HA-only restart. - Hide boiler fields this boiler never reports: after15 minutes of a valid observed-field stream, unreported fields are disabled by the integration. Fields that are unreliable by default, or that you disabled yourself, are left alone. A field that appears later is enabled again; HA then reloads the integration.
Fixed #
- The requested-temperature entity now appears with modern-mode firmware. HA0.4.0b6 subscribed to a legacy topic that such firmware never sends.
- A repeated request with the same value (for example50°C every minute) now updates the entity's age and sequence instead of looking frozen.
- Legacy hub entities that a modern-mode E32 never feeds (DHW status, boiler states, hub connection, RTC temperature) are disabled instead of staying unavailable forever. Records are disabled, not deleted, so history is kept.
Updating #
Install the matching integration package, keep existing entries, storage and resources, validate the configuration and restart HA. Use it with E32 beta10; older firmware does not publish the native controller-request topic.
Limitations #
The requested temperature is our transmitted command, not boiler readback. Room temperature source qualification is unchanged, and physical room control is not accepted. No boiler, valve or setting writes are added.
HA 0.4.0b6 — requested boiler temperature and plan recovery #
Companion correction for E32 beta.8 and beta.9. Native plan recovery also supports beta.6. The command record was introduced in unpublished candidate beta.7 and is delivered in beta.8; the HA0.4.0b6 integration source remains frozen at6dbe42f.
New #
- Add read-only E32 requested flow temperature for the advertised Ecomline trial command record. Preserve every boiler-reported temperature entity.
- Unknown before the first transmission and after a new firmware boot;50C after an emitted50C request,0C after an emitted Stop. Attributes identify controller origin, original completion time and command age. No measurement statistics or restored command value is supplied.
- Reuse the existing EMS status subscription, without extra HTTP polling or command publication. Duplicate snapshots keep their original age; retained, malformed and reordered packets do not supply a temperature. Offline/expired status becomes unavailable.
Fixed #
- Expose Review or recover room plan for a running native plan connection. A retained staged plan could previously leave the bathroom climate unavailable while the recovery handler was missing from every product menu.
- Reuse the existing prepare/review/apply worker, current candidate/session/Store checks, separate confirmation and exact E32 readback. Merely reading the menu or status does not apply a plan or grant physical control.
- Advanced diagnostics now exposes applied-plan status. Inactive/disconnected installations do not show the native plan actions.
- Correct the old connected-menu test helper. CI rejected unpublished0.4.0b5 because its helper still expected the old menu; that candidate was not installed.
Updating #
Install the matching integration package, preserve existing entry/storage and resources, validate configuration and restart HA. A normal explicit plan review resolves the pre-existing accepted6/staged7 horizon recovery; no storage rewrite. E32 beta.8 supplies the command record. Existing beta.4/6 firmware keeps its other entities and can use the recovered plan menu.
Limitations #
This is a controller-command history value, not boiler acknowledgement or an independent water-temperature measurement. It does not replace a boiler's own selected-flow report. Physical installation acceptance and the complete new attended50C/600s trial remain open. Automatic boiler/valve outputs stay disabled.
HA 0.4.0b5 — unpublished recovery candidate #
Tagged24fd54b; exact-tag CI rejected an old connected-menu test expectation. No public package or active installation was made from that candidate.
HA 0.4.0b4 — integrated room and installation controls #
Experimental coordinated release for E32 beta.6. Installation is verified separately.
New #
-
Edit the installation name and shared water limits while connected to the E32. Linked radiators follow the limits; custom circuit limits are preserved and stored curve points stay bounded. Water-limit changes use the normal verified apply route and may restart the E32. Name/dashboard changes do not write device settings. Unsupported weather controls are omitted from this connected form.
-
Show native cached battery percentages and device low-battery flags for the saved room sensor and valves under Advanced settings. Reports retain their HA timestamp/age, shared devices appear once, and missing or ambiguous sources stay unknown. Reload explicitly refreshes the snapshot; no extra subscriptions or duplicate entities are created. Scope.
-
Select up to eight window and door contacts in the normal room editor or room setup wizard. Configure opening/resume delays and maximum report age.
-
Contact status distinguishes open, closed, waiting and unavailable/expired reports. Re-reading a page does not renew a report. Only explicitly selected contacts affect a room.
-
Add or remove contacts on an active native plan through the existing save, reload and verified controller readback. Older firmware without the contact contract is rejected before saving the new active-room intent.
-
Bind a built-in Home Assistant temperature Number helper as an extra manual room control. A new authenticated user change requests one temporary target for one minute to twelve hours; startup values and automations do not apply it. The normal programme resumes when the controller's override expires. The helper is not written back, and status updates add no polling.
-
Configure room comfort modes, away target, temporary duration and an optional person in the normal editor or setup wizard. Native person reports retain the selected tracker's original age. Unknown/expired presence remains unknown; status reads and cached person re-emissions cannot renew it.
-
Start/change vacation with an end date in the displayed HA time zone, or explicitly return to the programme. Repeated daylight-saving times require an offset choice; nonexistent times are rejected. The existing finite comfort service checks the expected room scope. Unconfirmed requests are not replayed.
Fixed #
-
Validate complete profile storage before interrupting the existing connection. Room and installation changes share one apply path. Interrupted or unconfirmed changes retain saved intent without rolling back or automatically retrying.
-
Contact, extra-target and comfort status share one canonical room identity check. Reusing an old entity ID for another room cannot display that room's state or a stale override countdown in the editor.
-
The initial controller link recognises E32 beta release tags alongside alpha tags. Firmware identity, compiled contract, update state and authenticated settings checks still apply.
-
Contacts can pause an ordinary room without enabling comfort modes or changing its temperature bounds, source profile or independent frost policy.
-
A new incompatible comfort frost target is rejected before saving. Native installations retain their existing 5 °C source target and room-bound checks.
-
The editor and wizard share identity validation; deletion/replacement during review or compilation cannot silently adopt another device. Removing contacts clears their persisted bindings and listeners.
-
A new managed editor tag and versioned resource URL load the current editor after an update. Saved older card types remain supported.
Updating #
Install with the coordinated E32 beta.6 release using the normal HA update route, a scoped backup and postcheck. Preserve installation, entity and programme identities.
Limitations #
Software verification does not qualify physical sensors, valves or boiler control. Installing this package does not authorize physical device commands. Physical wall controls still require their own original-action/echo profile. Vacation is session-local: restart, reconnect and room reload clear the selection.
HA 0.4.0b3 — original measurement diagnostics and field export #
New #
- A diagnostics download and export for the original native boiler fields: raw value, scale, unit, measurement quality, source telegram, original reception time and expiry (TTL).
- A distinction between not received, invalid and expired readings and a lost connection. Missing values stay unknown.
Fixed #
- Invalid room temperatures and error codes are not offered as valid readings or statistics points; supported real zero values are kept.
- The field explanation stays available in the diagnostics when Home Assistant leaves out the attributes of an unavailable entity.
Updating #
Install OpenThermostat-HA-0.4.0b3.zip through the existing HA administration route with a backup and a post-check. This candidate belongs with E32 beta3; rooms, programs and entity identities are kept. The optional original Zigbee reception package remains a separate installation.
Limitations #
No physical boiler/valve release or automatic heating. The confirmed Ecomline setup has no digital pressure sensor; an unknown pressure is not replaced by a made-up value. Adjusting the heat-trial profile remains open.
HA 0.4.0b1 — start-up recovery, monthly export and reliable measurement handling #
New #
- Export history per day, week or month: CSV exports of up to 31 days from existing Recorder data, with an installation selector and Dutch/English explanations. Missing history stays missing.
- Clear clock notice: a faulty local measurement clock gives an installation-specific Repairs notice. Window and presence signals then also become unknown.
- Optional Zigbee source package: the existing receive-only original reception extensions (a Zigbee2MQTT companion) come separately in the same release. A checked tool keeps private device bindings before installation; nothing is installed automatically.
Fixed #
- OpenThermostat starts again on Core 2026.10.4. A version check unintentionally blocked the "Installation and boiler" display group. Core .2, .3 and .4 compatibility is checked separately; unreviewed private configuration writes remain blocked.
- A screen error, an interrupted withdrawal, an old-profile callback or a replaced sensor profile can no longer bring back a withdrawn reading. Invalid temperatures, percentages and extremely large numbers are refused.
- The CSV export re-checks who owns the entities after waiting. Data does not appear under a changed binding.
- The original Zigbee reception extensions no longer wait indefinitely for MQTT when shutting down. A time-out does not confirm sending and starts no new receiver while old SDK work is still pending.
Updating #
Use OpenThermostat-HA-0.4.0b1.zip through the existing HA administration route. Rooms, programs, entity identities and bindings are kept. This is the HA half of the same software candidate as E32 beta1; the E32 firmware is a separate download. The optional Z2M source package is not an HA component and is not installed automatically; keep the private pins and follow the included NL/EN instructions.
Limitations #
The E32 also offers local Bluetooth diagnostics. This HA update does not qualify that data as a room source and does not release physical valve/boiler control, standalone heating or active learning control. Physical acceptance and qualified room-source work remain open. Full workboard and remaining conditions (engineering notes, Dutch).
HA 0.4.0.dev48 — more reliable shutdown and reload #
New #
This maintenance update focuses on reliability; there are no new settings or controls.
Fixed #
- When the integration stops or reloads, background tasks are cleaned up better. Even when one part reports an error, cleaning up the other parts continues.
Updating #
Your rooms, week programs, bindings and dashboard cards are kept. This version was checked together with E32 alpha36.
Limitations #
This is a test version. Direct Bluetooth pairing with Shelly and Xiaomi devices is still in development. Boiler control is not released yet.
HA 0.4.0.dev47 — robust start-up and joint updater diagnostics #
Joint bundle with E32 alpha34. All 23 prepared parts and 31 requirements are kept, including earlier reception diagnostics and send checks.
- One native start-up owner across program, Store and MQTT read boundaries. Shutdown/cancellation can never restart an old worker, listener or timer later.
- A double start does not replace the first connection. Late unsubscribe handles are cleaned up immediately; another receiver is kept.
- The optional original temperature diagnostics share one subscription budget of one second; a diagnostics error leaves the existing control connection available. No new subscriptions, workers, routes or retries.
- The joint firmware stores four targeted checkpoints before the checksum, image validation, flash readback and boot selection. The existing status page explains them in Dutch and English.
- Ten new HA boundary cases demonstrably fail before the fix; 2,349 complete HA cases per supported Core pass locally. Native firmware: 782 cases, including 40 updater cases also under ASan/UBSan; 24 updater browser cases.
- Frontend dev41/v41 with v38/v35 aliases stays byte-identical. No card, settings, source or physical authorisation migration.
HA47 stays compatible with the observed E32 alpha31. An original TV02 worker reception was observed passively but is stale and unqualified; this is no causal valve ACK. A suitable room source, the product SOURCE factory, physical stop/failure qualification and the earlier E32 recovery route remain open. Tado stays the active controller; this bundle releases no physical output.
Publication/HA roll-out requires the exact frozen source, full CI, an independent review of the actual package, a fresh current HA46 backup and a separate post-check. No blind E32 flash retry and no claim that the earlier watchdog/HTTPS/short-cycling cause is solved.
English: native HA startup retains one owner across asynchronous configuration, journal and subscription boundaries. Closing/cancelling cannot revive a worker/listener/timer; duplicate startup cannot replace the first owner. Original-temperature diagnostics have one bounded optional subscription wait. The combined firmware adds four persisted pre-verification checkpoints with EN/NL explanations. Existing cards/settings and alpha31 compatibility are preserved; source/valve feedback, physical stop qualification and updater recovery remain separate open gates.
HA 0.4.0.dev46 — original reception diagnostics and joint send checks #
Joint preparation release with E32 alpha33. All 23 prepared parts and existing settings, programs and cards are kept.
- The existing HA diagnostics download shows bounded RAM counters for original temperature and TV02 reception: callbacks, placement, early drops and worker acceptance/rejection/errors.
- Two fixed groups without topics, device IDs, message content or exception texts. Counters are per connection owner, not per device or persistent. No counter or snapshot qualifies a measurement source or valve ACK.
- The existing queue and half-queue reservation stay in charge. A failed timestamp registration becomes visible as a drop and cannot make the MQTT callback hang on that exception.
- The joint E32 bundle guards re-entry at the final transfer boundary and at availability/clock callbacks during channel admission. The existing socket test confirms that a refused re-entry transfers no byte.
- Existing room and firmware messages stay the same by byte contract. Frontend dev41/v41 and the v38/v35 aliases are kept; there is no card or settings migration.
HA46 stays compatible with the observed alpha31 and the earlier alpha28; the optional prepared channel route needs at least HA45. Reception counters do not solve an unknown external producer or binding error and give no suitable room reading, physical feedback or control authority. Product SOURCE stays closed; Tado stays active.
Publication/roll-out requires exact source, CI, package and download checks, a fresh current HA backup and a separate post-check through the existing HA agent. The earlier E32 uploader watchdog, native HTTPS error and short-cycling cause remain open; no blind firmware retry.
English: bounded original-ingress counters in the existing HA diagnostics download distinguish callback drops from worker outcomes without payloads or identifiers. Counter scope is the connection owner's RAM lifetime, not per-device traffic or control authority. The combined firmware bundle closes handoff/availability/clock callback recursion. Existing frontend aliases and alpha31 compatibility remain. Physical feedback, ambient qualification and E32 updater recovery are separate open gates.
HA 0.4.0.dev45 — original grant correlation and a larger firmware bundle #
Joint preparation release with E32 alpha32; existing features, programs and all 23 prepared parts are kept.
- The existing native worker answers with the original request sequence number. Delayed grants cannot borrow a new firmware window.
- A grant that is not yet used stays with its original request; a higher request sequence number cannot relabel it. A shortened receiver deadline is also kept after such a refused request.
- The real C++ request/grant/command goes through the native HA worker to the guarded service adapter, including duplicate and failure tests. Service acceptance remains no original valve echo or control authority.
- The ACK-without-snapshot test now first reaches the real ACK stage before its real asyncio time-out expires. Delayed preparation is tested separately; the production time-out of 90 seconds is unchanged. The cause of the older occasional CI room failure remains unknown separately.
- Frontend dev41/v41 with v38/v35 compatibility stays byte-identical; no card migration, automatic sensor change or new product factory. Settings and identities are kept.
HA dev45 stays compatible with E32 alpha28 and the freshly observed alpha31; the new prepared firmware channel route needs dev45. Product SOURCE selection, a suitable original measurement source, a causal valve echo and physical acceptance remain open. This is not an active boiler beta: Tado stays in control and physical outputs remain blocked.
Roll-out requires exact CI/package checks, a fresh current backup and an independent post-check. The earlier E32 uploader watchdog, native HTTPS error and the reported short cycling are not presented as repaired.
English: original request-sequence correlation on the existing worker; unconsumed grants cannot be relabelled or regain a shortened deadline. Actual C++/worker/service and disconnect regressions preserve one-use ownership. Existing cards and alpha28 compatibility remain; product actuation, original physical feedback and E32 recovery are still unqualified.
HA 0.4.0.dev44 — native valve route and joint reception checks #
Joint prerelease with E32 alpha31; all existing features, settings and 23 prepared parts are kept.
- Grant requests and valve commands use the existing native MQTT worker and connection, without extra clients, timers, storage or queues. The product factory stays closed by default.
- Local controller/session/config/binding checks and the original reception/lease deadlines bound commands. One grant admits one new command; duplicates renew no window or service call.
- Firmware going offline or a changed scope revokes an existing owner immediately before the worker queue, even while it waits for the service lock. The adapter re-checks the context before and after the original source authorisation.
- Disabled, revoked or excessive optional valve traffic cannot reset the shadow session through the shared queue. Normal periodic hello messages do not extend a valve grant.
- All earlier ESP/EMS diagnostics, source selection explanations and EN/NL controls are kept. Frontend dev41/v41 with v38/v35 compatibility stays byte-identical; no automatic source change or new physical authorisation.
This package can keep working with the last verified E32 alpha28: it assumes no new firmware feature. A truly qualified product SOURCE factory, a normal firmware MQTT send route, an original causal Tuya echo and physical acceptance remain open. Service acceptance is no valve ACK or proven delivery path. This is not an active boiler beta; Tado stays in control and physical outputs remain blocked.
E32 update recovery is blocked separately by the earlier unexplained watchdog reset. HA installation requires the exactly tested package, a fresh backup, one normal restart and an independent post-check. No claims about solved short cycling, native HTTPS recovery or new Shelly/Xiaomi drivers.
English: native-worker actuator grant/command handling with default-denied product authority, original receiver deadlines, one-use grants, immediate scope/offline fencing and optional-queue isolation. Configuration and frontend remain compatible with installed alpha28. Service acceptance is not a physical valve acknowledgement; active heating and E32 recovery remain separate acceptance gates.
HA 0.4.0.dev43 — clear temperature source selection and M2 receiver admission #
A larger maintenance candidate that keeps all existing features and settings.
- The room editor warns immediately in Dutch/English when the chosen source is an internal device temperature. Diagnostic sensors get a recognisable label; no hidden automatic source change or qualification of an ordinary cached value.
- Missing/corrupt optional native MQTT metadata no longer prevents the room from loading. The warning follows the current draft choice and does not stick to a replacement sensor.
- Frontend dev41/v41 with explicit v38/v35 compatibility; existing manual cards keep working. Only the integration's own generated card/resource references may move along with the update.
- A new prepared M2 receiver core: closed by default, exact local source/session/config/binding ownership, five seconds of validity on the HA clock, one command in progress and no extension on reception. Duplicates are historical only; uncertain or cancelled actions are not repeated. Callback revocation and reuse of the same adapter cannot bypass the owner.
The receiver core is not selected by the production factory. Normal FW→HA wiring, current lease binding, a causal original valve echo and physical qualification remain open. This is not an active beta or a release of valve/boiler output.
59 new base cases plus four additional owner-boundary regressions, an extra rounding-boundary case and a start-up loss regression. An extra regression tests delayed first room messages. The test setup starts the minimum-off waiting time only after both real firmware readings; the 120-second rule and all original demand/stop assertions are kept. The five-second boundary is tested from the original clock anchor, so adding decimal numbers cannot produce a false test result. The room test runs eight times per Core version with separate replayable, artificial message sequences. The earlier intermittent room assertion is investigated with this; the start-up loss regression does not by itself prove the original CI cause. Targeted HA and cold browser tests on desktop/mobile in both languages pass; full Core 2026.10.2/2026.10.3 and exact tag CI remain separate delivery conditions.
Entity IDs, units, statistics, SOURCE/journal and the settings format are kept. E32 runtime code is unchanged: firmware download alpha30 stays in place, the module stays on alpha28 until the unknown uploader watchdog cause and a well-founded recovery route are established. No blind upload/restart/rollback. Bluetooth support, physical source/valve/boiler tests and long-term stability are not presented as ticked off.
English: room setup now explains internal/diagnostic temperature sources immediately, without new broker traffic or source replacement. Missing optional native metadata cannot break the editor. Frontend v41 retains v38/v35 compatibility. A default-deny M2 receiver admission kernel is prepared with receiver-owned grants, bounded input, strict ownership and no uncertain retry; it is not wired into production actuation. Test warmup now waits for both actual firmware measurements before counting the unchanged minimum-off interval; a lost-startup-report regression covers this. E32 firmware and physical output blocks remain unchanged.
Workboard and remaining conditions (Dutch).
HA 0.4.0.dev40 — persistent clock monitoring of the M2 valve adapter #
A maintenance release with all earlier features and the prepared B05/M2 repair. The E32 firmware has no new runtime changes; alpha30 stays the current firmware download. No unnecessary new firmware tag or E32 installation.
- A monotonic clock that runs backwards, is invalid or is not finite permanently revokes the existing valve adapter. Restored time, a new target or restored authorisation cannot restore old authority.
- The check covers waiting, every authorisation callback, the final check before sending and the return of the HA service. A refusal or exception cannot hide a clock loss either.
- A clock loss during a command that may have been sent keeps the physical outcome unknown and prevents a retry. An exact duplicate remains only a historical service acceptance receipt, without new IO or valve confirmation.
- No change to entity IDs, statistics, settings, MQTT contracts or frontend v38/v35 compatibility.
14 new regression cases; 13 failed on the old source. All 141 targeted cases pass on real Core 2026.10.2 and 2026.10.3; the independent source review passed. Final tag CI and package checks remain separate delivery conditions.
Passive maintenance release. The M2 adapter has no normal FW→HA send route yet and no qualified physical feedback; boiler/valve outputs remain blocked. The installed E32 stays on alpha28 as long as the earlier watchdog cause/recovery route is unknown. No claim of an active beta or of a Bluetooth, short-cycling or updater repair.
English: preserves every existing feature and adds latched monotonic-clock validation throughout the prepared M2 actuator adapter. Invalid/reversed time cannot revive an old command budget; uncertain dispatch is never retried. Historical duplicates remain acceptance-only. No physical actuation is enabled; E32 alpha30 remains the latest firmware release, with alpha28 still installed.
Current workboard (Dutch).
HA 0.4.0.dev39 — reliable boiler values after errors and withdrawal #
Joint passive maintenance bundle with E32 alpha30; all earlier features and frontend v38 are kept.
- A transport error withdraws the previously stored acquisitions of boiler values. A valid message for another field group does not make those old values available again.
- An explicit invalid value may withdraw the same acquisition; a repeated old numeric value cannot undo that withdrawal. Only demonstrably new reception restores availability.
- The firmware processes telegrams by original field time, keeps recent values on delayed reception and withdraws conflicting simultaneous values.
- Existing entity identities, units, statistics, settings and MQTT contracts are kept.
Tested locally on real Core 2026.10.2 and 2026.10.3: 2195 test cases per version, without failures or skips; the joint firmware base has 689 passing tests. Release CI and an independent package check are separate delivery conditions.
No physical control release. The installed E32 may stay on alpha28 as long as the earlier task watchdog reset has no well-founded recovery route; HA installation and E32 installation are checked separately. New Bluetooth drivers and M2/start/stop qualification remain open.
English: retires boiler field acquisitions across invalid transport frames and explicit withdrawal. Unrelated valid groups or cached replay cannot revive them; strictly newer original readings are required. Entity IDs and storage contracts are preserved; passive operation remains enforced.
Current workboard (Dutch).
HA 0.4.0.dev38 — original reports and compatible controls #
Part of the joint maintenance bundle with E32 alpha29 at source
d131c503f42e6b834a0815db8384983a7fc1b46f.
- TV02 diagnostics can wait for late MQTT discovery with a pre-recorded device identity; no automatic source replacement.
- Native registry changes withdraw the original temperature diagnostics, also when settings are restored afterwards. Ordinary name changes keep working.
- EN/NL messages for missing metadata and unavailable reception; no old values in an error/waiting state.
- Frontend dev38/v38 with a compatibility alias for existing v35 cards, checked with a cold browser load.
Tested on real Home Assistant Core 2026.10.2 and 2026.10.3: 2189 cases per version without failures/skips. Browser regressions and the upgrade test passed. No physical control release or automatic sensor change. Shelly/Xiaomi Bluetooth support stays planned; M2 and physical boiler/valve tests remain open.
English: restores optional original-report diagnostics safely, retires changed sensor identities, and adds clear reception states while preserving existing v35 room cards. Passive operation remains enforced.
Changes and remaining conditions in the source (Dutch). The separate history file in this source contains the earlier release history.
HA 0.4.0.dev37 — sessions, queue and reliable start-up #
Joint release with E32 alpha28; all earlier features and fixes are kept.
- An invalid/backward-running monotonic clock withdraws the session, grants and waiting commands; reconnecting restores no old authority.
- After every waiting send, retries re-check the current lease/deadline, SOURCE and the original command registration. Revoked/replaced commands are not offered again; no heartbeat on an expired session.
- Start-up errors and cancellation also clean up resources created early; an old cleanup cannot remove a new owner.
- Oversized numeric valve metadata is refused as an unusable capability without crashing the editor.
The supported native Core versions stay 2026.10.2 and 2026.10.3, with full tests on both real runtimes. No frontend change: module dev35/v35 stays byte-identical. Rooms, programs, SOURCE, registry, reception pins and producer are kept.
No automatic valve/boiler commands or new receiver grant route. A received TV02 temperature message is no causal valve confirmation. Tado stays in control; active M2/boiler acceptance remains open.
English: Combined with E32 alpha28. Retires session evidence on invalid/backward monotonic time, rechecks queue ownership and original deadlines after awaited publishes, fixes failed/cancelled HA setup cleanup and oversized target metadata. Supports actual Core2026.10.2/2026.10.3; unchanged frontend and preserved configuration. Boiler/valve actuation stays disabled.
HA 0.4.0.dev36 — Core 2026.10.3 and the joint E32 alpha27 bundle #
Includes all changes from dev35 and fixes the start-up block after a Core update to 2026.10.3. The explicitly supported versions are now 2026.10.2 and 2026.10.3; other versions stay refused for the native configuration transaction. All five version checks use the same list. The full suite runs on both real Core versions; no version number or HA API is simulated. Settings and registry are not recreated.
Joint passive release with E32 alpha27; no new firmware variant needed. The previously published dev35 is kept as history and is not installed. This is no release for valve or boiler commands.
HA 0.4.0.dev35 — joint diagnostics and safety bundle #
Bundles all prepared HA changes since dev34, together with E32 alpha27.
- Frontend dev35/v35 with a clearer EN/NL status for outdated TV02 reception, without presenting old values as a current valve confirmation.
- Stricter binding and lifetime of valve commands: repeated commands share one service call and the original deadline; cancellation or uncertain execution causes no automatic retry.
- Loss of the owner, binding or valve mode during a service call blocks automatic follow-up actions.
- Additional supervisor diagnostics for invalid feedback clocks.
The command adapter is prepared, but not yet connected as a normal firmware-to-HA send route. An HA service confirmation does not prove that a valve moved. Existing rooms, programs, SOURCE, registry, reception pins and producer are kept. No automatic source qualification or device commands. Tado stays in control; this is a passive prerelease, not an active boiler beta.
HA 0.4.0.dev34 — diagnostics and clear controls completed #
Bundles all earlier HA fixes and the native ESP diagnostics with the EN/NL explanations of settings and checks. Belongs with E32 alpha26; that firmware does not need to be flashed again for this.
- The reception age of the read-only supervisor diagnostics is compared directly with the expiry deadline. This keeps an exactly expired report from staying visible through rounding when two clock values are subtracted.
- A deterministic test with a fractional clock start shows the original error and the fix. Control authority, commands, leases, source qualification and physical outputs do not change.
HA 0.4.0.dev33 — the ESP's own diagnostics over native MQTT #
Restores free/minimum free heap, the largest free block, CPU temperature and uptime together with E32 alpha25. Existing entity unique IDs and history are kept. The HA entities also exist before the first report. Live reports are available every 15 seconds; after 45 seconds without a valid report, or when offline, availability is withdrawn. An HA-only restart does not require an E32 restart. The disabled RTC temperature stays unknown. Legacy mode stays intact.
Settings and status make clear in English and Dutch that shadow mode only reads and calculates. A confirmed configuration and matching valve targets are explained separately; they are not presented as proof of valve movement or of safely stopping the boiler.
This uses the same native connection and the existing HA runtime for expiry; no valve or boiler commands are added. All features and fixes from dev32 are included. Without the matching E32 alpha25 these native diagnostic values stay unavailable.
HA 0.4.0.dev32 — report lifetime and explainable transport rejections #
Bundles all HA fixes since dev31. E32 alpha24 stays in place; this release grants no physical measurement, valve or boiler qualification.
- Original temperature and TV02 reports stay bound to the chosen maximum report age. A policy change revokes the old receiver; restoring it does not reuse old reports. A new owner starts empty.
- Invalid clock values and overflowing time deltas are handled safely.
- The existing receiver keeps at most one historical rejection for a current, requested reply. HA diagnostics show only fixed stream, status and reason codes with the reception age. Unknown peer text is not executed or exported. A later healthy status does not turn this into a current fault. A session change or a detected clock error removes this diagnosis.
- Native configuration rejections with the optional
rejection_reasonfield are processed correctly as a rejection; they no longer disappear because of an overly strict schema. Success remains valid only through the existing readback/SOURCE checks.
Rooms, programs, bindings, accepted SOURCE/journal, registry, dashboard, private TV02 pins and the receiving producer are kept. No extra client, watcher, automatic retry or device command. The frontend bytes and the existing dev28/v28 card identity stay the same. Natural TV02 reception, causal command confirmation and physical acceptances remain separate open checks.
HA 0.4.0.dev31 — TV02 reception for native installation rooms #
Restores the original TV02 receiver for rooms whose chosen valve is in the central installation configuration. The receiver validates the same native configuration owner as the room editor. Missing, duplicate, changed or invalid bindings are refused; a revoked source does not revive by itself. Identity, age and replay checks are kept.
This targeted follow-up update enables reception acceptance after the joint alpha24/dev30 bundle. E32 alpha24 stays in place. No device command, automatic valve mode change or source qualification. The private reception pins already in place and the receiving Zigbee2MQTT extension are kept; the package contains no private pins. Rooms, programs, SOURCE, registry and history are kept. Frontend bytes and the dev28/v28 card identity stay the same.
HA 0.4.0.dev30 — supervisor, bounded valve targets and private reception pins #
Joint candidate with E32 alpha24; bundles all HA changes since dev29. The default physical output stays blocked. This is not an active boiler beta.
- Read-only supervisor diagnostics show the reported phase and control intentions with a limited reception age. Expired, missing or invalid status is withdrawn; diagnostics grant no authority and do not discard valid room decisions.
- The prepared valve adapter bounds both the waiting time and the service call within the same action deadline. A newer waiting target replaces an older one. An uncertain outcome after dispatch blocks follow-up actions within the same adapter, without retry.
- Original TV02 reception pins can be read from the private file
.openthermostat-original-tv02.jsonin the HA config root during a normal native start-up. Strict schema, private permissions, identity binding and error isolation; no Store, watcher, extra MQTT client or device command. A missing/invalid file lets the normal controller start-up work.
The update installs no Zigbee2MQTT producer, changes no measurement selection or valve mode and grants no source/flow/valve qualification. Real original reception requires separately reviewed private pins and a producer installation. Rooms, programs, SOURCE, registry identities and history are kept. The frontend bytes do not change: the existing dev28/v28 resource/card identity stays valid and is not replaced on the basis of the manifest number.
HA 0.4.0.dev29 — original TV02 reception visible #
Bundles the prepared original TV02 data point reception through the existing native MQTT connection and registry lifecycle. Reception is bounded, checks the explicitly recorded device identity and source age, and does not make outdated, retained, repeated or wrongly bound reports current again. The default source pin list stays empty. Production source pins, the Zigbee2MQTT extension installation and real original report reception must be reviewed separately; the update does not enable them automatically.
The room editor shows available original reports in Dutch or English: reported target, the valve's own temperature, program, heating stop and frost protection. The reception age applies at load time. Reception is no command confirmation, valve position, proven heat delivery or control release. Expired, interrupted or invalid reports show no old data point values. Draft changes do not use the diagnostics of an old saved binding.
The changed editor has its own dev28/v28 cache/card identity; dev29 keeps those same frontend bytes and adds complete package notes. Existing manual cards stay compatible. No extra polling, MQTT client, automatic valve mode repair or setpoint command was added. Existing measurement entities, history, rooms, week programs, SOURCE and device identities are kept. This is the joint passive test batch with E32 alpha23 (logging/syslog and stable dashboard refresh). Physical boiler/valve outputs remain blocked and the active beta remains open.
Dev28 remained an unpublished package candidate; the existing tag is kept. Dev29 contains the complete updated Dutch package notes.
HA 0.4.0.dev27 — current boiler fields visible in the overview #
The managed boiler overview now uses the native boiler sensors that became available with alpha20/dev26. Flow, return, reported modulation and hot-water temperatures get their own history cards. All available field definitions are included through the registered entity ID; renaming, disabling and installation ownership are respected. Reported fields and derived activity are listed separately. Enabled unreliable raw diagnostics stay under Diagnostics and do not become flame or pump evidence. No old statistics are merged and no counters are filled in.
This completes the HA presentation of the readout update; E32 alpha20 stays in place. No SOURCE, room, program, controller or output changes. The existing room editor and its dev25 cache identity do not change.
HA 0.4.0.dev26 — native measurement binding for the product installation #
Bundles all prepared dev25 features with the fix for existing v2 measurement entities. The product installation now uses the same validated native MQTT cache as the native sensor platform tests. One owner per measurement identity prevents duplicate sensors from legacy messages. Entity identities, statistics definitions and the installation group are kept; expired or unsupported values stay unavailable. The frontend stays on the same already refreshed dev25 card version because the frontend bytes do not change.
Together with E32 alpha20, available Classic boiler fields become visible. Outputs remain blocked; no change to SOURCE, rooms or programs.
HA 0.4.0.dev25 — current boiler fields and consistent EN/NL controls #
Together with E32 alpha19, available Classic boiler fields are offered as read sensors on the existing installation through the existing native MQTT session. The source age, quality, unit and validity stay visible. This restores the missing modern readout path; old legacy aliases and their history are kept and are not merged with new measurement definitions. Values the boiler does not deliver stay unknown; unreliable diagnostics stay disabled by default.
The complete EN/NL form catalogues were completed. The room editor follows the HA profile language, with a new cache/card identity while older cards are kept. Saved native dashboard texts use the agreed English fallback. All prepared device/measurement diagnostics, week planner and storage fixes are included. No room bindings, programs, valve modes or heating releases are changed. Physical outputs remain blocked.
HA 0.4.0.dev24 — joint source and device checks #
This release bundles the prepared source changes with E32 alpha18. Measurement qualification is withdrawn when an observer is replaced or the native sensor or device is changed/disabled. Waiting readings are re-checked before handover; the cache and re-registration do not make an old reading fresh.
The valve adapter checks the identity and the current temperature capability just before dispatch. TV02 auto/vacation/off/unknown mode is shown as a conflict and grants no target authorisation. The device check shows the explicitly reported Zigbee2MQTT and converter package versions. The frontend gets a new cache and card identity.
Program, room identities, bindings and SOURCE are kept. This installation changes no profile, valve mode or physical output. The production measurement profile and physical valve/boiler acceptance remain open; missing qualification stays visible. All earlier planner, cold-start, setup and connection fixes are kept.
HA 0.4.0.dev23 — bundled room and connection improvements #
This release belongs to the joint test batch with E32 alpha17.
- At start-up the room page waits for the HA root element. That keeps the card registered after HA has set up its custom element registry; refreshing repeatedly should not be needed.
- With a normally linked native controller, the temperature sensor, radiator valve and room limits can be changed on the room page. The complete future plan is checked beforehand; the room, graph and new profile are saved together and applied through the existing secured controller connection.
- If applying cannot be confirmed, the saved settings are kept. The page blocks further changes and offers an explicit button to apply exactly those saved settings again. There is no automatic retry or restoring of an old profile.
- The existing native heartbeat can pass bounded UTF-8 room names to an E32 that supports them. Old firmware stays compatible.
- The old temporary source bench is refused for a control plan managed by SOURCE, before it can change configuration, timers or ownership.
Existing room identities, programs and bindings are kept by the update. Device changes happen only after an explicit save. One radiator valve per native room remains the current contract limit; program source changes remain a separate setup. Availability of an HA entity does not prove a qualified temperature reading. A missing measurement profile stays visible and gets no automatic qualification or heating release from this update.
Verification includes native HA save/reload cycles, the normal controller provisioning with checked external HTTP responses, real MQTT packet exchange with the C++ controller and desktop/mobile browser regressions. Physical device acceptance is separate from that.
HA 0.4.0.dev22 — measurement status in the room controls #
Next to the linked sensor, the page now shows separately whether the control has a qualified reading, is waiting for a measurement profile that is still missing, or has an unconfirmed/expired reading. The status is a snapshot at load time. It changes no sensor settings and writes no program or actuator commands.
Availability in Home Assistant and how current a reading is stay separate. A read action never renews the age of a reading. Report IDs and other source payloads are not included in this summary. The existing planner and cold-start fixes are kept.
HA 0.4.0.dev21 — moving short week blocks reliably #
On a touch screen, a short temperature block is now moved as a whole when dragged, keeping its duration and temperature. The fixed edge zone could previously take up the whole block and so unintentionally change its start time. With a mouse, every block keeps a middle area for moving; larger blocks can still be extended or shortened at the edges. Exact times stay adjustable in the fields below the planner.
The browser regression uses real Chromium touch events at 320, 390 and 1440 px, in Dutch and English. It checks short blocks, mouse use, time fields, overlap, day boundaries, cancelling and the absence of automatic saving. This is screen emulation, not acceptance on a physical phone.
The cold-start fix from dev20 is kept. This HA update contains no firmware and changes no saved room program or device bindings.
Home Assistant 0.4.0.dev20 — room page registration on direct opening #
The room editor previously waited for ha-card before registering its own custom element. A direct room URL can load before that built-in component, leaving the editor unregistered and showing a Lovelace Configuration error. The editor extends HTMLElement and has no dependency on the ha-card definition.
Register immediately; a nested ha-card can upgrade later. The frontend module URL and managed card type advance to dev20/v20 to refresh cached dev19 clients. Eight desktop/mobile NL/EN browser cases now exercise both cold and preloaded HA shells, including preserving a draft when ha-card registers later. Four existing device-metadata cases remain covered. The regression failed against the original script and passed after removing the unnecessary wait.
No room settings, schedule, SOURCE, sensor bindings or controller admission rules are changed. No firmware is included. Browser fixtures use simulated admin WebSocket responses; live deployment and the user's exact browser session are separate verification steps.
OpenThermostat Home Assistant 0.4.0.dev19 — test release #
Dev19 fixes saving after room settings have been open for a longer time. A fresh room status does not prove that the earlier configuration readout is still current. On Save all, the existing connection first asks for a new configuration confirmation when needed. Only then is the room saved and the changed plan confirmed through the same controller. The existing age limit still applies; no authority or source qualification is fabricated. If that readout is missing, the draft stays visible and nothing is saved. No automatic retry of a change. The live dev18 test was refused before saving; 21 °C and revision 1 were kept.
With a connected controller you can now change the name, base temperature and local week blocks directly on the room screen. Save all stores the room, waits for the normal HA reload cycle and confirms the actual E32 plan through the existing MQTT worker. An ACK alone does not count as completion. When temperatures/blocks change, a temporary temperature expires when the new program is applied. With active control, device bindings and profile limits stay visible but locked for now; their full profile migration is still open.
If applying cannot be confirmed, the draft is kept and no command is retried automatically. After reloading, the user can explicitly apply the saved program again. The existing SOURCE, credentials, valves and physical authority are not replaced. This path fabricates no qualified temperature source or physical operation. The earlier rejection of a single temporary 22 °C command remains open separately; this version does not yet explain or fix it.
One installation with central settings and rooms. New rooms use a wizard; existing rooms have one direct configuration screen with linked devices, temperatures and a graphical week program with temperature blocks. Device identity, availability and valve limits are shown with the room. This version correctly recognises the official Home Assistant feature flags of a climate device; valid temperature limits therefore no longer need to look unknown.
Dev17 recognises Zigbee2MQTT climate devices without a general state_topic.
The prefix is derived only from both the published bridge and
the exact device availability, bound to the existing device identity.
Missing, invalid and conflicting data stay refused. This version
changes no device settings or physical control.
Dev16 fixes reading Home Assistant's own MQTTDiscoveryPayload
object. The regression test now uses that real native object, also together with the
actual HA MQTT client and a local test broker. The earlier dev15 tag and
files are kept; use dev19 for the current device check.
Present since dev15: on the room screen, under Advanced settings, there is Check device information. Only on request, it reads the most recently reported Zigbee2MQTT definitions for the saved sensor and valves. Target temperature, external temperature input, valve position and converter options are shown separately. Missing information stays unknown. A diagnostic device temperature gets a clear explanation; it is not automatically a qualified room reading. This is information about device capabilities, not a successful physical valve test. No settings, interviews or heating commands are sent. This readout uses the existing HA MQTT connection, two exact topics and a short waiting time. Other devices and raw discovery/broker data are not sent to the screen. Other device sources stay linked normally; they cannot always offer this specific Zigbee2MQTT readout.
Also present since dev14: choose Connect E32 in the central integration settings. Enter the local web address and administrator password. The integration checks the actual E32, keeps the existing network settings and synchronises the room program through the existing connection. Receiving a command alone is no success: the E32 must return the correct configuration and the current room status. A first link can restart the E32 once. E32 alpha.9 or newer compatible firmware is needed; the current profile supports one or two rooms. The administrator password is stored in the existing HA integration; cookies and check codes stay temporary. Ordinary room screens and diagnostics do not export the password. With an interrupted link, no confirmed execution is pretended; check the installation status before you try again.
This is a development release. The normal HA→E32 configuration chain was confirmed live with dev14; the physical sensor/valve/boiler test and heating release are not finished yet. Name, base temperature and local week blocks are editable in dev18 with an active link. Changing devices and profile limits, the optional external room target source, a window contact and several qualified valve profiles remain follow-up work. The new E32 firmware is tested and released separately; this release contains only the Home Assistant integration. A saved setting is not yet a confirmed execution on the E32.
Download OpenThermostat-HA-0.4.0.dev19.zip and check the SHA256 with
HA-SHA256SUMS.txt. Before installing, make a backup of the existing
integration/configuration. Copy custom_components/open_thermostat from the ZIP
to the Home Assistant configuration folder, check the configuration and restart
Home Assistant. Existing users do not need to add the integration
again. After the restart, check the version, rooms, device bindings and program.
Keep the previous package as a fallback.
Dev14 keeps the existing everyday controls and includes the earlier clock fix. For reproducible tests, reception, the queue and the protocol now have one explicit monotonic clock source; by default that remains the existing HA loop clock. The tests use the same virtual clock as their C++ peer, independent of how long the test machine has been running. The test also checks that delayed readings keep their real age and are refused at the configured age limit. Freshness checks stay in place.
The pipeline builds both required C++ test probes in a clean CI environment.
The failed ha-v0.4.0.dev11 and ha-v0.4.0.dev12 tags are kept;
no release was published from them. Existing settings and device bindings
are kept with this update.
The package contains SOURCE.json, the original project licence and checksums.
No live HA storage, firmware, boiler release or device commands are included.