Home / Projects / iBoost to Home Assistant

Monitor your Solar iBoost+ in Home Assistant with an ESP8266

The Solar iBoost+ sends spare solar power into your hot water tank. This home-made add-on lets Home Assistant see what it's doing and switch on Boost, using two small boards that cost about £10 together. It's a hobby project I built for my own home, shared so you can learn from it.

Parts
About £10
Skill
Intermediate
Time
An afternoon
Needs
iBoost+ and Home Assistant

What you get

A Wemos D1 Mini (an ESP8266 Wi-Fi board) wired to a CC1101 radio module listens to the iBoost's own 868MHz radio messages and passes them to Home Assistant. In Home Assistant you see what the iBoost is doing (heating or off), how much solar it's diverting and the total energy it has put into your tank. You can also trigger Boost from an automation, for example when your electricity price goes negative.

The software is the free ESP-Home-iBoost component for ESPHome by JNSwanson (MIT licence). This page is my build of it, with what I learned along the way.

No mains wiring. Nothing is connected to the iBoost or your immersion heater. The board runs from a USB plug and talks to the iBoost by radio.

Parts list

PartWhy you need it
Wemos D1 Mini (ESP8266)The brain. Joins your Wi-Fi and talks to Home Assistant.Check price
CC1101 radio module, 868MHzListens to and talks with the iBoost by radio. Must be the 868MHz version, not 433MHz.Check price
Jumper wires or stripboardSeven connections between the two boards. Solder them once it works.Check price
Micro-USB data cable + USB plugPowers the board and flashes it the first time. Charge-only cables will not work.Check price

The two boards cost a few pounds each. Buying a multipack of D1 Minis is cheaper and leaves spares for the next project.

On the workbench

ToolWhat it's for
Soldering ironFor making the wires permanent. Loose jumper wires were my biggest headache.Check price
MultimeterTo check 3.3V reaches the radio and to find a bad joint.Check price
Helping hands with magnifierThe CC1101 pins are small and close together.Check price

Wiring

Six wires connect the radio to the board, plus one extra: MISO goes to both D6 and D2.

Wemos D1 MiniCC1101 868MHz3V3GNDD5D6D7D8D2VCCGNDSCKMISOMOSICSNMISO also to D2
CC1101 pinD1 Mini pin
VCC3V3 (never 5V)
GNDGND
SCKD5
MISOD6 and D2
MOSID7
CSND8

Pins as given by the original project. The D1 Mini uses the same D-pin names as the NodeMCU board shown there.

Software

  1. In Home Assistant, install the ESPHome add-on (Settings, Add-ons, Add-on store).
  2. Download the ESP-Home-iBoost project from GitHub and open its iBoost.yaml.
  3. Put your Wi-Fi name and password in ESPHome's secrets.yaml, and add an API encryption key.
  4. Plug the D1 Mini into your computer with the data cable and flash it the first time over USB. After that, updates can go over Wi-Fi.
  5. Home Assistant finds the new device. Add it, and your iBoost sensors and Boost button appear.

Once it's connected, check the ESPHome logs. You should see packets arriving every few seconds. If you don't, see the first tip below.

What I learned building it

Tune the frequency if you get nothing

The project defaults to 868.300MHz. Mine received nothing at all until I tested nearby frequencies and found it worked at 868.175MHz. Cheap CC1101 modules drift, so if the logs stay silent, the frequency is the first thing to check. You change it in the component's iboost.cpp.

Back up your tuned file

If you re-download the project from GitHub, it overwrites your frequency change. Keep a copy of your working iboost.cpp, and keep the component as a local copy rather than pulling it fresh each time.

Don't forget the MISO split

MISO goes to D6 and also to D2. The code reads D2 because D6 is busy with the radio. Miss that second wire and it never sees a packet.

Solder it once it works

Every time my build went quiet, a jumper wire had worked loose. Once you know the wiring is right, solder it.

Match the encryption key

If the key in your YAML and the one Home Assistant has stored don't match, the device keeps dropping off. Re-add the device in Home Assistant after changing the key.

Give it a fixed address

Reserve its IP address in your router (or use iboost.local) so Home Assistant always finds it.

What to do with it next

The real win is automation. With the iBoost's own readings in Home Assistant, you can boost the tank when electricity is cheap or negative, and skip it when the tank is already hot. I write about how I run my own energy setup, batteries, Octopus Agile and Predbat, at uk99.com.

Please read before you build. This page is for educational purposes and shares a hobby project I built for my own home. You build and use it at your own risk. It is not made, supported or endorsed by Marlec, and Solar iBoost is Marlec's trademark, used here only to say which product this works with. Adding home-made equipment that talks to your iBoost may affect its warranty, so check with Marlec or your installer if that matters to you. Work carefully: the boards run on low-voltage USB power, and nothing on this page involves mains wiring, which must only be done by a qualified electrician. Gadgets Galore accepts no responsibility for damage, loss or injury from following this guide.

Common questions

Is this made or approved by Marlec?

No. It is an independent hobby project. Marlec does not make, support or endorse it, and it is not a Marlec product.

Do I have to open or rewire the iBoost?

No. Nothing connects to the iBoost or to mains wiring. The board is powered by USB and works over radio.

Will it work with an ESP32?

The project is written for ESP8266 boards like the D1 Mini. An ESP32 can work with different pins, but this guide covers the D1 Mini, which is what I built.

Can I use a 433MHz CC1101?

No. The iBoost talks on 868MHz, so you need the 868MHz version of the module.

Is the software free?

Yes. It runs on ESPHome, and the iBoost component by JNSwanson is free and open source under the MIT licence.

More projects