TCL & Kältebringer Split-Klimaanlagen lokal steuern – smart mit ESP32 & Home Assistant, ganz ohne Tuya oder Cloud

Ja, komplett ohne Cloud. Einfach nur den SLWW statt des originalen Kältebringer WIFI-Moduls angesteckt. (Vorher natürlich noch mit ESP-Home “eingebunden”)
Teste grad aktuell noch alle Funktionen - sieht aber alles gut aus.

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)


Habe wie von hain empfohlen auch den Webserver aktiviert
web_server:
port: 80

1 „Gefällt mir“

Okay, ein usb Anschluss habe ich nicht

Hi Floh,

dann hast Du sicherlich eine ältere Anlage und nicht die ganz neue.
Ganz oben in diesem Thema bin ich auf die beiden alten Module eingegangen und auch auf die Stecker wird dann folgend eingegangen.

Wenn noch was unklar ist, einfach direkt fragen :wink:

1 „Gefällt mir“

Vielen vielen Dank ! Ich bin überwältigt.

Ich werde es gleich testen , die Anlage ist jetzt ca. 1 Jahr verbaut .

KB34-12000BTU und KB51-18000BTU.

Bj 2024

Theoretisch, kann ich ja auch an die 4 Leitungen einen usb Stick anschließen oder ?

Update:
So, habe jetzt soweit alles gemacht . Keine Fehlermeldung. Aber die Steuerelemente sehe ich nicht. Es gibt auch. Nur eine Entität .

Hab ich da eben was übersehen ?

Vielen vielen Dank ! Ich bin überwältigt.

Ich werde es gleich testen , die Anlage ist jetzt ca. 1 Jahr verbaut .

KB34-12000BTU und KB51-18000BTU.

Bj 2024

Theoretisch, kann ich ja auch an die 4 Leitungen einen usb Stick anschließen oder ?

Update:
So, habe jetzt soweit alles gemacht . Keine Fehlermeldung. Aber die Steuerelemente sehe ich nicht. Es gibt auch. Nur eine Entität .

Hab ich da eben was übersehen ?

Ein Fehler ist aufgetreten: Entschuldige, neue Benutzer können leider nur 2 eingebettete Medienelemente in einen Beitrag einfügen.

Kann den Beitrag leider nicht weiter bearbeiten, sind wohl zu viele Bilder. Es muss Rückfehler gewesen sein, geht jetzt. Sehe aber diese Meldung

:crayon:by HarryP: Zusammenführung Mehrfachpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Meine Anlage habe ich letztes Jahr im August verbaut. Kältebringer scheint da wechselnde Boards/Module zu verbauen.

1 „Gefällt mir“

Moin ,

Hattest du auch diese Meldung ?

Läuft so alles , konnte kein Fehler erkennen .

Was möchte da noch ein Update?

Grüße Floh

Moin,

welchen ESP, welches Board verwendest Du?

Moin moin ,

ESP 32 D1 Mini , aber ne günstige Version von Amazon 3stk 14€ . Hatte ich zum Anfang mal zum Testen bestellt . Hersteller ist keiner bekannt . Kann die Warnung vom esp verursacht sein ?

Welchen nutzt du ? Sind die von Az besser?

Floh

Bei meinen Versuchen mit dem D1 mini habe ich nur Folgendes im Kopf angegeben, ohne Framework und Type:

esphome:
  name: test
  friendly_name: Test

esp32:
  board:  esp01_1m

# Enable logging
logger:

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

@harryp
Die Formatierung war vorhin von meinem Smartphone leider nicht möglich :thinking:

Doch, ist es. :wink: Im Zweifelsfall oben links auf Markdown umschalten.

2 „Gefällt mir“

Du warst mal wieder schneller, wollte ich auch gerade schreiben… :rofl:

1 „Gefällt mir“

ok, danke für die Info.

Moin,

Das werde ich gleich mal probieren, gestern war leider meine Zeit dafür .

Meld mich , ob die Warnung weg ist .

Nutzt ihr die normale Thermostatkarte? Wollte noch mal die von Better Thermostat versuchen , möchte zwei externe Temperatursensoren einbinden Außentemperatur und die Temperatur im Raum .

Hallo @All
Ich bin hier neu und begrüße alle hier.
Habe gerade mit Home Assistant angefangen.
Das mit dem ESP32 und der Klimaanlage ist mir gleich ins Auge gefallen.
Leider ferstehe ich bis jetzt nicht was man damit machen soll.
Habe mir bei Amazon die gekauft ESP32 USB C NodeMCU Development Board, CH340C Chip.
Leider ferstehe ich nur Bahnhof.
Könnte mir jemand von vorne erklären wie ich diesen Programieren kann?
Grüße und schönen Sonntag Micha

