Skip to main content

ovum-mira-modbus

A modern Python device library for communicating with Ovum Mira heat pump systems over Modbus TCP.

This is not an official library and not sponsored by Ovum.


Overview

Ovum Mira heat pump systems expose Modbus communication across multiple Modbus units:

  • System Unit (110, "HSM"): Heating manager registers:
    • System outdoor temperature
    • Heating Circuit 1 (HK1): target setpoint, actual flow temperature, room temperature
    • Hot Water (DHW / Warmwasser): reservoir target setpoint, top actual temperature, bottom actual temperature
    • Buffer Storage (Pufferspeicher): target setpoint, actual buffer temperature
  • Heat Pump Unit (111-118, "WPM"): Heat pump specific registers:
    • Operating status (HEATING, HOT_WATER, COOLING, DEFROSTING, etc.)
    • Electrical power consumption (kW)
    • Thermal power production (kW)
    • Heat pump demand percentage (%)

This library models two units, the HSM and configurable WPM as typed component groups and coordinates atomic polling and setpoint writing.


Installation

pip install ovum-mira-modbus

To include the CLI query tool and actual Modbus backend:

pip install "ovum-mira-modbus[cli]"

Quickstart

Example usage

from modbus_connection import (
    ModbusConnection,
    ModbusError,
    ModbusTcpParams,
)

from ovum_mira_modbus import (
    OvumMira,
    OvumLicense,
)


async def main():
    connection = PymodbusConnection(ModbusTcpParams(host="192.168.1.100", port=502))
    await connection.connect()

    # specify the license level (default: 1) according to your local device
    device = OvumMira(license=OvumLicense(2), wpm_unit=111)
    await device.async_update()

    print(f"Outdoor Temperature: {device.hsm.outdoor_temperature} °C")
    print(f"Heat Pump Status: {device.heat_pump.status.name}")
    print(f"Power Consumption: {device.heat_pump.power_consumption} kW")
    print(f"Heat Production: {device.heat_pump.power_production} kW")
    print(
        f"HK1 Flow / Target: {device.heating1.temperature} / {device.heating1.target_temperature} °C"
    )
    print(
        f"DHW Top / Target: {device.hot_water.reservoir_temperature_top} / {device.hot_water.target_temperature} °C"
    )

    # set hot water target temperature to 60 °C
    await device.hot_water.async_write_datapoint("temperature_target", 60)
    # set heating circuit photovoltaic target temperature to 25.5 °C
    await device.heating1.async_write_datapoint("room_temperature_target", 25.5)

CLI Query Tool

A command-line script is provided to inspect an Ovum system:

# Query via Modbus TCP
bin/query.py IP_OR_HOST

Architecture

  • OvumMira: Top-level device class coordinating communication across both Modbus units.
  • subsystems.Hsm: Hydraulic unit (indoor system)
  • subsystems.HeatingCircuit: Target setpoint, actual flow temperature, and measured room temperature.
  • subsystems.HotWater: Tank setpoint, top sensor, and bottom sensor.
  • subsystems.BufferStorage: Buffer setpoint and actual temperature.
  • subsystems.HeatPump: Heat pump status enum, power consumption, heat production, and demand.

AI

This repository was initially generated pointing AI at the blog post describing new features in Home Assistant's Modbus implementation. The results were full of hallucinations and needed a lot of work.

Most structuring and implementation hints were taken from https://github.com/Tom-Bom-badil/trovis-modbus/.

Further development, adaptations, fixes, etc. were done without any AI.

License

Apache License 2.0. See LICENSE for details.

Release files for ovum-mira-modbus 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovum-mira-modbus 0.0.1
File Size Uploaded
ovum_mira_modbus-0.0.1.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovum-mira-modbus 0.0.1
File Interpreter ABI Platform
ovum_mira_modbus-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 38.4 kB

Release files / ovum_mira_modbus-0.0.1.tar.gz

Download URL ovum_mira_modbus-0.0.1.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b8a57e8b69cc7a5887c0b7788b731af5367cca7be00b2d3c7695f4113ecdc434
BLAKE2b-256 checksum
How to use checksums
62ac1c5ae21aa1f53bed1a15e5295972d4f43412728b869377fb320a6756c748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / ovum_mira_modbus-0.0.1-py3-none-any.whl

Download URL ovum_mira_modbus-0.0.1-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d2e29ebbca62ed8c3f6480c0f48c1276c17e67023a1486ebd6022662d39d589
BLAKE2b-256 checksum
How to use checksums
cfedccf112b997c7a93ed6b48a3368f1c60c0be3343325bb517d06c279cc7fcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page