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.22k stars 2.5k forks source link

home assistant does not get notified of dryer connected on 0.14.0 #191

Open erpayo opened 1 month ago

erpayo commented 1 month ago

Describe the bug When turning on the dryer and selecting de hOn "program" home assistant keeps reporting dryer disconnected preventing to send commands to the dryer

To Reproduce Steps to reproduce the behavior:

  1. Turn on tumble dryer
  2. select hon "program"
  3. wait until dryer connects to wifi and shows "hon" on screen
  4. look into home assistant hon dryer and it remains disconnected

Expected behavior Home assistant dryer device connection status should say "connected"

Environment (please complete the following information):

Additional context Before updating to new version with push api it was working ok forcing a home assistant hon integration reload refreshes connection status and allows to device operation

Device Log

data:
  additional_data:
    dictionaryId: 203
    options: hybrid
  appliance:
    PK: user#eu-west-1:6ff1c98a-aa1e-47e7-8358-637e9c9963c1
    SK: app#xx-xx-xx-xx-xx-xx
    applianceId: xx-xx-xx-xx-xx-xx#1970-01-01T00:00:00.0Z
    applianceModelId: 1009
    applianceStatus: 1
    applianceTypeId: 8
    applianceTypeName: TD
    attributes:
      acuVersion: 0.0.0
      chipset: 1
      dictionaryId: 203
      eppParserSet: 1
      fwLabel: iotfw_epp
      idfVersion: 4.4.4
      kernelVersion: 10.4.3
      lang: it-IT
      uiVersion: 21.09.17
    brand: haier
    code: CF0674E0200
    connectivity: wifi|ble
    defaultWarrantyYears: 3
    eepromId: 41
    eepromName: no_eeprom
    enrollmentDate: 1970-01-01T00:00:00.0Z
    firstEnrollment: True
    firstEnrollmentTBC: True
    fwVersion: 5.15.0
    id: 1009
    lastUpdate: 1970-01-01T00:00:00.0Z
    macAddress: xx-xx-xx-xx-xx-xx
    modelName: HD90-A3959 INT
    nickName: Secadora
    purchaseDate: 1970-01-01T00:00:00.0Z
    sections:
      chatbot: True
      double_pairing_hidden: True
      ecoDelayStart: True
      snap_wash: True
    series: 959
    structure: heatpump
    topics:
      publish:
      subscribe:
        - $aws/events/presence/disconnected/xx-xx-xx-xx-xx-xx
        - $aws/events/presence/connected/xx-xx-xx-xx-xx-xx
        - haier/things/xx-xx-xx-xx-xx-xx/event/appliancestatus/update
        - haier/things/xx-xx-xx-xx-xx-xx/event/discovery/update
  attributes:
    active: True
    activity:
    commandHistory:
      command:
        ancillaryParameters:
          energyLabel: 4
          prPosition: 2
          programCluster: traditional
          programFamily: [dashboard|auto]
          programType: D
          remoteActionable: 1
          remoteVisible: 1
          suggestedLoadD: 4.5
          tumblingStatus: 0
        applianceOptions:
          opt1: anticrease
          opt2: dryingManager
          opt3: bestIroning
          opt4: hybrid
        applianceType: TD
        attributes:
          channel: mobileApp
          energyLabel: 0
          origin: standardProgram
        commandName: startProgram
        device:
          appVersion: 2.6.5
          deviceModel: pyhOn
          mobileId: homassistant
          mobileOs: android
          osVersion: 999
        macAddress: xx-xx-xx-xx-xx-xx
        parameters:
          airWashMode: 1
          airwashSprayTime: 0
          anionStatus: 0
          antiCreaseTime: 0
          buzzerDisabled: 1
          cloudProgId: 255
          cloudProgSrc: 2
          delayTime: 0
          delicateStatus: 0
          dryLevel: 13
          dryMode: 1
          dryTimeMM: 0
          fastDryStatus: 0
          ironRemindStatus: 1
          lockStatus: 0
          mitesRemovalStatus: 0
          onOffStatus: 1
          operationName: grDryCloudProg
          pause: 0
          prCode: 63
          programClass: 1
          sterilizationStatus: 0
          tempLevel: 3
          texture: 64
        programName: PROGRAMS.TD.HQD_SYNTHETICS
        timestamp: 1970-01-01T00:00:00.0Z
        transactionId: xx-xx-xx-xx-xx-xx_1970-01-01T00:00:00.0Z
      timestampAccepted: 1970-01-01T00:00:00.0Z
      timestampExecuted: 1970-01-01T00:00:00.0Z
    lastConnEvent:
      category: CONNECTED
      instantTime: 1970-01-01T00:00:00.0Z
      macAddress: xx-xx-xx-xx-xx-xx
      timestampEvent: 1711572986573
    parameters:
      airWashMode: 1
      airwashSprayTime: 0
      anionStatus: 0
      antiCreaseTime: 0
      buzzerDisabled: 1
      cloudProgId: 255
      cloudProgSrc: 2
      debugEnabled: 0
      delayTime: 0
      delicateStatus: 0
      doorStatus: 0
      dryLevel: 13
      dryMode: 1
      dryTimeMM: 55
      errors: 00
      fastDryStatus: 0
      forceDelete: 0
      highTransRate: 1
      ironRemindStatus: 0
      ironingStatus: 0
      lockStatus: 0
      machMode: 2
      message: 0
      mitesRemovalStatus: 0
      onOffStatus: 1
      pause: 0
      prCode: 63
      prPhase: 19
      programClass: 1
      programStats: ;a0;9;;3;;;;;;;;2;;;;;;;;;4
      remainingStandbyTime: 961
      remainingTimeMM: 35
      remoteCtrValid: 1
      statusSyncRate: 1440
      stdTransRate: 1
      sterilizationStatus: 0
      tempLevel: 3
      texture: 64
      transMode: 0
    pause: False
    programName: No Program
    resultCode: 0
  pauseProgram:
    parameters:
      pause: 1
  resumeProgram:
    parameters:
      pause: 0
  settings:
    custom:
      category: setConfig
    parameters:
      httpEndpoint: 0
      mqttEndpoint: 0
  startProgram:
    ancillaryParameters:
      energyLabel: 4
      prPosition: 2
      programCluster: traditional
      programFamily: [dashboard|auto]
      programType: D
      remoteActionable: 1
      remoteVisible: 1
      suggestedLoadD: 4.5
      tumblingStatus: 0
    custom:
      favourite: 1
      program: Sintéticos
    parameters:
      airWashMode: 1
      airwashSprayTime: 0
      anionStatus: 0
      antiCreaseTime: 0
      buzzerDisabled: 1
      cloudProgId: 255
      cloudProgSrc: 2
      delayTime: 450
      delicateStatus: 0
      dryLevel: 13
      dryMode: 1
      dryTimeMM: 0
      fastDryStatus: 0
      ironRemindStatus: 1
      lockStatus: 0
      mitesRemovalStatus: 0
      onOffStatus: 1
      operationName: grDryCloudProg
      pause: 0
      prCode: 63
      programClass: 1
      sterilizationStatus: 0
      tempLevel: 3
      texture: 64
  statistics:
    drumCleaning:
      count: 0
      percentage: 0
      remaining: 100
      tot: 100
    filterCleaning:
      count: 0
      percentage: 0
      remaining: 15
      tot: 15
    lastCheckup: None
    loadingPercentage:
    mostUsedPrograms:
      - count: 142
        prCode: 63
        prPosition: 2
        programName: PROGRAMS.TD.HQD_SYNTHETICS
        programType: D
      - count: 17
        prCode: 63
        prPosition: 2
        programName: PROGRAMS.TD.IOT_DRY_SYNTHETICS
        programType: D
      - count: 3
        prCode: 66
        prPosition: 5
        programName: PROGRAMS.TD.HQD_BED_SHEETS
        programType: D
    programsCounter: 177
    resultCode: 0
    sprayArmsCleaning: 0
    temperatureUsage:
  stopProgram:
    parameters:
      returnStandby: 1
