Skip to content

airthings2mqtt

License: MIT Python cosalette

Read Airthings Wave air quality sensors over BLE and publish to MQTT.

airthings2mqtt connects to Airthings Wave sensors via Bluetooth Low Energy on a Raspberry Pi, reads temperature, humidity, and radon levels, and publishes the data to an MQTT broker — ready for Home Assistant or any MQTT consumer.


Features

  • BLE sensor polling — connects to Airthings Wave (1st-gen) and Wave 2 / Wave Radon (2nd-gen) sensors via BlueZ, auto-detecting the GATT protocol per connection
  • On-demand re-read — publish to MQTT /set to refresh readings between scheduled polls
  • Radon monitoring — publishes 24-hour and long-term average radon concentrations
  • Temperature & humidity — ambient readings alongside air quality data
  • Health reporting — automatic heartbeats, per-device availability, and LWT
  • Simple .env configuration — all settings via environment variables or a .env file, powered by cosalette
  • Docker-ready — single docker compose up deployment with BLE passthrough

Hardware

Component Details
Sensor Airthings Wave (1st-gen), or Wave 2 / Wave Radon (2nd-gen) (BLE)
Interface Bluetooth Low Energy (BlueZ)
Platform Raspberry Pi (any model with Bluetooth: ¾/5, Zero 2 W)

  • Getting Started


    Install airthings2mqtt, find your sensor, and see your first MQTT messages.

    Get started

  • Configuration


    All settings — environment variables, .env files, and CLI flags.

    Configure

  • MQTT Topics


    Topic reference with payload schemas, directions, and retain flags.

    Topics