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.23k stars 2.49k forks source link

Add fan speed setting for Haier AC in HASS. #144

Closed NoUsername10 closed 3 months ago

NoUsername10 commented 4 months ago

Is your feature request related to a problem? Please describe. No

Describe the solution you'd like Possibility to change the fan speed of the indoor AC unit as in hOn app. Unit is AS25PBAHRA and AS35PBAHRA.

Fan speed

Device Log

data:
  additional_data:
    dictionaryId: 181
  appliance:
    PK: user#
    SK: app#xx-xx-xx-xx-xx-xx
    SK_Secondary: AC#selfClean56#2024-03-10
    applianceId: xx-xx-xx-xx-xx-xx#1970-01-01T00:00:00.0Z
    applianceModelId: 343
    applianceStatus: 1
    applianceTypeId: 11
    applianceTypeName: AC
    attributes:
      acuVersion: 0.0.0
      chipset: 1
      dictionaryId: 181
      eppParserSet: 1
      fwLabel: iotfw_epp
      idfVersion: 4.4.4
      kernelVersion: 10.4.3
      lang: it-IT
      uiVersion: 06.26.00
    brand: haier
    code: AABF10E0000
    connectivity: wifi|ble
    eepromId: 41
    eepromName: no_eeprom
    enrollmentDate: 1970-01-01T00:00:00.0Z
    firstEnrollment: False
    firstEnrollmentTBC: False
    fwVersion: 5.15.0
    id: 343
    lastUpdate: 1970-01-01T00:00:00.0Z
    macAddress: xx-xx-xx-xx-xx-xx
    modelName: AS25PBAHRA
    nickName: AC Library
    sections:
      chatbot: True
      double_pairing_hidden: True
      epp_enabled: False
    series: pearl
    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
    unitConfiguration: 1toN
  attributes:
    activity:
      activityExecutionStarted: 2024-01-10 12:27:42
      activityStarted: 1970-01-01T00:00:00.0Z
      applianceTypeName: AC
      attributes:
        10degreeHeatingStatus: 0
        acType: 0
        airQuality: 0
        appVersion: 2.5.6
        ch2oCleaningStatus: 0
        ch2oValueIndoor: 0
        channel: mobileApp
        cleaningTimeStatus: 0
        co2ValueIndoor: 0
        compressorCurrent: 51.10
        compressorFrequency: 73
        compressorStatus: 1
        defrostStatus: 0
        deviceModel: iPhone11,8
        echoStatus: 0
        ecoMode: 0
        electricHeatingStatus: 0
        electricHeatingStatusIndoor: 0
        energySavePeriod: 15
        energySavingStatus: 0
        errAckFlag: 0
        expansionValveOpenDegree: 330
        fanStatusIndoor: 1
        fanStatusOutdoor: 2
        filterChangeStatusCloud: 0
        fourWayValveStatus: 2
        freshAirStatus: 0
        halfDegreeSettingStatus: 0
        healthMode: 0
        heatAccumulationStatus: 0
        humanSensingStatus: 0
        humidificationStatus: 0
        humidityIndoor: 0
        humiditySel: 30
        intelligenceStatus: 0
        lightStatus: 0
        lockStatus: 0
        machMode: 1
        machineModeHK: 0
        mobileOs: ios
        muteStatus: 0
        operationSource: 1
        origin: standardProgram
        osVersion: 17.2.1
        pm2p5CleaningStatus: 0
        pm2p5LevelIndoor: 0
        pm2p5ValueIndoor: 0
        pm2p5ValueOutdoor: 0
        pmvStatus: 0
        power: 0
        prStrDisp: Heat
        principalUserId: 0016800000WU5roAAD
        programFamily: [standard]
        programName: IOT_HEAT
        rapidMode: 0
        screenDisplayStatus: 1
        selfCleaning56Status: 0
        selfCleaningStatus: 0
        sensingResult: 0
        silentSleepStatus: 0
        specialMode: 0
        tempAirOutdoor: 51
        tempCoilerIndoor: 39.00
        tempCoilerOutdoor: 7
        tempDefrostOutdoor: 6
        tempInAirOutdoor: 6
        tempIndoor: 24.50
        tempOutdoor: 17.00
        tempSel: 30.00
        tempUnit: 0
        vocValueIndoor: 0
        voiceSignStatus: 0
        voiceStatus: 0
        windDirectionHorizontal: 0
        windDirectionVertical: 7
        windSensingStatus: 0
        windSpeed: 3
      category: CYCLE
      macAddress: xx-xx-xx-xx-xx-xx
      resultCode: 0
      ttl: 1712665662
    lastConnEvent:
      category: CONNECTED
      instantTime: 1970-01-01T00:00:00.0Z
      macAddress: xx-xx-xx-xx-xx-xx
      timestampEvent: 1704976686569
    parameters:
      10degreeHeatingStatus: 0
      acType: 0
      airQuality: 0
      ch2oCleaningStatus: 0
      ch2oValueIndoor: 0
      co2ValueIndoor: 0
      compressorCurrent: 51.10
      compressorFrequency: 94
      compressorStatus: 1
      debugEnabled: 0
      defrostStatus: 0
      echoStatus: 0
      electricHeatingStatus: 0
      electricHeatingStatusIndoor: 0
      energySavePeriod: 15
      energySavingStatus: 0
      errAckFlag: 0
      errors: 00
      expansionValveOpenDegree: 330
      fanStatusIndoor: 1
      fanStatusOutdoor: 2
      filterChangeStatusLocal: 0
      fourWayValveStatus: 2
      freshAirStatus: 0
      halfDegreeSettingStatus: 0
      healthMode: 0
      heatAccumulationStatus: 0
      highTransRate: 1
      humanSensingStatus: 0
      humidificationStatus: 0
      humidityIndoor: 0
      humiditySel: 30
      intelligenceStatus: 0
      lightStatus: 0
      lockStatus: 0
      machMode: 4
      machineModeHK: 0
      muteStatus: 0
      onOffStatus: 1
      operationSource: 3
      pm2p5CleaningStatus: 0
      pm2p5LevelIndoor: 0
      pm2p5ValueIndoor: 0
      pm2p5ValueOutdoor: 0
      pmvStatus: 0
      power: 0
      rapidMode: 0
      screenDisplayStatus: 1
      selfCleaning56Status: 0
      selfCleaningStatus: 0
      sensingResult: 0
      silentSleepStatus: 0
      specialMode: 0
      statusSyncRate: 1440
      stdTransRate: 3600
      tempAirOutdoor: 59
      tempCoilerIndoor: 45.00
      tempCoilerOutdoor: 6
      tempDefrostOutdoor: 4
      tempInAirOutdoor: 4
      tempIndoor: 20.00
      tempOutdoor: 13.00
      tempSel: 21.00
      tempUnit: 0
      totalElectricityUsed: 0
      totalWorkTime: 0
      transMode: 0
      vocValueIndoor: 0
      voiceSignStatus: 0
      voiceStatus: 0
      windDirectionHorizontal: 0
      windDirectionVertical: 6
      windSensingStatus: 0
      windSpeed: 5
    resultCode: 0
  settings:
    ancillaryParameters:
      programRules: {'selfCleaningStatus': {'$installationType': {'1toN': {'typology': 'fixed', 'fixedValue': '0'}}}, 'selfCleaning56Status': {'$installationType': {'1to2': {'typology': 'fixed', 'fixedValue': '0'}, '1toN': {'typology': 'fixed', 'fixedValue': '0'}}}}
    custom:
      category: setParameters
    parameters:
      10degreeHeatingStatus: 0
      ch2oCleaningStatus: 0
      cleaningTimeStatus: 0
      echoStatus: 0
      electricHeatingStatus: 0
      energySavePeriod: 15
      energySavingStatus: 0
      filterChangeStatusCloud: 0
      freshAirStatus: 0
      halfDegreeSettingStatus: 0
      healthMode: 0
      heatAccumulationStatus: 0
      humanSensingStatus: 0
      humidificationStatus: 0
      humiditySel: 30
      intelligenceStatus: 0
      lightStatus: 0
      lockStatus: 0
      machMode: 4
      muteStatus: 0
      onOffStatus: 1
      operationName: grSetDAC
      pm2p5CleaningStatus: 0
      pmvStatus: 0
      rapidMode: 0
      screenDisplayStatus: 1
      selfCleaning56Status: 0
      selfCleaningStatus: 0
      silentSleepStatus: 0
      specialMode: 0
      tempSel: 21
      tempUnit: 0
      voiceSignStatus: 0
      voiceStatus: 0
      windDirectionHorizontal: 0
      windDirectionVertical: 6
      windSensingStatus: 0
      windSpeed: 5
  startProgram:
    ancillaryParameters:
      programRules: {'selfCleaningStatus': {'$installationType': {'1toN': {'typology': 'fixed', 'fixedValue': '0'}}}, 'selfCleaning56Status': {'$installationType': {'1to2': {'typology': 'fixed', 'fixedValue': '0'}, '1toN': {'typology': 'fixed', 'fixedValue': '0'}}}}
      remoteActionable: 1
      remoteVisible: 0
    custom:
      program: iot_simple_start
    parameters:
      10degreeHeatingStatus: 0
      ch2oCleaningStatus: 0
      cleaningTimeStatus: 0
      echoStatus: 0
      electricHeatingStatus: 0
      energySavePeriod: 15
      energySavingStatus: 0
      filterChangeStatusCloud: 0
      freshAirStatus: 0
      halfDegreeSettingStatus: 0
      healthMode: 0
      heatAccumulationStatus: 0
      humanSensingStatus: 0
      humidificationStatus: 0
      humiditySel: 30
      intelligenceStatus: 0
      lightStatus: 0
      lockStatus: 0
      machMode: 4
      muteStatus: 0
      onOffStatus: 1
      operationName: grSetDAC
      pm2p5CleaningStatus: 0
      pmvStatus: 0
      rapidMode: 0
      screenDisplayStatus: 1
      selfCleaning56Status: 0
      selfCleaningStatus: 0
      silentSleepStatus: 0
      specialMode: 0
      tempSel: 30
      tempUnit: 0
      voiceSignStatus: 0
      voiceStatus: 0
      windDirectionHorizontal: 0
      windDirectionVertical: 5
      windSensingStatus: 0
      windSpeed: 1
  statistics:
    mostUsedPrograms:
    mostUsedRecipes:
    programsCounter: 0
  stopProgram:
    parameters:
      10degreeHeatingStatus: 0
      ch2oCleaningStatus: 0
      cleaningTimeStatus: 0
      echoStatus: 0
      electricHeatingStatus: 0
      energySavePeriod: 15
      energySavingStatus: 0
      filterChangeStatusCloud: 0
      freshAirStatus: 0
      halfDegreeSettingStatus: 0
      healthMode: 0
      heatAccumulationStatus: 0
      humanSensingStatus: 0
      humidificationStatus: 0
      humiditySel: 30
      intelligenceStatus: 0
      lightStatus: 0
      lockStatus: 0
      machMode: 0
      muteStatus: 0
      onOffStatus: 0
      operationName: grSetDAC
      pm2p5CleaningStatus: 0
      pmvStatus: 0
      rapidMode: 0
      screenDisplayStatus: 1
      selfCleaning56Status: 0
      selfCleaningStatus: 0
      silentSleepStatus: 0
      specialMode: 0
      tempSel: 22
      tempUnit: 0
      voiceSignStatus: 0
      voiceStatus: 0
      windDirectionHorizontal: 0
      windDirectionVertical: 5
      windSensingStatus: 0
      windSpeed: 5
