Klimatyzacja HAIER - jak zintegrować z HA

Hej.
Mam klimatyzator Haier Tundra Plus. Przeczytałem cały wątek i jak na razie nie jestem bliski celu.
Rozumiem, że mam postępować wg tego opisu:

?
Przerobić kabel i podlutować do płytki ESP8266 (jakieś namiary na sprawdzę egzemplarze?) i potem wgrać firmware. Podłączyć do klimatyzora, żeby HA go znalazł i używać?

Nie mam bladego pojęcia co masz zrobić, ale jeśli ten model współpracuje z aplikacją hOn

to możesz spróbować integracji chmurowej, o którą była awantura w całym internecie na początku roku (bo Haier zagrał bardzo nieładnie, więc jest to marka, którą polecało się bojkotować…)

To jest komponent niestandardowy dostępny w HACS (ten bardziej popularny, bo jak wpiszesz w wyszukiwarce w HACS będą 2 do wyboru)

PS myślę , że wątki dotyczące Haierów należałoby uporządkować, ale to Wy ich użytkownicy musicie dostarczać właściwe dane (bo różne serie pracują z różnymi aplikacjami fabrycznymi, Integracja niestandardowa, którą podlinkowałem dotyczy tylko serii działających z hOn)

Hej. Dzięki za info.
W tamtym roku zamówiłem moduł wifi do Tundry i próbowałem go zintegrować z HA. Jednakże ani lokacja hON ani SmartAir nie wykrywała mi klimatyzatora, więc oddałem i temat ucichł. Może była podróbka, albo aplikacja nie obsługiwała tego klimatyzatora (wejście USB ma, więc raczej powinna).
Z racji tego, że moduł wifi to 145 zł a potrzebowałbym 2 sztuki to muszę pogrzebać czy rzeczywiście jest obsługiwana bo szkoda mi kasy na bubla.
Będę drążył temat.
Czy @Piotr_Wysocki może potwierdzić, że wszystko działa i buczy z modułem ESP8266 na Haier Tundra Plus ? :stuck_out_tongue_winking_eye:

Zauważ, że to co wygląda w większości klimatyzatorów jak USB żadnym USB nie jest.

Hej. Udało się polutować i wemos D1 mini z wgranym ESP i poniższym kodem został zamontowany w Klimatyzatorze i o dziwo działa. Jakaś minimalna konfiguracja i mogę sterować klimą w Home Assistant oraz Google Home.
Mam prośbę o luknięcie czy prawidłowo wszystko ustawiłem, zwłaszcza jeśli chodzi o hardware UART i czy coś jeszcze powinienem dodać.
Jak na razie logi wyglądają prawidłowo…

esphome:
  name: esp-salon
  friendly_name: ESP salon

esp8266:
  board: esp01_1m

# Enable logging
logger:
  level: DEBUG
  hardware_uart: UART1

# Enable Home Assistant API
api:
  encryption:
    key: ""

ota:
  - platform: esphome
    password: ""

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp-Salon Fallback Hotspot"
    password: "

captive_portal:

uart:
    rx_pin: GPIO3
    tx_pin: GPIO1
    baud_rate: 9600
    id: ac_port

climate:
  - platform: haier
    id: haier_ac
    protocol: hon
    name: Haier AC
    uart_id: ac_port
    wifi_signal: true
    beeper: true
    display: true

Jeśli zamierzasz debugować po serialu na GPIO2 to tak, tak może być.
Jeśli nie potrzebujesz debugowania w ten sposób to mogłeś w ogóle wyłączyć debugowanie po serialu (to też usunie konflikt z UART0)

logger:
  level: DEBUG
  baud_rate: 0

w obu przypadkach dane diagnostyczne i tak są dostępne w kanale OTA

Dziś pojawił się update ESPHome, który zawiera kilka Haier Breaking Changes.
Polecam Waszej uwadze.

Przy takiej konfiguracji:

 esphome:
  name: "seba"

esp8266:
  board: esp01_1m

wifi:
  ssid: xxx
  password: xxx
  
  ap:
    ssid: "Seba Fallback Hotspot"
    password: "dwucDTFRryK4"

external_components:
  - source: github://esphome/esphome@dev
    components: [ haier ]

api:
  password: xxx


ota:
  safe_mode: true
  password: xxx

uart:
  - id: ac_port
    baud_rate: 9600
    tx_pin: 1
    rx_pin: 3

