ESPHome – Buderus AC-5.3-AC166i.2 Klimaanlage

ESPHome und eine Buderus Klimaanlage

Beschreibung

ESPHome ermöglicht eine Klimaanlage mittels eines IR-Senders und eines ESP32 fernzusteuern. Mir steht eine Klimaanlage vom Typ Buderus AC-5.3 MS mit Inneneinheiten AC166i.2 zur Verfügung. Es existiert für diese Klimaanlage eine App von Buderus, sowie ein WLAN-Modul, dass die Kommunikation mit der Anlage ermöglicht. Eine Einbindung in Home Assistant ist mir herstellerseitig nicht bekannt. Ich würde aber gerne eine Integration in HA erhalten, um alle energieintensiven Geräte zentral an einer Stelle zu verwalten, so kommt das ESPHome Projekt zu Zug. Dort existiert eine „Climate“ Integration mit ESP32 Komponenten, die eine Steuerung mittels Infrarots ermöglicht.

Hardware

Bauteile:

  • AZ Delivery ESP32S Dev Kit C
  • IR Modul (KY-005 AZ Delivery, oder baugleich)
  • Widerstand 220 Ohm
  • (Optional) IR Receiver Modul
  • (Optional) Taster

Schaltplan

Software

Der Typ Buderus AC-5.3 MS mit Inneneinheiten AC166i.2 ist nicht in der Auswahl vom Climate im ESPHome Paket. Nach einiger Suche hatte ich ein kompatibles Modell gefunden, die Midea-ir. Diese Klimaanlage scheint, bis auf wenige Ausnahmen von Befehlen kompatibel mit der Buderus Fernbedienung zu sein. Ein Test bestätigte das.

Einzig der Swing-Vertikal Befehl ist nicht kompatibel. Er ist invertiert, so dass der Midea_ir.cpp Code angepasst werden muss.

Die Installation der ESPHome Umgebung erfolgt auf einem Windows 11 Rechner.

Eine genaue Anleitung ist unter „https://esphome.io/guides/getting_started_command_line“ verfügbar.

Quelldatei anpassen

C:\Users\USERXXX\AppData\Local\Programs\Python\Python313\Lib\site-packages\esphome\components\midea_ir

Für die Buderus Klimaanlage muss eine Änderung am Midea Code vorgenommen werden.

Midea_ir.cpp

}
  if (data.type() == MideaData::MIDEA_TYPE_SPECIAL) {
    switch (data[1]) {
      case SpecialData::VSWING_TOGGLE:
        this->swing_mode = this->swing_mode == climate::CLIMATE_SWING_OFF /* JST CLIMATE_SWING_VERTICAL */ ? climate::CLIMATE_SWING_OFF
                                                                               : climate::CLIMATE_SWING_VERTICAL;
        break;
      case SpecialData::TURBO_TOGGLE:
        this->preset = this->preset == climate::CLIMATE_PRESET_BOOST ? climate::CLIMATE_PRESET_NONE
                                                                     : climate::CLIMATE_PRESET_BOOST;
        break;
    }
    this->publish_state();
    return true;
  }

ESP32 Konfiguration

Die Konfiguration kann mittels eine Wizards von ESPHome erzeugt werden.

c:\>esphome wizard PFAD\ir-klima.yaml

Die erzeugte Datei enthält alle Informationen zur Sicherheit und zum ESP Board. Die Funktion muss jetzt bestimmt werden, unter dem climate: Abschnitt.

esphome:
  name: ir-klima
  friendly_name: IR-Klima

esp32:
  board: esp32dev
  framework:
    type: arduino

climate:
  - platform: midea_ir
    name: "Wohnzimmer"

# Enable logging
logger:

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

ota:
  - platform: esphome
    password: "EIGENES-OTA-PASSWORT"

wifi:
  ssid: EIGENE-SSID
  password: "EIGENES-PASSWORT"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Ir-Klima Fallback Hotspot"
    password: "EIGENES-PASSWORT"

captive_portal:

Externer Tempeartur Sensor

In der Home Assistant Ansicht wird eine Ist-Temperatur angezeigt. Diese ist im Allgemeinen 0, da die jetzige Version keine Daten empfangen kann. Es ist jedoch möglich Quellen aus Home Assistant zu übernehmen. Dafür ist eine sensor Definition mit einem Verweis auf Home Assistant zu Definieren. unter der id kann auf die Home Assistant entity_id zugegriffen werden. Der sensor.wohnzimmer_extern_temperatur zeigt in meinem Fall auf Fritz 440 Daten.

sensor: 
  - platform: homeassistant
    entity_id: sensor.wohnzimmer_extern_temperatur
    id: wohnzimmer_extern_temperatur

climate:
  - platform: midea_ir
    name: "Wohnzimmer"
    visual: 
        min_temperature: 15 °C
        max_temperature: 25 °C
        temperature_step: 1.0
    sensor: wohnzimmer_extern_temperatur

ESPHome ir-klima.yaml kompilieren

Kompilieren des Projektes ir-klima:

c:\>esphome run C:\Users\USRXXX\Documents\Arduino\Projekte\ESPHome\ir-klima.yaml

Das Ergebnis liegt dann auf:

C:\Users\USRXXX\Documents\Arduino\Projekte\ESPHome.esphome\build\ir-klima.pioenvs\ir-klima

Datei auf Device laden

Es kann Chrome verwendet werden. Firefox funktioniert nicht.

https://web.esphome.io

Climate Home Assistant Darstellung

https://esphome.io/components/climate/index.html

Nach oben scrollen