Midea Comfee Klimaanlage über Fhem ?!

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

Vorheriges Thema - Nächstes Thema

Punisher

Zitat von: JudgeDredd am 02 August 2022, 13:01:45
OK, dann müsste man schauen, wie der ESP mit der AC kommuniziert (vermutlich seriell)
Ob das allerdings mit der Python Steuerung vom mac-zhou funktioeniert, wirst Du versuchen müssen.
Erfolgt denn die vorgesehene Steuerung bei Dir mit der "Midea-Air APP" ?

Die Python-Steuerung sowie mein Script sind allerdings auf den midea-smart-stick konzipiert.

Wenn Du die AC im Netzwerk hast, kannst Du mal ein
midea-discover -i <ip-adresse>
versuchen und schauen ob sie so erkennt wird.

Nein mit der Smartlife App, ich hatte darauf gehofft das die Geräte sich im Netzwerk mehr oder weniger gleich verhalten. Dem ist nicht so.
Auch eine spezifische Suche mit der IP war nicht erfolgreich. Ich probiere erstmal auf den ESP bzw die Klima zuzugreifen.

cotecmania

Zitat von: JudgeDredd am 02 August 2022, 12:17:10
Ich habe mal ein wenig recherchiert.
So wie ich es Verstanden habe, schaut python sehr auf Dateinamen und versucht diese als Paket zu öffnen, auch wenn es gar keines ist.

Bei mir liegen alle Scripts die ich verwende (FHEM oder nicht spielt keine Rolle) unter /opt/scripts
Kannst Du mal so ein leeres Verzeichnis bei dir anlegen (sofern es nicht existiert).
mkdir /opt/scripts
Dann dort mein Script (setAC.py) aus Post #12 reinkopieren, Rechte setzen
chmod 777 /opt/scripts/setAC.py
in FHEM das Attribut setzen
attr <device> processScript /opt/scripts/setAC.py
und erneut testen.

Danke für deinen Support

Habe ich alles so gemacht :
Zitat2022.08.02 14:15:20 2: Klima_SZ Select: get Klima_SZ Status
2022.08.02 14:15:20 3: Klima_SZ Parameter BlockingCall: Klima_SZ|/opt/scripts/setAC.py|state -H 192.168.1.203 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
2022.08.02 14:15:20 5: Klima_SZ BlockingCall newPID (12034))
2022.08.02 14:15:20 4: Klima_SZ Aufruf setAC: /opt/scripts/setAC.py state -H 192.168.1.203 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
Traceback (most recent call last):
  File "/opt/scripts/setAC.py", line 6, in <module>
    from msmart.device import air_conditioning as ac
ModuleNotFoundError: No module named 'msmart'
2022.08.02 14:15:20 4: Klima_SZ Result setAC:
2022.08.02 14:15:20 5: Klima_SZ Delete BlockingCall PID(12034)

Parallel habe ich in Github einen issue bei mac_zhou aufgemacht ...
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

JudgeDredd

Also der Fehler:
Zitat von: cotecmania am 02 August 2022, 14:23:17ModuleNotFoundError: No module named 'msmart'
sagt ja deutlich aus, das Python Programm msmart nicht gefunden wird.

Da Du ja sagst, das es installiert ist, kann das nur 2 Ursachen haben:

  • Du lügst ;) (was ich aber mal ausschließen würde)
  • Das Du mehrere Phyton Versionen hast und es nicht in der Version installiert ist, mit der das Script versucht es zu starten.
Um Fall 2 mal zu überprüfen mache mal folgendes:
schau im Script in der ersten Zeile welches pyton Du verwendest.
Dann startest Du Python direkt auf der Shell.
z.B.
/opt/fhem/Python-3.9.5/python
oder
/usr/bin/env python3
(das sollte bevorzugt werden und ich habe es auch schon in meinem aktuellen Script angepasst)

dann:
>>> import sys
>>> sys.path
>>> exit()

