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