Coming from Terkin for MicroPython, we would like to manage the FiPy ESP32-based device solely over IP networks, even when in field mode with enabled deep sleep. The workflow would be like:
- Discover the device.
- Access the device.
- Pull it out of field mode and put it into maintenance mode.
This topic is about further investigating how we could manage that.
Device is on the local network
The main problem we see here is finding out about the IP address when the device is connected to the same local network your workstation is running in. The device hostname will be
espressif. We will discuss how local discovery might be performed through brute force methods like network scanning  and will eventually settle to investigate further into applying more intelligent technologies like mDNS/Bonjour  coming from the technology domain of Zero-configuration networking - Wikipedia. This is the baseline method if no other connections are available to get through to the device.
Device is available through the messaging substrate
We will find the discussion will spread into another direction by also giving some ideas about how to implement the workflow outlined above by exchanging appropriate messages between the device and some control pad over the MQTT bus all devices are attached to. That would be the remote controlled way of managing a device in the field without having it on your desktop either attached to your workstation or in your local network at least. This method requires the device to be subscribed to a MQTT broker.
Device is available through other means
Other transports for downlinking messages will be unlocked, we are looking at UDP-over-LTE  and LoRaWAN here.