pyatmo
Simple API to access Netatmo weather station data from any Python 3 script. Designed for Home Assistant (but not only)
What it is and what it does
pyatmo is a Python client library for the Netatmo API, allowing you to fetch data from Netatmo weather stations, cameras, and other connected home devices. It handles OAuth authentication via requests-oauthlib and makes asynchronous or synchronous HTTP calls to the Netatmo cloud service using aiohttp and requests. The library is designed primarily for Home Assistant integration but works as a standalone tool for any Python 3 application that needs to read sensor data or device status from Netatmo hardware.
The package requires Python 3.11 or later and depends on aiohttp, oauthlib, requests-oauthlib, requests, and tenacity for retry logic. You must have a valid Netatmo user account and a registered application to authenticate. The maintainer has indicated limited availability for issue triage but continues to merge passing pull requests, so the project remains functional but may not receive rapid bug fixes.
Use it for:
- Fetch current weather data from a Netatmo weather station in a home automation script.
- Integrate Netatmo camera feeds or motion alerts into a Home Assistant instance.
- Poll Netatmo air quality or indoor climate sensors and log readings to a database.
- Build a custom dashboard that displays real-time data from multiple Netatmo devices.
- Trigger automations based on Netatmo sensor thresholds in a Python application.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pyatmo provides a Python API to query Netatmo weather stations, cameras, and other connected devices via the Netatmo cloud service.
Yes, if you own Netatmo devices and need Python access to their data. The package is actively released, has low install friction, carries no known vulnerabilities, and is licensed permissively. The main caveat is that the maintainer has limited capacity for issue support—rely on pull requests and community fixes for bugs, and be aware that Netatmo API changes could break the library without immediate patching.
Install
pyatmo on PyPI
pip
pip install pyatmouv
uv add pyatmopoetry
poetry add pyatmoInstalling pyatmo
Before you install
Installation is straightforward with low friction. The package is actively maintained with a recent release; however, the maintainer has stated they cannot dedicate sufficient time to address issues, though pull requests passing CI will still be merged.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute pyatmo freely in commercial and private projects with minimal restrictions.
Quickstart
pip install pyatmo
import pyatmo
# Requires valid Netatmo account and registered application
auth = pyatmo.ClientAuth(client_id, client_secret, username, password)
weather_data = pyatmo.WeatherStationData(auth)
Requires Python 3.11 or later; also requires a valid Netatmo user account and registered application for authentication.
Verify before relying
- Whether the maintainer's stated capacity constraints will affect long-term stability or responsiveness to critical bugs.
- Current state of Netatmo API compatibility—the description notes the module may break if Netatmo changes their API.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — aiohttp, oauthlib, requests-oauthlib, requests, tenacity |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,798/month — #14,494 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyatmo-9.8.0-py3-none-any.whl
Tags
More Home Automation packages
Represents and manipulates IPv4, IPv6, MAC…
permissive · top 5,000 on PyPI
homeassistantHome Assistant is an open-source home…
permissive · top 5,000 on PyPI
python-statemachineDefines finite state machines and statecharts…
permissive · top 5,000 on PyPI
btsocketA Python library for controlling BlueZ…
permissive · top 15,000 on PyPI
aiohomematicAn async Python library for controlling and…
permissive · top 15,000 on PyPI
hass-web-proxy-libProvides base classes and utilities for Home…
permissive · top 15,000 on PyPI
aioambientAn async Python library for querying Ambient…
permissive · top 15,000 on PyPI
pytapoPyTapo is a Python library that communicates…
permissive · top 15,000 on PyPI
AEMET-OpenDataPython client for the AEMET OpenData Rest API…
copyleft · top 15,000 on PyPI
aioecowittProvides an async Python wrapper for the…
permissive · top 15,000 on PyPI
airthings-cloudA Python library for communicating with…
permissive · top 15,000 on PyPI
imgw-pibAn async Python wrapper for the IMGW-PIB API…
permissive · top 15,000 on PyPI
open-meteoProvides an asynchronous Python client for…
permissive · top 15,000 on PyPI
env_canadaProvides async access to Environment Canada…
permissive · top 15,000 on PyPI
giosFetches real-time air quality measurements from…
permissive · top 15,000 on PyPI
meteostatMeteostat provides access to historical weather…
unclear · top 15,000 on PyPI