I am curious about what everyone does for managing your devices outside the realm of general operation ie. sending MQTT messages.
I have a growing number of ESP devices now and I have started to write a firmware that is unified between them to make firmware and general parameter updates easier. They have a section of the memory that is specific to the application of the device, but general stuff like Wifi, MQTT, OTA, and a range of functions like deepsleep routines are unified in the firmware.
I have baked in a Webserver to each device so that pretty much all settings and parameters can be updated through a web ui (similar to Tasmota, but better-looking ).
This is great for updating stay the wifi credentials on 5-10 devices, but as I get more devices (and probably add more options to the unified firmware this will be a pain for updating anything.
Currently in progress
To solve this problem I am using my central server to host a central UI, this host has a REST API I have built in and each ESP has a simple API for GET/POST requests from the host, and also POST from the device for things like Watchdog, Error/Warning logs, Device status, General device info like free memory, uptime etc.
I also wanted the ability for my devices like temp/humid sensors to update the openhab persistence DB with values that are collected when we have wifi scheduled off, then it can do a bulk dump to the host for processing rather than writing directly to the DB.
I am also baking in the ability for bulk device setting updates, so essentially do a multi-select and update device settings, but also the ability to write the unified firmware to all selected devices.
Have I gone crazy?
I have yet to get the partial firmware update finished, and all the GET request built in. The basic function is working and very nicely at that, but I am interested in what others are doing in this regard.
Obviously, it’s a bit more of a pain the more different chips one has, as the libraries will vary across them but currently have found the ESP8266 covers most of my requirements and if I need more GPIO I just use an extender chip.
What do you guys do?