Package: opus20
This is aopus20, a Python software to query the temperature /
humidity / air pressure logging device OPUS20 produced by Lufft.The source code ismanaged on Github:
pklaus/opus20. The Python package
is alsoregistered on PyPIfor
easy installation.Requirements and InstallationThe 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 opus20The 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.)UsageThe Python package installs a command line tool to query the device for
current values. It’s calledopus20_cli.Here is how to get a list of all availablechannelsfrom 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: yesAsking for the value of a channel works like this:philipp@lion:~> opus20_cli 192.168.1.55 get 0x0064
24.712You 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 0x00F5Author2015, Philipp Klausklaus@physik.uni-frankfurt.dePorted the software to Python, extended and packaged it.2012,Ondics GmbHgithubler@ondics.deThe author of theoriginal
scripts(written as Bash scripts + netcat & gawk)LicenseGPLv3