Planter - une centrale pour jardinière(s)

Pour résumer mon intégration de mon capteur Xiaomi MiFlora, voici ce que j’ai fait :

Configuration de la passerelle Bluetooth (BLE) - WiFi

Je suis parti d’un ESP32 NodeMCU que j’ai flashé via ESPHome en suivant ce tuto Installer ESPHome sur Home Assistant et créer votre première configuration et j’ai flashé l’ESP32 avec ce code :

esphome:
  name: ble_gateway
  platform: ESP32
  board: nodemcu-32s

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_pass
  
  # Optional manual IP
  manual_ip:
    static_ip: !secret ip_ble_gateway
    gateway: !secret ip_gateway
    subnet: !secret ip_subnet

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Ble Gateway Fallback Hotspot"
    password: !secret ap_pass

captive_portal:

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  password: !secret ota_pass

ota:
  password: !secret ota_pass

esp32_ble_tracker:
sensor:
  - platform: xiaomi_hhccjcy01
    mac_address: !secret mac_addr_miflora1
    temperature:
      name: "Xiaomi MiFlora Temperature"
    moisture:
      name: "Xiaomi MiFlora Moisture"
    illuminance:
      name: "Xiaomi MiFlora Illuminance"
    conductivity:
      name: "Xiaomi MiFlora Soil Conductivity"

N’oubliez pas de modifier vos secrets dans ESPHome via Secrets Editor accessible dans le menu en haut à droite.

J’ai mis en place le capteur à distance raisonnable de la passerelle BLE-WiFi (env. 5m avec un mur).

Ajout des dépendances pour la carte

dans le répertoire config/www/, j’ai :

  • copié le fichier card-tools.js accessible ici : card-tools.js
  • créé un répertoire lovelace-flower-card où j’y ai :
    • copié le fichier flower-card.js accessible ici : flower-card.js
    • créé un sous répertoire data où j’y ai :
      • copié le fichier data.js accessible ici : data.js
      • créé un répertoire Images où j’y ai :
        • copié le fichier fragaria x ananassa.jpg accessible ici : fragaria x ananassa.jpg
          Si vous avez besoin d’autres images, vous pouvez les récupérer sur le repository MiFloraDB

Ajout du composant plant

Comme vous pouvez le voir sur ma configuration, je suis un malade de la séparation des fichiers YAML :innocent:.

Je ne laisserais dans les explications que ce qui est nécessaire à l’utilisation de la carte.

Je commence donc par mon fichier configuration.yaml (point d’entrée de HA) :

homeassistant:
  ...
  packages: !include_dir_named integrations
  ...

Tous les fichiers YAML contenus dans le répertoire integrations seront chargés, ce qui inclus mon fichier plants.yaml qui utilisera le composant Plant :

#
# https://www.home-assistant.io/integrations/plant
#
plant:
  fragaria_ananassa:
    sensors:
      moisture: sensor.xiaomi_miflora_moisture
      temperature: sensor.xiaomi_miflora_temperature
      conductivity: sensor.xiaomi_miflora_soil_conductivity
      brightness: sensor.xiaomi_miflora_illuminance

Pour les noms des différents sensors, vous pourrez les retrouver dans le menu latéral Configuration puis Intégrations, dans la carte ESPHome, cliquez sur ble_gateway puis 4 entities.

Normalement, les noms des sensors devraient être ce que vous avez mis comme name sous chaque sensor dans le code de votre ESP32 en passant ce nom en minuscule et en remplaçant les espaces par des _.

Ajout de la carte

Voici le fichier lovelace/dashboards.yaml qui charge mon dashboard par défaut :

#
# Liste tous les dashboards avec leurs fichiers respectifs
#
# https://www.home-assistant.io/lovelace/dashboards-and-views/#dashboards
#
default-yaml:
  mode: yaml
  title: Maison (manuel)
  icon: mdi:view-dashboard
  show_in_sidebar: true
  filename: lovelace/default/dashboard.yaml

Il utilisera le fichier lovelace/defaut/dashboard.yaml qui charge les différents « onglets » du dashboard grâce aux !include :

#
# Liste les views pour le dashboard
#
...
views:
  ...
  - !include views/plants.yaml

Dans mon cas l’onglet lovelace/defaut/views/plants.yaml qui définira son chemin d’accès path:, les personnes autorisées à voir cet onglet via visibility:, son mode d’affichage via panel:, etc… :

#
# Définition de la vue Plants avec les accès autorisés
#
path: plants
panel: false
icon: 'mdi:flower'
visible: !include_dir_list ../visibility
badges: []
cards:
  - !include ../cards/plant-fragaria_ananassa.yaml

Mais surtout l’ensemble des cartes affichées sur cet onglet via cards: et la directive !include qui inclura la carte de mes fraisiers.

La carte pour afficher mes fraisiers est définie dans le fichier lovelace/defaut/cards/plant-fragaria_ananassa.yaml :

#
# https://github.com/remkolems/lovelace-flower-card
#
type: 'custom:flower-card'
entity: plant.fragaria_ananassa
species: fragaria x ananassa

L’entity devra correspondre au nom que vous avez donnez sous le composant plant (voir Ajout du composant plant).

Et voilà ce que cela donne :
image
Pas de remarque sur l’état de mes fraisiers, j’habite en Normandie alors, c’est pas le temps idéal pour la culture :grin:)

Voilà, je vous avez prévenu que j’étais un peu taré de la séparation des fichiers et j’espère que je ne vous ai pas trop perdu :grin:

Bon ajout de vos sondes Xiaomi :wave:

Un grand MERCI à @Gogo :handshake: pour son aide sur l’intégration de la carte, étant sur Win10, je n’arrivai pas à convertir le fichier data.js.

Voilà vous pouvez aussi voir ma configuration complète sur mon Github Config HA de Sylvain_G

5 « J'aime »