Jetzt werden alle Verzeichnisse angezeigt in denen msmart gesucht wird
Du musst nun schauen, ob msmart tatsächlich in irgeneinem dieser Verzeichnisse existiert.
Desweiteren ist es wichtig, das im Verzeichnis
/opt/scripts
nur die setAC.py liegt und keinerlei Dateien oder Unterverzeichnisse die msmart oder ähnlich heißen.

Wenn das gecheckt ist, dann schreibe bitte mal die Ausgabe von sys.path und wo msmart installiert ist
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

cotecmania

Hallo JudgeDredd,

auf Github tut sich leider nichts.
Kannst Du Post 121 nochmals anschauen.
Nachdem das Script im Verzeichnis scripts liegt kommt ja nun ein anderer Fehler ...

Gruss
Joe
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

JudgeDredd

Zitat von: cotecmania am 09 August 2022, 08:30:38
Kannst Du Post 121 nochmals anschauen.
Nachdem das Script im Verzeichnis scripts liegt kommt ja nun ein anderer Fehler ..
Hallo Joe,
meine Antwort #122 bezog sich doch schon auf Deinen Post #121
Hast Du das Mal geprüft, bzw. Was ist dabei rausgekommen ?
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

cotecmania

Hier die Ausgabe
pi@RASPYPI3:~ $ /usr/bin/env python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/pi/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages']
>>> exit()
pi@RASPYPI3:~ $


pi@RASPYPI3:/opt/midea-msmart $ dir
0xAC.zip  example.py  LICENSE  msmart  README.md  requirements.txt  setup.py


pi@RASPYPI3:/opt/scripts $ dir
setAC.py



FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

JudgeDredd

#126
Hi Joe,

wie ich schon sagte, das Paket msmart liegt nicht innerhalb des syspath von Python.
Eine Frage wäre, wie kommt das Paket denn nach /opt/midea-msmart ?
Wenn man es mit pip3 installiert hätte es eigentlich in /home/pi/.local/lib/python3.7/site-packages landen müssen.
Das hast Du aber offensichtlich nicht gemacht  ???

Du kannst es ja mal ins script Verzeichnis verschieben.
mv /opt/midea-msmart /opt/scripts
verschieben. Das ist dann zwar eher die quick-and-dirty Lösung, aber es sollte funktionieren.

Gruß,
JudgeDredd

EDIT:
Unter Linux schaut man die Verzeichnisse eigentlich mit
ls -al
an. Gut, Dir scheint auch zu funktionieren, kommt aber eher aus der Windows-Welt.
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

SuMiHe

Zitat von: Punisher am 02 August 2022, 13:20:07
Nein mit der Smartlife App, ich hatte darauf gehofft das die Geräte sich im Netzwerk mehr oder weniger gleich verhalten. Dem ist nicht so.
Auch eine spezifische Suche mit der IP war nicht erfolgreich. Ich probiere erstmal auf den ESP bzw die Klima zuzugreifen.

Hi Punisher,

bist Du denn für Dein Gerät weiter gekommen ? 
Ich habe 2x Splitanlage von "Kältebringer" ist glaube technisch das Gleiche und hat auch die gleichen WLAN-Dongles drin (Artikelnummer etc. auch identisch).
Hat jemand diese Teile schon unter fhem zum laufen gebracht ??? Bei mir blieben bis jetzt leider alle Versuche erfolglos.
zB bekommen die Geräte auch in der "SmartLife - App" eine Geräte ID, die ist aber HEX und läst sich beim fhem-Modul nicht eingeben.

Gruß Mirko
Gruß Mirko

lynckmeister

Also erstmal ein riesen Dankeschön an den JudgeDredd, der das Modul hier für uns gebastelt hat.... Ich habe es heute auf Anhieb mit meiner Diloc 4 fach Splitt zum laufen gebracht , phantastisch !
Nebenbei : Diese 4 Fach Split bekommt man in Italien für schlappe 1500 € nachgeworfen... Ich nutze sie jetzt als Heizung und da ist das natürlich mega, wenn ich sie auf meinen PV Strom abstimmen kann ... Das geht jetzt ;)

