Skip to main content

A Python API for Thermia heat pumps using https://online.thermia.se

Project description

Thermia Online API

A Python API for Thermia heat pumps using https://online.thermia.se

Confirmed Thermia models that API supports:

It is hard for me to keep track of all models that I have added feature support for in the past, so, to understand if your model is supported, please try running the example file and see if it works. If it does not, please submit a bug report.

Regarding unsupported models

I am willing to do my best to support them, but as there turns out to be many different Thermia models and configurations, it is hard for me to implement all functionalities and test them thoroughly. Thus, I have created a debug() function that runs when example.py is executed and creates a debug.txt file which has data about your heat pump and all its supported features. If you want to submit a bug or feature request, please include the debug file as it will make my development much easier.

Note: I have done my best to remove the sensitive parts from debugging, but I do not guarantee that no sensitive data is printed to the debug file. I have no intention of using it maliciously, but if you post the file publicly on GitHub, please make sure you remove anything you feel might be suspicious of sharing.

Supported APIs:

How to use api:

See example.py file for examples.

To execute the example file, first run pip install -r requirements.txt to install the required dependencies, then run python3 example.py to execute the example file. You will be prompted to enter your username and password, and then the example file will run. If do not want to manually enter your credentials every time, you can edit the credentials.py file and add your credentials there.

Available functions in Thermia class:

Function Description
fetch_heat_pumps() Fetches all heat pumps from Thermia Online API and their data
update_data() Updates all heat pump data

Available properties within ThermiaHeatPump class:

Property Description
name Name of the Heat Pump
id Unique ID of the Heat Pump Thermia generates
is_online Boolean value indicating if the Heat Pump is online or not
model Model of the Heat Pump
last_online DateTime string indicating the last time the Heat Pump was online
has_indoor_temperature_sensor Boolean value indicating if the Heat Pump has an indoor temperature sensor
indoor_temperature Indoor temperature in Celsius, if has_indoor_temperature_sensor is False, this value is the same as heat_temperature
is_outdoor_temp_sensor_functioning Boolean value indicating if the Heat Pump has an outdoor temperature sensor
outdoor_temperature Outdoor temperature in Celsius
is_hot_water_active Boolean value indicating if the Heat Pump is heating water
hot_water_temperature Hot water temperature in Celsius
heat_temperature Heat Pump heating target temperature in Celsius
heat_min_temperature_value Minimum temperature value possible for Heat Pump to set
heat_max_temperature_value Maximum temperature value possible for Heat Pump to set
heat_temperature_step Step value for temperature setting
--- ---
Other temperatures
supply_line_temperature Supply line temperature in Celsius
desired_supply_line_temperature Desired supply line temperature in Celsius
return_line_temperature Return line temperature in Celsius
brine_out_temperature Brine out temperature in Celsius
brine_in_temperature Brine in temperature in Celsius
cooling_tank_temperature Cooling tank temperature in Celsius
cooling_supply_line_temperature Cooling supply line temperature in Celsius
--- ---
Operational status
operational_status Operational status of the Heat Pump or list of operational statuses (if multiple)
available_operational_statuses List of available operational statuses
available_operational_statuses_map Dictionary mapping operational status names to their values
operational_status_auxiliary_heater_3kw Auxiliary heater status for 3kw (returns None if unavailable)
operational_status_auxiliary_heater_6kw Auxiliary heater status for 6kw (returns None if unavailable)
operational_status_auxiliary_heater_9kw Auxiliary heater status for 9kw (returns None if unavailable)
operational_status_auxiliary_heater_12kw Auxiliary heater status for 12kw (returns None if unavailable)
operational_status_auxiliary_heater_15kw Auxiliary heater status for 15kw (returns None if unavailable)
operational_status_compressor_status Compressor status
operational_status_brine_pump_status Brine pump status
operational_status_radiator_pump_status Radiator pump status
operational_status_cooling_status Cooling status
operational_status_hot_water_status Hot water status
operational_status_heating_status Heating status
operational_status_integral Integral
operational_status_pid PID
--- ---
Operational Times
compressor_operational_time Compressor operational time in hours
hot_water_operational_time Hot water operational time in hours
auxiliary_heater_1_operational_time Auxiliary heater 1 operational time in hours
auxiliary_heater_2_operational_time Auxiliary heater 2 operational time in hours
auxiliary_heater_3_operational_time Auxiliary heater 3 operational time in hours
--- ---
Alarms data
active_alarm_count Number of active alarms on the Heat Pump
active_alarms List of titles of active alarms on the Heat Pump
--- ---
Operation Mode data
operation_mode Current operation mode of the Heat Pump
available_operation_modes List of available operation modes for the Heat Pump
available_operation_mode_map Dictionary mapping operation mode names to their values
is_operation_mode_read_only Boolean value indicating if the Heat Pump operation mode is read-only
--- ---
Hot Water data
hot_water_switch_state Int value indicating the Heat Pump hot water switch state (0 or 1) or None if not available
hot_water_boost_switch_state Int value indicating the Heat Pump hot water boost switch state (0 or 1) or None if not available
--- ---
Historical data
historical_data_registers List of available registers to use for historical data fetching

Available functions within ThermiaHeatPump class:

Function Description
update_data() Refetch all data from Thermia for Heat Pump
--- ---
get_all_available_register_groups() Return a list of all available register groups for the heat pump
get_available_registers_for_group(register_group) Return a list of all available registers for specified register group
get_register_data_by_register_group_and_name(register_group, register_name) Return data for specified register group and name
set_register_data_by_register_group_and_name(register_group, register_name, value) Set register value for specified register group and name
--- ---
Change heat pump state
set_temperature() Set the target temperature for the Heat Pump
set_operation_mode() Set the operation mode for the Heat Pump
set_hot_water_switch_state() Set the hot water switch state to 0 (off) or 1 (on) for the Heat Pump
set_hot_water_boost_switch_state() Set the hot water boost switch state to 0 (off) or 1 (on) for the Heat Pump
--- ---
Fetch historical data
get_historical_data_for_register() Fetch historical data by using register name from historical_data_registers together with start_time and end_time of the data in Python datatime format. Returns list of dictionaries which contains data in format { "time": datetime, "value": int }
--- ---
Fetch debug data
debug() Fetch debug data from Thermia API and save it to debug.txt file

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

ThermiaOnlineAPI-3.11.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

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

ThermiaOnlineAPI-3.11-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file ThermiaOnlineAPI-3.11.tar.gz.

File metadata

  • Download URL: ThermiaOnlineAPI-3.11.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for ThermiaOnlineAPI-3.11.tar.gz
Algorithm Hash digest
SHA256 d3353feb293c86a4de5765d40201e503df6cfcb71d5c4f03a8ac7fb40e676440
MD5 a88ec7ef9cac1b53ea485b7e932dc570
BLAKE2b-256 640a3815122a60031d6855fdf2dece7fab99f4935effa31139d83cdc148cccaa

See more details on using hashes here.

File details

Details for the file ThermiaOnlineAPI-3.11-py3-none-any.whl.

File metadata

File hashes

Hashes for ThermiaOnlineAPI-3.11-py3-none-any.whl
Algorithm Hash digest
SHA256 bacc1196d3f3cf8ffd9cb42444708dc265bdf8e74710fabd7fb13b6687efd62a
MD5 3d75bcae67248dba3c18a0a21fafe8cf
BLAKE2b-256 92d2dc42896c6e908a13e95ef74b802e6b616e05109dff22000e719330a358a1

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