Andre0512 / hon

Home Assistant integration for Haier hOn: support for Haier/Candy/Hoover home appliances like washing machines and air conditioners in 28 languages.
MIT License
1.29k stars 2.47k forks source link

Add support for XIB 3B2SFS-80 dishwasher #21

Closed finalbillybong closed 1 year ago

finalbillybong commented 1 year ago

This error originated from a custom integration.

Logger: custom_components.hon.button Source: custom_components/hon/button.py:83 Integration: Haier hOn (documentation, issues) First occurred: 18:33:57 (1 occurrences) Last logged: 18:33:57

data:
  appliance:
    applianceId: 12-34-56-78-90-ab#2022-07-02T13:40:31Z
    applianceModelId: 874
    applianceStatus: 1
    applianceTypeId: 9
    applianceTypeName: DW
    attributes:
      acuVersion: 0.0.0
      chipset: ESP32D0WDQ5
      dictionaryId: 292
      lang: it-IT
      uiVersion: 5.5.0
    brand: haier
    connectivity: wifi|ble
    eepromId: 812
    eepromName: 70010344
    enrollmentDate: 2022-07-02T13:40:31.270Z
    firstEnrollment: False
    firstEnrollmentTBC: False
    fwVersion: 5.5.0
    id: 874
    lastUpdate: 2022-07-02T13:40:42Z
    macAddress: 12-34-56-78-90-ab
    modelName: XIB 3B2SFS-80
    purchaseDate: 2022-07-01T23:00:00.000Z
    sections:
      chatbot: True
      ecoDelayStart: True
    series: haier2021
    topics:
      publish:
      subscribe:
        - $aws/events/presence/disconnected/12-34-56-78-90-ab
        - $aws/events/presence/connected/12-34-56-78-90-ab
        - haier/things/12-34-56-78-90-ab/event/appliancestatus/update
        - haier/things/12-34-56-78-90-ab/event/discovery/update
  attributes:
    activity:
    commandHistory:
      command:
        ancillaryParameters:
          ecoDelayStart: 1
          ecoIndex: 3
          ecoIndexOpt3: undefined
          ecoIndexOpt4: undefined
          ecoIndexOpt5: undefined
          energyLabel: 3
          functionalId: 5
          programFamily: [dashboard|guided]
          programRules: [object Object]
          programType: WD
          remainingTime: 125
          remoteActionable: 1
          remoteVisible: 1
          soilSensor: 1
          suggestedLoadD: 13
          temp: 55
          waterEfficiency: 3
          waterSaving: 68
        applianceOptions:
          opt1: threeInOne
          opt2: ecoExpress
          opt3: halfLoad
          opt4: extraDry
          opt5: openDoor
          opt6: addDish
        applianceType: DW
        attributes:
          channel: mobileApp
          energyLabel: 3
          origin: lastProgram
          prStr: Auto Sensor
        commandName: startProgram
        device:
          appVersion: 1.54.9
          deviceModel: iPhone15,2
          mobileId: 80DC0C44-2C44-49A6-81B0-1190B8690656
          mobileOs: ios
          osVersion: 16.3.1
        macAddress: 12-34-56-78-90-ab
        parameters:
          checkUpStatus: 0
          delayTime: 0
          dryLevel: 0
          extraDry: 0
          halfLoad: 0
          onOffStatus: 1
          openDoor: 0
          prCode: 16
          prPosition: 10
        programName: PROGRAMS.DW.AUTO_SENSOR_SOIL
        timestamp: 2023-04-12T13:10:19.208Z
        transactionId: 12-34-56-78-90-ab_2023-04-12T13:10:19.208Z
      timestampAccepted: 2023-04-12T13:10:22.1Z
      timestampExecuted: 2023-04-12T13:10:23.1Z
    lastConnEvent:
      category: CONNECTED
      instantTime: 2023-04-12T07:36:32Z
      macAddress: 12-34-56-78-90-ab
      timestampEvent: 1681284992330
    parameters:
      addDish: 1
      addDishStatus: 0
      armStatus: 0
      buzzerDisabled: 0
      cameraStatus: 0
      checkUpStatus: 0
      delayTime: 0
      doorStatus: 1
      ecoExpress: 0
      errors: 00
      extraDry: 0
      halfLoad: 0
      lang: 2
      lastCycleSavingStatus: 0
      macAddressCamera:
      machMode: 7
      openDoor: 0
      photoSessionStatus: 0
      prCode: 16
      prCodeSuggest: 0
      prPhase: 5
      prPosition: 10
      program1: 198
      program10: 18
      program11: 0
      program12: 0
      program13: 0
      program14: 0
      program15: 0
      program16: 0
      program17: 0
      program18: 0
      program19: 0
      program2: 0
      program20: 0
      program21: 0
      program3: 0
      program4: 86
      program5: 0
      program6: 0
      program7: 0
      program8: 6
      program9: 5
      remainingTimeMM: 0
      remoteCtrValid: 1
      rinseAidStatus: 0
      saltStatus: 1
      specialAutomaticStatus: 0
      temp45to55: 154
      temp60to65: 92
      temp70to75: 5
      threeInOne: 0
      waterHard: 4
    resultCode: 0
  startProgram:
    checkUpStatus: 0
    delayTime: 0
    extraDry: 0
    halfLoad: 0
    onOffStatus: 1
    openDoor: 0
    prCode: 10
    prPosition: 4
    prStr: 0
    program: iot_dreft_quick_cycle
    waterHard: 4
  statistics:
    mostUsedPrograms:
      - count: 93
        prCode: 8
        prPosition: 1
        programName: PROGRAMS.DW.ECO_BLDC
      - count: 55
        prCode: 10
        prPosition: 4
        programName: PROGRAMS.DW.IOT_FAIRY_QUICK_CYCLE
      - count: 20
        prCode: 16
        prPosition: 10
        programName: PROGRAMS.DW.AUTO_SENSOR_SOIL
      - count: 3
        prCode: 10
        prPosition: 4
        programName: PROGRAMS.DW.RAPID_59
      - count: 2
        prCode: 3
        prPosition: 8
        programName: PROGRAMS.DW.INTENSIVE_RAPID
    mostUsedRecipes:
    programsCounter: 149
    temperatureUsage:
      temp45to55: 61
      temp60to65: 36
      temp70to75: 2
  stopProgram:
    onOffStatus: 0 commands:
  startProgram:
    delayTime:
      max: 1410
      min: 0
      step: 30
    program:
      - auto_sensor_soil
      - auto_universal_plus_soil
      - auto_universal_soil
      - dishwasher_care
      - eco_bldc
      - gentle_wash
      - glassware
      - hygiene_plus
      - intensive_rapid
      - iot_auto_universal_soil
      - iot_auto_wash_soil
      - iot_baby_care
      - iot_breakfast
      - iot_checkup
      - iot_china_crystals
      - iot_classe_a_59
      - iot_cocktail_glasses_soil
      - iot_daily_care_soil
      - iot_delicate
      - iot_dinner_for_two_soil
      - iot_dreft_quick_cycle
      - iot_eco_bldc
      - iot_extra_hygiene
      - iot_fairy_quick_cycle
      - iot_happy_hour
      - iot_party_soil
      - iot_pizza_menu_soil
      - iot_plastic_tupperware
      - iot_porcelain
      - iot_pot_&_pans_soil
      - iot_power_mix_wash_soil
      - iot_prewash
      - iot_pyrex_and_glassware
      - iot_rapid_29
      - iot_rapid_39
      - iot_single
      - iot_steam
      - iot_super_flash
      - iot_super_wash
      - iot_turbopower
      - iot_wok_grids_maxi_pans_soil
      - prewash
      - rapid_29
      - rapid_39
      - rapid_59
      - steam_plus
      - ultra_silence
    waterHard:
      max: 7
      min: 0
      step: 1
  stopProgram:

