google-nest-sdm
Library for the Google Nest SDM API
What it is and what it does
google-nest-sdm is a Python client library for Google's Smart Device Management API, designed primarily for Home Assistant but usable in standalone applications. It handles OAuth2 authentication, device enumeration, state queries, and command execution (like setting thermostat modes or temperatures) against Google Nest devices. The library wraps the REST API and Pub/Sub event subscription mechanisms, abstracting away much of the complexity of direct API calls.
The package depends on aiohttp, google-auth, google-auth-oauthlib, google-cloud-pubsub, requests-oauthlib, PyYAML, and mashumaro for async HTTP, OAuth flows, event streaming, and data serialization. Setup requires significant upfront work: registering with Google's Device Access program, creating a Google Cloud project, configuring OAuth credentials, and setting up Pub/Sub topics and subscriptions. The documentation acknowledges this complexity and recommends testing the API with curl before attempting integration.
Use it for:
- Integrate Nest thermostats and other devices into a custom home automation system or dashboard.
- Subscribe to real-time device events (temperature changes, occupancy) via Pub/Sub for reactive automation logic.
- Query device state and issue control commands (set mode, adjust temperature) programmatically from a Python application.
- Build a Home Assistant custom component or integration layer on top of the library's abstractions.
- Monitor and log Nest device telemetry over time for analysis or alerting.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python library for interacting with Google Nest devices through the Smart Device Management API, providing access to device state, control commands, and event subscriptions.
Yes, if you need to programmatically control Google Nest devices and are willing to invest time in Google Cloud setup. The library is stable and permissively licensed, but maintenance is aging (last release 254 days ago), so expect slower bug fixes. Not suitable if you need rapid support or active feature development. Requires Python 3.13+.
Install
google-nest-sdm on PyPI
pip
pip install google-nest-sdmuv
uv add google-nest-sdmpoetry
poetry add google-nest-sdmInstalling google-nest-sdm
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 254 days ago—so expect slower response to issues, though the package remains functional for current use.
License in practice
Licensed under Apache-2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions; suitable for both open-source and commercial projects.
Quickstart
pip install google-nest-sdm
from google_nest_sdm.auth import GoogleNestSDMAuth
from google_nest_sdm.google_nest_device import GoogleNestDevice
# Requires OAuth2 credentials from Google Cloud Console
auth = GoogleNestSDMAuth(project_id="...", client_id="...", client_secret="...")
device = GoogleNestDevice(auth=auth)
Requires Python 3.13 or later; also requires prior registration with Google Nest Device Access, OAuth2 setup in Google Cloud Console, and Pub/Sub configuration for event subscriptions.
Verify before relying
- Whether the library actively maintains compatibility with the current Google Nest SDM API specification given the aging maintenance status.
- Community adoption and real-world usage patterns beyond the Home Assistant integration it was designed for.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — aiohttp, google-auth, google-auth-oauthlib, google-cloud-pubsub, requests-oauthlib, PyYAML, mashumaro |
| Maintenance | aging — 254 days since the last release |
| First released | |
| Downloads | 78,676/month — #14,420 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: google_nest_sdm-9.1.2-py3-none-any.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
homeassistantHome Assistant is an open-source home…
permissive · top 5,000 on PyPI
google-apps-meetPython client library for the Google Meet API…
permissive · top 15,000 on PyPI
python-ecobee-apiA Python library for communicating with Ecobee3…
permissive · top 15,000 on PyPI
google-ads-admanagerPython client library for Google Ad Manager…
permissive · top 15,000 on PyPI
google-analytics-adminPython client library for the Google Analytics…
permissive · top 1,000 on PyPI
glocaltokensExtracts local authentication tokens from…
permissive · top 15,000 on PyPI
pyhiveapiA Python library for controlling Hive smart…
permissive · top 15,000 on PyPI
tuya-device-sharing-sdkA Python SDK for Tuya's Open API that handles…
permissive · top 15,000 on PyPI
google-cloud-pubsubPython client library for Google Cloud Pub/Sub,…
permissive · top 1,000 on PyPI
secopsA Python SDK for interacting with Google…
permissive · top 15,000 on PyPI