Water level IBC avec Home assistant
Introduction
L’objectif ici est de mesurer le niveau d’eau restant de notre cuve IBC grâce à ESPHome. ESPHome permet de connecter des composants électroniques (potentiellement qui n’existeraient pas encore sous forme de devices Zigbee) à Home Assistant.
Nous allons utiliser l’outil ESPHome qui bénéficie aujourd’hui d’une très grande communauté. ESPHome est un projet open source fondé par Nabu Casa (https://www.nabucasa.com/).
Pour plus de détails, consultez : https://esphome.io/guides/faq.html
Installation
Le composant nécessaire pour notre mesure est le HC-SR04 :
Sans rentrer dans les détails, le HC-SR04 est un capteur à ultrasons qui permet d’évaluer les distances d’un objet cible en émettant des ondes ultrasonores. Ce capteur convertit le son réfléchi en un signal électrique.
PS : Les ondes ultrasonores voyagent plus vite que la vitesse du son audible (c’est-à-dire le son que les humains peuvent entendre).
1. Câblage
Le câblage est assez simple. Connectez le HC-SR04 à un microcontrôleur compatible avec ESPHome, tel qu’un Wemos D1 Mini ou un ESP32. Vous devrez connecter les broches VCC, GND, Trig et Echo du capteur aux broches correspondantes du microcontrôleur.
2. Création du container
Il existe plusieurs façons de générer son code pour l’uploader sur un ESP (Wemos).
J’ai choisi la méthode avec le container. On se rend dans le dossier où l’on souhaite démarrer notre container et on écrit notre compose :
vi docker-compose.yaml
Puis on y colle le contenu suivant :
version: '2.4'
services:
web:
container_name: esphome
image: esphome/esphome
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
network_mode: host
On peut à présent démarrer notre container avec la commande :
docker-compose up -d
Et se rendre sur la page web d’administration : http://IP_de_votre_container:6052/
3. Création des secrets
Maintenant, nous allons définir nos secrets en haut à droite.
On remplit nos secrets :
4. Notre code
Puis, nous allons écrire notre premier code. Dans notre exemple, on souhaite mesurer la quantité d’eau dans une cuve IBC. En s’inspirant des codes générés par la communauté. —> https://esphome.io/components/sensor/ultrasonic.html#
On clique en bas à droite pour créer notre code :
Puis on colle le code suivant :
esphome:
name: water_tank_level_sensor
platform: ESP8266
board: d1_mini
# WiFi connection, replace these with values for your WiFi.
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable logging
logger:
# Enable Home Assistant API
api:
# Enable over-the-air updates.
ota:
# Enable Web server.
web_server:
port: 80
# Sync time with Home Assistant.
time:
- platform: homeassistant
id: homeassistant_time
# Text sensors with general information.
text_sensor:
# Expose ESPHome version as sensor.
- platform: version
name: water_level_sensor ESPHome Version
# Expose WiFi information as sensors.
- platform: wifi_info
ip_address:
name: water_level_sensor IP
ssid:
name: water_level_sensor SSID
bssid:
name: water_level_sensor BSSID
# Exposed switches.
# Switch to restart the water_level_sensor.
switch:
- platform: restart
name: "water_level_sensor Restart"
sensor:
# Uptime sensor.
- platform: uptime
name: water_level_sensor Uptime
# WiFi Signal sensor.
- platform: wifi_signal
name: water_level_sensor WiFi Signal
update_interval: 60s
- platform: ultrasonic
trigger_pin: D1
echo_pin: D2
name: "Water level en litre"
update_interval: 3s
filters:
- lambda: return (100-(x*100))*10 ;
unit_of_measurement: "L"
Puis on clique sur “INSTALL” en bas à droite
Il existe plusieurs choix pour téléverser notre code. Dans mon cas j’ai fais le choix de générer le binaire puis de le téléverser.
On choisir modern :
La compilation du binaire peut prendre quelques minutes en fonction de votre processeur.
Une fois terminé un fichier sera téléchargé sur votre ordinateur.
5. Téléverser le code
Pour téléverser notre code nous allons utiliser ESPHome-Flasher sous windows que vous pouvez trouver ici : https://github.com/esphome/esphome-flasher/releases Si ce n’est pas déjà fait, il faut installer le bon driver pour notre Wemos. Vous pouvez le trouver ici :
CP2102 (square chip) –> https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers CH341: –> https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers
Plus d’information ici : https://esphome.io/guides/faq.html
Une fois le code téléversé nous pouvons nous connecter sur l’interface WEB avec l’adresse IP du Wemos qu’il aura récupéré :
6. Intégration home assistant
Une fois notre code flashé on peut faire l’intégration avec home assistant
Photos
Quelques photos de mon installation (qui est encore en phase de prototype) pour donner des idées :