{"id":19672808,"url":"https://github.com/paveldn/haier-esphome","last_synced_at":"2025-04-05T15:03:45.183Z","repository":{"id":40641867,"uuid":"502127080","full_name":"paveldn/haier-esphome","owner":"paveldn","description":"Haier ac integration for ESPHome","archived":false,"fork":false,"pushed_at":"2025-01-21T06:37:31.000Z","size":2902,"stargazers_count":108,"open_issues_count":10,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-29T12:54:27.069Z","etag":null,"topics":["air-conditioner","esp32","esp8266","esphome","haier","hon","rpi-pico","smartair2","uart"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paveldn.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-10T17:27:49.000Z","updated_at":"2025-03-18T20:37:07.000Z","dependencies_parsed_at":"2023-09-28T11:17:20.868Z","dependency_job_id":"77695073-3825-4bc6-889c-1682ce11971f","html_url":"https://github.com/paveldn/haier-esphome","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paveldn%2Fhaier-esphome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paveldn%2Fhaier-esphome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paveldn%2Fhaier-esphome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paveldn%2Fhaier-esphome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paveldn","download_url":"https://codeload.github.com/paveldn/haier-esphome/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353729,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["air-conditioner","esp32","esp8266","esphome","haier","hon","rpi-pico","smartair2","uart"],"created_at":"2024-11-11T17:13:19.737Z","updated_at":"2025-04-05T15:03:45.158Z","avatar_url":"https://github.com/paveldn.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":".. This file is automatically generated by ./docs/script/make_doc.py Python script.\r\n   Please, don't change. In case you need to make corrections or changes change\r\n   source documentation in ./doc folder or script.\r\n\r\n.. Generated from esphome-docs/climate/haier.rst\r\n\r\nHaier Climate\r\n=============\r\n\r\nThis is an implementation of the ESPHome component to control HVAC on the base of the SmartAir2 and hOn Haier protocols (AC that is controlled by the hOn or SmartAir2 application).\r\n\r\nThere are two versions of the Haier protocol: the older version uses an application called SmartAir2 while the newer version uses an application called hOn. Both protocols are compatible on the transport level but utilize different commands to control appliances.\r\n\r\nOlder Haier models controlled by the SmartAir2 application are using the KZW-W002 module. This module can’t be reused, and you need to replace it with an ESP or RPI Pico W module. The USB connector on the board doesn’t support the USB protocol. It is a UART port that just uses a USB connector. To connect the ESP board to your AC you can cut a USB type A cable and connect wires to the climate connector.\r\n\r\n.. list-table:: Haier UART pinout\r\n    :header-rows: 1\r\n\r\n    * - Board\r\n      - USB\r\n      - Wire color\r\n      - ESP8266\r\n    * - 5V\r\n      - VCC\r\n      - red\r\n      - 5V\r\n    * - GND\r\n      - GND\r\n      - black\r\n      - GND\r\n    * - TX\r\n      - DATA+\r\n      - green\r\n      - RX\r\n    * - RX\r\n      - DATA-\r\n      - white\r\n      - TX\r\n\r\n.. raw:: HTML\r\n\r\n  \u003cp\u003e\u003ca href=\"./docs/esphome-docs/climate/images/usb_pinout.png?raw=true\"\u003e\u003cimg src=\"./docs/esphome-docs/climate/images/usb_pinout.png?raw=true\" height=\"70%\" width=\"70%\"\u003e\u003c/a\u003e\u003cbr\u003e\u003ci\u003e\u0026emsp;KZW-W002 module pinout\u003c/i\u003e\u003c/p\u003e\r\n\r\nNewer Haier models using a module called ESP32-for-Haier. It is an ESP32 single-core board with an ESP32-S0WD chip. In some cases, you can reuse this module and flash it with ESPHome, but some new modules don’t support this. They look the same but have encryption enabled.\r\n\r\n**Warning!** The new generation of ESP32-Haier devices has encryption enabled, so they can only be flashed with firmware that is signed with a private key. There is no way to make them work with ESPHome, so if you try to do it, the board will get into a boot loop with the error ``rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)`` The only way to recover this board is to flash it with the original image. So before starting your experiments make a backup image.\r\n\r\n.. raw:: HTML\r\n\r\n  \u003cp\u003e\u003ca href=\"./docs/esphome-docs/climate/images/haier_pinout.jpg?raw=true\"\u003e\u003cimg src=\"./docs/esphome-docs/climate/images/haier_pinout.jpg?raw=true\" height=\"70%\" width=\"70%\"\u003e\u003c/a\u003e\u003cbr\u003e\u003ci\u003e\u0026emsp;ESP32-for-Haier UART0 pinout\u003c/i\u003e\u003c/p\u003e\r\n\r\nAlso, you can use any other ESP32, ESP8266, or an RPI pico W board. In this case, you will need to cut the original wire or make a connector yourself (the board has a JST SM04B-GHS-TB connector)\r\n\r\nThis component requires a `UART Bus \u003chttps://esphome.io/components/uart#uart\u003e`_ to be setup.\r\n\r\n.. code-block:: yaml\r\n\r\n    # Example configuration entry\r\n    climate:\r\n      - platform: haier\r\n        id: haier_ac\r\n        protocol: hon\r\n        name: Haier AC\r\n        uart_id: ac_port\r\n        wifi_signal: true\r\n        display: true\r\n        visual:\r\n          min_temperature: 16 °C\r\n          max_temperature: 30 °C\r\n          temperature_step: 1 °C\r\n        supported_modes:\r\n        - 'OFF'\r\n        - HEAT_COOL\r\n        - COOL\r\n        - HEAT\r\n        - DRY\r\n        - FAN_ONLY\r\n        supported_swing_modes:\r\n        - 'OFF'\r\n        - VERTICAL\r\n        - HORIZONTAL\r\n        - BOTH\r\n      supported_presets:\r\n        - AWAY\r\n        - BOOST\r\n        - SLEEP\r\n      on_alarm_start:\r\n        then:\r\n          - logger.log:\r\n              level: WARN\r\n              format: \"Alarm activated. Code: %d. Message: \\\"%s\\\"\"\r\n              args: [ code, message]\r\n      on_alarm_end:\r\n        then:\r\n          - logger.log:\r\n              level: INFO\r\n              format: \"Alarm deactivated. Code: %d. Message: \\\"%s\\\"\"\r\n              args: [ code, message]\r\n      on_status_message:\r\n        then:\r\n          - logger.log:\r\n              level: INFO\r\n              format: \"New status message received, size=%d, subcmd=%02X%02X\"\r\n              args: [ 'data_size', 'data[0]', 'data[1]' ]\r\n\r\n\r\nConfiguration variables:\r\n------------------------\r\n\r\n- **uart_id** (*Optional*, `ID \u003chttps://esphome.io/guides/configuration-types.html#config-id\u003e`_): ID of the UART port to communicate with AC.\r\n- **protocol** (*Optional*, string): Defines communication protocol with AC. Possible values: ``hon`` or ``smartair2``. The default value is ``smartair2``.\r\n- **wifi_signal** (*Optional*, boolean): If ``true`` - send wifi signal level to AC.\r\n- **answer_timeout** (*Optional*, `Time \u003chttps://esphome.io/guides/configuration-types.html#config-time\u003e`_): Responce timeout. The default value is ``200ms``.\r\n- **alternative_swing_control** (*Optional*, boolean): (supported by smartAir2 only) If ``true`` - use alternative values to control swing mode. Use only if the original control method is not working for your AC.\r\n- **status_message_header_size** (*Optional*, int): (supported only by hOn) Define the header size of the status message. Can be used to handle some protocol variations. Use only if you are sure what you are doing. The default value: ``0``.\r\n- **control_packet_size** (*Optional*, int): (supported only by hOn) Define the size of the control packet. Can help with some newer models of ACs that use bigger packets. The default value: ``10``.\r\n- **sensors_packet_size** (*Optional*, int): (supported only by hOn) Define the size of the sensor packet of the status message. Can help with some models of ACs that have bigger sensor packet. The default value: ``22``, minimum value: ``18``.\r\n- **control_method** (*Optional*, list): (supported only by hOn) Defines control method (should be supported by AC). Supported values: ``MONITOR_ONLY`` - no control, just monitor status, ``SET_GROUP_PARAMETERS`` - set all AC parameters with one command (default method), ``SET_SINGLE_PARAMETER`` - set each parameter individually (this method is supported by some new ceiling ACs like AD71S2SM3FA)\r\n- **display** (*Optional*, boolean): Can be used to set the AC display off.\r\n- **beeper** (*Optional*, boolean): Can be used to disable beeping on commands from AC. Supported only by hOn protocol.\r\n- **supported_modes** (*Optional*, list): Can be used to disable some of AC modes. Possible values: ``'OFF'``, ``HEAT_COOL``, ``COOL``, ``HEAT``, ``DRY``, ``FAN_ONLY``.\r\n- **supported_swing_modes** (*Optional*, list): Can be used to disable some swing modes if your AC does not support it. Possible values: ``'OFF'``, ``VERTICAL``, ``HORIZONTAL``, ``BOTH``.\r\n- **supported_presets** (*Optional*, list): Can be used to disable some presets. Possible values for smartair2 are: ``AWAY``, ``BOOST``, ``COMFORT``. Possible values for hOn are: ``AWAY``, ``BOOST``, ``SLEEP``. ``AWAY`` preset can be enabled only in ``HEAT`` mode, it is disabled by default.\r\n- **on_alarm_start** (*Optional*, `Automation \u003chttps://esphome.io/guides/automations#automation\u003e`_): (supported only by hOn) Automation to perform when AC activates a new alarm. See `on_alarm_start Trigger`_.\r\n- **on_alarm_end** (*Optional*, `Automation \u003chttps://esphome.io/guides/automations#automation\u003e`_): (supported only by hOn) Automation to perform when AC deactivates a new alarm. See `on_alarm_end Trigger`_.\r\n- **on_status_message** (*Optional*, `Automation \u003chttps://esphome.io/guides/automations#automation\u003e`_): Automation to perform when status message received from AC. See `on_status_message Trigger`_.\r\n- All other options from `Climate \u003chttps://esphome.io/components/climate/index.html#config-climate\u003e`_.\r\n\r\nAutomations\r\n-----------\r\n\r\n.. _haier-on_alarm_start:\r\n\r\n``on_alarm_start`` Trigger\r\n**************************\r\n\r\nThis automation will be triggered when a new alarm is activated by AC. The error code of the alarm will be given in the variable ``code`` (``uint8_t``), error message in the variable ``message`` (``const char *``). Those variables can be used in `lambdas \u003chttps://esphome.io/guides/automations#config-lambda\u003e`_.\r\n\r\n.. code-block:: yaml\r\n\r\n    climate:\r\n      - protocol: hon\r\n        on_alarm_start:\r\n          then:\r\n            - logger.log:\r\n                level: WARN\r\n                format: \"Alarm activated. Code: %d. Message: \\\"%s\\\"\"\r\n                args: [ 'code', 'message' ]\r\n\r\n.. _haier-on_alarm_end:\r\n\r\n``on_alarm_end`` Trigger\r\n************************\r\n\r\nThis automation will be triggered when a previously activated alarm is deactivated by AC. The error code of the alarm will be given in the variable ``code`` (``uint8_t``), error message in the variable ``message`` (``const char *``). Those variables can be used in `lambdas \u003chttps://esphome.io/guides/automations#config-lambda\u003e`_.\r\n\r\n.. code-block:: yaml\r\n\r\n    climate:\r\n      - protocol: hon\r\n        on_alarm_end:\r\n          then:\r\n            - logger.log:\r\n                level: INFO\r\n                format: \"Alarm deactivated. Code: %d. Message: \\\"%s\\\"\"\r\n                args: [ 'code', 'message' ]\r\n\r\n.. _haier-on_status_message:\r\n\r\n``on_status_message`` Trigger\r\n*****************************\r\n\r\nThis automation will be triggered when component receives new status packet from AC. Raw message binary (without header and checksum) will be provided in the variable ``data`` (``const char *``), message length in the variable ``data_size`` (``uint8_t``). Those variables can be used in `lambdas \u003chttps://esphome.io/guides/automations#config-lambda\u003e`_.\r\nThis trigger can be used to support some features that unique for the model and not supported by others.\r\n\r\n.. code-block:: yaml\r\n\r\n    climate:\r\n      - protocol: hon\r\n        on_status_message:\r\n          then:\r\n            - logger.log:\r\n                level: INFO\r\n                format: \"New status message received, size=%d, subcmd=%02X%02X\"\r\n                args: [ 'data_size', 'data[0]', 'data[1]' ]\r\n\r\n``climate.haier.power_on`` Action\r\n*********************************\r\n\r\nThis action turns AC power on.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.power_on: device_id\r\n\r\n``climate.haier.power_off`` Action\r\n**********************************\r\n\r\nThis action turns AC power off\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.power_off: device_id\r\n\r\n``climate.haier.power_toggle`` Action\r\n*************************************\r\n\r\nThis action toggles AC power\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.power_toggle: device_id\r\n\r\n``climate.haier.display_on`` Action\r\n***********************************\r\n\r\nThis action turns the AC display on.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.display_on: device_id\r\n\r\n``climate.haier.display_off`` Action\r\n************************************\r\n\r\nThis action turns the AC display off.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.display_off: device_id\r\n\r\n``climate.haier.health_on`` Action\r\n**********************************\r\n\r\nTurn on health mode (`UV light sterilization \u003chttps://www.haierhvac.eu/en/node/1809\u003e`__).\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.health_on: device_id\r\n\r\n``climate.haier.health_off`` Action\r\n***********************************\r\n\r\nTurn off health mode.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.health_off: device_id\r\n\r\n``climate.haier.beeper_on`` Action\r\n**********************************\r\n\r\n(supported only by hOn) This action enables beep feedback on every command sent to AC.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.beeper_on: device_id\r\n\r\n``climate.haier.beeper_off`` Action\r\n***********************************\r\n\r\n(supported only by hOn) This action disables beep feedback on every command sent to AC (keep in mind that this will not work for IR remote commands).\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        climate.haier.beeper_off: device_id\r\n\r\n``climate.haier.set_vertical_airflow`` Action\r\n*********************************************\r\n\r\n(supported only by hOn) Set direction for vertical airflow if the vertical swing is disabled. Possible values: Health_Up, Max_Up, Up, Center, Down, Health_Down.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        - climate.haier.set_vertical_airflow:\r\n          id: device_id\r\n          vertical_airflow: Up\r\n\r\n``climate.haier.set_horizontal_airflow`` Action\r\n***********************************************\r\n\r\n(supported only by hOn) Set direction for horizontal airflow if the horizontal swing is disabled. Possible values: ``Max_Left``, ``Left``, ``Center``, ``Right``, ``Max_Right``.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        - climate.haier.set_horizontal_airflow:\r\n          id: device_id\r\n          vertical_airflow: Right\r\n\r\n``climate.haier.start_self_cleaning`` Action\r\n********************************************\r\n\r\n(supported only by hOn) Start `self-cleaning \u003chttps://www.haier.com/in/blogs/beat-the-summer-heat-with-haier-self-cleaning-ac.shtml\u003e`__.\r\n\r\n.. code-block:: yaml\r\n\r\n    on_...:\r\n      then:\r\n        - climate.haier.start_self_cleaning: device_id\r\n\r\n``climate.haier.start_steri_cleaning`` Action\r\n*********************************************\r\n\r\n(supported only by hOn) Start 56°C steri-cleaning.\r\n\r\n.. Generated from esphome-docs/sensor/haier.rst\r\n\r\nHaier Climate Sensors\r\n=====================\r\n\r\nAdditional sensors for Haier Climate device. **These sensors are supported only by the hOn protocol**.\r\n\r\n\r\n.. raw:: HTML\r\n\r\n  \u003cp\u003e\u003ca href=\"./docs/esphome-docs/sensor/images/haier-climate.jpg?raw=true\"\u003e\u003cimg src=\"./docs/esphome-docs/sensor/images/haier-climate.jpg?raw=true\" height=\"50%\" width=\"50%\"\u003e\u003c/a\u003e\u003c/p\u003e\r\n\r\n.. code-block:: yaml\r\n\r\n    # Example configuration entry\r\n    sensor:\r\n      - platform: haier\r\n        haier_id: haier_ac\r\n        outdoor_temperature:\r\n          name: Haier outdoor temperature\r\n        humidity:\r\n          name: Haier Indoor Humidity\r\n        compressor_current:\r\n          name: Haier Compressor Current\r\n        compressor_frequency:\r\n          name: Haier Compressor Frequency\r\n        expansion_valve_open_degree:\r\n          name: Haier Expansion Valve Open Degree\r\n        indoor_coil_temperature:\r\n          name: Haier Indoor Coil Temperature\r\n        outdoor_coil_temperature:\r\n          name: Haier Outdoor Coil Temperature\r\n        outdoor_defrost_temperature:\r\n          name: Haier Outdoor Defrost Temperature\r\n        outdoor_in_air_temperature:\r\n          name: Haier Outdoor In Air Temperature\r\n        outdoor_out_air_temperature:\r\n          name: Haier Outdoor Out Air Temperature\r\n        power:\r\n          name: Haier Power\r\n\r\nConfiguration variables:\r\n------------------------\r\n\r\n- **haier_id** (**Required**, `ID \u003chttps://esphome.io/guides/configuration-types.html#config-id\u003e`_): The id of haier climate component\r\n- **outdoor_temperature** (*Optional*): Temperature sensor for outdoor temperature.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **humidity** (*Optional*): Sensor for indoor humidity. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **compressor_current** (*Optional*): Sensor for climate compressor current. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **compressor_frequency** (*Optional*): Sensor for climate compressor frequency. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **expansion_valve_open_degree** (*Optional*): Sensor for climate's expansion valve open degree. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **indoor_coil_temperature** (*Optional*): Temperature sensor for indoor coil temperature. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **outdoor_coil_temperature** (*Optional*): Temperature sensor for outdoor coil temperature. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **outdoor_defrost_temperature** (*Optional*): Temperature sensor for outdoor defrost temperature. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **outdoor_in_air_temperature** (*Optional*): Temperature sensor incoming air temperature.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **outdoor_out_air_temperature** (*Optional*): Temperature sensor for outgoing air temperature.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n- **power** (*Optional*): Sensor for climate power consumption. Make sure that your climate model supports this type of sensor.\r\n  All options from `Sensor \u003chttps://esphome.io/components/sensor/index.html#config-sensor\u003e`_.\r\n\r\n\r\n.. Generated from esphome-docs/binary_sensor/haier.rst\r\n\r\nHaier Climate Binary Sensors\r\n============================\r\n\r\nAdditional sensors for Haier Climate device. **These sensors are supported only by the hOn protocol**.\r\n\r\n\r\n.. raw:: HTML\r\n\r\n  \u003cp\u003e\u003ca href=\"./docs/esphome-docs/binary_sensor/images/haier-climate.jpg?raw=true\"\u003e\u003cimg src=\"./docs/esphome-docs/binary_sensor/images/haier-climate.jpg?raw=true\" height=\"50%\" width=\"50%\"\u003e\u003c/a\u003e\u003c/p\u003e\r\n\r\n.. code-block:: yaml\r\n\r\n    # Example configuration entry\r\n    binary_sensor:\r\n      - platform: haier\r\n        haier_id: haier_ac\r\n        compressor_status:\r\n          name: Haier Outdoor Compressor Status\r\n        defrost_status:\r\n          name: Haier Defrost Status\r\n        four_way_valve_status:\r\n          name: Haier Four Way Valve Status\r\n        indoor_electric_heating_status:\r\n          name: Haier Indoor Electric Heating Status\r\n        indoor_fan_status:\r\n          name: Haier Indoor Fan Status\r\n        outdoor_fan_status:\r\n          name: Haier Outdoor Fan Status\r\n\r\nConfiguration variables:\r\n------------------------\r\n\r\n- **haier_id** (**Required**, `ID \u003chttps://esphome.io/guides/configuration-types.html#config-id\u003e`_): The id of haier climate component\r\n- **compressor_status** (*Optional*): A binary sensor that indicates Haier climate compressor activity.\r\n  All options from `Binary Sensor \u003chttps://esphome.io/components/binary_sensor/index.html#base-binary-sensor-configuration\u003e`_.\r\n- **defrost_status** (*Optional*): A binary sensor that indicates defrost procedure activity.\r\n  All options from `Binary Sensor \u003chttps://esphome.io/components/binary_sensor/index.html#base-binary-sensor-configuration\u003e`_.\r\n- **four_way_valve_status** (*Optional*): A binary sensor that indicates four way valve status.\r\n  All options from `Binary Sensor \u003chttps://esphome.io/components/binary_sensor/index.html#base-binary-sensor-configuration\u003e`_.\r\n- **indoor_electric_heating_status** (*Optional*): A binary sensor that indicates electrical heating system activity.\r\n  All options from `Binary Sensor \u003chttps://esphome.io/components/binary_sensor/index.html#base-binary-sensor-configuration\u003e`_.\r\n- **indoor_fan_status** (*Optional*): A binary sensor that indicates indoor fan activity.\r\n  All options from `Binary Sensor \u003chttps://esphome.io/components/binary_sensor/index.html#base-binary-sensor-configuration\u003e`_.\r\n- **outdoor_fan_status** (*Optional*): A binary sensor that indicates outdoor fan activity.\r\n  All options from `Binary Sensor \u003chttps://esphome.io/components/binary_sensor/index.html#base-binary-sensor-configuration\u003e`_.\r\n\r\n.. Generated from esphome-docs/text_sensor/haier.rst\r\n\r\nHaier Climate Text Sensors\r\n==========================\r\n\r\nAdditional sensors for Haier Climate device. **These sensors are supported only by the hOn protocol**.\r\n\r\n.. code-block:: yaml\r\n\r\n    # Example configuration entry\r\n    text_sensor:\r\n      - platform: haier\r\n        haier_id: haier_ac\r\n        appliance_name:\r\n          name: Haier appliance name\r\n        cleaning_status:\r\n          name: Haier cleaning status\r\n        protocol_version:\r\n          name: Haier protocol version\r\n\r\nConfiguration variables:\r\n------------------------\r\n\r\n- **haier_id** (**Required**, `ID \u003chttps://esphome.io/guides/configuration-types.html#config-id\u003e`_): The id of haier climate component\r\n- **appliance_name** (*Optional*): A text sensor that indicates Haier appliance name.\r\n  All options from `Text Sensor \u003chttps://esphome.io/components/text_sensor/index.html#base-text-sensor-configuration\u003e`_.\r\n- **cleaning_status** (*Optional*): A text sensor that indicates cleaning status. Possible values \"No cleaning\", \"Self clean\", \"56°C Steri-Clean\".\r\n  All options from `Text Sensor \u003chttps://esphome.io/components/text_sensor/index.html#base-text-sensor-configuration\u003e`_.\r\n- **protocol_version** (*Optional*): A text sensor that indicates Haier protocol version.\r\n  All options from `Text Sensor \u003chttps://esphome.io/components/text_sensor/index.html#base-text-sensor-configuration\u003e`_.\r\n\r\n.. Generated from esphome-docs/button/haier.rst\r\n\r\nHaier Climate Buttons\r\n=====================\r\n\r\nAdditional buttons for Haier AC cleaning. **These buttons are supported only by the hOn protocol**.\r\n\r\n.. code-block:: yaml\r\n\r\n    # Example configuration entry\r\n    button:\r\n      - platform: haier\r\n        haier_id: haier_ac\r\n        self_cleaning:\r\n          name: Haier start self cleaning\r\n        steri_cleaning:\r\n          name: Haier start 56°C steri-cleaning\r\n\r\nConfiguration variables:\r\n------------------------\r\n\r\n- **haier_id** (**Required**, `ID \u003chttps://esphome.io/guides/configuration-types.html#config-id\u003e`_): The id of Haier climate component\r\n- **self_cleaning** (*Optional*): A button that starts Haier climate self cleaning.\r\n  All options from `Button \u003chttps://esphome.io/components/button/index.html#base-button-configuration\u003e`_.\r\n- **steri_cleaning** (*Optional*): A button that starts Haier climate 56°C Steri-Clean.\r\n  All options from `Button \u003chttps://esphome.io/components/button/index.html#base-button-configuration\u003e`_.\r\n\r\n.. Generated from esphome-docs/switch/haier.rst\r\n\r\nHaier Climate Switches\r\n======================\r\n\r\nAdditional switches to support additional features for Haier AC.\r\n\r\n.. code-block:: yaml\r\n\r\n    # Example configuration entry\r\n    switch:\r\n      - platform: haier\r\n        beeper:\r\n          name: Haier beeper\r\n        health_mode:\r\n          name: Haier health mode\r\n        display:\r\n          name: Haier display\r\n        quiet_mode:\r\n          name: Haier quiet mode\r\n\r\nConfiguration variables:\r\n------------------------\r\n\r\n- **haier_id** (**Required**, `ID \u003chttps://esphome.io/guides/configuration-types.html#config-id\u003e`_): The id of Haier climate component\r\n- **beeper** (*Optional*): (supported only by hOn) A switch that enables or disables Haier climate sound feedback.\r\n  All options from `Switch \u003chttps://esphome.io/components/switch/index.html#base-switch-configuration\u003e`_.\r\n- **health_mode** (*Optional*): A switch that enables or disables Haier climate health mode (`UV light sterilization \u003chttps://www.haierhvac.eu/en/node/1809\u003e`__).\r\n  All options from `Switch \u003chttps://esphome.io/components/switch/index.html#base-switch-configuration\u003e`_.\r\n- **display** (*Optional*): A switch that enables or disables Haier climate led display.\r\n  All options from `Switch \u003chttps://esphome.io/components/switch/index.html#base-switch-configuration\u003e`_.\r\n- **quiet_mode** (*Optional*): (supported only by hOn) A switch that enables or disables Haier climate quiet mode. Quiet mode not supported in Fan only mode.\r\n  All options from `Switch \u003chttps://esphome.io/components/switch/index.html#base-switch-configuration\u003e`_.\r\n\r\n.. Generated from esp32_backup.rst\r\n\r\nHow to backup the original image and flash ESPHome to the ESP32 Haier module\r\n============================================================================\r\n\r\n**It is strongly recommended to make a backup of the original flash\r\ncontent before flashing ESPHome!**\r\n\r\nTo make a backup and to flash the new firmware you will need to use a\r\nUSB to TTL converter and solder wires to access UART0 on board (or use\r\nsomething like this: `Pogo Pin Probe Clip 2x5p 2.54\r\nmm \u003chttps://www.tinytronics.nl/shop/en/tools-and-mounting/measuring/accessories/test-probe-with-clamp-pogo-pin-2x5p\u003e`__)\r\n\r\n**UART0 pinout:**\r\n\r\n.. raw:: HTML\r\n\r\n  \u003cp\u003e\u003ca href=\"./docs/esphome-docs/climate/images/haier_pinout.jpg?raw=true\"\u003e\u003cimg src=\"./docs/esphome-docs/climate/images/haier_pinout.jpg?raw=true\" height=\"70%\" width=\"70%\"\u003e\u003c/a\u003e\u003c/p\u003e\r\n\r\nTo put the device in the flash mode you will need to shortcut GPIO0 to\r\nthe ground before powering the device.\r\n\r\nOnce the device is in flash mode you can make a full backup of the\r\noriginal firmware in case you would like to return the module to its\r\nfactory state. To make a backup you can use\r\n`esptool \u003chttps://github.com/espressif/esptool\u003e`__. Command to make a\r\nfull flash backup:\r\n\r\n**python esptool.py -b 115200 –port read_flash 0x00000 0x400000\r\nflash_4M.bin**\r\n\r\nAfter this, you can flash firmware using ESPHome tools (dashboard,\r\nwebsite, esphome command, etc)\r\n.. Generated from additional_information.rst\r\n\r\nAdditional information\r\n======================\r\n\r\n- `FAQ \u003c./docs/faq.rst\u003e`_\r\n- `HaierProtocol \u003chttps://github.com/paveldn/HaierProtocol\u003e`_\r\n- `Haier smart modules \u003c./docs/haier_modules.rst\u003e`_\r\n- `Haier protocol overview \u003c./docs/protocol_overview.rst\u003e`_\r\n- `Example of climate configuration for smartair2 protocol \u003c./docs/smartair2_example.rst\u003e`_\r\n- `Example of climate configuration for hOn protocol \u003c./docs/hon_example.rst\u003e`_\r\n- `ESPHome Haier Climate \u003chttps://esphome.io/components/climate/haier.html\u003e`_\r\n- `ESPHome Haier Climate Sensors \u003chttps://esphome.io/components/sensor/haier.html\u003e`_\r\n- `ESPHome Haier Climate Binary Sensors \u003chttps://esphome.io/components/binary_sensor/haier.html\u003e`_\r\n- `Esptool.py Documentation \u003chttps://docs.espressif.com/projects/esptool/en/latest/esp32/\u003e`_\r\n- `Sniffing serial communication \u003c./docs/sniffing_serial_communication.rst\u003e`_","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaveldn%2Fhaier-esphome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaveldn%2Fhaier-esphome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaveldn%2Fhaier-esphome/lists"}