If I can provide any other info, please let me know

Benriverato commented 1 year ago

Hi, Add too for a Dishwaher XIB 6B2D3FB

Andre0512 commented 1 year ago

Hi, I'll take a look at it at the weekend 👍 @alexduf also announced in #16 that he's working on a dish washer integration. Did you get to it and can you already help us with this @alexduf? 🙂

Andre0512 commented 1 year ago

Hey, I released a first beta version with dish washer support, please try v0.6.0-beta.5 :slightly_smiling_face:

finalbillybong commented 1 year ago

Yes sure thing. Will test tomorrow.

Thanks so much!

finalbillybong commented 1 year ago

OK so I had a little play. Sensors show up fine and seem to work OK.

The switch to start the program returns and error when flipped: ‘Type is not JSON sizeable: HonParamterFixed’ and does not start the dishwasher.

if I select a program from the drop down it then vanished from the list and other previously not available programs show up…. I can do this until only 4 of the possible programs remain on the list.

Thanks again for all your work on this.

Andre0512 commented 1 year ago

Thanks for testing, I could fix these two issues. Please test v0.6.0-beta.7

Benriverato commented 1 year ago

I've upgraded to Beta7, I see a device and 20 entities... It's amazing. I have not been able to test it yet, but I have programmed an automation using these entities so that when I press an external button, if I am in a Eco electricity period, it automatically goes into the appropriate mode and starts (without touching a single button on the dishwasher). And if it is an expensive period, it is expected to change and start it. All this supported by a voice over from Alexa that tells you if it does one thing or another. It's a magnificent advance... great job!!

