ESP32 OTA and battery reporting

Over-the-air firmware updates and optional battery/RSSI fields for push ingest devices.

OTA updates

Use the Arduino OTA or ESP-IDF HTTPS OTA libraries on your LAN, then POST readings to ThermalTrace over HTTPS. OTA and ingest are independent — firmware updates locally while telemetry uses /api/ingest/<key>.

#include <ArduinoOTA.h>
// After WiFi.connect():
ArduinoOTA.begin();
// in loop():
ArduinoOTA.handle();

Battery and RSSI in ingest

Include optional top-level fields so the Devices page and health alerts stay accurate:

{
  "temp1": 42.5,
  "door1": false,
  "battery": 87,
  "rssi": -62
}

Enable low-battery and weak-signal alerts under Dashboard → Alerts → Device health.