logger:
  level: DEBUG
  hardware_uart: UART1

web_server:

climate:
  - platform: haier
[...]

wysypuje mi się na “platform: haier fot fund”. Czego nie zrobiłem?

  1. Jak prawidłowo zamieszczać YAML, inny kod lub logi w postach na forum (była edycja ale nie twoja)

  2. haier od dawna jest w gałęzi stabilnej (przy okazji polecam przejrzeć aktualną dokumentację)
    Haier Climate — ESPHome
    więc wywaliłbym to

  1. w grudniowej wersji 2024.12.x ESPHome są radykalne zmiany i może nie wszystko działać OK (jeszcze), więc skompiluj na ostatniej listopadowej (jeśli po zmianach w YAML i kompilacji na aktualnej nadal będzie kłopot)
    ESPHome 2024.12.0 - 18th December 2024 — ESPHome
    ESPHome lista wydań zawierających Breaking Changes (zmiany wstecznie niekompatybilne) - #8 przez szopen

Swego czasu moja konfiguracja posypała się do tego stopnia, że musiałem podjąć bezpośredni kontakt mailowy z Autorem tej integracji, który porozkminiał w szczegółach wszystkie protokoły Haier. Kiedyś wiele mi pomógł, więc jeśli staniesz już bezradnie na krawędzi swoich możliwości samodzielnego ogarnięcia tematu, myślę, że mógłbyś spróbować prześledzić cały jego projekt i posłużyć się choć w części gotowymi konfiguracjami, które zamieścił w swoim repozytorium.

Robisz błąd w tym miejscu:

climate:
  - platform: haier

ponieważ odwołujesz się tu do niedostępnej już platformy (zewnętrznej dla samej integracji) zdefiniowanej w tym miejscu (w środowisku dev):

external_components:
  - source: github://esphome/esphome@dev
    components: [ haier ]

Jak słusznie zauważył @szopen, integracja ta została już przeniesiona do środowiska produkcyjnego, niekoniecznie nadal zgodnego z dev. Usunięcie odwołania do dev powinno automatycznie przełączyć Cię na domyślne środowisko prod.

Hej @Krzysztonek
Czy podzieliłbyś się pełna konfiguracją dla Flexis Plus’a? Wraz z temperaturami, sterowaniem kierunkiem nawiewu, trybami pracy i wszsytkimi kontrolkami jakimi podzieliłes sie na swoim screenshocie?

Ślicznie prosze :slight_smile:

Ahh chyba sam sobie odpowiem na prośbe sensorów…
Zdaje sie że sensory sa dostępne gdy uzywamy protokołu hon… a flexis plus uzywać ma smartAir2… wiec zdaje się że wiecej nie wyczarujemy?

Jesteś w błędzie, wyczarujemy sensory również dla protokołu smartAir2.
Oto czarymary skopiowane z mojego Flexisa:

esphome:
  name: AC Salon

esp8266:
  board: esp01_1m


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  #important, otherwise the IP could change and then the entity is unavailable from home assistant.
  manual_ip:
    static_ip: 192.168.1.44
    gateway: 192.168.1.1
    subnet: 255.255.255.0
  ap:
    ssid: "Haier Salon Fallback Hotspot"
    password: !secret wifi_password

external_components:
  - source: github://esphome/esphome@dev
    components: [ haier ]

api:
  password: ""


ota:
  platform: esphome  
  safe_mode: true
  password: ""

uart:
  - id: ac_port
    baud_rate: 9600
    tx_pin: 1
    rx_pin: 3

logger:
  level: DEBUG
  hardware_uart: UART1

web_server:

climate:
  - platform: haier
    id: haier_climate
    protocol: smartAir2
    name: AC Salon
    uart_id: ac_port

    wifi_signal: true

    visual:
      temperature_step:
        target_temperature: 1
        current_temperature: 1
      
    supported_modes:
    - 'OFF'
    - HEAT_COOL
    - COOL
    - HEAT
    - DRY
    - FAN_ONLY
    supported_swing_modes:
    - 'OFF'
    - VERTICAL
    - HORIZONTAL
    - BOTH
    supported_presets:
    - COMFORT
    - BOOST






