Skip to content
This repository has been archived by the owner on Jul 1, 2020. It is now read-only.

Latest commit

 

History

History
87 lines (71 loc) · 3.39 KB

README.md

File metadata and controls

87 lines (71 loc) · 3.39 KB

Homebridge Meross MSS110 Plug

This project has been abandoned and all current and future development has moved here.


Homebridge implementation of the Meross MSS110 mini-plug with initial support for the Meross MSS425 Surge Protector.

This is a pet project. I can't promise it'll work for you. If it does, that's awesome! It may also break. I am using this in "production" at my house, so any fixes I make for my setup will be published.

PRs welcome!

Setup

Assuming you have a working Homebridge setup, this is how you add the Meross plug-in:

  • npm i -g homebridge-meross-plug (You may need sudo depending on your homebridge setup)
  • Edit your config.json to include the plug name, deviceUrl, hardwareVersion, channel, messageId, timestamp, & sign.

If you're setting this plug up fresh, make sure you go through the typical Meross app for initial setup.

You will also have to obtain some information that the Meross mobile app uses in its HTTP request headers. The Charles proxy application can be used to sniff the network requests sent from the iOS app. A detailed tutorial on how to set up Charles with your iOS device can be found here.

There are currently two hardware versions of the MSS110 plug. There are some differences in requests sent between hardware version 1 and version 2 of the MSS110 plug. Note the brown and black markings. This is the information needed for your config.json file. Also note there is no "channel" attribute for hardware version 1. You may safely set that to 0 in your config.

config.json Configuration

  • The name attribute is how the device name will be displayed in iOS Home app.
  • The deviceUrl is the local address of the specific plug.
    • Hint: Toggle the plug in the Meross app multiple times to see Charles send requests for that plug.
  • The hardwareVersion attribute is the first number of the "version" sent in the HTTP request.
  • The channel attribute can be set to 0 unless you are setting up the MSS425 Surge Protector.
  • The messageId, timestamp, & sign attributes are unique to you but can be shared between every device in your config.json file.
{
  "accessories": [
    {
      "accessory": "Meross",
      "name": "Bedroom lamp",
      "deviceUrl": "http://192.168.1.5",
      "hardwareVersion": 1,
      "channel": 0,
      "messageId": "ea3a20d62868f6c709b6e1b8aeab1ecc",
      "timestamp": 1550640748,
      "sign": "9430a84459d15a522a8cb91c93f63b45"
    },
    {
      "accessory": "Meross",
      "name": "Entertainment center lights",
      "deviceUrl": "http://192.168.1.6",
      "hardwareVersion": 2,
      "channel": 0,
      "messageId": "ea3a20d62868f6c709b6e1b8aeab1ecc",
      "timestamp": 1550640748,
      "sign": "9430a84459d15a522a8cb91c93f63b45"
    }
  ]
}