keba-keenergy-api


Namekeba-keenergy-api JSON
Version 2.3.1 PyPI version JSON
download
home_pageNone
SummaryA Python wrapper for the KEBA KeEnergy API.
upload_time2025-10-17 22:16:14
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords api component custom component custom integration keba keenergy hacs-component hacs-integration hacs-repository hacs hass home assistant home-assistant homeassistant integration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # KEBA KeEnergy API

A Python wrapper for the KEBA KeEnergy API.

![coverage-badge](https://raw.githubusercontent.com/superbox-dev/keba_keenergy_api/main/coverage-badge.svg)
[![CI](https://github.com/superbox-dev/KEBA-KeEnergy-API/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/superbox-dev/keba_keenergy_api/actions/workflows/ci.yml)
[![Version](https://img.shields.io/pypi/pyversions/keba-keenergy-api.svg)](https://pypi.python.org/pypi/keba-keenergy-api)

![Typing: strict](https://img.shields.io/badge/typing-strict-green.svg)
![Code style: black](https://img.shields.io/badge/code%20style-black-black)
![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)

## Getting started

```bash
pip install keba-keenergy-api
```

## Usage

```python
import asyncio
from typing import Any

from keba_keenergy_api import KebaKeEnergyAPI
from keba_keenergy_api.constants import HeatCircuit


async def main() -> None:
    # ssl=True and skip_ssl_verification=True is only required for devices with basic auth
    client = KebaKeEnergyAPI(host="YOUR-IP-OR-HOSTNAME", username="test", password="test", ssl=True, skip_ssl_verification=True)

    # Get current outdoor temperature
    outdoor_temperature: float = await client.system.get_outdoor_temperature()

    # Get heat circuit temperature from heat circuit 2
    heat_circuit_temperature: float = await client.heat_circuit.get_target_temperature(position=2)

    # Read multiple values
    data: dict[str, tuple[float | int | str]] = await client.read_data(
        request=[
            HeatCircuit.TARGET_TEMPERATURE,
            HeatCircuit.TARGET_TEMPERATURE_DAY,
        ],
    )

    # Enable "day" mode for heat circuit 2
    await client.heat_circuit.set_operating_mode(mode="day", position=2)

    # Write multiple values
    await client.write_data(
        request={
            HeatCircuit.TARGET_TEMPERATURE_DAY: (20, None, 5),  # Write heat circuit on position 1 and 3 
            HeatCircuit.TARGET_TEMPERATURE_NIGHT: (16,),  # Write night temperature on position 1
        },
    )


asyncio.run(main())
```

By default, the library creates a new connection to `KEBA KeEnergy API` with each coroutine. If you are calling a large
number of coroutines, an `aiohttp ClientSession()` can be used for connection pooling:

```python
import asyncio

from keba_keenergy_api import KebaKeEnergyAPI

from aiohttp import ClientSession

async def main() -> None:
    async with ClientSession() as session:
        client = KebaKeEnergyAPI(host="YOUR-IP-OR-HOSTNAME", session=session, ssl=True)
        ...

asyncio.run(main())
```

### API endpoints

| Endpoint                                        | Description                                  |
|-------------------------------------------------|----------------------------------------------|
| `.read_data(request, position, human_readable)` | Get multiple values with one http request.   |
| `.write_data(request)`                          | Write multiple values with one http request. |

#### System

| Endpoint                                           | Response       | Description                                                                                                        |
|----------------------------------------------------|----------------|--------------------------------------------------------------------------------------------------------------------|
| `.get_info()`                                      | `str`          | Get system information.                                                                                            |
| `.get_hmi_info()`                                  | `str`          | Get IMI information.                                                                                               |
| `.get_device_info()`                               | `str`          | Get device information.                                                                                            |
| `.get_number_of_hot_water_tanks()`                 | `int`          | Get number of hot water tanks.                                                                                     |
| `.get_number_of_heat_pumps()`                      | `int`          | Get number of heat pumps.                                                                                          |
| `.get_number_of_heating_circuits()`                | `int`          | Get number of heating circuits.                                                                                    |
| `.get_number_of_external_heat_sources()`           | `int`          | Get number of external heat sources.                                                                               |
| `.has_photovoltaics()`                             | `int` or `str` | Has photovoltacis.                                                                                                 |
| `.get_outdoor_temperature()`                       | `float`        | Get outdoor temperature.                                                                                           |
| `.get_operating_mode(position, human_readable)`    | `int` or `str` | Get operating mode as integer (0 is `STANDBY`, 1 is `SUMMER`, 2 is `AUTO_HEAT`, 3 is `AUTO_COOL` and 4 is `AUTO`). |
| `.set_operating_mode(0, position, human_readable)` | `int` or `str` | Set operating mode.                                                                                                |
| `.get_cpu_usage()`                                 | `float`        | Get CPU usage.                                                                                                     |
| `.get_webview_cpu_usage()`                         | `float`        | Get webview CPU usage.                                                                                             |
| `.get_webserver_cpu_usage()`                       | `float`        | Get webserver CPU usage.                                                                                           |
| `.get_control_cpu_usage()`                         | `float`        | Get control CPU usage.                                                                                             |
| `.get_ram_usage()`                                 | `int`          | Get RAM usage.                                                                                                     |
| `.get_free_ram()`                                  | `int`          | Get free RAM.                                                                                                      |

#### Hot water tank

| Endpoint                                           | Request/Response | Description                                                                           |
|----------------------------------------------------|------------------|---------------------------------------------------------------------------------------|
| `.get_current_temperature(position)`               | `float`          | Get current temperature.                                                              |
| `.get_operating_mode(position, human_readable)`    | `int` or `str`   | Get operating mode as integer (0 is `OFF`, 1 is `AUTO`, 2 is `DAY` and 3 is `NIGHT`). |
| `.set_operating_mode(0, position, human_readable)` | `int` or `str`   | Set operating mode.                                                                   |
| `.get_min_target_temperature(position)`            | `int`            | Get minimum possible target temperature.                                              |
| `.get_max_target_temperature(position)`            | `int`            | Get maximum possible target temperature.                                              |
| `.get_standby_temperature(position)`               | `float`          | Get standby temperature.                                                              |
| `.set_standby_temperature(20, position)`           | `float`          | Set standby temperature.                                                              |
| `.get_target_temperature(position)`                | `float`          | Get target temperature.                                                               |
| `.set_target_temperature(22, position)`            | `float`          | Set target temperature.                                                               |
| `.get_heat_request(position)`                      | `int` or `str`   | Get heat request.                                                                     |
| `.get_hot_water_flow(position)`                    | `int` or `str`   | Get hot water flow.                                                                   |
| `.get_fresh_water_module_temperature(position)`    | `float`          | Get fresh water module temperature.                                                   |

#### Heat pump

| Endpoint                                                    | Response       | Description                                                                   |
|-------------------------------------------------------------|----------------|-------------------------------------------------------------------------------|
| `.get_name(position)`                                       | `str`          | Get head pump model name.                                                     |
| `.get_state(position, human_readable)`                      | `int` or `str` | Get heat pump state as integer (0 is `STANDBY`, 1 is `FLOW` and 2 is `AUTO`). |
| `.get_operating_mode(position, human_readable)`             | `int` or `str` | Get operating mode as integer (0 is `OFF`, 1 is `ON`, 2 is `BACKUP`).         |
| `.set_operating_mode(0, position, human_readable)`          | `int` or `str` | Set operating mode.                                                           |
| `.get_compressor_use_night_speed(position, human_readable)` | `int` or `str` | Get compressor use night speed (0 is `OFF`, 1 is `ON`).                       |
| `.set_compressor_use_night_speed(0, position)`              | `int` or `str` | Set compressor use night speed.                                               |
| `.get_compressor_night_speed(position)`                     | `float`        | Get compressor night speed.                                                   |
| `.set_compressor_night_speed(0.5, position)`                | `float`        | Set compressor night speed.                                                   |
| `.get_max_compressor_night_speed(position)`                 | `float`        | Get maximum compressor night speed.                                           |
| `.get_min_compressor_night_speed(position)`                 | `float`        | Get minimum compressor night speed.                                           |
| `.get_circulation_pump(position)`                           | `float`        | Get circulation pump in percent.                                              |
| `.get_flow_temperature(position)`                           | `float`        | Get flow temperature.                                                         |
| `.get_return_flow_temperature(position)`                    | `float`        | Get return flow temperature.                                                  |
| `.get_source_input_temperature(position)`                   | `float`        | Get source input temperature.                                                 |
| `.get_source_output_temperature(position)`                  | `float`        | Get source output temperature.                                                |
| `.get_compressor_input_temperature(position)`               | `float`        | Get compressor input temperature.                                             |
| `.get_compressor_output_temperature(position)`              | `float`        | Get compressor output temperature.                                            |
| `.get_compressor(position)`                                 | `float`        | Get compressor in percent.                                                    |
| `.get_high_pressure(position)`                              | `float`        | Get high pressure.                                                            |
| `.get_low_pressure(position)`                               | `float`        | Get low pressure.                                                             |
| `.get_heat_request(position)`                               | `int` or `str` | Get heat request.                                                             |
| `.get_compressor_power(position)`                           | `float`        | Get compressor power.                                                         |
| `.get_heating_power(position)`                              | `float`        | Get heating power.                                                            |
| `.get_hot_water_power(position)`                            | `float`        | Get hot water power.                                                          |
| `.get_cop(position)`                                        | `float`        | Get coefficient of performance.                                               |
| `.get_heating_energy(position)`                             | `float`        | Get heating energy.                                                           |
| `.get_heating_energy_consumption(position)`                 | `float`        | Get heating energy consumption.                                               |
| `.get_heating_spf(position)`                                | `float`        | Get heating seasonal performance factor.                                      |
| `.get_cooling_energy(position)`                             | `float`        | Get cooling energy.                                                           |
| `.get_cooling_energy_consumption(position)`                 | `float`        | Get cooling energy consumption.                                               |
| `.get_cooling_spf(position)`                                | `float`        | Get cooling seasonal performance factor.                                      |
| `.get_hot_water_energy(position)`                           | `float`        | Get hot water energy.                                                         |
| `.get_hot_water_energy_consumption(position)`               | `float`        | Get hot water electrical energy.                                              |
| `.get_hot_water_spf(position)`                              | `float`        | Get hot water seasonal performance factor.                                    |
| `.get_total_thermal_energy(position)`                       | `float`        | Get total thermal energy.                                                     |
| `.get_total_energy_consumption(position)`                   | `float`        | Get total energy consumption.                                                 |
| `.get_total_spf(position)`                                  | `float`        | Get total seasonal performance factor.                                        |
| `.has_passive_cooling(position)`                            | `int` or `str` | Has passive cooling.                                                          |
| `.get_operating_time(position)`                             | `int`          | Get operating time.                                                           |
| `.get_max_runtime(position)`                                | `int`          | Get max runtime.                                                              |
| `.get_activation_counter(position)`                         | `int`          | Get activation counter.                                                       |

#### Heat circuit

| Endpoint                                        | Request/Response | Description                                         |
|-------------------------------------------------|------------------|-----------------------------------------------------|
| `.get_name(position)`                           | `str`            | Get heat circuit name.                              |
| `.has_room_temperature(position)`               | `int` or `str`   | Has room temperature.                               |
| `.get_room_temperature(position)`               | `float`          | Get room temperature.                               |
| `.has_room_humidity(position)`                  | `int` or `str`   | Has room humidity.                                  |
| `.get_room_humidity(position)`                  | `float`          | Get room humidity.                                  |
| `.get_dew_point(position)`                      | `float`          | Get dew point.                                      |
| `.get_flow_temperature_setpoint(position)`      | `float`          | Get flow temperature setpoint.                      |
| `.get_flow_temperature(position)`               | `float`          | Get flow temperature.                               |
| `.get_return_flow_temperature(position)`        | `float`          | Get return flow temperature.                        |
| `.get_target_temperature(position)`             | `float`          | Get target temperature.                             |
| `.get_target_temperature_day(position)`         | `float`          | Get taget temperature for the day.                  |
| `.set_target_temperature_day(20, position)`     | `float`          | Set taget temperature for the day.                  |
| `.get_heating_limit_day(position)`              | `float`          | Get the heating limit for the day.                  |
| `.get_target_temperature_night(position)`       | `float`          | Get target temperature for the night.               |
| `.set_target_temperature_night(16, position)`   | `float`          | Set target temperature for the night.               |
| `.get_heating_limit_night(position)`            | `float`          | Get the heating limit for the night.                |
| `.get_target_temperature_away(position)`        | `float`          | Get target temperature when away.                   |
| `.set_target_temperature_away(14, position)`    | `float`          | Set target temperature when away.                   |
| `.get_target_temperature_offset(position)`      | `float`          | Get target temperature offset.                      |
| `.set_target_temperature_offset(2, position)`   | `float`          | Set target temperature offset.                      |
| `.get_operating_mode(position, human_readable)` | `int` or `str`   | Get operating mode (0 is `OFF` and 3 is `HEAT_UP`). |
| `.set_operating_mode(3, position)`              | `int` or `str`   | Set operating mode.                                 |
| `.get_cool_request(position)`                   | `int` or `str`   | Get cool request.                                   |
| `.get_heat_request(position)`                   | `int` or `str`   | Get heat request.                                   |
| `.get_external_cool_request(position)`          | `int` or `str`   | Get external cool request.                          |
| `.get_external_heat_request(position)`          | `int` or `str`   | Get external heat request.                          |

#### External heat source

| Endpoint                                           | Request/Response | Description                                               |
|----------------------------------------------------|------------------|-----------------------------------------------------------|
| `.get_operating_mode(position, human_readable)`    | `int` or `str`   | Get operating mode as integer (0 is `OFF` and 1 is `ON`). |
| `.set_operating_mode(0, position, human_readable)` | `int` or `str`   | Set operating mode.                                       |
| `.get_target_temperature(position)`                | `float`          | Get target temperature.                                   |
| `.get_heat_request(position)`                      | `int` or `str`   | Get heat request.                                         |
| `.get_operating_time(position)`                    | `int`            | Get operating time.                                       |
| `.get_max_runtime(position)`                       | `int`            | Get max runtime.                                          |
| `.get_activation_counter(position)`                | `int`            | Get activation counter.                                   |

#### Photovoltaic

| Endpoint                 | Request/Response | Description       |
|--------------------------|------------------|-------------------|
| `.get_excess_power()`    | `float`          | Get excess power. |
| `.get_daily_energy()`    | `float`          | Get daily energy. |
| `.get_total_energy()`    | `float`          | Get total energy. |

## Changelog

The changelog lives in the [CHANGELOG.md](CHANGELOG.md) document. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## Contributing

We're happy about your contributions to the project!

You can get started by reading the [CONTRIBUTING.md](CONTRIBUTING.md).

## Donation

We put a lot of time into this project. If you like it, you can support us with a donation.

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/F2F0KXO6D)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "keba-keenergy-api",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Michael Hacker <mh@superbox.one>",
    "keywords": "api, component, custom component, custom integration, keba, keenergy, hacs-component, hacs-integration, hacs-repository, hacs, hass, home assistant, home-assistant, homeassistant, integration",
    "author": null,
    "author_email": "Michael Hacker <mh@superbox.one>",
    "download_url": "https://files.pythonhosted.org/packages/e1/8a/ab880bfacdef7d3d558aaaf20b55e8a4ad9dcfed54d06a3efbe3a64b2349/keba_keenergy_api-2.3.1.tar.gz",
    "platform": null,
    "description": "# KEBA KeEnergy API\n\nA Python wrapper for the KEBA KeEnergy API.\n\n![coverage-badge](https://raw.githubusercontent.com/superbox-dev/keba_keenergy_api/main/coverage-badge.svg)\n[![CI](https://github.com/superbox-dev/KEBA-KeEnergy-API/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/superbox-dev/keba_keenergy_api/actions/workflows/ci.yml)\n[![Version](https://img.shields.io/pypi/pyversions/keba-keenergy-api.svg)](https://pypi.python.org/pypi/keba-keenergy-api)\n\n![Typing: strict](https://img.shields.io/badge/typing-strict-green.svg)\n![Code style: black](https://img.shields.io/badge/code%20style-black-black)\n![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)\n\n## Getting started\n\n```bash\npip install keba-keenergy-api\n```\n\n## Usage\n\n```python\nimport asyncio\nfrom typing import Any\n\nfrom keba_keenergy_api import KebaKeEnergyAPI\nfrom keba_keenergy_api.constants import HeatCircuit\n\n\nasync def main() -> None:\n    # ssl=True and skip_ssl_verification=True is only required for devices with basic auth\n    client = KebaKeEnergyAPI(host=\"YOUR-IP-OR-HOSTNAME\", username=\"test\", password=\"test\", ssl=True, skip_ssl_verification=True)\n\n    # Get current outdoor temperature\n    outdoor_temperature: float = await client.system.get_outdoor_temperature()\n\n    # Get heat circuit temperature from heat circuit 2\n    heat_circuit_temperature: float = await client.heat_circuit.get_target_temperature(position=2)\n\n    # Read multiple values\n    data: dict[str, tuple[float | int | str]] = await client.read_data(\n        request=[\n            HeatCircuit.TARGET_TEMPERATURE,\n            HeatCircuit.TARGET_TEMPERATURE_DAY,\n        ],\n    )\n\n    # Enable \"day\" mode for heat circuit 2\n    await client.heat_circuit.set_operating_mode(mode=\"day\", position=2)\n\n    # Write multiple values\n    await client.write_data(\n        request={\n            HeatCircuit.TARGET_TEMPERATURE_DAY: (20, None, 5),  # Write heat circuit on position 1 and 3 \n            HeatCircuit.TARGET_TEMPERATURE_NIGHT: (16,),  # Write night temperature on position 1\n        },\n    )\n\n\nasyncio.run(main())\n```\n\nBy default, the library creates a new connection to `KEBA KeEnergy API` with each coroutine. If you are calling a large\nnumber of coroutines, an `aiohttp ClientSession()` can be used for connection pooling:\n\n```python\nimport asyncio\n\nfrom keba_keenergy_api import KebaKeEnergyAPI\n\nfrom aiohttp import ClientSession\n\nasync def main() -> None:\n    async with ClientSession() as session:\n        client = KebaKeEnergyAPI(host=\"YOUR-IP-OR-HOSTNAME\", session=session, ssl=True)\n        ...\n\nasyncio.run(main())\n```\n\n### API endpoints\n\n| Endpoint                                        | Description                                  |\n|-------------------------------------------------|----------------------------------------------|\n| `.read_data(request, position, human_readable)` | Get multiple values with one http request.   |\n| `.write_data(request)`                          | Write multiple values with one http request. |\n\n#### System\n\n| Endpoint                                           | Response       | Description                                                                                                        |\n|----------------------------------------------------|----------------|--------------------------------------------------------------------------------------------------------------------|\n| `.get_info()`                                      | `str`          | Get system information.                                                                                            |\n| `.get_hmi_info()`                                  | `str`          | Get IMI information.                                                                                               |\n| `.get_device_info()`                               | `str`          | Get device information.                                                                                            |\n| `.get_number_of_hot_water_tanks()`                 | `int`          | Get number of hot water tanks.                                                                                     |\n| `.get_number_of_heat_pumps()`                      | `int`          | Get number of heat pumps.                                                                                          |\n| `.get_number_of_heating_circuits()`                | `int`          | Get number of heating circuits.                                                                                    |\n| `.get_number_of_external_heat_sources()`           | `int`          | Get number of external heat sources.                                                                               |\n| `.has_photovoltaics()`                             | `int` or `str` | Has photovoltacis.                                                                                                 |\n| `.get_outdoor_temperature()`                       | `float`        | Get outdoor temperature.                                                                                           |\n| `.get_operating_mode(position, human_readable)`    | `int` or `str` | Get operating mode as integer (0 is `STANDBY`, 1 is `SUMMER`, 2 is `AUTO_HEAT`, 3 is `AUTO_COOL` and 4 is `AUTO`). |\n| `.set_operating_mode(0, position, human_readable)` | `int` or `str` | Set operating mode.                                                                                                |\n| `.get_cpu_usage()`                                 | `float`        | Get CPU usage.                                                                                                     |\n| `.get_webview_cpu_usage()`                         | `float`        | Get webview CPU usage.                                                                                             |\n| `.get_webserver_cpu_usage()`                       | `float`        | Get webserver CPU usage.                                                                                           |\n| `.get_control_cpu_usage()`                         | `float`        | Get control CPU usage.                                                                                             |\n| `.get_ram_usage()`                                 | `int`          | Get RAM usage.                                                                                                     |\n| `.get_free_ram()`                                  | `int`          | Get free RAM.                                                                                                      |\n\n#### Hot water tank\n\n| Endpoint                                           | Request/Response | Description                                                                           |\n|----------------------------------------------------|------------------|---------------------------------------------------------------------------------------|\n| `.get_current_temperature(position)`               | `float`          | Get current temperature.                                                              |\n| `.get_operating_mode(position, human_readable)`    | `int` or `str`   | Get operating mode as integer (0 is `OFF`, 1 is `AUTO`, 2 is `DAY` and 3 is `NIGHT`). |\n| `.set_operating_mode(0, position, human_readable)` | `int` or `str`   | Set operating mode.                                                                   |\n| `.get_min_target_temperature(position)`            | `int`            | Get minimum possible target temperature.                                              |\n| `.get_max_target_temperature(position)`            | `int`            | Get maximum possible target temperature.                                              |\n| `.get_standby_temperature(position)`               | `float`          | Get standby temperature.                                                              |\n| `.set_standby_temperature(20, position)`           | `float`          | Set standby temperature.                                                              |\n| `.get_target_temperature(position)`                | `float`          | Get target temperature.                                                               |\n| `.set_target_temperature(22, position)`            | `float`          | Set target temperature.                                                               |\n| `.get_heat_request(position)`                      | `int` or `str`   | Get heat request.                                                                     |\n| `.get_hot_water_flow(position)`                    | `int` or `str`   | Get hot water flow.                                                                   |\n| `.get_fresh_water_module_temperature(position)`    | `float`          | Get fresh water module temperature.                                                   |\n\n#### Heat pump\n\n| Endpoint                                                    | Response       | Description                                                                   |\n|-------------------------------------------------------------|----------------|-------------------------------------------------------------------------------|\n| `.get_name(position)`                                       | `str`          | Get head pump model name.                                                     |\n| `.get_state(position, human_readable)`                      | `int` or `str` | Get heat pump state as integer (0 is `STANDBY`, 1 is `FLOW` and 2 is `AUTO`). |\n| `.get_operating_mode(position, human_readable)`             | `int` or `str` | Get operating mode as integer (0 is `OFF`, 1 is `ON`, 2 is `BACKUP`).         |\n| `.set_operating_mode(0, position, human_readable)`          | `int` or `str` | Set operating mode.                                                           |\n| `.get_compressor_use_night_speed(position, human_readable)` | `int` or `str` | Get compressor use night speed (0 is `OFF`, 1 is `ON`).                       |\n| `.set_compressor_use_night_speed(0, position)`              | `int` or `str` | Set compressor use night speed.                                               |\n| `.get_compressor_night_speed(position)`                     | `float`        | Get compressor night speed.                                                   |\n| `.set_compressor_night_speed(0.5, position)`                | `float`        | Set compressor night speed.                                                   |\n| `.get_max_compressor_night_speed(position)`                 | `float`        | Get maximum compressor night speed.                                           |\n| `.get_min_compressor_night_speed(position)`                 | `float`        | Get minimum compressor night speed.                                           |\n| `.get_circulation_pump(position)`                           | `float`        | Get circulation pump in percent.                                              |\n| `.get_flow_temperature(position)`                           | `float`        | Get flow temperature.                                                         |\n| `.get_return_flow_temperature(position)`                    | `float`        | Get return flow temperature.                                                  |\n| `.get_source_input_temperature(position)`                   | `float`        | Get source input temperature.                                                 |\n| `.get_source_output_temperature(position)`                  | `float`        | Get source output temperature.                                                |\n| `.get_compressor_input_temperature(position)`               | `float`        | Get compressor input temperature.                                             |\n| `.get_compressor_output_temperature(position)`              | `float`        | Get compressor output temperature.                                            |\n| `.get_compressor(position)`                                 | `float`        | Get compressor in percent.                                                    |\n| `.get_high_pressure(position)`                              | `float`        | Get high pressure.                                                            |\n| `.get_low_pressure(position)`                               | `float`        | Get low pressure.                                                             |\n| `.get_heat_request(position)`                               | `int` or `str` | Get heat request.                                                             |\n| `.get_compressor_power(position)`                           | `float`        | Get compressor power.                                                         |\n| `.get_heating_power(position)`                              | `float`        | Get heating power.                                                            |\n| `.get_hot_water_power(position)`                            | `float`        | Get hot water power.                                                          |\n| `.get_cop(position)`                                        | `float`        | Get coefficient of performance.                                               |\n| `.get_heating_energy(position)`                             | `float`        | Get heating energy.                                                           |\n| `.get_heating_energy_consumption(position)`                 | `float`        | Get heating energy consumption.                                               |\n| `.get_heating_spf(position)`                                | `float`        | Get heating seasonal performance factor.                                      |\n| `.get_cooling_energy(position)`                             | `float`        | Get cooling energy.                                                           |\n| `.get_cooling_energy_consumption(position)`                 | `float`        | Get cooling energy consumption.                                               |\n| `.get_cooling_spf(position)`                                | `float`        | Get cooling seasonal performance factor.                                      |\n| `.get_hot_water_energy(position)`                           | `float`        | Get hot water energy.                                                         |\n| `.get_hot_water_energy_consumption(position)`               | `float`        | Get hot water electrical energy.                                              |\n| `.get_hot_water_spf(position)`                              | `float`        | Get hot water seasonal performance factor.                                    |\n| `.get_total_thermal_energy(position)`                       | `float`        | Get total thermal energy.                                                     |\n| `.get_total_energy_consumption(position)`                   | `float`        | Get total energy consumption.                                                 |\n| `.get_total_spf(position)`                                  | `float`        | Get total seasonal performance factor.                                        |\n| `.has_passive_cooling(position)`                            | `int` or `str` | Has passive cooling.                                                          |\n| `.get_operating_time(position)`                             | `int`          | Get operating time.                                                           |\n| `.get_max_runtime(position)`                                | `int`          | Get max runtime.                                                              |\n| `.get_activation_counter(position)`                         | `int`          | Get activation counter.                                                       |\n\n#### Heat circuit\n\n| Endpoint                                        | Request/Response | Description                                         |\n|-------------------------------------------------|------------------|-----------------------------------------------------|\n| `.get_name(position)`                           | `str`            | Get heat circuit name.                              |\n| `.has_room_temperature(position)`               | `int` or `str`   | Has room temperature.                               |\n| `.get_room_temperature(position)`               | `float`          | Get room temperature.                               |\n| `.has_room_humidity(position)`                  | `int` or `str`   | Has room humidity.                                  |\n| `.get_room_humidity(position)`                  | `float`          | Get room humidity.                                  |\n| `.get_dew_point(position)`                      | `float`          | Get dew point.                                      |\n| `.get_flow_temperature_setpoint(position)`      | `float`          | Get flow temperature setpoint.                      |\n| `.get_flow_temperature(position)`               | `float`          | Get flow temperature.                               |\n| `.get_return_flow_temperature(position)`        | `float`          | Get return flow temperature.                        |\n| `.get_target_temperature(position)`             | `float`          | Get target temperature.                             |\n| `.get_target_temperature_day(position)`         | `float`          | Get taget temperature for the day.                  |\n| `.set_target_temperature_day(20, position)`     | `float`          | Set taget temperature for the day.                  |\n| `.get_heating_limit_day(position)`              | `float`          | Get the heating limit for the day.                  |\n| `.get_target_temperature_night(position)`       | `float`          | Get target temperature for the night.               |\n| `.set_target_temperature_night(16, position)`   | `float`          | Set target temperature for the night.               |\n| `.get_heating_limit_night(position)`            | `float`          | Get the heating limit for the night.                |\n| `.get_target_temperature_away(position)`        | `float`          | Get target temperature when away.                   |\n| `.set_target_temperature_away(14, position)`    | `float`          | Set target temperature when away.                   |\n| `.get_target_temperature_offset(position)`      | `float`          | Get target temperature offset.                      |\n| `.set_target_temperature_offset(2, position)`   | `float`          | Set target temperature offset.                      |\n| `.get_operating_mode(position, human_readable)` | `int` or `str`   | Get operating mode (0 is `OFF` and 3 is `HEAT_UP`). |\n| `.set_operating_mode(3, position)`              | `int` or `str`   | Set operating mode.                                 |\n| `.get_cool_request(position)`                   | `int` or `str`   | Get cool request.                                   |\n| `.get_heat_request(position)`                   | `int` or `str`   | Get heat request.                                   |\n| `.get_external_cool_request(position)`          | `int` or `str`   | Get external cool request.                          |\n| `.get_external_heat_request(position)`          | `int` or `str`   | Get external heat request.                          |\n\n#### External heat source\n\n| Endpoint                                           | Request/Response | Description                                               |\n|----------------------------------------------------|------------------|-----------------------------------------------------------|\n| `.get_operating_mode(position, human_readable)`    | `int` or `str`   | Get operating mode as integer (0 is `OFF` and 1 is `ON`). |\n| `.set_operating_mode(0, position, human_readable)` | `int` or `str`   | Set operating mode.                                       |\n| `.get_target_temperature(position)`                | `float`          | Get target temperature.                                   |\n| `.get_heat_request(position)`                      | `int` or `str`   | Get heat request.                                         |\n| `.get_operating_time(position)`                    | `int`            | Get operating time.                                       |\n| `.get_max_runtime(position)`                       | `int`            | Get max runtime.                                          |\n| `.get_activation_counter(position)`                | `int`            | Get activation counter.                                   |\n\n#### Photovoltaic\n\n| Endpoint                 | Request/Response | Description       |\n|--------------------------|------------------|-------------------|\n| `.get_excess_power()`    | `float`          | Get excess power. |\n| `.get_daily_energy()`    | `float`          | Get daily energy. |\n| `.get_total_energy()`    | `float`          | Get total energy. |\n\n## Changelog\n\nThe changelog lives in the [CHANGELOG.md](CHANGELOG.md) document. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).\n\n## Contributing\n\nWe're happy about your contributions to the project!\n\nYou can get started by reading the [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Donation\n\nWe put a lot of time into this project. If you like it, you can support us with a donation.\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/F2F0KXO6D)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Python wrapper for the KEBA KeEnergy API.",
    "version": "2.3.1",
    "project_urls": {
        "Issues": "https://github.com/superbox-dev/keba_keenergy_api/issues",
        "Repository": "https://github.com/superbox-dev/keba_keenergy_api"
    },
    "split_keywords": [
        "api",
        " component",
        " custom component",
        " custom integration",
        " keba",
        " keenergy",
        " hacs-component",
        " hacs-integration",
        " hacs-repository",
        " hacs",
        " hass",
        " home assistant",
        " home-assistant",
        " homeassistant",
        " integration"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fc45beb783b4791202722477985bb2bdca1f4ea350bdd28a3a51878619d2bb69",
                "md5": "938b5cd9f6472089886b54aa09d57b24",
                "sha256": "39ea5aa84e3476a96fa86a3d4597a4774de735e5a09616ccd8bb9397186fc218"
            },
            "downloads": -1,
            "filename": "keba_keenergy_api-2.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "938b5cd9f6472089886b54aa09d57b24",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 20999,
            "upload_time": "2025-10-17T22:16:13",
            "upload_time_iso_8601": "2025-10-17T22:16:13.581969Z",
            "url": "https://files.pythonhosted.org/packages/fc/45/beb783b4791202722477985bb2bdca1f4ea350bdd28a3a51878619d2bb69/keba_keenergy_api-2.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e18aab880bfacdef7d3d558aaaf20b55e8a4ad9dcfed54d06a3efbe3a64b2349",
                "md5": "ab525d9cd617d252b319550b70fc29ad",
                "sha256": "65a558ddb565e92634ef71eedb7169a1c501f7699249f2d26dc8232d0525d33a"
            },
            "downloads": -1,
            "filename": "keba_keenergy_api-2.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ab525d9cd617d252b319550b70fc29ad",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 159849,
            "upload_time": "2025-10-17T22:16:14",
            "upload_time_iso_8601": "2025-10-17T22:16:14.543311Z",
            "url": "https://files.pythonhosted.org/packages/e1/8a/ab880bfacdef7d3d558aaaf20b55e8a4ad9dcfed54d06a3efbe3a64b2349/keba_keenergy_api-2.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-17 22:16:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "superbox-dev",
    "github_project": "keba_keenergy_api",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "keba-keenergy-api"
}
        
Elapsed time: 2.50593s