Das letzte Problem hier im Thread ist bei mir übrigens auch aufgetreten :


File "/opt/scripts/setAC.py", line 6, in <module>
    from msmart.device import air_conditioning as ac
ModuleNotFoundError: No module named 'msmart'

Ich kenne mich mit Python auch nicht so gut aus, aber das liegt daran, dass PIP das Modul nur für root installiert hat. Sobald man den Shell Call als user fhem ausführt erlebt man in der bash das gleiche, das Modul wird nicht gefunden...
ich habe es pragmatisch gelöst : einfach mit su -i nach root wechseln, dann von da mit sudo fhem als User Fhem wechseln  und einfach nochmal pip3 install msmart laufen lassen ;)


lynckmeister

Wie ist denn eigentlich die Syntax in FHEM , um die Innenteile anzusprechen? Ich steh hier auf dem Schlauch :

set AC_KZI Heat temp:22,swing:on,fan:Auto

geht nicht ;)

JudgeDredd

Zitat von: lynckmeister am 08 Oktober 2022, 14:44:33
Wie ist denn eigentlich die Syntax in FHEM , um die Innenteile anzusprechen? Ich steh hier auf dem Schlauch :

set AC_KZI Heat temp:22,swing:on,fan:Auto

geht nicht ;)

Deine Syntax ist im Prinzip so korrekt, allerdings unterstützt Swing nicht den Modus "on" sondern nur "Off,Vertical,Horizontal,Both".

set AC_KZI Heat temp:22,swing:vertical,fan:auto
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

lynckmeister

Zitat von: JudgeDredd am 08 Oktober 2022, 15:08:42
Deine Syntax ist im Prinzip so korrekt, allerdings unterstützt Swing nicht den Modus "on" sondern nur "Off,Vertical,Horizontal,Both".

set AC_KZI Heat temp:22,swing:vertical,fan:auto

danke , funktioniert so... 
was meldet denn das Modul WANN für einen Status ? Zunächst sind die Dinger in Ready, wenn ich sie einschalte "on" und wenn ich sie ausschalte "off" ... irgendwann scheinen sie aber wieder in "ready" zu wechseln, gibt es hier irgendeine Regel?

JudgeDredd

Zitat von: lynckmeister am 10 November 2022, 21:35:50
danke , funktioniert so... 
was meldet denn das Modul WANN für einen Status ? Zunächst sind die Dinger in Ready, wenn ich sie einschalte "on" und wenn ich sie ausschalte "off" ... irgendwann scheinen sie aber wieder in "ready" zu wechseln, gibt es hier irgendeine Regel?
Das Modul hat im "state" entweder "Off" oder "On". Je nachdem ob die Klimaanlage im Betrieb ist.

"Ready" steht im "state" nur unmittelbar nach dem setzen des Attributs "processScript", da das Modul dann noch nicht weiß, in welchem Status sich Klimaanlage befindet.
Nach einem ersten ausführen von "get <device> status" gilt dann "On" oder "Off"
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

lynckmeister

Zitat von: JudgeDredd am 12 November 2022, 12:19:06
Das Modul hat im "state" entweder "Off" oder "On". Je nachdem ob die Klimaanlage im Betrieb ist.

Passt danke dafür ...
wie kann ich denn das beep abschalten ? Muss ich jedesmal mit setreading das beep auf false setzen , oder gibt es da einen eleganteren weg?

JudgeDredd

Zitat von: lynckmeister am 09 Dezember 2022, 15:44:05
Passt danke dafür ...
wie kann ich denn das beep abschalten ? Muss ich jedesmal mit setreading das beep auf false setzen , oder gibt es da einen eleganteren weg?
Ich habe keine Ahnung, wie Du mit Ssetreading das beep ausschaltest, aber der eingebaute Weg wäre,
einfach das Atrribut zu setzen.
attr <device> Signal Off
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)