Revogi Smart Power Strip

Tags: #<Tag:0x00007f465e30ef20>

Fantastic. Thank you. I’ll give it a try.

I’m in switzerland. Max Heuri is providing Revogi OEM devices under the name MaxSmart.

I’m currently using their cloud ,but I managed to find the API for on/off, and now I want to extend my use to Home Assistant and get rid of the stupid badly develop app. :slight_smile:

My article is in french but google transalates it fine :wink:

By the way, I just realize there are huge differences between the MaxSmart and the Revogi.

  1. The MaxSmart plugs do not run on WIFI, but on PowerLAN
  2. The MaxSmart Application does NOT need Internet to be connected. The appilcation communicates directly with the devices if the cloud is not connected. This a very very GOOD POINT (Thank you Max Heuri)

I found out anyway that these are Revogi devices by looking up on the MAC vendor.

Therefore, with the MaxSmart devices, their might not be any need to hack into the devices to disable wifi and cloud connection. Also, I would be curious if any Revogi user would try the MaxSmart application (I use it on Android) to see if it can see and command the native revogi devices. Would be helpful for you all Revogi users.

@superkikim can you Check if my custom component work‘s on those devices also?
If this is the case I may submit the component.

Well. Good news…

I was able to test power on and power off of one of the sockets. It works correctly but from Developer Tools services only.

The state widget does not work. It seems it is not able to interpret the 511 command result. I’ll try to troubleshoot.

Can you please share the result of a 511 command in json format for your outlet ? Mine looks like this. I don’t undertsand why you divide watt by 1000.

{"response":511,"code":200,"data":{"watt":["40.41","41.11","39.02","3.48","2.43","33.79"],"amp":["29.9","30.8","30.4","6.7","4.6","20.3"],"switch":[1,1,1,1,1,1]}}

Also you should add a code test. If code is not 200, it should return an error.

Which state widget? :thinking:

Well at the time I’ve written this component i didn’t know what code meaned. So I just ignored it.

My revogi strip publishes the watts as milliwatts, so you have to convert it. That’s why I divide it by 1000.

Just in case somebody wants to know how to add this component to config

- platform: revogi
  host: 192.168.0.10
  name: somename

I forgot that in my first post.

Well. When I speak about the “Widget”, I speak about the representation of the states on the frontpage :slight_smile:

But now, I was able to make it work, by removing the division by 1000.

Also, it seems that Max Hauri has been more cautious on their requirement specifications. telnet and SSH servers are disabled, or at least they do not answer on port 22 nor 23, and traffic to the cloud website is encrypted. I will try a port scanner to see if the port is different. Also, I’ve been trying to find out where the APP find the name of the plugs. I was unable to find the command to get the names. What I see so far is that the 1st time the app is opened, there is a call to the cloud site, or, if internet is not available, to one of the power strip. My guess is that a file containing the latest list of devices is downloaded from the Power strip itself.

When connecting to the cloud site, a command 500 is sent, which returns the complete list of power strips, states, values, names, of all the devices registered on the network.

I hope I can find a way to access this file. This would be gorgeous to gather the complete list of sockets in the house, rather then query each strip separately, and without the names.

Beside of 200 and 511, did you identify more commands ?

I will share later tonight the list of commands I have identified.

Ok, I think that the max hauri version is quit different to the original one.

No I didn’t detect any other commands.

I posted a new article on my blog. Again in french, but it should be easy enough to understand or to translate using Google Translate:

Basically:

Cloud commands:
Login to MaxSmart Cloud
https://www.maxsmart.ch/services/ajax.html?cmd=101&json={"username": "[email protected]", "password": "password"}

Get MaxSmart device names and some details
https://www.maxsmart.ch/services/ajax.html?cmd=500&json={"dev": "all"}

Local commands:
Get MaxSmart cpuid, plcmac, plcdak, cloud server url
http://maxsmart-sandbox.fritz.box/?cmd=124

Set mac, sak, plcmac and plcdak. WARNING: Do not run EMPTY. It will delete the identifiers
http://maxsmart-sandbox.fritz.box/?cmd=122&json={"plcmac":"BC2BD712345","plcdak":"MLRM-ABCD-EFGH-GHVX","sn":"SWP6023002012345","mac":"BC:2B:D7:F3:4B:23","sak":"367123123453"}

Factory reset (does not restore identifies to originals if deleted with command 122)
http://maxsmart-sandbox.fritz.box/?cmd=120&json={"op":2}

Name port (0 = strip, 1-6, ports)
http://maxsmart-sandbox.fritz.box/?cmd=201&json={"port":0,"name":"Strip name"}
http://maxsmart-sandbox.fritz.box/?cmd=201&json={"port":3,"name":"Socket 3 name"}

Get power states and consumption
http://maxsmart-sandbox.fritz.box/?cmd=511

Command 124,122 & 120 doesn’t work on my Revogi strip :slight_smile:

And maybe you have to be in an specific mode to get a telnet or ssh access.

I guess 120 122 and 124 are for OEMs. Allowing to overwrite identifiers for their own use.

For the rest, there are other commands that I know have a function but do not work without parameters. And I don’t know the parameters o_0 :slight_smile:

If I had time and need, I would put the plug behind a sniffer, or a sniffer behind my router to capture 100% of the traffic between the plug and the cloud.

@thejacko12354, Have you tried commands 101 and 500 against the Revogi cloud site ? Did it work ?

No I didn’t, but i can’t test it because I didn’t create an account nor did anything with them.

Great. It means Cloud is not mandatory for setup. That’s a good news :slight_smile:

I’m going forward on the script. I struggled for some days, because it was working very randomly, and even my wifi AP was hanging, until I realize it was due to one of the power strip being defect o_0

I have now added the support for single outlet plugs.

I will share my script when I have sorted out some other details.

well it sort of is. But if you did the steps of hacking the device, then you don’t need it.

If the strip is “unhacked” it has to bee connected to the internet and if it looses internet connection even if your lan or wifi is still working the strip reboots until it has a connection again.

I’ve created a git with the file I’m working on. Any help welcome.

I documented how to talk directly to the microcontroller operating the relays in the SOW323, maybe it helps:

1 Like

That’s awesome! :heart_eyes:

I’m trying with socket/plug, I get no error in HA log, but if i try /?cmd=511 in chrome I get connection refused. I was on firmware 5.01, got updated to 5.06. Maybe I need some older firmware (maybe possible to downgrade with old app versions?) I know I had issue with strip where I needed to go trought several old app versions to get working firmware. But now I guess I need to downgrade. Or is there some trick to calling command 511?

I want to buy 3 strips to use on ethernet with hack above, but if newer firmwares are unusable as with the plug I don’t know how probable is success :slight_smile:

Is there an update for this?it works on hassio?thank you