switch:
  - platform: template
    id: haier_climate_display_switch
    name: AC Salon Wyświetlacz
    icon: mdi:led-on
    entity_category: config
    restore_mode: "ALWAYS_OFF"
    lambda: |-
      return id(haier_climate).get_display_state();
    turn_on_action:
      climate.haier.display_on: haier_climate
    turn_off_action:
      climate.haier.display_off: haier_climate
  - platform: template
    id: haier_climate_health_mode
    name: AC Salon Tryb HEALTH
    icon: mdi:leaf
    restore_mode: "ALWAYS_OFF"
    lambda: |-
      return id(haier_climate).get_health_mode();
    turn_on_action:
      climate.haier.health_on: haier_climate
    turn_off_action:
      climate.haier.health_off: haier_climate
  - platform: restart
    name: Restart AC Salon

sensor:
  - platform: wifi_signal
    name: AC Salon WiFi Signal
    update_interval: 30s

Oczywiscie musisz zaadaptować powyższą konfigurację do swoich potrzeb.

1 polubienie

@Krzysztonek czy przy takiej integracji ESPHome nadal można jednocześnie sterować klimatyzacją z “jakiejś” aplikacji producenta na telefonie? Z dołączonego pilota z pewnością tak. Nie mam klimatyzatora (a planuję) dlatego pytam.

Dziekuje,
Czy przy takiej konfiguracji pojawiają się z automatu encje sensorów od np. temperatury zewnetrznej ? Czy one są w jakis sposob wykrywane automatycznie protokołem smartAir2 ? Pytam bo nie widze takowych zadeklarowanych w sekcji ‘sensors:’ i dlaego mialem wątpliwosci czy to jest możliwe.

btw, w weekend dopiero bede stawiał dwa ESP01S na adapterze 5V-3.3V i podpinał pod istniejący przewód… NIestety u mnie nie jest to zwykły USB A i czeka mnie mała przeróbka.

Dziękuję za podesłanie Twojej konfiguracji. Mam mocną bazę do rozpoczęcia przygody.
M

1 polubienie

Niestety, z poziomu apki HaierSmartAir2 można sterować tylko przy wykorzystaniu modułu WiFi z oryginalnym firmware’m. ESP32 to jednak nie oryginał, tylko produkcja własna.

Sensory temperatury zewnętrznej pojawiają tylko z w przypadku protokołu hOn, wykorzystywanego w nowszych modelach klimatyzacji. SmartAir2 to już jednak archaik, ale nie miałem innej opcji, bo mój model Flexis wykorzystujący SmarAir2 jest starszy od modeli Tundra zakupionych 2 lata później, gdzie komunikacja odbywa się z użyciem hOn.
Dlatego muszę używać 2 różnych protokołów dla urządzeń tej samej firmy… Trochę to dupowate, ale przynajmniej działa.
Więc dla potrzeb automatyzacji Flexis temperaturę zewnętrzną zczytuję z agregatu Tundry, a wykorzystuję ten sensor w automatykach wszystkich klimatyzacji niezaleznie od modelu. Taki jestem ‘smartny’! :wink:

1 polubienie

@Krzysztonek
A jeszce tak dopytam, czy Twoje Flexisy posiadały oryginalnie ESP32-for-Haier* na złączu JST SM04B-GHS-TB
Czy starego typu usb A?

Zastanawiam sie czy w moim Flexis+ bedzie wlasnie stary SmartAir2 cy juz wlasnie hon. Ale to chyba wyjdzie jak w koncu wezme sie za podpinanie i konfiguracje.

Update…
Wlasnie dokonalem testu… i u mnie Flexis+ działa na protokole hon :slight_smile:
Slicznie dziekuje za podpowiedzi!! zabiram sie za konfiguracje.
M

M

Szczęściarz jesteś! Masz uproszczone zadanie plus gwarancję pojawienia się z automatu upragnionych sensorów temperatury zewnętrznej.

To jest także podpowiedź dla @macek, z której wynika warunkowa możliwość sterowania klimą zarówno z poziomu apki hOn jak i z poziomu HA. Warunkowość zależy od konkretnej wersji modelu Flexis (jak widać, są na rynku dostępne te z hOn jak i te ze SmartAir).

tak, dokładnie. W modelu Flexis mam usb A.

Sprawdź przed zakupem. Po prostu zapytaj którą konkretnie apką będziesz mógł sterować klimę.

Zapomniałem o czymś oczywistym, ale i najważniejszym: Musisz zaadaptować konfigurację z użyciem hOn, a nie SmartAir. Oto kopia mojego konfigu hOn:

