Command-line tool for Netatmo thermostat control with TrueTemperature - set accurate room temperatures from your terminal
Project description
py-netatmo-truetemp-cli
Official CLI tool for py-netatmo-truetemp - control your Netatmo thermostats from the command line.
⚠️ Disclaimer
This is an unofficial CLI tool for Netatmo thermostats. It is:
- Not affiliated with or endorsed by Netatmo
- Not officially supported - use at your own risk
- For personal/educational use - production use not recommended
- Subject to archival - may become unmaintained if I lose access to Netatmo hardware
Use responsibly: This tool controls heating equipment. Test thoroughly before relying on it.
Features
- Accurate Temperature Control: Uses TrueTemperature calibration system for precise setpoints
- Room-by-Room Management: Control individual rooms by name or ID
- Beautiful Terminal Output: Rich formatting with tables and styled panels
- Secure Configuration: Environment variable-based credential management
- Cross-Platform: Works on Linux, macOS, and Windows
- Robust Error Handling: User-friendly error messages with actionable guidance
Installation
pip install py-netatmo-truetemp-cli
Quick Start
1. Set Environment Variables
export NETATMO_USERNAME="your.email@example.com"
export NETATMO_PASSWORD="your-password"
export NETATMO_HOME_ID="your-home-id" # Optional, auto-detected if omitted
2. List Rooms
netatmo-truetemp list-rooms
3. Set Temperature
# By room name (case-insensitive)
netatmo-truetemp set-truetemperature --room-name "Living Room" --temperature 20.5
# By room ID
netatmo-truetemp set-truetemperature --room-id 1234567890 --temperature 20.5
Commands
list-rooms
Lists all rooms with thermostats in your home.
Options:
--home-id TEXT: Home ID (optional, uses default if not provided)
Example:
netatmo-truetemp list-rooms
netatmo-truetemp list-rooms --home-id <home_id>
set-truetemperature
Sets the calibrated temperature for a Netatmo room.
Options:
--temperature FLOAT: Temperature value (required)--room-id TEXT: Room ID to set temperature for--room-name TEXT: Room name to set temperature for (alternative to --room-id)--home-id TEXT: Home ID (optional, uses default if not provided)
Examples:
netatmo-truetemp set-truetemperature --room-name "Living Room" --temperature 20.5
netatmo-truetemp set-truetemperature --room-id 1234567890 --temperature 19.0
Common Use Cases
List Available Rooms
netatmo-truetemp list-rooms
Set Room Temperature
# By room name (case-insensitive)
netatmo-truetemp set-truetemperature --room-name "Living Room" --temperature 21.0
# By room ID (for automation scripts)
netatmo-truetemp set-truetemperature --room-id "1234567890abcdef" --temperature 21.0
Automation Example
#!/bin/bash
# Adjust bedroom temperature based on time of day
HOUR=$(date +%H)
if [ $HOUR -ge 22 ]; then
netatmo-truetemp set-truetemperature --room-name "Bedroom" --temperature 18.0
fi
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
NETATMO_USERNAME |
Yes | Your Netatmo account email |
NETATMO_PASSWORD |
Yes | Your Netatmo account password |
NETATMO_HOME_ID |
No | Home ID (auto-detected if omitted) |
Security
Credential Management:
- Store credentials in environment variables (never commit to version control)
- For CI/CD or automation, use your platform's secret management system
Authentication Cache: The underlying library caches authentication tokens at:
- Linux:
~/.local/share/netatmo-truetemp/ - macOS:
~/Library/Application Support/netatmo-truetemp/ - Windows:
%LOCALAPPDATA%\netatmo-truetemp\
To report security vulnerabilities, see SECURITY.md.
Development
Setup
git clone https://github.com/py-netatmo-unofficial/py-netatmo-truetemp-cli.git
cd py-netatmo-truetemp-cli
uv venv
uv sync
uv run pre-commit install
Run Tests
uv run pytest
Run Linting
uv run ruff check src/ tests/
uv run ruff format src/ tests/
Run Type Checking
uv run mypy src/
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE for details.
Support
Having issues or want to contribute?
- Bug Reports: Create an issue
- Feature Requests: Request a feature
- Discussions: Join the conversation
- Contributing: See CONTRIBUTING.md
- Security Issues: See SECURITY.md
Related Projects:
- py-netatmo-truetemp - The underlying Python library
- PyPI Package
Acknowledgments
Built with py-netatmo-truetemp, Typer, and Rich.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_netatmo_truetemp_cli-1.0.1.tar.gz.
File metadata
- Download URL: py_netatmo_truetemp_cli-1.0.1.tar.gz
- Upload date:
- Size: 76.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eec82abf42804fb5e14bab1b9e7d7a7d96ff6caf9f69c14d167dd7c3d600837
|
|
| MD5 |
3d8c68f047fc03656ea3e4c3c4b074de
|
|
| BLAKE2b-256 |
1707db37289cf3b6a1cb798bb1a5dc89e63b4a1218a6931bbd0ca52cb3c67793
|
Provenance
The following attestation bundles were made for py_netatmo_truetemp_cli-1.0.1.tar.gz:
Publisher:
publish.yml on py-netatmo-unofficial/py-netatmo-truetemp-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_netatmo_truetemp_cli-1.0.1.tar.gz -
Subject digest:
2eec82abf42804fb5e14bab1b9e7d7a7d96ff6caf9f69c14d167dd7c3d600837 - Sigstore transparency entry: 828313666
- Sigstore integration time:
-
Permalink:
py-netatmo-unofficial/py-netatmo-truetemp-cli@ba54b6dfde4cb2d4bcd39a13c685d1c327c3244c -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/py-netatmo-unofficial
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba54b6dfde4cb2d4bcd39a13c685d1c327c3244c -
Trigger Event:
release
-
Statement type:
File details
Details for the file py_netatmo_truetemp_cli-1.0.1-py3-none-any.whl.
File metadata
- Download URL: py_netatmo_truetemp_cli-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c922e18efc0ca900b144d613de389b63a091d9092e6c97583c2a4ca615c10edc
|
|
| MD5 |
1f9a20e0ea13dfc7099f46ba9dbaa15a
|
|
| BLAKE2b-256 |
4950dbde4750dc7fbf6e2d1684314e6b45bb8a277cc7a6cfd4140af6c540c61c
|
Provenance
The following attestation bundles were made for py_netatmo_truetemp_cli-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on py-netatmo-unofficial/py-netatmo-truetemp-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_netatmo_truetemp_cli-1.0.1-py3-none-any.whl -
Subject digest:
c922e18efc0ca900b144d613de389b63a091d9092e6c97583c2a4ca615c10edc - Sigstore transparency entry: 828313677
- Sigstore integration time:
-
Permalink:
py-netatmo-unofficial/py-netatmo-truetemp-cli@ba54b6dfde4cb2d4bcd39a13c685d1c327c3244c -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/py-netatmo-unofficial
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba54b6dfde4cb2d4bcd39a13c685d1c327c3244c -
Trigger Event:
release
-
Statement type: