Convertir en mqtt les infos de ses capteurs bluetooth.

En trois petites lignes de commande

Sommaire

Pré-requis

  • Avoir récupéré les adresses mac de ses périphériques bluetooth

Objectifs

  • Mettre en place un traqueur bluetooth pour collecter les rssi (suivi de présence de tous périphérique bluetooth) et les infos des capteurs lywsd02 et miflora.

Contexte

Ce papier constitue pour le blog le début d’une série qui va décrire mon glissement de Jeedom vers la triade Esphome / Node-red / Homeassistant. J’envisage la transition en douceur, pièce par pièce, Jeedom étant en prod chez moi. La constante sera l’utilisation systématique de mqtt, chemin que Jeedom n’a pas l’air de vouloir suivre. Ce papier n’est donc qu’une étape dans cette démarche visant à proposer une solution pour faire le lien entre bluetooth et réseau mqtt. Dans les prochains articles je décrirais comment en faire de même pour le zwave et le zigbee.

De quoi a-t-on besoin?

Je suis parti sur un esp32. Il s’agit d’une carte de développement à bas coût contenant wifi et bluetooth.

J’ai ensuite utilisé le projet esphome que je souhaitais découvrir.

Comment fait-on ?

La programmation de la carte est d’une superbe simplicité, trois lignes de commandes triviales suffisent pour que tout soit fonctionnel.

Installation d’esphome

pip install esphome

Configuration de la carte

nano esp32_ble_tracker.yaml
esphome:
  name: esp32_ble_tracker
  platform: ESP32
  board: esp32-gateway

wifi:
  ssid: ""
  password: ""

# Example configuration entry
esp32_ble_tracker:

sensor:
  - platform: xiaomi_miflora
    mac_address: ''
    temperature:
      name: "Philodendron Bureau Température"
    moisture:
      name: "Philodendron Bureau Humidité"
    illuminance:
      name: "Philodendron Bureau Luminosité"
    conductivity:
      name: "Philodendron Bureau Fertilité"
    battery_level:
      name: "Philodendron Bureau Batterie"
  - platform: xiaomi_mijia
    mac_address: ''
    temperature:
      name: "MiJia Sdb Température"
    humidity:
      name: "MiJia Sdb Humidité"
    battery_level:
      name: "MiJia Sdb Batterie"

# Enable logging
logger:

# Enable Home Assistant API
#api:

#ota:

mqtt:
  broker:
  username: ""
  password: ""

Les lignes à adapter sont :

 name:
wifi:
  ssid: ""
  password: ""
mac_address: ''
name: ""

Et si comme moi vous souhaitez que les infos remontent en mqtt :

mqtt:
  broker:
  username: ""
  password: ""

À noter qu’il est aussi possible d’avoir un accès http. Il permettra de faire des mises à jour en ota.

web_server:
  port: 80

Envoie du firmware

esphome esp32_ble_tracker.yaml run

Bonus: basculer sur la branche dev du projet

La première compilation s’est déroulée sans soucis, puis j’ai eu les erreurs documentées [ici](). La solution est de basculer sur la branche en développement d’esphome.

pip install https://github.com/esphome/esphome/archive/dev.zip

Bonne compilation