Mobile Hotspot timer without root? I have a Moto E (2015) and I have a hotspot plan that I let my family use. The Moto E has stock Tethering support. However, there are some limitations. 

The hotspot would not turn off automatically. This could potentially create two serious problems. One is that the tethered devices continue to tether even when they are at a place with free Wi-Fi. The other issue is that I could forget that my Wi-Fi was used for hotspot and ended up using my Mobile Data when free Wi-Fi is available. 

The best I could come up with is manually setup a reminder every time I turn on Hotspot but it is rather cumbersome and it requires me to manually turn hotspot off. I searched around for this topic but I don't see any solution. Would like to hear some better ideas.
There are many automation apps that can help here.
MacroDroid
It is a free/paid app. Free version would suffice for the goal however.
The macro would be:

Trigger: Hotspot Enabled/Disabled → Hotspot Enabled

Actions:

Wait Before Next Action → set the timer per your needs
HotSpot On/Off → Disable HotSpot


Constraints: none


This method, due to some technical limitations, may not work on every Android version, though I had success with both Android 4.2.1 and 5.0.2

Automate
It is a free app with in-app purchases. No purchases are required to achieve the goal however.
You would need to create a flowchart like this
(Click image to enlarge)

The hotspot blocks can be found under Connectivity section and Delay is under Data &amp; Time. Set the Delay to the timer you need.
Once the flowchart has been created, make sure to install the permission it needs

Start the fiber and there you go.