Noob trying to fix custom component midea_dehumi

Hi,

A custom component was released in January for the EVA II PRO WiFi Dehumidifier, but it doesn’t work with recent releases of HA, and the developer seems to have lost interest. I would like to try and get it working again.

The first thing I’ve done is re-arrange the files in the custom_components directory to match the current requirements. This advances the problem to the point where the platform initializes, but only 1 of the 2 sub-components loads. The point where I’m lost is in this code (__init__.py):

        _LOGGER.info("midea-dehumi: loading climate entity sub-component...")
        load_platform(hass, 'climate', DOMAIN, {MIDEA_TARGET_DEVICE: targetDevice}, config)

        _LOGGER.info("midea-dehumi: loading sensor entity sub-component...")
        load_platform(hass, 'sensor', DOMAIN, {MIDEA_TARGET_DEVICE: targetDevice}, config)

        _LOGGER.info("midea_dehumi: platform successfuly initialized.")

the load_platform for the sensor seems to work, but the load_platform for climate does not. climate.py is there, but nothing is logged from it, even when I put a log statement in the main body.

Can any point me in the right direction, or suggest something I could do to debug why the climate component isn’t being loaded?

The original repo is here:


and I’ve forked in here in the hope that I can come up with something useful to do to it:

Unfortunately my python (and coding in general) is pretty weak, but with some hints I might be able to figure out what’s going on.

2 Likes

also would like someone to look into it :smiley: !

Also quite interested in this :slight_smile: Have you managed anything with the code?

Nope.

The underlying library does work though, so I knocked up a script based sensor so that I am at least picking up the information from the sensor in the device. If I get time I’ll set it up as a generic_thermostat (with the humidity pretending to be temp), using a command_line switch. Mega clumsy, but I don’t have the python/HA knowledge to do it properly.

I was trying to see if I could run the library in my second Rpi that is just running Rasbian and collect the information on HA perhaps? But I’m not very good with Python. I can just about read it but not change anything so I don’t even know if such a thing would be possible

Try this and report back! :slightly_smiling_face:

There is now a library that access the dehumidifer locally on wifi rather than via the cloud:

It says it’s for A/C. Does it work on dehumi too?

edit: nvm, it seems it does

FYI (I’m the OP), this is what I actually did:

  1. used a command line script using the original library to sample the humidity from the device, and turn it on and off. Created at generic_thermostat pretending that I had a AC system and the humidity was a temperature.

This proved annoying though, because I had a race condition if the sample script ran at the same time as the script that tried to turn it on or off / check that status.

So:

  1. I put a xiaomi zigbee sensor in the room and used that as the sensor instead of the built in one.

This worked OK until the cloud API started getting unreliable.

So:

  1. I discovered that the dehumidifier restores its state when it recovers from a input power loss. So I put a zigbee plug on it and used that instead of the command line script to turn the device on or off.

The result is actually much better than any API could manage, because the sensor is now better placed in the room (being further away from the dehumidifier means I sample the room humidity and not the dehumidifier’s), and I can set the high and low water marks to my liking.