dlarrick / pykumo

Python library to interact with Mitsubishi KumoCloud devices via their local API
MIT License
33 stars 12 forks source link

Humidity not available for all units? #19

Closed dmcc closed 2 years ago

dmcc commented 2 years ago

This is more of a question than a bug, but hope it's close enough to the right forum.

When I access the HVAC states via the Kumo Cloud Android app, I can see relative humidity values. It looks like PyKumo can in theory read humidity values, but I don't see anything about in them in its output (or in the various responses from the devices in update_status -- happy to share these if they'd be useful). The Kumo web app doesn't show them either.

Is this a quirk of my HVAC units? (I have two different Mitsubishi units)

dmcc commented 2 years ago

Hey, I actually posted too soon. On a whim, I changed the request to be just {"c":{}} and found that the humidity is part of the mhk2 -> status -> indoorHumid:

[...]
        'mhk2': {'auto': {'coolSetpoint': None,
                          'heatSetpoint': None,
                          'owner': 'none',
                          'status': 'inactive'},
                 'connected': {'indoorAir': False,
                               'indoorAirBattery': 'unset',
                               'outdoorAir': False,
                               'outdoorAirBattery': 'unset',
                               'thermostat': True,
                               'thermostatBattery': 'ok'},
                 'dr': {'event': 'none', 'override': False},
                 'hold': {'adapter': {'cancelMHK2': False, 'endTime': 0},
                          'mhk2': {'cancelAdapter': False, 'endTime': 0}},
                 'info': {'firmware': '1.0.1',
                          'model': 'MHK2',
                          'serial': '<scrubbed by dmcc>'},
                 'schedule': {'enabled': 'disabled', 'owner': 'adapter'},
                 'status': {'indoorHumid': 48,
                            'outdoorHumid': None,
                            'outdoorTemp': None}},
[...]

Would it make sense to convert this into a pseudo-sensor entry in PyKumo._sensors so get_current_humidity() will pick it up?

dlarrick commented 2 years ago

Yup! That seems like exactly what's needed. Nice that newer indoor units have humidity sensors. Make that change in your local system and test it out, then make a PR.

dmcc commented 2 years ago

Thanks! Tested PR https://github.com/dlarrick/pykumo/pull/20 on my setup and it seems to be working as expected.

cjkrolak commented 2 years ago

which MK2 model provides indoor humidity readings?

dmcc commented 2 years ago

Good question. The only information my HVAC installer gave me was that it was an MHK2 -- seems to be something like this (which mentions humidity sensors).

dlarrick commented 2 years ago

FYI I hope to review this change this weekend.

cjkrolak commented 2 years ago

I think this humidity value is being reported by the MHK2 remote thermostat accessory, the head unit itself does not report humidity.

Here's a dump from my kumocloud where I don't have an mhk2 installed: {code} 'mhk2Settings': { 'auto': { 'coolSetpoint': None, 'heatSetpoint': None, 'owner': 'none', 'status': 'inactive'}, 'connected': { 'indoorAir': False, 'indoorAirBattery': 'unset', 'outdoorAir': False, 'outdoorAirBattery': 'unset', 'thermostat': False, 'thermostatBattery': 'unset'}, 'dr': { 'event': 'none', 'override': False}, 'hold': { 'adapter': { 'cancelMHK2': False, 'endTime': 0}, 'mhk2': { 'cancelAdapter': False, 'endTime': 0}}, 'info': { 'firmware': '', 'model': '', 'serial': ''}, 'schedule': { 'enabled': 'disabled', 'owner': 'adapter'}, 'status': { 'indoorHumid': None, 'outdoorHumid': None, 'outdoorTemp': 0}}, {code}

dlarrick commented 2 years ago

If this works now please close this issue.

dmcc commented 2 years ago

Confirmed it's working with the new release. Thank you! 😀