aiomodernforms
Asynchronous Python client for Modern Forms fans.
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
Asynchronous Python client for controlling and monitoring Modern Forms ceiling fans over a network, allowing programmatic automation of fan speed, light, and sleep settings.
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
pip
pip install aiomodernformsuv
uv add aiomodernformspoetry
poetry add aiomodernformsInstalling aiomodernforms
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.
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())
Requires Python 3.11 or later; fan must be reachable on the network at a known IP address.
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 — aiohttp, yarl, backoff |
| 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) |
Evidence: aiomodernforms-0.2.0-py3-none-any.whl
Keywords: modernforms, api, async, client
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
fjaraskupanControl Fjäråskupan kitchen fans over Bluetooth…
permissive · top 15,000 on PyPI
asyncsleepiqAsyncSleepIQ provides async Python access to…
permissive · top 15,000 on PyPI
aiohueAsynchronous Python library for controlling…
permissive · top 15,000 on PyPI
bond-asyncAsynchronous Python wrapper for the Bond Local…
permissive · top 15,000 on PyPI
directvAsynchronous Python client for controlling and…
permissive · top 15,000 on PyPI
aiolifx-effectsProvides light effects for LIFX smart bulbs via…
permissive · top 15,000 on PyPI
pyvesyncAsynchronous Python library to discover,…
permissive · top 15,000 on PyPI
nexiaAsync Python library for controlling Nexia…
permissive · top 15,000 on PyPI
vallox-websocket-apiAsync WebSocket client for controlling and…
copyleft · top 15,000 on PyPI
afsapiAsynchronous Python client for controlling…
permissive · top 15,000 on PyPI