alexduf commented 1 year ago

Hey sorry for the slow reply I'm afraid my time is scarce at the moment, no I haven't had a chance to work on it, but I'm very pleased to see other people working on it, thanks you very much. 🙏

I can also confirm that with a XIB 6B2D3FB I can see a bunch of sensors, configurations and one control. I haven't played with it but will report back on a new thread if need be

Benriverato commented 1 year ago

I have This error when start program and change it.

Logger: homeassistant.components.automation.pulsador_lavavajillas Source: custom_components/hon/select.py:149 Integration: Automatización (documentation, issues) First occurred: 14:32:55 (3 occurrences) Last logged: 14:32:55

Pulsador Lavavajillas: If at step 1: Error executing script. Unexpected error for device at pos 1: 'startProgram.program'
Pulsador Lavavajillas: Error executing script. Unexpected error for if at pos 1: 'startProgram.program'
While executing automation automation.pulsador_lavavajillas
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 452, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 693, in _async_device_step
    await device_action.async_call_action_from_config(
  File "/usr/src/homeassistant/homeassistant/components/device_automation/action.py", line 71, in async_call_action_from_config
    await platform.async_call_action_from_config(hass, config, variables, context)
  File "/usr/src/homeassistant/homeassistant/components/select/device_action.py", line 110, in async_call_action_from_config
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1820, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1857, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 216, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 798, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 977, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 838, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/select/__init__.py", line 106, in async_select_option
    await entity.async_select_option(option)
  File "/config/custom_components/hon/select.py", line 145, in async_select_option
    await self.coordinator.async_request_refresh()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 200, in async_request_refresh
    await self._debounced_refresh.async_call()
  File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 89, in async_call
    await task
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 226, in async_refresh
    await self._async_refresh(log_failures=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 341, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 142, in async_update_listeners
    update_callback()
  File "/config/custom_components/hon/select.py", line 149, in _handle_coordinator_update
    setting = self._device.settings[self.entity_description.key]
KeyError: 'startProgram.program'
Andre0512 commented 1 year ago

Hey, I will fix this soon 👍

Andre0512 commented 1 year ago

Not sure how this can occur. Do I understand you right, you start program A and while running program A, you wanna change the program select to program B?

Benriverato commented 1 year ago

Hi,

the error occurs on any mode change. The list of modes is very long. I can see several modes for example for ECO , which are eco_bldc, iot_eco_bldc, in total a list of 47 modes.

This error is when you do an automation and I press a button that launches an authorization, in it I change to the eco program and then switch to turning on the dishwasher.

finalbillybong commented 1 year ago

Thanks for testing, I could fix these two issues. Please test v0.6.0-beta.7

Hey sorry for the slow reply. I’ve tested this and it works brilliantly. Thank you.

Andre0512 commented 1 year ago

@Benriverato do you use the latest version? (Install v0.6.0-beta.7 and restart) I can see this error also in the beta.5 logs, but since I upgraded to beta.7 it doesn't occur anymore :thinking:

Benriverato commented 1 year ago

@Benriverato do you use the latest version? (Install v0.6.0-beta.7 and restart) I can see this error also in the beta.5 logs, but since I upgraded to beta.7 it doesn't occur anymore 🤔

@Andre0512 I just updated to beta7, but before testing I have to solve a problem I have with the Wifi connection, I can't get the dishwasher to maintain the connection. And it is 2 meters from a 2.4G wifi router. I don't know what could be happening.

I'm going to remove the device from the Hon app and pair it from 0. I'll try like this

Benriverato commented 1 year ago

Nothing, I lose connectivity as soon as the dishwasher turns off. I have looked at the configuration of the router, I have no problems with any other device ( 25 ). I follow the steps from adding the device in the Hon App, it connects perfectly, but then it loses the connection. Can someone show me the steps? It is as if the connection was not recorded. My steps are: 1º-. I press ON for 3 sec (until it turns on). 2nd-. I press P 3 Sec (Remote Control) 3rd-. I press Deferred 3 sec I establish connection. In the app it tells me that everything went well and I see it as connected. When the dishwasher turns off (Automatically, I understand that due to inactive time), it loses the connection.

Andre0512 commented 1 year ago

@Benriverato sounds like a problem of your appliance, I don't how I can help you with this. I can tell you that my washing machine also loose the connection after a while when I turn it off, this should be normal. The integration works for others, so I close this issue and release a stable version. But I leave the comments open, maybe someone faces the same pairing issues and could help you.

Benriverato commented 1 year ago

Hi @Andre0512 I have solved the connection problems, for now I can say that the mode change and the rest work correctly. Thank you for your work

Andre0512 commented 1 year ago

@Benriverato Nice, thank you! 🙂