Skip to main content

Netatmo's missing true temperature CLI - set real room temps from your terminal

Project description

py-netatmo-truetemp-cli

PyPI version PyPI - Downloads CI Python 3.13+ License: MIT codecov Code style: Ruff Type checked: mypy Security: bandit

Netatmo's missing true temperature CLI - set real room temps from your terminal with a simple, intuitive command-line interface.

⚠️ Disclaimer

Unofficial Project: This is an independent, community-developed CLI tool and is not affiliated with, endorsed by, or supported by Netatmo or Legrand.

Why This Exists: The official Netatmo OAuth API does not currently support programmatic temperature adjustments via the truetemperature endpoint. This CLI tool provides a simple interface to the py-netatmo-truetemp library.

Archival Policy: This repository will be archived or removed if:

  • Netatmo officially adds temperature control support to their OAuth API
  • Netatmo requests takedown of this project

Use at Your Own Risk: This tool relies on undocumented endpoints that may change without notice. It controls heating equipment - test thoroughly before relying on it in production.

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 read our Contributing Guide for details on:

  • Code of conduct
  • Development setup
  • Running tests
  • Code style guidelines
  • Conventional commit message format (required)
  • Submitting pull requests

All commits must follow the Conventional Commits format. Pre-commit hooks will validate your commit messages automatically.

See also:

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Having issues or want to contribute?

Related Projects:

Acknowledgments

Built with py-netatmo-truetemp, Typer, and Rich.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_netatmo_truetemp_cli-1.0.2.tar.gz (71.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_netatmo_truetemp_cli-1.0.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file py_netatmo_truetemp_cli-1.0.2.tar.gz.

File metadata

  • Download URL: py_netatmo_truetemp_cli-1.0.2.tar.gz
  • Upload date:
  • Size: 71.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py_netatmo_truetemp_cli-1.0.2.tar.gz
Algorithm Hash digest
SHA256 80784c5df149f5cd052e28b7bdda6598f35fbed6f04f7801bf2d80d658620e08
MD5 1fc5114537d02119332419d0adb4cfa7
BLAKE2b-256 22eb0ed8e4c9eaf23cf0bd474a3649b56340a72449810d6f84eee63684f4dae8

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_netatmo_truetemp_cli-1.0.2.tar.gz:

Publisher: publish.yml on py-netatmo-unofficial/py-netatmo-truetemp-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_netatmo_truetemp_cli-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for py_netatmo_truetemp_cli-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 626799088453e4b5bcdad1713341c1f629e8da7edec4e9a291194917d90d79b4
MD5 27d87324bd650912e2158367273b74f8
BLAKE2b-256 297a6e72acac1a62ed208ad57f27416bad04552bdc95e96f357a2f575eec1235

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_netatmo_truetemp_cli-1.0.2-py3-none-any.whl:

Publisher: publish.yml on py-netatmo-unofficial/py-netatmo-truetemp-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page