It was based on https://github.com/rbroker/ecodan-ha-local. I've also managed to reverse engineer quite some additional properties and controls.
English (default), Dutch, Italian, French. Select the language in ecodan-esphome.yaml
file.
If you want to contribute with a translation: copy the file ecodan-labels-en.yaml
to ecodan-labels-xx.yaml
, fill in all the labels and submit a pull request.
It's possible to run a melcloud wifi adapter or procon as slave. The slave unit will function as usual. see proxy.md for more information
In sever control mode, the prohibit flags can be set. You can disable it by commenting the sever-control.yaml
entry in the ecodan-esphome.yaml
.
If you don't want to solder, use one of the tested boards. More boards that should be working. It also should work for airco units with cn105 connectors.
Tested boards
Board | Link | Notes |
---|---|---|
Heishamon V5 large | https://www.tindie.com/products/thehognl/heishamon-communication-pcb/ | see proxy.md |
M5Stack Atom Lite (ESP32 variants) | https://docs.m5stack.com/en/core/ATOM%20Lite | Grove ports used |
M5Stack Atom Lite (ESP32 variants) | https://docs.m5stack.com/en/core/ATOM%20Lite | Pins used example |
M5Stack Atom Lite S3 (ESP32-S3 variants) | https://docs.m5stack.com/en/core/AtomS3%20Lite | Grove ports used |
Cable
Pin mapping (from left to right) | grove | cn105 |
---|---|---|
pin 1 - black (gnd) | pin 4 - black (gnd) | |
pin 2 - red (5v) | pin 3 - red (5v) | |
pin 3 - white (GPIO 2) | pin 2 - white (Tx) | |
pin 4 - yellow (GPIO 1) | pin 1 - yellow (Rx) |
Note: pin 5 (12v) on the cn105 is not used.
atom s3 lite https://www.digikey.nl/en/products/detail/m5stack-technology-co-ltd/C124/18070571
grove cable (multiple options/lengths available) https://www.digikey.nl/en/products/detail/seeed-technology-co-ltd/110990036/5482563
JST PAP-05V-S connector https://www.digikey.nl/en/products/detail/jst-sales-america-inc/PAP-05V-S/759977
python3 -m venv venv
source venv/bin/activate
pip3 install wheel
pip3 install esphome
secrets.yaml
and copy the ecodan-esphome.yaml
to your esphome folder and edit the values (check GPO pins (uart: section), you might need to swap the pins in the config)
The secrets.yaml should at least contain the following entries:
wifi_ssid: "wifi network id"
wifi_password: "wifi password"
ecodan-esphome.yaml
to match your configuration (esp board, zone1/zone2, language, server control, enable debug). Default is an esp32-s3 board, 1 zone and english language.packages:
remote_package:
url: https://github.com/gekkekoe/esphome-ecodan-hp/
ref: main
refresh: always
files: [
confs/esp32s3.yaml, # confs/esp32.yaml, for regular board
confs/zone1.yaml,
## enable if you want to use zone 2
#confs/zone2.yaml,
## enable label language file
confs/ecodan-labels-en.yaml,
#confs/ecodan-labels-nl.yaml,
#confs/ecodan-labels-it.yaml,
#confs/ecodan-labels-fr.yaml,
confs/server-control.yaml,
#confs/debug.yaml,
]
esphome compile ecodan-esphome.yaml
sudo dmesg | grep tty
. On my machine it was ttyACM0
for usb-c, and ttyUSB0
for usb-a.esphome upload --device=/dev/ttyACM0 ecodan-esphome.yaml
esphome upload --device ip_address ecodan-esphome.yaml
Here's how it's connected inside the heatpump:
The esphome component will be auto detected in Home Assistant: