Has anyone run across a centralized management app for the ESP?

Has anyone run across a centralized management app for the ESP? Here’s what I’m thinking…

I flash a basic generic sketch to a new ESP that gets it on the WiFi network, enables OTA updates and then registers the serial number (via URL) with a network database. The device will just sit there, and poll a URL every N seconds.

On the (dashboard?), I see a new serial show up, and I assign it to a roll I’ve defined (hygro node, basic temp, thermostat, light switch, etc). The next time the ESP polls the configuration URL, it will receive a link to new firmware for its assigned roll, download and apply the firmware and then check the configuration url again.

This time the URL would provide an MQTT server address, topics to subscribe and publish to, sleep period timeout, etc.

I see doing this pretty easily with node.js … any ideas?

Check out WiFiManager (https://github.com/tzapu/WiFiManager). It already provides a large chunk of this functionality.

That app appears to require interaction with the node, for the purpose of connecting to a WiFi network? I think that might be handy for some other projects, but in terms of automated IoT deployment, I’m not visualizing how it helps. I’ll try to post up some more details on my idea this weekend.

Sounds a little like blynk to me.

Interesting but scary, going to “just say no” to anything relying on Internet or “the cloud” :slight_smile: 99% of my nodes don’t need a dashboard, they’re more industrial, they either gather information or flip switches. I have node-red providing a basic dashboard, and will eventually create something more formal with jquery mobile

What I’m looking for is centralized management. If I update my thermostat code, or hygro probe code, I upload that to the management server, and as nodes check in, they grab the firmware they need, so I don’t have to visit each one directly. Or lets say I change the IP or port number for my MQTT server, I update that on the management server and all the nodes update as they check in.

I believe you’re supposed to be able to run your own local instance of a blynk server, but I had issues getting it going and couldn’t find much help.

Anyway, see what you’re looking for, but my understanding of the ESP was that it didn’t have enough flash for OTA updates, but that it can be upgraded manually.

Oh yes, I have OTA working quite well, but the only ESP I’ve worked with are ESP-01, ESP-07 and ESP-12F, so I can’t say it works for every variant. The 01 and 07 have 1 meg of flash, the 12F has 4 meg. So far I’ve been using ArduinoOTA through the IDE, I haven’t learned the other ota methods yet.

Sounds like you just need an index of your devices, and something to watch your git repos for updates, then compile them and load them on your devices.
You should be able to streamline that workflow with Jenkins, but it’d be like killing a horsefly with a howitzer. :wink:
I’d probably run Jenkins (and gitlab if you need it) in a Docker container if I were going to do that.

I have to say that I don’t have much practical experience with the esp8266. But to me that sounds like a problem which could be solved with the MQTT protocol.

I would setup a broker like Mosqitto and let the device publish a topic with “SERIAL/status” so you could monitor it. To be able to push messages to it, subscribe to “SERIAL/ACTION”, where ACTION could be anything between “update” and URL in the message or “restart”. I bet you see where this is going.

Err, whoops. I didn’t see you already had the idea with MQTT. My bad.