Tutorial 3 – Hayward pool heater control

I realized this project because the Hayward application allowing to control the pool heater (heat pump) is not realiable.
In the early days I handled the automation of the pool heater via a Jeedom plugin but as it depends on the Hayward cloud it then also failed as soon the cloud became unavailable.

So, I found a very nice project on GitHub from Nicolas Janik that resolved my issue as it can manage several pool heaters based on PC1000 & PC1001 controllers locally via MQTT.
GitHub : https://github.com/njanik/hayward-pool-heater-mqtt
Thanks a lot to Nicolas for the amazing work!!!!

This tutorial will show how the circuit, the connectivity and the integration into Jeedom via MQTT have been made.

The end result will show a widget in Jeedom allowing to control the pool heater:

1. Prerequisites

  • Need some soldering experience.
  • Need some Arduino environment experience.
  • Need a Home Automation system like Jeedom and MQTT.

2. Hardware List

  • 1x Soldering Breadboard 30x60mm
  • 1x Wemos D1
  • 1x Logic Level Converter Bi-Directional Shifter Module
  • 1x 3 Pins Screw Terminal Block

3. Diagram & Assembly

This is how the elements needs to be connected together and also powered by the pool heater mother board.
The blue cable on the mother board (second pin on the bottom connector) is from where the signal/data is read by the Arduino.
The motherboard provides 5V power supply and signal, therefore a bi-directional level converter is needed in between the motherboard and the Wemos to reduce the signal at 3.3V to the Wemos D5 pin.

Steps to assemble the circuit:

  • Solder male connector pins to the Wemos and the Converter :
  • Place the elements (screw terminal block, female connector pins for Wemos & Converter) :
  • Solder the tracks as below :

4. Housing

As the circuit will stay outside (even within the heater enclosure), I designed some housing to safely hold the circuit from the humidity.

Please find below GCODE files that can be used on your 3D printer.

  • Put the circuit into the housing and connect a cable with a female pin connector (for the +5V and GND) and a single wire for the signal.
  • Check also the position of the Converter (Low/High)
  • It should end up with something like this :

5. Load the Arduino software into the Wemos

I will not describe how to proceed in details with this step as you can find all necessary information on Nicolas’s GitHub :


Important : Set the necessary WIFI & MQTT configuration details into the my_config.h file before to compile/upload the sketch into the Wemos.
You can test if all works ok by powering on the Wemos and check the Serial Logs.
These logs should clearly show successfull WIFI & MQTT connectivities.

6. Connect the circuit into the Pool Heater

Attention : Electrical risks, ensure to power off the pool heater to work safelly.

First of all you will need to unmount the cover of your pool heater and then access the housing that stores the electronic parts.
There you will find the motherboard (controller).
Please check the documentation of your pool heater before to proceed.

  • Locate the pins providing 5V and GND and then connect the female connector from our circuit. (5V is on left side, GND on right side)
  • Connect the signal wire :
    1) Remove the blue wire from the second pin of the bottom connector on the mother board and connect it to the WAGO.
    2) Take a short wire from the WAGO to the mother board in the second pin of the bottom connector.
    3) Connect the signal wire from the circuit into the WAGO.

This should then look like on below picture :

7. Secure the circuit housing and place it within the pool heater enclosure

Take some electrician tape and wrap up the housing to make it waterproof.

Finally place it like this and close the pool heater enclosure.

We are done with the installation steps!
It’s time to get the pool heater powered on and see if we get some data into MQTT.

8. Integration into the home automation system

In my case I use Jeedom but any home automation system that is MQTT capable can do the same to control the pool heater.

I’m using the nice plugin jMQTT on Jeedom as MQTT broker and it is set up to listen to the pool/# topic :

MQTT information based on Nicolas GitHub
Data will be published on your MQTT server every few seconds using this topics:

  • pool/power (true / false)
  • pool/mode (heat / cool)
  • pool/automatic_mode (true / false) Automatic = heat or cold according to the programmed temp and the out temperature
  • pool/temp_in (temperature in in celcius)
  • pool/temp_out (temperature out in celcius)
  • pool/temp_prog (programmed temperature in celcius)
  • pool/wifi_rssi (Wifi received Signal Strength Indication)

You will be able to change the settings via this topics:

  • pool/set_power_on (NULL msg)
  • pool/set_power_off (NULL msg)
  • pool/set_mode (HEAT/COOL/AUTO)
  • pool/set_temp (temperature in celcius. You could set half degree. Ex: 27.5)

Finally a simple widget to show data :


Scroll to top