Skip to main content

blexy

Simple OpenMetrics exporter for BLE devices.

Requirements

  • device with BLE compliant transceiver (e.g. RPi 3+)
  • Python 3.7+

Running

pip install blexy
blexy --port 8888 --config-file ~/.blexy.yaml

Endpoints

  • / - returns list of connected devices in JSON format.
  • /metrics - returns values read from connected BLE devices in OpenMetrics format.

Config

  • Device & server configuration is by default expected to be placed in ./config.yaml.
  • Custom config file path can be specified via -c / --config-file command line option.
  • port and log_level can be either specified in config file or through command line options (see blexy -h for exact option names).

Example config file

Below file will make blexy connect to two Xiaomi temperature / humidity sensors and listen on port 8080:

port: 8080
log_level: info
ble:
  devices:
    - name: living room sensor
      model: LYWSD03MMC
      address: xx:xx:xx:xx:xx:xx
    - name: bedroom sensor
      model: LYWSD03MMC
      address: xx:xx:xx:xx:xx:xx

Example output

$ curl localhost:8080/metrics
# TYPE battery_level_percentage gauge
# UNIT battery_level_percentage percentage
battery_level_percentage_gauge{name="living room sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 77
battery_level_percentage_gauge{name="bedroom sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 88
# TYPE humidity_percentage gauge
# UNIT humidity_percentage percentage
humidity_percentage_gauge{name="living room sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 48
humidity_percentage_gauge{name="bedroom sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 51
# TYPE temperature_celsius gauge
# UNIT temperature_celsius celsius
temperature_celsius_gauge{name="living room sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 22.33
temperature_celsius_gauge{name="bedroom sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 25.11
# TYPE voltage_volts gauge
# UNIT voltage_volts volts
voltage_volts_gauge{name="living room sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 3.11
voltage_volts_gauge{name="bedroom sensor",model="LYWSD03MMC",manufacturer="Xiaomi",address="xx:xx:xx:xx:xx:xx",interface="0"} 3.03
# EOF

Supported devices

  • LYWSD03MMC (Xiaomi)

Metadata

Release files for blexy 0.2.0

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

Source distribution (sdist)

Source distribution for blexy 0.2.0
File Size Uploaded
blexy-0.2.0.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blexy 0.2.0
File Interpreter ABI Platform
blexy-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.1 kB

Release files / blexy-0.2.0.tar.gz

Download URL blexy-0.2.0.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
be57670383b42b81b8db26bdf51f205229ad7aeb073031ef0bb4d878c83363d8
BLAKE2b-256 checksum
How to use checksums
2a665e8a3561b09cf0799e8d45e41e94ec9d2a2b0b4c6a54ed4cdf7eee4c344c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

Release files / blexy-0.2.0-py3-none-any.whl

Download URL blexy-0.2.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
31ff06c2df0ce791624c19b1a1e2961ac8879c6552ae804f5f89636eb3a94a33
BLAKE2b-256 checksum
How to use checksums
a21fa359deff71c185876a05096fc0729ed0086c535c0ea1de86f865644472cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

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