Midea Comfee Klimaanlage über Fhem ?!

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

Vorheriges Thema - Nächstes Thema

pink99panther

Wenn es nicht egal ist, mit welcher APP die Anlage bedient wird habe ich das Problem gefunden.
Ich verwene wie in der Bedienungsanleitung angegeben NetHome Plus.
Habe irgendwo mal gelesen, dass auch die Midea APP bei meiner Anlage funktionieren soll.
Kann das aber im Moment leider nicht testen, da die Anlage ca. 100€ Kraftstoff weit weg ist.

JudgeDredd

Zitat von: pink99panther am 20 Mai 2022, 15:19:46
Irgendwo hapert es noch bei mir.
Also wenn ich mir den Discover von Dir so ansehe, sieht der ziemlich identisch zu meinem aus.


Du könntest mal versuchen, das Python-Script direkt auf der Shell aufzurufen.
/opt/midea-msmart/setAC.py on -H 192.168.178.56 -I 17..........97 -m Cool -t 17 --beep
vielleicht sieht man dann etwas mehr woran es liegen könnte.

Zitat von: pink99panther am 20 Mai 2022, 16:36:28
Kann das aber im Moment leider nicht testen, da die Anlage ca. 100€ Kraftstoff weit weg ist.
unter Berücksichtigung der aktuellen Spritpreise ist das ja fast in Laufreichweite  ;)
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

pink99panther

Ausgabe beim Test auf der Shell
$ /opt/midea-msmart/setAC.py state -H 192.168.178.56 -I 17..........97
Traceback (most recent call last):
  File "/opt/midea-msmart/setAC.py", line 5, in <module>
    from msmart.device import air_conditioning_device as ac
  File "/opt/midea-msmart/msmart/device/__init__.py", line 4, in <module>
    from .AC.appliance import air_conditioning
  File "/opt/midea-msmart/msmart/device/AC/appliance.py", line 8, in <module>
    from msmart.lan import lan
  File "/opt/midea-msmart/msmart/lan.py", line 6, in <module>
    from msmart.security import security
  File "/opt/midea-msmart/msmart/security.py", line 4, in <module>
    from Crypto.Cipher import AES
ImportError: No module named 'Crypto'


wie mache ich das Modul Crypto verfügbar?

JudgeDredd

Zitat von: pink99panther am 20 Mai 2022, 20:39:41
wie mache ich das Modul Crypto verfügbar?
Ich bin leider kein Python Experte und bei mir lief das Script ohne installation weiterer Module.
Ob das aus der Installation anderer Projekte und Module resultiert weiß ich leider nicht.

Du kannst aber das Crypto-Modul wie folgt installierenpip3 install pycrypto
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

sash.sc

Hallo zusammen.

Ich habe mich ans github gehalten und msmart installiert.
Module in fhem auch auf den aktuellen stand gebracht, wegen v3.

Wenn ich eine aktion in fhem ausführe, bekommen ich folgende meldung.


2022.05.27 12:40:18 3: LEF|/opt/fhem/FHEM/setAC.py|on -H 192.168.2.114:6664 -I 3............9 -K A3A805.................................E -T 3F......................................................................47 -m Dry -t 17 -s Off --beep
ModuleNotFoundError: No module named 'msmart'
    from msmart.device import air_conditioning_device as ac
  File "/opt/fhem/FHEM/setAC.py", line 5, in <module>
Traceback (most recent call last):


jemand eine idee?

Gruß und danke
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

JudgeDredd

So wie das sehe, hast Du "msmart" und mein Script "setAC.py" nicht im gleichen Verzeichnis.

Wie ist denn der Pfad zu msmart ?
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

rabbit83

Hallo JudgeDredd, erstmal vielen Dank. Ich bin auch gerade dabei das Modul in FHEM einzubauen. Das setAC-Script läuft bei mir und liefert auch plausible Werte (Innen- / Außentemperatur etc.) zurück. In FHEM bekomme ich aber keine Readings. Logfile:
  File "/opt/midea-msmart/msmart/security.py", line 5, in <module>
    from Crypto.Util.Padding import pad, unpad
ModuleNotFoundError: No module named 'Crypto.Util.Padding'
Undefined subroutine &main::encode_json called at ./FHEM/53_mideaAC.pm line 223.

Das Problem mit dem fehlenden Crypto.Util.Padding habe ich auch, allerdings läuft das setAC-Skript direkt ausgeführt ohne Fehlermeldung durch.
Danke & Grüße
Jan

JudgeDredd

Zitat von: rabbit83 am 28 Mai 2022, 15:02:36
allerdings läuft das setAC-Skript direkt ausgeführt ohne Fehlermeldung durch.
Hi,

was bedeutet denn "ohne Fehlermeldung" ? Kannst Du auf der Konsole denn die Klimaanlage steuern ?
Eigentlich ruft das FHEM-Modul nur das Script mit den richtigen Parametern auf und weist der Rückmeldung die entsprechenden Readings zu.

Also wenn das Steuern aus der Konsole heraus funktioniert, dann kann es ja eigentlich nur an der Berechtigung des FHEM-Users liegen.
Was bekommst Du denn, wenn Du das Script mit diesem User von FHEM ausführst ?

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

rabbit83

#38
Hi JudgeDredd,

einen Schritt bin ich jetzt weiter. Unter User "pi" lief das Script, unter "fhem" wie von dir vermutet nicht. Ursache war, dass das Python-Modul "msmart" (bzw. dessen Abhängigkeiten) nicht für "fhem" installiert waren. Jetzt läuft das Script auch unter "pi", aber es kommt weiterhin Undefined subroutine &main::encode_json called at ./FHEM/53_mideaAC.pm line 223. im Logfile, und, es werden keine Readings angezeigt.
Nachtrag: Einschalten (über Set...) funktioniert, Ausschalten nicht (lt. Logfile wird da dennoch "on" geschickt), Get status schickt den richtigen Befehl an setAC.py, es kommen aber keine Readings im FHEM an.

