RUT956 - Failed to establish a new connectionI get when I tried to log on using the WebAPI:Error: HTTPConnectionPool(host=‘192.168.1.1’, port=80): Max retries exceeded with url: /api/login (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x000002C5F5DA7E00>: FaError: HTTPCoError: HTTPConnectionPool(host=‘192.168.1.1’, port=80): Max retries exceeded with url: /api/login (Caused Error: HTTPConnectionPool(host=‘192.168.1.1’, port=80): Max retries exceeded with url: /api/login (Caused by NewConnectionError(’<urllib3.connection.HTTPConnection object at 0x000002C5F5DA7E00>: Failed to establish a new connection: [WinError 10061] Kan ikke koble til fordi målmaskinen avslo tilkobling’))
When I use another RUT956 (RUT9M_R_00.07.17.1) there is no problem.
My code is:
type or paste code here
try:
import secrets
except ModuleNotFoundError:
print("Lib secrets must be installed")
print(" $ pip3 install secrets")
try:
import requests
except ModuleNotFoundError:
print("Lib requests must be installed")
print(" $ pip3 install requests")
from AbstractRouter import AbstractRouter
class RouterNew(AbstractRouter):
def __init__(self) -> None:
self.username = "admin"
self.password = "XXXXXXXXXXXXXXXX"
self.base_url = "http://192.168.1.1/api"
self.token = None
self.token_expires = datetime.now() - timedelta(seconds = 60)
def login(self):
credentials = {"username": self.username, "password": self.password}
try:
response = requests.post(url=self.base_url + "/login", json=credentials)
response.raise_for_status()
if response.status_code == 200:
data = response.json()
self.token_expires = datetime.now() + timedelta(seconds = int(data["data"]["expires"]) - 5)
self.token = data["data"]["token"]
return data["data"]
else:
return f"Unexpected status code: {response.status_code}"
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
return False
except Exception as e:
print(f"Error: {e}")
return False
def GetStatus(self):
if self.token_expires < datetime.now():
self.login()
headers = {"Authorization": f"Bearer {self.token}"}
url = f"{self.base_url}/io/status"
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
if response.status_code == 200:
response_data = response.json()
return response_data
else:
return f"Unexpected status code: {response.status_code}"
except requests.exceptions.RequestException as e:
return f"Error: {e}"
if __name__ == "__main__":
router = RouterNew()
print("NewRouter: ", router.NewRouter())
print(router.GetStatus())
What is it I am doing wrong?
Regards
Terje