Skip to main content

Landis+Gyr Heat Meter Python package

This module reads from the Landys & Gyr Ultraheat heat meter unit and returns the meter values. Note: An (USB) IR reader is needed and connected to the machine running the python script

WARNING: everytime this is called, battery time of the Ultraheat will go down by about 30 minutes! This package has been tested with the Landys & Gyr Ultraheat type UH50 and T550. Other models are likely to work as well (please contact me if you want to help/test with adding support for other models).

Using the python integration as API

import ultraheat_api as hm

# Check available ports
ports = hm.find_ports() 
for p in ports:
    print(p.device)
print(len(ports), 'ports found')

# Read the device from file for integration testing purposes
path = os.path.abspath(os.path.dirname(__file__))
file_name = os.path.join(path, "tests", "LUGCUH50_dummy.txt")
heat_meter_service = hm.HeatMeterService(hm.FileReader(file_name))
response_data = heat_meter_service.read()

# Read the Ultraheat device
heat_meter_service = hm.HeatMeterService(hm.UltraheatReader(args.port))
response_data = heat_meter_service.read()

print('model :',heat_meter.model)
print('GJ :',heat_meter.heat_usage_gj)  # UH50 
print('MWh :',heat_meter.heat_usage_mwh)  # T550 
print('m3 :',heat_meter.volume_usage_m3)
etc..

Full list of available data

  • heat_usage_gj (empty for T550)
  • heat_usage_mwh (empty for UH50)
  • volume_usage_m3
  • ownership_number
  • volume_previous_year_m3
  • heat_previous_year_gj (empty for T550)
  • heat_previous_year_mwh (empty for UH50)
  • error_number
  • device_number
  • measurement_period_minutes
  • power_max_kw
  • power_max_previous_year_kw
  • flowrate_max_m3ph
  • flowrate_max_previous_year_m3ph
  • flow_temperature_max_c
  • return_temperature_max_c
  • flow_temperature_max_previous_year_c
  • return_temperature_max_previous_year_c
  • operating_hours
  • fault_hours
  • fault_hours_previous_year
  • yearly_set_day
  • monthly_set_day
  • meter_date_time
  • measuring_range_m3ph
  • settings_and_firmware
  • flow_hours
  • raw_response

Telegram parsing

The telegram that is read from the Heat Meter is parsed as follows. For the UH50 (shown below) GJ is parsed. For the T550 this will be MWh.

6.8(heat_usage_gj*GJ)6.26(volume_usage_m3*m3)9.21(ownership_number)
6.26*01(volume_previous_year_m3*m3)6.8*01(heat_previous_year_gj*GJ)
F(error_number)9.20(device_number)6.35(measurement_period_minutes*m)
6.6(power_max_kw*kW)6.6*01(power_max_previous_year_kw*kW)6.33(flowrate_max_m3ph*m3ph)9.4(flow_temperature_max_c*C&return_temperature_max_c*C)
6.31(operating_hours*h)6.32(fault_hours*h)9.22(R)9.6(000&66153690&0&000&66153690&0)
9.7(20000)6.32*01(fault_hours_previous_year*h)6.36(yearly_set_day)6.33*01(flowrate_max_previous_year_m3ph*m3ph)
6.8.1()6.8.2()6.8.3()6.8.4()6.8.5()
6.8.1*01()6.8.2*01()6.8.3*01()
6.8.4*01()6.8.5*01()
9.4*01(flow_temperature_max_previous_year_c*C&return_temperature_max_previous_year_c*C)
6.36.1(2018-03-03)6.36.1*01(2018-03-03)
6.36.2(2020-06-23)6.36.2*01(2020-06-23)
6.36.3(2012-02-03)6.36.3*01(2012-02-03)
6.36.4(2017-01-18)6.36.4*01(2017-01-18)
6.36.5()6.36*02(monthly_set_day)9.36(meter_date_time)9.24(measuring_range_m3ph*m3ph)
9.17(0)9.18()9.19()9.25()
9.1(settings_and_firmware)
9.2(&&)9.29()9.31(flow_hours*h)
9.0.1(00000000)9.0.2(00000000)9.34.1(000.00000*m3)9.34.2(000.00000*m3)
8.26.1(00000000*m3)8.26.2(00000000*m3)
8.26.1*01(00000000*m3)8.26.2*01(00000000*m3)
6.26.1()6.26.4()6.26.5()
6.26.1*01()6.26.4*01()6.26.5*01()0.0(66153690)
!

Metadata

Release files for ultraheat-api 0.6.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 ultraheat-api 0.6.1
File Size Uploaded Provenance Actions
ultraheat_api-0.6.1.tar.gz 10.2 kB Without provenance Details for ultraheat_api-0.6.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ultraheat-api 0.6.1
File Interpreter ABI Platform Actions
ultraheat_api-0.6.1-py3-none-any.whl Python 3 none any Details for ultraheat_api-0.6.1-py3-none-any.whl

Total release size: 19.0 kB

Release files / ultraheat_api-0.6.1.tar.gz

Download URL ultraheat_api-0.6.1.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4f02977719f293f798901b81a8fcb4e866af7202170de39fda87dd530dd7470a
BLAKE2b-256 checksum
How to use checksums
f3ff82e2b20d3cc33b8d856aa8a39583a48add09d9437f1651dea80042f6f9bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / ultraheat_api-0.6.1-py3-none-any.whl

Download URL ultraheat_api-0.6.1-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
115e6acb4f365365e57f9def4795fcd9bbe651ea9297b0e41242a22df09e421e
BLAKE2b-256 checksum
How to use checksums
5523d37d1c7e4bc6e5f0b0f589094be281c1fdf843c5c240a13be00266129054
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Security for ultraheat-api 0.6.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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