commands:
  settings:
    10degreeHeatingStatus:
      max: 1
      min: 0
      step: 1
    category:
      - setConfig
      - setParameters
    echoStatus:
      max: 1
      min: 0
      step: 1
    healthMode:
      max: 1
      min: 0
      step: 1
    machMode:
      - 0
      - 1
      - 2
      - 4
      - 6
    muteStatus:
      max: 1
      min: 0
      step: 1
    rapidMode:
      max: 1
      min: 0
      step: 1
    screenDisplayStatus:
      max: 1
      min: 0
      step: 1
    selfCleaning56Status:
      max: 1
      min: 0
      step: 1
    selfCleaningStatus:
      max: 1
      min: 0
      step: 1
    silentSleepStatus:
      max: 1
      min: 0
      step: 1
    tempSel:
      max: 30
      min: 16
      step: 1
    windDirectionVertical:
      - 2
      - 4
      - 5
      - 6
      - 7
      - 8
    windSpeed:
      - 1
      - 2
      - 3
      - 5
  startProgram:
    10degreeHeatingStatus:
      max: 1
      min: 0
      step: 1
    echoStatus:
      max: 1
      min: 0
      step: 1
    ecoMode:
      max: 1
      min: 0
      step: 1
    healthMode:
      max: 1
      min: 0
      step: 1
    machMode:
      - 0
      - 1
      - 2
      - 4
      - 6
    muteStatus:
      max: 1
      min: 0
      step: 1
    program:
      - Heat
      - Heat 20 v3
      - iot_10_heating
      - iot_auto
      - iot_cool
      - iot_dry
      - iot_fan
      - iot_heat
      - iot_self_clean
      - iot_self_clean_56
      - iot_simple_start
      - iot_uv
      - iot_uv_and_auto
      - iot_uv_and_cool
      - iot_uv_and_dry
      - iot_uv_and_fan
      - iot_uv_and_heat
    programFamily:
      - maintenance
      - health
      - maintenance_health
    rapidMode:
      max: 1
      min: 0
      step: 1
    remoteActionable:
      max: 1
      min: 0
      step: 1
    remoteVisible:
      max: 1
      min: 0
      step: 1
    screenDisplayStatus:
      max: 1
      min: 0
      step: 1
    selfCleaning56Status:
      max: 1
      min: 0
      step: 1
    selfCleaningStatus:
      max: 1
      min: 0
      step: 1
    silentSleepStatus:
      max: 1
      min: 0
      step: 1
    tempSel:
      max: 30
      min: 16
      step: 1
    windDirectionVertical:
      - 2
      - 4
      - 5
      - 6
      - 7
      - 8
    windSpeed:
      - 1
      - 2
      - 3
      - 5
  stopProgram:
    10degreeHeatingStatus:
      max: 1
      min: 0
      step: 1
    echoStatus:
      max: 1
      min: 0
      step: 1
    healthMode:
      max: 1
      min: 0
      step: 1
    machMode:
      - 0
      - 1
      - 2
      - 4
      - 6
    muteStatus:
      max: 1
      min: 0
      step: 1
    rapidMode:
      max: 1
      min: 0
      step: 1
    screenDisplayStatus:
      max: 1
      min: 0
      step: 1
    selfCleaning56Status:
      max: 1
      min: 0
      step: 1
    selfCleaningStatus:
      max: 1
      min: 0
      step: 1
    silentSleepStatus:
      max: 1
      min: 0
      step: 1
    tempSel:
      max: 30
      min: 16
      step: 1
    windDirectionVertical:
      - 2
      - 4
      - 5
      - 6
      - 7
      - 8
    windSpeed:
      - 1
      - 2
      - 3
      - 5
rules:
  startProgram:
    ecoMode:
      1:
        machMode:
          1:
            tempSel: 26
            windDirectionVertical: 3
            windSpeed: 1
          4:
            tempSel: 20
            windDirectionVertical: 3
            windSpeed: 1
versions:
  hon: 0.11.0-beta.1
  pyhOn: 0.15.15
Andre0512 commented 3 months ago

Hi, this is already possible with the climate entity :slightly_smiling_face:

image

NoUsername10 commented 2 months ago

Sry, it was one step too many for my brain :-) Hope you are great!