Nach einer ausgedehnten Suche habe ich endlich eine Methode gefunden, meine AUX Klimaanlage in Home Assistant zu integrieren, und ich teile sie gerne mit euch. Seit etwa zwei Jahren nutze ich eine AUX Split-Klimaanlage in meinem Büro und bin damit sehr zufrieden. Ein Ärgernis war jedoch, dass die App ACFreedom sich nicht mit HA verbinden ließ und die Backdoors zum Abrufen der Daten des Broadlinks für mich zu komplex waren, um sie umzusetzen.
Glücklicherweise bin ich auf das folgende Repository gestoßen:
https://github.com/GrKoR/esphome_aux_ac_component
Für die Umsetzung dieses Repositories habe ich es mir jedoch etwas leichter gemacht und nichts gelötet. Die von mir verwendete Hardware umfasst:
- ESP32 NodeMCU Development Board
- LM7805 Spannungsregler
- Jumperkabel
- Wago Klemme
- Plastikbox
Zuerst habe ich mir das YAML zusammengestellt und an meine Bedürfnisse angepasst. Es sieht nun wie folgt aus:
# Konfiguration für ESPHome mit spezifischen Einstellungen für das Gerät mit der Bezeichnung "AUX Klimaanlage".
substitutions:
name: "TBD"
friendly_name: AUX Klimaanlage
# Hauptkonfiguration für ESPHome, verwendet die oben definierten Substitutionen.
esphome:
name: ${name}
friendly_name: ${friendly_name}
name_add_mac_suffix: false
project:
name: esphome.web
version: '1.0'
# Konfiguration für den ESP32, der auf dem Nodemcu-32s-Board läuft und das Arduino-Framework verwendet.
esp32:
board: nodemcu-32s
framework:
type: arduino
# Aktiviert das Logging auf DEBUG-Ebene und verwendet die Hardware-UART1.
logger:
level: DEBUG
hardware_uart: UART1
# WiFi-Konfiguration, verwendet geheime SSID und Passwort.
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Aktiviert den Fallback-Hotspot (Captive Portal), falls die WiFi-Verbindung fehlschlägt.
ap:
ssid: "TBD"
password: "TBD"
# Ermöglicht Over-The-Air-Updates für die Firmware.
ota:
# Ermöglicht die Bereitstellung von WiFi über die serielle Schnittstelle.
improv_serial:
# API-Konfiguration mit Verschlüsselungsschlüssel.
api:
encryption:
key: "TBD"
# Captive Portal ermöglicht die Bereitstellung von WiFi-Anmeldeinformationen über den Hotspot.
captive_portal:
# Importiert ein Dashboard-Paket von GitHub für die Konfiguration.
dashboard_import:
package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
import_full_config: true
# Ermöglicht die Bereitstellung von WiFi-Anmeldeinformationen über Bluetooth LE (nur ESP32).
esp32_improv:
authorizer: none
# Konfiguration des Web-Servers für die Bereitstellung von "nächster URL" für die serielle Bereitstellung.
web_server:
# Externe Komponenten
external_components:
- source:
type: git
url: https://github.com/GrKoR/esphome_aux_ac_component
# Board Konfiguration
uart:
id: ac_uart_bus
# ATTENTION! For TX and RX use GPIO4 (D2) and GPIO5 (D1) for NodeMCU-like boards!
# See docs for details: https://github.com/GrKoR/esphome_aux_ac_component/blob/master/docs/HARDWARE-EN.md
rx_pin: GPIO16
tx_pin: GPIO17
baud_rate: 4800
data_bits: 8
parity: EVEN
stop_bits: 1
# Klimaanlagen Konfiguration
climate:
- platform: aux_ac
name: ${friendly_name}
id: aux_id
uart_id: ac_uart_bus
period: 7s
show_action: true
display_inverted: false
timeout: 150
optimistic: true
indoor_temperature: # AC Indoor Temperature
name: Innentemperatur
id: ac_indoor_temp
accuracy_decimals: 1
internal: false
outdoor_temperature: # AC Outdoor Temperature
name: Außentemperatur
id: ac_outdoor_temp
internal: false
outbound_temperature: # AC Coolant Outbound Temperature
name: Kühlmittel-Ausgangstemperatur
id: ac_outbound_temp
internal: false
inbound_temperature: # AC Coolant Inbound Temperature
name: Kühlmittel-Eingangstemperatur
id: ac_inbound_temp
internal: false
compressor_temperature: # AC Compressor Temperature
name: Kompressor Temperatur
id: ac_strange_temp
internal: false
display_state: # AC Display State
name: Anzeigestatus
id: ac_display_state
internal: false
defrost_state: # AC Defrost State
name: Abtauzustand
id: ac_defrost_state
internal: false
inverter_power: # AC Inverter Power
name: Wechselrichterleistung
id: ac_inverter_power
internal: false
inverter_power_limit_value: # AC Inverter Power Limit Value
name: Grenzwert Wechselrichterleistung
id: ac_inverter_power_limit_value
internal: false
inverter_power_limit_state: # AC Inverter Power Limit State
name: Wechselrichterleistung Grenzzustand
id: ac_inverter_power_limit_state
internal: false
preset_reporter: # AC Preset Reporter
name: Voreinstellung Reporter
id: ac_preset_reporter
internal: false
vlouver_state: # AC Vertical Louvers State
name: Vertikale Lamellen Zustand
id: ac_vlouver_state
internal: false
visual:
min_temperature: 16
max_temperature: 32
temperature_step: 1
supported_modes:
- HEAT_COOL
- COOL
- HEAT
- DRY
- FAN_ONLY
custom_fan_modes:
- MUTE
- TURBO
supported_presets:
- SLEEP
custom_presets:
- CLEAN
- HEALTH
- ANTIFUNGUS
supported_swing_modes:
- VERTICAL
- HORIZONTAL
- BOTH
Nachdem ich dieses YAML mit ESPHome auf den ESP32 geladen hatte, habe ich es zunächst in Home Assistant integriert. Alle Entitäten waren zwar sichtbar, aber natürlich nicht erreichbar.
Daraufhin habe ich verschiedene Jumperkabel genommen (Rot/Blau/Schwarz/Gelb/Grün) und diese gemäß des Repositories von GrKoR angeschlossen:
- Grün - NodeMCU 5V Pin ➜ LM7805 PIN3 (Ausgang)
- Schwarz (1) - NodeMCU GND Pin ➜ Wago Klemme
- Blau - NodeMCU GPIO16 (RX) ➜ AC TX
- Rot - NodeMCU GPIO017 (TX) ➜ AC RX
- Schwarz (2) - LM7805 PIN2 (GND) ➜ Wago Klemme
- Gelb - LM7805 PIN1 (Eingang) ➜ AC Vcc
- Schwarz (3) - Wago Klemme ➜ AC GND
Nun habe ich alles in HA integriert und konnte es meiner Heizungssteuerung hinzufügen. Als nächstes kommen noch Automationen bei PV-Überschuss, damit die Klimaanlage etwas früher anspringen kann.
Ich hoffe, das Projekt gefällt dem ein oder anderen und kann nun seine Klimaanlage auch in HA integrieren. Über einen regen Austausch hier im Forum würde ich mich sehr freuen, Verbesserungen sind gerne willkommen.
MfG Joscha