Méa culpa, désolé. Je vais relire tout ça. En effet je suis au taf là, j’ai pas tout regardé précisement !
En fait il y a des liens, mais pas de procédure pas à pas sur comment installer les ESP32, installer ESP Home, dans quel ordre, etc.
Je vais regarder tous les fils de messages tranquillement ce soir.
Installer, utiliser ESPHome:
Firmware Bluetooth Proxy:
Tu installe ESPHome, puis flash ton esp avec le firmware bluetooth proxy , puis tu intègre les mii flora avec l’intégration Xiaomi BLE.
Bon c’est le bordel !
Je suis le tuto, je crée un Mi Flower 1 et je me retrouve avec un truc comme ça !
J’ai recommencé, c’est bon.
Impossible de me connecter sur mon Wifi, il a fallu que j’en choisisse un autre.
Bon, ça me soule !
Je suis le tuto, je crée un Mi Flower 1 puis, je crée. Il me détecte ensuite un ESPHome Web 52d110 puis j’installe Bluetooth Proxy et il trouve un troisième truc !
Bref…
J’avais un peu peur que ce soit imbitable… Et ben ça l’est !
Pourquoi il faut faire INSTALL puis PREPARE FOR FIRST USE sinon pas de wifi sans la préparation ?
Pourquoi on crée un ESP device mais lorsque l’on flash tout, le premier créé est perdu et on a le nom que le système crée (on n’a pas le chois, il s’appelle Bluetooth Proxy 52d110)
En fait j’ai l’impression qu’il suffit juste d’aller sur cette page et de flasher le bluetooth proxy :
1> En fait je me prend la tête car j’aimerais nommer correctement ce périphérique et je n’y arrive pas, il s’appelle toujours esphome-web-52d110 et esp32-bluetooth-proxy-52d110 avec des fichiers yaml qui portent ces noms. Tant que j’en ai qu’un seul ça va, imagine si j’en ai 5 quel bordel pour s’y retrouver !
2> On ne peut pas avoir juste le bluetooth proxy ? On voit aussi systématiquement le ESP Home ? Donc deux périphériques à chaque fois ?
Autre question : ESP Home est l’OS de l’ESP32 et bluetooth proxy est un service qui tourne dessus et il peut y en avoir plusieurs (genre capteur de proximité par exemple) ? Ou j’ai pas compris un truc ?
Oui, tu as cette solution. Mais le firmware utilisé sur cette page est un ancien, mais n’empêche pas le fonctionnement. Puis de c’est manière tu n’auras pas ton esp dans le dashboard ESPHome.
Le mieux , tu installe ton esp dans le dashboard ESPHome et choisir le esp approprier dans les popositions avec la clé api créer et fait skip a la fin.
Tu vas dans secret en haut à droite et ajoute :
wifi_ssid: "SSID de ta box"
wifi_password: "ton mot de passe wifi"
Et sauvegarde.
Tu édites ton esp et vérifie, qu’il y a bien :
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
Après tu le flash, avec le esp connecté en USB sur ton HA.
Après le flash, tu édites l’esp et modifie le code par celui du bluetooth proxy et tu reflash ton esp en OTA maintenant.
- type: custom:card-templater
entities:
- counter.greenup_graph_day_offset_value
- sensor.consommation_de_la_greenup
- sensor.cout_de_la_consommation_de_la_greenup
card:
type: custom:apexcharts-card
graph_span: 1d1
span:
Quand je passais par la page de flash direct du Bluetooth proxy, alors je voyais quand même l’ESPHome. Mais je l’ai flashé de cette manière APRES avoir installé avec la procédure que tu donnes alors peut-être qu’il restait quelque chose sur la carte ? Normalement quand on flash on efface tout non ?
Mon système marchait mais je ne suis pas assez satisfait du résultat donc je n’ai pas été plus loin : je ne suis pas content du nom (celui du fichier yaml) que je ne peux pas choisir. Toi aussi t’as un nom de fichier yaml à la con comme celui que j’ai (esphome-web-52d110.yaml) ?
Visiblement oui, on ne doit pas pouvoir faire autrement (ton device s’appelle atom-bluetooth-proxy-ad7a6c), c’est ce nom qui est utilisé dans le yaml (sous /config/esphome) ?
Ce soir, je vais créer un nouveau sujet et faire un tuto pas à pas avec des captures d’écran, ça pourra aider tout le monde.
T’en pense quoi ?
Parce que là ce que j’ai fais en suivant le tuto : je crée un nouveau device, je le configure, je suis le tuto quoi !
Je vais jusque → 3.2 Flasher l’ESP (première fois)
→ Cliquer sur les 3 points, puis install, manual download, modern format. La compilation démarre.
Déjà là, ça commence à diverger, l’IHM n’est plus la même, le modern format est affiché (old). Après ça part en sucette, j’ai essayé plein de trucs, je ne pourrais pas te dire quoi, il faut que je reprenne tout ça avec des captures d’écran.
D’ailleurs dans le tuto, rien sur le Bluetooth proxy, c’est quand on édite qu’il faut ajouter un truc en yaml je pense, non ?
C’est quoi tu édites l’esp ? Comment ? On récupère quoi ?
Je suppose que cette dernière étape permet de mettre dans l’ESP le code esp modifié. A priori de ce que je comprend : le bluetooth proxy.
D’ailleurs le code ajouté par le tuto peut-être intéressant aussi : allumé / qualité du signal / restart / etc.
Problèmes rencontrés :
- Impossible de se connecter sur ma Freebox pop, je pense que c’est du Wifi 6 ou un truc du genre et l’esp ne peux pas s’y connecter. J’ai réussi à me connecter à un hotspot CPL (j’ai 2 CPL qui génèrent un hotspot wifi qui ne doit pas être en wifi 6). Je vais aller voir dans les paramètres de la Freebox s’il y a une case genre « compatibility ».
- Le nom du fichier yaml associé ne semble pas être modifiable (et donc pas celui que l’on choisi lorsque l’on crée un nouveau device). Voir plus haut, ça parait normal.
- Dans le tuto ce n’est pas noté et ici non plus : on install ESPHome mais comment installer Blutooth Proxy ? Visiblement voir le code ci-dessous.
A priori écrit dans la page (esp32_ble_tracker important ?)
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
bluetooth_proxy:
active: true
Ajouter ? A quoi ça sert ? (j’ai vu ça dans une vidéo).
web_server:
port: 80
Et aussi pour pouvoir le redémarrer et lire la qualité du signal :
binary_sensor:
# statut
- platform: status
name: "Statut"
sensor:
# Qualité du signal
- platform: wifi_signal
name: "Signal Wifi"
update_interval: 60s
# Temps de fonctionnement
- platform: uptime
name: "Allumé depuis (s)"
id: uptime_sec
switch:
# Bouton de redémarrage
- platform: restart
name: "Redémarrage"
# Transformation des secondes en jours
text_sensor:
- platform: template
name: "Allumé depuis (j)"
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
icon: mdi:clock-start
update_interval: 60s
Ces fichiers sont à mettre dans le yaml côté HA (accessible via Studio Code Server) ou c’est à mettre dans l’ESP32, ou en fait c’est la même chose et l’un est copié dans l’autre ?
Je commence à comprendre des trucs, pas tout encore.
dans le dashboard ESPHome, sur le ESP en question, le bouton édit.
Modifier le fichier YAML, par ce bouton edite et y mettre le code du firmware bluetooth proxy.
j’utilise package qui récupère le code du firmware bluetooth proxy sur le github directement.
exemple pour mon atom lite:
substitutions:
name: m5stack-atom-lite-854638
friendly_name: Bluetooth Proxy 854638
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/m5stack/m5stack-atom-lite.yaml@main
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: ekgwcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
sensor:
- platform: wifi_signal
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
internal: true
- platform: copy
source_id: wifi_signal_db
name: WiFi Signal
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
entity_category: "diagnostic"
device_class: ""
- platform: uptime
id: uptime_sec
update_interval: 60s
internal: true
- platform: internal_temperature
name: "Internal Temperature"
entity_category: "diagnostic"
switch:
- platform: restart
name: Restart
entity_category: "diagnostic"
binary_sensor:
- platform: status
name: Statut
entity_category: "diagnostic"
- platform: gpio
pin:
number: 39
inverted: true
name: Button
text_sensor:
- platform: template
id: lite_uptime
name: Uptime
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days ) {
return { (to_string(days) +"d " + to_string(hours) +"h " + to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
} else if ( hours ) {
return { (to_string(hours) +"h " + to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
} else if ( minutes ) {
return { (to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
} else {
return { (to_string(seconds) +"s ").c_str() };
}
icon: mdi:clock-start
update_interval: 60s
entity_category: "diagnostic"
Les sensor et binary_sensor, je les ai ajoutés pour avoir des informations en plus qui ne sont pas fournies dans le code du firmware bluetooth proxy. À toi de voir si tu les veux ou pas.
il faut du wifi 2.4Ghz.
Si sur les 3 points puis rename hostname.
c’est à mettre dans le YAML du ESP, par le bouton édite dans le dashboard ESPHome.
Le fichier YAML, du ESP, c’est la configuration du firmware pour le compilé.
Comme quoi les logos sont bien foutus !
Bon, aller je commence le tuto.
Je vois bien le grand sur HA, mais il se déconnecte tout le temps !
Est-ce que c’est parce que je ne l’ai pas ajouté via l’application Flower Care ? Si tel est le cas, il va falloir encore ajouter des trucs sur le tuto qui n’est pas encore remis complètement en forme encore.
Je ne peux te confirmer, mais comme je te l’ai déjà dit. Sans l’ajouter à l’application flower care, mon HA ne le voyait pas. Donc, je l’ai ajouté à l’application et de suite après HA me la détecter.
Ensuite pas eu de problème de déconnexion.
Après, je ne m’en servais jamais de l’application.
Moi, je le vois dans HA. Mais beaucoup de déconnexion.
D’un autre côté il n’est assigné à aucune plante !
Tu as peut-être le signal faible. De mémoire, on a un sensor RSSI. En dessous de -90 rssi , c’est juste.
Dis moi, toi aussi tu as souvent (tout le temps) des capteurs qui ne répondent pas et affichent des erreurs ? Problème de cache ?
Jamais eu de soucis. Je n’utilise plus les mii flora, je les ai utilisés 1 an 1/2 et jamais eu de problème.
J’avais un bluetooth proxy a 3m max, des mii flora.
j’utilisais la carte MiFlora card
Disons que parfois tout est bon et puis parfois j’ai pas d’information.
Et parfois sur une partie seulement des mesures d’un capteur (genre la conductivité par exemple).
Le grand a l’air de moins bien répondre.
J’ai une évolution pour toi sur le code :
# Transformation de la durée d'utilisation en texte
text_sensor:
- platform: template
id: lite_uptime
name: "Allumé depuis"
lambda: |-
int seconds = (id(uptime_sec).state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
if ( days > 3650 ) {
return { "Démarrage" };
} else if ( days ) {
return { (to_string(days) +"d " + to_string(hours) +"h " + to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
} else if ( hours ) {
return { (to_string(hours) +"h " + to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
} else if ( minutes ) {
return { (to_string(minutes) +"m "+ to_string(seconds) +"s ").c_str() };
} else {
return { (to_string(seconds) +"s ").c_str() };
}
icon: mdi:clock-start
update_interval: 60s
entity_category: "diagnostic"
Avec if ( days > 3650 ) on vérifie le démarrage parce qu’il affiche un nombre de jour ahurissant au démarrage. Ceci évite des affichages farfelus.






