Are Meross switches compatible with any existing components?

I’m working on it…

1 Like

I’m trying too…! :sunny:

No success till now. Quite a shame!

This meross have now a cheap full line of products

You can get now two Meross smart plugs on amazon for a little more than the tplink hs110 costs. I hope someone will soon write a Hass component for meross. I‘d be super excited…

I was not able to capture packets.
My 2 cents about Meross are these two links I’ve found:
https://github.com/albertogeniola/MerossIot and https://github.com/Apollon77/ioBroker.meross.
I hope someone could implement the Meross switches in HA…:crossed_fingers:

1 Like

I have never understood what they gain with thislock to the cloud. Iam sure they would sell more if tjey had an open api.

That’s good news! The first project supports exactly the plugs I’ve bought. I will try it out over the holidays.

I’ve wrote to Meross in order to have news about API support. This is the answer:
" Thanks for your support.
Currently we only have one model MSS110 with API. We will develop API for more models, but it takes sometime, maybe a couple of weeks or even months. Sorry for the inconvenience.
Regards
Eric on behalf of meross
"

Hi all I just got one of this WiFi surge protector MSS425E.

Do you think someone is developing compatibility with Home Assistant?

So, I’ve made some progress in figuring out the challenge & auth scheme for this Note: Please see the two updates below for my progress.

I have the smart strip (mss425) for the record.

If you are able to capture a REST request in flight, you can keep using their signature scheme to send new requests and they will continue to work.

All Meross devices have a REST API that is located at

http://<IP>/config

You can only send POST requests to this path.

The payload for the request is in the form:

{
  "header": {
    "messageId": "<messageid>",
    "method": "GET",
    "namespace": "Appliance.System.All",
    "payloadVersion": 1,
    "sign": "<signature>",
    "timestamp": <unixtimestamp>
  },
  "payload": {}
}

Both the sign field and the messageid field are 32 characters long.

I’m currently working on reversing the implementation of the signing scheme.

P.S. If anyone wants to assist me in implementing this into home assistant, I could use the help :slight_smile:

Update: messageid seems to be the the MD5 of the concatenation of a 16 random set of characters in the set: “abcdefghijklmnopqrstuvwxyz0123456789” and the current unix time stamp.

Update 2: the sign field seems to be the md5(messageid+key+unixtimestamp)

Trying to figure out how to retrieve key easily. (I have managed to retrieve mine but in a very obscure way).

4 Likes

Hi, I have a smart strip (mss425) and I solved this way, via IFTTT:

   input_boolean:
      switch1:
        name: Switch1
        initial: off      
      switch2:
        name: Switch2
        initial: off
      switch3:
        name: Switch3
        initial: off   
      usb:
        name: USB
        initial: off   

automations:

- id: '1543954481217'
  alias: Switch1 ON
  trigger:
  - entity_id: input_boolean.switch1
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data:
      event: switch1_on
    service: ifttt.trigger
- id: '1543954513639'
  alias: Switch1 OFF
  trigger:
  - entity_id: input_boolean.switch1
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      event: switch1_off
    service: ifttt.trigger
- id: '1543955359803'
  alias: Switch2 OFF
  trigger:
  - entity_id: input_boolean.switch2
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      event: switch2_off
    service: ifttt.trigger
- id: '1543955433401'
  alias: Switch2 ON
  trigger:
  - entity_id: input_boolean.switch2
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data:
      event: switch2_on
    service: ifttt.trigger
- id: '1543955465192'
  alias: Switch3 OFF
  trigger:
  - entity_id: input_boolean.switch3
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      event: switch3_off
    service: ifttt.trigger
- id: '1543955504048'
  alias: Switch3 ON
  trigger:
  - entity_id: input_boolean.switch3
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data:
      event: switch3_on
    service: ifttt.trigger
- id: '1543955532383'
  alias: USB OFF
  trigger:
  - entity_id: input_boolean.usb
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      event: usb_off
    service: ifttt.trigger
- id: '1543955560430'
  alias: USB ON
  trigger:
  - entity_id: input_boolean.usb
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data:
      event: usb_on
    service: ifttt.trigger

Cattura

2 Likes

Where and how can I find device ‘ID’?

I created the automations using HASS.IO, so the id was automatically assigned to me by HASS.IO

@Miki_Mercuri that’s a rather clever way to get around this limitation!

I’m a bit swamped with work right now, but I should have some time in the next few weeks to cleanup my work so that it can be integrated with home assistant.

That way, you don’t have to go through an intermediary like IFTTT.

1 Like

Is it possible to monitor the consumption for smart plug ? (mss310 )

I don’t have your device but if you look at the post above and replace

"namespace": "Appliance.System.All",

with:

"namespace": "Appliance.Control.Consumption",

it should work.

Thanks @deus
To gather the messageid for my mss310, there is a interesting way to do it here : https://github.com/albertogeniola/MerossIot/wiki/Device-pairing
I’ll test it

Glad to help @bonilla :slight_smile:

I found some time to cludge together a rough script.

Use this to retrieve your messageid, sign and timestamp to be used for the REST request.

1 Like

It worked , thanks @deus
Do you have found a way to have a tile with consumption and status on lovelace?