-
-
Save taylor224/516de7dd0b707bc0b1b3 to your computer and use it in GitHub Desktop.
| # -*- coding: utf-8 -*- | |
| import wifi | |
| def Search(): | |
| wifilist = [] | |
| cells = wifi.Cell.all('wlan0') | |
| for cell in cells: | |
| wifilist.append(cell) | |
| return wifilist | |
| def FindFromSearchList(ssid): | |
| wifilist = Search() | |
| for cell in wifilist: | |
| if cell.ssid == ssid: | |
| return cell | |
| return False | |
| def FindFromSavedList(ssid): | |
| cell = wifi.Scheme.find('wlan0', ssid) | |
| if cell: | |
| return cell | |
| return False | |
| def Connect(ssid, password=None): | |
| cell = FindFromSearchList(ssid) | |
| if cell: | |
| savedcell = FindFromSavedList(cell.ssid) | |
| # Already Saved from Setting | |
| if savedcell: | |
| savedcell.activate() | |
| return cell | |
| # First time to conenct | |
| else: | |
| if cell.encrypted: | |
| if password: | |
| scheme = Add(cell, password) | |
| try: | |
| scheme.activate() | |
| # Wrong Password | |
| except wifi.exceptions.ConnectionError: | |
| Delete(ssid) | |
| return False | |
| return cell | |
| else: | |
| return False | |
| else: | |
| scheme = Add(cell) | |
| try: | |
| scheme.activate() | |
| except wifi.exceptions.ConnectionError: | |
| Delete(ssid) | |
| return False | |
| return cell | |
| return False | |
| def Add(cell, password=None): | |
| if not cell: | |
| return False | |
| scheme = wifi.Scheme.for_cell('wlan0', cell.ssid, cell, password) | |
| scheme.save() | |
| return scheme | |
| def Delete(ssid): | |
| if not ssid: | |
| return False | |
| cell = FindFromSavedList(ssid) | |
| if cell: | |
| cell.delete() | |
| return True | |
| return False | |
| if __name__ == '__main__': | |
| # Search WiFi and return WiFi list | |
| print Search() | |
| # Connect WiFi with password & without password | |
| print Connect('OpenWiFi') | |
| print Connect('ClosedWiFi', 'password') | |
| # Delete WiFi from auto connect list | |
| print Delete('DeleteWiFi') |
Guys…can you give me pls an answer of this question…my devise is not rooted..
Can this script run without any problems ???
Hi!
Any solution for the returned non-zero error returned by the scheme.activate() method?
Here is the complete error message below:
Traceback (most recent call last):
File "/home/pi/projects/wifi_connect.py", line 106, in
print(Connect('test', '12345678'))
File "/home/pi/projects/wifi_connect.py", line 54, in Connect
scheme.activate()
File "/home/pi/.local/lib/python3.9/site-packages/wifi/scheme.py", line 172, in activate
subprocess.check_output(['/sbin/ifdown', self.interface], stderr=subprocess.STDOUT)
File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/sbin/ifdown', 'wlan0']' returned non-zero exit status 1.
Hi, I am getting this error. What may be wrong?