MKR1010 Wifi Board to control a MSS210 wifi plug from Meross

Hello everyone !

I'm a new user of the MKR1010 Wifi Board and to improve my knowledge in connected devices, I'm working on a smart wifi plug from Meross, the MSS210 one. I'm trying to communicate with this connected device to turn it off/on. This is my project and my goal !

Actually, the Smart Plug and be controlled by the Meross Application, available on the AppleStore or PlayStore. To control it, you have to pair it with a wifi access point and your Meross Account. It means that the Smart Plug is connected to an internet network via an access point. Then from your smartphone in 4G, you just have to open the application and press a button/shortcut to turn off/on the plug.

How to pair the plug: at the beginning, your plug is unpaired, so once you launch the application you will see a button + on the top left on your screen, then clic on it, then clic on "smart plug" (the 1st one wich corresponds to the MSS210), connect your smartphone the the meross wifi access point, then clic on "next" two times and wait for the plug pairs with your Meross Account, give a name to your device (ex: PlugMSS210) then clic on next, choose a picture, next, now find your wifi access point, write the password then clic on next.

Congratulation guys !! You just appaired your device to your wifi access point !! You can now switch on/off your plug by clicking on the PlugMSS210 shortcut available on your Meross Application, from everywhere on planet !! If you see a message "unreachable" or something similar, just close and open the app again.

Well... now... my goal is to switch on/off the plug but by using the MKR1010 board...

One easy solution... download an android simulator and install the Meross app on it... no no no !!

At the beginning I tried to sniff the network on which my device is connected to check if some frames could be captured for analysis. I used Wireshark to do that. I thought that I could just copy/past a frame that my device could receive... I mean, build a frame and send it to the network to my device with the same architecture, then the device, depending the information within the frame, could turns on/off itself but nop, it's not that easy, I guess.

I just spammed the button to switch on/off the plug but I captured nothing with Wireshark... If I ping the plug, I see associated frames but when I try to click on the button, on the app, to switch on/off the plug, I don't see anything on the network :cry: I removed every filter and I activated every protocol but still nothing… So I am wondering if I sniff the right channel, because the Meross Plug is using 2.4Ghz channel so I just hope it is the same for Wireshark. If you have any suggestions to help me for this project I’m open to discussion.

Pls note that I am a beginner, it's not an easy project, I know. But I saw nothing similar on the Arduino so... if you can help me to move forward, it ll probably help some people who want to work on the same project, using the same or similar devices.

I found a similar project but using python libraries here: GitHub - albertogeniola/MerossIot: Async Python library for controlling Meross devices

Then I found one interesting information, the communication protocol: MQTT

Thanks to developpers it exist some labraries that will help me but... as I said, wireshark detects NOTHING... even MQTT frames... So I'm lost... Is there an other sofware that could help me to detect more protocol ? I guess, even if frames are encrypted, I can see some clear text within frames..?

W/e guys... thx you in advance for any kind of help you'll provide me :slight_smile:

If I find a solution, I'll keep you in touch.

  • isoSeL