Zum Ende der Metadaten springen
Zum Anfang der Metadaten
Autor

Harald Friedl

Logo

Status

STABLE

Version1.0.3
Kompatibilität

LB 0.2.3LB 1.0

Downloadhttps://github.com/seppe912/Midea2Lox/archive/V1.0.3.zip
Zweck Integration der Midea Klimaanlagen in Loxone
 Version History...

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



Inhalt



Download

https://github.com/seppe912/Midea2Lox

Installation

Nach der Installation die Zugangsdaten der Midea API (App) in die Pluginkonfiguration eintragen, speichern und Service starten.

Konfigurationsoptionen

UDP Port frei wählbar, muss mit gewählten Port von Loxone übereinstimmen.

Funktion des Plugins

Loxone sendet über UDP die gewünschten Schaltsignale an das Plugin, dieses Verarbeitet die Befehle und schickt sie zur MideaCloud. Die wiederum steuert dann die Klimaanlage.

Einrichtung in der Loxone Config Software

Beispielconfig ist hinterlegt.

Midea.Loxone

Neuen Virtuellen Ausgang anlegen:

Bezeichnung: Midea AC (frei wählbar)
Adresse: /dev/udp/loxberry/7013  (eventuell "loxberry" durch die IP ersetzen, z.B 192.168.178.20)

Virtueller Ausgang befehl:

Bezeichung: Midea AC Befehl steuern (frei wählbar)
Befehl bei EIN: <v>
Haken bei "als digitalausgang verwenden" ENTFERNEN



In der Beispielkonfig ist in der oberen hälfte die Statusanzeige untergebracht:

  • Midea.power_state

Schaltzustand der Klimaanlage True / False (Ein/Aus)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.audible_feedback

Audio Rückmeldung True / False (Ein/Aus)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.fan_speed

Lüfter Geschwindigkeit (Silent/Low/Medium/High/Auto)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.operational_mode

Klimamodus heat/cool/dry/fan/auto (heizen/kühlen/entfeuchten/trocknen/automatik)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.swing_mode

Klappe schwingmodus Off/Horizontal/Vertical/Both (aus/horizontal/vertikal/beides)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.eco_mode

Sparmodus True/False (Ein/Aus)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.turbo_mode

Turboboost True/False (Ein/Aus)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.name

Name des Gerätes (z.B Master bedroom)
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.id

ID des Gerätes
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.indoor_temperature

Innentemperatur
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.outdoor_temperature

Ausentemperatur
Wird über einen Statusbaustein in der App angezeigt.

  • Midea.target_temperature

Zieltemperatur (bei Heizen/Kühlen/Auto)
Wird über einen Statusbaustein in der App angezeigt.


Diese Befehle werden im unteren Teil der Konfig gesetzt, d.h es gibt jeweils Schalter die die einzelnen Schaltpositionen setzen. Anschließend werden die 8 einzelnen Befehle zu einen langen Befehl zusammengesetzt über 3 Statusbausteine (hab hier leider keine bessere Lösung gefunden)
Bei jeder Statusänderung wird ein Befehl zu Midea abgesetzt.

Zusätzlich werden die Virtuellen Eingänge "Midea.AC_Fehlerschleife" und "Midea.AC_script" vom Midea2Lox Script im Loxberry geschalten. Midea.AC_Fehlerschleife wird aktiv, falls sich das Script gerade in einer Endlosschleife befindet. Das kommt bspw vor wenn die API gerade nicht erreichbar ist. Midea2Lox sendet so lange bis der Befehl IO zugestellt wurde. Das bedeutet aber gleichzeitig, solltet ihr bspw. bei der Erstinbetriebnahme falsche Logindaten angegeben haben kann sich das Script hier ewig aufhängen da es nie IO durchstellen wird. Da hilft dann leider nur ein Neustart.
Midea.AC_script wird aktiv, wenn gerade ein Befehl gesendet wird.


Fragen stellen und Fehler melden

Github oder hier



