Firmware del termostato del hotel: el proveedor dice que la flash se borra por bloques, así que no hay actualizaciones pequeñas. ¿Es arriesgado enviar la imagen completa?
Traducido del English por IA ·
Director de instalaciones de un hotel de 120 habitaciones. Cada habitación tiene un controlador de termostato de un pequeño proveedor, con un ESP32 dentro, conectado a Hermetry a través del Wi-Fi del hotel. Quieren corregir un error en el que el ventilador se queda encendido, y el plan es usar las actualizaciones de firmware de Hermetry.Pregunté si podían enviar «solo la corrección» para agilizarlo. El proveedor dijo que no: la flash solo se puede borrar por bloques, así que siempre envían la imagen completa de 1,4 MB. Suena plausible, pero no lo entiendo del todo. Mis verdaderas preocupaciones son que 120 habitaciones descarguen al mismo tiempo por el Wi-Fi de los huéspedes y que una imagen defectuosa deje habitaciones sin calefacción en noviembre. ¿Es arriesgado enviar la imagen completa a todas?
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?
Traducido del English por IA ·
Lo de los bloques es cierto, pero no es realmente el motivo. La flash se borra en sectores de 4 KB y se escribe por páginas, así que no puedes parchear bytes en su lugar. Las actualizaciones delta siguen siendo posibles: el dispositivo reconstruye la nueva imagen a partir de la imagen antigua más el parche en una partición de reserva. Necesita código extra en el dispositivo y una herramienta de parcheo en el lado del proveedor. La mayoría de los proveedores pequeños no se molesta en hacerlo.La parte de seguridad que te conviene preguntar es si tienen dos particiones OTA. Así, la nueva imagen se escribe en la inactiva y la antigua sigue ahí si no arranca.
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.
Traducido del English por IA ·
Les preguntó. Dicen «ota_0 and ota_1 with rollback enabled», 4 MB de flash. También imágenes firmadas, lo que sea que eso signifique para mí.
Asked them. They say «ota_0 and ota_1 with rollback enabled», 4 MB flash. Also signed images, whatever that means for me.
Traducido del English por IA ·
Entonces la imagen completa está bien, yo dejaría de preocuparme por el delta. Enviamos una imagen de 1,6 MB a unos 200 controladores de nuestra planta la primavera pasada. El despliegue por oleadas es lo que nos dio tranquilidad.En la asignación de paquetes elija Cada dispositivo del perfil y active Enviar en oleadas. El plan habitual es un canario del 1 % (como mínimo uno, como máximo diez), luego el 10 %, luego el 50 %, y después el resto, con esperas de 15 a 30 minutos entre ellas; se pausa solo si una oleada supera el 5 % de fallos. Para un hotel, yo editaría las oleadas: primera oleada de 3 habitaciones a las que pueda llegar caminando, esperar un par de horas, luego 20, y el resto durante la noche. Nadie descarga antes de su oleada, así que el Wi-Fi solo ve unos pocos a la vez.Otras cosas que nos ayudaron:
- Pruebe primero con asignaciones de Un solo dispositivo en dos unidades.
- El enlace de descarga caduca a los 15 minutos, pero el dispositivo puede volver a pedirlo y reanudar con una petición HTTP Range, así que una habitación con conexión inestable no es un desastre.
- Un dispositivo que no vuelve a la nueva versión aparece como Volvió a la versión anterior, eso es su reversión funcionando.
Detalles: Despliegue de firmware por oleadas.
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.
Traducido del English por IA ·
Lo hicimos la semana pasada con mis propias oleadas: primero 3 habitaciones de la planta 2, luego 20, y el resto a la 1 a. m. Una habitación mostró Not for this device en la oleada 2, su controlador tenía una versión anterior a la mínima permitida por el paquete, así que se omitió. El proveedor la está flasheando a mano. El fallo del ventilador desapareció en todas las demás. Mucho menos aterrador de lo que esperaba.
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.
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

