Hacking Electrolux Smart AC

I will have to get an AC unit back out of storage to test - it’s winter now and I just put them all away.

@TJohnson93, here is a bit more help to understand the messages:

I would set up WireShark to capture data as well when you are controlling the device through the app.

Decoding the payload will be a bit tricky, but you will be able to see it once you get the captures.

Have you gave a shot on that AC already?

Hi all,

I had a new Kelvinator installed today so I thought I’d see if I could get something working.
So far I’ve made an extension class for python-broadlink to communicate with the aircon locally.

https://gist.github.com/DotEfekts/34596bd7e29c4d54c73981bc9c720e5c

I’ve not used python before so sorry if it’s not best practice. I’ll be looking at how to do a HI integration with this tomorrow. I’ve not looked into using the cloud API but maybe someone wants to build on what I’ve found if they’re interested.

1 Like

Okay,

This is extremely rough but I have an initial version of a custom component that seems work. At the moment I’m still not sure how to do auto discovery with HA so you’ll have to put the local IPs of the aircons in yourself. If you download the electrolux_climate folder from the repo it should just go into the custom_components folder as normal.

https://github.com/DotEfekts/ElectroluxClimateComponent

2 Likes

Nice job!

If it is really working with the Electrolux/Kelvinator AC, then you should make a PR and add it to the python-broadlink repo, so it could be part of the official HA deployment.

I tag @amaisano, @TJohnson93 and @hellqvio as they might be interested about your work.

Thanks for this, this was the last Important thing missing from my HA.

So far so good, did quick feature test after installing.

Electrolux Flow H3 heatpump EPN12C38H

Just wanted to chime in and say this is working with a Kelvinator KSD25HWJ reverse cycle air conditioner (Australia).

I’ve only done very basic testing so far (on, off, auto mode, temperature selection).

1 Like

Great work! I tried this with my "smart " electrolux heatpump but I get this error:

This error originated from a custom integration.

Logger: homeassistant.config_entries
Source: custom_components/electrolux_climate/__init__.py:18
Integration: Electrolux Climate
First occurred: November 24, 2022 at 10:35:23 PM (1 occurrences)
Last logged: November 24, 2022 at 10:35:23 PM

Error unloading entry Electrolux Climate for electrolux_climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 496, in async_unload
    result = await component.async_unload_entry(hass, self)
  File "/config/custom_components/electrolux_climate/__init__.py", line 18, in async_unload_entry
    hass.data[DOMAIN].pop(entry.entry_id)
KeyError: 'ac78c420ecf85e43dcdffdcd9886c01f'

After adding the integration I had to put the IP-address of the device. Checked the logs and saw this, anyone knows what might be wrong?
I tried troubleshooting myself but unable to do it since I don’t fully understand the HASS API.

This works great, thanks for that. Are you able to add a feature to create the item name on discovery? Right now it defaults to climate.electrolux_climate but i have multiple ACs that I’d like to use, so naming each one on discovery would be awesome.

Edit: in the mean time, updating the entity after creation is fine.

BTW, if people aren’t aware, you can add this repo via HACS by following this link:

Once that’s done, you can then add the integration via Devices & Services where you’ll be prompted for the IP address of the unit to add.

I am testing this now. I ran the broadcom-discovery python script and it only found 1 device, my RM4 Pro RF/IR broadcaster, which is on the same wifi network.

I have a Google Wifi Mesh network (cannot control which devices use 2.4G vs. 5G bands), which might be causing trouble. For instance, I was not able to use Wireshark to observe any eapol events after following the tutorial.

Should I have seen anything besides that?

I also tried packet sniffing on monitor mode on my Apple laptop, but nothing came up through the MAC address or IP address of my Frigidaire air conditioner.

The only thing I did see were some HTTP requests from my phone (using the Frigidaire 2.0 iPhone app) to an electrolux domain API.

Is there anything else I should try?

Have it set up in test HA environment so, so far so good. I had disconnected from wifi and used sensibo blasters as a temporary solution. Upon attempting to redownload the Home Comfort app, it’s not liking the Pixel 7 Pro so I’ll need to dig out an old phone from the bottom of the drawer to setup wifi again.

About to have another Kelvinator installed today funnily enough (grad total of 4… For now…) So will be interesting to see it work. Great job @DotEfekts. I honestly have not had the time to do anything surrounding this or HA in months. Not much still works TBH :sweat_smile:

Hmm, interesting, Added to HA but doesn’t detect the device once adding the IP Address into the integration

any news on this?
thinking of buying an Electrolux Flow H3, is that possible to add to home assistant?

Not much from me, my server died that ran HA and I haven’t replaced it yet.

Awesome component, thanks! Works with my Electrolux AC of unknown model. I am a bit new on HA/YAML, but would it be possible to get the acual temperature and target temperature as entities so you can trigger on them, and also show them without adding the full control card of the AC?

Also, methods to control the AC for automation would be really great.

I have tried this with Electrolux EXP26U339CW it’s the Comfort 600

And it can’t connect sadly. Any more success on it?

There seems to be several APIs used by Electrolux. Some people seem to be using Comfort 600 successfully with following API converter.

https://hub.docker.com/r/dannyyy/electrolux-mqtt

For my epn09c38whi this integration was correct one instead. Thanks a lot!

@DotEfekts Thanks for taking the time to write a custom component, thanks to it I could just make my Electrolux air conditioner (WP71-265WT) to work!

With the latest Home Assistant release it took a few minor changes to get it to work that I wanted to share here for you others in case someone has the same struggles :slight_smile:

  • The checksum validation in the electrolux.py (lines 51,52) was throwing an exception upon adding the component so I’ve commented out for the moment as I didn’t know how to resolve it.
    So far it works just fine without the validation.
    (But @DotEfekts I assume it was there for a reason, so you might want to update the component with a proper fix :smiley: )
  • The broadlink version conflicted with my Home Assistant installation preventing the component to work
    (Fixed by increasing version to broadlink==0.19.0)
  • TEMP_CELSIUS used in the component will stop working with Home Assistant 2025.1 so fixed that by replacing it with UnitOfTemperature.CELSIUS

For the moment I have those changes on my on fork, but would gladly switch back to yours if you find the time to add those fixes, hope it helps someone! :slight_smile: