- Open the project in Arduino IDE
- Configure WiFi (copy configuration.example.h to configuration.h)
- Flash it on your ESP8266 (I used a D1 Mini)
- Wire up the modbus converter (details will follow)
- 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
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 setup Arduino IDE https://www.arduino.cc/en/software/
- Open this project in the IDE
- Install the ESP8266 board (google instructions; or follow https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/)
- Install the Elegant OTA update library https://github.com/ayushsharma82/ElegantOTA#how-to-install
- Hope that I didn't forget any other needed libs
- Copy configuration.example.h to configuration.h
- Change the WiFi name and password in configuration.h
- compile and run it =)
I used a Wemos D1 Mini with a MAX 485 Module like https://www.amazon.de/ANGEEK-MAX485-Module-Converter-arduino/dp/B07X541M2T
Check out the PCB design in the pcb folder.
(need to look that up)
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 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 unnessecarily otherwise.
MAX -> ESP
GND -> GND
5V -> 5V
DI -> D1
DE -> D2
RE -> D3
RO -> D4