Do you refer beside pressing the physical button the boards (various ESP8266/Arduino flavors) usually have?
If wanting to reset an unresponsive board then you have basically two options:
- add software instructions to reboot the board case it is not reachable (ie. by periodically testing MQTT broker connection); but if the required process for monitoring crashed too, it won’t be able to reboot;
- restart the external power source (ie. by using a smart plug); this one will require external intervention (something like: HA monitors the LWT topic for the board and then turns the smart plug off and on again); I use something like this with ESP32 for MiFlora monitoring as I cannot get the damn board to stay online for more than several hours a day (in fact the issue is probably in the firmware not middleware like OMG as none of the other projects I tried with can keep it working for more than several days; once the board losses Wifi connection, it is able to reconnect the first 2 - 3 times for about 2-3 hours, however subsequent tries end up in failure); by restarting the 220 V plug the ESP32 comes online again.