Automated wifi 'scavenging', daemon recommendation?
I have a RPi in the car that I need to act as a mobile AP.
I need it to provide a consistent, unchanging ESSID (in AP mode) using the onboard wlan0 for all devices that stay in my car. Dashcams, the car's nav computer, my laptop, for instance. The Pi will also interface with the car over ODB2 to do some logging and remote control.
But to provide internet connectivity TO the Pi itself, I need to use my smartphone when it is plugged in (it provides a "USB NIC"). Or if my phone is not connected by cable, then I need the pi to use a secondary, usb Wifi adapter (wlan1) as a wifi client (client mode), to search for common APs at home, work, family's house, and join the strongest one.
Obviously linux does this all the time. My Fedora/CentOS/Ubuntu laptops simply have a gui list of networks, and when it's on, it finds something on that list and joins it automatically.
I want to have that same capability, in the Pi via commandline-only scripting. Additionally I'd kind of like some way to auto-join any open network and check if it can route out to the internet (wouldn't we all....)
What's the best way to do that on a minimal, headless linux box?
I will probably also add an openvpn or openswan tunnel to this so that my car can have an unchanging "public ip" that I could use with IFTTT or other services to make incoming connections. But that's beyond the scope of what I'm asking here. Obviously I know I need to keep it secure too, but detailed security is beyond the scope of this question.