Skip to content

quentindavid/esphome-ecodan-hp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESPHome Ecodan heatpump

It was based on https://github.com/rbroker/ecodan-ha-local. I've also managed to reverse engineer quite some additional properties and controls.

  • 0x03 : error codes
  • 0x05 : heat source
  • 0x0B : refrigerant liquid temperature
  • 0x10 : In1, In5, In6 thermostat status
  • 0x14 : booster / immersion heater states
  • 0x15 : pump status
  • 0x28 : forced dhw status
  • 0x35 : room temp setpoint (signed) with flags
  • 0xC9 : configuration command. It reports back controller version and much more, need more investigation.

experimental server control + prohibit dhw

In sever control mode, the prohibit flags can be set. You can enable it by uncommenting the sever-control.yaml entry in the ecodan-esphome.yaml.

recommended hardware

If you don't want to solder, use one of the boards that supports 5v on the GPIO ports (basically all m5stack boards with a grove connector (HY2.0-4P) that accepts 5v as input). It also should work for airco units with cn105 connectors.

Tested boards

Board Link Notes
m5stack Atom (ESP32 variants) https://docs.m5stack.com/en/core/ATOM%20Lite Grove ports on the m5stack boards have built in level shifters
m5stack AtomS3 (ESP32-S3 variants) https://docs.m5stack.com/en/core/AtomS3%20Lite Grove ports on the m5stack boards have built in level shifters

Cable

  • Get one of the grove female cable and a ST PAP-05V-S connector. Remove one end of the grove connector and replace it with a ST PAP-05V-S connector. Here's an example: image

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.

where to buy

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

build esphome-ecodan-hp firmware

Build via cmd line:

  • Install ESPHome https://esphome.io/guides/getting_started_command_line.html
    python3 -m venv venv
    source venv/bin/activate
    pip3 install wheel
    pip3 install esphome
  • Fill in 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"
  • Edit the following section in 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/server-control.yaml,
            #confs/debug.yaml,
           ]
  • Optional: configure cooling/heating action in ecodan-esphome.yaml
####################
# heatpump heating/cooling switch
# available modes: HEAT_ROOM_TEMP, HEAT_FLOW_TEMP, HEAT_COMPENSATION_CURVE, COOL_ROOM_TEMP, COOL_FLOW_TEMP
substitutions:
  default_heating_switch_mode: HEAT_COMPENSATION_CURVE
  default_cooling_switch_mode: COOL_FLOW_TEMP
  • Build
esphome compile ecodan-esphome.yaml
  • To find the tty* where the esp32 is connected at, use sudo dmesg | grep tty. On my machine it was ttyACM0 for usb-c, and ttyUSB0 for usb-a.
  • Connect your esp32 via usb and flash
esphome upload --device=/dev/ttyACM0 ecodan-esphome.yaml
  • You can update the firmware via de web interface of the esp after the initial flash, or use the following command to flash over the network
esphome upload --device ip_address ecodan-esphome.yaml

Here's how it's connected inside my heatpump:

image

The esphome component will be auto detected in Home Assistant:

image

"Buy Me A Coffee"

About

ESPHome Ecodan heatpump

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 74.7%
  • Python 25.3%