Skip to main content

This is a opus20, a Python software to query the temperature / humidity / air pressure logging device OPUS20 produced by Lufft.

The source code is managed on Github: pklaus/opus20. The Python package is also registered on PyPI for easy installation.

Requirements and Installation

The only strict requirement for the bare opus20 package is Python version 3.3+. Then, the package can be installed via pip directly from PyPI:

pip install --upgrade opus20

The package comes with an (optional) plot web server, too. It depends on some more Python packages. To install those requirements as well, run this command:

pip install --upgrade opus20[webserver]

This will install further packages like jinja2, bottle, matplotlib, pandas, and numpy. (Installing matplotlib may also require you to install the python development package for Python 3.)

Usage

The Python package installs a command line tool to query the device for current values. It’s called opus20_cli.

Here is how to get a list of all available channels from the device:

philipp@lion:~> opus20_cli 192.168.1.55 list
Channel   100 (0x0064): CUR temperature         unit: °C    offset: ±10.0  logging: no
Channel   120 (0x0078): MIN temperature         unit: °C    offset: ±10.0  logging: no
Channel   140 (0x008C): MAX temperature         unit: °C    offset: ±10.0  logging: no
Channel   160 (0x00A0): AVG temperature         unit: °C    offset: ±10.0  logging: yes
Channel   105 (0x0069): CUR temperature         unit: °F    offset: 0.0    logging: no
Channel   125 (0x007D): MIN temperature         unit: °F    offset: 0.0    logging: no
Channel   145 (0x0091): MAX temperature         unit: °F    offset: 0.0    logging: no
Channel   165 (0x00A5): AVG temperature         unit: °F    offset: 0.0    logging: no
Channel   200 (0x00C8): CUR relative humidity   unit: %     offset: ±30.0  logging: no
Channel   220 (0x00DC): MIN relative humidity   unit: %     offset: ±30.0  logging: no
Channel   240 (0x00F0): MAX relative humidity   unit: %     offset: ±30.0  logging: no
Channel   260 (0x0104): AVG relative humidity   unit: %     offset: ±30.0  logging: yes
Channel   205 (0x00CD): CUR absolute humidity   unit: g/m³  offset: 0.0    logging: no
Channel   225 (0x00E1): MIN absolute humidity   unit: g/m³  offset: 0.0    logging: no
Channel   245 (0x00F5): MAX absolute humidity   unit: g/m³  offset: 0.0    logging: no
Channel   265 (0x0109): AVG absolute humidity   unit: g/m³  offset: 0.0    logging: yes
Channel   110 (0x006E): CUR dewpoint            unit: °C    offset: 0.0    logging: no
Channel   130 (0x0082): MIN dewpoint            unit: °C    offset: 0.0    logging: no
Channel   150 (0x0096): MAX dewpoint            unit: °C    offset: 0.0    logging: no
Channel   170 (0x00AA): AVG dewpoint            unit: °C    offset: 0.0    logging: yes
Channel   115 (0x0073): CUR dewpoint            unit: °F    offset: 0.0    logging: no
Channel   135 (0x0087): MIN dewpoint            unit: °F    offset: 0.0    logging: no
Channel   155 (0x009B): MAX dewpoint            unit: °F    offset: 0.0    logging: no
Channel   175 (0x00AF): AVG dewpoint            unit: °F    offset: 0.0    logging: no
Channel 10020 (0x2724): CUR battery voltage     unit: V     offset: 0.0    logging: no
Channel 10040 (0x2738): MIN battery voltage     unit: V     offset: 0.0    logging: no
Channel 10060 (0x274C): MAX battery voltage     unit: V     offset: 0.0    logging: no
Channel 10080 (0x2760): AVG battery voltage     unit: V     offset: 0.0    logging: yes

Asking for the value of a channel works like this:

philipp@lion:~> opus20_cli 192.168.1.55 get 0x0064
24.712

You can also download the values stored on the device and store them in a file:

philipp@lion:~> opus20_cli --loglevel INFO 192.168.1.55 download log_data.pickle
INFO:opus20.opus20:Connected to device with ID: EC9C0A06B183
INFO:opus_cli:script running time (net): 1.208517 seconds.
philipp@lion:~>

Here is an overview of all the possible CLI commands:

# List all possible channels:
opus20_cli 192.168.1.55 list

# Get the values for the specified channels (CUR, MIN, MAX temperature in °C):
opus20_cli 192.168.1.55 get 0x0064 0x0078 0x008C

# Download the latest log data and merge it into a persistant data file:
opus20_cli 192.168.1.55 download opus20.PickleStore.p

# Check if logging in general is enabled on the device:
opus20_cli 192.168.1.55 logging status
opus20_cli 192.168.1.55 logging start
opus20_cli 192.168.1.55 logging stop
# Or clear the log:
opus20_cli 192.168.1.55 logging clear

# Enable or disable logging for individual channels:
opus20_cli 192.168.1.55 enable  0x0064 0x0078 0x008C
opus20_cli 192.168.1.55 disable 0x00CD 0x00E1 0x00F5

Author

License

GPLv3

Metadata

Release files for opus20 1.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 opus20 1.0.1
File Size Uploaded Provenance
opus20-1.0.1.tar.gz 21.0 kB Without provenance Details

Release files / opus20-1.0.1.tar.gz

Download URL opus20-1.0.1.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e661981e3ac94166ba24665475c39d74c1fb24888283fd1da68750763ae3fb94
BLAKE2b-256 checksum
How to use checksums
81a7814ed6ece23becdcde23133887b5da23b0b329ed9d0f4bfaa43f8b47bc73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for opus20 1.0.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.

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 release file No provenance

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