$npx skillfedfor your agent

midea-local

Control your Midea M-Smart appliances via local area network

Worth itPyPI NetworkingReleased Aug 2026307.8K downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — midea_local-8.0.1-py3-none-any.whl
v8.0.1 · released 2026-08-13 · Python >=3.12 · 8 runtime deps: aiofiles, aiohttp, colorlog, defusedxml, ifaddr, pycryptodome, platformdirs, typing_extensions

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

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
Same gist for agents: .md · .json

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.

Worth 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

LicenseMIT permissive
Python supportSupports the current Python release >=3.12
Install frictionLow. Pure-Python wheel
Runtime dependencies
8 packages
aiofilesaiohttpcolorlogdefusedxmlifaddrpycryptodomeplatformdirstyping_extensions
MaintenanceActively maintained 1 days since the last release
Last repo commit
First released
Downloads307,816 / month, #7,773 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone 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

Capabilities
midea appliance control local networkmidea m-smart lan controllocal midea device discoverymidea ac temperature controlmidea appliance python librarymidea device protocolsmart home midea integration
Topics
home-automationlocal-controlappliance-integration

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 With conditions
PyPI · WWW/HTTP · released Apr 2025

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.

MITpure Python · 3.8+aging
894.9Mdownloads / mo
psutil Worth it
PyPI · Libraries · released Jan 2026

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.

permissive licensecompiled wheel · 3.6+
387.6Mdownloads / mo
pyOpenSSL With conditions
PyPI · Python Modules · released Aug 2026

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.

Apache-2.0pure Python · 3.9+
294.2Mdownloads / mo
uvloop With conditions
PyPI · Networking · released Oct 2025

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.

Apache-2.0compiled wheel · 3.8.1+
257.9Mdownloads / mo
execnet With conditions
PyPI · Libraries · released Nov 2025

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…

MITpure Python · 3.8+aging
172.1Mdownloads / mo
pyzmq Worth it
PyPI · Networking · released Sep 2025

PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.

BSD-3-Clausecompiled wheel · 3.8+
109.5Mdownloads / mo

See also msmart-ng · whirlpool-sixth-sense · py-ccm15 · pyaehw4a1 · homeconnect-websocket · miniupnpc · gehomesdk · wakeonlan · zha · pydaikin