Hallo @ All

Jetzt bin ich schon ein kleines Stück weiter gekommen.
Habe im Home Assistant den ESPHome Builder installiert.

  • habe die Seite " Web - ESPHome" geöffnet
  • mein esp32-wroom-32 Device den ich per USB am Laptop habe wurde gefunden
  • danach habe ich auf “PREPARE FOR FIRST USE” gedrückt und er hat auch was getan
  • dann wieder auf die Seite ESPHome Builder und siehe da es steht jetzt ein DEVICE “ESPHOME Web 36181c”
  • wiederum dann auf install Manual download und es läuft durch
  • ich denke aber es fehlt noch was in dieser datei

esphome-web-36181c.yaml

esphome:
  name: splitanlage-diloc-flur
  friendly_name: Splitanlage Diloc Flur
  min_version: 2025.5.0
  name_add_mac_suffix: false

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
- platform: esphome

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

web_server:
  port: 80

  • wenn ich diese nehme ein wenig abgeändert kommen diese fehler
esphome:
  name: splitanlage-diloc-flur
  friendly_name: Splitanlage Diloc Flur

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "fXMVlhHnTmMpO5pEh6uuho3OxnflL1scNt6Fqv76+m8="

ota:
  password: "080df085fea999621b648608259a589c"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Splitanlage-1OG-ESPmini"
    password: "Go2Fallback!"

web_server:
  port: 80    

captive_portal:
    
substitutions:
# Eindeutiger Name für diese Konfiguration – verwende nur lateinische Buchstaben und Zahlen,
# keine Leerzeichen oder Sonderzeichen, z. B. "tclac".
# Wenn du mehrere Klimamodule hast, muss device_name entsprechend geändert werden,
# z. B. durch Anhängen von Zahlen: tclac1, tclac2, tclac3…
  device_name: Splitanlage_1OG_ESPmini
# Menschlich lesbarer Name für das Klimagerät, angezeigt in der Benutzeroberfläche:
  humanly_name: Splitanlage 1OG (ESPmini)
# GPIO-Pins des Moduls, an die UART angeschlossen ist:
  uart_rx: GPIO3
  uart_tx: GPIO1
# GPIO-Pins für Status-LEDs (Empfang/Senden). Funktionieren nur, wenn "leds" in "packages" aktiviert ist.
# Falls du keine LEDs verwenden möchtest, kannst du hier beliebige Werte eintragen.
  receive_led: GPIO6
  transmit_led: GPIO4

uart:
  tx_pin: GPIO21
  rx_pin: GPIO20
  baud_rate: 9600

# Eingebundene Dateien – werden automatisch aus dem Internet geladen und aktualisiert.
# Kommentiere die gewünschten Optionen ein.
# Beschreibung der Optionen:
# - packages/leds.yaml – LEDs zur Anzeige von Senden/Empfangen; Pins über receive_led / transmit_led definieren
#
# Alle eingetragenen Zeilen müssen exakt auf dieser Einrückungsebene stehen – sonst kommt es zu Fehlern!
packages:
  remote_package:
    url: https://github.com/sorz2122/tclac.git
    ref: master
    files:
    # v – Zeilen müssen exakt hier ausgerichtet sein, sonst gibt’s Probleme!
      - packages/core.yaml # Das Herzstück des Ganzen
      # - packages/leds.yaml
    refresh: 30s
  • Fehler Nr. 1
INFO ESPHome 2025.8.0
INFO Reading configuration /config/esphome/esphome-web-36181c.yaml...
Failed config

ota.unknown: [source /config/esphome/esphome-web-36181c.yaml:19]
  
'ota' requires a 'platform' key but it was not specified.
password: 080df085fea999621b648608259a589c

und jetzt bin ich am Ende und weiß nicht weiter

Könntet Ihr mir bitte helfen
Grüße Micha

Hallo Micha,
ich bin gerade im Urlaub und kann mich der Sache erst Ende nächster Woche widmen.
Falls Du bis dahin einem Lösung gefunden hat, einfach mal posten, sonst leider noch etwas warten.
Viele Grüße, Hain

Hallo @ hain

Habe es erstmal soweit hinbekommen.
Ich habe leider nirgens was darüber gefunden was hier rein kommt.

Enable Home Assistant API
api:encryption:key: !secret api_key = irgendeinen Key kann man sich alleine ausdenken ?

Allow Over-The-Air updates
ota:platform: esphomepassword: !secret ota_password = Passwort von Home Assistant

So habe ich es verstanden.

Meine esphome-web-
yaml sieht jetzt so aus und diese funktioniert mit einen ESP32-WROOM-32

