-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Identical ESP32-for-Haier_V1.1 inside Haier Washing Machine #37
Comments
Would perhaps a UART sniffer between the existing Haler ESP32 and the PCB to capiture traffic be a good start? |
Hi @Benniepie, First of all, let me say that you are the first one with that module in non-AC equipment. I never tried to do anything with Haier's washing machines. So thanks for reaching me. Yes, the best way is to put a sniffer in between you will need to have two ports on your PC (or other device that will sniff) one for ESP32 -> washing machine, another for washing machine -> ESP32. It should be something like this: |
Thank you so much for the prompt and practical reply! The washing machine is only around 6 months old so this may become common place with new Haier appliances. I also have a Haier Tumble dryer which is around 3 months older than the washer but I haven't checked this one yet. Thanks for the diagram, makes perfect sense. As my washing machine is in my bathroom, and because I havent got any USB TTL adapters (yet), I was thinking of using an Esphome ESP32 configured with 2xUART (one for the Haier ESP32 TX and one for Haier ESP32 RX) and then use WiFi connectivity and logging to give me access to the serial data wirelessly. This way I can safely reassemble my washing machine with the sniffer ESP32 inside collecting data. Do you think this would work? There is, fortunately a convenient connector I can use to temporarily connect the sniffer to the cables between the Haier ESP32 and PCB without cutting any wires (or soldering) fortunately. Thank you for the bps rate info and the link to the test Probe/clamp thingy I will order it lt along with the USB TTL adapters for when I need to flash/backup the Haier ESP32. I'm quite excited to see if this might lead to local control for Haier appliances!! Kind regards Ben |
@Benniepie Using ESP with 2 serial ports should work for sniffing. At least it worked for me in the past. |
Thank you, I can confrirm the Esp worked and Im able to capture UART comms in both directions with it. I read a lot of the document's/code in your Haier Protocol repo and it appears that my washer follows the she same protocol 99% of the time, except with laundry related data. When changing the program on the washer, for example, this is transmitted to the ESP32 as per the Haier protocol with the data part of the frame, containing the program if converted to ascii eg "Eco 40-60", "Synthetics", "Quick". I have had a bit craziness with the UART data not always behaving, eg missing line breaks or extra line breaks in the middle of a frame so am working to tidy this up and see what other data (or commands). I can reverse engineer. Happy to share data etc if it is of use. With regard to your next challenge, I'm sure adding Haier appliances to your integration would be challenge (but great timing). it would be very well received by the community if you wanted to pursue it! Im more than happy to help - i have a couple of Haier appliances as a starting point and lots of enthusiasm for a local solution (although this is all new to me so learning as I go!) Kind regards Ben |
@Benniepie Great news! I expected something like this. Keep in mind that in the original Haier protocol used by AC (and most likely all other appliances) all 0xFF inside packet (except starting 0xFF 0xFF) should be followed by 0x55 to avoid false detection of frame start. So if you see 0xFF 0x55 inside the packet you should drop 0xFF before interpreting data. If you want me to help with analysis please share the data you collected. Also, it would be useful to see ESP's full flash image. If it is not encrypted you can get a lot of interesting things there especially if there is ASCII data included in packets. |
from the haier site haigeek.om U+开放平台washingMachineDrumIndustryUART通讯协议_20240123185102257.pdf a bit different device, but hopefully relevant parts of the protocol will be the same |
That a great side project. Following! I have Haier Washer Dryer model hwd100-bd1499u1n, If I can be in any help, just ask. |
This is very interesting. I have a Haier dishwasher XIB 3B2SFS-80 that I would be a happy to open if this project works out and you'd need data to support. I do like the idea of using ESP32 to capture the data - less time with the dishwasher in bits = happier wife. If you could provide basic instructions on getting this going I would happy to supply the data I capture. I wouldn't be able to interpret it but happy to provide. |
@evlo , Thanks you always have the best douments. How are you getting them? I can't find anything there. Are there any other documents regarding other types of hOn hardware? And thanks for the document you provided that is exactly what I needed. @ALL, |
but I think there might be something in some other section as the machine translations from chinese, mao's version of chinese even, are not that great anyway I think chances of them providing the template are rather good, when I wrote with them about the old "smartAir2" they did react, just seemed they do not want to support old / Europe's Haier stuff. .... this is for the fridge, when there is template it will show the properties next page has the protocol, you need to delete 预留 / "data backup", if you want to download, as those are unused and duplicate in the spec. download hope it is understandable I did not go trough all the docs, there is general section for devs https://www.haigeek.com/haigeekWeb/#/docs-page/?id=250 but it seems to be that in general chinese hair does not use hON, but the UART level seems to be same |
Great, thanks. Never was able to get this far. |
For those with a Haier washing machine here's a pic with the Haier ESP32 location (holding the front control panel upside down). Esp32 is in the black enclosure with a green sticker. To access:
The Haier ESP32 is inside the black enclosure with a green sticker. I followed the TX and RX cables from the Haier ESP32 to the connector (Haier ESP32 RX is green cable and the Haier ESP32 TX is white). These correspond to MCU_TX and MCU_RX on the Esp32: I inserted extra cables into the connector (the loose cables in the pic) and hooked them up to separate RX pins on my Sniffer ESP32 running Esphome (two UART buses, 9600 baud, debug set to VERBOSE) I have no idea if this is the best way or even a sensible way of doing it but it is working and I didn't have to cut any cables/solder. Will do some laundry and post my data shortly. |
Thank you so much - these docs really help! |
So I took my dishwasher to pieces just too compare what I would find to your washing machine @Benniepie. Mine is quite different and has the ESP module mounted onto the control board. It is also marked up as ESP Solo rather than ESP for Haier. I do have access to the RX, TX GPIO0 and GND pins though. So I am happy to see if I can dump the contents of the chip but I will need some slight assistance with the method. Hopefully I can help with this as my Wife asked me why I had the dishwasher in bits and the reply 'for the war effort' did not seem like a satisfactory answer for her for some reason. |
Good work @finalbillybong glad I'm not the only one crazy enough to dismantle their home appliances! interesting that it is a different chipset in yours. The ESP32-SOLO-1 is a single core ESP32 and just needs a bit of extra config to run Esphome, so based on what little I know doesn't rule it out. It has a single UART bus so RX and TX may allow you to listen in to the UART comms as I have. As for dumping the image, I haven't got that far yet with mine but hopefully others can advise. Do you use the Haier Hon home assistant integration? If so can you press the 'show device info' button? It will generate a notification with info about your appliance. I'm interested in what it says under 'attributes' - particularly chipset? Would be useful to collect this info to identify the same chipset in other appliances E.g. for my Washing machine ESP32-For-Haier-V1.1 it says the chipset is ESP32D0WDQ5 P.s. 'for the war effort' is a great answer in more ways than one considering Haier's dubious corporate ethics 🇺🇦 |
I do! More than happy to provide that. I also have a Hover washing machine and a Candy tumble dryer that use the hOn app..... but I'll dismantle one at a time for now.
Yeah that was my reference but seeing as she has no idea of the Haier/Andre situation she didn't appreciate the genius of my answer /s
It seems mine says the same as yours for chipset. I also checked my other two appliances and they say the same. Will have a closer look when I get time to take them apart. |
``@finalbillybong
This is just info for one of my ESP devices in your case it can be different. The most important part here is the Chip and flash size. Most likely your size will be 4 Mb.
Or use another size if your flash is not 4 MB. After that you will have a flash file with backup if something goes wrong. Let me know if something will not work I will try to help. After you get your fullflash file we can try to figure out if it is encrypted. Hope it is not because it will make everything much more difficult. But will see. |
Excellent @paveldn thank you for that. I am in the proces of dumping the flash now. ![]() I will repot back when I have the whole file to share. EDIT: flash_4M.bin.gz |
So I have left dupont wire soldered to the ESP and refitted it to my dishwasher. There is loads of spare space in there so I can easily fit another ESP32 or ESP8266 to sniff the packets. Could someone could point me in the direction of the correct Arduino sketch or ESP yaml code that I can flash to start gathering data? Doing so wirelessly would be ideal as it means I don't need to interrupt our daily use of the appliance other than the ten minutes it will take to fit. I have opened the .bin file in a hex editor and from my incredibly limited knowledge it does not look encrypted. I can see references to program cycles and also some kind of certs. I'll obviously leave it to those that know better to decided whether any of this is useful. |
@finalbillybong I checked your flash dump and good news it looks like unencripted (thanks for it). So the is good news.
1st way will let us to sniff original module which is always good but it require to do some very carefully soldering. 2nd one is easier for you but we will be completly blind here. |
@paveldn Right OK, I understand. I am mediocre at soldering, at best so if possible I would rather try and do it with the ESP Home firmware, first if that is OK? If that fails I will try method 1. Can I just confirm that these are the correct pins to solder to? |
@finalbillybong you also need to have a common ground, in opposite case reading on RX TX can be wrong. |
OK , sure thing. I will await to hear from you. |
@ALL, I promised that I will make a post how to make sniffer for washing machine but unfortunatly I had a crazy day at work today. So didn't have a lot of time. I made a esphome config for sniffing but didn't have a time to test it. It should work but still. Hope tomorrow i will have time to try it and make photo with details. Config:
Ofcourse you will need to change config depending on board type and pins that you are using. My config is for general ESP32 dev board and for GPIO3 connected to TX of Haier ESP board and and GPIO16 connected to TX of washing machine control board. If you will try it let me know if it worked. |
Out of boredom I decided to have a look at the spares list for my dishwasher. It turns out they sell the main board. So @paveldn if method 2 does not work out I would be prepared to purchase a main board specifically for this project and can then mess about with it without incurring the wrath of my wife if I break our dishwasher. https://www.haierspares.eu/en/70014304/Nautilus%20Digit%20card I assume I could power the chip with my FTID adapter and just test it on my desk rather than fitting it into my machine. |
Thanks for this, great to see how fast progress is being made! I have been using an ESP-Wroom-32 board with almost the same config as above but found no data was being received on GPI03 - I think because the UART0 bus on this variant uses these pins for the micro USB serial connectivity it caused some craziness to do with the voltage on GPIO3 when it booted (i was out of my depth at this point!). After a lot of fiddling I found repurposing GPIO1 for RX instead of GPIO3 along with GPIO16 did the trick and I was able to capture communication in both directions. I've found I'm getting the occasional data error while the washer is running (missing bytes) which may be buffer related as mine isnt as high as in your config. However, when the washer does its spins cycle the log floods with FF bytes. Legitimate data is still present despite this and I assume this is the vibration causing connection issues/interference. I haven't yet logged a full wash cycle from start to finish yet, so that's tonight's job. |
It is quite an expensive board, it looks like you seriously want your washer machine to work with your smart home 😄 It is always better to have a backup.
Yes, probably it is vibration causing those FFs. Thanks for the update and we are waiting for logs from you @ALL |
Yes it is expensive, but as I am not able to contribute to the software or analysis side of this project I am more than happy to contribute with testing and reporting, the firmware dump (and future dumps of other machines, if required) and this purchase, if it is required, so this project can hopefully benifit the whole community oh hOn users. |
Yes, one of the possible ways
Good luck! Keep in mind that it is possible that we were wrong about the UART port pins. Maybe it will require more "playing" with config, Anyway if you need help just let me know, Keep in mind that you can always restore you flash backup with esptool, |
I missed a package delivery today that should be delivered tomorrow. It will either be the spare main board for the dishwasher or the pogo pin adapter, so I will have either dumped tumble dryer firmware or reports from the testing of the custom ESP Home image on my dishwasher to share tomorrow. Edit: I'm still wainting on both packages.... |
I'm just dumping some initial notes from my exploration of a Haier HRF680YPC Quad Door Refrigerator Freezer, 91cm, 623L, Ice & Water. The Wifi module is very convenient to access under a plastic cover on the top of the fridge that is accessible while the fridge is still on with just a couple of screws. The plastic cover also houses the door sensors so it may start beeping at you to close the door if you take it off while the fridge is still on. The module looks different from the other appliances, it is a WCATA007 and appears to have a 5 pin wiring harness. I'll remove the module later and figure out some pinouts and hook in a ESP to intercept the data. |
@NickStallman |
Hi Everyone, Is there any reason why this project is on standby, I just bouthg a new Fridge from Haier and I am more than welcome to collaborate in this project. |
Hi. I think nobody is interested anymore. There is https://github.com/Andre0512/hon repository that uses Haier Cloud for HA. There was some tension between the author and Haier so everybody wanted local integration but now the problem is resolved so everybody is back to Andre's solution. Personally, for me, it is very difficult to add support without hardware on the hands. Also, I don't feel good asking people to risk their new shiny Haier appliance to do my crazy experiments 😃 . And the worst thing it will be difficult to recover the board if ESP is soldered there. So unless you are a highly professional hardware engineer who knows how to recover boards it can be difficult to do. |
I am very much still interested in getting local access working for the Haier devices. Unfortunately, the mainboard I ordered to use as a test for the custom firmware never arrived, and I ended up opening a PayPal case against Haier and getting a refund. As my wife won't allow me to use our appliances for testing, I'm afraid my contribution to the project has to end here. |
I did not open my fridge yet but I have the impresion will have the same esp32 board that newer AC has it. I also have 3 AC's with the new board but just waiting forn a JST conector to arrive in order to connect a flashed ESP32 for local control. I will advise once I open the fridge. |
@roberglezz |
Hey |
@GOinfo-Ltd |
I have a Haier washing machine and dryer, I don't mind hooking up whatever is needed and providing data for the greater good. Only problem is that the dryer is on top of the washer so it's a bit of an effort to get to the washer. I have plenty of experience with microcontrollers, soldering, programming etc. |
I too also recently got a washer / dryer. I did see some documentation that there was a diagnostics port inside the detergent drawer (which the dryer also has for the water tank) but my model doesn't hide it there unless I'm missing something. Taking it totally apart isn't an option (wife approval factor), but the module for the fridge is easily accessible once you know where it is so I'm hoping the washer/dryer also hide it somewhere easy. |
It's just behind the front panel in both from what I read. You just remove a couple of screws from the back for the lid, slide it off and they are relatively easy to access from there. Same here with the WAF, I just have to do it in a slightly covert way.. She know's i'm crazy like that but it's easier to just avoid the conversation in the first place :) |
Hi everybody, thanks I would really appreciate your help. I am traveling this weekend and will be back next week. Once back I will write a post with detailed description what information I need and possible ways to get it But afraid it wouldn't be easy. |
Thank you for the work you are doing, it is very valuable. Unfortunately I don't have the technical skills to help you, but I am following this project with interest. I have a Candy washer and dryer (Haier Group, hOn app) and it would be really great to be able to control it with an ESP locally. |
@KameDomotics you are welcome unfortunately to advance in developing code for appliances which I don't have on my hands I need help from somebody who can implement some difficult scenarios. @ALL sorry it took longer than I expected. Let me describe what kind of data I need and how you can help me.
For Haier washing machines I have first and second but not first. For everything else (except ACs and washing machines) - nothing. |
Another thing you can do is to use https://github.com/paveldn/hon-test it is an ESPhome firmware for the ESP module (you can even try to flash the original Haier ESP module but make a backup first! https://github.com/paveldn/haier-esphome/tree/experimental?tab=readme-ov-file#how-to-backup-the-original-image-and-flash-esphome-to-the-esp32-haier-module ) and try to send some standard commands to appliance and see how it reacts. But of you want to do this please contact me first. |
Another thing you can do is describe what you want from ESPhome integration. For example: I can try to ESPHome component for washing machines that just listens and shows some of the parameters. I have all data required for this right now. But I have nothing regarding control. |
So currently I can see the status of the washing machine but not control it? For example the program and remaining time? I have a CANDY washing machine model CSO496TWMB6/1S, I don't know where the wifi module is located though. |
@KameDomotics I have enough information to try to implement it. It is not ready yet. |
So today I pulled apart my Haier Dryer. It contains a WCATA006 module https://fcc.report/FCC-ID/ZKJ-WCATA006 which is a realtek chip and not the ESP32. However, I have installed an ESP32 serial sniffer to check the protocol as per previous link Where to from here? I don't know where/how to see the protocol data in HA. |
@AussieMakerGeek But today I am starting my vacation so for the next 2 weeks I will be traveling so most likely I will not have s lot of time. I will be back 19 of August. But I will try to find some time at least to do some basic analysis. I am curious 😄 |
When I click on that it says no logging is enabled. I copied the logging section as written but perhaps there is a formatting issue? |
Strange. Logging is enabled:
Yes, there is no serial logging but logging over WiFI should be available. Did the logger connect to your WiFi? Can you access it's web interface? |
Also, I have another news. My old washing machine (not Haier) died after years of humble service to our family. And I convinced my wife to buy a new Haier washing machine. My wife was not happy and made me promise that I would not break it or leave it in a half-assembled state 😅 and that it would be always available for its main purpose. So my hands are tied but nothing can stop an engineer's curiosity. After I will be back from vacation I will do my own experiments and will resume my work on ESPHome integration for washing machines. |
Ah, that's awesome. I might not have to lift my dryer down after all :) It was just me - Somehow i left out the logging section. I can see the data now :) |
Could you tell me in which part of the dryer the wifi module is installed? I have a Candy though (same Haier group) |
For me, it was right behind the front panel display. I removed 2 screws from the back that secure the top/lid of the machine. It then slides back and lifts off. From there, you can see the module but not really get to it. There was two screws on top that secure the front panel, and 3 inside the water tray opening (i have a heat pump dryer). Once they were removed I could maneuver the front panel off. For the ESP32, I spliced into the 4 wires with enough wire to reach over to the water tray area and once re-assembled, I used some DS tape to secure it above the tray. This way I could still have access to it. Side note - I think using GPIO3 is bad (as mentioned earlier). When I went to set up the wifi on the machine, it would error until I disconnected the ESP32 - I have not reconnected it just yet. I took some photos but I don't have access to them right now. Side note - the hOn service is not available in Australia - For us it is SmartHQ. |
Hello all
I've just opened up my Haier Europe HW90-B149598U1_UK Washing Machine, which uses the Hon app to have a nosey around (there goes the warranty). I've fished out an identical "ESP32-for-Haier_V1.1" board to the one you guys identified in Haier Hon AC units.
Here's my board:
![20240122_002555](https://private-user-images.githubusercontent.com/65065193/298426676-3c7b974f-bb06-4606-a0e6-ce065f4c5b69.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjkyMTAsIm5iZiI6MTczOTE2ODkxMCwicGF0aCI6Ii82NTA2NTE5My8yOTg0MjY2NzYtM2M3Yjk3NGYtYmIwNi00NjA2LWEwZTYtY2UwNjVmNGM1YjY5LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA2MjgzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4ZmZjZWJlNTFiZTU5NzU0MjhjODNjZTdlNzk0MzJkYWQ4MjQzYjc0NjgwYTQ5NWFjZDdmN2JkZWFhYTcyNDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sYFNJ7pzfYq9Rkbs694TiNM8D24FPT77Jb7PwPR3dlw)
![20240122_004035](https://private-user-images.githubusercontent.com/65065193/298426692-55a4e27f-fde2-42ee-b06d-d5ee9e71bab8.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjkyMTAsIm5iZiI6MTczOTE2ODkxMCwicGF0aCI6Ii82NTA2NTE5My8yOTg0MjY2OTItNTVhNGUyN2YtZmRlMi00MmVlLWIwNmQtZDVlZTllNzFiYWI4LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA2MjgzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI3MzJlOTY0ZjQ3Zjc0MmRkNDAxODkzOWFmZTFkNWJjY2I1NjBjZWI4NDc4ZTc1NzAzMTk1ZTU0MDE2NjEzYjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pSqdIfYExzUFVwgdYAJ7o37ZkfXR31tjTN4Ho4v1G0w)
Enclosure:
![20240122_004133](https://private-user-images.githubusercontent.com/65065193/298426701-767fd02e-7eec-4098-bccc-78ee9833232a.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjkyMTAsIm5iZiI6MTczOTE2ODkxMCwicGF0aCI6Ii82NTA2NTE5My8yOTg0MjY3MDEtNzY3ZmQwMmUtN2VlYy00MDk4LWJjY2MtNzhlZTk4MzMyMzJhLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA2MjgzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVlZjRjM2I3Y2IxY2NkOGU4YzZjOGI2MzU1Yjg5OGE2MWYyMjY1NDRjNjk5YmFjYTBmZDkwZTQyYmQ1OTI2OTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-k2_hZ34CUOT6T-MH6cwTtpP7PUC2vPjBj27VVwX_fk)
As a complete beginner in the world of Esphome, given that my device is not an AC unit, where would you advise I start?
I have other Esp32 and Esp2866 boards available. Would you suggest substituting one of these rather than attempt to re-use the original? How would I go about figuring out the parameters for an entirely new device?
Would really appreciate some pointers on how to approach this as you've been here before, albeit for a different bit of kit!
Given Haier's despicable behaviour to the dev of the Hon integration, I'm motivated to find a way for Haier customers liberate their devices from this awful company.
Apologies If this isn't the right place to post
Kind regards
Ben
The text was updated successfully, but these errors were encountered: