====== Midea2Lox ====== ++++ Version History...| **Version 3.3.0** * [[https://github.com/mill1000/midea-msmart/releases/tag/2023.9.5|msmart-ng 2023.9.5]] (Weiterentwicklung von msmart, programmiert von mill1000). Enthält einige Bugfixes. * Schnellere reaktionszeit, (Device wird gecached incl capabilities und nicht jedes mal neu erstellt) * maximum connection lifetime --> kann gesetzt werden in der Pluginconfig. Standard 90 Sekunden. Während dieser Zeit bleibt die Verbindung zur Klimaanlage bestehen, die Reaktionszeit ist deutlich schneller. Meine AC akzeptiert jedoch nur eine Verbindungsdauer von ca 90 Sekunden. Das kann aber auch deutlich länger sein, bis zu einigen Stunden. Bitte selbst austesten. * Neuer Befehl: toggle_Display (siehe beispielconfig, unterstützt meine AC bisher leider nicht) * Neuer Status: %%Midea2Lox_Midea_ID_display_on %%(siehe beispielconfig,) * bei msmart-ng wurden einige befehle neu benannt was eigentlich zu einer neuen Programmierung von Loxone führen würde. Ich habe Midea2Lox jedoch dahingehend angepasst, dass die alten Loxoneconfigs nicht geändert werden müssen. * Log wird einmal die Woche gelöscht. **Version 3.2.3** Unterstützung von Device ID´s mit 15 Stellen (10 bis 20 Stellen) **Version 3.2.2** retry authenticate if Wifi connetion is lost on V3 Sticks. back to standard settings of msmsart **Version 3.2.1** kleinere Bugfixes: * get capabilities, benötigt für msmart 0.2.5 -- Abfrage was das Device überhaupt kann bevor gesendet wird... * Midea User und Passworteingabe entfernt, für discover wird immer ein Standarduser verwendet. Die Eingabe eines Accounts hat für Discover nicht mehr funktioniert * kleinere Bugfixes (retry bei fehlerhaftem send) **Version 3.2.0** * Update auf msmart 0.2.5 * support Loxberry V3.0 **Version 3.1.4** * installation von python-venv (sollte es aus rigendwelchen gründen nicht vorhanden sein) * Fehler bei einlesen der json config-datei behoben **Version 3.1.3** * Token Key und IP werden über discover / Entdecke Geräte gespeichert und müssen daher nicht mehr von Loxone übertragen werden. Lediglich die ID reicht um die gewünschte Klimaanlage zu steuern.  **Version 3.1.2** * Fix falsche Pfadangaben.. * update msmart auf 0.1.35 * Optimierung IP-Adressen Erkennung * Unterstützung nur noch für Loxberry ab Version 2.x (1.x ist mittlerweile ja doch schon alt) **Version 3.1.1 RELEASE** * siehe 3.0.0 und 3.1.0 * update msmart auf 0.1.33 → bugfixes. Es werden voraussichtlich noch Updates folgen, das Plugin läuft aber soweit stabil. * Python Pakete werden in einer venv installiert. * Bugfixes und error-logging verbessert * gefundene Geräte werden in separater Logdatei aufbereitet und abgespeichert **Version 3.1.0  Pre-Release** * update msmart auf 0.1.30 → bugfixes * Anbindung ans MQTT Gateway, falls das Plugin installiert ist. Falls nicht erfolgt die Steuerung der Loxoneeingänge wie gehabt.\\ → Änderung der Bezeichnungen der Loxone Eingänge notwendig, um die Nomenklatur des MQTT Plugins zu unterstützen. Das Plugin erkennt jedoch eine Loxoneconfig die mit Midea2Lox V2.x erstellt wurde und funktioniert noch mit den alten Loxone configs. Es wird jedoch dazu geraten auf die Config ab Midea2Lox v.3.x.x umzustellen. Die Datenübertragung über MQTT funktioniert nur wenn die Loxoneconfig auf aktuellen stand gebracht wird (siehe Beispiel) **Version 3.0.0 Pre-Release** * msmart 0.1.29 → Unterstützung der neueren OSK-103 Sticks. (Auch Midea protocol V3 genannt)\\ Zur Steuerung der neuen Sticks muss der Key und der Token aus der MideaApp für jede Klimaanlage extrahiert und über Loxone bei jedem Befehl zur jeweiligen Klimaanlage mitgesendet werden. (details siehe LoxWiki) * neue Befehle zur Steuerung von Power, Eco, Turbo und Audio/promt_Tone notwendig. (Änderung der Loxone config notwendig) jedoch werden die "älteren" Loxone Konfigurationen die mit Midea2Lox V 2.x erstellt wurden noch unterstützt (nur Steuerung der V2 Sticks). * Befehle müssen in der Loxone-config nicht mehr zwingend zusammengesetzt werden. Das zusammensetzen wird jedoch auf Grund der Fehlersicherheit empfohlen. * Beispieldatei Loxoneconfig angehängt. * größere Codeänderungen und Fehler Behebungen. Daher nur Pre-Release, zum Testen frei! **Version 2.1.6** * nur Solltemperaturen von 17-30°C werden übernommen. (Bugfix) Andere Temperaturen führen zu fehlerhaften verhalten bei den Klimaanlagen. **Version 2.1.5** * Release Version * kleinere Codefixes **Version 2.1.4** * update auf msmart 0.1.20 * fix set swingmode * bugfix turbomode * enhanced discover * nicht mehr benötigtes packet python requests bei neuinstallation entfernt. **Version 2.1.3** * Installationsprobleme behoben (fehlende Pakete werden installiert, Installation kann länger dauern! * Device support Abfrage (msmart logik). * verbessertes Logging * Bugfix discover * Update msmart auf 0.1.19 **Version 2.1.2** * fix debug logging on discover **Version 2.1.1** update to msmart 0.1.18 --> * fix decrypt ValueError * finer grained temperature control (0.5C) Version 2.1 * Cloudanbindung komplett entfernt * Gerätesuche im Lan (ohne Cloud) * len 88 Befehle ergänzt. (Support von neueren Midea Geräten) * englische Sprache ergänzt * ... mehrere kleinere Bugfixes im Script ... Version 2.0 * Umstellung von Cloudsteuerung auf Steuerung direkt über LAN, thx max-zhou for msmart * Multidevice support (mehrere Klimaanlagen) (!! konnte ich nicht testen, evtl treten hier fehler auf !!) * Achtung, Loxone Config muss angepasst werden. Angepasste Config im Anhang. Version 1.0.11 * Fehler beim Deinstallieren behoben. Version 1.0.10 * Sicherheitsupdate, nur gültige Argumente werden akzeptiert. * logging verbessert. Version 1.0.9 * Fehlerbehebung wenn der HTTP Port des Miniservers geändert ist: Port des Miniservers abfragen und für das setzen der Virtuellen Eingänge nutzen. Version 1.0.8 * Logging überarbeitet * Fehler mit Umlauten behoben * Schleife bricht nun nach 20 erfolglosen Versuchen ab (vorher endlos) (Device is Offline Fehler scheint wohl nur durch aus/einstecken des Midea Wlan empfängers behoben werden zu können) * Ausgang Fehlerschleife wird in Loxone nichtmehr aktiviert. **Version 1.0.7** * Verbesserungen im WebIF * Passwortanzeige des Mideazugangs im Webif verschlüsselt * MS Passwort wird nicht mehr in der Plugincfg gespeichert **Version 1.0.6** * Zeitstempel im Log hinzugefügt * falsch zugeordnete Loxberry Variablen richtiggestellt. * configparser aus Plugin entfernt (ist bereits bei python3 integriert) * automatischer Neustart des Service nach Speichern **Version 1.0.5** * benötigte Pakete werden mit installiert **Version 1.0.4** * nur Statusabfrage möglich **Version 1.0.3** * benötigte Pakete werden mit installiert **Version 1.0.2** * Backup der alten Configfiles vor Update auf neuere Version **Version 1.0.1** * Anzeige im Webinterface ob Service Midea2Lox läuft * Nach der Installation muss der Loxberry nicht mehr neu gestartet werden * Möglichkeit vom WebIF aus den Serverice zu starten/stoppen/neustarten * automatische Erkennung der LoxberryIP **Version 1.0.0** * erste öffentliche Version ++++ ---- ===== Download ===== [[https://github.com/seppe912/Midea2Lox/releases]] V1.x: CLOUD – wird nicht mehr weiter entwickelt. Kann aber noch von github geladen werden falls benötigt. ===== Installation ===== Nach der Installation Miniserver auswählen und UDP Port eintragen. → Speichern und neustart drücken.\\ Discover: Um vorhandene Klimaanlagen zu finden müssen die Zugangsdaten zur Mideacloud angegeben werden. Anschließend werden über Discover alle im Lan befindlichen Geräte angezeigt und die Daten abgespeichert (werden zur Steuerung benötigt) ===== Konfigurationsoptionen ===== UDP Port frei wählbar, muss mit gewählten Port von Loxone übereinstimmen. Standard 7013\\ MideaCloud User/Passwort → notwendig um den Token für V3 sticks zu bekommen\\ Broadcast Pakets → wenn sehr viele Geräte vorhanden sind kann es sein dass man diesen Wert erhöhen muss um alle Geräte über Discover zu finden. ===== Funktion des Plugins ===== Steuerung und Abfrage des aktuellen Status der Midea(-Group) Klimaanlagen! Luftentfeuchter leider nicht unterstützt.\\ Suche und Erkennung der Klimaanlagen im Netzwerk → Discover genutzt wird dazu das Python script [[https://github.com/mac-zhou/midea-msmart|msmart von mac_zhou]]. Midea2Lox stellt eine Brücke zwischen Loxone und msmart dar. ===== Kompatibilität: ===== Integration von **Midea-Group Klimaanlagen** in Loxone. Ich selbst habe eine Midea Klimaanlage, diese funktioniert sicher, folgende Modelle sind beim Homeassistant Plugin genannt, sie könnten auch mit Midea2Lox funktionieren: ----- mit Loxone nicht getestet, folgende Hersteller können aber funktionieren----\\ Custom Integration for Midea Group(Ariston, Hualing, Senville, Klimaire, Kaysun, AirCon, Century, Pridiom, Thermocore, Comfee, Alpine Home Air, Artel, Beko, Electrolux, Galactic, Idea, Inventor, Kaisai, Mitsui, Mr. Cool, Neoclima, Olimpia Splendid, Pioneer, QLIMA, Royal Clima, Qzen, Toshiba, Carrier, Goodman, Friedrich, Samsung, Kenmore, Trane, Lennox, LG and much more) Air Conditioners via LAN.\\ ----- nicht getestet---- Es kommt auf den USB/Wlan Stick an, die Bezeichnung muss SK-102 oder SK-103 (Unterstützung ab Midea2Lox V3.x) lauten. OSK-101 gibt es auch, diese konnte ich aber noch nicht testen ob sie funktionieren.  V1.0.11: Version V1.1.x kommuniziert über die MideaCloud, es kann eine Klimaanlage gesteuert werden. \\ V1.1.x (experimental!): Version V1.1.x kommuniziert über die MideaCloud, es können mehrere Klimaanlagen gesteuert werden. Da ich nur eine Klimaanlage habe kann ich die Funktion nicht testen, es sollte jedoch funktionieren. Zu finden in Github unter Releases.\\ — V1.x.x End of Life — kein weiterer support von mir, Download bleibt noch erhalten.\\ V2.x: Ab V2.0 erfolgt die Kommunikation direkt über LAN/WLAN im lokalen Netzwerk. Es können mehrere Verschiedene Klimaanlagen gesteuert werden.\\ Es gibt verschiedene WiFi Sticks für die Klimaanlagen. Das Plugin Unterstützt aktuell die WiFi-Stick Version OSK-102. Unterstützung OSK-101 nicht getestet.\\ Nach Rückmeldungen unter den Kommentaren funktionieren auch andere Klimaanlagen bzw "Midea kopien" die den Stick EU-OSK 102 verwenden.  V3.x: Der Stick EU-OSK 103 wird zusätzlich unterstützt. Key und Token werden für V3 Sticks benötigt. Unterstützung OSK-101 nicht getestet. V3.1 zusätzlich MQTT Gateway Anbindung ===== Einrichtung in der Loxone Config Software ===== Beispielconfig ist hinterlegt. **Ab V.3.3 NEU** {{:plugins:midea2lox:sample_config.zip}} Jede Klimaanlage hat eine eigene ID, über diese ID und IP werden die Klimaanlagen gesteuert.\\ Daher muss die ID der zu steuernden Klimaanlage über Loxone gesendet werden.\\ Die ID und IP der Klimaanlage kann über Midea2Lox discover / Entdecke Geräte erkannt werden. Die gefundenen Geräte werden im Log abgelegt.\\ **Neu ab V3.x:** Key und Token für V3/OSK-103 Sticks werden über die Cloud extrahiert und gespeichert. Der Key und Token erneuert sich bei jeder Abfrage über discover, die alten paare bleiben aber auch aktiv/funktionieren weiterhin. Ab V3.1.3 werden die daten die über discover /Entdecke Geräte erkannt werden gespeichert und zur jeweiligen ID genutzt. es reicht ab sofort über Loxone nurnoch die ID mit zu senden. **Ein Discover/Entdecke Geräte muss einmal durchgeführt werden damit die Klimaanlage richtig gesteuert wird!** **1. Neuen Virtuellen Ausgang anlegen:**\\ ** **Bezeichnung: Midea2Lox (frei wählbar)\\ Adresse: /dev/udp/loxberry/7013  (eventuell "loxberry" durch die IP ersetzen, z.B 192.168.178.20; 7013 ist der UDP Port, der muss mit der Midea2Lox Konfiguration übereinstimmen.) **2. Virtueller Ausgang Befehl (für jede Klimaanlage separat):** | Virtueller Ausgang Befehl | Klima 1 | Klima 2 | ... | | Bezeichnung (frei wählbar) | Midea V2 OSK102 | Midea V3 OSK103 | ... | | Befehl bei EIN: | ID  | ID  | ... | | Als Digitalausgang verwenden | AUS | AUS | ... | **3. Die ID der Klimaanlage muss beim Ausgangsbefehl zur jeweiligen Klimaanlage angegeben werden.** | Beispiel:\\ Virtueller Ausgang Befehl | V2 / OSK 102 | | Befehl bei EIN: | 17592186057450  | **4. Haken bei "als Digital Ausgang verwenden"**: **ENTFERNEN** ==== Statusanzeige ==== In der Beispielkonfig ist in der oberen hälfte die Statusanzeige untergebracht: **ACHTUNG ab v3.1 müssen die Eingänge umbenannt werden, damit das MQTT-Gateway unterstützt werden kann. Midea2Lox_ muss an jedem** **Eingang vorangestellt sein und die Punkte müssen durch Unterstriche _ ersetzt werden: (die ID muss durch die Device ID der Klimaanlage ersetzt werden) Zusätzlich können nun Power_state,audible_feedback, eco_mode und turbo_mode als virtueller Eingang angelegt werden. Sie werden ab V3.1 mit 0 und 1 beschalten. (siehe Beispielkonfig, siehe auch** **[[https://www.loxwiki.eu/pages/viewpage.action?pageId=39356009|MQTT - Schritt für Schritt: MQTT -> Loxone]])** | VI Eingang Loxone | Werte | Beschreibung | | **Midea2Lox_Midea_ID_power_state**\\ **(virtueller Eingang)** | True / False \\ 1/0  | Schaltzustand der Klimaanlage \\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_audible_feedback**\\ **(virtueller Eingang)** | True / False \\ 1/0  | Audio Rückmeldung\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_fan_speed**\\ **(virtueller Text-Eingang)** | fan_speed_enum.High\\ fan_speed_enum.Medium\\ fan_speed_enum.Low\\ fan_speed_enum.Auto\\ fan_speed_enum.Silent | Lüfter Geschwindigkeit (Silent/Low/Medium/High/Auto)\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_operational_mode**\\ **(virtueller Text-Eingang)** | operational_mode_enum.auto\\ operational_mode_enum.cool\\ operational_mode_enum.heat\\ operational_mode_enum.dry\\ operational_mode_enum.fan_only | Klimamodus heat/cool/dry/fan/auto (heizen/kühlen/entfeuchten/trocknen/automatik)\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_swing_mode**\\ **(virtueller Text-Eingang)** | swing_mode_enum.Off\\ swing_mode_enum.Vertical\\ swing_mode_enum.Horizontal\\ swing_mode_enum.Both | Klappe schwingmodus Off/Horizontal/Vertical/Both (aus/horizontal/vertikal/beides)\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_eco_mode**\\ **(virtueller Eingang)** | True/False\\ 1/0  | Sparmodus \\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_turbo_mode**\\ **(virtueller Eingang)** | True/False\\ 1/0  | Turboboost \\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_indoor_temperature**\\ **(virtueller Eingang)** | | Innentemperatur\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_outdoor_temperature**\\ **(virtueller Eingang)** | | Ausentemperatur\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_target_temperature**\\ **(virtueller Eingang)** | | Zieltemperatur (bei Heizen/Kühlen/Auto)\\ Wird über einen Statusbaustein in der App angezeigt. | | **Midea2Lox_Midea_ID_online**\\ **(virtueller Eingang)** | 1/0 | Onlinestatus der Klimaanlage. \\ Das Plugin versucht je nach Fehler 2-4 mal das Senden des Befehls zu wiederholen.\\ Kommt keine Antwort von der Klimaanlage geht der Eingang auf Aus. Details im Log von Midea2Lox | | **neu ab V3.3.x:**\\ **Midea2Lox_Midea_ID_display_on**\\ **(virtueller Eingang)** | 1/0 | Status des Displays (kann bei manchen AC´s deaktiviert werden, siehe sample config) | Es wird automatisch erkannt ob das MQTT Gateway installiert ist, wenn ja wird über MQTT gesendet.\\ Das Plugin erkennt jedoch alte Loxone Konfigurationen die mit Midea2Lox V2.x erstellt wurden und antwortet hier noch nach dem alten Prinzip um Midea2Lox kompatibel zu alten Loxone konfigs zu machen. Es wird jedoch empfohlen auf die neue Logik umzustellen. * die Befehle für AC Power (power.True / power.False) , AC Audio / Tone (tone.True / tone.False) , AC Eco Mode (eco.True / eco.False) und AC Turbo Mode (turbo.True / turbo.False) müssen in den Befehls-Statusbausteinen (untere hälfte der Loxonekonfig) angepasst werden. * Es kann für jede Klimaanlage ein eigener Ausgangs Befehl angelegt werden, es muss einmal discover / Entdecke Geräte durchgeführt werden damit IP, Key und Token der jeweiligen Klimaanlagen automatisch erkannt werden.\\ Mehrere Geräte müssten so zu steuern sein, das kann ich jedoch nicht testen, da ich nur eins hab. Die befehle werden nicht gleichzeitig abgesetzt --> einer nach dem anderen.\\ ===== Fragen stellen und Fehler melden ===== Github oder hier