esphome:
  name: AC Sypialnia

esp8266:
  board: esp01_1m

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  #important, otherwise the IP could change and then the entity is unavailable from home assistant.
  manual_ip:
    static_ip: 192.168.1.43
    gateway: 192.168.1.1
    subnet: 255.255.255.0
  ap:
    ssid: "Haier Sypialnia Fallback Hotspot"
    password: !secret wifi_password

api:
  password: ""

ota:
  platform: esphome  
  safe_mode: true
  password: ""

uart:
  - id: ac_port
    baud_rate: 9600
    tx_pin: 1
    rx_pin: 3

logger:
  level: DEBUG
  hardware_uart: UART1

web_server:

climate:
  - platform: haier
    id: haier_climate
    protocol: hOn
    name: AC Sypialnia
    uart_id: ac_port
    wifi_signal: true
    beeper: true
    visual:
      min_temperature: 16 °C
      max_temperature: 30 °C
      temperature_step: 1 °C
    supported_modes:
    - 'OFF'
    - HEAT_COOL
    - COOL
    - HEAT
    - DRY
    - FAN_ONLY
    supported_swing_modes:
    - 'OFF'
    - VERTICAL
    - HORIZONTAL
    - BOTH
    supported_presets:
    - ECO
    - BOOST
    - SLEEP

switch:
  - platform: template
    id: haier_climate_display_switch
    name: AC Sypialnia Wyświetlacz
    icon: mdi:led-on
    entity_category: config
    restore_mode: "ALWAYS_OFF"
    lambda: |-
      return id(haier_climate).get_display_state();
    turn_on_action:
      climate.haier.display_on: haier_climate
    turn_off_action:
      climate.haier.display_off: haier_climate
  - platform: template
    id: haier_climate_beeper_switch
    entity_category: config
    name: AC Sypialnia Beep
    icon: mdi:volume-high
    restore_mode: "ALWAYS_OFF"
    lambda: |-
      return id(haier_climate).get_beeper_state();
    turn_on_action:
      climate.haier.beeper_on: haier_climate
    turn_off_action:
      climate.haier.beeper_off: haier_climate
  - platform: restart
    name: Restart AC Sypialnia

sensor:
  - platform: wifi_signal
    name: AC Sypialnia WiFi Signal
    update_interval: 30s

select:
  - platform: template
    id: haier_climate_horizontal_direction
    name: AC Sypialnia Nawiew Poziomy
    entity_category: config
    icon: mdi:arrow-expand-horizontal
    optimistic: true
    restore_value: true
    initial_option: Center
    options:
      - Max Left
      - Left
      - Center
      - Right
      - Max Right
    on_value:
      then:
        - climate.haier.set_horizontal_airflow:
           id: haier_climate
           horizontal_airflow: !lambda |-
             return esphome::haier::AirflowHorizontalDirection(i);
  - platform: template
    id: haier_climate_vertical_direction
    name: AC Sypialnia Nawiew Pionowy
    entity_category: config
    icon: mdi:arrow-expand-vertical
    optimistic: true
    restore_value: true
    initial_option: Center
    options:
      - Health Up
      - Max Up
      - Up
      - Center
      - Down
      - Health Down
    on_value:
      then:
        - climate.haier.set_vertical_airflow:
           id: haier_climate
           vertical_airflow: !lambda |-
             return esphome::haier::AirflowVerticalDirection(i);


# Funkcje dodatkowe
button:
  - platform: template
    name: Haier Sypialnia Self Cleaning
    icon: mdi:spray-bottle
    on_press:
      - climate.haier.start_self_cleaning: haier_climate
# Introduced in (some) models starting from 2021
  - platform: template
    name: Haier Sypialnia Stericleaning
    icon: mdi:spray-bottle
    on_press:
      - climate.haier.start_steri_cleaning: haier_climate

text_sensor:
  - platform: template
    name: Haier Sypialnia Cleaning Status
    icon: mdi:spray-bottle
    lambda: return id(haier_climate).get_cleaning_status_text();

Chyba więcej sensorów z tego modelu nie wyciśniesz…

1 polubienie

Dzięki za info, pozostaje tylko aby @tykasan to potwierdził.
Trochę poczytałem o tych klimatyzatorach FLEXIS Plus i brakuje mi poziomej regulacji nawiewu i jednostki o mocy 5kW w kolorze “silver:grin:.