msmart-ng
A Python library for local control of Midea (and associated brands) smart air conditioners.
Decision gist · record as of 2026-08-14
Yes. The library is actively maintained, has low install friction, carries a permissive MIT license, and solves a real problem for anyone with Midea AC units who wants local control without cloud dependency. No known vulnerabilities. Suitable for both personal automation and Home Assistant integration.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- For V3 devices, Midea Cloud authentication is needed once to retrieve token and key; local control then works offline.
- Low install friction with only two runtime dependencies (httpx and pycryptodome).
License · maintenance · safety
MIT (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both personal and commercial projects.
last release 2026-08-05 (9 days) · last repo commit 2026-08-05 · 135 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 106,155 downloads/mo, #12,664 on PyPI
Alternatives
Verify before relying
pip install msmart-ng
from msmart.device import AirConditioner as AC
device = AC(ip='DEVICE_IP', port=6444, device_id=int(DEVICE_ID))
await device.refresh()- Whether all Midea and associated-brand models are equally well-supported or if some device types have known limitations beyond V1.
- Performance characteristics when controlling multiple devices simultaneously or on networks with high latency.
- Whether the library handles device disconnections and reconnection gracefully in long-running applications.
What it is and what it does
msmart-ng is a Python library that lets you discover and control Midea air conditioners and devices from associated brands (Artic King, Toshiba, NetHome Plus, and others) on your local network. It provides both a command-line tool and a Python API with full async/await support, so you can integrate AC control into automation systems without blocking. The library works entirely locally once initialized—no internet connection needed for day-to-day operation, though V3 devices require a one-time cloud authentication to retrieve credentials.
The package depends on httpx for HTTP communication and pycryptodome for device authentication. It supports device discovery via broadcast, querying device state and capabilities, and sending control commands (temperature, mode, fan speed, etc.). A CLI tool is included for manual discovery and control, and Docker support is available for containerized deployments.
Use it for
- Integrate Midea AC units into a home automation setup for centralized smart-home control.
- Build a custom automation script that adjusts AC temperature based on time of day or occupancy sensors.
- Discover and monitor all Midea devices on a local network without relying on cloud services.
- Control multiple air conditioners programmatically in a commercial or multi-unit residential setting.
- Create a CLI tool or web dashboard for manual AC control on a local network.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The library is actively maintained, has low install friction, carries a permissive MIT license, and solves a real problem for anyone with Midea AC units who wants local control without cloud dependency. No known vulnerabilities. Suitable for both personal automation and Home Assistant integration.
Install
msmart-ng on PyPI
Before you install
Low install friction with only two runtime dependencies (httpx and pycryptodome). Actively maintained with a recent release and steady commit activity. Supports current Python versions (3.10 through 3.14).
Requires Python 3.10 or later. For V3 devices, Midea Cloud authentication is needed once to retrieve token and key; local control then works offline.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both personal and commercial projects.
Quickstart
pip install msmart-ng
from msmart.device import AirConditioner as AC
device = AC(ip='DEVICE_IP', port=6444, device_id=int(DEVICE_ID))
await device.refresh()
Verify before relying
- Whether all Midea and associated-brand models are equally well-supported or if some device types have known limitations beyond V1.
- Performance characteristics when controlling multiple devices simultaneously or on networks with high latency.
- Whether the library handles device disconnections and reconnection gracefully in long-running applications.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packageshttpxpycryptodome |
| Maintenance | Actively maintained 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 106,155 / month, #12,664 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Operating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Home Automation |
Evidence: msmart_ng-2026.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “midea air conditioner control”
- msmart-ngA Python library for discovering and controlling Midea brand air…
- py-ccm15Provides an async Python interface to communicate with Midea CCM15…
- midea-localControl Midea M-Smart appliances over local network using their…
Give your agent the search over MCP, or paste the wish link into any chat.
More Home Automation packages
Represents and manipulates IPv4, IPv6, MAC addresses and related network objects; supports CIDR notation, subnetting, set operations, IANA lookups, and DNS reverse generation.
Home Assistant is an open-source home automation platform that centralizes control of smart home devices and automations on a local server or Raspberry Pi, prioritizing local control and privacy over cloud dependency.
Defines finite state machines and statecharts with a declarative Python API, supporting flat states, compound hierarchies, parallel regions, history states, guards, and both sync and async callbacks.
Install it if you need to model workflows, control logic, or any system with discrete states and event-driven transitions — from simple state machines to complex…
A Python library for controlling BlueZ Bluetooth adapters on Linux via the Management API, supporting both synchronous and event-driven command patterns.
An async Python library for controlling and monitoring Homematic and HomematicIP devices through multiple backend systems (CCU3, OpenCCU, Homegear, CUxD, CCU-Jack) using XML-RPC and JSON-RPC protocols.
Install it if you need to control Homematic devices from Python; the only constraint is a requirement for Python 3.14 or later and network access to a compatible…
Provides base classes and utilities for Home Assistant integrations to proxy HTTP and WebSocket traffic through Home Assistant's web server.
Install only if you are building a custom Home Assistant integration; it is not useful as a standalone package.
See also midea-local · py-ccm15 · advantage-air · greeclimate · pydaikin · pyaehw4a1 · python-izone · pyvesync · aioairzone-cloud · librouteros