Fujitsu AC (heat pump) integration via ESPHome [ESP32]

@rabbit-aaron It WORKS!!!

Re-reading your github project you mention about the serial 2 SEVERAL times… but since I never used these pins and the example circuit from unreality point out to RX and TX I just… missed that part :frowning:
Apologizes for bothering you since I could have it to work from very begining.
The good thing is all commands but ECO (as you mentioned in known issues) are working in my unit perfectly.

Thank you so so so much! It’s been more than 3 years waiting for this.

2 Likes

Congratulations!

Hey Guys,

I have setup an identical unit to that in the first picture in the post and I also have the identical fujitsu controller as in that picture.

I have uploaded the code but are still having some issues, the first thing I think that needs to be confirmed is in the original circuit diagram you referenced from the FujiHeatPump post, it shows that the connection of esp32 tx pin connects to the mcp tx pin, then the esp32 rx pin to the mcp rx pin, not sure why this is, wouldnt you normally connect the out of one to the in of the other and the in of one to the out of the other with serial data lines?
Anyways, I have tried both, I get nothing with the rx to tx and tx to rx connection and only err on the master controller the other way, tx to tx and rx to rx. Every test I have done has also been with a complete power down of the ac unit, then power back up.
Neither way gives me any updates in the ui nor do I have any control over the ac unit either.

I would greatly appreciate any assistance you guys could offer to get this working as this would have to be one of the best integrations I’ve seen to date if it works.

Nathan

Hey Guys,

Well I think I have found the cause of the issue, it would seem having different supplies will cause a problem, Im thinking because the ground not being the same reference.
The original circuit i was using the same step down converter but was concerned with running this test unit from the ac unit and risking damaging the unit so i had another 12v supply powering the converter and the esp32 was fed from a usb charger.
I thought I would take the risk and use the 12v and ground from the unit to power both the converter to power the esp32 and the mcp chip and boom, up she came after a power cycle.

Thanks again, awesome project.

Nathan

2 Likes

It should be just 3 pins. +12, GND and one data pin.
And you need to modify the code to make it function as the master controller.

Hey Aaron,

yep correct, I used the three connection in the indoor unit 12v,gnd,sig. Used these to power both components in the circuit and off she went. I can now control the ac unit without issue.
I didn’t modify any of the code though so not sure what your referring to. I still have the original controller in parallel with the circuit which I assume is now running as the secondary controller.
The ui also updates really well and I can create automations to automate the start and stopping of the ac unit.

I agree, this would be a great project to make a PCB for. Perhaps integrate a wemos D1 mini, the MCP2025 chip, capacitor and resistor so we can house it all in a small box that one could screw to the side of the indoor unit. Might have to look into it, do you think you code would run on the wemos d1 mini ok? or would it require a rewrite? I know you can get the esp32 in the same form factor as the d1 mini, this also might be an option.

Thanks again, awesome project & brilliant work by all.

Nathan

I attempted to use the original library from unreality in ESP8266, but I can’t get it to work. You can give it a go, turn on debugging, and figure things out.

The previous message was a reply to patvdleer, he seems to want to use it as a master controller, skipping the wall controller at all.

Any body can upload a complete installation photo?

What you use as power supply for esp32? I think to add a 7805 to use 12V from controller, but I don’t know if it have enough amps.

LM7805 is probably OK since the low current draw.

(typical 260mA max according to some website lol)
If you look at my first photo, the board on top is an LM2596 buck converter, it’s more efficient but probably overkill in this case.

1 Like

Hello world,

I’m wondering if anyone has this working with a minisplit system? Approximately 4 seconds after powering up the AC system I see a brief sign of life, but then nothing works as expected. I read somewhere that in the US versions secondary mode is not available for wall units, and in our (US) system there are two wall mounted units (each controlled via IR remote) and one central unit controlled via a wall mounted thermostat, and all 3 units are attached to a single outdoor unit. Below are the logs from the first ~10 seconds of powering up:

