sem6000/README.md

65 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2020-01-19 20:10:07 +01:00
# SEM6000 Python Library
SEM6000 is a energy meter and power switch with Bluetooth 4.0.
This library provides a Python module for these devices
## Run the example code
2018-08-11 00:39:26 +02:00
```
$ git clone … sem6000
$ cd sem6000
$ virtualenv -p python3 python3_venv
$ . ./python3_venv/bin/activate
$ pip3 install -r requirements.txt
$ python3 example.py
2020-01-19 20:10:07 +01:00
```
## Collectd Plugin
You can find a Plugin for [collectd](https://collectd.org) in the `collectd`
subdirectory.
Installation procedure (the target directory may be changed of course):
```shell
# mkdir -p /usr/local/lib/collectd/python
# cp collectd/collectd_sem6000.py /usr/local/lib/collectd/python
# cp sem6000.py /usr/local/lib/collectd/python
```
Add or adjust the configuration for your collectds Python plugin as follows:
```
<Plugin python>
ModulePath "/usr/local/share/collectd/python"
LogTraces true
Interactive false
Import "collectd_sem6000"
<Module collectd_sem6000>
Address "12:34:56:78:90:ab"
SocketName "FirstSocket"
ReadTimeout 30
SuspendTime 300
2020-01-19 20:10:07 +01:00
</Module>
<Module collectd_sem6000>
Address "ab:cd:ef:13:37:42"
SocketName "ASecondSocket"
</Module>
# ...
</Plugin>
```
`ReadTimeout` and `SuspendTime` control whats happening when a device is
unavailable. If no value could be retrieved for `ReadTimeout` seconds, the
plugin does not retry for `SuspendTime` seconds. After that, normal operation
is resumed. This procedure ensures that an unreachable device does not block
other devices (too often) in the current single-threaded architecture.
If not specified, `ReadTimeout` is 30 seconds and `SuspendTime` is 5 minutes.
2020-01-19 20:10:07 +01:00
Make sure that everything listed in `requirements.txt` is available to the user
running collectd.