esphome:
  name: klima-anlage-oben
  friendly_name: Klima Anlage Oben

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

# Enable Home Assistant API
api: 
  encryption:
    key: !secret api_key

# Allow Over-The-Air updates
ota:
  platform: esphome
  password: !secret ota_password

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

  ap:
    ssid: "Splitanlage"
    password: "!Go2theFallback!"

web_server:
  port: 80    

captive_portal:
    
substitutions:
  device_name: Klima_Anlage_Oben
  humanly_name: Klima Anlage Oben
  uart_rx: GPIO3
  uart_tx: GPIO1

packages:
  remote_package:
    url: https://github.com/sorz2122/tclac.git
    ref: master
    files:
      - packages/core.yaml
    refresh: 30s

Es wird ja eine secrets.yaml wo alle Daten gespeichert werden können
z.B. WLAN ,PASSWÖRTER ,KEYS

Danke nochmal Grüße Micha

Moin, erstmal danke an alle die hier so mächtig Diskutiert und ihre Ergebnisse geteilt haben - ich habe mich sehr daran Orientiert & Versucht und bin nun selbst auf dieses Ergebnis gekommen:

Anstelle der eher älteren ESP32 die hier oft verwendet wurden habe ich persönlich auf einen ESP32 S3 gesetzt - genauer gesagt den Seeed Studio Xiao-ESP32-S3. Der Grund für diese Wahl ist bei mir auf diesen gefallen da:

  1. Der S3 moderner mit besserer Sicherheit fürs gesamte Heimnetz ist,
  2. Die Seeed Studio Xiao Modelle extrem winzig sind (nochmal kleiner als der C3 Super Mini),
  3. Und ich ursprünglich einen noch deutlich moderneren ESP32-C6 verwenden wollte, welcher unter anderem Wifi 6 mit WPA3 Sicherheit unterstützt - aber zum aktuellen stand unter ESPHome leider nur mit der esp32-idf und noch nicht mit der arduino verwendet werden kann (und mein versuch via esp32-idf leider ohne Erfolg war)… Da ich aber auch noch eben diese S3 hatte, habe ich dann halt den Verwendet. Falls jemand zukünftig hier eine Methode für den ESP32 C6 findet, gerne mich markieren oder direkt anschreiben!

So sieht mein soweit funktionierendes Produkt zum aktuellen Stand aus.
Meine Kältebringer verfügt über einen USB-A Female Anschluss:

Beim Stecker rechts auf dem Mainboard ist bei mir (bei euch könnte es auch anders sein):
Schwarz = GND auf dem USB-A Male = GND auf dem ESP32
Braun = D+ auf dem USB-A Male = TX auf ESP32
Orange = D- auf dem USB-A Male = RX auf ESP32
Rot = VBUS auf dem USB-A Male = 5V auf ESP32


[/grid]

Und das hier ist mein ESPHome Code welchen ich aktuell verwende. Dabei habe ich mich am Code von @aezaekiel orientiert und das ganze basierend auf der Midea Platform gebaut. Ich habe seinen Code an einigen stellen jedoch noch angepasst, verbessert und erweitert:

esphome:
  name: klimaanlage-wohnzimmer
  friendly_name: "Klimaanlage Wohnzimmer"

esp32:
## Bei anderen S3 Boards (und auch diesem hier) kann man auch einfach 
## den Standard "esp32-s3-devkitc-1" bei board eintragen.
  board: seeed_xiao_esp32s3
  framework:
    type: arduino

substitutions:
  node_name: ac_wz
  node_id: ac_wz
  friendly_node_name: "Klimaanlage Wohnzimmer"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: ${node_name}_ap
    password: "NotfallAccessPointPasswort"
## Kann auch durch "none" getauscht werden damit er etwas schneller reagiert,
## dann wird der Chip Jedoch schnell mal 70-80°C Heiß.
  power_save_mode: light

captive_portal:

api:
  encryption:
    key: "*********************************************************="

ota:
  - platform: esphome
    password: "*********************************"

## Logger AUS, weil UART für die Midea-Komponente frei sein muss.
logger:
  baud_rate: 0

web_server:
  port: 80
## Optional um die Weboberfläche Passwort zu schützen.
#  im Heimnetz aber meist unnötig.
#  auth:
#    username: admin
#    password: "SicheresPasswort"

time:
  - platform: homeassistant
    id: ${node_id}_homeassistant_time

# --- UART-KOMMUNIKATION MIT DER KLIMAANLAGE ---
uart:
  tx_pin: GPIO43
  rx_pin: GPIO44
  baud_rate: 9600

