Midea Comfee Klimaanlage über Fhem ?!

Begonnen von Aladin222, 11 November 2016, 11:36:07

Vorheriges Thema - Nächstes Thema

JudgeDredd

Zitat von: joklemm am 24 März 2024, 19:08:20Ich habe ein neues Gerät - ich hoffe mal dass das nicht eine neue Version ist, die jetzt nicht mehr unterstützt wird?
Das "neue Gerät" müsstest Du etwas spezifizieren.
- Eine neue nicht unterstützte Klimaanlage oder einen neuen Midea-Smart-Stick ?
- Welche Python Version ?
- Welches OS ?
Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

B10S

Zitat von: joklemm am 24 März 2024, 19:08:20[...]Wenn ich midea-discover ausführe, kommt immer

pi@raspberrypi:/opt $ midea-discover -i 192.168.0.39
INFO:msmart.cli:msmart version: 0.2.5 Currently only supports ac devices, only support MSmartHome and 美的美居 APP.
INFO:msmart.cloud:Using Midea cloud server: https://mp-prod.appsmb.com/mas/v5/app/proxy?alias= False
Traceback (most recent call last):
  File "/home/pi/.local/bin/midea-discover", line 8, in <module>
    sys.exit(discover())
  File "/usr/lib/python3/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/cli.py", line 51, in discover
    found_devices = loop.run_until_complete(discovery.get_all() if ip == '' else discovery.get(ip))
  File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/scanner.py", line 205, in get
    await self._process_tasks([task])
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/scanner.py", line 199, in _process_tasks
    [self.result.add(task.result()) for task in tasks]
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/scanner.py", line 199, in <listcomp>
    [self.result.add(task.result()) for task in tasks]
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/scanner.py", line 50, in support_test
    _device = await self.support_testv3(account, password)
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/scanner.py", line 65, in support_testv3
    token, key = await loop.run_in_executor(None, gettoken, udpid, account, password)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/scanner.py", line 255, in gettoken
    Client.login()
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/cloud.py", line 143, in login
    self.get_login_id()
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/cloud.py", line 134, in get_login_id
    {'loginAccount': self.login_account}
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/cloud.py", line 121, in api_request
    return self.api_request(endpoint, args)
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/cloud.py", line 121, in api_request
    return self.api_request(endpoint, args)
  File "/home/pi/.local/lib/python3.7/site-packages/msmart/cloud.py", line 123, in api_request
    raise RecursionError()
RecursionError

Selben Fehler bekomme ich auch, allerdings andere Voraussetzungen. Mein RaspberryPi ist letztens gestorben und ich habe einen neuen aufgesetzt mit Debian Bookworm, Python 3.11 und dem FHEM Backup vom alten. Mit der msmart Bibliothek von https://github.com/mac-zhou/midea-msmart funktioniert die Steuerung, aber das Discover nicht mehr. Mit dem Fork von https://github.com/mill1000/midea-msmart funktioniert das Discover, aber die Steuerung nicht mehr. Vermutlich müsste das FHEM Modul angepasst werden, falls man den aktuelleren Fork benutzen wollen würde. Vielleicht hilft es dir bis dahin dir die Daten aus dem Discover von dem mill1000 Fork zu holen und dann alles mit der Version von mac-zhou einzurichten.

B10S

Hier die angepasste setAC.py für den msmart Fork https://github.com/mill1000/midea-msmart/
Ich hoffe, ich habe alles erwischt, was geändert werden muss, bei mir haben soweit alle Funktionen funktioniert.

JudgeDredd

Hallo B10S,
Zitat von: B10S am 09 April 2024, 13:38:39Mit der msmart Bibliothek von https://github.com/mac-zhou/midea-msmart funktioniert die Steuerung, aber das Discover nicht mehr. Mit dem Fork von https://github.com/mill1000/midea-msmart funktioniert das Discover, aber die Steuerung nicht mehr.
Ich habe mir das mal angeschaut.
Bei mir funktioniert das Discover mit beiden Version (msmart / msmart-ng).
Ab Bookworm sollte das msmart(-ng) Modul ja in einer virtuellen Python Umgebung installiert werden, hast Du das befolgt ?
Das die Steuerung mit einem anderen Fork nicht ohne Änderungen klappt, ist ja zu erwarten (habe auch Deine neue setAC.py leider noch nicht getestet)

Im Detail habe ich mir das nicht angesehen, aber welche Vor-/Nachteile hat denn die msmart-ng ggü. der msmart Bibliothek ?
Sind dort weitere Funktionen eingebaut oder werden mehr Geräte unterstützt ?

