It would be pretty handy if the app automatically starts a selected vpn to send data like location updates etc.
Background: With iOS 8 Apple introduced the VPN onDemand capability. I think it is all handled within the NEVPNManager Class. You should just have to select your VPN-Connection and every time the app requests or sends some data the connection gets established.
I believe that’s a function of your VPN. If you use say WireGurd you can configure this there and it should establish the vpn tunnel based on IP or DNS names I think.
But I thought the aim of this feature was to get your VPN connection active when you are NOT at home (let’s say you are using LTE or different WiFi) and you run Home Assistant Companion application on your phone.
The application automatically detects the type of connection and establish VPN connection if necessary.
That is not how on demand vpn works… the on demand vpn is an OS function that establishes the vpn tunnel whenever any application calls a resource that is configured to only be accessible via vpn.
You can already do that using any VPN of your liking with the right connection profile for quite some time and there is no need to implement this in any app.