Firmware du thermostat d'hôtel : le fournisseur affirme que la mémoire flash s'efface par blocs, donc pas de petites mises à jour. Risqué d'envoyer l'image complète ?
Traduit de English par IA ·
Responsable technique d’un hôtel de 120 chambres. Chaque chambre est équipée d’un contrôleur de thermostat d’un petit fournisseur, avec un ESP32 à l’intérieur, connecté à Hermetry via le Wi-Fi de l’hôtel. Ils veulent corriger un bug où le ventilateur reste allumé, et le plan est d’utiliser les mises à jour firmware de Hermetry.J’ai demandé s’ils pouvaient envoyer « juste le correctif » pour aller plus vite. Le fournisseur a refusé : la mémoire flash ne peut être effacée que par blocs, donc ils envoient toujours l’image complète de 1,4 Mo. Cela semble plausible, mais je ne comprends pas vraiment. Mes vraies inquiétudes sont que 120 chambres téléchargent en même temps sur le Wi-Fi des clients, et qu’une image défectueuse laisse des chambres sans chauffage en novembre. Est-il risqué d’envoyer l’image complète à toutes ?
Facility manager at a 120-room hotel. Every room has a thermostat controller from a small vendor, ESP32 inside, connected to Hermetry over the hotel Wi-Fi. They want to fix a bug where the fan stays on, and the plan is to use Hermetry’s firmware updates.
I asked if they could send « just the fix » to keep it quick. The vendor said no, the flash can only be erased in blocks so they always send the whole 1.4 MB image. That sounds plausible but I don’t really understand it. My real worries are 120 rooms downloading at once on the guest Wi-Fi, and a bad image leaving rooms with no heat in November. Is pushing the full image to all of them risky?
Traduit de English par IA ·
Le problème des blocs est vrai, mais ce n’est pas vraiment la raison. La mémoire flash s’efface par secteurs de 4 Ko et s’écrit par pages, donc on ne peut pas modifier des octets en place. Les mises à jour différentielles restent possibles : l’appareil reconstruit la nouvelle image à partir de l’ancienne et du patch dans une partition de secours. Cela demande du code supplémentaire dans l’appareil et un outil de patch côté fournisseur. La plupart des petits fournisseurs ne s’en donnent pas la peine.Le point de sécurité à demander est de savoir s’ils disposent de deux partitions OTA. Dans ce cas, la nouvelle image est écrite dans la partition inactive et l’ancienne reste disponible si le démarrage échoue.
The block thing is true but not really why. Flash is erased in 4 KB sectors and written in pages, so you can’t patch bytes in place. Delta updates are still possible, the device rebuilds the new image from old image plus patch into a spare partition. It needs extra code on the device and a patch tool on the vendor’s side. Most small vendors don’t bother.
The safety bit you want to ask about is whether they have two OTA partitions. Then the new image goes into the inactive one and the old one is still there if it fails to boot.
Traduit de English par IA ·
Je leur ai demandé. Ils disent « ota_0 and ota_1 with rollback enabled », 4 Mo de flash. Aussi des images signées, ce que ça veut dire pour moi, je ne sais pas.
Asked them. They say « ota_0 and ota_1 with rollback enabled », 4 MB flash. Also signed images, whatever that means for me.
Traduit de English par IA ·
Dans ce cas l’image complète convient, je cesserais de m’inquiéter pour le delta. Nous avons envoyé une image de 1,6 Mo à environ 200 contrôleurs dans notre usine le printemps dernier. Le déploiement progressif est ce qui nous a rassurés.Pour l’affectation du paquet, choisissez Chaque appareil du profil et activez Envoyer par vagues. Le plan habituel consiste en un canari de 1 % (au moins un, au plus dix), puis 10 %, puis 50 %, puis le reste, avec 15 à 30 minutes d’attente entre chaque vague ; le déploiement se met automatiquement en pause si une vague dépasse 5 % d’échecs. Pour un hôtel, je modifierais les vagues : première vague de 3 chambres accessibles à pied, attendre quelques heures, puis 20, puis le reste pendant la nuit. Personne ne télécharge avant sa vague, donc le Wi-Fi ne voit que quelques appareils à la fois.Autres éléments qui nous ont aidés :
- Testez d’abord avec des affectations Un seul appareil sur deux unités.
- Le lien de téléchargement expire au bout de 15 minutes, mais l’appareil peut le redemander et reprendre avec une requête HTTP Range, donc une chambre instable n’est pas un drame.
- Un appareil qui ne repasse pas sur la nouvelle version apparaît comme Revenu à l’ancienne version : c’est la preuve que votre retour arrière fonctionne.
Détails : Déploiement du firmware par vagues.
Then the full image is fine, I’d stop worrying about delta. We pushed a 1.6 MB image to about 200 controllers at our plant last spring. The rollout is what made it calm.
On the package assignment pick Every device of the profile and turn on Send in waves. The usual plan is a canary of 1% (at least one, at most ten), then 10%, then 50%, then the rest, with 15-30 minute waits between, and it pauses itself if a wave has more than 5% failures. For a hotel I’d edit the waves: first wave 3 rooms you can walk to, wait a couple of hours, then 20, then the rest overnight. Nobody downloads before their wave, so the Wi-Fi only ever sees a few at once.
Other things that helped us:
- Test with One device assignments on two units first.
- The download link expires after 15 minutes but the device can ask again and resume with an HTTP Range request, so a flaky room isn’t a disaster.
- A device that doesn’t come back on the new version shows as Went back to the old version, that’s your rollback working.
Details: Rolling out firmware in waves.
Traduit de English par IA ·
Nous l’avons fait la semaine dernière avec mes propres vagues : 3 chambres au 2e étage d’abord, puis 20, puis le reste à 1 h du matin. Une chambre a affiché Not for this device lors de la vague 2, son contrôleur était sur une version antérieure à la version minimale autorisée par le package, elle a donc été ignorée. Le fournisseur la flashe manuellement. Le bug du ventilateur a disparu partout ailleurs. Bien moins effrayant que je ne l’imaginais.
We did it last week with my own waves, 3 rooms on floor 2 first, then 20, then the rest at 1 a.m. One room showed Not for this device in wave 2, its controller was on a version older than the package’s lowest allowed one, so it got skipped. Vendor is flashing that one by hand. Fan bug gone everywhere else. Much less scary than I expected.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

