ESP32 Batch OTA Update System

Global Update Policy

Master Updates Globally: DISABLED

Slave Updates Globally: DISABLED

Policy Code: , Set at: 2024-01-01 00:00:00

This is a global switch. Updates are only offered if enabled AND correctly assigned.
Current Active Assignments by Batch
Batch IDRelease NameM VerS VerAssignedDetails
1 1.0.6 1.0.6 None 2025-12-12 12:33:58
2 1.0.6 1.0.6 None 2025-12-12 12:33:58
7 1.0.6 1.0.6 None 2025-12-12 12:33:58
8 1.0.6 1.0.6 None 2025-12-12 12:33:58
Firmware Releases
1.0.6 1.0.6 None 2025-12-12 12:33:58
0.0.12 0.0.12 None 2025-10-20 15:26:39
0.0.9 0.0.9 None 2025-09-17 16:53:19
Firmware Rollout Status

Assigned Batches Progress:
Batch ID Total Devices Master Updated (1.0.6) Slave Updated (None)
1 0
0
0
2 0
0
0
7 0
0
0
8 0
0
0
* Total devices based on ACTIVE devices in `serial_deviceserial` table for that batch.

Assigned Batches Progress:
Batch ID Total Devices Master Updated (0.0.12) Slave Updated (None)
1 0
0
0
2 0
0
0
7 0
0
0
* Total devices based on ACTIVE devices in `serial_deviceserial` table for that batch.

Assigned Batches Progress:
Batch ID Total Devices Master Updated (0.0.9) Slave Updated (None)
1 0
0
0
2 0
0
0
7 0
0
0
* Total devices based on ACTIVE devices in `serial_deviceserial` table for that batch.
Devices & Firmware Overrides
Clear
UID Serial Batch ID MAC Effective Firmware Assignment Actions
E5.9F.AA.B3.... SG100 None 34.CD.B0.0C.EF.8C None
FA.2F.AE.6F.... SG159 None 26.ED.A0.81.C9.E8 None
70.29.E4.D1.... SG164 None 30.ED.A0.21.CA.40 None
8E.AB.C5.AF.... SG132 2 4E.1E.98.61.BF.44 Batch: 1.0.6
77.6B.65.4A.... SG136 2 30.ED.A0.21.C9.F0 Batch: 1.0.6
64.D1.DB.84.... SG139 7 10.20.BA.60.74.68 Batch: 1.0.6
18.F9.53.58.... SG163 8 DC.DA.0C.3B.B3.64 Batch: 1.0.6
DE.88.59.B9.... SG165 8 DC.DA.0C.3B.B3.48 Batch: 1.0.6
A9.40.77.63.... SG166 8 DC.DA.0C.3B.B3.88 Batch: 1.0.6
3C.6A.02.CB.... SG167 8 DC.DA.0C.3B.B3.94 Batch: 1.0.6
64.F7.88.ED.... SG168 8 DC.DA.0C.3B.B3.54 Batch: 1.0.6
Shows ACTIVE devices from `serial_deviceserial`. Use dropdown to override firmware assignment per device.
API Update Request Log (Since Server Start)
Timestamp UID Batch ID Req M Ver Req S Ver Policy Target M Ver Target S Ver Offered Code Source Release ID
2025-12-21 05:57:38 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-21 05:56:06 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-21 05:55:56 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-21 05:55:23 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-18 14:43:17 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 14:20:06 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 14:17:14 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 14:08:58 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 14:08:45 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 14:08:13 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:56:56 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:46:09 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:43:54 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:40:18 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:25:32 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:09:54 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-18 13:06:12 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 13:04:50 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 12:46:49 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 12:37:28 3C.6A.02.CB.... 8 1.0.3 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 12:29:11 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 12:28:19 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 12:27:10 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 12:24:09 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:53 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:43 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:33 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:23 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:15 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:08 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:38:04 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:37:59 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:27:00 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:26:52 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:26:45 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:26:36 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:26:29 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:26:22 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:26:02 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:53 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:42 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:36 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:28 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:19 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:11 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:25:01 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:24:55 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:24:46 A9.40.77.63.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:18:15 A9.40.77.63.... 8 1.0.5 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:14:42 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 11:00:32 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 10:57:13 3C.6A.02.CB.... 8 1.0.6 0.0.1 00 1.0.6 None 00 Batch '8' (Release I N/A
2025-12-18 10:43:01 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-18 10:35:59 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-18 10:19:26 64.D1.DB.84.... 7 1.0.6 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
2025-12-18 09:23:40 64.D1.DB.84.... 7 1.0.5 0.0.1 00 1.0.6 None 00 Batch '7' (Release I N/A
This log shows API checks since the server last started and is cleared on restart.
API Documentation
Check for Updates
POST /api/check_update
Content-Type: application/json

{
  "uid": "device-unique-id",
  "master_version": "current-master-version",
  "slave_version": "current-slave-version"
}
Response Format (Success)
{
  "update_status": "11", // Example: Master & Slave needed
  "reason": "Update available via Batch 'DEFAULT'.", // Explains outcome
  "master_firmware_url": "http://server/api/firmware/download/master/",
  "slave_firmware_url": "http://server/api/firmware/slave/"
}
Response Format (No Update / Error)
{
  "update_status": "00",
  "reason": "Device up-to-date or update disabled..." // Or other reasons
}
Download Master Firmware
GET /api/firmware/download/master/
Get Slave Firmware Metadata
GET /api/firmware/slave//info
Get Slave Firmware Chunk
GET /api/firmware/slave//chunk/
Report Update Status
POST /api/update_status
Content-Type: application/json

{
  "uid": "device-unique-id",
  "device_type": "master",  // or "slave"
  "status": "SUCCESS",      // or "FAILED"
  "version": "version_after_update_attempt",
  // Optional fields the device *could* send:
  "release_id": 123, // ID of the firmware it attempted
  "batch_id": "DEFAULT" // Batch ID at time of attempt
}