https://github.com/r0bb10/ESPHome-Olimpia-Bridge
- Configure, compile and flash Software (see Software section)
- Wire up the modbus converter (see Hardware section)
- Connect the modbus devices
- Put your Fan Coil into "Remote" Mode (check the manual, for me, I think, it was touching "-" and the fan "button" for 10s)
- If needed, change the fan coil address
- Register the fan coil address (see registering/unregistering)
- Change Fancoil Settings over http://CONTROLLER_IP/set?on=1
if your touch pad shows bL it means its locked. i can lock and unlock mine be touching "+" and "-" together for 5 seconds
HTTP examples: /set?addr=1&ambient=22.9&setpoint=23.0&on=0&speed=MIN&swing=False&fanonly=False&mode=COOLING
HTTP params:
- addr: (0...31) modbus address of the fancoil
- ambient: (XX.X) temperature in deg C of the current room temperature
- setpoint: (XX.X) temperature in deg C of the desired setpoint
- on: (true/false) ...on/off
- speed (MIN/MAX/AUTO/NIGHT): speed of the ventilator
- swing: (true/false): turn on/off swinging
- fanonly: (true/false): only turn on fan, do not heat ore cool
- mode: (COOLING/HEATING): mode
How to compile the software:
- Download and install Platform IO ( https://platformio.org/platformio-ide )
- chdir into the software folder
- Copy src/configuration.example.h to src/configuration.h
- Change the WiFi name and password in configuration.h (double check; they are case sensitive)
- run "pio run" (or compile/run using Visual Studio)
I used a Wemos D1 Mini Lite (but any ESP8266 should work fine, and the code should be adaptable to an ESP32 with minimal effort) with a MAX 3485 Module. Note that the MAX 485 module >can< work but it is made for 5V and could crash or brick your ESP8266. A V2 board is in the making that switched from the 485 to the 3485. When it is confirmed working I will publish the layout for NON COMMERCIAL use.
| ESP | MAX3485 |
|---|---|
| 3.3V | 3.3V |
| GND | GND |
| GPIO2 / D4 | RO |
| GPIO0 / D3 | RE |
| GPIO4 / D2 | DE |
| GPIO5 / D1 | DI |
RO should be connected using a voltage divider to avoid damaging the ESP8266.
By default, the fancoil uses address 0 You can change the address of the fancoil by http://CONTROLLER_IP/changeAddress?sourceAddress=X&targetAddress=Y NOTE: EVERY fancoil connected to the modbus using the source address will change its address. Make sure you are changing addresses one by one.
Address must be registered. You can register an address by opening http://CONTROLLER_IP/ in a browser, enter the address (int) at the "register address form" and hit submit You should unregister unused fancoils, because the controller will try to reach the address periodically unnecessarily otherwise.
The fan will stop blowing when the water temperature goes outside the configured range. This can be bad because the heat / cold cannot be dissipated from the fancoils when the therme starts heating / cooling. It takes some time for the fan to notice the temperature change and the valve to open which can be too long for a domestic heat pump. To prevent that, reconfigure the threshold to be absurdly low/high. In this case heating with 15° water is allowed, or cooling with 35°.
export IP=192.168.X.X curl -X POST "http://$IP/write?addr=2®=218&val=150" # set minimum water temperature for cooling to 15° curl -X POST "http://$IP/write?addr=2®=219&val=350" # set minimum water temperature for cooling to 35°