-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
As u/__deeetz__ pointed out, the esp32 already had a good OTA mechanism, and there are some libraries that simplify the whole process - probably one of the more popular ones is ElegantOTA: https://github.com/ayushsharma82/ElegantOTA If I understand what you're doing correctly, you'll really have just 2 layers, not 3 - one being your application (which effectively has the Kernel/OS compiled in), and then your scripting/LUA component. Technically the ESP32 also has a bootloader portion, but it's pretty uncommon to need to modify that in any way, so I would highly recommend against doing that. As far as dealing with the LUA scripts - you can easily download and run those - you'll store them into NV ram, and I believe the current recommended format is LittleFS. Keep in mind that on a normal ESP32 configured to do OTA updates there's 4MB of storage, 2x 1.8MB for the two bootable images, and ~200k for the file system (in this case LittleFS). There are also other boards which come with more flash memory, like the new S3R8 has 16MB of flash, so your OTA partitions stay about the same in most cases, but you now have ~12MB of storage, which I suspect would be way beyond anything you'd need for storing LUA.