
Le tableau de bord ESPHome est conçu pour tourner sur un ordinateur portable ou un serveur Home Assistant, et son bouton « Install » suppose une connexion serial USB filaire vers la machine de développement. Cela a laissé beaucoup de bricoleurs Android-only se demander s’ils peuvent flasher un ESP32 pour exécuter ESPHome sans emprunter un ordinateur. En 2026, la réponse est oui pour la plupart des cas, non pour la dernière étape, et les options ci-dessous couvrent tous les scénarios que vous êtes susceptibles de rencontrer.
La liste des applications compagnon Android pour les cartes ESP32 et ESP8266 plus largement se trouve dans notre sélection des 7 meilleures applications ESPHome et compagnon de microcontrôleurs pour Android. Ce guide se concentre sur la seule tâche que les apps compagnon contournent : mettre le firmware ESPHome sur une carte neuve pour la première fois.
Trois voies qui fonctionnent depuis Android
Les trois méthodes de flashage qui marchent vraiment sans ordinateur portable, dans l’ordre où vous devriez les essayer :
- Improv Wi-Fi via Bluetooth — la carte préflashée arrive avec Improv, le téléphone provisionne les identifiants Wi-Fi via BLE, le tableau de bord ESPHome sur le serveur la récupère pour l’OTA. Zéro câble, zéro terminal.
- Add-on Home Assistant plus OTA — vous exécutez déjà Home Assistant sur un mini PC ou Raspberry Pi. Le premier flash utilise n’importe quel ordinateur portable ou single-board computer ; chaque flash suivant se fait over-the-air depuis le téléphone.
- Serial USB-OTG — téléphone Android avec USB-C OTG plus une app terminal serial plus le binaire factory ESPHome. Fonctionne pour le flash initial. Pénible, mais sans ordinateur portable.
La méthode 1 est celle vers laquelle l’industrie est arrivée en 2026 et par laquelle commencer. La méthode 2 est le repli pour quiconque dont la carte n’est pas livrée avec Improv préinstallé. La méthode 3 concerne les cas limites : cartes ESP32-C3 ou ESP32-S3 neuves à amorcer depuis un flash complètement vierge.
Méthode 1 : Improv Wi-Fi depuis l’application Home Assistant Android
Package Google Play : io.homeassistant.companion.android — Home Assistant sur Aptoide
Improv Wi-Fi est un protocole ouvert maintenu par l’équipe Home Assistant / ESPHome. Une carte préflashée — prises intelligentes Athom, appareils Shelly passant à ESPHome, capteurs Everything Presence, la plupart du matériel prêt ESPHome à partir de 2025 — s’annonce via Bluetooth Low Energy. Le téléphone se connecte, envoie le SSID et le mot de passe Wi-Fi, puis passe la main au tableau de bord ESPHome pour les installations OTA de firmware ensuite.
Ce dont vous avez besoin
- Un ESP32 ou ESP8266 livré avec Improv préinstallé, ou une carte que vous avez déjà flashée une fois avec le composant ESPHome Improv activé.
- Home Assistant qui tourne sur votre réseau avec l’add-on ESPHome installé.
- L’application Home Assistant Android (lien ci-dessus) connectée à votre instance.
- Bluetooth activé sur le téléphone. Improv utilise le BLE, pas l’appairage Bluetooth classique.
Étapes
- Alimentez l’ESP32. Les cartes avec firmware usine Improv s’annoncent pendant les premières minutes de chaque démarrage.
- Ouvrez l’application Home Assistant Android. Elle écoute automatiquement les annonces Improv sur le même segment réseau et affiche une notification intitulée Set up nearby device. Si elle n’apparaît pas, tirez vers le bas pour rafraîchir le tableau de bord ou vérifiez que le scan Bluetooth est activé dans les paramètres Bluetooth d’Android.
- Appuyez sur la notification. Le téléphone se connecte via BLE, vous demande le réseau Wi-Fi à rejoindre et envoie les identifiants à la carte. L’ESP clignote sa LED intégrée pendant qu’il s’associe à votre Wi-Fi.
- Le tableau de bord ESPHome dans Home Assistant affiche le nouvel appareil sous Discovered. De là, adoptez-le, choisissez ou rédigez une configuration YAML, puis appuyez sur Install > Wirelessly. La compilation et le push OTA se font sur le serveur ; le téléphone observe seulement.
La seule chose à revérifier : l’ESP est sur le même sous-réseau que votre instance Home Assistant. Les Wi-Fi invités et SSID d’entreprise avec isolation client cassent le relais OTA. Mettez l’ESP sur votre réseau principal pour le premier flash, puis déplacez-le si besoin.
Méthode 2 : OTA après un flash unique côté serveur
Si votre carte n’est pas livrée avec Improv, vous n’avez toujours pas besoin d’un ordinateur portable pour la reflasher après la première fois. L’installateur OTA du tableau de bord ESPHome fonctionne via Wi-Fi une fois qu’un firmware ESPHome — aussi basique soit-il — est sur la carte.
Le hic, c’est que le premier flash doit avoir lieu quelque part. Trois façons pratiques :
- Exécuter ESPHome directement sur un Raspberry Pi avec la carte branchée. SSH depuis Termius sur Android vers le Pi, branchez l’ESP32 sur le port USB du Pi, exécutez
esphome run initial.yamldepuis le shell. Le Pi devient votre station de flash ponctuelle. - Utiliser le port USB de l’appareil Home Assistant Green / Yellow / OS. Home Assistant OS expose les périphériques serial USB connectés à l’add-on ESPHome. Branchez l’ESP sur la box HA, ouvrez le tableau de bord ESPHome dans le navigateur mobile, appuyez sur Install > Plug into the computer running ESPHome Dashboard. L’add-on flashe via la connexion serial USB locale sans ordinateur portable.
- Emprunter l’ordinateur portable d’un ami dix minutes pour le premier flash seulement, le rendre, puis faire toutes les mises à jour suivantes en OTA depuis l’application Android. C’est le défaut pragmatique.
Une fois que la carte a n’importe quelle build ESPHome, l’option Install > Wirelessly du tableau de bord ESPHome devient disponible et vous ne touchez plus à l’USB — jusqu’à ce que l’OTA casse et que vous deviez récupérer la carte.
Méthode 3 : Serial USB-OTG depuis Android
Recherchez ceci sur Google Play : Serial USB Terminal, DroidTerm, USB Serial Console
Le flashage serial direct depuis Android est la voie des cas limites. Android n’exécute pas nativement la toolchain Python ESPHome, donc cette méthode ne consiste pas à lancer esphome-flasher sur le téléphone — il s’agit de mettre un binaire factory préconstruit sur l’ESP via une app terminal serial.
Matériel nécessaire
- Un téléphone avec support hôte USB-C OTG. Presque tous les Android de 2020 et après l’ont ; les plus anciens ont besoin d’un câble OTG USB-C vers USB-A.
- Un câble de données USB-C vers USB-C, ou USB-C vers Micro-USB selon votre carte dev ESP.
- La carte ESP32 ou ESP8266 elle-même avec un pont USB-to-serial intégré (CP2102, CH340, CP210x — la plupart des cartes dev en ont un).
Logiciel
- Une app terminal serial qui parle USB-CDC au chipset CP2102 / CH340. Serial USB Terminal de Kai Morich est l’option gratuite la plus robuste sur Google Play ; DroidTerm est une alternative plus légère.
- Un fichier factory
binpréconstruit, téléchargé depuis l’étape de compilation du tableau de bord ESPHome sur n’importe quel ordinateur portable, ou depuis les téléchargements factory prêts ESPHome d’Athom / Shelly. - Termux plus
esptool.pypour ceux à l’aise avec un shell.
Étapes en bref
- Branchez le téléphone à l’ESP32 via le câble OTG. Android devrait proposer d’ouvrir l’app terminal ; accordez la permission USB.
- Connectez-vous à la carte à 115200 baud dans le terminal pour vérifier la communication.
- Si vous utilisez Termux, installez Python et
esptool(pkg install python && pip install esptool) et utilisezesptool.py --port /dev/bus/usb/... write_flash 0x0 firmware-factory.bin. Termux a besoin du pilote serial USB relié à/dev/bus/usb, ce qui fonctionne généralement sur Android moderne après accord de permission. - Si vous n’utilisez pas Termux, certaines apps GUI de flashage Android (cherchez sur Google Play des variantes ESP Flash Tool) peuvent pousser un factory
.bindirectement via le pont CP2102 / CH340.
La fiabilité varie selon le téléphone. Samsung et Pixel avec des versions Android récentes gèrent CP2102 et CH340 out of the box ; d’anciennes builds Xiaomi et Realme demandent parfois d’accorder la permission OTG-USB deux fois. Toute la méthode est nettement moins agréable qu’Improv Wi-Fi ; considérez-la comme le dernier recours.
Ce que Home Assistant sur Android peut et ne peut pas faire
L’application Home Assistant Companion Android est le point d’arrivée des trois méthodes — le tableau de bord ESPHome vit dans Home Assistant, donc une fois l’appareil sur votre réseau, il apparaît dans l’app pour la surveillance et les mises à jour OTA. Ce que l’app elle-même ne peut pas faire :
- Compiler le firmware ESPHome localement sur le téléphone. Le compilateur ESPHome tourne sur le serveur, pas sur le téléphone. Votre téléphone est une surface de contrôle pour une compilation distante.
- Pousser des flashs serial USB sans le serveur. L’app Companion n’a pas de fonction directe de flashage USB-OTG. Si vous voulez que le téléphone soit le compilateur, vous sortez du flux supporté.
- Provisionner Improv-over-Serial. La variante Improv Wi-Fi fonctionne depuis Android ; la variante Improv Serial nécessite une connexion filaire à l’hôte du tableau de bord ESPHome.
L’app est excellente pour ce qu’elle fait : provisioning Improv BLE, consultation des données capteurs, déclenchement d’automatisations, réception de notifications de vos ESP32 une fois en ligne. Elle remplace l’ordinateur portable pour le quotidien. Elle ne le remplace pas pour le premier bootstrap d’une carte complètement vierge, sauf si la carte est livrée prête Improv.
Pièges courants lors du flashage ESPHome depuis Android
- La carte est sur un Wi-Fi avec portail captif. Improv envoie les identifiants, mais les réseaux Wi-Fi exigeant une connexion via portail captif dans le navigateur (réseaux invités, Wi-Fi de café) n’associeront pas un ESP32 sans interaction. Déplacez la carte vers un SSID normal pour le provisioning.
- Home Assistant est sur un VLAN différent. ESPHome OTA nécessite la découverte mDNS sur le même domaine de broadcast. Si vos ESP sont sur un VLAN IoT et Home Assistant sur le LAN principal, activez la réflexion mDNS sur le routeur ou provisionnez l’ESP sur le même VLAN que HA et déplacez-le ensuite.
- Permission de scan BLE manquante. Android 12+ sépare Bluetooth en Nearby devices (scan) et Bluetooth Connect. Improv a besoin de la permission de scan — accordez les deux à l’application Home Assistant.
- Le câble USB-OTG est charge-only. Les câbles USB-C vers USB-C bon marché fournis avec les chargeurs muraux manquent souvent de paires de données. Symptôme : le téléphone reconnaît que l’ESP tire de l’énergie mais n’énumère jamais le périphérique serial. Utilisez un câble certifié données.
- La carte reste incorrectement en mode boot. ESP32-C3 et ESP32-S3 ont parfois besoin que le bouton
BOOTsoit maintenu à la mise sous tension avant le flashage serial. Les câbles USB-OTG qui alimentent aussi la carte compliquent cela. Utilisez un câble en Y ou une alimentation séparée si vous rencontrez ce cas.
Où chaque méthode s’intègre
| Méthode | Premier flash d’une carte vierge | Reflash après première configuration | Nécessite un ordinateur portable |
|---|---|---|---|
| Improv Wi-Fi depuis l’app HA Android | Seulement si la carte est livrée prête Improv | Oui (via Wi-Fi) | Non |
| ESPHome OTA après premier flash côté serveur | Non (serveur ou portable d’un ami une fois) | Oui (via Wi-Fi) | Une fois |
| Serial USB-OTG depuis Android | Oui | Oui | Non |
L’ordre d’essai reste le même : Improv d’abord, OTA après bootstrap côté serveur ensuite, serial USB-OTG seulement quand les deux premiers ne sont pas disponibles.
FAQ
Puis-je exécuter le tableau de bord ESPHome complet sur mon téléphone Android ?
Pas nativement. Le tableau de bord ESPHome est une application web Python qui tourne sur Home Assistant OS, un conteneur Docker ou une installation Linux. Vous pouvez y accéder dans un navigateur mobile et tout contrôler depuis le téléphone, mais la toolchain de compilation tourne côté serveur.
Ai-je besoin de Home Assistant pour utiliser ESPHome depuis Android ?
Le provisioning Improv Wi-Fi et le flashage OTA supposent tous deux qu’un tableau de bord ESPHome est joignable depuis l’ESP. Ce tableau de bord vit généralement dans Home Assistant. Vous pouvez exécuter l’image Docker ESPHome sans Home Assistant, mais le côté Android du flux est conçu autour de l’intégration Improv de l’application Home Assistant Companion.
Et si ma carte ESP32 n’a pas de pont USB-to-serial ?
Certains modules ESP32-S3 et ESP32-C3 plus récents exposent l’USB directement sans pont CP2102 ou CH340. Ils apparaissent parfois comme périphérique USB CDC natif auquel les apps terminal Android peuvent parler, mais les quirks de changement de mode varient selon le fabricant de la carte dev. Improv Wi-Fi ou un premier flash côté serveur contournent entièrement le problème.
Improv Wi-Fi est-il sécurisé ?
Improv chiffre les identifiants Wi-Fi en transit via BLE avec une clé de session. Il n’authentifie pas l’ESP — un attaquant à proximité pourrait techniquement usurper un appareil qui annonce Improv. En pratique, cela ne compte que pour le moment du premier provisioning. Ensuite, l’ESP est sur votre Wi-Fi et communique avec Home Assistant via le LAN.
Puis-je flasher ESPHome depuis un iPhone de la même façon ?
Improv Wi-Fi fonctionne depuis iOS via Web Bluetooth dans Safari, et l’application Home Assistant iOS prend en charge le provisioning Improv. Le flashage serial USB-OTG est beaucoup plus restreint sur iOS car les adaptateurs Lightning-vers-USB et USB-C-vers-USB d’Apple n’exposent pas la couche serial CDC aux apps tierces comme le fait Android.