From ac71defd45bc6338b78779b518c19aef8b3645d2 Mon Sep 17 00:00:00 2001 From: Yaroslav Heriatovych <184247+Yarikx@users.noreply.github.com> Date: Thu, 23 Feb 2023 02:05:54 +0000 Subject: [PATCH] Add haier climate component (#2431) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/climate/haier.rst | 86 +++++++++++++++++++++++ components/climate/images/usb_pinout.png | Bin 0 -> 13199 bytes images/haier.svg | 25 +++++++ index.rst | 1 + 4 files changed, 112 insertions(+) create mode 100644 components/climate/haier.rst create mode 100644 components/climate/images/usb_pinout.png create mode 100644 images/haier.svg diff --git a/components/climate/haier.rst b/components/climate/haier.rst new file mode 100644 index 000000000..62be42893 --- /dev/null +++ b/components/climate/haier.rst @@ -0,0 +1,86 @@ +Haier Climate +============= + +.. seo:: + :description: Instructions for setting up a Haier climate devices. + :image: air-conditioner.svg + +The `haier` climate platform creates a Haier climate device. +The component can be used as a replacement of a Haier proprietary WiFi modules such as KZW-W001 and KZW-W002. + +This component requires a :ref:`uart` to be setup. + +.. code-block:: yaml + + logger: + baud_rate: 0 #Disable UART logging for ESP8266 + + uart: + rx_pin: GPIO3 + tx_pin: GPIO1 + baud_rate: 9600 + + climate: + platform: haier + name: Haier AC + supported_swing_modes: + - VERTICAL + - HORIZONTAL + - BOTH + +Configuration variables: +------------------------ + +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- **name** (**Required**, string): The name of the climate device. +- **update_interval** (*Optional*, :ref:`config-time`): How often device will be polled for status. Defaults to `5s`. +- **supported_swing_modes** (*Optional*, list): List of supported swing modes. Possible values are: ``VERTICAL``, ``HORIZONTAL``, ``BOTH``. +- All other options from :ref:`Climate `. + +Hardware setup +-------------- + +Most units will have a dedicated USB-A port for Haier WiFi module. +The physical USB port is in fact UART and does not "speak" USB protocol. +It uses four USB pins as 5V, GND, RX, TX. +You can use spare male USB cable to connect esphome device directly to the climate appliance. + +Other units will not have USB ports, but will still probably have UART exposed somewhere on the main board. + +.. list-table:: Haier UART pinout + :header-rows: 1 + + * - Board + - USB + - Wire color + - ESP8266 + * - 5V + - VCC + - red + - 5V + * - GND + - GND + - black + - GND + * - TX + - DATA+ + - green + - RX + * - RX + - DATA- + - white + - TX + +.. figure:: images/usb_pinout.png + :align: center + :width: 70.0% + + USB Pinout + +See Also +-------- + +- `esphaier `__ +- :doc:`/components/climate/index` +- :apiref:`haier/climate/haier.h` +- :ghedit:`Edit` diff --git a/components/climate/images/usb_pinout.png b/components/climate/images/usb_pinout.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d3a61df9710ffbeda548f79ba5b8105c6f4dc9 GIT binary patch literal 13199 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 literal 0 HcmV?d00001 diff --git a/images/haier.svg b/images/haier.svg new file mode 100644 index 000000000..887c22f62 --- /dev/null +++ b/images/haier.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + diff --git a/index.rst b/index.rst index 536363853..be127ac01 100644 --- a/index.rst +++ b/index.rst @@ -624,6 +624,7 @@ Climate Components Midea, components/climate/midea, midea.svg Anova Cooker, components/climate/anova, anova.png BedJet Climate System, components/climate/bedjet, bedjet.png + Haier Climate, components/climate/haier, haier.svg Number Components -----------------