commands:
  settings:
    category:
      - setConfig
  startProgram:
    antiCreaseTime:
      max: 360
      min: 0
      step: 360
    delayTime:
      max: 1410
      min: 0
      step: 30
    dryLevel:
      max: 14
      min: 12
      step: 1
    dryTimeMM:
      - 15
      - 20
      - 25
      - 30
      - 35
      - 40
    energyLabel:
      max: 5
      min: 1
      step: 1
    program:
      - Algodón
      - Ropa mixta
      - Sintéticos
      - Sábanas
      - hqd_baby_care
      - hqd_bath_towel
      - hqd_bed_sheets
      - hqd_bulky
      - hqd_casual
      - hqd_cold_wind_timing
      - hqd_cotton
      - hqd_curtain
      - hqd_delicate
      - hqd_duvet
      - hqd_feather
      - hqd_hot_wind_timing
      - hqd_hygienic
      - hqd_i_refresh
      - hqd_jacket
      - hqd_jeans
      - hqd_mix
      - hqd_night_dry
      - hqd_outdoor
      - hqd_precious_cure
      - hqd_quick_30
      - hqd_quick_dry
      - hqd_quilt
      - hqd_refresh
      - hqd_shirt
      - hqd_shoes
      - hqd_silk
      - hqd_sports
      - hqd_synthetics
      - hqd_timer
      - hqd_underwear
      - hqd_wool
      - hqd_working_suit
      - iot_dry_baby
      - iot_dry_backpacks
      - iot_dry_bathrobe
      - iot_dry_bed_linen
      - iot_dry_cotton
      - iot_dry_cuddly_toys
      - iot_dry_curtains
      - iot_dry_delicates
      - iot_dry_denim_jeans
      - iot_dry_down_jacket
      - iot_dry_duvet
      - iot_dry_gym_fit
      - iot_dry_lingerie
      - iot_dry_mixed
      - iot_dry_pet_accessories
      - iot_dry_pet_hair_removal
      - iot_dry_rapid_30
      - iot_dry_rapid_59
      - iot_dry_shirts
      - iot_dry_swimsuits_and_bikinis
      - iot_dry_synthetics
      - iot_dry_tablecloths
      - iot_dry_technical_fabrics
      - iot_dry_wool
    programFamily:
      - wmsync
      - guided
      - voice
      - care
      - auto
      - wmsync_guided_voice_care_auto
    sterilizationStatus:
      max: 1
      min: 0
      step: 1
    tempLevel:
      max: 4
      min: 1
      step: 1
    tumblingStatus:
      max: 1
      min: 0
      step: 1
versions:
  hon: 0.14.0-beta.3
  pyhOn: 0.17.1

Data Archive td_1009.zip

Andre0512 commented 1 month ago

Hi, thanks for reporting! Should be fixed in the latest beta version :slightly_smiling_face:

erpayo commented 1 month ago

installed beta 6, almost same behaviour: had to manually reload integration in order to sensor entities to get updated.

Integration did not get notified of connected status, but home assistant was able to send commands to start the drying cycle. With beta 3 it was not able to send commands.

erpayo commented 1 month ago

Hi, thanks for reporting! Should be fixed in the latest beta version 🙂

same behaviour with beta 6

FYI: the dryer is connected with DHCP with a dynamic address and I have two ISPs with a gateway doing load balancing. One of the internet connections uses CG-NAT and the other does not but the IP address on the non cgnat connection may change from time to time.

drudgebg commented 3 weeks ago

Hi, thanks for reporting! Should be fixed in the latest beta version 🙂

same behaviour with beta 6

FYI: the dryer is connected with DHCP with a dynamic address and I have two ISPs with a gateway doing load balancing. One of the internet connections uses CG-NAT and the other does not but the IP address on the non cgnat connection may change from time to time.

I have same behavior with simple network and static WAN IP address.