PyViCare
Library to communicate with the Viessmann ViCare API.
What it is and what it does
PyViCare is a Python client library for the official Viessmann ViCare API, enabling programmatic control and monitoring of Viessmann heating systems. It abstracts the OAuth authentication flow and REST API calls, allowing developers to query device status, read temperatures, adjust heating programs, and manage circuits, burners, and compressors through a unified Python interface.
The library supports multiple heating device types (gas boilers, heat pumps, hybrid systems, pellet and oil boilers, fuel cells) and handles device-specific feature availability by raising exceptions for unsupported operations. It depends on authlib for OAuth, requests for HTTP communication, and deprecated for backward-compatibility warnings. Breaking changes across major versions (1.x, 2.x, 2.8.x, 2.27.x) reflect API redesigns and device model separation; users upgrading should review the changelog.
Use it for:
- Integrate Viessmann heating systems into home automation platforms like Home Assistant for remote monitoring and control.
- Build custom dashboards to display real-time temperature data, heating circuit status, and program schedules from multiple Viessmann devices.
- Automate heating schedules and setpoints based on external conditions (weather, occupancy, time of day) via programmatic API calls.
- Monitor burner and compressor activity for predictive maintenance or energy usage analysis.
- Fetch device capabilities at runtime to gracefully handle unsupported features across different Viessmann hardware models.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyViCare provides Python access to Viessmann heating devices through the official Viessmann API, supporting gas boilers, heat pumps, pellet boilers, oil boilers, fuel cells, and hybrid systems.
Yes. PyViCare is actively maintained, has low install friction, carries no known vulnerabilities, and is the official Python client for Viessmann devices. Install it if you need programmatic access to a Viessmann heating system; the main gotcha is the prerequisite OAuth setup with the Viessmann Developer Portal, which is documented but requires manual registration.
Install
pyvicare on PyPI
pip
pip install pyvicareuv
uv add pyvicarepoetry
poetry add pyvicareInstalling PyViCare
Before you install
Low install friction with a pure Python wheel and three lightweight runtime dependencies (authlib, deprecated, requests). Active maintenance with a release 31 days ago and ongoing repository activity.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must include a copy of the license and state significant changes.
Quickstart
pip install pyvicare
from PyViCare.PyViCare import PyViCare
vicare = PyViCare()
vicare.initWithCredentials(email, password, client_id, "token.save")
device = vicare.devices[0]
print(device.getModel())
Requires a Viessmann Developer Portal account and registered OAuth client (Client ID); Python 3.10 or later.
Verify before relying
- Whether all Viessmann device types are equally well-supported or if some have limited feature coverage.
- Current state of the Viessmann API rate limits and how frequently they are encountered in typical usage.
- Whether the library handles token refresh automatically or requires manual intervention.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — authlib, deprecated, requests |
| Maintenance | actively maintained — 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 84,587/month — #13,985 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyvicare-2.61.0-py3-none-any.whl
Keywords: viessmann, vicare, api
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pystiebeleltronProvides a Python API to communicate with…
permissive · top 15,000 on PyPI
millheaterPython library to control Mill heater devices…
permissive · top 15,000 on PyPI
pyhiveapiA Python library for controlling Hive smart…
permissive · top 15,000 on PyPI
pyfritzhomeProvides Python access to AVM Fritz!Box home…
permissive · top 15,000 on PyPI
myPyllantA Python library for interacting with the…
permissive · top 15,000 on PyPI
python-bsblanAsynchronous Python client for controlling and…
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
aioairzoneAn async Python library for controlling and…
permissive · top 15,000 on PyPI
pyotgwpyotgw is a Python library that communicates…
copyleft · top 15,000 on PyPI
homematicipA Python wrapper for the HomematicIP REST API…
copyleft · top 15,000 on PyPI