CTC GSi Heat pump modbus connection

Modbus connection from CTC GSi to Home Assistant
via nodemcu and Esphome connectet to display of ctc by 6 wire rj12 cable.


Amazing thank you so much.

Is it the spare RJ12 on the screen module you are using to connect?

Yes, it is the free rj12 connetor in the display.

1 Like

This is exactly what I’ve been wanting to do with my CTC pump aswell, although I have an EcoZenith i250 from 2016. Thank you so much! I will see if I have some time to test it myself soon.
How did you manage to figure out the pinout on the RJ12 connector?

I had a CTC Connect on an EcoHeat 408 where I used a Salae Logic analyzer on the wires.

This is really great I have a CTC Ecoheat 408 too.
Sorry, but I’m not an expert and try to find my way around.Need to do some more reading.

Works with a GSi 12. Just need to adjust the registers.

Works with EcoAir 600M. I receive all information except outdoor temperature

Nice! I have an EcoAir 510m, do you have av ecozenith to go with that? Also, is it enough to connect 4,5,6 from the rj12 cable or do you need 1 and 2 (5v, gnd) aswell?

Hi Kasper

I’m using your project as inspiration to connect to my CTC EcoHeat412 heat pump.

My final goal is to end up with a solution where I can block the compressor from starting at given timeframes, using the Nordpool electrical prices as reference to trigger the CTC Tarrifes block feature.

I already welded a DS18B20 temperature sensor to the ESP32 and added the relevant code into your ESPHome code, and that works out just fine, but at this moment my biggest problem is finding an RJ12 cable I can weld to my ESP32 and connect to the damn (expensive) CTC

You are welcome to reach out if you want to join forces/hear more


Will this also work directly to the Modbus TCP port interface on the GSi 600 series pumps?

I’ve been trying to use this with a CTC EcoLogic heat pump. We can read registers for various sensors with some tweaking but I cannot figure out how to control things like the “extra hot water” and “curve slope”

Looking at the logs on the ESP itself, whenever I send a command it times out with no response. Has anyone else got modbus working with an ecologic?


I’ve sent you PM about this.

I have a GSi12 and would like to know precisely what you had to alter to save me re-inventing the wheel.




I took the liberty to fork you Github repository, and update it wit my settings for my CTC EcoHeat 412 unit.

I adapted the code to run on an ESP12F_Relay_X2 board, opening the possibility to utilize the CTC Smart functions.

My repo here: Spangsberg/CTC-EcoHeat400—Homeassistant (github.com)

I am getting same issue when trying to alter number values. Select values work fine.

Removing the lambda allows number values to be written. eg

  - platform: modbus_controller
    modbus_controller_id: epever
    id: adjustment_number
    name: "Adjustment Number"
    address: 0x0000F04D
    value_type: S_WORD
    min_value: -20
    max_value: 20
    mode: box
    step: 1
    multiply: 10

Thanks Benny! I was pulling my hair yesterday trying to figure it out. Now it works :slight_smile:

@Beeny I am also interested in what need to be changed for it to work with an gsi 12.
Would be really happy if anyone could help me out on what needed to be changed.
Thanks // Mike

I plan to use this with my EcoHeat 410 and a spare Wemos D1 Mini I have.

One thing that confuses me, is there no need for a RS485-to-serial adapter? Like this one for example Serial UART Level Mutual Conversion UART Serial to RS485 Converter Module | eBay

Might be that the Wemos D1 mini needs it but not the ESP12F_Relay_X2 board you are using? Somewhat new to ESPHome so rather ask and make sure then not getting it to work :grinning_face_with_smiling_eyes:

Last project (GitHub - hn/ginlong-solis: Solis inverter ESP8266 data logger, S3 WiFi stick reverse engineering and ESPhome firmware) I tried out with a D1 Mini at least required it to work with modbus.


Never got the setup with the Wemos D1 Mini to work, lucky for me modbus TCP worked flawlessly using this https://github.com/knudsvik/home-assistant-config/blob/main/packages/ctc.yaml