<-- 0 A0 0 6 1E 40 0 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:4 cTemp:0 acError:0 
<-- 0 81 0 6 1E A0 0 20   mSrc: 0 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:10 cTemp:0 acError:0 
<-- 0 A0 0 6 1E A0 0 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:10 cTemp:0 acError:0 
<-- 0 81 0 6 1E A0 0 20   mSrc: 0 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:10 cTemp:0 acError:0 
<-- 0 A0 0 6 1E A0 0 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:10 cTemp:0 acError:0 
<-- 0 81 0 6 1E A0 0 20   mSrc: 0 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:10 cTemp:0 acError:0 
<-- 0 A0 0 6 1E A0 0 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:0 uM:10 cTemp:0 acError:0 
<-- 20 81 20 0 0 0 0 0   mSrc: 32 mDst: 1 mType: 2 write: 0 login: 0 unknown: 1 onOff: 0 temp: 0, mode: 0 cP:0 uM:0 cTemp:0 acError:0 
<-- 0 A0 20 1F 1F 4 1 0   mSrc: 0 mDst: 32 mType: 2 write: 0 login: 1 unknown: 1 onOff: 1 temp: 31, mode: 7 cP:1 uM:0 cTemp:0 acError:0 
<-- 20 A1 0 6 1E 0 3B 0   mSrc: 32 mDst: 33 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:0 cTemp:29 acError:0 
--> 21 81 0 6 1E 0 3B 0   mSrc: 33 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:0 cTemp:29 acError:0
loop(): Remote updated mode HKMODE: 2 = ACMODE: 5 -> ACMODE: 3
<-- 0 A0 0 6 1E BA B 6A   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:11 cTemp:5 acError:0 
<-- 0 81 0 6 1E A0 1 20   mSrc: 0 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:10 cTemp:0 acError:0 
<-- 0 A0 0 6 1E A0 1 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:10 cTemp:0 acError:0 
<-- 20 81 0 6 1E 0 3B 0   mSrc: 32 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:0 cTemp:29 acError:0 
<-- 0 A0 0 6 1E A0 1 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:10 cTemp:0 acError:0 
<-- 20 81 0 6 1E 0 3B 0   mSrc: 32 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:0 cTemp:29 acError:0 
<-- 0 A0 0 6 1E A0 1 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:10 cTemp:0 acError:0 
<-- 20 81 0 6 1E 0 3B 0   mSrc: 32 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:0 cTemp:29 acError:0 
<-- 0 A0 0 6 1E A0 1 20   mSrc: 0 mDst: 32 mType: 0 write: 0 login: 1 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:10 cTemp:0 acError:0 
<-- 20 81 0 6 1E 0 3B 0   mSrc: 32 mDst: 1 mType: 0 write: 0 login: 0 unknown: 1 onOff: 0 temp: 30, mode: 3 cP:1 uM:0 cTemp:29 acError:0

Any and all insight will be greatly appreciated.
Thanks in advance,
Ardy

Hey buddy I don’t think it’ll work with a split system. You’ll probably need to have the same kind of wall controller as I do (see my original post photos), or the ones that miriumar has (see his replies)

Hi Ardy,

I’m looking for this solution too. If you figure it out, please let me know!

Peejayemm

out of curiosity, does the split system use regular IR remotes?

Yes, it has an IR remote.

I think the easiest way to do this would be some kind of IR bridge (IR Blaster), you can build one easily using Tasmota or ESPHome to integrate it into the Home Assistant.

See this:
https://tasmota.github.io/docs/IR-Remote/#further-reading

EDIT: If anyone is having issues below - flash with the single core version - it solved all my issues.

I think I have correctly configured the MCP-2025 on a breadboard - so will park that for now.
Wanted to confirm the signal wires on the Fujitsu red = 12v, white = sig, black = gnd?

I think the biggest issue I am having is the ESP32.

It basically wont run based on the YAML file that you have shared. I have tried a direct copy of the YAML, I have tried to setup the ESP32 with the default code ESPhome puts in and then ammend it for the sections that are in the GIThub page, but cant get it to work. Any ideas?

Ill document my steps here:
1) Connect ESP32 (MH-ET Live) via USB to my PC running home assistant.
2) Run ESPHome webtool - Prepare for adoption (this loads the basic ESP config)
3) Provision WiFi access - this works fine and I can visit the device via its allocated IP address, see the logs over WiFi.
4) Edit the default YAML to include the following:

```
includes:
- FujitsuClimate.h
- FujitsuClimate.cpp
- FujiHeatPump.h
- FujiHeatPump.cpp

climate:
- platform: custom
lambda: |-
auto fujitsuClimate = new fujitsu::FujitsuClimate();
App.register_component(fujitsuClimate);
return {fujitsuClimate};
climates:
- name: “Fujitsu”
```
It starts the compiling process and comes up with the same errors that are posted above - It cant find the IP address so I look that up manually in my DHCP server, the device is there but does not work - cant see it via web browser or via HA.

Retried with the following method:
1) Delete all the config files in ESPhome Config folder
2) Copy 5 files (Including the YAML) from gitHub into the ESPHome config folder
3) The Fijutsi YAML appears in my home assistant dashboard, so I edit the relevant information to allow it to connect to my network, and change the boardtype to esp32dev which is what comes up when it creates the YAML for this board.
4) Validate the YAML File without errors.
5) Select Install via USB via this PC (It generates the project file 984kb) and then upload it via ESPHome webtool with the following results:

@rabbit-aaron any help would be appreciated.

Hello! In first place thank you for sharing this!
I’ve just got my Fujitsu Air Conditioner installed and the connection with the wired remote is TWO WIRES instead of three!! :sob:
Does anybody know how to adapt the circuit (if possible)

it’s best if you send us a photo here.

Of course