Skip to content

Instantly share code, notes, and snippets.

@sscarduzio
Created August 24, 2014 21:20
Show Gist options
  • Star 37 You must be signed in to star a gist
  • Fork 10 You must be signed in to fork a gist
  • Save sscarduzio/05ed0b41d6234530d724 to your computer and use it in GitHub Desktop.
Save sscarduzio/05ed0b41d6234530d724 to your computer and use it in GitHub Desktop.
BtWiFi_with_FON automatic login written as a bash script. I have this running every 10 minutes on my raspberry pi
#!/bin/bash
# CONF
DBG=true
RELOG_UNAME=your@email.com
RELOG_PASSW=xxxxxxxxxxxxxxx
# END CONF
IS_LOGGED_IN=$(wget "https://www.btopenzone.com:8443/home" --timeout 30 -O - 2>/dev/null | grep "accountLogoff")
if [ "$IS_LOGGED_IN" ]
then
[[ $DBG ]] && echo "currently logged in. Nothing to do.."
else
[[ $DBG ]] && echo "It's not logged in.. Will log in!"
OUT=$(wget -qO- --post-data "USERNAME=$RELOG_UNAME&PASSWORD=$RELOG_PASSW" "https://btwifi.portal.fon.com/remote?res=hsp-login&HSPNAME=FonBT%3AGB&WISPURL=https%3A%2F%2Fwww.btopenzone.com%3A8443%2FfonLogon&WISPURLHOME=https%3A%2F%2Fwww.btopenzone.com%3A8443&VNPNAME=FonBT%3AGB&LOCATIONNAME=FonBT%3AGB")
ONLINE=$(echo $OUT | grep youre_online )
if [ "$ONLINE" ]
then
[[ $DBG ]] && echo "You're online!"
else
[[ $DBG ]] && echo "Could not login :("
fi
fi
@aidanmacgregor
Copy link

aidanmacgregor commented Jun 13, 2022

nice im currently learning and writing a windows .EXE program that runs in the system tray using vb.net for this also to experiment with, think its almost done, don't think i will use it much as i use the openwrt solution but i wanted to make a nice windows solution (other than running the bash script inside windows) and it was something useful for me to learn with :)

I would certainly be interested once it's ready - still using a .BAT run by the scheduler, which works fine but is obviously not incredibly reliable!

Uploaded & Ready To Try :)

https://github.com/aidanmacgregor/BT_Wi-fi_Autologin_-_OpenWrt_Windows.EXE_Linux_Android-Macrodroid
Capture

@SpikeTheLobster
Copy link

Won't run on Win7, so I'm probably missing something from VBNet. Also would be nice to have a timer entry, so we can set our own delay. :)

@aidanmacgregor
Copy link

aidanmacgregor commented Jun 13, 2022

Needs at least .net 4.6, this is included & should run on all windows 10 & 11 automatically, i targeted .net 4.6 as its compatible as far back as windows vista after manually installing it on older OS :)

@SpikeTheLobster
Copy link

Needs at least .net 4.6, this is included & should run on all windows 10 & 11 automatically, i targeted .net 4.6 as its compatible as far back as windows vista after manually installing it on older OS :)

Well, that's odd... I ran the .NET 4.6 updater and apparently I already have 4.7.2. "Repaired" that but it still won't run. Says I need to check whether I need x32 or x64 (I assume it's an x64 exe). Gah!

@aidanmacgregor
Copy link

not entirely sure will try targeting 32 bit specifically, current timings are coded as follows,
IF NO INTERNET = ping (500ms timeout), wait (500ms), Ping (500ms Timeout), Run Selected Login
IF INTERNET Ping (Timeout Not Relevant), Wait (1000ms), Loop Back To Ping

@SpikeTheLobster
Copy link

not entirely sure will try targeting 32 bit specifically, current timings are coded as follows, IF NO INTERNET = ping (500ms timeout), wait (500ms), Ping (500ms Timeout), Run Selected Login IF INTERNET Ping (Timeout Not Relevant), Wait (1000ms), Loop Back To Ping

I don't think anyone still uses 32-bit, do they? Not sure why mine (x64) won't run it, to be honest, but then I haven't reformatted and reinstalled for years (used to do it every 6 months) so Windows has probably accumulated a whole load of icky stuff that gets in the way...
The timing thing: I meant between checks, sorry. I have my current batch going every 2 minutes or so, which can give a fair bit of downtime if the network's rubbish but avoids getting things piled up with constant checks!

@aidanmacgregor
Copy link

aidanmacgregor commented Jun 13, 2022

not entirely sure will try targeting 32 bit specifically, current timings are coded as follows, IF NO INTERNET = ping (500ms timeout), wait (500ms), Ping (500ms Timeout), Run Selected Login IF INTERNET Ping (Timeout Not Relevant), Wait (1000ms), Loop Back To Ping

I don't think anyone still uses 32-bit, do they? Not sure why mine (x64) won't run it, to be honest, but then I haven't reformatted and reinstalled for years (used to do it every 6 months) so Windows has probably accumulated a whole load of icky stuff that gets in the way... The timing thing: I meant between checks, sorry. I have my current batch going every 2 minutes or so, which can give a fair bit of downtime if the network's rubbish but avoids getting things piled up with constant checks!

ahh its set to loop so if first test passes waits 1 second and runs the same single packet ping again :)

EDIT: v4 Windows Exe Now Available
https://github.com/aidanmacgregor/BT_Wi-fi_Autologin_-_OpenWrt_Windows.EXE_Linux_Chrome-OS_Android-Macrodroid

@Gadgetoid
Copy link

@aidanmacgregor also now using your script (OpenWRT service). Nice work, thank you! Though I swapped the config over to /etc/btwifi.conf since I'm not sure what owns rc.local on OpenWRT.

@aidanmacgregor
Copy link

@aidanmacgregor also now using your script (OpenWRT service). Nice work, thank you! Though I swapped the config over to /etc/btwifi.conf since I'm not sure what owns rc.local on OpenWRT.

Hey Awesome! Glad its Working Well For You, and i was under impression nothing touched it besides from the user :)

@adammcguk
Copy link

@shuckster With the SSID of BT WiFi hotspots now changing to "EE WiFi", will the cloud-connect plugin need to be altered, and if so, what is required?

@shuckster
Copy link

@adammcguk - Thanks for the report.

If you're already using the plugin, you can try modifying this line in this file in your local filesystem.

Change it from:

BT_SSID=${CC_WIRELESS_SSID_MATCH:-"BTWi-fi\|BTWifi-with-FON"}

To:

BT_SSID=${CC_WIRELESS_SSID_MATCH:-"EE WiFi\|BTWi-fi\|BTWifi-with-FON"}

I have a suspicion the space may cause issues, so if the above doesn't work, try:

BT_SSID=${CC_WIRELESS_SSID_MATCH:-"EE\ WiFi\|BTWi-fi\|BTWifi-with-FON"}

If you are able try this and check that it works, I'll update the plugin in the repo so others can benefit.

@adammcguk
Copy link

@shuckster I tried the 2nd way and I also changed the main config file in the cloud connect plugin, as it also references the SSID. Not sure if this was required but after doing both, it is working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment