Skip to main content

A simple library to deal with Meross devices. At the moment MSS110, MSS210, MSS310, MSS310H smart plugs and the MSS425E power strip

Project description

Build status Deployment

Meross IoT library

A pure-python based library providing API for controlling Meross IoT devices over the internet.

To see what devices are currently supported, checkout the Currently supported devices section. Hopefully, more Meross hardware will be supported in the future.

This library is still work in progress, therefore use it with caution.

Installation

Due to the popularity of the library, I've decided to list it publicly on the Pipy index. So, the installation is as simple as typing the following command:

pip install meross_iot --upgrade

Usage

The following script demonstrates how to use this library.

import time
import sys
from meross_iot.api import MerossHttpClient

if __name__=='__main__':
    httpHandler = MerossHttpClient(email="YOUR_MEROSS_CLOUD_EMAIL", password="YOUR_PASSWORD")

    # Retrieves the list of supported devices
    print("Listing Devices...")
    devices = httpHandler.list_supported_devices()

    for counter, device in enumerate(devices):
        print("Playing with device: %d" % counter)
        # Returns most of the info about the power plug
        print("\nGetting system data...")
        data = device.get_sys_data()

        # Turns the power-plug on
        print("\nTurning the device on...")
        device.turn_off()

        # Turns the power-plug off
        print("\nTurning the device off...")
        device.turn_on()

        # Reads the historical device consumption
        print("\nReading consumption data...")
        consumption = device.get_power_consumptionX()

        # Returns the list of WIFI Network available for the plug
        # (Note. this takes some time to complete)
        print("\nScanning Wifi...")
        wifi_list = device.get_wifi_list()

        # Info about the device
        print("\nGetting device trace...")
        trace = device.get_trace()
        print("\nGetting device debug...")
        debug = device.get_debug()

        # Returns the capabilities of this device
        print("\nRetrieving device abilities...")
        abilities = device.get_abilities()

        # I still have to figure this out :S
        # The following command is not yet implemented on all devices
        # and might not work as expected.
        # report = device.get_report()

        # Returns the current power consumption and voltage from the plug
        # (Note: this is not really realtime, but close enough)
        print("\nReading electricity...")
        electricity = device.get_electricity()

Currently supported devices

Even though this library was firstly meant to drive only the Meross MSS310, other nice developers contributed to its realization. The following is the currently supported list of devices:

Protocol details

This library was implemented by reverse-engineering the network communications between the plug and the meross network. Anyone can do the same by simply installing a Man-In-The-Middle proxy and routing the ssl traffic of an Android emulator through the sniffer.

If you want to understand how the Meross protocol works, have a look at the Wiki. Be aware: this is still work in progress, so some pages of the wiki might still be blank/under construction.

Donate!

I like reverse engineering and protocol inspection, I think it keeps your mind trained and healthy. However, if you liked or appreciated by work, why don't you buy me a beer? It would really motivate me to continue working on this repository to improve documentation, code and extend the supported meross devices.

Buy me a beer

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meross_iot-0.1.4.3.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

meross_iot-0.1.4.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file meross_iot-0.1.4.3.tar.gz.

File metadata

  • Download URL: meross_iot-0.1.4.3.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for meross_iot-0.1.4.3.tar.gz
Algorithm Hash digest
SHA256 c4647430b1853da1d8ef0850d1b99d87d62def0f46a80d99ac5a81f0d01ddaac
MD5 a9c4b9d5be341ae2c26cf3b91daf8f28
BLAKE2b-256 4721b655b5c38dad8919f27ae3e56eb9ab9127cb9ac39a8d0bd74a01fd5d0cf1

See more details on using hashes here.

File details

Details for the file meross_iot-0.1.4.3-py3-none-any.whl.

File metadata

  • Download URL: meross_iot-0.1.4.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for meross_iot-0.1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 858985508661f184e3e4530b4e92c855777eccea1e26a958d48f06b8b792d8ae
MD5 ba002025fdfbaf40471887a9cc6f5a43
BLAKE2b-256 159728df03284bc94190518bf3663113782842084d69678efdfb87075cd4fcd9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page