Grüße
Jan

JudgeDredd

Zitat von: rabbit83 am 28 Mai 2022, 21:24:06Nachtrag: Einschalten (über Set...) funktioniert
Das ist ja schonmal gut.

Zitat von: rabbit83 am 28 Mai 2022, 21:24:06
Ausschalten nicht (lt. Logfile wird da dennoch "on" geschickt), Get status schickt den richtigen Befehl an setAC.py, es kommen aber keine Readings im FHEM an.
Das mein Modul beim Ausschalten ein "on" sendet, kann ich mir gerade nicht erklären.
Um das "get status" mal zu analysieren, kannst Du mal das Script auf der Shell aufrufen und hier den Rückgabewert zeigen ?
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

rabbit83

Hi,

ein set KlimaOben Off liefert im Log: KlimaOben|/opt/midea-msmart/setAC.py|on -H 192.168.0.70 -I YYYYYYY -K XXXXXX -T ZZZZZZZZZZZ --beep.

Script "state" inkl. Ausgabe:
./setAC.py state -H 192.168.0.70 -I YYYYYYYYYY -K XXXXXXXXXXXXXXXXXXXXXX -T ZZZZZZZZZZZZZZ
{"id": YYYYYYYYYYYY, "name": "192.168.0.70", "power": "Off", "beep": false, "temperature": 22.0, "mode": "auto", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 21.0, "x_outdoor_temperature": 15.5}

sash.sc

Zitat von: JudgeDredd am 27 Mai 2022, 13:12:25
So wie das sehe, hast Du "msmart" und mein Script "setAC.py" nicht im gleichen Verzeichnis.

Wie ist denn der Pfad zu msmart ?

setac.py liegt in fhem/FHEM zusammen mit dem Modul. msmart nach Anleitung direkt aus dem /home verzeichniss installiert !

ist dann die frage wo das installiert wird ?!

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

JudgeDredd

Zitat von: rabbit83 am 29 Mai 2022, 13:27:41
ein set KlimaOben Off liefert im Log: KlimaOben|/opt/midea-msmart/setAC.py|on -H 192.168.0.70 -I YYYYYYY -K XXXXXX -T ZZZZZZZZZZZ --beep
Also das kann ich mir absolut nicht erklären. Hast Du aktuell wirklich beide letzte Versionen vom "53_mideaAC.pm" Modul und vom "setAC.py" Script im Einsatz ?
Wenn dem so wäre, dann müsste ich erstmal weitere Logausgaben ins Modul einbauen um dem Ganzen auf die Spur zu kommen.

Zitat von: rabbit83 am 29 Mai 2022, 13:27:41
Script "state" inkl. Ausgabe:
./setAC.py state -H 192.168.0.70 -I YYYYYYYYYY -K XXXXXXXXXXXXXXXXXXXXXX -T ZZZZZZZZZZZZZZ
{"id": YYYYYYYYYYYY, "name": "192.168.0.70", "power": "Off", "beep": false, "temperature": 22.0, "mode": "auto", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 21.0, "x_outdoor_temperature": 15.5}
Die Rückgabe sieht ja erstmal gut aus. Wenn das im Modul keine Readings erzeugt, wäre das ein weiterer Hinweis darauf, das Du nicht die letzte Version vom Modul hast.

Zitat von: sash.sc am 29 Mai 2022, 20:16:42
setac.py liegt in fhem/FHEM zusammen mit dem Modul.
Nein, das Script muss ins "midea-msmart"-Verzeichnis.

Zitat von: sash.sc am 29 Mai 2022, 20:16:42
msmart nach Anleitung direkt aus dem /home verzeichniss installiert !
Also ich habe mein midea-msmart ins "/opt/midea-msmart" installiert.

Zitat von: sash.sc am 29 Mai 2022, 20:16:42
ist dann die frage wo das installiert wird ?!
Das kannst natürlich nur Du beantworten.
Schau mal nach:
find / -iname midea-msmart
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

rabbit83

Zitat von: JudgeDredd am 30 Mai 2022, 08:56:31
Also das kann ich mir absolut nicht erklären. Hast Du aktuell wirklich beide letzte Versionen vom "53_mideaAC.pm" Modul und vom "setAC.py" Script im Einsatz ?
Wenn dem so wäre, dann müsste ich erstmal weitere Logausgaben ins Modul einbauen um dem Ganzen auf die Spur zu kommen.
Die Rückgabe sieht ja erstmal gut aus. Wenn das im Modul keine Readings erzeugt, wäre das ein weiterer Hinweis darauf, das Du nicht die letzte Version vom Modul hast.
find / -iname midea-msmart

Ja, es sind die neuesten Versionen hier aus dem Thread, vom 17.5., habs auch nochmal runtergeladen, die alten Dateien vom Pi gelöscht und wieder draufgeschoben.
Mein FHEM läuft (noch) auf einem Pi 1 (mit Raspbian Buster), keine Ahnung ob das Ganze damit zusammen hängen könnte.

rabbit83

Ich habe das ganze jetzt nochmal auf einem neu aufgesetzten Pi3 versucht (Pi OS und FHEM neu installiert, keine alten Configs etc. wiederhergestellt). Das identische Verhalten - das Script direkt aufgerufen funktioniert, über FHEM funktioniert es nicht. Einmal tauchte im Log folgender Hinweis auf:
Undefined subroutine &main::encode_json called at ./FHEM/53_mideaAC.pm line 223.