First, let me apologize for any language mistakes as I’m French and relying on a translator.
I’m currently working on an autonomous pool management system using an ESP32 ETH01 running ESP Easy. Here's an overview of my project:


Components and Setup
ESP32 ETH01: Serves as the core of the system.
Relays (x4):
Pool filtration.
Pool lighting.
Heat pump control (dry contact switch for remote).
Reserved for future use.
Relays are powered at 5V, with 3.3V control signals from the ESP32.
Optocouplers (x3):
Monitor the state of the pool filtration, heat pump, and submersible pump in the decompression well.
Connected to a PCF8574 module due to GPIO limitations caused by Ethernet usage.
PCF8574 Module:
Handles GPIO extension for the optocouplers.
Includes a 2-position ON/OFF switch for manual/automatic filtration management and a 3-position ON/OFF/ON switch for filtration modes:
Forced ON.
OFF.
Back to manual/automatic.
OLED SH1106 Display: Shows key information:
Pool water temperature.
Filtration state.
Current mode (manual, automatic, forced, stop, or winter).
ADS1115: Prepares for future pH measurement.
Temperature Sensors (x3): DS18B20 for water, outdoor, and pool house temperatures.
Power: The system is powered by a PoE USB-C adapter:
ESP32, relays, and optocouplers use 5V.
I2C devices and temperature sensors are powered by 3.3V from the ESP32.
Electrical Precautions
The filtration relay controls a Schneider Electric dry-contact relay, which isolates the ESP32 from high voltage and provides protection against voltage spikes (using a snubber). This prevents damage and wear on the relay due to the inductive load from the pool pump.
Current Status
I’ve successfully wired all components and confirmed compatibility:
GPIO2: Pool filtration (device: Filtration, values: EtatFiltration).
GPIO4: Pool lighting (device: Eclairage, values: EtatEclairage).
GPIO12: Heat pump (device: PAC, values: EtatPAC).
GPIO14: Reserved for future use.
GPIO15: Temperature sensors (values: Pool, Outdoor, PoolHouse).
I2C (SDA/SCL): Connected to the ADS1115, PCF8574, and OLED display.
The system is integrated with Jeedom via the ESPEasy and Piscine plugins for automatic management. However, the ESP32 is designed to remain fully functional as a standalone system in case Jeedom fails.
Currently, I use an Arduino controlled by Jeedom, but this ESP32-based system will eventually replace it.
Challenges
Rules:
I’m struggling to save rules when using Ethernet mode on ESP Easy.
I’ve posted about this issue viewtopic.php?t=10532: Ethernet Rules Saving Problem.
HTML Dashboard:
I want to create an HTML interface to monitor temperatures and relay states via my iPhone. I’ve tried the fetch.html tool but face stability issues. I also attempted my own code with ChatGPT's help, but I’m unable to fetch temperatures successfully.
Automation Modes:
I still need to program the rules for filtration modes (manual, automatic, forced, stop, winter).
Future Plans
In the future, I would like to replace my current prototype PCB with a real, properly designed PCB. However, that will be another story
Photos and Request
I’ve attached photos showing my progress. I would greatly appreciate any advice, especially for resolving the rules-saving issue and developing a stable HTML interface.


Edit: The PCF8574 module has been flipped and connected (just like the ESP32) to female header pins for easy replacement in case of failure.

Thank you all for your time and support!