Home Assistant & BLE

Si le plus fiable à mon sens est d'utiliser des sondes de température / humidité Aquara en Zigbee, on peut avoir envie d'utiliser des sondes avec afficheur, mais celles ci utilisent du Bluetooth Low Energy (BLE) et toutes ne sont pas intégrables automatiquement.

  • LYWSDCGQ
    Celle ci est la plus ancienne, ronde en LCD, intégrable automatiquement.

  • LYWSD02
    Sous la forme d'une horloge rectangulaire, affichage e-Ink, elle ne remonte pas les informations liées à ses piles. Le réglage de l'heure passe par Mi Home sur le serveur Chine.

  • CGG1
    Mise à jour de la première en e-Ink, c'est à mon gout la plus esthétique. intégrable automatiquement.

  • HHCCJCY01
    MiFlora, outre la température elle remonte d'autres informations sur la santé de vos plantes... mais pas l'état de ses piles.

  • GCLS002
    Un vase... fonctionnement similaire à la MiFlora.

  • LYWSD03MMC
    Une petite sonde carrée en LCD. Très peu coûteuse, mais je ne suis pas sur que ce soit la plus fiable. L'intégration nécessite la récupération de la BindKey..

  • CGD1
    Un réveil qui servira également de sonde. Le réglage de l'heure se fait via Mi Home sur le serveur Chine et l'intégration nécessite la récupération de la BindKey.

Intégration dans Home Assistant

Pour intégrer ces sondes dans home assistant je conseille d'utiliser le composant MiTemp_BT (Edit : ça s'appelle maintenant BLE Monitor) plutôt que l'intégration de base que l'on trouve dans HA. L'installation se fait via HACS et on ajoutera la configuration suivante à notre fichier configuration.yaml :

sensor:
  - platform: mitemp_bt
    rounding: True
    decimals: 2
    period: 60
    log_spikes: False
    use_median: False
    active_scan: False
    hci_interface: 0
    batt_entities: False
    encryptors:
               'A4:C1:38:2F:86:6C': '217C568CF5D22808DA20181502D84C1B'
    report_unknown: False

Récupération de la BindKey 

Afin de pouvoir utiliser les deux derniers modèles proposés par Xiaomi, et probablement les prochains, il va falloir tricher un peu. On va donc installer sur Android une version hackée de Mi Home que l'on récupère ici.

ATTENTION : On fait ça de préférence sur un vieux mobile que l'on utilise plus et qui n'est pas connecté à vos comptes habituels, car s'agissant d'une version hackée, si elle va nous aider, on ne sait pas vraiment ce qu'elle fait et elle peut contenir d'autres choses malveillantes...

Dans Mi Home connecté au serveur Chine (possible également sur le serveur Europe depuis juin 2020) on associe notre sonde ou le réveil, ça mettra le réveil à l'heure. Ensuite on ouvre un explorateur de fichier sur le mobile pour aller chercher le fichier /vevs/logs/pairings.txt ou l'on va trouver les informations qui nous intéressent...

Did: blt.3.12bq5vom4lg00
Token: ec104xxddrrgghhjj01dbe6b
Bindkey: d26dbddffggrrttyy5cf0050e5039d02
Mac: A4:XX:38:AB:XX:F7

Did: blt.3.12in66gtolg00
Token: 47eeerrttyyuuii1a5369db0
Bindkey: a2fcb4edddffgghhjjkkf7d264600320c
Mac: 58:2D:55:51:44:92

Easy ! En fait il m'a fallut un peu de temps et de recherches pour arriver à trouver ça facile. Les sondes qui ne nécessitent pas de BindKey seront reconnues toute seules par HA, pour les autres il faudra renseigner la ligne encryptors: dans le fichier de configuration.

Étalonnage

Il ne faut toutefois jamais perdre de vue que toutes ces sondes à bas prix, Xiaomi ou autres, ne sont jamais étalonnées et qu'il n'est pas rare d'observer des écarts. Dans l'exemple ci dessus, les 4 sondes signalées en rouge sont placées sur mon bureau depuis une heure et aucune n'indique la même valeur.... Un offset sera donc parfois à prévoir dans Home Assistant.

Source