skillfed

aioambient

A clean, async-friendly library for the Ambient Weather API

aioambient v2025.2.0 77.7K downloads/30d#14,509 on PyPI
Permissive license MIT DORMANT released

What it is and what it does

aioambient is an asyncio-native Python library that connects to Ambient Weather personal weather stations through both REST and WebSocket APIs. It lets you fetch device lists, retrieve historical readings, and stream real-time data updates from weather stations you own or, via its OpenAPI class, query public station data by geographic location without authentication.

The library wraps aiohttp, python-socketio, python-engineio, websockets, certifi, and yarl to handle HTTP pooling, WebSocket lifecycle, and TLS verification. It supports Python 3.11, 3.12, and 3.13 on CPython and PyPy. The package is permissively licensed under MIT and has been stable since its 2019 inception, though development is currently dormant with no recent maintenance activity.

Use it for:

  • Monitor personal weather station data in real time by subscribing to WebSocket updates and triggering async handlers on new readings.
  • Build a weather dashboard or home automation system that polls device history and current conditions via the REST API.
  • Query public weather data by geographic coordinates using the OpenAPI class without needing your own weather station.
  • Integrate Ambient Weather readings into an existing asyncio application without blocking the event loop.
  • Archive historical weather data by periodically fetching device details and storing readings to a database.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

An async Python library for querying Ambient Weather personal weather stations via REST and WebSocket APIs, with support for both authenticated and public data access.

Yes, if you own an Ambient Weather station and need async Python integration. The library is stable, permissively licensed, and has low install friction. However, expect no active maintenance—dormant status means no bug fixes or updates for new API changes. Suitable for hobby projects and stable deployments; not recommended if you need ongoing vendor support or rapid iteration.

Install

aioambient on PyPI

pip

pip install aioambient

uv

uv add aioambient

poetry

poetry add aioambient

Installing aioambient

Before you install

Low install friction with a pure-Python wheel distribution. Maintenance is dormant—last release was 557 days ago—so expect no active bug fixes or feature updates, though the library appears stable for its current scope.

License in practice

MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the license notice.

Quickstart

import asyncio
from aioambient import API

async def main():
    api = API("app_key", "api_key")
    devices = await api.get_devices()
    print(devices)

asyncio.run(main())

Requires Python 3.11 or later; Ambient Weather API and application keys must be generated from your Ambient Weather Dashboard account.

Verify before relying

  • Whether the library handles reconnection and error recovery gracefully during long-running WebSocket sessions.
  • Performance characteristics and memory footprint when monitoring multiple devices or high-frequency data streams.
  • Compatibility with recent versions of aiohttp, python-socketio, and websockets beyond what the fact sheet confirms.

Package facts

License MIT (permissive)
Python support supports the current Python release (<3.14,>=3.11)
Install friction low — pure-Python wheel
Runtime dependencies 6 — aiohttp, certifi, python-engineio, python-socketio, websockets, yarl
Maintenance dormant — 557 days since the last release
First released
Downloads 77,655/month — #14,509 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: aioambient-2025.2.0-py3-none-any.whl

License :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy

Tags

ambient weather api clientasync weather station datapersonal weather station pythonambient weather websocketweather data asyncioambient weather rest apireal-time weather data streaming
weather-dataasyncioiot-devices

More Monitoring packages

tqdm

Wraps any iterable to display a real-time…

copyleft · top 100 on PyPI

opentelemetry-semantic-conventions

Provides generated Python code for…

permissive · top 100 on PyPI

opentelemetry-sdk

Provides the reference implementation of the…

permissive · top 100 on PyPI

opentelemetry-api

Provides the abstract API and interfaces for…

permissive · top 100 on PyPI

opentelemetry-exporter-otlp-proto-http

Exports OpenTelemetry observability data to an…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation

Provides automatic instrumentation commands and…

permissive · top 1,000 on PyPI

aioecowitt

Provides an async Python wrapper for the…

permissive · top 15,000 on PyPI

aionotion

aionotion is an asyncio-friendly Python library…

permissive · top 15,000 on PyPI

pyatmo

pyatmo provides a Python API to query Netatmo…

permissive · top 15,000 on PyPI

simplisafe-python

An async Python interface to the SimpliSafe API…

permissive · top 15,000 on PyPI

accuweather

Async Python wrapper for fetching current…

permissive · top 15,000 on PyPI

imgw-pib

An async Python wrapper for the IMGW-PIB API…

permissive · top 15,000 on PyPI

pyairvisual

A thin async Python wrapper for the AirVisual…

permissive · top 15,000 on PyPI

aioguardian

An asyncio-focused Python library for…

permissive · top 15,000 on PyPI

aiorecollect

Asyncio-based Python library for querying waste…

permissive · top 15,000 on PyPI

aioridwell

An asyncio-based Python library for querying…

permissive · top 15,000 on PyPI