# --- SENSOREN FÜR MONITORING ---
sensor:
  - platform: internal_temperature
    name: "${friendly_node_name} Chiptemperatur"
    update_interval: 60s
  - platform: wifi_signal
    name: "${friendly_node_name} WLAN Signal"
    update_interval: 60s
  - platform: uptime
    name: "${friendly_node_name} Uptime"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "${friendly_node_name} IP Adresse"

# --- HELFER & STEUERUNG ---
binary_sensor:
  - platform: status
    name: "${friendly_node_name} Status"

button:
  - platform: restart
    name: "${friendly_node_name} Neustart"
  - platform: safe_mode
    name: "${friendly_node_name} Abgesicherter Modus"

# --- HAUPTKOMPONENTE: KLIMAANLAGE ---
climate:
  - platform: midea
    id: ${node_id}_my_climate
    name: ${friendly_node_name}
    period: 2s
    timeout: 4s
    num_attempts: 3
    visual:
      min_temperature: 16 °C
      max_temperature: 30 °C
      temperature_step: 0.5 °C
    supported_modes:
      - FAN_ONLY
      - HEAT_COOL
      - COOL
      - HEAT
      - DRY
    custom_fan_modes:
      - SILENT
      - TURBO
    supported_presets:
      - ECO
      - BOOST
      - SLEEP
    custom_presets:
      - FREEZE_PROTECTION
    supported_swing_modes:
      - VERTICAL
      - HORIZONTAL
      - BOTH
## Diese Sensoren habe ich auskommentiert, da sie bei meinem Klimaanlagen-Modell keine echten Werte liefern.
## Kann zum testen ob es bei euren Modellen geht aber einfach wieder einkommentiert werden.
    # outdoor_temperature:
    #   name: "Außentemperatur"
    # power_usage:
    #   name: "Verbrauch"
    # humidity_setpoint:
    #   name: "Luftfeuchtigkeit"
  • Beim API Key und OTA Password habe ich einfach die übernommen die beim frischen installieren über ESPHome dort standen - Da tragt bitte eure ein.
  • Auch das AccessPoint (AP) Password solltet ihr zu einem frei gewähltem ändern.
  • Wenn ihr zwar einen S3 aber nicht den von Seeed Studio verwendet, dann müsstet ihr sowohl oben das board (meistens einfach “esp32-s3-devkitc-1”) als auch weiter unten die GPIO Pin Nummern zu den von eurem Board ändern - dazu gibt es meist Bilder in der Beschreibung des Shops wo ihr euren geholt habt.

Das hier ist so auf jeden fall meine Art der Umsetzung, ich hoffe diese hilft jemandem weiter.
Ich war/bin auch ein noob in dem ganzen, das Projekt war auch das erste mal das ich jemals gelötet habe (also bitte nicht über die Lötstellen wundern :joy:).
Falls jemand meins hier weiterentwickelt, Vorschläge zu Verbesserung bringt oder eine Idee zur Umsetzung mit dem ESP32-C6 hat, dann einfach hier Markieren (oder mir eine Direktnachricht schreiben).

2 „Gefällt mir“

Liebe community
ich würde gerne mein TCL/TAC über WLAN auch von außerhalb steuern – allerdings nicht über eine China-Cloud, sondern über meinen eigenen Server.
Gibt es dafür ein WiFi-Modul, das man wirklich „Plug & Play“ nutzen kann, also ohne Löten oder Programmieren?

Vielen Dank schon mal für eure Tipps!

Moin!
Was ich kenne ist der “SMlight SLWF-01” bzw. die Pro Version für rund 17€ - das ist so gesehen nur ein alternativer USB-Stick. Wie sieht denn dein Klimagerät aus, hat das für das Wifi Modul einen USB-A Anschluss oder ist das anders Verkabelt?
Ansonsten ist mein gebautes über deinem Kommentar mit rund 9€ nur halb so teuer und das komplizierteste war es die Kabel auf die richtige länge zu kürzen :sweat_smile:
Wenn du jemanden kennst der alles zum Löten hat oder es dir gar kurz Löten kann sollte auch das eigentlich kein Problem sein. Aber ja, die einfachste Variante wäre der fertige SMlight USB-Stick.
(Mein Code oben basiert tatsächlich auch auf dem des SMlight SLWF Moduls :joy:)

lieber hans

Vielen dank für deine Antwort.

Also mein Klimagerät hat ein USB A Anschluss. Ich glaube da ist auch ein Adapter von Tuya verbaut. Ich möchte das Gerät über Wifi lokal steuern. Also über meinen eigenen Server. Nicht über eine China Cloud. Nun meine Frage, welchen Adapter kann ich nutzen dafür, ohne irgendwas programmieren oder löten zu müssen. Ich möchte nur die China Cloud vermeiden.