altery / mh-maxsmart-powerstation

Protocol to control the Max Hauri MaxSMART Powerstation (SOP111)
5 stars 1 forks source link

awesome :) #1

Open maxandersen opened 6 years ago

maxandersen commented 6 years ago

just bought a maxsmart 2.0 and trying to figure out their protocol. as i understand it your reverse engineering is for 1.0 devices, right ? with my 2.0 it seems udp is used too but I haven't been able to intercept the traffic. can you give some pointers on how you did it for 1.0 and I'll see if I can use it to reverse engineer my switches.

altery commented 6 years ago

Yes, it's for 1.0 only. I hooked the Powerstation on a secondary NIC and used Wireshark to intercept the communication between the Powerstation and the "MaxSmart App".

The 2.0 most probably use a different (and hopefully more secure) protocol. I don't own any 2.0 though, so I'm not sure.

maxandersen commented 6 years ago

ah yes, you got a physical cable to 'listen' to then - I got the maxsmart clip-clap and on first look the communication looks very similar to 1.0; but it is not quite as open and seems most is happening on udp rather than http.

ropuls commented 5 years ago

well, thanks for the work and publishing the protocol. After trying both android versions, I started to look for something usable, like this ;)

Fortunately, the 2.0 app was unable to update to a newer firmware version, so I am staying with 1.3

Best & thanks for the fish, Roman

Superkikim commented 1 year ago

Hey there. @altery, thank you for having documented it. I did some reverse engineering back in 2017 on https://akim.sissaoui.com/informatique. But nothing that complete and I didn't document it.

Thank to your work, I just made a basic module for maxsmart 1.x devices. You can find it here https://github.com/superkikim/maxsmart

I was looking to make a Home Assistant custom component, and I realized it was a good thing to have a generic module first, then to make the component using the module.

It is not yet published on PyPI because they blocked new user publishing since yesterday. Hopefully, I'll be able to publish it tomorrow night.

Superkikim commented 1 year ago

@maxandersen Lookup for maxsmart2 on github. I've seen two repo about it. Not sure it helps.

Superkikim commented 1 year ago

https://github.com/Superkikim/mh-maxsmart-hass

maxandersen commented 1 year ago

cool @Superkikim - your repo has no readme or info so a bit tricky to guess what you want users to do?

Superkikim commented 1 year ago

Well. You're right. Lack of detail. So. That was mainly for sharing.

Here is the maxsmart module which is fully documented: https://github.com/superkikim/maxsmart and works flawlessly.

And that link is a Home Assistant custom component using the maxsmart module. It currently discovers and configures the devices and switch entities correctly. It works great.

https://github.com/Superkikim/mh-maxsmart-hass

Next step for me is to fix naming redundancy and convention. Right now it's a bit messy. Then make the README.md for the switch part and fix "entry updates" (if names are changed in the app for example). And when the switch part will be all working smoothly I'll work on adding the sensors.

Superkikim commented 1 month ago

cool @Superkikim - your repo has no readme or info so a bit tricky to guess what you want users to do?

Hey there. Long time. I have widely improved the maxsmart python module. Almost ready to release a version 2.0. You can give it an eye on https://github.com/superkikim/maxsmart

It works for version 2.11. Port nameing can't be handled given it depends on cloud. But operations work fine. I'm now fine tuning details. There's a bunch of example scripts you can use to test. Given I only have a smartplug with 2.11 (all my strips have 1.30), I'd be glad if you can give it a try.

As soon as all is working fine, I will refactor the Home Assistant integration. But if you don't use Home Assistant, the module should give you all you need. And I made nice readme now ;-) I plan to document thoroughly the module when all is ready. but Readme in root and in example_scripts are already giving what you need.

I'm currently working heavily on branch release-2.0.0-beta2

I'd be glad if you can run the test_discovery_async.py example script and show me the result of discovery for version 2.11