Midea Smart-Home-Integration, kostenlos und Open Source

Midea-Klimaanlagen, Wärmepumpen, Luftentfeuchter und baugleiche Marken, im lokalen Netzwerk.
Steuere deine Midea-Klimaanlagen aus Gladys, im lokalen Netzwerk: Ein/Aus, Modus, Sollwert, Lüfterstufe, Schwenken, Eco-, Turbo- und Nachtmodus, Innen- und Außentemperatur sowie den Energieverbrauch der Geräte, die ihn messen.
Ohne die Hardware entwickelt: Rückmeldungen sind willkommen („Developed without the hardware: feedback welcome“). Diese Integration wurde mit aufgezeichneten Frames echter Geräte geschrieben und getestet, nicht mit einer physischen Klimaanlage. Melde auf GitHub, was funktioniert und was nicht.
Diese Integration steht in keiner Verbindung zu Midea.
Kompatible Hardware
Entscheidend ist die App, nicht die Marke auf dem Gerät: Eine Klimaanlage (Midea-Gerätetyp 0xAC), deren WLAN-Modul in einer dieser Apps eingerichtet ist, funktioniert mit dieser Integration:
- SmartHome / MSmartHome, NetHome Plus, Midea Air, Toshiba AC NA, Arctic King.
Midea baut für viele Marken; Geräte verwandter Marken wie Comfee, Carrier oder mancher Toshiba-Serien nutzen oft diese Apps. Split-, Fenster- und mobile Geräte sprechen alle dasselbe Protokoll.
Luft-Wasser-Wärmepumpen (Midea-Gerätetyp 0xC3, der „Heat Pump Wi-Fi Controller“ einer hydraulischen Wärmepumpe, z. B. Modell 171H120F) werden ebenfalls unterstützt: Heizzonen, Warmwasser, Eco- und leiser Modus, Wasser- und Außentemperaturen. Im Tab „Entdecken“ erscheinen sie wie die Klimaanlagen.
Luftentfeuchter (Midea-Gerätetyp 0xA1: Midea, Comfee, Inventor... in der App SmartHome / MSmartHome eingerichtet) werden ebenfalls unterstützt.
Nicht unterstützt: andere Midea-Geräte (Warmwasserbereiter, Ventilatoren...), die die Suche als „nicht unterstützt“ meldet, und die allerersten WLAN-Module (Protokoll V1, um 2015).
Voraussetzungen
- Gladys 5.2.0 oder neuer.
- Die Klimaanlage im selben lokalen Netzwerk wie Gladys, einmal in ihrer App eingerichtet (das WLAN-Modul muss mit deinem Netzwerk verbunden sein).
- Für die seit etwa 2020 verkauften Geräte (Protokoll V3): einmal ein Internetzugang, um den Schlüssel des Geräts aus der Midea-Cloud zu holen. Danach ist alles lokal.
Installation und Konfiguration
- Öffne in Gladys Integrationen → Von GitHub installieren und gib
https://github.com/guim31/gladys-mideaein. - Akzeptiere auf dem Installationsbildschirm die Anfrage zur Netzwerkerkennung: Gladys sendet die Midea-Suchanfrage für die Integration in dein Netzwerk (UDP-Ports 6445 und 20086).
- Öffne den Tab Konfiguration der Integration. Die Einstellungen:
- IP-Adressen der Klimaanlagen: optional, nur für Geräte, die die automatische Suche nicht findet (anderes Subnetz, Router, der Broadcasts filtert). Gib ihnen in deinem Router eine feste Adresse.
- Aktualisierungsintervall: wie oft jedes Gerät gelesen wird (standardmäßig 30 Sekunden).
- Sprache der Gerätenamen: Sprache der Namen neuer Geräte und ihrer Funktionen (standardmäßig Französisch).
- Piepton bei jedem Befehl: standardmäßig aus, damit eine Szene in der Nacht still bleibt.
- Format der Energiedaten: Lass „Standard (BCD)“, außer die angezeigte Leistung oder Energie ist unsinnig.
- Schlüssel neuerer Geräte (V3): die Cloud-App, in der deine Geräte eingerichtet sind (standardmäßig NetHome Plus, oder SmartHome: die App MSmartHome, die auch Comfee und andere Marken nutzen), die Cloud-Region der öffentlichen Konten, mit denen die Schlüssel geholt werden (standardmäßig Europa), oder dein eigenes Konto dieser App, in Eigenes Cloud-Konto und Passwort dieses Kontos (beide optional).
- Token und Schlüssel von Hand: optional, nur für ein V3-Gerät, für das die Cloud keinen Schlüssel liefert (siehe unten).
- Öffne den Tab Entdecken: Jedes gefundene Gerät erscheint als „Klimaanlage“, gefolgt von den letzten vier Zeichen seines WLAN-Namens. Füge die gewünschten zu Gladys hinzu.
Die Schaltfläche Klimaanlagen suchen (Tab Konfiguration) startet eine neue Suche und listet jedes gefundene Gerät mit Adresse, Protokoll und ob es antwortet.
Zu den Schlüsseln der V3-Geräte
Ein V3-Gerät spricht nur mit einem Client, der sein Token und seinen Schlüssel kennt. Midea legt sie in seiner Cloud unter dem Gerät selbst ab, nicht unter einem Konto, aber nur in der Cloud der App, in der das Gerät eingerichtet wurde: NetHome Plus oder SmartHome (MSmartHome). Die Integration holt sie einmal, mit öffentlichen Konten beider Apps (die Praxis der freien Bibliotheken msmart-ng und midea-local) oder mit deinem eigenen Konto, wenn du es eingibst (an beiden Clouds probiert, danach die öffentlichen Konten): zuerst die gewählte App, dann die andere, sodass ein Gerät aus beiden Apps seinen Schlüssel bekommt, ohne dass du etwas änderst. Danach werden sie im Volume der Integration (/data) gespeichert und nie in die Protokolle geschrieben. Wird das Gerät zurückgesetzt oder in seiner App neu gekoppelt, bemerkt die Integration den abgelehnten Schlüssel und holt einen neuen.
Geräte und Funktionen
Jede Klimaanlage ist ein Gladys-Gerät. Welche Funktionen es hat, hängt davon ab, was das Gerät meldet:
| Funktion | Was sie tut |
|---|---|
| Ein/Aus | Schaltet das Gerät ein oder aus. |
| Modus | Automatisch, Kühlen, Heizen, Entfeuchten, Nur Lüften (nur die Modi des Geräts). |
| Solltemperatur | Der Sollwert, in halben Grad, wenn das Gerät sie annimmt, in seinem Bereich (meist 16 bis 30 °C). |
| Lüfterstufe | Automatisch, Leise, Niedrig, Mittel, Hoch, Maximal (nur die Stufen des Geräts). |
| Vertikales Schwenken, Horizontales Schwenken | Schwenken oder fest, wenn das Gerät die Lamelle hat. |
| Innentemperatur | Die vom Innengerät gemessene Temperatur. |
| Außentemperatur | Die vom Außengerät gemessene Temperatur, wenn es eine meldet. |
| Luftfeuchtigkeit innen | Wenn das Gerät einen Feuchtesensor hat. |
| Eco-Modus, Turbo, Nachtmodus | Die Voreinstellungen des Geräts. Eco und Turbo schließen sich aus. |
| Leistungsaufnahme, Verbrauchte Energie | Momentanleistung (W) und Gesamtenergie (kWh), für Geräte mit Energiezähler. |
Änderungen per Fernbedienung oder App werden beim nächsten Lesen übernommen.
Wärmepumpen
Eine Wärmepumpe (Typ 0xC3) ist ein eigenes Gladys-Gerät, benannt „Wärmepumpe“, gefolgt von den letzten vier Zeichen ihres WLAN-Namens. Die Funktionen folgen der Anlage, die sie meldet (eine oder zwei Zonen, Warmwasser, nur Heizen oder Heizen und Kühlen):
| Funktion | Was sie tut |
|---|---|
| Modus Zone 1, Modus Zone 2 | Aus, Heizen, Kühlen, Automatisch: Aus stoppt die Zone, die anderen Werte stellen den Betriebsmodus der Wärmepumpe ein, der für beide Zonen gilt. Zone 2 nur bei zwei Zonen. |
| Sollwert Zone 1, Sollwert Zone 2 | Die Wassertemperatur der Zone (ganze Grad) oder die Raumtemperatur bei einer Zone mit Raumthermostat (in halben Grad), innerhalb der Grenzen, die das Gerät meldet. |
| Warmwasser, Warmwasser-Sollwert | Warmwasser ein oder aus und sein Sollwert innerhalb der Grenzen des Geräts. |
| Speichertemperatur | Die im Speicher gemessene Temperatur. |
| Außentemperatur, Wassereintrittstemperatur, Wasseraustrittstemperatur | Von Außen- und Hydraulikeinheit gemessen, wenn das Gerät sie liefert. |
| Betrieb Zone 1, Betrieb Zone 2 | Ruhe, Heizen oder Kühlen: was die Zone gerade tut (Ruhe, wenn sie aus ist oder das Gerät Warmwasser bereitet). |
| Heizkurve Zone 1, Heizkurve Zone 2 | Der Wasser-Sollwert der Zone folgt der Außentemperatur (die an der Steuerung eingestellte Kurve). |
| Warmwasserbereitung | Das Gerät heizt gerade das Warmwasser. |
| Wasserdurchfluss, Wasserdruck | Durchfluss des Heizkreises (m³/h) und sein Druck (kPa). |
| Eco-Modus, Leiser Modus, Extra leiser Modus | Die Voreinstellungen des Geräts. Der extra leise Modus ist die leiseste Stufe des leisen Modus, wenn das Gerät sie anbietet. |
| Verdichter, Abtauen, Elektrischer Zuheizer | Ob der Verdichter läuft, die Außeneinheit abtaut, ein Heizstab (Zusatz oder Speicher) hilft. |
| Verdichter-Betriebsstunden | Betriebsstunden des Verdichters, sobald das Gerät sie gesendet hat. |
| Fehlercode | Der Code, den die Steuerung anzeigt (E8, P1, H6...), oder „Kein Fehler“. Der Auslöser „Gerätefehler“ liefert ihn als error_display. |
| Leistungsaufnahme | Die momentane Leistung (W), wenn das Gerät sie liefert. |
| Verbrauchte Energie, Erzeugte Wärme (kWh) | Insgesamt verbrauchter Strom und erzeugte Wärme (kWh), sobald das Gerät seine Zähler gesendet hat. Das Verhältnis beider ist die Jahresarbeitszahl (COP). Die Wärme ist ein einfacher Zähler, damit Gladys sie nicht als Strom zählt. |
Der Zusatzheizstab des Speichers, das schnelle Warmwasser und die Legionellen-Desinfektion bleiben dem Gerät und seiner Steuerung überlassen. Das Widget „Midea-Gerät“ hat eine Wärmepumpen-Ansicht (siehe Widget); die Szenenaktion „Klimaanlage starten“ ist nur für Klimaanlagen; der Auslöser „Gerätefehler“ funktioniert auch für Wärmepumpen. Die Unterstützung der Wärmepumpen wurde nach dem Code von midea-local geschrieben und wartet auf Rückmeldungen von echten Geräten.
Luftentfeuchter
Ein Luftentfeuchter (Typ 0xA1) ist ein eigenes Gladys-Gerät, benannt „Luftentfeuchter“, gefolgt von den letzten vier Zeichen seines WLAN-Namens. Gladys hat keine Luftentfeuchter-Kategorie: Modus, Lüfterstufe und Zielfeuchte sind Auswahllisten, wie bei der Tuya-Integration.
| Funktion | Was sie tut |
|---|---|
| Ein/Aus | Schaltet den Luftentfeuchter ein oder aus. |
| Modus | Sollwert, Dauerbetrieb, Automatisch, Wäschetrocknung, Schuhtrocknung. |
| Lüfterstufe | Sehr niedrig, Niedrig, Mittel, Hoch, Automatisch. |
| Zielfeuchte | 35 bis 85 %, in Schritten von 5 (der Sollwert des Modus „Sollwert“). |
| Luftfeuchtigkeit, Temperatur | Vom Gerät gemessen. |
| Füllstand des Wassertanks, Wassertank voll | Der Füllstand (%) und ob er den am Gerät eingestellten Stand erreicht hat. |
| Kindersicherung, Ionisator, Schwenken | Die Optionen des Geräts. |
| Ablaufpumpe | Nur bei einem Gerät, das eine hat. |
Der Auslöser „Filter muss gereinigt werden“ funktioniert auch für Luftentfeuchter. Die Szenenaktion „Klimaanlage starten“ und das Widget sind nur für Klimaanlagen. Die Unterstützung der Luftentfeuchter wurde nach dem Code von midea-local geschrieben und wartet auf Rückmeldungen von echten Geräten.
Widget
Das Widget Midea-Gerät (wähle das Gerät in seinen Einstellungen) passt sich der Geräteart an. Bei einer Klimaanlage zeigt es die Raumtemperatur, den Sollwert und die Außentemperatur (oder die Feuchte), dann den Modus, den Lüfter, den Filterzustand und den Fehlercode des Geräts. Seine Tasten:
- Einschalten / Ausschalten;
- −0,5 °C und +0,5 °C (in 1-°C-Schritten bei Geräten ohne halbe Grad);
- Modus und Lüfter: ein kleines Formular, um Modus und Lüfterstufe zusammen zu wählen; das Gerät wird eingeschaltet.
Bei einer Wärmepumpe zeigt es den Sollwert von Zone 1, die Speicher- und die Außentemperatur, dann was gerade läuft: jede Zone (Modus, heizt oder Ruhe), das Warmwasser (ein/aus, Sollwert, Bereitung), den Verdichter (mit Abtauen und Zuheizer), die Leistungsaufnahme, den Wirkungsgrad seit Beginn der Zähler (COP (gesamt): erzeugte Wärme geteilt durch verbrauchten Strom) und den Fehlercode. Seine Tasten:
- Zone 1 ein / Zone 1 aus: Zone 1 startet wieder im Betriebsmodus des Geräts;
- −1 °C und +1 °C auf den Sollwert von Zone 1 (in halben Grad bei einer Zone mit Raumthermostat), innerhalb der Grenzen, die das Gerät meldet;
- Einstellungen: ein kleines Formular für den Modus von Zone 1, das Warmwasser und seinen Sollwert und den Eco-Modus (bei einem Gerät ohne Warmwasser auch den leisen Modus). Zone und Warmwasser gehen in einem einzigen Rahmen.
Szenen-Auslöser
- Filter muss gereinigt werden: Das Gerät verlangt eine Reinigung seines Filters. Praktisch, um dir eine Nachricht zu schicken.
- Gerätefehler: Das Gerät meldet einen neuen Fehlercode. Der Code steht der Szene als Variable (
error_code) zur Verfügung, etwa für eine Nachricht.
Szenen-Aktion
- Klimaanlage starten: Schaltet das Gerät mit Modus, Sollwert und Lüfterstufe in einem Befehl ein (ein Piepton, kein Zwischenzustand), wo die Standardaktionen von Gladys einen Befehl pro Funktion senden würden. Ein leeres Feld behält die aktuelle Einstellung. Der Sollwert nimmt halbe Grad an (
24,5oder24.5). Der übernommene Sollwert wird an die Szene zurückgegeben.
Zum Ausschalten oder um eine einzelne Einstellung zu ändern, nutze die Standardaktion „Ein Gerät steuern“ von Gladys.
Szenenbeispiele
- Schlafzimmer vor dem Schlafengehen kühlen: um 21:30 Uhr, wenn das Schlafzimmer über 26 °C hat, „Klimaanlage starten“ in Kühlen auf 24 °C, Lüfter Leise, dann den Nachtmodus einschalten.
- Niemand zu Hause: Wenn die letzte Person geht, alle Klimaanlagen ausschalten.
- Filter-Erinnerung: bei „Filter muss gereinigt werden“ die Nachricht „Filter der Wohnzimmer-Klimaanlage reinigen“ senden.
- Störungsalarm: bei „Gerätefehler“ eine Nachricht mit dem Fehlercode (
error_code) senden.
Aktualisierung und Netzwerk
- Die Integration liest jedes Gerät selbst, standardmäßig alle 30 Sekunden, über das lokale Netzwerk (TCP-Port 6444). Die Abfrage durch Gladys dient nur als Rückfall. Jedes Lesen sind wenige kleine Frames: kein Internet, kein Kontingent.
- Nur geänderte Werte werden an Gladys gesendet, dazu alle 6 Stunden eine Erinnerung, damit ein stabiler Wert nie veraltet wirkt.
- Alle 30 Minuten läuft eine neue Suche, um einem Gerät mit geänderter Adresse zu folgen.
- Die Midea-Cloud wird nur kontaktiert, um den Schlüssel eines V3-Geräts zu holen, das noch keinen hat.
Fehlerbehebung
- Kein Gerät gefunden: Prüfe, ob es in seiner App verbunden und im selben Netzwerk wie Gladys ist; gib seine IP-Adresse in der Konfiguration ein; starte Klimaanlagen suchen.
- „Ein neueres Gerät (V3) hat keinen Schlüssel“: Gladys konnte die Midea-Cloud nicht erreichen, oder die öffentlichen Konten der Region kennen das Gerät nicht. Probiere eine andere Cloud-Region oder gib dein eigenes Konto der App ein, in der das Gerät eingerichtet ist (wähle diese App unter Cloud-App), dann starte Klimaanlagen suchen erneut.
- Die Cloud liefert keinen Schlüssel (manche Wärmepumpen): Wenn die Home-Assistant-Integration Midea AC LAN schon mit dem Gerät spricht, kopiere ihren Token und Schlüssel (aus ihrer gespeicherten Konfiguration) in Token und Schlüssel von Hand, als
token:schlüssel, dann starte Klimaanlagen suchen erneut. - Das Gerät antwortet nicht: Prüfe, ob es Strom hat und ob sich seine Adresse nicht geändert hat; ein Modul nimmt nur eine Verbindung gleichzeitig an, schließe also andere lokale Werkzeuge, die mit ihm sprechen.
- Unsinnige Leistungs- oder Energiewerte: Stelle das Format der Energiedaten auf „Binär“.
- Diagnose der Geräte (Tab Konfiguration, nur lesend): ein Textbericht der Installation: Konfiguration ohne Token, Schlüssel oder Passwort, Erkennung, gefundene, aber nicht unterstützte Geräte, dann jedes Gerät (Protokoll, Schlüssel vorhanden oder nicht, letzte Antwort, letzter Fehler, Fähigkeiten, letzter Zustand). Wähle ein Gerät, um nur dieses zu sehen. Kopiere den Bericht in ein GitHub-Issue.
- Ein Gerät testen (Tab Konfiguration, nur lesend): liest ein Gerät sofort, aus der Liste gewählt oder über seine IP-Adresse. Jede Abfrage seines Typs wird gesendet, mit Rohantwort, Dekodierung und Antwortzeit; es wird nie ein Befehl gesendet. Für eine noch unbekannte Adresse liefert der Bericht die Erkennungsantwort: welches Gerät es ist und ob es unterstützt wird. Genau das braucht eine Anfrage für ein neues Midea-Gerät.
- Beide Berichte kürzen IDs und Seriennummern und verbergen lokale Adressen, sie können also öffentlich gepostet werden. Die Option „IDs, Seriennummern und lokale Adressen anzeigen“ zeigt sie vollständig: Halte diesen Bericht privat; die Protokolle behalten nur die maskierte Fassung.
- Mehr Details: Setze die Umgebungsvariable
LOG_LEVELdes Containers aufdebug.
Grenzen
- Ohne die Hardware entwickelt: Rückmeldungen sind auf GitHub willkommen.
- Nur Klimaanlagen, Luft-Wasser-Wärmepumpen und Luftentfeuchter: andere Midea-Geräte werden noch nicht unterstützt.
- Lamellenpositionen, die Anzeige (LED) und erweiterte Voreinstellungen (Breeze, iECO, Frischluft...) werden nicht unterstützt.
- Die Module der ersten Generation (V1) werden nicht unterstützt.
- Gladys zeigt den Sollwert auf manchen Bildschirmen in ganzen Grad; das Gerät selbst nimmt halbe Grad an.
- Der Schlüssel eines V3-Geräts braucht einmal die Midea-Cloud: Schließt Midea diesen Dienst, funktionieren bereits bekannte Geräte weiter.
Konfigurationseinstellungen
Diese Einstellungen fragt Midea in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Deine Klimaanlagen finden | section | Nein | Midea-Geräte und die verwandter Marken mit denselben Apps (Comfee, Carrier, manche Toshiba...) im selben Netzwerk wie Gladys werden automatisch gefunden: Öffne den Tab „Entdecken“. Lass sie in ihrer App eingerichtet. Fehlt eines, gib unten seine IP-Adresse ein. |
| IP-Adressen der Klimaanlagen | string | Nein | Optional, durch Kommas getrennt. Nur für Geräte nötig, die die automatische Erkennung nicht findet. |
| Aktualisierungsintervall | select | Nein | Wie oft jedes Gerät gelesen wird, um Änderungen per Fernbedienung oder App zu verfolgen. |
| Sprache der Gerätenamen | select | Nein | Namen für neue Geräte und ihre Funktionen (Modus, Lüfterstufe...). |
| Piepton bei jedem Befehl | boolean | Nein | Das Gerät piept, wenn Gladys eine Einstellung ändert, wie bei der Fernbedienung. |
| Format der Energiedaten | select | Nein | Geräte mit Energiezähler codieren ihn auf eine von zwei Arten. Nur ändern, wenn die angezeigte Leistung oder Energie unsinnig ist. |
| Schlüssel neuerer Geräte (V3) | section | Nein | Seit etwa 2020 verkaufte Geräte brauchen einen Schlüssel, der einmal aus der Midea-Cloud geholt und dann in Gladys gespeichert wird: Alles andere bleibt lokal. Standardmäßig werden öffentliche Konten genutzt; du kannst stattdessen dein eigenes NetHome-Plus- oder SmartHome-Konto eingeben. |
| Cloud-App | select | Nein | Die App, in der deine Geräte eingerichtet sind. Die andere wird auch probiert, wenn der Schlüssel nicht geholt werden kann. |
| Cloud-Region | select | Nein | Region des öffentlichen Kontos. Probiere eine andere, wenn der Schlüssel nicht geholt werden kann. |
| Eigenes Cloud-Konto (optional) | string | Nein | Konto der oben gewählten Cloud-App. Es wird an beiden Clouds probiert, danach die öffentlichen Konten. |
| Passwort dieses Kontos (optional) | secret | Nein | |
| Token und Schlüssel von Hand (optional) | secret | Nein | Nur wenn die Cloud keinen Schlüssel liefert: token:schlüssel eines Geräts (128 und 64 Hexadezimalzeichen), wie Midea AC LAN von Home Assistant sie speichert. Mehrere Paare durch Kommas getrennt. |
So installierst du Midea in Gladys
- Öffne in Gladys Integrationen: Midea erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-midea:1.3.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-midea.
Midea benötigt Gladys >=5.2.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
Midea ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation