Hallo Zusammen,
ich habe das UART Protokoll für das Wifi-Modul meine Klimaanlage reverse engineered: https://github.com/adaasch/AC-hack
Damit ist es möglich sie direkt in die Homeautomation zu integrieren, z.B. über MQTT.
Meine ist von der Marke "Kesser", aber es ist wohl ein Rebrand von TCL.
Vielleicht ist es ja nützlich für jemanden hier. Ich würde mich freuen über Rückmeldungen bzgl. anderer Marken mit selben Modul.
Prima. 8) Das erfreut den Cloud- und Wifi-Smart-Home-Gegner.
Habe aktuell noch keine Klima, wird aber in ein paar Monaten voraussichtlich eine Mitsubishi Heavy Industries mit Wifi. Werde ich mir dann sicherlich näher angucken.
Grüße Markus
Das gucke ich mir mal an. Hatte das auch vor und an anderer Stelle was dazu gefunden.
Das war aber auch nicht komplett re-engineered (https://github.com/htmltiger/tcl-electriq-split-ac).
Hier mal Daten die meine Klima mit (Tuya) so sendet und empfängt:
0x0_esp_len
730
2023-06-11 21:22:18
0x3_ac
BB010003370400358600200000000000006E23880000000000000000000070FF40005F35343C00008000000000EA0000004440004800007A000000002D
2023-06-11 16:13:28
0x3_ac_len
122
2023-06-11 16:13:28
0x3_esp
BB0001031D000064085900080000000000000000000000000000000000000000008811
2023-06-11 16:13:28
0x3_esp_07
0000000001100100-100
2023-06-11 16:13:28
0x3_esp_08
0000000000001000-8
2023-06-11 16:13:28
0x3_esp_09
0000000001011001-89
2023-06-11 16:13:28
0x3_esp_10
0000000000000000-0
2023-06-11 16:13:28
0x3_esp_11
0000000000001000-8
2023-06-11 16:13:28
0x3_esp_31
0000000000000000-0
2023-06-11 16:13:28
0x3_esp_32
0000000000000000-0
2023-06-11 16:13:28
0x3_esp_33
0000000010001000-136
2023-06-11 16:13:28
0x3_esp_len
70
2023-06-11 16:13:28
0x4_ac
BB01000437040025860020000000000000750B080000000000000000000073FF40000038344600008000000000EA0000004440004800007A00000000A2
2023-06-12 22:37:23
0x4_ac_len
122
2023-06-12 22:37:23
0x4_esp
BB000104020100BD
2023-06-12 22:37:22
0x4_esp_len
16
2023-06-12 22:37:23
0x5_ac
BB0100050B0400000000000000000001B1
2023-06-11 16:05:16
0x5_ac_len
34
2023-06-11 16:05:16
0x5_esp
BB00010509000000000000000001B7
2023-06-11 16:05:16
0x5_esp_len
30
2023-06-11 16:05:16
0x9_ac
BB0100092D04000000000000FF0000000000FFFF000000000000F0FF000000000000000000000000000000000000000000006A
2023-06-12 22:37:18
0x9_ac_len
102
2023-06-12 22:37:18
0x9_esp
BB000109020500B4
2023-06-12 22:37:17
0x9_esp_len
16
2023-06-12 22:37:17
0xa_ac
BB01000A2D0400040000000000000000000000000000000000000000000000000000000000000000000000000000000000009D
2023-06-12 22:37:17
0xa_ac_len
102
2023-06-12 22:37:17
0xa_esp
BB00010A03050000B6
2023-06-12 22:37:17
0xa_esp_len
18
2023-06-12 22:37:17
0xb_ac
BB01000B020400B7
2023-06-12 22:05:12
0xb_ac_len
16
2023-06-12 22:05:12
0xb_esp
BB00010B100500E707060C16050B0000000000000056
2023-06-12 22:05:12
Sieht ja ziemlich gleich aus.
Mein Plan war einen anderen esp8266 oder esp32 zu nehmen und das über mqtt zu befeuern.
Hast dazu ja schon gut was geleistet.
Ich habe mich am Wochenende jetzt mal rangesetzt und ein Lösung mit einem Wemos mini clone und einem Levelshifter (3.3V <> 5V) umgesetzt.
Das oben aufgeführte Protocol bzw. beide aus den git's ist teilweise nicht ganz richtig (für mich? Ich denke eher das da was versehentlich vertauscht wurde)
Die Protokolle (von beiden git's oben) und zusätzliches uart sniffen brachte dann die Lösung für mich.
An dem oben aufgeführten git, vom Topic starter, hat mich gestört das eine Python instance zusätzlich arbeiten muss zum mqtt.
Ich wollte was standalone ist und via mqtt mit fhem redet.
Das ganze soll angeblich auch ohne Levelshifter funktionieren. War mir aber zu heikel. Die Einen sagen der ESP ist 5V tolerant, die Anderen sagen "kann", muß aber nicht.
Das ganze sollte mit so sämtlichen bzw sehr vielen China-Kracher Tuya/Smartlife Wifi Klimageräten funktionieren. z.B. TCL, Kesser, Hantech, Danyon, Kältebringer, iQool etc.
Alle mit TYWE1S Tuya ESP.
Zum Einrichten:
ESP8266 mit dem bin file flashen.
Es ist ein wifimanager an board. Wenn der ESP sich nicht verbinden kann dann wird ein Accespoint geöffnet mit der SSID "ESPACXXXXXX" (XXXXXX = Teil der MAC Adresse des ESP's).
Zu diesem Verbinden und dort den ESP ins heimische Netzwerk holen.
Nun kann die Datei mit den mqtt-benutzer daten hochgeladen werden. (Diese muß angepasst werden mit den eigenen MQTT Benutzer parametern)
Dazu im Brower http://IP-DES-ESP/file-upload öffnen und die angepasste mqtt.txt hochladen.
Zudem kann noch die index.htm hochgeladen werden für mehr Komfort.
Jetzt den ESP neustarten damit die mqtt daten geladen werden.
folgende Seiten sind verfügbar.
http://IP-DES-ESP/file-upload : Upload von Dateien
http://IP-DES-ESP/update : OTA Upload einer neuen Firmware
http://IP-DES-ESP/restart : rebootet den ESP
http://IP-DES-ESP/reset : resetet die wifi parameter und startet den ESP neu
http://IP-DES-ESP/$sysinfo : Zeigt Speicherinformationen vom ESP
Anbei der Code und ein paar Bilder.
Und mein device aus fhem:
defmod MQTT2_ESPAC492A8E MQTT2_DEVICE ESPAC492A8E
attr MQTT2_ESPAC492A8E DbLogExclude .*
attr MQTT2_ESPAC492A8E alias Klima.Arbeitszimmer
attr MQTT2_ESPAC492A8E icon sani_heating_heatpump
attr MQTT2_ESPAC492A8E readingList ESPAC492A8E:Led:.* Led\
ESPAC492A8E:cdate:.* cdate\
ESPAC492A8E:ctime:.* ctime\
ESPAC492A8E:alive:.* alive\
ESPAC492A8E:ECO:.* ECO\
ESPAC492A8E:DISPLAY:.* DISPLAY\
ESPAC492A8E:POWER:.* POWER\
ESPAC492A8E:TURBO:.* TURBO\
ESPAC492A8E:MUTE:.* MUTE\
ESPAC492A8E:HEALTH:.* HEALTH\
ESPAC492A8E:MODE:.* MODE\
ESPAC492A8E:SETTEMP:.* SETTEMP\
ESPAC492A8E:FAN:.* FAN\
ESPAC492A8E:SWINGV:.* SWINGV\
ESPAC492A8E:SWINGH:.* SWINGH\
ESPAC492A8E:SLEEP:.* SLEEP\
ESPAC492A8E:BEEP:.* BEEP\
ESPAC492A8E:ROOMTEMP:.* ROOMTEMP\
ESPAC492A8E:VANE_V:.* VANE_V\
ESPAC492A8E:VANE_H:.* VANE_H\
ESPAC492A8E:subscriptions:.* subscriptions
attr MQTT2_ESPAC492A8E room Klimaanlage,MQTT2_DEVICE
attr MQTT2_ESPAC492A8E setList TEMPERATUR:23,20,21,22,24,25,26 AC/ESPAC492A8E/SETTEMP $EVTPART1\
LEDoff:noArg AC/ESPAC492A8E/Led true\
LEDon:noArg AC/ESPAC492A8E/Led false\
Power:0,1 AC/ESPAC492A8E/POWER $EVTPART1\
Eco:0,1 AC/ESPAC492A8E/ECO $EVTPART1\
DISPLAY:1,0 AC/ESPAC492A8E/DISPLAY $EVTPART1\
TURBO:0,1 AC/ESPAC492A8E/TURBO $EVTPART1\
SWING:0,1 AC/ESPAC492A8E/SWING $EVTPART1\
SLEEP:0,1 AC/ESPAC492A8E/SLEEP $EVTPART1\
HEALTH:0,1 AC/ESPAC492A8E/HEALTH $EVTPART1\
BEEP:1,0 AC/ESPAC492A8E/BEEP $EVTPART1\
MUTE:0,1 AC/ESPAC492A8E/MUTE $EVTPART1\
Mode:auto,cool,fan,dry,heat AC/ESPAC492A8E/Mode $EVTPART1\
Fan:auto,low,midlow,mid,midhigh,high AC/ESPAC492A8E/AC_FAN $EVTPART1\
VANE_V:off,fixtop,fixupper,fixmid,fixlower,fixbottom,swingfull,swingupper,swinglower AC/ESPAC492A8E/VANE_V $EVTPART1\
VANE_H:off,fixleft,fixmidleft,fixmid,fixmidright,fixright,swingfull,swingleft,swingmid,swingright AC/ESPAC492A8E/VANE_H $EVTPART1
attr MQTT2_ESPAC492A8E stateFormat T: ROOMTEMP °C
@kask
Sehr schön gelöst.
Ich würde auch gerne 3 Klimaanlagen in FHEM integrieren.
Zwei Hantech (TCL) und eine Comfee
Könntest du kurz war zur Belegung schreiben?
Das ist auf den Fotos nicht so ganz zu erkennen.
Stecker sind diese hier oder?
https://amzn.eu/d/0woDVkH
@Henno
Jepp, genau die Stecker habe ich genutzt.
Klima zum Levelshifter:
Signal/Potenzial <> Stecker <> Kabel <> Levelshifter(High)
5V <> Schwarz <> Blau <> HV
Masse <> Rot <> Gelb <> Gnd (HV-Seite)
TX <> weiß <> Rot <> HV3
RX <> Gelb <> Grün <> HV4
ESP/Levelshifter:
Levelshifter <> Wemos
HV <> 5V
LV <> 3.3V
Gnd <> Gnd (HV-Seite)
LV4 <> RX
LV3 <> TX
Auf dem Levelshifter sind 4 Kanäle. Ich habe Kanal 3 & 4 genutz um es kompakter bzw. mit weniger Kabel zu löten.
Die Spannungsversorgung kommt über das Kabel direkt auf den Levelshifter und der ist mit Stiften direkt am Wemos gelötet an den zwei Kontakten (5V/Gnd).
Lustige Wortschöpfung:Klimanalgen ;D