Midea Comfee Klimaanlage über Fhem ?!

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

Vorheriges Thema - Nächstes Thema

Aladin222

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 ....

davimas

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,

Mave

Moin,

ich habe seit gestern eine Comfee in Betrieb und wäre auch an einer Integration in FHEM interessiert....

Grüße Mave

gloob

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.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

seppe

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

Snocksman

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).

Snocksman

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
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.

Snocksman

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.  :-\

astrastudio

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.

Kohle77

Hallo,
hat vielleicht jemand etwas gefunden wie man die Dimstal Klima in FHEM einbinden kann?

Gruß
Christian

araym

Hallo,

Ich wäre auch sehr interessiert an einer Lösung. Ich würde gerne die Klimaanlage anschalten lassen bevor mein Solarstrom einspeist.

JudgeDredd

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 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)

  • Ein Dummy erstellt.
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     :

  • Ein Notify erstellt.
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.
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
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

JudgeDredd

#12
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
  • 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
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)

SebastianStorb

#13
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?

JudgeDredd

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 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
Router: Eigenbau (pfSense)
FHEM: Hyper-V | Debian 12 (VM)