You can use Meshtastic to control Home Assistant. This will allow you to send commands and receive messages even without an internet connection when away from home (but still within mesh range). I won't go into too much detail as most of the documentation can be found here, but there are a few small tweaks that I needed to get this working that I can share.
You must have a channel named MQTT with downlink enabled even if you will be using a different channel to send responses from Home Assistant. I'm not sure why you can't just use downlink on the channel you are sending from, but without doing this, your messages will not be sent.
You can use conversation.process to receive commands from another node. I haven't yet worked out how to send information back other than a generic "messages received" message, but it has been working for me very well. I am able to send commands to my home automation from several hops away.