21 Kommentare

  1. Frank Arendt sagt:

    Ich habe das Plugin installiert und den Loxberry neu gestartet. Wenn ich Midea AC for Loxone starte, kommt ein schwarzer Bildschirm mit Fehler 500 Internal Server Error.

    Was mache ich falsch?

    Vielen Dank, Frank

  2. Harry sagt:

    Hallo,

    das kann ich mir gerade nicht erklären. Bei mir funktioniert eine neu Installation des Plugins einwandfrei.

    Hast du die aktuelle Version 1.0.2 installiert? Welche Loxberry Version verwendest du? Kommen Fehlermeldungen bei der Installation?

  3. Frank Arendt sagt:

    Hallo und Danke. Ich habe Loxberry 1.4.0.3 installiert. Midea2Lox habe ich als 1.0.2 installiert. Bei der Installation kam keine Fehlermeldung.

  4. Harry sagt:

    kannst du bitte in den Logmanager vom Loxberry gehen und die Logdatei der Installation hier anhängen? 

  5. Frank Arendt sagt:

    Aber sehr gerne (Lächeln)

  6. Harry sagt:

    scheint alles in Ordnung zu sein, da kann ich dir leider nicht weiterhelfen... Ich kann den Fehler nicht reproduzieren. Bei mir funktioniert eine Neuinstallation ohne Probleme...

    EDIT:

    evtl steht in der APACHE log noch drin, warum der Fehler auftritt. Magst du das Logfile bitte posten, nachdem du die Fehlermeldung erhalten hast (auch im Logmanager zu finden)

  7. Frank Arendt sagt:

    Calling subfunction FORM
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Can't locate String/Escape.pm in @INC (you may need to install the String::Escape module) (@INC contains: /opt/loxberry/libs/perllib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /opt/loxberry/webfrontend/htmlauth/plugins/Midea2Lox/index.cgi line 9.
    BEGIN failed--compilation aborted at /opt/loxberry/webfrontend/htmlauth/plugins/Midea2Lox/index.cgi line 9.
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-autoupdate // Value: 3
    Can't locate String/Escape.pm in @INC (you may need to install the String::Escape module) (@INC contains: /opt/loxberry/libs/perllib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /opt/loxberry/webfrontend/htmlauth/plugins/Midea2Lox/index.cgi line 9.
    BEGIN failed--compilation aborted at /opt/loxberry/webfrontend/htmlauth/plugins/Midea2Lox/index.cgi line 9.
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    Action: plugin-loglevel // Value: 3
    [Thu Mar 14 12:29:51 2019] logmanager.cgi: Use of uninitialized value in concatenation (.) or string at /opt/loxberry/webfrontend/htmlauth/system/logmanager.cgi line 180.
    [Thu Mar 14 12:29:51 2019] logmanager.cgi: Use of uninitialized value in concatenation (.) or string at /opt/loxberry/webfrontend/htmlauth/system/logmanager.cgi line 180.
    [Thu Mar 14 12:29:51 2019] logmanager.cgi: Use of uninitialized value in concatenation (.) or string at /opt/loxberry/webfrontend/htmlauth/system/logmanager.cgi line 180.
    [Thu Mar 14 12:29:51 2019] logmanager.cgi: Use of uninitialized value in concatenation (.) or string at /opt/loxberry/webfrontend/htmlauth/system/logmanager.cgi line 180.

  8. Harry sagt:

    Ich hab gerade ein Pre-Release auf V. 1.0.3 veröffentlicht, das sollte soweit funktionieren.

  9. Frank Arendt sagt:

    Super. Danke (Lächeln) Ich kann es jetzt starten.

  10. Frank Arendt sagt:

    Hallo. Es scheint alles so weit korrekt zu sein. Ich bekomme in Loxone aber leider noch keine Daten. Kann ich auch nur einen Teil der Daten abfragen oder muss ich komplett alles anlegen? Der virtuelle Ausgang ist angelegt mit "/dev/udp/192.168.178.47/7112" und der passende Befehlt mit "<v>". Kann ich jetzt erstmal nur "Midea.indoor_temperature" als virtuellen Eingang abfragen?

    Happy Day und Dank, Frank

  11. Harry sagt:

    Hallo Frank,

    momentan ist ein reines status lesen nicht möglich. Du müsstest aktuell einen kompletten befehl setzen (kann ja auch Klimaanlage "off" sein) um die aktuellen Werte zu empfangen. 

    Gruß Harry

  12. Harry sagt:

    Ich habe mal versucht es umzusetzen... ein neues Prelease ist online V1.0.4

    wenn du einen neuen Ausgang anlegst, befehl bei EIN: status , wird nur der aktuelle Status der Klimaanlage abgefragt.


    das Problem ist nur, dass die Cloud oft die Klimaanlage als Offline meldet obwohl sie das nicht ist. Das führt dazu dass das Script in Dauerschleife versucht den Befehl durchzusetzen, bis es schlussendlich klappt. Vielleicht spiel ich mich hier mal nochmal mit einer eleganteren Lösung, dazu fällt mir aber aktuell nichts ein (Zwinkern)
    Wenn in dieser Dauerschleife erneut die Befehle vom Miniserver gesendet werden, dass aktualisiert werden soll, reihen sich die Befehle aneinander und werden irgendwann alle nacheinander gesendet was auch nicht wirklich sein muss und/oder zu Problemen mit der Cloud führen kann.

    Daher ist es sinnvoll, den Aktualisierungsbefehl nur automatisch zu senden wenn der Eingang MideaAC_script INAKTIV ist. Das geht z.b über einen UND Verbinder siehe Bild oben(Eingang MideaAC_script muss negiert sein). Als Starter kann ein Impulsgeber gesetzt werden.

  13. Frank Arendt sagt:

    Hallo Harry,

    ich habe jetzt schon sehr viel probiert. Leider bekomme ich so gar keine Daten aus der Anlage. Inzwischen habe ich deine komplette Config nachgebaut aber auch das ohne Erfolg.

    Per App kann ich mich ohne Probleme anmelden und kann die Anlage steuern. Darf ich an der App angemeldet sein, wenn ich per LoxBerry steuern möchte oder Daten abfragen? Ist es eventuell wichtig, wie die Anlage in der App angelegt ist? Spielt der Name eine Rolle? Ich probiere mal weiter. Vielleicht klappt es ja mal.

    Happy Day und Dank, Frank

  14. Harry sagt:

    du wirst aus der App geworfen, wenn du einen Loginversuch über das Plugin machst.
    Namen sind egal. Es kann nur sein, dass eventuell mehrere Anlagen auf einem Account nicht unterstützt werden. Das kann ich leider nicht testen da ich nur eine habe.

    Was sagt denn die Midea2Loxone Log? Der Service läuft ja bestimmt?

  15. Frank Arendt sagt:

    Service sagt: Midea2Lox is running. PID: 20054

    Logfile Button sagt: Die Log-Datei existiert nicht. Es kann sein, dass das entsprechende Plugin noch nichts sendet oder fehlerhaft ist. Lade die Seite erneut und versuche es noch einmal.

  16. Harry sagt:

    hmm, wenn es das Logfile nicht gibt deutet das darauf hin dass der Service nicht läuft... mal ein restart des MideaPlugins probiert?

  17. Harry sagt:

    Ich habe noch eine Vermutung... es scheint als ob bei dir noch ein anderes Paket nicht mit installiert ist... Ich hab die V1.0.4 nocheinmal geuptdatet. 

    Probier bitte mal eine Deinstallation des Plugins, lade die Version 1.0.4 nocheinmal herunter und installiere sie erneut. 

  18. Frank Arendt sagt:

    Hab es deinstalliert. Dann 1.0.3 heruntergeladen. Update per Pre-Update auf 1.0.4. Service gestartet. Leider bisher wieder kein Log-File. Gleiche Meldung, wie oben.

  19. Harry sagt:

    Du musst auf restart drücken, wenn du die Zugangsdaten eingegeben hast!

    wenn das auch nicht hilft muss ich wohl meinen Loxberry komplett zurücksetzen und dann auf Fehlersuche gehen... irgend etwas scheint bei mir installiert zu sein das du nicht hast..

    werde mich die nächsten Tage mal melden.

  20. Harry sagt:

    Hallo Frank,

    ich hätte wohl einen neuen Loxberry zum Plugin entwickeln nehmen sollen (Zwinkern)
    Probier mal die 1.0.5 die funktioniert jetzt. Ich lasse sie derweil mal als Prerelease bis du Rückmeldung gegeben hast ob es auch bei dir funktioniert.

  21. Frank Arendt sagt:

    Hallo Harry,

    es klappt! Nun bekomme ich ein Log-File und auch Daten (Lächeln) Steuern kann ich auch und die reine Daten Abfrage klappt ebenfalls (Lächeln)

    Zuerst hatte ich noch das Problem, dass das Gerät in der App als "offline" angezeigt wurde. Das passiert ab und zu mal. Ich habe es dann gelöscht und neu eingerichtet. Danach hat alles geklappt. Warum das Gerät immer mal als "offline" gemeldet wird, habe ich noch nicht rausgefunden.

    Happy Day und vielen Dank, Frank