albaintor / homeassistant_electrolux_status

Get the status from your Electrolux Care devices
MIT License
90 stars 23 forks source link

Water usage missing after update #84

Closed bipsendk closed 3 weeks ago

bipsendk commented 1 month ago

On my AEG washer series 8000, I previously had water usage - this has disappeared with the update to 2.0.

Is it because it no longer is provided by the API ?

Currently running on v2.0.3

bipsendk commented 1 month ago

Was looking at the issue at https://github.com/albaintor/homeassistant_electrolux_status/issues/83 - but not sure how to get that piece of code executed on HomeAssistant - unless it needs to be done from a separate host.

bipsendk commented 1 month ago

Tried newer version of Pythin on my Windows PC - got this:

get_appliances_list :
 [
  {
    "applianceId": "914550706_00:03600037-443E0706D6DD",
    "applianceData": {
      "applianceName": "vaskemaskine",
      "created": "2024-09-08T08:33:31.503Z",
      "modelName": "WM"
    },
    "properties": {
      "desired": {},
      "reported": {
        "timeToEnd": 900,
        "doorState": "CLOSED",
        "displayLight": "DISPLAY_LIGHT_0",
        "miscellaneous": {
          "defaultSoftPlus": false
        },
        "applianceUiSwVersion": "U1C0840z",
        "applianceTotalWorkingTime": 18720000,
        "remoteControl": "ENABLED",
        "language": "ENGLISH",
        "fCMiscellaneousState": {
          "detergentExtradosage": 40,
          "tankAReserve": true,
          "tankBReserve": true,
          "softenerExtradosage": 20,
          "optisenseResult": 2000,
          "waterUsage": 0,
          "tankADetLoadForNominalWeight": 0,
          "tankBDetLoadForNominalWeight": 0
        },
        "cyclePhase": "RINSE",
        "endOfCycleSound": "NO_SOUND",
        "startTime": -1,
        "userSelections": {
          "extraRinseNumber": "PLUS_2_RINSE",
          "analogTemperature": "60_CELSIUS",
          "steamValue": "STEAM_OFF",
          "programUID": "EXPRESS_PR_OKOPOWER",
          "analogSpinSpeed": "1600_RPM",
          "anticreaseNoSteam": false,
          "adTankASel": "AUTODOSE_DETERGENT_DUAL_OFF",
          "preWashPhase": false,
          "adTankBSel": "AUTODOSE_SOFTENER_OFF",
          "adFineTuneSoftLevel": "FINE_TUNE_SOFT_NOT_AVAILABLE",
          "timeManagerLevel": "TIME_MANAGER_LEV_4",
          "anticreaseWSteam": false,
          "nightCycle": false,
          "adFineTuneDetLevel": "FINE_TUNE_DET_LEV_3",
          "wmEconomy": false,
          "rinseHold": false,
          "intensive": false,
          "tcSensor": false,
          "EWX1493A_preWashPhase": false,
          "EWX1493A_rinseHold": false,
          "EWX1493A_wmEconomy": false,
          "EWX1493A_nightCycle": false,
          "EWX1493A_tcSensor": false,
          "EWX1493A_anticreaseNoSteam": false,
          "EWX1493A_anticreaseWSteam": false,
          "EWX1493A_intensive": false,
          "EWX1493A_stain": false,
          "EWX1493A_pod": false,
          "EWX1493A_wetMode": false,
          "EWX1493A_dryMode": false,
          "EWX1493A_steamMode": false,
          "EWX1493A_easyIron": false,
          "EWX1493A_ultraMix": false
        },
        "defaultExtraRinse": "EXTRA_RINSE_1",
        "waterHardness": "STEP_4",
        "totalWashingTime": 18720000,
        "applianceInfo": {
          "applianceType": "WM"
        },
        "doorLock": "ON",
        "uiLockMode": false,
        "washingNominalLoadWeight": 5000,
        "totalWashCyclesCount": 3923,
        "waterSoftenerMode": "WASH_ONLY",
        "fcOptisenseLoadWeight": 65535,
        "applianceState": "RUNNING",
        "applianceMode": "NORMAL",
        "applianceMainBoardSwVersion": "WL13A021",
        "totalCycleCounter": 3923,
        "measuredLoadWeight": 65535,
        "alerts": [],
        "networkInterface": {
          "otaState": "IDLE",
          "swVersion": "v5.3.1",
          "linkQualityIndicator": "GOOD",
          "swAncAndRevision": "S00006962A",
          "niuSwUpdateCurrentDescription": "A07491702B-S00006962A"
        },
        "applianceCareAndMaintenance0": {
          "1": {
            "occured": false,
            "threshold": 60
          },
          "2": {
            "occured": false,
            "threshold": 80
          },
          "3": {
            "occured": false,
            "threshold": 80
          },
          "4": {
            "occured": false,
            "threshold": 240
          },
          "5": {
            "occured": false,
            "threshold": 240
          }
        },
        "applianceCareAndMaintenance1": {
          "6": {
            "occured": false,
            "threshold": 0
          },
          "7": {
            "occured": false,
            "threshold": 0
          },
          "8": {
            "occured": false,
            "threshold": 0
          },
          "9": {
            "occured": false,
            "threshold": 0
          },
          "10": {
            "occured": false,
            "threshold": 0
          }
        },
        "applianceCareAndMaintenance2": {
          "11": {
            "occured": false,
            "threshold": 0
          }
        },
        "applianceCareAndMaintenance3": {
          "16": {
            "occured": false,
            "threshold": 0
          }
        },
        "autoDosing": {
          "adTankBDetStandardDose": 90,
          "adLocalFineTuning": false,
          "adTankAConfiguration": "DETERGENT_DUAL",
          "adTankBSoftStandardDose": 20,
          "adTankBConfiguration": "SOFTENER",
          "adTankADetStandardDose": 65
        },
        "cycleSubPhase": "NOT_AVAILABLE",
        "connectivityState": "connected"
      },
      "metadata": {}
    },
    "status": "enabled",
    "connectionState": "connected"
  }
]
Traceback (most recent call last):
  File "C:\temp\aeg.py", line 33, in <module>
    asyncio.run(main())
    ~~~~~~~~~~~^^^^^^^^
  File "C:\Users\BRIP\AppData\Local\Programs\Python\Python313\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "C:\Users\BRIP\AppData\Local\Programs\Python\Python313\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "C:\Users\BRIP\AppData\Local\Programs\Python\Python313\Lib\asyncio\base_events.py", line 721, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "C:\temp\aeg.py", line 15, in main
    info = await client.get_appliance_status(appliances[0].get("applianceId"))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'OneAppApi' object has no attribute 'get_appliance_status'. Did you mean: 'get_appliance_state'?
