Compilation
Compiler un firmware ESPHome en ligne
Depuis l'onglet Mes firmwares de votre app Elark, écrivez votre configuration ESPHome, lancez la compilation, et récupérez un binaire prêt à flasher (USB) ou à déployer en OTA — sans installer ESPHome chez vous.
Lecture 6 min
1. À qui ça s'adresse
La compilation en ligne est une fonctionnalité du plan Intégrateur. Elle est pensée pour qui veut maîtriser finement le firmware de ses appareils sans installer ESPHome ni PlatformIO sur sa machine. Vous écrivez votre YAML, Elark s'occupe du reste (cache toolchain, packages, signature, distribution).
Si vous n'avez pas besoin de ce niveau de personnalisation, le Marketplace reste la voie la plus rapide : un template, vos variables, un bundle prêt à flasher.
2. Préparer : vos identifiants WiFi du workspace
Avant de compiler, renseignez les identifiants de votre workspace dans Paramètres › Secrets du workspace :
- WiFi SSID et WiFi mot de passe : utilisés par vos firmwares quand vous écrivez
!secret wifi_ssid/!secret wifi_password. - web_server user et web_server mot de passe : protègent l'interface web locale embarquée par ESPHome (
!secret ws_user/!secret ws_password).
Une fois enregistrés, ces secrets sont automatiquement injectés dans le fichier secrets.yaml au moment de la compilation. Vous n'avez pas besoin de les remettre dans chaque firmware.
Seul un OWNER ou un ADMIN du workspace peut voir/modifier ces secrets. Un membre TECHNICIEN, VIEWER ou un INTEGRATOR géré n'y a pas accès — c'est volontaire (vos credentials WiFi restent privés à votre équipe).
3. Compiler un firmware
- Ouvrez Mes firmwares dans le dashboard (
/dashboard/firmwares). - Donnez un nom à votre firmware (ex. « Prise salon ») — il sert d'identifiant lisible dans la liste.
- Collez ou éditez votre configuration ESPHome (YAML). Vous pouvez utiliser
!secret wifi_ssidet les autres références aux secrets du workspace (cf. §2). - Cliquez Compiler. Le job apparaît en En file d'attente, puis Compilation en cours (avec un compteur de secondes en temps réel), puis Terminée au bout de quelques minutes (~3–6 min selon la complexité).
En cas d'erreur, le message vous indique précisément ce qui ne va pas (variable manquante, composant non supporté, syntaxe YAML invalide…). Cliquez Modifier la config pour reprendre votre YAML directement dans l'éditeur.
4. Récupérer votre firmware
Une fois la compilation terminée, deux options :
- Télécharger .bin : récupère le binaire sur votre machine pour un flashage USB classique (ex. via
web.esphome.io, esp-web-tools, ou ESPHome Dashboard). - Déployer OTA : sélectionnez un de vos appareils dans la liste déroulante puis cliquez Déployer OTA. Elark envoie la mise à jour à votre appareil sans manipulation physique — à condition qu'il soit déjà connecté au cloud Elark. Si votre ESP a été flashé à la main hors Elark, il vous faut d'abord lui installer une première fois un firmware Elark (USB) pour qu'il accepte ensuite les OTA distantes.
5. Sécurité
Quelques garanties que nous prenons sur ce flux — sans rentrer dans les détails techniques d'implémentation :
- Compilation isolée et hors-ligne. Chaque compilation s'exécute dans un environnement éphémère, sans accès à Internet, détruit à la fin du build. Aucun build ne peut appeler de service externe, exfiltrer des données, ni voir le travail d'un autre utilisateur.
- Code arbitraire refusé. Les configurations ESPHome comportant du code non maîtrisé (
lambda, composants externes, includes distants…) sont rejetées en amont — seules les configurations utilisant les composants supportés atteignent l'environnement de compilation. - Secrets chiffrés au repos. Vos identifiants WiFi / web_server du workspace sont stockés chiffrés en base de données et ne sont jamais restitués en clair via l'API. L'interface affiche uniquement « défini » ou « non défini ». Seul le serveur les déchiffre, le temps d'une compilation, dans l'environnement isolé évoqué ci-dessus.
- Firmware signé avant déploiement. Chaque firmware déployé en OTA est signé cryptographiquement par notre infrastructure avant de quitter nos serveurs. Vos appareils embarquent la clé publique correspondante et refusent toute image dont la signature n'est pas valide — un binaire non émis par Elark ne peut donc pas être installé.
- Téléchargement privé. Le
.bincontient vos identifiants compilés ; il n'est jamais servi via une URL publique. Le téléchargement passe par votre session authentifiée et est scopé à vos firmwares uniquement. - Cloisonnement entre workspaces. Vos firmwares et vos secrets sont strictement isolés des autres workspaces. Un intégrateur qui gère vos appareils n'a pas accès à vos identifiants WiFi.
6. Limites
- Quota : jusqu'à 10 firmwares stockés simultanément par utilisateur. Supprimer un firmware libère un slot.
- Concurrence : vos compilations sont mises en file et exécutées une à une (équitable + protège l'infrastructure).
- Durée : typiquement 3 à 6 min ; les builds dépassant 10 min sont arrêtés automatiquement.
- Cible : ESP32 (esp-idf) — c'est la plate-forme recommandée par Elark pour le cloud (l'ESP8266 reste utilisable en local mais ne peut pas se connecter au broker MQTT, cf. cette page).
7. En cas de problème
- « Réservé au plan Intégrateur » : vous êtes encore en Découverte — passez en Intégrateur depuis
/dashboard/billing. - Échec « secret non trouvé » : vous utilisez
!secret wifi_passwordmais n'avez pas renseigné vos secrets workspace (cf. §2). - OTA déclenchée mais l'appareil ne met pas à jour : l'appareil n'est probablement pas configuré pour le cloud Elark (firmware d'origine sans le client OTA Elark). Un premier flash USB avec un firmware Elark règle le problème pour de bon.
- Erreur YAML inconnue : comparez votre config avec un template du Marketplace, qui sert de référence des composants supportés.