Persönlich würde ich ja eher zu der Perl-Variante tendieren, dann könnte man es zu 100% in FHEM integrieren. Allerdings müsste dann das Modul neu geschrieben werden und da fehlt es mir etwas an Kapazitäten.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

denis.robel

Gibt es auch ähnliche Scripts für Midea Geschirrspüler?
VG

Denis

Tommi ratlos

Hallo zusammen,

erst mal vielen Dank an JudgeDredd für die Arbeit.
Habe mir für den kommenden Sommer zwei Midea Portasplit zugelegt.

Mein FHEM läuft auf einem RASPI 5 (Bookworm)

Habe etwas gebraucht bis ich es zum laufen gebracht habe.

Zuerst habe ich versucht die Installation mit
pipx install msmart-ngzum laufen zu bringen
msmart-ng discoverHat damit zwar funktioniert aber FHEM bzw. setAC.py wollte nicht. Liegt vermutlich an Umgebungsvariablen Pfadangaben.

Schließlich habe ich es mit
pip3 install msmart --break-system-packageszum laufen gebracht (obwohl der Parameter --break-system-packages mich schon beunruhigt hat ;D)

Mir ist jetzt aufgefallen das beim Abruf des Status immer folgendes geloggt wird
portasplit Select: get portasplit Status
portasplit Parameter BlockingCall: portasplit|/opt/msmart/setAC.py|state -H 192.168.115.11 -I 0000000 -K xxxx -T xxx
'eco_mode' is deprecated. Please use 'eco' instead.
'turbo_mode' is deprecated. Please use 'turbo' instead.
'eco_mode' is deprecated. Please use 'eco' instead.
'turbo_mode' is deprecated. Please use 'turbo' instead.

Liegt das am setAC.py oder am msmart-ng oder ist es die Firmware?

Gruß
Thomas

Pi 3 CUNX868 mit 433 Pigator.

JudgeDredd

Zitat von: Tommi ratlos am 12 Mai 2025, 12:54:05zum laufen gebracht (obwohl der Parameter --break-system-packages mich schon beunruhigt hat ;D)
Das hängt vermutlich damit zusammen, das ab einer bestimmten Pythonversion "Virtual Environments" eingeführt wurden.
zuerst lergt man die Umgebung an:
python3 -m venv <Path/><name des Umgebung>wählt die Umgebung aus:
source <Path>/<name des Umgebung>/bin/activateinstalliert irgendwas:
pip install <package-name>verlässt die virtuelle umgebung wieder:
deactivateDanach erfolgt der Aufruf des des jeweiligen Python Programms erfolgt dann über:
<Path>/<name des Umgebung>/bin/python
Zitat von: Tommi ratlos am 12 Mai 2025, 12:54:05Liegt das am setAC.py oder am msmart-ng oder ist es die Firmware?
Ohne genauer geschaut zu haben, würde ich mal sagen, das die Firmware geändert wurde und der Aufruf der als "veraltet" gekennzeichneten Funktion nun anders erfolgen muss.
Dazu muss natürlich vorallem das python-script angepasst werden.
Da ich außer an/aus und einstellen der Temp, nichts mit der AC mache, ist mir das nicht aufgefallen.
Aber das Modul ist ja eh nicht offiziell eingecheckt.
Du kannst es aber entsprechend anpassen und gerne hier für Andere anhängen.
Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

Tommi ratlos

Hallo,

danke für die schnelle Anfwort.

Funktioniert ja auch ohne die virtuelle Umgebung.

Habe in der setAC.py alle eco_mode und turbo_mode durch eco und turbo ersetzt.
Jetzt ist Ruhe.

Gruß
Thomas

Pi 3 CUNX868 mit 433 Pigator.

Tommi ratlos

Hallo JudgeDredd,

habe mal in der 53_mideaAC.pm rumgestümpert ;)
Meine Programmierkenntnisse sind eher rudimentär.
Habe die widgetList Einträge geändert (weiß leider nicht wie man einen Text vor den Feldern <HIER TEXT Temp> einfügt)
                 'Cool:widgetList,'.
<HIER TEXT Temp> '15,select,17,18,19,20,21,22,23,24,25,26,27,28,29,30,'.
                 '5,select,Off,Vertical,Horizontal,Both,'.
                 '7,select,Auto,Full,High,Medium,Low,Silent';
Das Logging habe ich auch etwas "Leiser" gemacht und die Commadref angepasst.
Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.