Skip to main content

BLE to MQTT bridge

Project description

Service to export BLE devices to MQTT with Home Assistant discovery

!!! It is a very early alpha release !!!

Use this software at your own risk.

Default config should be located in /etc/ble2mqtt.json or can be overridden with BLE2MQTT_CONFIG environment variable.

Example run command:

BLE2MQTT_CONFIG=./ble2mqtt.json ble2mqtt

The configuration file is a JSON with the following content:

{
    "mqtt_host": "localhost",
    "mqtt_port": 1883,
    "mqtt_user": "",
    "mqtt_password": "",
    "log_level": "INFO",
    "devices": [
        {
            "address": "11:22:33:aa:cc:aa",
            "type": "presence"
        },
        {
            "address": "11:22:33:aa:bb:cc",
            "type": "redmond200"
        },
        {
            "address": "11:22:33:aa:bb:dd",
            "type": "xiaomihtv1"
        },
        {
            "address": "11:22:34:aa:bb:dd",
            "type": "xiaomihtv1",
            "passive": false
        },
        {
            "address": "11:22:33:aa:bb:ee",
            "type": "xiaomilywsd"
        },
        {
            "address": "11:22:33:aa:bb:ff",
            "type": "xiaomilywsd_atc"
        },
        {
            "address": "11:22:33:aa:aa:aa",
            "type": "atomfast"
        }
    ]
}

You can omit a line, then default value will be used.

Supported devices:

Any device

  • Any bluetooth device can work as a presence tracker

Kettles:

  • Redmond G2xx series (redmond200)

Humidity sensors:

  • Xiaomi MJ_HT_V1 (xiaomihtv1)
  • Xiaomi LYWSD03MMC (xiaomilywsd)
  • Xiaomi LYWSD03MMC with custom ATC firmware (xiaomilywsd_atc)

Dosimeters

  • Atom Fast (atomfast)

By default, a device works in the passive mode without connection by listening to advertisement packets from a device. To use connection to the device provide "passive": false parameter.

Supported devices in passive mode:

  • Xiaomi MJ_HT_V1 (xiaomihtv1)
  • Xiaomi LYWSD03MMC with custom ATC firmware (xiaomilywsd_atc)

OpenWRT installation

Execute the following commands in the terminal:

opkg update
opkg install python3-pip python3-asyncio
pip3 install http://github.com/hbldh/bleak/tarball/dbus-next-2#egg=bleak-0.11.0a1
pip3 install -U ble2mqtt

Create the configuration file in /etc/ble2mqtt.json and append your devices.

Bluetooth must be turned on.

hciconfig hci0 up

Run the service in background

ble2mqtt 2> /tmp/ble2mqtt.log &

Container

Build the image as:

podman build -t ble2mqtt:dev .

Start the container and share the config file and DBus for Bluetooth connectivity:

podman run \
-d \
--net=host \
-v $PWD/ble2mqtt.json.sample:/etc/ble2mqtt.json:z \
-v /var/run/dbus:/var/run/dbus:z \
ble2mqtt:dev

Instead of sharing /var/run/dbus, you can export DBUS_SYSTEM_BUS_ADDRESS.

NOTE: --net=host is required as it needs to use the bluetooth interface

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ble2mqtt-0.1.0a28.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

ble2mqtt-0.1.0a28-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file ble2mqtt-0.1.0a28.tar.gz.

File metadata

  • Download URL: ble2mqtt-0.1.0a28.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.0

File hashes

Hashes for ble2mqtt-0.1.0a28.tar.gz
Algorithm Hash digest
SHA256 417ee52557c110c0b9421b91278c684b7ed9b1e665e51068a69192e75b55be9f
MD5 a0a66acba5478fe511105d64a41b81db
BLAKE2b-256 87b9c8d333051199559a21eba752413ad043272b68261a8ab006989cf76cd6ca

See more details on using hashes here.

File details

Details for the file ble2mqtt-0.1.0a28-py3-none-any.whl.

File metadata

  • Download URL: ble2mqtt-0.1.0a28-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.0

File hashes

Hashes for ble2mqtt-0.1.0a28-py3-none-any.whl
Algorithm Hash digest
SHA256 4749ae8b27a735f854824dc0ad2387eb04ff1f6c98efddcc72f65bcae4157576
MD5 739b18e735b8e0fa9ac147a7d84a574c
BLAKE2b-256 ad6a476c8b047e83865656fd9113449053213febdffe9d96b21d1f94f80472a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page