Hallo @all,
Mir stellt sich folgende Frage :
Ist es Möglich o.g. Klimaanlage in Fhem mit einzubinden ?
Da ich auch eine Logitech Harmony Hub nutze ,dachte ich ,es wäre super einfach umzusetzen ;-)
Leider lässt sich die Fernbedienung ( Type : R51M/E ) nicht einfach als Gerät in die Harmony übernehmen.
Auch das anlernen einzelner Befehle funktioniert nicht wie gedacht :(
Da die Orig. Fernebedienung ein Display hat ,denke ich, das eine ganze Befehlsfolge gesendet wird ...
Hat jemand eine Idee wie man die Fernbedienung evtl. mit einem ESP8266 zu einer Wifi-Fernbedienung umstricken kann ?
Oder einen anderen Ansatz der zum Erfolg führen könnte ....
Als Notlösung würde ich einfach die Stromzuführung über Funk schaltbar machen ,da die Klimaanlage sich die letzte Betriebseinstellung merkt....
Schöner wäre es allerdings wenn mehr als der letzte Zustand möglich wäre ....
Hey Alladin - wie hast Du dein Problemchen jetzt gelöst?
Lass uns doch mal daran teilhaben ;)
Werd mir sone Comfee auch holen und will schonmal planen......
By,
Moin,
ich habe seit gestern eine Comfee in Betrieb und wäre auch an einer Integration in FHEM interessiert....
Grüße Mave
Kann es sein, dass die Konfiguration der Klimaanlage in der Fernbedienung gespeichert wird und dann als ein "Paket" übertragen wird? So kenne ich es von unserer Klimaanlage aus dem Büro.
Hallo,
ich muss diesen alten Thread mal wieder auskramen.
Ich wäre auch interessiert an einer Integration von Midea Klimaanalgen in FHEM.
Es gibt dazu ein Python Script für "Home Assistant" https://github.com/NeoAcheron/midea-ac-py
Gibt es irgend eine Möglichkeit dies auch in FHEM zu integrieren? Scheinbar läuft das Script ohne HomeAsisstant nicht...
Vielen Dank
Sepp
Hallo zusammen,
Das Thema ist zwar schon etwas älter, aber vielleicht hat in der zwischenzeit ja schon jemand eine Lösung hierfür gefunden...? Ich habe seit heute nämlich eine Dimstal Klimaanlage mit einem WLAN Stick in Betrieb und bin auf der Suche nach einer Möglichkeit das Teil an FHEM anzubinden. Der Stick/die Klimaanlage ist wohl Baugleich mit Midea (in der Anleitung zum Stick steht sogar an mehreren Stellen Midea anstatt Dimstal).
OK, scheint wohl niemand etwas hilfreiches berichten zu können...
Nicht schlimm, ich habe mal selbst noch etwas im Internet herumgesucht und bin hierauf gestoßen: https://github.com/mac-zhou/midea-msmart (https://github.com/mac-zhou/midea-msmart)
Ich habe den Ersteller des Scripts mal angeschrieben um ein paar mehr Infos zu bekommen, wie es funktioniert (er hat auf jeden Fall schonmal geantwortet) und um das ganze aus FHEM heraus nutzbar zu machen.
Schlechte Nachrichten... Ich habe mit dem Entwickler des Python Scripts auf Github einige Tests gemacht und dabei herausgefunden, dass es sich bei dem WLAN Modul in meiner Anlage um eine neuere Version handelt, welche mit dem Script nicht kompatibel ist. :-\
Ich vermute der "USB" WLAN Stick (welcher kein echtes USB ist) spricht nur per seriell (RX/TX) mit der Klimaanlage. Vermutlich ist es einfacher das serielle Protokoll zu reversen und anstelle des original Sticks ein ESP8266 zu benutzen und den Kram selber da drauf zu programmieren. Dann wäre man auch diese China-Cloud von Midea los.
Ich muss mich da mal mit nem Scope und serial sniffer draufhängen demnächst.
Hallo,
hat vielleicht jemand etwas gefunden wie man die Dimstal Klima in FHEM einbinden kann?
Gruß
Christian
Hallo,
Ich wäre auch sehr interessiert an einer Lösung. Ich würde gerne die Klimaanlage anschalten lassen bevor mein Solarstrom einspeist.
Hallo Zusammen,
ich habe mich auch mal mit dem Thema beschäftigt.
Grundsätzlich kann ich meine Klimaanlage die mit einem Midea USB-Connector in mein WLAN Verbunden wird, aus FHEM steuern (An/Aus/Status)
- Dazu habe ich aus GitHub (https://github.com/mac-zhou/midea-msmart) die msmart Software installiert.
- Ein Python-Script erstellt (/opt/midea-msmart/setAC.py).
#!/usr/bin/python3
from msmart.device import air_conditioning_device as ac
import logging
import time
import json
import sys
#logging.basicConfig(level=logging.DEBUG)
device = ac(sys.argv[1], int(sys.argv[2]), 6444)
# If the device is using protocol 3 (aka 8370)
# you must authenticate with device's k1 and token.
# adb logcat | grep doKeyAgree
device.authenticate('YOUR_AC_K1', 'YOUR_AC_TOKEN')
## Set the state of the device and
device.power_state = sys.argv[3].lower() == 'on'
## commit
if sys.argv[3].lower() == 'getstate':
device.refresh()
else:
device.apply()
data = {}
data['id'] = device.id
data['name'] = device.ip
data['power_state'] = device.power_state
data['prompt_tone'] = device.prompt_tone
data['target_temperature'] = device.target_temperature
data['operational_mode'] = device.operational_mode.cool.name
data['fan_speed'] = device.fan_speed.name
data['swing_mode'] = device.swing_mode.name
data['eco_mode'] = device.eco_mode
data['turbo_mode'] = device.turbo_mode
data['indoor_temperature'] = device.indoor_temperature
data['outdoor_temperature'] = device.outdoor_temperature
json_data = json.dumps(data)
print(json_data)
Internals:
FUUID 62506dd9-f33f-e996-8448-ed675589d794aaab
NAME dumAc
NR 394
STATE off
TYPE dummy
OLDREADINGS:
READINGS:
2022-04-09 13:05:19 eco_mode false
2022-04-09 13:05:19 fan_speed Auto
2022-04-09 13:05:19 indoor_temperature 19.0
2022-04-09 13:05:19 myState off
2022-04-09 13:05:19 name 10.46.3.251
2022-04-09 13:05:19 operational_mode cool
2022-04-09 13:05:19 outdoor_temperature 10.0
2022-04-09 13:05:19 power_state false
2022-04-09 13:05:19 prompt_tone false
2022-04-09 13:05:18 state off
2022-04-09 13:05:19 swing_mode Off
2022-04-09 13:05:19 target_temperature 17.0
2022-04-09 13:05:19 turbo_mode false
Attributes:
ac_id 41..........33
ac_ip 10.46.3.251
devStateIcon off:control_standby on:control_standby@green
setList getState:noArg on:noArg off:noArg
stateFormat myState
userReadings myState:power_state.* {
ReadingsVal( $NAME, "power_state", "" ) eq 'true'?'on':'off'
}
userattr ac_ip ac_id
webCmd :
Internals:
DEF dumAc:(on|off|getState).* {
my $ac_ip = AttrVal( $NAME, 'ac_ip', '' );
my $ac_id = AttrVal( $NAME, 'ac_id', '' );
my $result = qx(/opt/midea-msmart/setAC.py $ac_ip $ac_id $EVTPART0);
json2reading( $NAME, $result );
}
FUUID 62506dd0-f33f-e996-573c-d175299a91ce2ca4
NAME notAc
NR 393
NTFY_ORDER 50-notAc
REGEXP dumAc:(on|off|getState).*
STATE 2022-04-09 13:05:18
TRIGGERTIME 1649502318.09567
TYPE notify
READINGS:
2022-04-09 13:04:56 state active
2022-04-09 13:05:18 triggeredByDev dumAc
2022-04-09 13:05:18 triggeredByEvent off
Attributes:
Natürlich ist das Ganze noch extrem rudimentär und vorallem ist es
nicht non-blocking.
Bis die Antwort von der Klimaanlage kommt, können schonmal 2-3 Sekunden vergehen.
Ebenso unterstützt die msmart Software noch weitere Argumente als An/Aus/Status. Die kann man aber einfach noch hinzufügen.
Zitat von: astrastudio am 25 Juli 2020, 23:11:13
Ich vermute der "USB" WLAN Stick (welcher kein echtes USB ist) spricht nur per seriell (RX/TX) mit der Klimaanlage.
Das ist völlig korrekt und es wäre mir auch viel lieber einen selbst geflashten ESP an der A/C zu betreiben.
Auch dazu gibt es ein Tutorial (https://github.com/Links2004/arduinoMideaAC).
Aber entweder bin ich oder das Tutorial so schlecht, das ich es nicht geschafft habe das nachzubauen.
(Naja geschafft habe ich es schon, aber funktioniert hat es nicht ;))
Gerne würde ich das ganze auch in ein Modul gießen, allerdings fehlt mir auch dazu (noch) das Wissen.
Zumindest um es funktioniell und hübsch zu machen, damit es irgendwann mal den weg ins SVN schaffen würde.
Aber vielleicht gibt es ja hier Leute die das Modul-Wissen schon haben und sowas auf die Beine stellen könnten.
Gruß,
JudgeDredd
Hallo Zusammen,
dank der freien Ostertage, habe ich mich nun selbst mal mit dem Thema Modulerstellung beschäftigt.
Dabei herausgekommen ist ein Modul (53_mideaAC.pm) zur Steuerung von Klimaanlagen, welche mit dem midea-Smart-Kit ins Netzwerk Verbunden wurden.
Erforderlich ist:
- die Installation von midea-msmart aus dem GitHub (https://github.com/mac-zhou/midea-msmart)
- ein Python Script (Anhang:setAC.py) zum Aufruf von msmart.
- das neue Modul (Anhang:53_mideaAC.pm).
Das Modul kann:
- non-blocking-Aufrufe
- non-blocking-Interval Aktualisierungen
Das Modul kann (noch) nicht:
Das Protokoll SK103 des midea-USB-Sticks
Das neue Protokoll könnte ich noch einbauen, sofern sich Jemand findet, der das auch testen kann.
Zumindest wird es lt. GitHub von der msmart Software mittlerweile auch unterstützt.
Mein midea-USB-Stick hat nur Protokoll Version SK102
Da der Thread jedoch eine recht "überschaubare" Beteiligung hat, warte ich erstmal ab, ob es hier überhaupt noch Interessenten gibt
und entscheide dann, ob das ganze irgendwie durch mich oder besser jemand Anderen im SVN landen sollte.
Ich bitte noch zu bedenken, das dies mein erstes Modul ist und ich meine Erfahrungen bzgl. Perl und vorallem Python noch als sehr anfänglich betrachte.
So und wer jetzt Lust hat, kann sofort mit Testen anfangen ;)
EDIT:
vielleicht hätte ich noch das define Kommando dazuschreiben sollen:
define <name> mideaAC <IP oder Hostname> <midea ID>
Wie man an die ID kommt, ist auf dem GitHub msmart Seite beschrieben.
EDIT:
Mit der aktuellen Version ist sollte nun auch das Protokoll V3 (SK103) funktionieren.
EDIT (2022/07/01):
53_mideaAC.pm - Anpassungen an Scriptantworthandling (JSONObjekt) -> Danke an Cinem
Gruß,
JudgeDredd
Wenn das funktioniert wäre es sensationell!
Zur Steuerung meiner Klimaanlagen hatte ich bisher extra (wochenlang) in den Home Assistant eingearbeitet und von dort zumindest den Status über MQTT in FHEM angezeigt zu bekommen. Eine Steuerung der Geräte ist bei mir bisher nur über Home Assistant möglich. Dort habe ich es mit dem Modul von mac-zhou (nach einer kleinen Spende) zum Laufen gebracht. Seither funktioniert es zuverlässig. Ich hoffe, das dieses Projekt auch für FHEM hilfreich sein wird!
Sobald ich die hier beschriebenen notwendigen Schritte zur Einrichtung in FHEM verstanden und ausprobiert habe, bin ich gerne bereit zu testen und zu berichten.
Die erste Schwierigkeit ist, dass es bei mir unter /opt/ kein Verzeichnis midea-msmart gibt. Das habe ich jetzt erst einmal angelegt und die Datei setAC.py hier aus dem Forum herunter geladen und in das Verzeichnis geladen. Außerdem die Benutzer-Rechte für fhem gesetzt. Schließlich die Datei 53_mideaAC unter /opt/fhem/FHEM platziert.
Dann das dummy angelegt:
define dumAc dummy
die Attribute hinzugefügt
devStateIcon off:control_standby on:control_standby@green
set list getState:noArg on:noArg off:noArg
stateFormat myState
userReadings myState:power_state.* { ReadingsVal( $NAME, "power_state", "" ) eq 'true'?'on':'off' }
userattr ac_ip ac_id
ac_id 18XXXXXXXXXXX5
ac_ip 192.168.1.41
die Daten der Klimaanlage habe ich mir mit
midea-discover
unter der Linux Konsole besorgt
Außerdem habe ich das notify eingerichtet
define notAc notify a b
und dann unter def das a b mit den Daten ersetzt:
dumAc:(on|off|getState).* {
my $ac_ip = AttrVal( $NAME, 'ac_ip', '' );
my $ac_id = AttrVal( $NAME, 'ac_id', '' );
my $result = qx(/opt/midea-msmart/setAC.py $ac_ip $ac_id $EVTPART0);
json2reading( $NAME, $result );
}
Nach Update und Restart bekomme ich leider von der Klimaanlage weder etwas angezeigt noch etwas gesteuert.
Die Readings im notify zeigen:
READINGS:
2022-05-14 14:30:41 state active
2022-05-14 14:26:29 triggeredByDev dumAc
2022-05-14 14:26:29 triggeredByEvent getState
Was kann ich tun?
Zitat von: SebastianStorb am 14 Mai 2022, 13:15:22Wenn das funktioniert wäre es sensationell!
Na mal schauen, ob wir das hinbekommen ;)
Zitat von: SebastianStorb am 14 Mai 2022, 13:15:22Was kann ich tun?
Zuerst müssen wir mal ein paar Basics klären.
Welches Protokoll hat Dein MideaSmartKit ?
- Version 102 (die habe ich und damit sollte mein Modul funktionieren
- Version 103 (die habe ich nicht. Da brauche ich infos wie der korrekte Aufruf sein muss)
In Post #11 habe ich lediglich erste Versuche zur Funktionaltität gemacht. (das hast Du versucht nachzubauen, würde ich aber nicht weiterverfolgen)
In Post #12 habe ich ein FHEM-Modul und das Python-Script angehängt (das solltest Du versuchen. Ich habe die beiden Dateien heute morgen nochmal frisch angehängt. Ich hatte da vermutlich noch was geändert, da hier aber bis jetzt niemand geschrieben hatte, dachte ich nicht, das es jemand interessiert. Daher am besten nochmal runterladen.)
Also 53_mideaAC.pm ins FHEM-Modulverzeichnis und setAC.py ins midea-smart Verzeichnis kopieren
Zitat von: SebastianStorb am 14 Mai 2022, 13:15:22Die erste Schwierigkeit ist, dass es bei mir unter /opt/ kein Verzeichnis midea-msmart gibt.
...
die Daten der Klimaanlage habe ich mir mit "midea-discover" unter der Linux Konsole besorgt
Da stellt sich die Frage wie und wo hast Du denn die Software von mac-zhou (https://github.com/mac-zhou/midea-msmart) installiert.
Da "midea-discover" funktioniert, scheinst Du die Installation aber gemacht zu haben. Irgendwo muss dann auch das Verzeichnis "midea-msmart" sein. Da sollte dann die "setAC.py" von mir rein.
Ich habe es mit:
cd /opt
git clone https://github.com/mac-zhou/midea-msmart.git
installiert.
Wenn wir das geklärt haben, gehts weiter ...
Gruß,
JudgeDredd
Hallo zusammen.
Besteht die Möglichkeit einen comfee/midea luftentfeuchter 16L-32m²-DF3(WF) damit über fhem zu steuern?
Das teil lässt sich über die nethome app steuern.
Gruß Sascha
Zitat von: sash.sc am 15 Mai 2022, 10:32:45
Besteht die Möglichkeit einen comfee/midea luftentfeuchter 16L-32m²-DF3(WF) damit über fhem zu streiten?
Zitat von: mac-zhou aus GitHubNote: This component only supports devices with model 0xac (air conditioner) ...
Kann ich Dir nicht sagen, aber wenn der Luftentfeuchter nicht vom Modell "0xac" ist, interpretiere ich das mal als Nein.
Du könntest Dich natürlich mal an den GitHub Maintainer wenden. Vielleicht baut er es ein.
Wie bekomme ich das raus?
Zitat von: sash.sc am 15 Mai 2022, 16:16:51
Wie bekomme ich das raus?
Ich befürchte, da wirst du, wie ich schon vorgeschlagen habe, den Entwickler des GitHub Repros anschreiben müssen.
kurze info.
Habe das alles aus dem github mal installiert und midea-discover durchlaufen lassen.
Es wurde auch ein Device gefunden.
Folgendes kam dabei raus. Habe die Daten auch mal in ein issue auf github eingestellt.
Mal schauen was kommt.
/home/pi/.local/bin/midea-discover INFO:msmart.cli:msmart version: 0.2.3 Currently only supports ac devices, only support MSmartHome APP. INFO:msmart.lan:Got TCP key for 192.168.2.104:60298 -> 192.168.2.114:6444 retries: 0 time: 0.58 tcp_key: xxxxxx INFO:msmart.cli:*** Found a device: {'name': 'net_xxxxx', 'ssid': 'net_xxxx', 'ip': '192.168.2.114', 'port': 6444, 'id': xxxxxxxx, 'version': 3, 'token': 'xx', 'key': 'xxxxx', 'type': 'a1', 'sn': 'xxxxxxx', 'model': '00Q1C', 'support': False, 'run_test': True}
Vielen Dank für die schnelle und klasse Antwort. Ich hatte nicht so schnell damit gerechnet.
a) das Verzeichnis liegt bei mir unter
/opt/homeassistant/config/custom_components/midea_ac/
und ich habe die Datei nochmal herunter geladen und dorthin kopiert.
Ist es wichtig, dass der Eigentümer der Datei der Fhem-Benutzer ist (s.u)?
##################################################
b) habe ich den Pfad im notify geändert auf:
/opt/homeassistant/config/custom_components/midea_ac/
Hier tut sich (noch) nichts. Ich wede mir noch mal in Ruhe Deine Anleitung durchlesen.
-Sorry- hier oben war ja die erste Anleitung / geht aber nicht - nur zur Info.
################
Jetzt habe ich den Befehl
define <name> mideaAC <IP oder Hostname> <midea ID>
mit meinen Daten verwendet und es kommt:
Attr "processScript" missing.
Ich habe
processScript /opt/homeassistant/config/custom_components/midea_ac/
gesetzt
Nach dem Ändern der Datei-Rechte auf den Fhem-Besitzer kein Unterschied:
Muss der Pfad so angegeben werden (oder ohne den Datei Namen wie oben)?
processScript /opt/homeassistant/config/custom_components/midea_ac/setAC.py
Der Status steht / stand auf "READY" aber es lässt sich nichts steuern. Nachdem ich versucht habe das Gerät zu starten steht der Status jetzt auf 0. Im zweiten Fall (mit setAC.py Angabe) scheint ein Rechteproblem zu sein, weil hierzu eine Fehlermeldung kommt und ich nicht in FHEM abspeichern kann. Besitzer ist FHEM und die Gruppe habe ich auf dialout gestellt. Es funktioniert aber nicht, wahrscheinlich weil der Oberordner homeassistant gehört.
Ich werde später versuchen midea gemäß Deiner Anleitung "paralell" in den passenden Ordner zu installieren.
Zitat von: SebastianStorb am 16 Mai 2022, 22:36:25
Der Status steht / stand auf "READY" aber es lässt sich nichts steuern. Nachdem ich versucht habe das Gerät zu starten steht der Status jetzt auf 0. Im zweiten Fall (mit setAC.py Angabe) scheint ein Rechteproblem zu sein, weil hierzu eine Fehlermeldung kommt und ich nicht in FHEM abspeichern kann. Besitzer ist FHEM und die Gruppe habe ich auf dialout gestellt. Es funktioniert aber nicht, wahrscheinlich weil der Oberordner homeassistant gehört.
Also es ist so:
in das Attribut "processScript" muß das Python-Script (setAC.py) inklusive Pfad eingetragen werden.
attr <device> processScript /opt/homeassistant/config/custom_components/midea_ac/setAC.py
Desweiteren ist es erforderlich, das der Benutzer mit dem der FHEM-Prozess läuft Lese- und Ausführrechte hat.
Ob er diese Rechte als Besitzer oder als Gruppe bekommt ist dabei unerheblich.
Ich weiß leider nicht wie hier die Standard-Installation aussieht, da ich bei mir eine Andere User-Logik verwende.
Angenommen FHEM läuft bei Dir als Benutzer "fhem", welcher der Gruppe "dialout" angehört, dann wären die Rechte so zu setzen:
sudo chown -c :dialout /opt/homeassistant/config/custom_components/midea_ac/setAC.py
sudo chmod g+rx /opt/homeassistant/config/custom_components/midea_ac/setAC.py
Alle Verzeichnisse auf dem Weg (/opt/homeassistant/config/custom_components/midea_ac) dorthin, sollten dann ausführbar sein.
Meistens wird das über "other" gewährt.
Mein Modul (53_mideaAC.py) prüft ob die Rechte ausreichend sind und nur dann wird das Attribut "processScript" akzeptiert und gesetzt.
Danach Ändert sich der Status von "initialized" auf "ready".
Wenn das Modul also im Status "ready" steht, sollte es funktionieren.
Die wichtigste Frage hast Du aber noch nicht beantwortet.
Welche Version des mideaSmart-Kits hast Du denn überhaupt ?
Version V2 oder die neue V3 ?
Wenn das "midea-discover" Dir einen "KEY und ein "TOKEN" anzeigt, dann hast Du V3.
Wenn das "midea-discover" Dir
keinen "KEY und
keinen "TOKEN" anzeigt, dann hast Du V2.
Aktuell wird vom Modul nur die V2 unterstützt. Da ich aber mittlerweile einen Bekannten gefunden habe, der den V3-Stick hat und ich damit testen kann, bin ich schon dabei das Modul zu erweitern.
Ich hoffe das ich es heute oder morgen noch schaffe, das neue V3 einzubauen.EDIT:
Die Änderungen für das Protokoll V3 sind eingebaut und Post #12 angehängt
Vielen herzlichen Dank für Deine erstklassige Unterstützung! Ich habe mich riesig gefreut und alles versucht wie Du geschrieben hast!
Zuerst einmal die (wahrscheinlich wichtigste) Frage welche Version ich habe. Nachdem ich nochmal midea-discover ausgeführt habe bekomme ich folgende Daten (bei allen Klimaanlagen)
{'type':
'ac',
'support': True,
'version': 3 , 'ip': '', 'id': , 'port': , 'token': '',
'key': '',
'ssid':
'net_ac_000E'}
-> dürfte V3 sein
Hierbei habe ich festgestellt, dass midea-discover
nur als benutzer YYYY
läuft und nicht als root funktioniert.
Ich habe die CHMOD genau so wie Du es vermutet hast (fhem mit dialout) kopiert und ausgeführt. Unter der graphischen Oberfläche meines debian systems habe ich dann noch mal überprüft, dass es übernommen wurde. Leider kommt in Deinem Modul in FHEM immer der Fehler, dass es keine Rechte gibt (oder der Pfad falsch ist, was nicht stimmt).
Die Datei existiert an dem angegebenen Pfad nicht,
oder besitzt nicht die erforderlichen Rechte
Ich habe sogar mal die Datei unter /opt/fhem/backup/setAC.py
kopiert mit den entsprechenden Rechten (fhem dialout 777) - leider werden auch hier die Rechte muniert.[/s]
Ich kann nicht einschätzen, ob es daran liegt, dass midea-discover auch nur als YYYY läuft, wobei homeassistant das letztlich egal zu sein scheint.
Vielleicht ist es einfacher nochmal entsprechend Deiner Anleitung das git nach
cd /opt
git clone https://github.com/mac-zhou/midea-msmart.git
Ich habe es nur den Download ausgeführt, Deine Datei hochgeladen und die Benutzerrechte geändert. Jetzt wurde es in FHEM übernommen.
Es funktioniert aber noch nichts (wahrscheinlich weil ich dort noch mal alles von midea-msmart unter debian installieren muss. Wede ich morgen mal testen, denn reagiert hat bisher noch nichts.
Ich habe jetzt mit dem ftp Programm die Rechte der setAC.py auf 775 gesetzt. Jetzt wurde es in FHEM sofort übernommen. Es kommen auch readings
Internals:
DEF 192.168.XX.XX 1XXXXXXXXXXXXX5
FUUID 6282b708-f33f-ec85-ab8e-b6c5ff78f0e8407f
FVERSION 53_mideaAC.pm:?/2022-05-17
INTERVAL 0
NAME KlimaSebastian
NR 837
STATE On
TYPE mideaAC
READINGS:
2022-05-17 22:57:59 beep true
2022-05-17 22:57:59 fan Auto
2022-05-17 22:57:59 id XXXXXXXXXXX
2022-05-17 22:57:59 intense normal
2022-05-17 22:57:59 mode cool
2022-05-17 22:57:59 name 192.168.XX.XX
2022-05-17 22:57:59 power On
2022-05-17 22:57:59 swing Off
2022-05-17 22:57:59 temperature 17
2022-05-17 22:57:59 x_indoor_temperature 0.0
2022-05-17 22:57:59 x_outdoor_temperature 0.0
helper:
AUTH
HOST -H 192.168.XX.XX
ID -I
Attributes:
processScript /opt/homeassistant/config/custom_components/midea_ac/setAC.py
room Klimaanlage
aber die Anlage reagiert überhaupt nicht auf die Eingaben, die ich in FHEM vornehme.
Ich vermute, dass der key
oder token? oder k1? noch übergeben werden muss. Irgendwas in der Richtung war bei mac-zhou damals auch noch tricky und er hatte etwas getüftelt bis es bei mir mit homeassistant funktionierte.
Zitat von: SebastianStorb am 17 Mai 2022, 22:16:55
Ich habe jetzt mit dem ftp Programm die Rechte der setAC.py auf 775 gesetzt.
ok, kann man auch so machen. Die Lösung über die Gruppe ist zwar sicherer, allerdings sehe ich bei einer Klimaanlagen Steuerung da nicht wirklich eine Gefahr.
Zitat von: SebastianStorb am 17 Mai 2022, 22:16:55
aber die Anlage reagiert überhaupt nicht auf die Eingaben, die ich in FHEM vornehme.
-> dürfte V3 sein
Da hast Du recht. Die Steuerung des Protokolls V3 hatte ich gestern erst eingebaut und an #12 angehängt
Also bitte die aktuelle Version nehmen (Modul + Script). Das Define sieht dann folgendermaßen aus:
define <name> mideaAC <DEVICE> <ID> <KEY> <TOKEN>
Dann sollte es auch bei V3 funktionieren.
S E N S A T I O N E L L ! ! !
es funktioniert - ich kann es wirklich noch nicht glauben. Ich habe da so lange erfolglos dran herumgefummelt - Stunden, Nächte und Tage habe ich benötigt um ein wenig homeassistant zu verstehen und noch viel länger bis dort die Klimaanlage lief! JETZT FUNKTIONIERT ES ENDLICH RICHTIG - UND ZWAR IN FHEM!!!
Ich glaube Dir ist es bekannt - aber vielen Anderen nicht. Wahrscheinlich lassen sich jetzt ein großteil aller (weltweit vertriebenen) Klimaanlagen in FHEM einbinden, denn MIDEA stellt (fast) alle her. Meine ist z.B. von Dimstal!
DANKE DANKE DANKE DANKE DANKE DANKE DANKE 1000x
Du bist einfach SUPER! :) :) :) :)
Zitat von: SebastianStorb am 18 Mai 2022, 22:09:50
es funktioniert - ich kann es wirklich noch nicht glauben.
Freut mich, das es nun bei Dir funktioniert.
Dann sind wir ab jetzt ja schon zwei, die das Modul nutzen
Zitat von: SebastianStorb am 18 Mai 2022, 22:09:50
es funktioniert - ich kann es wirklich noch nicht glauben.
Ich glaube Dir ist es bekannt - aber vielen Anderen nicht. Wahrscheinlich lassen sich jetzt ein großteil aller (weltweit vertriebenen) Klimaanlagen in FHEM einbinden, denn MIDEA stellt (fast) alle her. Meine ist z.B. von Dimstal!
Meine ist auch eine Dimstal.
Mal schauen ob sich noch ein paar melden die auch Interesse haben (vielleicht wenn es demnächst wieder wärmer wird) und ich das Modul dann offiziell ins SVN bringe.
Ich weiß allerdings noch nicht was dazu alles notwendig ist.
Aha Deine ist auch von Dimstal!
Ich hätte noch eine Idee: Mit der Fernbedienung lässt sich die LED am Inverter ausstellen (was besonders Nachts recht angenehm ist). Könntest Du das auch mit FHEM umsetzen, oder müsste mac-zhou das in sein Modul aufnehmen?
hallo JudgeDredd
ich habe auch eine Dimstal ( INVERTER Split Klimaanlage ECO Smart 3,5kW 12000 BTU ), aber leider ein (noch) nicht unterstütztes Protokoll / Modell.
Besteht da Aussicht auf Implementierung?
$ /home/pi/.local/bin/midea-discover
INFO:msmart.cli:msmart version: 0.2.3 Currently only supports ac devices, only support MSmartHome APP.
INFO:msmart.cli:*** Found a device: {'name': 'net_ac_442F', 'ssid': 'net_ac_442F', 'ip': '192.168.178.56', 'port': 6444, 'id': 17..........97, 'version': 2, 'token': None, 'key': None, 'type': 'ac', 'sn': '000P..........00', 'model': '00Q1F', 'support': True, 'run_test': True}
LG
p99p
Zitat von: SebastianStorb am 19 Mai 2022, 21:37:37
Ich hätte noch eine Idee: Mit der Fernbedienung lässt sich die LED am Inverter ausstellen (was besonders Nachts recht angenehm ist). Könntest Du das auch mit FHEM umsetzen, oder müsste mac-zhou das in sein Modul aufnehmen?
Zu dem Thema gab es auf GitHub schon mal eine Anfrage (GitHub/Display-Steuerung (https://github.com/mac-zhou/midea-msmart/issues/24))
Allerdings, so wie ich das verstanden habe, funktioniert das nur, wenn auch die Display an/aus Funktion über die APP angeboten wird.
Dies ist bei mir leider nicht der Fall (wie ist es bei Dir ?). Somit kann die Display Steuerung wohl nur über InfraRot-Fernbedienung geschaltet werden.
Zitat von: pink99panther am 19 Mai 2022, 23:05:14
ich habe auch eine Dimstal ( INVERTER Split Klimaanlage ECO Smart 3,5kW 12000 BTU ), aber leider ein (noch) nicht unterstütztes Protokoll / Modell.
So wie ich das sehe, hast Du das alte V2 Protokoll ohne Authentifizierung.
Da sollte eigentlich ein
define <NAME> mideaAC <HOST/IP> <ID>
ausreichen (also das define OHNE <KEY> und <TOKEN>
Hast Du das schon versucht ?
Hab es probiert
hier das List vom Device
Internals:
CFGFN
DEF 192.168.178.56 17..........97
FUUID 62875bce-f33f-cbef-93d4-cb499876805419a5
INTERVAL 5
NAME KlimaKlb
NR 5919
STATE Ready
TYPE mideaAC
READINGS:
2022-05-20 11:15:18 power 0
helper:
AUTH
HOST -H 192.168.178.56
ID -I 17..........97
RUNNING_PID:
abortArg
abortFn
arg KlimaKlb|/opt/midea-msmart/setAC.py|state -H 192.168.178.56 -I 17..........97
bc_pid 5410
finishFn callScript_finish
fn callScript_start
pid DEAD:15432
timeout 30
Attributes:
AutoRefresh 5
processScript /opt/midea-msmart/setAC.py
room Midea
verbose 5
Ausgabe im Log:
2022.05.20 15:00:44 3: KlimaKlb|/opt/midea-msmart/setAC.py|on -H 192.168.178.56 -I 17..........97 -m Cool -t 17 --beep
Irgendwo hapert es noch bei mir.
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.
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 ;)
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?
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 installieren
pip3 install pycrypto
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
So wie das sehe, hast Du "msmart" und mein Script "setAC.py" nicht im gleichen Verzeichnis.
Wie ist denn der Pfad zu msmart ?
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
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
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
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 ?
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}
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
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
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.
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.
Zitat von: rabbit83 am 16 Juni 2022, 14:01:56
Einmal tauchte im Log folgender Hinweis auf:
Undefined subroutine &main::encode_json called at ./FHEM/53_mideaAC.pm line 223.
Ich habe den Verweis auf JSON explizit im Modul eingefügt. (neue Version in Beitrag #12 (https://forum.fhem.de/index.php/topic,60548.msg1218572.html#msg1218572))
Vermutlich wurde das Perlmodul durch andere FHEM-Module geladen, die bei einer frischen Installation fehlen.
Juhu, funktioniert. Vielen Dank!
Zitat von: rabbit83 am 17 Juni 2022, 13:57:10
Juhu, funktioniert. Vielen Dank!
Danke für die Rückmeldung und weiterhin kühle Nächte :)
Hallo,
der Python-Script Autor (mac-zhou) hat den Namen für die Device-Klasse geändert.
(möglicherweise deutet das daraufhin, das künftig auch andere Geräte als AC gesteuert werden können)
Falls Jemand das midea-msmart aus dem GitHub neu Installiert, bitte die aktualisierte Version von setAC.py aus Post #12 verwenden.
Gruß,
JudgeDredd
Hallo,
zuerst vielen Dank für Deine Arbeit! Ich suche schon lange eine Möglichkeit meine Dimstal Klimaanlage einzubinden und endlich scheint eine Lösung in Sicht.
Ich habe aber ein Problem das ich nicht gelöst bekomme.
Ich habe das Script von mac-zhou nach /opt/fhem/midea-msmart/ geklont. Dein Script setAC.py hab ich in ebenfalls nacht /opt/fhem/midea-msmart/ kopiert und dein Modul installiert. Besitzer und Gruppe sind fhem:dialout und die Rechte per chmod auf 775 gesetzt. Das Attribut processScript ist auf /opt/fhem/midea-msmart/setAC.py gesetzt.
Ich kann direkt aus dem Terminal mit
sudo -u fhem /opt/fhem/midea-msmart/setAC.py status --host 192.168.1.8 --id 18************ --key 36************* --token 9861****************
Den Status der Klimaanlage abfrage und sie schalten.
Allerdings scheint das Modul nicht mit dem Script zu kommunizieren und ich steige nicht dahinter warum.
Hier noch ein list vom Modul:
Internals:
DEF 192.168.1.8 18************ 36************* 9861****************
FUUID 62b091d4-f33f-ece2-0a2f-3a6d286bf82e63e3
INTERVAL 0
NAME Klima_Schlafzimmer
NR 436
STATE Ready
TYPE mideaAC
eventCount 2
READINGS:
2022-06-20 17:42:52 power 0
helper:
AUTH -K 36************* -T 9861****************
HOST -H 192.168.1.8
ID -I 18691697793261
RUNNING_PID:
abortArg
abortFn
arg Klima_Schlafzimmer|/opt/fhem/midea-msmart/setAC.py|state -H 192.168.1.8 -I 18************ -K 36************* -T 9861****************
bc_pid 6
finishFn callScript_finish
fn callScript_start
pid DEAD:863
timeout 30
Attributes:
Signal Off
processScript /opt/fhem/midea-msmart/setAC.py
Ich wäre um einen Schubs in die richtige Richtung dankbar.
Viele Grüße,
Christian
Zitat von: chrisse111179 am 20 Juni 2022, 19:51:07
Ich kann direkt aus dem Terminal mit
sudo -u fhem /opt/fhem/midea-msmart/setAC.py status --host 192.168.1.8 --id 18************ --key 36************* --token 9861****************
Den Status der Klimaanlage abfrage und sie schalten.
Also das würde mich doch sehr wundern. Den Command "status" gibt es eigentlich gar nicht. :o
Kannst Du bitte mal den Result von Deinem Konsolenaufruf, mit dem Du den Status abrufst und gleich noch das FHEM-Log mit Verbose 5 im Modul mal zeigen.
Du verwendest beide letzte Versionen ? (Modul und Script)
Hallo,
ja, ich habe die Dateien gestern Abend aus Post#12 runtergeladen.
Hier mal die Konsolenausgabe mit "state":
pi@fhem:~ $ sudo -u fhem /opt/fhem/midea-msmart/setAC.py state --host 192.168.1.8 --id 18*** --key 36*** --token 98***
{"id": 18***, "name": "192.168.1.8", "power": "Off", "beep": false, "temperature": 23.0, "mode": "fan_only", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 27.0, "x_outdoor_temperature": 37.0}
Hier mit "on":
pi@fhem:~ $ sudo -u fhem /opt/fhem/midea-msmart/setAC.py on --host 192.168.1.8 --id 18*** --key 36***--token 98***
{"id": 18***, "name": "192.168.1.8", "power": "On", "beep": false, "temperature": 20.0, "mode": "auto", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 27.0, "x_outdoor_temperature": 37.0}
Und hier mit "off"
pi@fhem:~ $ sudo -u fhem /opt/fhem/midea-msmart/setAC.py off --host 192.168.1.8 --id 18*** --key 36*** --token 98***
{"id": 18***, "name": "192.168.1.8", "power": "Off", "beep": false, "temperature": 17.0, "mode": "auto", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 27.0, "x_outdoor_temperature": 37.0}
Und hier noch ein Auszug aus dem Logfile mit Verbose 5:
2022.06.21 17:16:59 5: GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Cool%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer
2022.06.21 17:16:59 4: WEB_192.168.1.83_55300 GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Cool%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.21 17:16:59 5: Cmd: >{ReadingsVal("Klima_Schlafzimmer","Cool","")}<
2022.06.21 17:16:59 4: WEB: /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Cool%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Conten>
/ Cache-Control: no-cache, no-store, must-revalidate
2022.06.21 17:16:59 4: Connection accepted from WEB_192.168.1.83_51658
2022.06.21 17:16:59 5: POST /fhem?cmd=help%20Klima_Schlafzimmer&XHR=1&fwcsrf=528215196300767&fw_id=3835 HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://fhem:8083
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer
Content-Length: 0
2022.06.21 17:16:59 4: WEB_192.168.1.83_51658 POST /fhem?cmd=help%20Klima_Schlafzimmer&XHR=1&fwcsrf=528215196300767&fw_id=3835; BUFLEN:0
2022.06.21 17:16:59 5: Cmd: >help Klima_Schlafzimmer<
2022.06.21 17:16:59 4: WEB: /fhem?cmd=help%20Klima_Schlafzimmer&XHR=1&fwcsrf=528215196300767&fw_id=3835 / RL:940 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate
2022.06.21 17:17:00 4: Connection closed for WEB_192.168.1.83_51650: EOF
2022.06.21 17:17:00 5: POST /fhem HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 265
Origin: http://fhem:8083
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer
Upgrade-Insecure-Requests: 1
2022.06.21 17:17:00 4: WEB_192.168.1.83_55300 POST /fhem&detail=Klima_Schlafzimmer&dev.setKlima_Schlafzimmer=Klima_Schlafzimmer&fwcsrf=528215196300767&cmd.setKlima_Schlafzimmer=>
2022.06.21 17:17:00 5: Cmd: >set Klima_Schlafzimmer Cool temp:17,swing:Off,fan:Auto<
2022.06.21 17:17:00 3: Select: set Klima_Schlafzimmer Cool
2022.06.21 17:17:00 4: Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/midea-msmart/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 3673DD91B4244F3ABBB2F6362A685F044504D3F4>
2022.06.21 17:17:00 5: Starting notify loop for Klima_Schlafzimmer, 1 event(s), first is Cool temp:17,swing:Off,fan:Auto
2022.06.21 17:17:00 5: End notify loop for Klima_Schlafzimmer
2022.06.21 17:17:00 5: GET /fhem?detail=Klima_Schlafzimmer&fw_id= HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer
Connection: keep-alive
Upgrade-Insecure-Requests: 1
2022.06.21 17:17:00 4: WEB_192.168.1.83_55300 GET /fhem?detail=Klima_Schlafzimmer&fw_id=; BUFLEN:0
2022.06.21 17:17:00 4: WEB: /fhem?detail=Klima_Schlafzimmer&fw_id= / RL:5244 / text/html; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate
2022.06.21 17:17:00 5: GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.21 17:17:00 4: WEB_192.168.1.83_55300 GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.21 17:17:00 5: Cmd: >{ReadingsVal("Klima_Schlafzimmer","Auto","")}<
2022.06.21 17:17:00 4: WEB: /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Conten>
/ Cache-Control: no-cache, no-store, must-revalidate
2022.06.21 17:17:00 5: GET /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.21 17:17:00 4: WEB_192.168.1.83_51658 GET /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.21 17:17:00 5: Cmd: >{AttrVal("Klima_Schlafzimmer","room","")}<
2022.06.21 17:17:00 4: WEB: /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Content-En>
/ Cache-Control: no-cache, no-store, must-revalidate
2022.06.21 17:17:00 5: GET /fhem?XHR=1&inform=type=status;filter=Klima_Schlafzimmer;since=1655824619.76455;fmt=JSON&fw_id=3835×tamp=1655824620959 HTTP/1.1
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.21 17:17:00 4: WEB_192.168.1.83_55300 GET /fhem?XHR=1&inform=type=status;filter=Klima_Schlafzimmer;since=1655824619.76455;fmt=JSON&fw_id=3835×tamp=1655824620959; BU>
2022.06.21 17:17:03 5: POST /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKl>
Host: fhem:8083
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://fhem:8083
Connection: keep-alive
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
Content-Length: 0
2022.06.21 17:17:03 4: WEB_192.168.1.83_51658 POST /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlaf>
2022.06.21 17:17:03 5: Cmd: >get Klima_Schlafzimmer Status<
2022.06.21 17:17:03 3: Select: get Klima_Schlafzimmer Status
2022.06.21 17:17:03 4: Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/midea-msmart/setAC.py|state -H 192.168.1.8 -I 18691697793261 -K 3673DD91B4244F3ABBB2F6362A685F044504D>
2022.06.21 17:17:03 4: WEB: /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKl>
/ Cache-Control: no-cache, no-store, must-revalidate
Ich hoffe das hilft so weiter!? :-)
Viele Grüße,
Christian
Zitat von: JudgeDredd am 21 Juni 2022, 11:04:21
Also das würde mich doch sehr wundern. Den Command "status" gibt es eigentlich gar nicht. :o
...ach du liebe Zeit...mir ist eben erst aufgefallen, dass ich tatsächlich "status" statt "state" geschrieben habe. Sorry, mein Fehler!
Hi Christian,
also was mir etwas merkwürdig vorkommt, ist Deine Log-Zeile:
2022.06.21 17:17:00 4: Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/midea-msmart/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 3673DD91B4244F3ABBB2F6362A685F044504D3F4>
Das letzte Zeichen ">" irritiert mich.
Hast Du in der DEF da was reingemolgelt oder einen Zeilenumbruch oder sowas in der Art drin ?
Eigentlich müsste die Logzeile noch weitergehen ... " -m Cool -t 17 -s Off -f Auto"
Blöderweise habe ich den USB-Stick mit der V3-Version meinem Kumpel wieder zurückgegeben, so daß ich es mit <Key> und <Token> gerade nicht testen kann.
Gruß,
JudgeDredd
Die komplette Zeile lautet so:
2022.06.21 20:08:34 4: Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/midea-msmart/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 3673DD91B4244F3ABBB2F6362A685F044504D3F499BA4C37A3B017D1775B1C2F -T 9861238F2886B1D1E7938F546C92CA71337A146F77FBA2D42624692F979A162A749FF28759077F7F8E82367F6218B82357BFB7731D6A05810E48CA82D122C281 -m Auto -t 17 -s Off
...man kann wohl nur den sichtbaren Bereich im Terminal mit der Maus markieren...*räusper* sorry!
Hm...vielleicht hilft das ja weiter:
Gebe ich das Kommando mit dem | vor dem Schaltbefehl ein passiert folgendes:
pi@fhem:~ $ sudo -u fhem /opt/fhem/midea-msmart/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 3673DD91B4244F3ABBB2F6362A685F044504D3F499BA4C37A3B017D1775B1C2F -T 9861238F2886B1D1E7938F546C92CA71337A146F77FBA2D42624692F979A162A749FF28759077F7F8E82367F6218B82357BFB7731D6A05810E48CA82D122C281 -m Auto -t 25 -s Off
-bash: on: Kommando nicht gefunden.
Traceback (most recent call last):
File "/opt/fhem/midea-msmart/setAC.py", line 121, in <module>
print( main() )
File "/opt/fhem/midea-msmart/setAC.py", line 53, in main
if ( args.key and args.token is None ) or ( args.key is None and args.token ):
AttributeError: 'Namespace' object has no attribute 'key
Ohne den | scheint es zu gehen
pi@fhem:~ $ sudo -u fhem /opt/fhem/midea-msmart/setAC.py on -H 192.168.1.8 -I 18691697793261 -K 3673DD91B4244F3ABBB2F6362A685F044504D3F499BA4C37A3B017D1775B1C2F -T 9861238F2886B1D1E7938F546C92CA71337A146F77FBA2D42624692F979A162A749FF28759077F7F8E82367F6218B82357BFB7731D6A05810E48CA82D122C281 -m Auto -t 24 -s Off
{"id": 18691697793261, "name": "192.168.1.8", "power": "On", "beep": false, "temperature": 24.0, "mode": "auto", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 25.0, "x_outdoor_temperature": 27.5}
Hallo Christian,
so wie es aussieht, hat sich bei den letzten Änderungen von mac-zhou noch etwas mehr getan.
Ich habe das Script mal angepasst (allerdings ungetestet) und hier direkt dran gehängt.
Bitte mal versuchen ...
Gruß,
JudgeDredd
Hallo,
danke für Deine Mühe und Deine Geduld!
Nein, es funktioniert wieder nur aus dem Terminal heraus. Über das Modul funktioniert es nicht.
Mir schwant ja langsam, dass der Fehler irgendwo bei mir liegt. Ich erläutere dir mal die Schritte die ich durchgeführt habe. Vielleicht habe ich ja irgendetwas versemmelt.
1. Das Script von GitHub geklont
cd /opt/fhem
sudo -u fhem git clone https://github.com/mac-zhou/midea-msmart.git
2. Dein Script im Verzeichnis /opt/fhem/midea-msmart angelegt und ausführbar gemacht
3. Im Modul das Attribut processScript gesetzt
Attributes:
Signal Off
processScript /opt/fhem/midea-msmart/setAC.py
Viele Grüße,
Christian
Zitat von: chrisse111179 am 22 Juni 2022, 15:58:16
Mir schwant ja langsam, dass der Fehler irgendwo bei mir liegt. Ich erläutere dir mal die Schritte die ich durchgeführt habe. Vielleicht habe ich ja irgendetwas versemmelt.
Also das clonen vom GitHub hättest Du nicht machen müssen.
Installation erfolgt mit
pip3 install msmart
Aber wie dem auch sei, wenn der Aufruf über die Konsole funktioniert, muss es auch mit dem Modul funktionieren.
Unter dem Strich generiert das Modul ja nur den Aufruf des setAC.py mit den richtigen Parametern und verarbeitetr die Antort in den Readings.
Das Modul loggt eigentlich im Verbose 5 auch den Aufruf des Scripts und die Rückgabe dazu mit den Logeinträgen
5: Aufruf setAC: <ScriptName und Parameter>
5: Result setAC: <Antwort des Scripts>
Fehlen diese Zeilen bei Dir tatsächlich im FHEM-Log oder hast Du nicht alles kopiert und die kommen weiter unten ?
Hallo,
sorry, kam nicht dazu zu testen.
Das steht im Logfile wenn ich versuche über das Webinterface den Status abzufragen:
2022.06.25 18:55:03 5: POST /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKlima_Schlafzimmer=&XHR=1&addLinks=1&fwcsrf=528215196300767&fw_id=690 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:55:03 4: WEB_192.168.1.83_40122 POST /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKlima_Schlafzimmer=&XHR=1&addLinks=1&fwcsrf=528215196300767&fw_id=690; BUFLEN:0
2022.06.25 18:55:03 5: Cmd: >get Klima_Schlafzimmer Status<
2022.06.25 18:55:03 3: Select: get Klima_Schlafzimmer Status
2022.06.25 18:55:03 4: Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/.local/bin/setAC.py|state -H 192.168.1.8 -I 18691697793261 -K 4136E882A281485BBA7D17CD092E7B2BB9D5A05731B84885A3A8AE82F0D5471E -T 8BF88B0EBF91F920565259D7EFA972352A2C8744A222346949F92CFEF8C1EEE7E6AF56513D46EA1609BEEF68061ED12C729674E35F900122B35AEB7265871E1F
2022.06.25 18:55:03 4: WEB: /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKlima_Schlafzimmer=&XHR=1&addLinks=1&fwcsrf=528215196300767&fw_id=690 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
Und das wenn ich versuche zu schalten:
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:57:08 4: WEB_192.168.1.83_49760 POST /fhem&detail=Klima_Schlafzimmer&dev.setKlima_Schlafzimmer=Klima_Schlafzimmer&fwcsrf=528215196300767&cmd.setKlima_Schlafzimmer=set&arg.setKlima_Schlafzimmer=Auto&val.setKlima_Schlafzimmer=temp%3A17&val.setKlima_Schlafzimmer=swing%3AOff; BUFLEN:0
2022.06.25 18:57:08 5: Cmd: >set Klima_Schlafzimmer Auto temp:17,swing:Off<
2022.06.25 18:57:08 3: Select: set Klima_Schlafzimmer Auto
2022.06.25 18:57:08 4: Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/.local/bin/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 4136E882A281485BBA7D17CD092E7B2BB9D5A05731B84885A3A8AE82F0D5471E -T 8BF88B0EBF91F920565259D7EFA972352A2C8744A222346949F92CFEF8C1EEE7E6AF56513D46EA1609BEEF68061ED12C729674E35F900122B35AEB7265871E1F -m Auto -t 17 -s Off --beep
2022.06.25 18:57:08 5: Starting notify loop for Klima_Schlafzimmer, 1 event(s), first is Auto temp:17,swing:Off
2022.06.25 18:57:08 5: End notify loop for Klima_Schlafzimmer
2022.06.25 18:57:08 5: GET /fhem?detail=Klima_Schlafzimmer&fw_id= HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:57:08 4: WEB_192.168.1.83_49760 GET /fhem?detail=Klima_Schlafzimmer&fw_id=; BUFLEN:0
2022.06.25 18:57:08 4: WEB: /fhem?detail=Klima_Schlafzimmer&fw_id= / RL:5164 / text/html; charset=UTF-8 / Content-Encoding: gzip
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:57:08 5: GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:57:08 4: WEB_192.168.1.83_49766 GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.25 18:57:08 5: Cmd: >{ReadingsVal("Klima_Schlafzimmer","Auto","")}<
2022.06.25 18:57:08 4: WEB: /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
2022.06.25 18:57:08 5: GET /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:57:08 4: WEB_192.168.1.83_49774 GET /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.25 18:57:08 5: Cmd: >{AttrVal("Klima_Schlafzimmer","room","")}<
2022.06.25 18:57:08 4: WEB: /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
2022.06.25 18:57:08 5: GET /fhem?XHR=1&inform=type=status;filter=Klima_Schlafzimmer;since=1656176227.40936;fmt=JSON&fw_id=709×tamp=1656176228588 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.25 18:57:08 4: WEB_192.168.1.83_49766 GET /fhem?XHR=1&inform=type=status;filter=Klima_Schlafzimmer;since=1656176227.40936;fmt=JSON&fw_id=709×tamp=1656176228588; BUFLEN:0
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
i
Ich habe msmart jetzt als user fhem mit pip3 installiert. Das installiert sich bei mir dann nach /opt/fhem/.local/. Dort werden zwei Unterverzeichnisse angelegt. /opt/fhem/.local/bin/ und /opt/fhem/.local/lib/. Im Verzeichnis /opt/fhem/.local/bin/ bedindet sich midea-discover und da hin habe ich dein Script kopiert.
Also so:
pi@fhem:/opt/fhem/.local/bin $ dir
midea-discover setAC.py
Viele Grüße,
Christian
Hi Christian,
also irgendwie kommt das Modul bei Dir nicht in der Funktion "callScript_start" an.
Warum kann ich noch nicht sagen.
Ich gehe davon aus, das Dein FHEM auf dem aktuellen Stand ist (Featurelevel: 6.1)
Bitte mal in die FHEM-Kommandozeile den Scriptaufruf direkt eingeben und schauen, ob die Antwort als Ausgabe kommt.
{qx(/opt/fhem/.local/bin/setAC.py state -H 192.168.1.8 -I 18691697793261 -K 4136E882A281485BBA7D17CD092E7B2BB9D5A05731B84885A3A8AE82F0D5471E -T 8BF88B0EBF91F920565259D7EFA972352A2C8744A222346949F92CFEF8C1EEE7E6AF56513D46EA1609BEEF68061ED12C729674E35F900122B35AEB7265871E1F)}
Gruß,
JudgeDredd
Hallo,
ja, Featurelevel steht auf 6.1.
Der Befehl:
{qx(/opt/fhem/.local/bin/setAC.py state -H 192.168.1.8 -I 18691697793261 -K 4136E882A281485BBA7D17CD092E7B2BB9D5A05731B84885A3A8AE82F0D5471E -T 8BF88B0EBF91F920565259D7EFA972352A2C8744A222346949F92CFEF8C1EEE7E6AF56513D46EA1609BEEF68061ED12C729674E35F900122B35AEB7265871E1F)}
Gibt diese Ausgabe zurück:
{"id": 18691697793261, "name": "192.168.1.8", "power": "On", "beep": false, "temperature": 23.0, "mode": "auto", "fan": "Auto", "swing": "Off", "intense": "normal", "x_indoor_temperature": 22.0, "x_outdoor_temperature": 27.0}
Viele Grüße,
Christian
Hi Christian,
um der ganzen Sache weiter auf die Spur zu kommen, habe ich nochmal ein paar Logausgaben eingebaut.
Bitte mal das angehängte Modul benutzen und Verbose 5 Ausgabe mal bitte zeigen.
Gruß,
JudgeDredd
Guten Abend!
Nochmal danke dass du dich da so reinhängst!
Das ist die Log-Ausgabe bei einer Statusabfrage:
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer
2022.06.27 21:00:08 5: POST /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKlima_Schlafzimmer=&XHR=1&addLinks=1&fwcsrf=528215196300767&fw_id=525 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer
2022.06.27 21:00:08 4: WEB_192.168.1.83_34544 POST /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKlima_Schlafzimmer=&XHR=1&addLinks=1&fwcsrf=528215196300767&fw_id=525; BUFLEN:0
2022.06.27 21:00:08 5: Cmd: >get Klima_Schlafzimmer Status<
2022.06.27 21:00:08 2: Klima_Schlafzimmer Select: get Klima_Schlafzimmer Status
2022.06.27 21:00:08 5: Klima_Schlafzimmer BlockingCall skipped existingPID (HASH(0x7183608)))
2022.06.27 21:00:08 4: WEB: /fhem?detail=Klima_Schlafzimmer&dev.getKlima_Schlafzimmer=Klima_Schlafzimmer&cmd.getKlima_Schlafzimmer=get&arg.getKlima_Schlafzimmer=Status&val.getKlima_Schlafzimmer=&XHR=1&addLinks=1&fwcsrf=528215196300767&fw_id=525 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
Und das wenn ich sie schalten möchte:
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.27 21:02:59 4: WEB_192.168.1.83_34212 POST /fhem&detail=Klima_Schlafzimmer&dev.setKlima_Schlafzimmer=Klima_Schlafzimmer&fwcsrf=528215196300767&cmd.setKlima_Schlafzimmer=set&arg.setKlima_Schlafzimmer=Auto&val.setKlima_Schlafzimmer=temp%3A17&val.setKlima_Schlafzimmer=swing%3AOff; BUFLEN:0
2022.06.27 21:02:59 5: Cmd: >set Klima_Schlafzimmer Auto temp:17,swing:Off<
2022.06.27 21:02:59 2: Klima_Schlafzimmer Select: set Klima_Schlafzimmer Auto
2022.06.27 21:02:59 3: Klima_Schlafzimmer Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/.local/bin/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 4136E882A281485BBA7D17CD092E7B2BB9D5A05731B84885A3A8AE82F0D5471E -T 8BF88B0EBF91F920565259D7EFA972352A2C8744A222346949F92CFEF8C1EEE7E6AF56513D46EA1609BEEF68061ED12C729674E35F900122B35AEB7265871E1F -m Auto --beep
2022.06.27 21:02:59 3: Klima_Schlafzimmer Parameter BlockingCall: Klima_Schlafzimmer|/opt/fhem/.local/bin/setAC.py|on -H 192.168.1.8 -I 18691697793261 -K 4136E882A281485BBA7D17CD092E7B2BB9D5A05731B84885A3A8AE82F0D5471E -T 8BF88B0EBF91F920565259D7EFA972352A2C8744A222346949F92CFEF8C1EEE7E6AF56513D46EA1609BEEF68061ED12C729674E35F900122B35AEB7265871E1F -m Auto -t 17 -s Off --beep
2022.06.27 21:02:59 5: Klima_Schlafzimmer BlockingCall skipped existingPID (HASH(0x7183608)))
2022.06.27 21:02:59 5: Starting notify loop for Klima_Schlafzimmer, 1 event(s), first is Auto temp:17,swing:Off
2022.06.27 21:02:59 5: End notify loop for Klima_Schlafzimmer
2022.06.27 21:02:59 5: GET /fhem?detail=Klima_Schlafzimmer&fw_id= HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.27 21:02:59 4: WEB_192.168.1.83_34212 GET /fhem?detail=Klima_Schlafzimmer&fw_id=; BUFLEN:0
2022.06.27 21:02:59 4: WEB: /fhem?detail=Klima_Schlafzimmer&fw_id= / RL:5161 / text/html; charset=UTF-8 / Content-Encoding: gzip
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.27 21:02:59 5: GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.27 21:02:59 4: WEB_192.168.1.83_34214 GET /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.27 21:02:59 5: Cmd: >{ReadingsVal("Klima_Schlafzimmer","Auto","")}<
2022.06.27 21:02:59 4: WEB: /fhem?cmd=%7BReadingsVal(%22Klima_Schlafzimmer%22%2C%22Auto%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
2022.06.27 21:02:59 5: GET /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.27 21:02:59 4: WEB_192.168.1.83_34224 GET /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767; BUFLEN:0
2022.06.27 21:02:59 5: Cmd: >{AttrVal("Klima_Schlafzimmer","room","")}<
2022.06.27 21:02:59 4: WEB: /fhem?cmd=%7BAttrVal(%22Klima_Schlafzimmer%22%2C%22room%22%2C%22%22)%7D&XHR=1&fwcsrf=528215196300767 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
2022.06.27 21:02:59 5: GET /fhem?XHR=1&inform=type=status;filter=Klima_Schlafzimmer;since=1656356578.21987;fmt=JSON&fw_id=557×tamp=1656356579427 HTTP/1.1
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
2022.06.27 21:02:59 4: WEB_192.168.1.83_34214 GET /fhem?XHR=1&inform=type=status;filter=Klima_Schlafzimmer;since=1656356578.21987;fmt=JSON&fw_id=557×tamp=1656356579427; BUFLEN:0
Referer: http://fhem:8083/fhem?detail=Klima_Schlafzimmer&fw_id=
Viele Grüße,
Christian
Hi JudgeDredd
bin inzwischen auch etwas voran gekommen,
hänge aber auch an der Komunikation zwischen Modul und Script.
2022.06.27 21:04:05 4: KlimaKlb Aufruf setAC: /opt/midea-msmart/setAC.py off -H 192.168.178.56 -I 175.............797
hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this) at ./FHEM/53_mideaAC.pm line 249.
Sind bei mir sehr wenige Logeinträge trotz Modul von gerade eben.
Der anfängliche "Fehler" lag am Verweis auf den Interpreter im Script.
Hab ich auf: #!/opt/fhem/Python-3.9.5/python geändert
LG
Manfred
Zitat von: chrisse111179 am 27 Juni 2022, 21:04:15
Nochmal danke dass du dich da so reinhängst!
Kein Problem, interessiert mich ja selbst, warum das nur bei Dir so ist.
Diese Zeile zeigt, warum das setAC.py nicht aufgerufen wird.
2022.06.27 21:00:08 5: Klima_Schlafzimmer BlockingCall skipped existingPID (HASH(0x7183608)))
Offensichtlich, gibt es schon einen Aufruf, welcher noch vollstaendig beendet ist.
Sagt Dir das irgendwas ?
rufst Du das Modul in sehr kurzen Abständen auf, oder hast einen extrem kurzen RefreshIntervall eingestellt ?
Kannst Du es bitte nochmal ohne Intervall und direkt nach einem FHEM Neustart testen ?
Zitat von: pink99panther am 27 Juni 2022, 21:15:37
Hab ich auf: #!/opt/fhem/Python-3.9.5/python geändert
Komisch, meine Python installationen liegen alle in /usr/bin
Nunja, dann ist diese Hürde ja zumindest genommen.
Zitat von: pink99panther am 27 Juni 2022, 21:15:37
hänge aber auch an der Komunikation zwischen Modul und Script.
Funktioniert denn bei Dir der direkte Aufruf auf der Shell ?
ZitatFunktioniert denn bei Dir der direkte Aufruf auf der Shell ?
Ja, sogar aus der Eingabezeile in fhem.
Hallo Manfred,
Zitat von: pink99panther am 27 Juni 2022, 21:15:37
hänge aber auch an der Komunikation zwischen Modul und Script.
2022.06.27 21:04:05 4: KlimaKlb Aufruf setAC: /opt/midea-msmart/setAC.py off -H 192.168.178.56 -I 175.............797
hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this) at ./FHEM/53_mideaAC.pm line 249.
Der Fehler sieht mir eher danach aus, als ob Du nicht die neuste version von mac-zhou verwendest (msmart 0.2.3)
bzw. nicht die passende setAC.py zum msmart hast.
Kannst Du mal schauen, ob Du noch eine frühere Version von msmart installiert hast ?
evtl. hilft ein update:
pip3 install --upgrade msmart
Zitat von: JudgeDredd am 28 Juni 2022, 11:40:09
Hallo Manfred,Der Fehler sieht mir eher danach aus, als ob Du nicht die neuste version von mac-zhou verwendest (msmart 0.2.3)
bzw. nicht die passende setAC.py zum msmart hast.
Kannst Du mal schauen, ob Du noch eine frühere Version von msmart installiert hast ?
evtl. hilft ein update:
pip3 install --upgrade msmart
hatte schon die neueste Version
fhem@raspiKlb:~$ pip3 list module
Package Version
------------------------- ---------
certifi 2022.6.15
cffi 1.15.0
charset-normalizer 2.0.12
click 8.1.3
idna 3.3
ifaddr 0.2.0
msmart 0.2.3
pip 22.1.2
pycparser 2.21
pycryptodome 3.15.0
pycryptodome-test-vectors 1.0.10
pycryptodomex 3.14.1
PyYAML 6.0
requests 2.27.1
setuptools 56.0.0
shellescape 3.8.1
urllib3 1.26.9
fhem@raspiKlb:~$
Hallo,
Zitat von: JudgeDredd am 28 Juni 2022, 08:34:40
Diese Zeile zeigt, warum das setAC.py nicht aufgerufen wird.
2022.06.27 21:00:08 5: Klima_Schlafzimmer BlockingCall skipped existingPID (HASH(0x7183608)))
Offensichtlich, gibt es schon einen Aufruf, welcher noch vollstaendig beendet ist.
Sagt Dir das irgendwas ?
rufst Du das Modul in sehr kurzen Abständen auf, oder hast einen extrem kurzen RefreshIntervall eingestellt ?
Kannst Du es bitte nochmal ohne Intervall und direkt nach einem FHEM Neustart testen ?
ich hatte das Attribut AutoRefresh gar nicht gesetzt. Ich habe es jetzt auf 10 gestellt, da sollte der Intervall ja groß genug sein.
Direkt nach einem Neustart von FHEM konnte ich das Klimagerät ein Mal vom Webinterface aus schalten. Dann geht wieder nichts.
Viele Grüße,
Christian
@chrisse111179, @pink99panther
Hi ihr beiden,
also ich muss gestehen, so langsam gehen mir die Ideen aus.
Nur mal zur Sicherheit, das wir auf der gleichen Basis analysieren, habe ich beide aktuelle Dateien hier nochmal angehängt.
Diese erfordern die Version 0.2.3 von msmart.
Es war sicherlich etwas Pech, das mac-zhou Änderungen an msmart während der Entwicklungsphase meines Moduls vorgenommen hat.
Bitte nochmal versuchen.
- setAC.py und 53_mideaAC.pm aus diesem Post nehmen
- FHEM neu starten
- Modul auf Verbose 5 setzen
- get Status ausführen
- nochmal get Status ausführen
- das Log mir zur Verfügung stellen und mitteilen was passiert ist.
Gruß,
JudgeDredd
2022.06.29 14:27:50 3: FHEMWEB WEB CSRF error: csrf_26xxxxxxxxxxxxx ne csrf_42xxxxxxxxxxxxx for client WEB_192.168.115.21_60152 / command get KlimaKlb Status . For details see the csrfToken FHEMWEB attribute.
2022.06.29 14:27:50 2: KlimaKlb Select: get KlimaKlb Status
2022.06.29 14:27:50 3: KlimaKlb Parameter BlockingCall: KlimaKlb|/opt/midea-msmart/setAC.py|state -H 192.168.178.56 -I 175........797
2022.06.29 14:27:50 5: KlimaKlb BlockingCall newPID (972))
2022.06.29 14:27:50 4: KlimaKlb Aufruf setAC: /opt/midea-msmart/setAC.py state -H 192.168.178.56 -I 175........797
hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this) at ./FHEM/53_mideaAC.pm line 249.
2022.06.29 14:28:55 2: KlimaKlb Select: get KlimaKlb Status
2022.06.29 14:28:55 5: KlimaKlb BlockingCall skipped existingPID (DEAD:972))
Ich glaube, ich sollte mich mal mit dem csrf-Thema beschäftigen :o
Hallo Zusammen,
ich hatte die selben Probleme, dass die Anlage nicht steuerbar war und habe mich die letzten Stunden ein wenig dahinter geklemmt und ein wenig herumgetestet.
Zitat von: JudgeDredd am 29 Juni 2022, 12:03:23
@chrisse111179, @pink99panther
Hi ihr beiden,
also ich muss gestehen, so langsam gehen mir die Ideen aus.
Nur mal zur Sicherheit, das wir auf der gleichen Basis analysieren, habe ich beide aktuelle Dateien hier nochmal angehängt.
Diese erfordern die Version 0.2.3 von msmart.
Es war sicherlich etwas Pech, das mac-zhou Änderungen an msmart während der Entwicklungsphase meines Moduls vorgenommen hat.
Bitte nochmal versuchen.
- setAC.py und 53_mideaAC.pm aus diesem Post nehmen
- FHEM neu starten
- Modul auf Verbose 5 setzen
- get Status ausführen
- nochmal get Status ausführen
- das Log mir zur Verfügung stellen und mitteilen was passiert ist.
Gruß,
JudgeDredd
Ich konnte es soweit herunterbrechen, dass der Rückgabewert vom Aufruf des Python-Scriptes nicht korrekt umgewandelt werden konnte. Ich habe die, derzeit bei mir funktionierende Version, mit angehängt.
Die grundsätzlichen Veränderungen sind, dass ich den Aufruf in ein Array stecke und anschließend das JSON als Objekt convertiere und zurück gebe (Zeile 249 bis 253).
Anschließend in der callScript_finish-Funktion wird der JSON-String wieder decodiert (Zeile 263 bis 264).
Hoffe das bringt alle ein wenig weiter
Zitat von: Cinem am 30 Juni 2022, 12:30:30
ich hatte die selben Probleme, dass die Anlage nicht steuerbar war und habe mich die letzten Stunden ein wenig dahinter geklemmt und ein wenig herumgetestet.
Die grundsätzlichen Veränderungen sind, dass ich den Aufruf in ein Array stecke und anschließend das JSON als Objekt convertiere und zurück gebe (Zeile 249 bis 253).
Anschließend in der callScript_finish-Funktion wird der JSON-String wieder decodiert (Zeile 263 bis 264).
Hi Cinem,
im Prinzip hast Du es fast genauso gemacht, wie ich in meinem Modul ganz zu Beginn (vor der Veröffentlichung)
Aktuell verwendet das Modul die Funktion "encode_json/decode_json", wie es auch im Modulentwickler-WIKI steht.
Ich würde gerne verstehen, warum es bei einigen (wie auch bei mir) Funktioniert und bei einigen eben nicht. Ich hoffe ich komme am Wochenende dazu das mal nachzustellen.
Danke schonmal für Deinen Einsatz.
Gruß,
JudgeDredd
Zitat von: JudgeDredd am 30 Juni 2022, 12:38:02
Hi Cinem,
im Prinzip hast Du es fast genauso gemacht, wie ich in meinem Modul ganz zu Beginn (vor der Veröffentlichung)
Aktuell verwendet das Modul die Funktion "encode_json/decode_json", wie es auch im Modulentwickler-WIKI steht.
Ich würde gerne verstehen, warum es bei einigen (wie auch bei mir) Funktioniert und bei einigen eben nicht. Ich hoffe ich komme am Wochenende dazu das mal nachzustellen.
Danke schonmal für Deinen Einsatz.
Gruß,
JudgeDredd
Gute und berechtigte Frage,
in meiner Installation hat dein Modul leider auch nicht funktioniert. Beim Debuggen konnte ich es auf den Rückgabewert von Python-Script zurückführen, da die Konvertierung für die Übergabe nicht korrekt funktioniert hat.
Zitat
hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this) at ./FHEM/53_mideaAC.pm line 249.
Die Lösung lag hierbei im "allow_nonref" sowie der Enkodierung als UTF8 (Zeile 251).
Falls es bei deiner Fehlersuche hilft: In meinem Fall läuft FHEM in einer Docker-Umgebung mit dem Network-Mode "host".
Zitat von: Cinem am 30 Juni 2022, 12:30:30
............
Hoffe das bringt alle ein wenig weiter
Ja!!!
damit funktioniert es bei mir.
Danke für's Forschen.
Ich bin zuversichtlich, dass das eigentliche Problem noch gefunden wird.
Hallo,
Zitat von: Cinem am 30 Juni 2022, 12:30:30
Hoffe das bringt alle ein wenig weiter
ja, klasse! Damit funktioniert es bei mir auch! Danke euch allen!
Viele Grüße,
Christian
Hallo Zusammen,
ich habe nun die letzte Version in Post #12 (https://forum.fhem.de/index.php/topic,60548.msg1218572.html#msg1218572) aktualisiert.
Damit sollte es nun bei allen funktionieren.
Leider habe ich keinen Überblick mehr, wie groß denn nun das Intresse ist, das Modul offiziell ins SVN zu bringen.
Wenn dazu Jemand Vorschläge hat, immer gerne.
Gruß,
JudgeDredd
8) 8) 8)
damit läuft meine
DIMSTAL GoldenFin ECO Smart WLAN/WiFi 3,5kW 12000 BTU Inverter Klimaanlage einwandfrei.
Soll hier keine Werbung für DIMSTAL sein, aber damit wissen auch andere, dass diese Anlagen sich in fhem integrieren lassen.
Vielen, vielen Dank für das Modul.
Guten Morgen,
Zitat von: JudgeDredd am 01 Juli 2022, 10:26:57
Hallo Zusammen,
ich habe nun die letzte Version in Post #12 (https://forum.fhem.de/index.php/topic,60548.msg1218572.html#msg1218572) aktualisiert.
Damit sollte es nun bei allen funktionieren.
Leider habe ich keinen Überblick mehr, wie groß denn nun das Intresse ist, das Modul offiziell ins SVN zu bringen.
Wenn dazu Jemand Vorschläge hat, immer gerne.
Gruß,
JudgeDredd
ich finde, das Modul sollte mit FHEM ausgeliefert werden. Ich kann natürlich nur von mir sprechen, aber ich habe wirklich lange nach einer Möglichkeit gesucht meine Dimstal-Anlage nativ in FHEM einzubinden. Dass mich das ganze noch von der Cloud und der schlechten App befreit ist ein echtes Plus. Ich weiß nicht, ob das möglich ist, aber wenn die Installation des Moduls noch einfacher wäre, also das Script und midea-discover sich da irgendwie mitinstallieren würden, wäre es sicher auch für User interessant, die NOCH weniger versiert sind als ich.
Viele Grüße,
Christian
Hallo zusammen,
ich bin zufällig auf das Modul gestoßen und wollte es auch haben scheitere aber irgendwie beim Auslesen des Key's, etc.
Bei dem Aufruf von midea-discover
erscheint bei mir immer Traceback (most recent call last):
File "/usr/local/bin/midea-discover", line 7, in <module>
from msmart.cli import discover
File "/home/pi/.local/lib/python3.5/site-packages/msmart/cli.py", line 8, in <module>
from msmart.scanner import MideaDiscovery
File "/home/pi/.local/lib/python3.5/site-packages/msmart/scanner.py", line 272
localNet = IPv4Network(f"{ip.ip}/{ip.network_prefix}", strict=False)
^
SyntaxError: invalid syntax
Was mache ich falsch?
Gruß Thorsten
Hallo Thorsten,
Zitat von: Thorsten.N am 03 Juli 2022, 11:10:54Was mache ich falsch?
Welche Python Version hast Du denn installiert ?
pi@raspberrypi:~ $ python --version
Python 2.7.13
Ist das also die Ursache?
Mit Python 3.9.5 ist der gleiche Fehler.
Zitat von: Thorsten.N am 03 Juli 2022, 11:10:54
Hallo zusammen,
ich bin zufällig auf das Modul gestoßen und wollte es auch haben scheitere aber irgendwie beim Auslesen des Key's, etc.
Bei dem Aufruf von midea-discover
erscheint bei mir immer Traceback (most recent call last):
File "/usr/local/bin/midea-discover", line 7, in <module>
from msmart.cli import discover
File "/home/pi/.local/lib/python3.5/site-packages/msmart/cli.py", line 8, in <module>
from msmart.scanner import MideaDiscovery
File "/home/pi/.local/lib/python3.5/site-packages/msmart/scanner.py", line 272
localNet = IPv4Network(f"{ip.ip}/{ip.network_prefix}", strict=False)
^
SyntaxError: invalid syntax
Was mache ich falsch?
Gruß Thorsten
Berechtigung? Mal mit sudo versucht?
Hey,
leider kommt bei sudo midea-discover
auch der gleiche Fehler.
Was habt ihr denn anders gemacht?
Wie hast Du denn das msmart installiert ?
pip Install msmart
oder
pip3 Install msmart
Hallo,
ich habe das mit pip3 install msmart
installiert. Danach kommt auch Successfully installed certifi-2022.5.18 chardet-4.0.0 click-7.1.2 idna-2.10 ifaddr-0.2.0 msmart-0.2.3 pycryptodome-3.15.0 requests-2.25.1 urllib3-1.26.9
Mir scheint irgendein Paket zu fehlen, oder muss ich nach der Installation noch ein (paar) Scripte anpassen?
Bei mir kam am Ende die Meldung, dass midea-discover sich nicht im PATH befindet.
Also kannst du entweder die PATH-Variable erweitern, oder midea-discover mit der komletten Pfadangabe aufrufen.
Hallo Thorsten,
also um erstmal auszuschließen, das Du midea-discover mit der falschen Python-Version aufrufst,
versuche es mal mit einem expliziten Python3 Aufruf.
python3 /usr/local/bin/midea-discover
und zeige nochmal den Output.
Gruß,
JudgeDredd
Jippieeeeeh! Es funktioniert. Ist das cool :)
Vielen Dank für eure ganzen Bemühungen. Ich habe auf einem andere Raspberry msmart installiert. Da wurde mir dann sofort ein Gerät angezeigt.
Zurück auf das alte System mit fhem. Das Device angelegt. Und läuft auf anhieb. x_outdoor_temperature zeigt mir ein Wert von 102.5. Was ist das für ein Wert? Und vielleicht wären ein paar Dropdown Felder in fhem ganz cool :)
Vielleicht sollte man die Installation mal übersichtlicher gestalten. Ich denke das mehrere gern ihre Klimaanlage lokal über fhem steuern möchten. Ohne Cloud :)
Nochmals vielen Dank :)
Gruß Thorsten
Zitat von: Thorsten.N am 04 Juli 2022, 19:01:41
Jippieeeeeh! Es funktioniert. Ist das cool :)
Na dann viel Spass damit.
Zitat von: Thorsten.N am 04 Juli 2022, 19:01:41
x_outdoor_temperature zeigt mir ein Wert von 102.5. Was ist das für ein Wert?
In dem Reading sollte (wie der Name vermuten lässt) die Außentemperatur stehe.
102.5 °C scheint mir aber "etwas" hoch, sofern der Radiator nicht in der Sauna hängt.
Ich vermute mal, es sind 102.5 °F. Schau mal, ob Du das an der AC umstellen kannst.
Zitat von: Thorsten.N am 04 Juli 2022, 19:01:41
vielleicht wären ein paar Dropdown Felder in fhem ganz cool :)
Dropdownfelder hat das Modul doch einige :)
Was stellst Du Dir denn vor, was diese beinhalten sollten ?
Zitat von: Thorsten.N am 04 Juli 2022, 19:01:41
Vielleicht sollte man die Installation mal übersichtlicher gestalten.
Was meinst Du mit übersichtlicher ?
Das Modul ist ja noch nicht offiziell im SVN, daher muss man es hier im Thread herunterladen.
Oder meinst Du die Installation von msmart aus dem GitHub ?
Da habe ich leider keinen Einfluss drauf, da diese ja nicht von mir stammt.
Zitat von: JudgeDredd am 01 Juli 2022, 10:26:57
Hallo Zusammen,
ich habe nun die letzte Version in Post #12 (https://forum.fhem.de/index.php/topic,60548.msg1218572.html#msg1218572) aktualisiert.
Damit sollte es nun bei allen funktionieren.
Leider habe ich keinen Überblick mehr, wie groß denn nun das Intresse ist, das Modul offiziell ins SVN zu bringen.
Wenn dazu Jemand Vorschläge hat, immer gerne.
Gruß,
JudgeDredd
Ich nutze das Modul auch - schaltet bei mir die Klima in Abhängigkeit von Innen- und Außentemperatur sowie Überschuss von der PV-Anlage. Danke! Insofern fände ich es auch gut, wenn das Modul "offiziell" wird.
Grüße
Jan
Hallo,
habe seit gestern auch eine Dimstal am laufen und würde gerne das Modul installieren.
Gibt es einen kompakte Anleitung was ich genau alles tun muss ?
Eine "offizielle" Version wäre natürlich klasse ;)
Ich kann nicht einmal msmart installieren.
Jeder dieser Aufrufe bringt : Kommando nicht gefunden
- git clone https://github.com/mac-zhou/midea-msmart.git
- pip3 install msmart
- pip install msmart
python --version --> zeigt 2.7.16
python3 -V --> zeigt 3.7.3
Verwende Linux Buster unter Raspy
Sorry bin "nicht" - linuxer
Gruss
Joe
Nachdem ich nun folgende Befehle eingegeben habe :
sudo apt update
sudo apt install python3-venv python3-pip
sudo -H pip3 install --upgrade pip
konnte ich
pip3 install msmart erfolgreich ausführen
Nun kann ich aber : midea-discover nicht ausführen
Gruss
Joe
Zitat von: cotecmania am 25 Juli 2022, 21:22:04Gibt es einen kompakte Anleitung was ich genau alles tun muss ?
Aktuell ergibt sich die Installation noch aus dem, was in diesem Thread geschrieben wurde.
Also msmart vom GitHub installieren (hast Du ja gemacht)
Das Python-Script aus Post#12 auf dem FHEM Rechner ablegen und für FHEM ausführbar machen
Das Modul aus Post#12 im FHEM Modulverzeichnis (i.d.R. /opt/fhem/FHEM) ablegen und für FHEM ausführbar machen
Zitat von: cotecmania am 25 Juli 2022, 22:34:02Nun kann ich aber : midea-discover nicht ausführen
Hier wären ein paar Infos erforderlich.
Was passiert denn beim Aufruf von "midea-discover" ?
Hi,
Script und Modul sind abgelegt. Was heisst : "Für fhem ausführbar machen ?"
midea-discover startet nun und liefert :INFO:msmart.cli:msmart version: 0.2.5 Currently only supports ac devices, only support MSmartHome and 美的美居 APP.
ERROR:msmart.cli:*** Device not found, please read: https://github.com/mac-zhou/midea-ac-py#how-to-get-configuration-variables
Muss ich einen Account irgendwo anlegen ? Dachte das geht ohne ?
Bis jetzt habe ich nur den Stick gesteckt sonst nichts. Auch keine App installiert.
Gruss
Joe
Zitat von: cotecmania am 26 Juli 2022, 10:13:09
Muss ich einen Account irgendwo anlegen ? Dachte das geht ohne ?
Bis jetzt habe ich nur den Stick gesteckt sonst nichts. Auch keine App installiert.
Der Stick muss ja erstmal den Weg in Dein Netzwerk finden.
Ohne geht es natürlich nicht.
Soweit ich mich erinnere, muss das Klimagerät erst in den AccessPoint Modus gesetzt werden (7 x auf der Fernbedienung eine bestimmte Taste drücken (steht in der Anleitung) )
Dann mit einem Smartphone die App installieren und Deine Zugangsdaten eingeben.
Ist das erledigt, kann die App auch theoretisch wieder gelöscht werden
Nun startest Du das midea-discover um die Zugangsdaten für das Python Script zu bekommen (IP, ID, KEY, TOKEN)
Wenn sich die Klimaanlage nicht in der gleichen Layer2 Domain befindet (anderes Subnetz), dann noch mit dem Parameter -i die IP angeben.
(wenn Du gerade nicht weißt, wovon ich schreibe, dann vergiss es einfach und ignoriere den letzten Satz)
Was ich aber gerade gesehen habe, ist das mac-zhou wohl ein neues msmart update gemacht hat. Aktuell funktioniert das Modul mit Version 0.2.3
Die installiert man mit:pip3 install --upgrade msmart==0.2.3
Was habe ich geschafft :
- version 0.2.3 installiert
- App installiert und nun kann ich die AC per handy steuern
- midea-discover zeigt mir die notwendigen Daten ip/key/token ... also V3
- Device angelegt in FHEM erfolgreich
Was geht nun nicht :
- State steht auf "? ? ?"
- wenn ich get status mache kommt der Fehler : attribut "processscript" missing
bin mit linux berechtigungen nicht firm ...
Was nun ?
Zitat von: cotecmania am 26 Juli 2022, 13:41:39
- wenn ich get status mache kommt der Fehler : attribut "processscript" missing
in Post #12 findest Du ja sowohl mein Modul als auch das Steuerungsscript (setAC.py)
Das Script kopierst Du auf Deinen FHEM Rechner und sagtst dann im Attribut "processscript"
wo FHEM es findet (/pfad/zum/script/setAC.py)
Wichtig ist dabei noch, das der Benutzer, unter dem FHEM läuft, das Script auch ausführen darf.
Im Zweifel und zum testen, kannst Du dem Script auch die Berchtigung 777 geben.
chmod 777 /pfad/zum/script/setAC.py
Ich bin nach wie vor begeistert von dem Modul.
Aber ich habe das Problem mit stateFormat. Die Daten werden angezeigt, so bald von der Klimaanlage Werte kommen, aber wenn ich die Seite aktualisiere, steht da immer nur On oder Off.
Was mache ich falsch? Oder wird das State Format immer wieder zurück gesetzt von der Klimaanlage?
Gruß
Zitat von: Thorsten.N am 31 Juli 2022, 16:20:01
Aber ich habe das Problem mit stateFormat. Die Daten werden angezeigt, so bald von der Klimaanlage Werte kommen, aber wenn ich die Seite aktualisiere, steht da immer nur On oder Off.
Also aktiv wäre mir nicht bewusst, das das Modul etwas überschreibt, aber da ich selbst stateformat nicht verwende, habe ich da auch keinen größeren Augenmerk drauf gelegt.
Ich kann es mir aber gerne die Tage mal anschauen und gebe Dir dann bescheid.
Gruß,
JudgeDredd
Das wäre cool, aber nicht so eilig. Also keinen Stress! :)
Ich habe nun folgendes gemacht :
chmod 777 /opt/midea-msmart/setAC.py
und das Attribiut processScript auch so angelegt.
Danach ging der Status auf Ready bzw. 0
Es regt sich aber nichts an der Klimaanlage
2022.08.01 09:50:33 2: Klima_SZ Select: get Klima_SZ Status
2022.08.01 09:50:33 3: Klima_SZ Parameter BlockingCall: Klima_SZ|/opt/midea-msmart/setAC.py|state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
2022.08.01 09:50:33 5: Klima_SZ BlockingCall newPID (7438))
2022.08.01 09:50:33 4: Klima_SZ Aufruf setAC: /opt/midea-msmart/setAC.py state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
Traceback (most recent call last):
File "/opt/midea-msmart/setAC.py", line 7, in <module>
from msmart.device import air_conditioning 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 7, in <module>
from msmart.device.base import device
File "/opt/midea-msmart/msmart/device/base.py", line 3, 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 5, in <module>
from Crypto.Util.Padding import pad, unpad
ModuleNotFoundError: No module named 'Crypto.Util.Padding'
2022.08.01 09:50:34 4: Klima_SZ Result setAC:
2022.08.01 09:50:34 5: Klima_SZ Delete BlockingCall PID(7438)
2022.08.01 09:50:43 2: Klima_SZ Select: get Klima_SZ Status
2022.08.01 09:50:43 3: Klima_SZ Parameter BlockingCall: Klima_SZ|/opt/midea-msmart/setAC.py|state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
2022.08.01 09:50:43 5: Klima_SZ BlockingCall newPID (7441))
2022.08.01 09:50:44 4: Klima_SZ Aufruf setAC: /opt/midea-msmart/setAC.py state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
Traceback (most recent call last):
File "/opt/midea-msmart/setAC.py", line 7, in <module>
from msmart.device import air_conditioning 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 7, in <module>
from msmart.device.base import device
File "/opt/midea-msmart/msmart/device/base.py", line 3, 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 5, in <module>
from Crypto.Util.Padding import pad, unpad
ModuleNotFoundError: No module named 'Crypto.Util.Padding'
2022.08.01 09:50:44 4: Klima_SZ Result setAC:
2022.08.01 09:50:44 5: Klima_SZ Delete BlockingCall PID(7441)
Hallo cotecmania
such mal wo dein python gelandet ist.
dann im setAC.py die erste Zeile entsprechend abändern.
War bei mir das gleiche Problem
Nach ändern im Script auf
#!/opt/fhem/Python-3.9.5/python
hat's dann funktioniert.
mit angepasstem Python Pfad siehts besser aus aber nun folgender Fehler :
2022.08.01 11:39:09 2: Klima_SZ Select: get Klima_SZ Status
2022.08.01 11:39:09 3: Klima_SZ Parameter BlockingCall: Klima_SZ|/opt/midea-msmart/setAC.py|state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
2022.08.01 11:39:09 5: Klima_SZ BlockingCall newPID (11962))
2022.08.01 11:39:09 4: Klima_SZ Aufruf setAC: /opt/midea-msmart/setAC.py state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
File "/opt/midea-msmart/setAC.py", line 21
SyntaxError: Non-ASCII character '\xc3' in file /opt/midea-msmart/setAC.py on line 21, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
2022.08.01 11:39:09 4: Klima_SZ Result setAC:
2022.08.01 11:39:09 5: Klima_SZ Delete BlockingCall PID(11962)
Zitat von: Thorsten.N am 31 Juli 2022, 22:02:26
Das wäre cool, aber nicht so eilig. Also keinen Stress! :)
So riesig ist der Code vom Modul ja (noch) nicht.
Habe die Aktualisierung im Post #12 eingestellt.
Bitte mal checken, ob das so passt.
Gruß,
JudgeDredd
Zitat von: cotecmania am 01 August 2022, 11:47:40
mit angepasstem Python Pfad siehts besser aus aber nun folgender Fehler :
2022.08.01 11:39:09 2: Klima_SZ Select: get Klima_SZ Status
2022.08.01 11:39:09 3: Klima_SZ Parameter BlockingCall: Klima_SZ|/opt/midea-msmart/setAC.py|state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
2022.08.01 11:39:09 5: Klima_SZ BlockingCall newPID (11962))
2022.08.01 11:39:09 4: Klima_SZ Aufruf setAC: /opt/midea-msmart/setAC.py state -H net_ac_EFB5 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
File "/opt/midea-msmart/setAC.py", line 21
SyntaxError: Non-ASCII character '\xc3' in file /opt/midea-msmart/setAC.py on line 21, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
2022.08.01 11:39:09 4: Klima_SZ Result setAC:
2022.08.01 11:39:09 5: Klima_SZ Delete BlockingCall PID(11962)
Du hast als Hostname des midea-Sticks
net_ac_EFB5
angegeben.
Möglicherweise gibt es ein Problem mit dem "underscore".
Was ist das für ein Hostname, DNS oder NetBIOS ?
Versuche es erstmal mit der IP.
EDIT:
Ich habe das gerade mal getestet, kann es sein, das Du
kein Python3 verwendest, sondern irgendeine Version 2.x.x ?
Es sind wohl 2 Versionen drauf (Buster)
Python ist Version 2.7.16 und liegt in /usr/bin/python
Python3 --> 3.7.3 und liegt in /usr/bin/python3
Also Pfad wieder auf Python3 gesetzt und somit wieder diesen Fehler :
Zitat2022.08.01 13:29:06 2: Klima_SZ Select: get Klima_SZ Status
2022.08.01 13:29:06 3: Klima_SZ Parameter BlockingCall: Klima_SZ|/opt/midea-msmart/setAC.py|state -H 192.168.1.203 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
2022.08.01 13:29:06 5: Klima_SZ BlockingCall newPID (16489))
2022.08.01 13:29:06 4: Klima_SZ Aufruf setAC: /opt/midea-msmart/setAC.py state -H 192.168.1.203 -I 144036023278226 -K B2FB331F479A4C9FA453B129261F17B8F8C93FB21A5344D9BCE9618298AE1B4C -T 9D85A91439641E375F691F56BC4228FA62B861B749AD55015D63674B334FBBE846FFFEE98898E746FF0B2ACA2D2EB93FEC3DAFFB503481142D80D8D5683FED07
Traceback (most recent call last):
File "/opt/midea-msmart/setAC.py", line 7, in <module>
from msmart.device import air_conditioning 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 7, in <module>
from msmart.device.base import device
File "/opt/midea-msmart/msmart/device/base.py", line 3, 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 5, in <module>
from Crypto.Util.Padding import pad, unpad
ModuleNotFoundError: No module named 'Crypto.Util.Padding'
2022.08.01 13:29:06 4: Klima_SZ Result setAC:
2022.08.01 13:29:06 5: Klima_SZ Delete BlockingCall PID(16489)
@cotecmania:
zeig doch mal bitte Deine installierten Python Module
pip3 list
ZitatPackage Version
------------------ ---------
asn1crypto 0.24.0
certifi 2018.8.24
chardet 3.0.4
click 8.1.3
cryptography 2.6.1
entrypoints 0.3
idna 2.6
ifaddr 0.2.0
importlib-metadata 4.12.0
keyring 17.1.1
keyrings.alt 3.1.1
msmart 0.2.3
pip 18.1
pycrypto 2.6.1
pycryptodome 3.15.0
PyGObject 3.30.4
python-apt 1.8.4.3
pyxdg 0.25
requests 2.21.0
SecretStorage 2.3.1
setuptools 40.8.0
six 1.12.0
ssh-import-id 5.7
typing-extensions 4.3.0
urllib3 1.24.1
wheel 0.32.3
zipp 3.8.1
Leider bin ich in Python nicht wirklich gut bewandert.
Von der Fehlermeldung her und im Vergleich zu meinen Python Modulen, fällt mir auf, das Du das Modul crypto nicht hast.
Versuche daher mal ein:
pip3 install crypto
Wenn das nicht hilft, müsste mal ein Python-Kenner draufschauen, oder notfalls bei mac-zhou vom GitHub mal nachrfragen.
crypto habe ich installiert :
ZitatPackage Version
------------------ ---------
asn1crypto 0.24.0
certifi 2018.8.24
chardet 3.0.4
click 8.1.3
crypto 1.4.1
cryptography 2.6.1
entrypoints 0.3
idna 2.6
ifaddr 0.2.0
importlib-metadata 4.12.0
keyring 17.1.1
keyrings.alt 3.1.1
msmart 0.2.3
Naked 0.1.31
pip 18.1
pycrypto 2.6.1
pycryptodome 3.15.0
PyGObject 3.30.4
python-apt 1.8.4.3
pyxdg 0.25
PyYAML 6.0
requests 2.21.0
SecretStorage 2.3.1
setuptools 40.8.0
shellescape 3.8.1
six 1.12.0
ssh-import-id 5.7
typing-extensions 4.3.0
urllib3 1.24.1
wheel 0.32.3
zipp 3.8.1
Leider immer noch der selbe Fehler ...
Zitat von: JudgeDredd am 01 August 2022, 12:37:33
So riesig ist der Code vom Modul ja (noch) nicht.
Habe die Aktualisierung im Post #12 eingestellt.
Bitte mal checken, ob das so passt.
Gruß,
JudgeDredd
Bei mir funktioniert das stateFormat jetzt wie es soll. 8)
Danke
Zitat von: JudgeDredd am 01 August 2022, 12:37:33
So riesig ist der Code vom Modul ja (noch) nicht.
Habe die Aktualisierung im Post #12 eingestellt.
Bitte mal checken, ob das so passt.
Gruß,
JudgeDredd
Super, jetzt funktioniert das stateFormat. Vielen Dank!! :) Da im stateFormat meinte ich sowas wie Dropdown-Menüs. Bei state einfach nur 'On' oder 'Off' ist unwürdig für das Modul ;)
Zitat von: Thorsten.N am 03 Juli 2022, 11:10:54
Hallo zusammen,
ich bin zufällig auf das Modul gestoßen und wollte es auch haben scheitere aber irgendwie beim Auslesen des Key's, etc.
Bei dem Aufruf von midea-discover
erscheint bei mir immer Traceback (most recent call last):
File "/usr/local/bin/midea-discover", line 7, in <module>
from msmart.cli import discover
File "/home/pi/.local/lib/python3.5/site-packages/msmart/cli.py", line 8, in <module>
from msmart.scanner import MideaDiscovery
File "/home/pi/.local/lib/python3.5/site-packages/msmart/scanner.py", line 272
localNet = IPv4Network(f"{ip.ip}/{ip.network_prefix}", strict=False)
^
SyntaxError: invalid syntax
Was mache ich falsch?
Gruß Thorsten
Genau das Problem habe ich auch und bekomme es nicht gelöst.
Zitat von: Punisher am 02 August 2022, 11:07:50
Genau das Problem habe ich auch und bekomme es nicht gelöst.
Habe es über einen anderen Raspi zum laufen gebracht. Denke aber mal meine Klima wird nicht unterstützt:
INFO:msmart.cli:msmart version: 0.2.5 Currently only supports ac devices, only support MSmartHome and 美的美居 APP.
ERROR:msmart.cli:*** Device not found, please read: https://github.com/mac-zhou/midea-ac-py#how-to-get-configuration-variables
Kesser Split Klima
Zitat von: Punisher am 02 August 2022, 11:31:03
INFO:msmart.cli:msmart version: 0.2.5 Currently only supports ac devices, only support MSmartHome and 美的美居 APP.
ERROR:msmart.cli:*** Device not found, please read: https://github.com/mac-zhou/midea-ac-py#how-to-get-configuration-variables
Kesser Split Klima
Das Python Programm arbeitet mit dem midea-Sitck zusammen, welche Klimaanlage dranhängt ist erstmal zweitrangig.
Hast Du einen midea-Smart-USB-Stick und diesen bereits über die APP in Dein Netzwerk integriert ?
Wenn Du im Anschluss mein Modul einsetzen möchtest, dann bitte erstmal nur mit der Version 0.2.3 !pip3 install --upgrade msmart==0.2.3
Zitat von: cotecmania am 01 August 2022, 14:23:51
crypto habe ich installiert :
Leider immer noch der selbe Fehler ...
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.
Zitat von: JudgeDredd am 02 August 2022, 11:46:43
Das Python Programm arbeitet mit dem midea-Sitck zusammen, welche Klimaanlage dranhängt ist erstmal zweitrangig.
Hast Du einen midea-Smart-USB-Stick und diesen bereits über die APP in Dein Netzwerk integriert ?
Wenn Du im Anschluss mein Modul einsetzen möchtest, dann bitte erstmal nur mit der Version 0.2.3 !
pip3 install --upgrade msmart==0.2.3
Einen eigenen USB Stick hat das Gerät nicht. Es gibt ein integriertes WLAN Modul, scheint auf Basis eines ESP zu laufen.
Ich schaue mich mal um ob ich noch weitere Informationen finde.
Scheint Baugleich zu den Modellen von TCL zu sein.
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.
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.
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 ...
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
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
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 ?
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
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.
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
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 ;)
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 ;)
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
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?
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"
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?
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
ja war quatsch.. irgendwie hab ich das Signal übersehen, sorry und danke für die Hilfe...
Noch ein Punkt: Wenn die Geräte einen Fehler melden (leider tun meine das selten mal und müssen dann neu gestartet werden ), werden solche Fehlermeldungen in das Modul übertragen ? Kann man überhaupt den Status empfangen ?
Zitat von: lynckmeister am 13 Dezember 2022, 08:41:34
Noch ein Punkt: Wenn die Geräte einen Fehler melden (leider tun meine das selten mal und müssen dann neu gestartet werden ), werden solche Fehlermeldungen in das Modul übertragen ? Kann man überhaupt den Status empfangen ?
Werden die Fehler auch in der mobilen App angezeigt ?
Da ich nicht weiß, welche Geräte was für Fehler melden, kann ich im Modul auch kein entsprechendes ErrorHandling einbauen. Wenn aber das Python-Modul von mac-zhou einen Fehler zurückliefern sollte, dann steht dieser in der Log-Datei.
Hallo JudgeDredd;
Habe mitlerweile 2 Anlagen mit dem Modul im Betrieb.
Funktioniert super!
Wunsch wäre: auch die Frostschutzfuntion der Anlagen damit schalten zu können.
LG
p99p
Zitat von: pink99panther am 13 Dezember 2022, 09:35:37
Wunsch wäre: auch die Frostschutzfuntion der Anlagen damit schalten zu können.
Das FHEM-Modul verarbeitet lediglich die Ein- / Ausgabe des Phyton-Moduls von mac-zhou (https://github.com/mac-zhou/midea-msmart)
Neue Funktionen müssen dort implementiert werden. Danach kann ich das Modul entsprechend anpassen um die Funktionalität auch in FHEM bereitzustellen.
Der erste Schritt ist also ein leider Feature-Request auf der GitHub Seite.
Hab mal gestöbert im Git bei mac-zhou
und folgendes gefunden:
Implement freeze/frost protection support (https://github.com/mac-zhou/midea-msmart/pull/99)
Sieht aus, als wäre das schon in der Pipeline soweit ich das mit meinen geringen
Git- und Englischkenntnissen da rauslesen kann.
Hallo,
erst mal vielen Dank für die Arbeit.
Ich habe seit gestern auch meine DIMSTAL- Klimaanlage per FHEM eingebunden.
Hab dabei aber noch ein paar Probleme:
- Egal welche Temperatur ich einstelle, am Gerät kommt immer der Sollwert von 20 Grad an
- Swing funktioniert ebenfalls nicht, egal was ich probiere
Folgende Einträge finde ich im Logfile:
Device is not capable of operational mode 1.
Device is not capable of swing mode 0.
Hat hier jemand eine Idee, woran es liegen kann?
Beste Grüße
Markus
Zitat von: wick1 am 12 Januar 2023, 11:42:50
Ich habe seit gestern auch meine DIMSTAL- Klimaanlage per FHEM eingebunden.
Hab dabei aber noch ein paar Probleme:
...
Hat hier jemand eine Idee, woran es liegen kann?
Hallo Markus,
zuerst solltest Du mal prüfen, ob das Python-Script von mac-zhou die AC auch unterstützt.
Gibt denn der Befehl:
midea-discover -i <ip-adresse>
ein
'type': 'ac'
'support': True
'run_test': True
zurück ?
Danke für die Antwort,
ja, das schaut gut aus:
'type': 'ac', 'sn': '000P0000000Q1A0681C153FCB0000', 'model': '00Q1A', 'support': True, 'run_test': True}
Gruß
Markus
... hab gerade anhand des example.py Script die Temperatur gesetzt, das hat soweit funktioniert
Zitat von: wick1 am 12 Januar 2023, 12:45:56
... hab gerade anhand des example.py Script die Temperatur gesetzt, das hat soweit funktioniert
Device is not capable of operational mode 1.
Device is not capable of swing mode 0.
Das heißt ja eigentlich nix anderes, als das Dein Gerät diese Modi nicht unterstützt.
Wenn ich bei mir nicht unterstützte Einstellung sende, bekomme ich die gleiche Meldungen, allerdings werden die anderen unterstützten Einstellungen dennoch übernommen (z.B. Temperatur)
Weißt Du denn, welche Eigenschaften Deine Klimaanlage unterstützt ?
Ich müsste das Verhalten bei übergabe nicht unterstützten Parametern nachstellen.
welche Modi es unterstützt, weiß ich nicht. Eigentlich sollte alles, bis auf den horizontalen Swing möglich sein.
Was mir noch aufgefallen ist, auch wenn ich nur "FAN " aktiviere, heizt sie, und der Sollwert geht auf 20 Grad.
hab nun neue Erkenntnisse:
- Ansteuerung über das Beispielskript example.py funktioniert
- sobald ich das Gerät per Fernbedienung einschalte, wird mir in FHEM auch das richtige angezeigt:
beep false 2023-01-12 18:30:50
fan Auto 2023-01-12 18:30:50
id 145135534971387 2023-01-12 18:30:50
intense normal 2023-01-12 18:30:50
mode auto 2023-01-12 18:30:50
name 192.168.178.112 2023-01-12 18:30:50
power On 2023-01-12 18:30:50
state On 2023-01-12 18:30:51
swing Vertical 2023-01-12 18:30:50
temperature 24.0 2023-01-12 18:30:50
x_indoor_temperature 17.5 2023-01-12 18:30:50
x_outdoor_temperature 7.0 2023-01-12 18:30:50
Es scheint so, als ob die Daten zwischen dem Fhem-Modul und dem Python-Script nicht richtig übertragen werden, warum kann ich mir beim besten Willen nicht vorstellen.
... nachdem ich mich heute nochmals etwas damit auseinandergesetzt habe, habe ich festgestellt, dass bei jeglicher Ansteuerung immer die Standardwerte aus dem Script (setAC.py) an die Anlage übertragen werden. Nur der Off-Befehl funktioniert einwandfrei.
Sobald ich im Script die Standardwerte ändere, werden auch diese übertragen.
... keiner mehr eine Idee, woran es bei mir liegen kann?
Achja, ich hätt dann auch nochmal ne Frage ;) Die Klimageräte stellen sich (bei Swing=off) immer auf irgendeinen Winkel ein mit dem sie pusten. Es scheint mir nicht immer der gleiche zu sein. Bzw wenn ich mit der FB mit der Taste "Direct" einen anderen einstelle, wird der sich nicht gemerkt und das Innengerät pustet beim nächsten mal wieder anders. Gibt es irgendeine Möglichkeit den WInkel zu bestimmen ? Meine Frau beschwert sich , weil das Ding ihr immer ins Gesicht pustet ;)
Zitat von: wick1 am 23 Januar 2023, 21:36:17
... keiner mehr eine Idee, woran es bei mir liegen kann?
Eine Idee habe ich leider nicht, kann das Verhalten aber bestätigen.
Hallo,
ich bekomme jedes mal wenn ich die Klima schalten oder den Status abfragen möchte diese Fehlermeldung:
Traceback (most recent call last):
File "/opt/midea-msmart/setAC.py", line 6, in <module>
from msmart.device import air_conditioning 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 7, in <module>
from msmart.device.base import device
File "/opt/midea-msmart/msmart/device/base.py", line 3, 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 5, in <module>
from Crypto.Util.Padding import pad, unpad
ModuleNotFoundError: No module named 'Crypto.Util.Padding'
Ich hoffe irgendjemand kann mir da weiterhelfen.
Johannes B.
Zitat von: Johannes B. am 09 Juli 2023, 15:25:12Ich hoffe irgendjemand kann mir da weiterhelfen.
Ich denke mal, da fehlt Dir ein python-modul.
Ist denn die Sowftware von mac-zhou richtig installiert ?
Was bekommst Du mit
pip3 show msmart
Bekommst Du eine Rückmeldung von der AC wenn Du das Script ausführst ?
<IP>, <ID> noch anpassen
und bei Protokoll V3:
<YOUR_AC_K1>, <YOUR_AC_TOKEN> auch noch anpassen und auskommentieren.
#!/usr/bin/env python3
#Version 1.2 -- for msmart 0.2.5
from msmart.device import air_conditioning as ac
from msmart.device.base import device
import logging
import time
logging.basicConfig(level=logging.DEBUG)
# first take device's ip and id, port is generally 6444
device = ac('<IP>', int('<ID>'), 6444)
# If the device is using protocol 3 (aka 8370)
# you must authenticate with device's k1 and token.
#device.authenticate('<YOUR_AC_K1>', '<YOUR_AC_TOKEN>')
device.get_capabilities()
device.refresh()
print({
'id': device.id,
'name': device.ip,
'power_state': device.power_state,
'prompt_tone': device.prompt_tone,
'target_temperature': device.target_temperature,
'operational_mode': device.operational_mode,
'fan_speed': device.fan_speed,
'swing_mode': device.swing_mode,
'eco_mode': device.eco_mode,
'turbo_mode': device.turbo_mode,
'fahrenheit': device.fahrenheit,
'indoor_temperature': device.indoor_temperature,
'outdoor_temperature': device.outdoor_temperature
})
Zitat von: Johannes B. am 24 Juli 2023, 20:16:41Requires: click, ifaddr, pycryptodome, requests
und die benötigten Module sind auch alle installiert ?
pip3 show click ifaddr pycryptodome requests
Die vorherige Fehlermeldung konnte ich schonmal beheben. Allerdings habe ich jetzt eine neue im LogFile drin stehen.
2023.07.24 20:36:47 3: Klimaanlage_Flur Parameter BlockingCall: Klimaanlage_Flur|/opt/midea-msmart/setAC.py|state -H 192.168.3.49 -I 15********* -K bab3*********** -T 7A5*******************************************
Traceback (most recent call last):
File "/opt/midea-msmart/setAC.py", line 112, in <module>
print( main() )
File "/opt/midea-msmart/setAC.py", line 49, in main
device.authenticate( args.key[0], args.token[0] )
File "/opt/midea-msmart/msmart/device/base.py", line 40, in authenticate
return self._authenticate()
File "/opt/midea-msmart/msmart/device/base.py", line 44, in _authenticate
return self._lan_service.authenticate(self._token, self._key)
File "/opt/midea-msmart/msmart/lan.py", line 113, in authenticate
tcp_key, success = self.security.tcp_key(response, self._key)
File "/opt/midea-msmart/msmart/security.py", line 112, in tcp_key
self._tcp_key = strxor(plain, key)
TypeError: argument 2 must be bytes, not bytearray
Was passiert denn, wenn Du das Script direkt auf der Konsole aufrufst (natürlich mit vollständigem ID/KEY/TOKEN)?
/opt/midea-msmart/setAC.py state -H 192.168.3.49 -I 15********* -K bab3*********** -T 7A5*******************************************
Was mir allerdings noch auffällt:
Haben ID / KEY / TOKEN exakt die länge die du inkl. "*" angegeben hast ?
Aktuell habe ich leider keinen V3-Stick zur verügung, aber ich meine das vorallem KEY und TOKEN wesentlich länger waren als bei Dir.
Hast Du die mit "midea-discover" ermittelt ?
Fehler gefunden !
Aus irgendeinem Grund wollte er Crypt nicht haben, aber mit pycryptodome funktionierts.
Die Anzahl der Sternchen habe ich beliebig gewählt.
Danke für deine Mühe und schönen Abend noch.
Johannes B.
Zitat von: Johannes B. am 24 Juli 2023, 21:19:25Fehler gefunden !
Aus irgendeinem Grund wollte er Crypt nicht haben, aber mit pycryptodome funktionierts.
Die Anzahl der Sternchen habe ich beliebig gewählt.
Danke für deine Mühe und schönen Abend noch.
Johannes B.
Perfekt, danke für die Lösung
Hallo,
habe seit kurzem in meinem Log immer folgende Fehlermeldung von meiner Klimaanlage :
Sokcet is None: 192.168.1.203:6444
unexpected data length
Authentication failed for None -> 192.168.1.203:6444 retries: 0 time: 2.0
Jemand 'ne idee ?
Gruss
Joe
Das gleiche Problem habe ich auch. Liegt wohl an midea-msmart: https://github.com/mac-zhou/midea-msmart/issues/108 (https://github.com/mac-zhou/midea-msmart/issues/108)
Da ich die Klimaanlage aufgrund der zur Zeit gemäßigten Temperaturen nicht nutze, habe ich mal eben bei mir getestet. Da funktioniert allerdings die Steuerung noch so wie immer.
Habt ihr irgendwas geupdated ? (z.B. Debian bookworm, Python, Firewall, etc ...)
Was zeigen denn die Debugausgaben ?
#!/usr/bin/env python3
from msmart.device import air_conditioning as ac
from msmart.device.base import device
import logging
import time
logging.basicConfig(level=logging.DEBUG)
#für V2 & V3:
device = ac('YOUR_AC_IP', int('YOUR_AC_ID'), 6444)
#für V3:
#device.authenticate('YOUR_AC_K1', 'YOUR_AC_TOKEN')
device.get_capabilities()
device.refresh()
print({
'id': device.id,
'name': device.ip,
'power_state': device.power_state,
'prompt_tone': device.prompt_tone,
'target_temperature': device.target_temperature,
'operational_mode': device.operational_mode,
'fan_speed': device.fan_speed,
'swing_mode': device.swing_mode,
'eco_mode': device.eco_mode,
'turbo_mode': device.turbo_mode,
'fahrenheit': device.fahrenheit,
'indoor_temperature': device.indoor_temperature,
'outdoor_temperature': device.outdoor_temperature
})
Wenn es tatsächlich Änderungen bei Midea-msmart gab, dann werden wir wohl warten müssen, bis der Author des Pythonscripts sich der Probleme annimmt.
Hey,
da ich einige Probleme mit dem msmart Projekt hatte bin ich im Netz ein wenig auf die Suche gegangen und habe das hier gefunden: https://github.com/ashevchuk/midea-ac
Eine komplett in Perl implementierte Lösung um mit Midea Geräten zu kommunizieren. Vielleicht passt die besser in FHEM? Der Autor lebt allerdings in der Ukraine und hat seit 2020 nichts mehr gepostet :-\
Ich habe momentan meine Midea Entfeuchter direkt über HomeBridge eingebunden, da gibt es ein neues homebridge-midea-platform plugin (nutze FHEM als "Backend" für HB). Trotzdem fand ich diese Lösung auch sehr interessant, vielleicht Hilft der Link ja irgendwem irgendwann, dache ich melde das mal.
Vielen Dank an alle für all die Infos, Plugins etc!
Hallo Normen,
Zitat von: normen am 27 Dezember 2023, 18:33:11da ich einige Probleme mit dem msmart Projekt hatte
Welche auch immer das waren, bei mir läuft es mit dem python-script schon recht zuverlässig.
Zitat von: normen am 27 Dezember 2023, 18:33:11Eine komplett in Perl implementierte Lösung um mit Midea Geräten zu kommunizieren.
Die Perl-Version hätte natürlich schon den Vorteil, das man es nativ aus FHEM steuern könnte.
Zitat von: normen am 27 Dezember 2023, 18:33:11Der Autor ... hat seit 2020 nichts mehr gepostet
Naja, die letzte Anpassung vom Python-Kollege (mac-zhou) ist ja auch schon > 1 Jahr
Ich habe das bei mir mal auf die schnelle getestet. Hat zwar funktioniert, aber der Reply vom Gerät dauert relativ lange.
Zitat von: normen am 27 Dezember 2023, 18:33:11vielleicht Hilft der Link ja irgendwem irgendwann, dache ich melde das mal
Dafür schonmal vielen Dank. Mal schauen, ob ich das (oder Jemand Anderes) mal umsetze.
Bei Midea gibt es ja (stand heute) mit V2 und V3, zwei Protokollversionen. Ob es mit der V3 auch funktioniert, müsste mal Jemand mit entsprechendem WiFi-Stick versuchen.
Gruß,
JudgeDredd
Guten Abend,
ich habe seit Juni eine Dimstal AC mit dem Midea Modul laufen. Der Stick hat schon die V3.
Auch da dauert das Reply vom Gerät relativ lange, funktioniert aber sehr gut.
Vielen Dank für das Modul und deine Arbeit.
Hallo,
ich bin Anfänger und habe versucht, das zum Laufen zu bringen. Nachdem ich jetzt alles was ich so gefunden habe aktualisiert habe, komme ich momentan hier nicht weiter: 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
Ich habe ein neues Gerät - ich hoffe mal dass das nicht eine neue Version ist, die jetzt nicht mehr unterstützt wird?
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
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.
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.
Hallo B10S,
Zitat von: B10S am 09 April 2024, 13:38:39Mit der msmart Bibliothek von https://github.com/mac-zhou/midea-msmart (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 (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 (https://github.com/ashevchuk/midea-ac) 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
Gibt es auch ähnliche Scripts für Midea Geschirrspüler?