meross-iot
A simple library to deal with Meross devices. At the moment MSS110, MSS210, MSS310, MSS310H smart plugs and the MSS425E power strip. Other meross device might work out of the box with limited functionality. Give it a try and, in case of problems, let the developer know by opening an issue on Github.
What it is and what it does
Meross IoT is a pure-Python library that provides remote control of Meross smart home devices—including plugs, bulbs, switches, hubs, and sensors—through the Meross cloud API. It uses asyncio for non-blocking I/O and communicates with devices via HTTP and MQTT, handling authentication, device discovery, and state management. The library wraps the Meross cloud API, so devices must be registered to a Meross account and reachable via the internet.
The library is actively maintained and has been tested against a range of Meross hardware (MSS310, MSS425E, MSG100, MSH300, and others). Version 0.4.10.4 fixes a critical issue with sub-device handling that broke earlier versions. It requires Python 3.8+ and depends on paho-mqtt, requests, aiohttp, and pycryptodomex for MQTT communication, HTTP requests, async operations, and cryptography respectively.
Use it for:
- Build home automation scripts that discover and control Meross smart plugs, bulbs, and switches remotely.
- Integrate Meross devices into a custom IoT dashboard or monitoring application.
- Create scheduled or event-driven automation (e.g., turn off plugs at specific times or based on conditions).
- Monitor power consumption and device status from Meross smart plugs with power metering.
- Extend Home Assistant or other home automation platforms with Meross device support.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python library for controlling Meross IoT devices (smart plugs, bulbs, switches, hubs, and sensors) over the internet via HTTP and MQTT APIs.
Yes. The library is actively maintained, has low install friction, carries a permissive MIT license, and supports a broad range of Meross devices. The recent 0.4.10.4 release fixes a critical sub-device API issue. Install it if you own Meross devices and need programmatic control; avoid it only if you lack a Meross account or require support for devices not listed in the tested hardware.
Install
meross-iot on PyPI
pip
pip install meross-iotuv
uv add meross-iotpoetry
poetry add meross-iotInstalling meross-iot
Before you install
Low friction installation with four runtime dependencies (paho-mqtt, requests, aiohttp, pycryptodomex). Actively maintained with recent commits and a stable release cadence; requires Python 3.8+.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for both personal projects and integration into commercial applications.
Quickstart
pip install meross_iot==0.4.10.4
import asyncio
from meross_iot.http_api import MerossHttpClient
from meross_iot.manager import MerossManager
async def main():
http_api = await MerossHttpClient.async_from_user_password(
api_base_url='https://iotx-eu.meross.com',
email='user@example.com',
password='password'
)
manager = MerossManager(http_client=http_api)
await manager.async_init()
await manager.async_device_discovery()
plugs = manager.find_devices(device_type="mss310")
if plugs:
await plugs[0].async_update()
await plugs[0].async_turn_on(channel=0)
manager.close()
await http_api.async_logout()
asyncio.run(main())
Requires Python 3.8+; Meross cloud account credentials (email and password) needed to authenticate and discover devices.
Verify before relying
- Whether the HTTP SubDevice API fix in 0.4.10.4 fully resolves all sub-device handling issues or if edge cases remain.
- Current scope of device support beyond the listed tested models and whether unlisted devices work reliably.
- Performance characteristics when managing large numbers of devices or frequent state updates.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — paho-mqtt, requests, aiohttp, pycryptodomex |
| Maintenance | actively maintained — 204 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 87,124/month — #13,813 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: meross_iot-0.4.10.4-py2.py3-none-any.whl
Keywords: meross, smartplug, smartbulb, iot, mqtt, domotic, switch, MSL120, MSS110, MSS210, MSS310, MSS310h, MSS425e, MSS530H, MSG100, MSH300, MS100, MSS710, MSXH0
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
seamOfficial Python SDK for the Seam API that…
permissive · top 15,000 on PyPI
tinytuyaControls and monitors Tuya WiFi smart devices…
permissive · top 15,000 on PyPI
axisEstablishes connections to Axis Communications…
permissive · top 15,000 on PyPI
HATasmotaParses and constructs Tasmota MQTT messages,…
permissive · top 15,000 on PyPI
tuya-device-sharing-sdkA Python SDK for Tuya's Open API that handles…
permissive · top 15,000 on PyPI
plugp100A Python library for controlling and…
copyleft · top 15,000 on PyPI
python-kasaControl TP-Link Kasa and Tapo smart home…
copyleft · top 15,000 on PyPI
pyvesyncAsynchronous Python library to discover,…
permissive · top 15,000 on PyPI
tb-mqtt-clientPython client SDK for ThingsBoard IoT platform,…
permissive · top 15,000 on PyPI
pymysensorsPython API for communicating with MySensors…
permissive · top 15,000 on PyPI