bm1549 / home-assistant-frigidaire

Custom component for the Frigidaire integration
MIT License
37 stars 11 forks source link

The "bin_full" attribute does not change status #76

Open spanek78 opened 1 month ago

spanek78 commented 1 month ago

Hi, this could possibly be an issue for some Frigodaire dehumidifiers which report the Full Bucket status. In the active integration, the attribute bin_full always remains "false", whilte the Frigidaire app reports the bucket full status correctly.

min_humidity: 35 max_humidity: 85 available_modes:

Forcing the value: _attrib["binfull"] = True inside humidifier.py (similairly to the action triggered by a real alert), never upateds the attribute either. Coud this mean that the value is somehow blocked from being updated? I am not 100% sure if the API is returning the expected data, but I will try to verify that as well Thank you for your comments!

jhemak commented 1 month ago

This used to work ... about a year back (#43). Hasn't worked since Feb of this year, unfortunately. Would be really great to have this attribute back if there is a way to make it work.

spanek78 commented 1 month ago

I veriified that API is returning the bucket full alert, and I got it to work by modifying one line inside humidifier.py:

attrib["bin_full"] = frigidaire.Alert.BUCKET_FULL in alerts ---- LINE REMOVED

Replace with this line:

attrib["bin_full"] = any(alert.get("code") == "BUCKET_FULL" for alert in alerts)

The API response has changed, and now it looks like this:

###APPLIANCE DETAILS###
{
    "targetHumidity": 45,
    "cleanAirMode": "ON",
    "applianceInfo": {
        "applianceType": "DH"
    },
    "displayLight": "DISPLAY_LIGHT_1",
    "uiLockMode": false,
    "applianceState": "RUNNING",
    "FilterState": "GOOD",
    "alerts": [
        {
            "severity": "FAULT",
            "acknowledgeStatus": "NOT_NEEDED",
            "code": "BUCKET_FULL"
        }
    ],

For that reason, we should be looking for a "code:" property inside alerts. It seems to be working now, the bin_full: attribute for dehumidifier in Home Assistant changed to "true" when the bucket was full.

jhemak commented 1 month ago

@spanek78 - I was really hoping this would do the trick for me, but mine still shows false even with this code change in place.

spanek78 commented 1 month ago

Hi @jhemak, did you restart HA after modifying the code? Could you also open This Frigidaire diagnostic site, enter your real username and password, and execute Runtime --> Run all? Do you see the "BUCKET_FULL" alert in the JSON response when the bucket is full?

jhemak commented 1 month ago

I did ... looks like my unit does not generate an alert when the bucket is full. Instead, the attribute "waterBucketLevel" changes from 0 to 1.

Incidentally, I also noticed that applianceState is always "RUNNING", even when the unit is idle. Do you see the same?