Skip to main content

Agent and CLI for Sensibo smart-AC control at home: discover devices, collect every sensor reading locally (temperature, humidity, air quality), and set up automated conditions that drive the AC (mode, target, fan, schedules, thresholds). Unofficial community tool; Sensibo is a trademark of Sensibo Ltd.

Project description

sensibo-cli

Agent and CLI for Sensibo smart-AC control at home: discover devices, collect every sensor reading into a local store you own, and set up automated conditions that drive the AC.

Unofficial community tool. Sensibo is a trademark of Sensibo Ltd. This project is not affiliated with, endorsed by, or supported by them.

Status: scaffold. The CLI today ships only its introspection verbs (whoami, learn, explain, overview, doctor). None of the AC control, collection, or automation features exist yet. See the roadmap.

What it will do

  1. Control the AC — power, mode, target temperature, fan speed, swing; per device or across the house.
  2. Collect every sensor reading locally — poll on a cadence and persist to a local time-series store you own and can query offline, retained past the window Sensibo's own cloud keeps.
  3. Automate conditions that drive the AC — thresholds, schedules, occupancy, and the cross-room logic Sensibo's own engine cannot express.

"Locally" — read this before you assume

Sensibo devices are cloud-only. There is no LAN-local API: no local REST endpoint, no MQTT, no documented on-network protocol on stock firmware. We verified this rather than assuming it — Home Assistant's Sensibo integration is classified iot_class: cloud_polling, the de-facto Python client pysensibo contains no local code path, and Sensibo's official OpenAPI spec declares exactly one server (home.sensibo.com).

So this tool polls Sensibo's cloud API and persists the readings on your machine. "Locally" means the data lands and lives with you — a store you own, queryable offline, retained on your terms — not that the transport avoids the internet. We would prefer a local protocol. It does not exist.

That constraint is also the strongest argument for the local store: because there is no device to fall back on, once a reading ages out of Sensibo's cloud history it is gone unless you kept it.

(The one genuine exception is Apple HomeKit on Sensibo Air Pro, which really is a LAN protocol — but it exposes only mode and target temperature, with no fan, swing, air-quality, or history, and it pairs exclusively to one controller. It is not a viable basis for this tool. Details in docs/sensibo-api.md.)

Quickstart

uv sync
uv run pytest -n auto           # run the test suite
uv run sensibo whoami           # identity from culture.yaml
uv run sensibo learn            # self-teaching prompt (add --json)
uv run sensibo doctor           # agent-identity invariants

The PyPI dist is sensibo-cli, the import package is sensibo, and the console command is sensibo.

When the API-backed verbs land they will read the key from the environment:

export SENSIBO_API_KEY=...      # from https://home.sensibo.com/me/api

CLI

Verb What it does
whoami Report this agent's nick, version, backend, and model from culture.yaml.
learn Print a structured self-teaching prompt.
explain <path> Markdown docs for any noun/verb path.
overview Read-only descriptive snapshot of the agent.
doctor Check the agent-identity invariants.
cli overview Describe the CLI surface itself.

Every command supports --json. Results go to stdout, errors and diagnostics to stderr — never mixed. Exit codes: 0 success, 1 user error, 2 environment error, 3+ reserved.

Every write verb will be dry-run by default, with --apply to commit. This tool turns on air conditioners in someone's home; a command that acts by accident is a bug.

Docs

License

Apache 2.0 — see LICENSE.

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

sensibo_cli-0.5.0.tar.gz (143.9 kB view details)

Uploaded Source

Built Distribution

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

sensibo_cli-0.5.0-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file sensibo_cli-0.5.0.tar.gz.

File metadata

  • Download URL: sensibo_cli-0.5.0.tar.gz
  • Upload date:
  • Size: 143.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sensibo_cli-0.5.0.tar.gz
Algorithm Hash digest
SHA256 f132d2a6d627dba4a6d4b03a8b14344b78a6a58d5814a92c42cb07913dba62c2
MD5 419bfa54581c992a82fa346672e0945f
BLAKE2b-256 1597324ce5c2e0da3564aaa17a6703fa89bd3d4805e267f44ad986c04cfb2691

See more details on using hashes here.

File details

Details for the file sensibo_cli-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: sensibo_cli-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sensibo_cli-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c342be87579fe53801b427042027306a9da746f62b33bb4c1c960f0e4f2b88b1
MD5 17014b011cf52c9c34be42085ff8da68
BLAKE2b-256 2b81af51062e80578bad0a9abee64b453dc375c15dd2f71fe2124d23688bb5d0

See more details on using hashes here.

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