|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
A heat-pump water heater with an electric backup element, sold by Atlantic. It speaks io-homecontrol two-way, so the hub reads its water temperature, target, mode, what is heating and its energy, and sets the target and the mode. Starting a boost and away mode from Home Assistant are experimental. One 200 L unit is reported on an SX1276 board (issue #198); see Water heaters for the options.
| Capability | Status |
|---|---|
| Discover & Pair | ✅ Reported; the heater accepts the key push |
| Water temperature | ✅ Read in every state |
| Target temperature | ✅ Read: 54 °C and 62 °C match the display |
| Mode read-back (automatic / manual ECO on / manual ECO off) | ✅ Read; follows the display |
| Heat pump and electric element running | ✅ Read idle, with the heat pump running, and during a boost |
| Boost duration register | ✅ Reads 1 during a boost started on the display and 0 after it |
| Boost and away state | ⚠️ Experimental: read from the heater's operating-mode word, which reads "both off" at rest; not yet seen during a boost |
| Starting and ending a boost from Home Assistant | ⚠️ Experimental: sets the operating mode with a duration of 1; not yet confirmed on the heater |
| Energy since installation | ✅ Read; matches the display's "since start" total |
| Setting the target from Home Assistant | ✅ Works for the heater's own temperature steps; see Choosing a target |
| Changing the mode from Home Assistant | ✅ The display follows all three modes |
| Holiday absence | ✅ Read: the heater reports no target and the heat pump stops; the card shows no target |
| Holiday days left | ✅ Read: register 0x05 counts the days still to run (FF for a holiday with no end date); logged at DEBUG (issue #198) |
| Starting and ending the holiday mode from Home Assistant | ⚠️ Experimental: the card's away mode; runs until turned off; not yet confirmed on the heater |
| Switching the heater off | ❌ Not offered: no off state has been seen |
| Heater display | Home Assistant mode |
|---|---|
| AUTO | heat_pump |
| Manual, ECO on | eco |
| Manual, ECO off | performance |
The heater's manual mode heats to the target you set. In AUTO the heater chooses its own target between 50 and 62 °C and its display shows none, so Home Assistant shows no target either. A target you set while the heater is in AUTO is not sent; the log says so:
Switch to eco or performance first. The hub reads the target again right after a mode change, so the card shows the heater's manual target within a second or two.
The heater accepts only its own fixed targets, one per number of showers on its display. Set one of them; the heater does not take a value between two steps. The steps known for the 200 L unit:
| Showers | Target |
|---|---|
| 3 | 50 °C |
| 4 | 54 °C |
| 5 | 62 °C |
The heater's manual lists every step for each tank size. The card offers 20 to 62 °C in 1 °C steps, so pick a listed value there.
The boost: option creates a switch. Turn it on to start a boost and off to end it. The card's away mode starts and ends the heater's holiday mode, which runs until you turn it off. Both are set through the heater's operating-mode setting; turning either off ends both. The switch and the card show what the heater reports, read back right after each change and at every poll, so they stay off if the heater does not take the setting. The switch writes nothing when the board restarts, so a reboot does not end a running boost. Details: Boost and away.
water_heater: - platform: home_io_control name: "Hot water" io_device_id: "F9CF0F" io_device_type: domestic_hot_water system_key: !secret calypso_key # only when the heater holds a key of its own # Optional companions: energy: name: "Hot water energy" heat_pump_running: name: "Hot water heat pump" electric_backup_running: name: "Hot water electric backup" boost: # a switch (experimental) name: "Hot water boost"
io_device_type: domestic_hot_water is required on this platform. Discover & Pair and Scan Paired Devices print a water_heater: block with it. The build warns that the kind is experimental: one heater of one brand has been read so far.
The hub polls the heater every five minutes by default: one status read and six register reads, each answered in about 10 ms. At the first poll it also reads the heater's brand letter and logs it once:
If you own this heater, these answers help:
Corpus captures from issue #198, on an SX1276 board:
The design is recorded in ADR 0068 and ADR 0081.