midea-local
Control your Midea M-Smart appliances via local area network
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. Install it if you own Midea M-Smart appliances and want local-network control without cloud dependency. The main prerequisite is obtaining device tokens and keys from your Midea account, which the documentation does not fully detail—verify that step before committing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.12 or later; token and key credentials from Midea account needed for device authentication.
- Low install friction with straightforward async-capable dependencies.
- Active maintenance with a release within the last day and 96 repository stars; requires Python 3.12 or later.
License · maintenance · safety
MIT (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both personal and commercial projects.
last release 2026-08-13 (1 days) · last repo commit 2026-08-14 · 96 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 307,816 downloads/mo, #7,773 on PyPI
Alternatives
Verify before relying
from midealocal.discover import discover
from midealocal.devices import device_selector
# Discover devices on local network
devices = discover()
d = list(devices.values())[0]
# Connect to device with token and key
ac = device_selector(
name="AC",
device_id=d['device_id'],
device_type=d['type'],
ip_address=d['ip_address'],
port=d['port'],
token='...',
key='...',
device_protocol=d['protocol'],
model=d['model'],
subtype=0,
customize=""
)
ac.connect()
ac.set_target_temperature(23.0, None)- Whether token and key acquisition process is documented or requires separate Midea account setup steps
- Supported Midea device types and models beyond the AC examples shown
- Whether the CLI tool provides a complete alternative to programmatic control
What it is and what it does
Midea-local is a Python library for controlling Midea M-Smart appliances directly over your local network without relying on cloud services. It discovers devices on the LAN, establishes authenticated connections using device tokens and keys, and exposes appliance attributes and control methods—such as setting temperature or swing mode on air conditioners—through a unified device interface.
The library handles the low-level protocol details (encryption via pycryptodome, async I/O via aiohttp and aiofiles) and provides both a programmatic API and a command-line tool. It targets Python 3.12+ and has been actively maintained with frequent releases; it's part of a larger ecosystem for Midea device automation.
Use it for
- Discover and list all Midea M-Smart appliances on your home network by IP and device type.
- Build a home automation dashboard that reads and controls AC temperature, swing, and other attributes in real time.
- Integrate Midea appliances into a broader smart-home system via local-only control without cloud dependency.
- Automate appliance schedules or responses (e.g., turn off AC when leaving home) using the device control API.
- Debug or inspect Midea device state and protocol details using the included CLI tool.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. Install it if you own Midea M-Smart appliances and want local-network control without cloud dependency. The main prerequisite is obtaining device tokens and keys from your Midea account, which the documentation does not fully detail—verify that step before committing.
Install
midea-local on PyPI
Before you install
Low install friction with straightforward async-capable dependencies. Active maintenance with a release within the last day and 96 repository stars; requires Python 3.12 or later.
Requires Python 3.12 or later; token and key credentials from Midea account needed for device authentication.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both personal and commercial projects.
Quickstart
from midealocal.discover import discover
from midealocal.devices import device_selector
# Discover devices on local network
devices = discover()
d = list(devices.values())[0]
# Connect to device with token and key
ac = device_selector(
name="AC",
device_id=d['device_id'],
device_type=d['type'],
ip_address=d['ip_address'],
port=d['port'],
token='...',
key='...',
device_protocol=d['protocol'],
model=d['model'],
subtype=0,
customize=""
)
ac.connect()
ac.set_target_temperature(23.0, None)
Verify before relying
- Whether token and key acquisition process is documented or requires separate Midea account setup steps
- Supported Midea device types and models beyond the AC examples shown
- Whether the CLI tool provides a complete alternative to programmatic control
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.12 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesaiofilesaiohttpcolorlogdefusedxmlifaddrpycryptodomeplatformdirstyping_extensions |
| Maintenance | Actively maintained 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 307,816 / month, #7,773 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: midea_local-8.0.1-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 appliance control local network”
- midea-localControl Midea M-Smart appliances over local network using their…
- msmart-ngA Python library for discovering and controlling Midea brand air…
- homeconnect-websocketControl HomeConnect appliances over a local WebSocket connection…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also msmart-ng · whirlpool-sixth-sense · py-ccm15 · pyaehw4a1 · homeconnect-websocket · miniupnpc · gehomesdk · wakeonlan · zha · pydaikin