aiomodernforms
Asynchronous Python client for Modern Forms fans.
Decision gist · record as of 2026-08-14
Yes. The package has low install friction, permissive licensing, active maintenance, no known vulnerabilities, and solves a specific problem (Modern Forms fan automation) with a clean async API. Install it if you own a Modern Forms fan and need programmatic control; the Beta status and small community (3 stars) suggest it's still maturing, so test against your specific fan model first using the included diagnostic tool.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; fan must be reachable on the network at a known IP address.
- Low install friction with three lightweight async dependencies (aiohttp, yarl, backoff).
- Active maintenance as of 2026-08-14 with recent release history; requires Python 3.11 or later.
License · maintenance · safety
MIT license (permissive) — MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both personal and commercial projects.
last release 2026-07-28 (17 days) · last repo commit 2026-08-14 · 3 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 75,089 downloads/mo, #14,752 on PyPI
Alternatives
Verify before relying
import asyncio
import aiomodernforms
from aiomodernforms.const import LIGHT_POWER_ON
async def main():
async with aiomodernforms.ModernFormsDevice("192.168.3.197") as fan:
await fan.update()
await fan.light(on=LIGHT_POWER_ON, brightness=50)
asyncio.run(main())- Whether all Modern Forms fan hardware generations are supported or if compatibility varies by model.
- API stability and whether breaking changes are expected given the Beta development status.
What it is and what it does
aiomodernforms is an async Python client library for controlling Modern Forms ceiling fans over the network. It wraps the fan's HTTP API to let you programmatically turn the fan on/off, adjust speed, control the integrated light, set sleep timers, and read the current fan status. The library uses aiohttp for async HTTP communication, yarl for URL handling, and backoff for automatic retry logic on transient failures.
The package is designed for home automation integrations and third-party tools that need to automate fan behavior. It targets Python 3.11+ and is actively maintained. The library includes a diagnostic tool to help identify hardware-specific API quirks across different Modern Forms fan generations, which it redacts for privacy before you share output.
Use it for
- Automate fan control in home automation systems like Home Assistant or similar platforms.
- Build a web dashboard or mobile app backend to remotely control fans from anywhere.
- Schedule fan and light behavior based on time of day, temperature, or occupancy sensors.
- Integrate fan control into smart home routines triggered by voice assistants or other events.
- Monitor fan status and log operational data for energy usage analysis.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package has low install friction, permissive licensing, active maintenance, no known vulnerabilities, and solves a specific problem (Modern Forms fan automation) with a clean async API. Install it if you own a Modern Forms fan and need programmatic control; the Beta status and small community (3 stars) suggest it's still maturing, so test against your specific fan model first using the included diagnostic tool.
Install
aiomodernforms on PyPI
Before you install
Low install friction with three lightweight async dependencies (aiohttp, yarl, backoff). Active maintenance as of 2026-08-14 with recent release history; requires Python 3.11 or later.
Requires Python 3.11 or later; fan must be reachable on the network at a known IP address.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both personal and commercial projects.
Quickstart
import asyncio
import aiomodernforms
from aiomodernforms.const import LIGHT_POWER_ON
async def main():
async with aiomodernforms.ModernFormsDevice("192.168.3.197") as fan:
await fan.update()
await fan.light(on=LIGHT_POWER_ON, brightness=50)
asyncio.run(main())
Verify before relying
- Whether all Modern Forms fan hardware generations are supported or if compatibility varies by model.
- API stability and whether breaking changes are expected given the Beta development status.
Package facts
| License | MIT license permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesaiohttpyarlbackoff |
| Maintenance | Actively maintained 17 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 75,089 / month, #14,752 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Topic :: Software Development :: Libraries :: Python Modules |
Evidence: aiomodernforms-0.2.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 › “modern forms fan control”
- aiomodernformsAsynchronous Python client for controlling and monitoring Modern…
- fjaraskupanControl Fjäråskupan kitchen fans over Bluetooth via async Python code…
- vallox-websocket-apiAsync WebSocket client for controlling and monitoring Vallox…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also fjaraskupan · asyncsleepiq · aiohue · bond-async · directv · aiolifx-effects · pyvesync · nexia · vallox-websocket-api · afsapi