bipsendk commented 1 month ago

Optisense result sensor also no longer present - even though it seems to be present in the JSON output.

Not sure if it should be read here:

    "fCMiscellaneousState": {
      "detergentExtradosage": 40,
      "tankAReserve": true,
      "tankBReserve": true,
      "softenerExtradosage": 20,
      "optisenseResult": 2000,
      "waterUsage": 0,
      "tankADetLoadForNominalWeight": 0,
      "tankBDetLoadForNominalWeight": 0
    },

I will check up on the sensor for waterUsage - once the machine has finished the current cycle.

bipsendk commented 1 month ago

After finished cycle:

get_appliances_list :
 [
  {
    "applianceId": "914550706_00:03600037-443E0706D6DD",
    "applianceData": {
      "applianceName": "vaskemaskine",
      "created": "2024-09-08T08:33:31.503Z",
      "modelName": "WM"
    },
    "properties": {
      "desired": {},
      "reported": {
        "timeToEnd": 0,
        "doorState": "CLOSED",
        "displayLight": "DISPLAY_LIGHT_0",
        "miscellaneous": {
          "defaultSoftPlus": false
        },
        "applianceUiSwVersion": "U1C0840z",
        "applianceTotalWorkingTime": 18734400,
        "remoteControl": "NOT_SAFETY_RELEVANT_ENABLED",
        "language": "ENGLISH",
        "fCMiscellaneousState": {
          "detergentExtradosage": 40,
          "tankAReserve": true,
          "tankBReserve": true,
          "softenerExtradosage": 20,
          "optisenseResult": 3300,
          "waterUsage": 67,
          "tankADetLoadForNominalWeight": 0,
          "tankBDetLoadForNominalWeight": 0
        },
        "cyclePhase": "UNAVAILABLE",
        "endOfCycleSound": "NO_SOUND",
        "startTime": -1,
        "userSelections": {
          "extraRinseNumber": "PLUS_2_RINSE",
          "analogTemperature": "40_CELSIUS",
          "steamValue": "STEAM_OFF",
          "programUID": "EXPRESS_PR_OKOPOWER",
          "analogSpinSpeed": "1600_RPM",
          "anticreaseNoSteam": false,
          "adTankASel": "AUTODOSE_DETERGENT_DUAL_OFF",
          "preWashPhase": false,
          "adTankBSel": "AUTODOSE_SOFTENER_OFF",
          "adFineTuneSoftLevel": "FINE_TUNE_SOFT_NOT_AVAILABLE",
          "timeManagerLevel": "TIME_MANAGER_LEV_4",
          "anticreaseWSteam": false,
          "nightCycle": false,
          "adFineTuneDetLevel": "FINE_TUNE_DET_LEV_3",
          "wmEconomy": false,
          "rinseHold": false,
          "intensive": false,
          "tcSensor": false,
          "EWX1493A_preWashPhase": false,
          "EWX1493A_rinseHold": false,
          "EWX1493A_wmEconomy": false,
          "EWX1493A_nightCycle": false,
          "EWX1493A_tcSensor": false,
          "EWX1493A_anticreaseNoSteam": false,
          "EWX1493A_anticreaseWSteam": false,
          "EWX1493A_intensive": false,
          "EWX1493A_stain": false,
          "EWX1493A_pod": false,
          "EWX1493A_wetMode": false,
          "EWX1493A_dryMode": false,
          "EWX1493A_steamMode": false,
          "EWX1493A_easyIron": false,
          "EWX1493A_ultraMix": false
        },
        "defaultExtraRinse": "EXTRA_RINSE_1",
        "waterHardness": "STEP_4",
        "totalWashingTime": 18734400,
        "applianceInfo": {
          "applianceType": "WM"
        },
        "doorLock": "OFF",
        "uiLockMode": false,
        "washingNominalLoadWeight": 5000,
        "totalWashCyclesCount": 3927,
        "waterSoftenerMode": "WASH_ONLY",
        "fcOptisenseLoadWeight": 65535,
        "applianceState": "END_OF_CYCLE",
        "applianceMode": "NORMAL",
        "applianceMainBoardSwVersion": "WL13A021",
        "totalCycleCounter": 3927,
        "measuredLoadWeight": 65535,
        "alerts": [],
        "networkInterface": {
          "otaState": "IDLE",
          "swVersion": "v5.3.1",
          "linkQualityIndicator": "VERY_GOOD",
          "swAncAndRevision": "S00006962A",
          "niuSwUpdateCurrentDescription": "A07491702B-S00006962A"
        },
        "applianceCareAndMaintenance0": {
          "1": {
            "occured": true,
            "threshold": 60
          },
          "2": {
            "occured": false,
            "threshold": 80
          },
          "3": {
            "occured": false,
            "threshold": 80
          },
          "4": {
            "occured": false,
            "threshold": 240
          },
          "5": {
            "occured": false,
            "threshold": 240
          }
        },
        "applianceCareAndMaintenance1": {
          "6": {
            "occured": false,
            "threshold": 0
          },
          "7": {
            "occured": false,
            "threshold": 0
          },
          "8": {
            "occured": false,
            "threshold": 0
          },
          "9": {
            "occured": false,
            "threshold": 0
          },
          "10": {
            "occured": false,
            "threshold": 0
          }
        },
        "applianceCareAndMaintenance2": {
          "11": {
            "occured": false,
            "threshold": 0
          }
        },
        "applianceCareAndMaintenance3": {
          "16": {
            "occured": false,
            "threshold": 0
          }
        },
        "autoDosing": {
          "adTankBDetStandardDose": 90,
          "adLocalFineTuning": false,
          "adTankAConfiguration": "DETERGENT_DUAL",
          "adTankBSoftStandardDose": 20,
          "adTankBConfiguration": "SOFTENER",
          "adTankADetStandardDose": 65
        },
        "cycleSubPhase": "NOT_AVAILABLE",
        "connectivityState": "connected"
      },
      "metadata": {}
    },
    "status": "enabled",
    "connectionState": "connected"
  }
]
Traceback (most recent call last):
  File "C:\temp\aeg.py", line 33, in <module>
    asyncio.run(main())
    ~~~~~~~~~~~^^^^^^^^
  File "C:\Users\BRIP\AppData\Local\Programs\Python\Python313\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "C:\Users\BRIP\AppData\Local\Programs\Python\Python313\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "C:\Users\BRIP\AppData\Local\Programs\Python\Python313\Lib\asyncio\base_events.py", line 721, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "C:\temp\aeg.py", line 15, in main
    info = await client.get_appliance_status(appliances[0].get("applianceId"))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'OneAppApi' object has no attribute 'get_appliance_status'. Did you mean: 'get_appliance_state'?
kingy444 commented 1 month ago

that ones a good start - but you can also just grab the diagnostics file for the integration 😄 this is all built into there now too 🛩️

albaintor commented 3 weeks ago

I have added a white list against the existing blacklist that filtered this attribute. It should be fixed in the next release