[Python] Ricevo "Unclosed connector" usando le API

Matteo Perini perini.matteo a gmail.com
Lun 19 Ago 2024 10:29:00 CEST


> Cercando in rete sembra solo un warning, sei sicuro sia un errore?
> Dove leggi questo errore?
> Come invochi il programma?
> Puoi incollare un po' di contesto in più dell'output?
>
> Comunque una sessione (o connector o quello che sia) aperto lo risolvi
> dandogli una .close() oppure usando un context manager dove lo istanzi
> e poi se ne occupa lui.
>
Ciao, grazie della risposta,

mi sembra che il problema sia come se la connessione fosse già occupata 
e quindi non permetta di collegarsi nuovamente al dispositivo.

Riesco a ricreare l'errore anche con un semplice script come quello che 
allego:

importewelink
fromewelinkimportClient, DeviceOffline
@ewelink.login("MYPASSWORD", "MYEMAIL") # <----- qui avviene l'errore
asyncdefmain(client: Client):
print(client.user.info)
device=client.get_device("1000a1c228") #single channel device
print(device.params)


Ecco anche il testo completo dell'output (nascondo solo email e password)

/{'error': 403, 'msg': 'Sign:oauthClient enable invalid'}
Traceback (most recent call last):
   File "/home/matteo/Scrivania/smart_polinar/test.py", line 4, in <module>
     @ewelink.login("password", "email")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/home/matteo/Scrivania/smart_polinar/ewelink/client.py", line 
92, in login
     asyncio.get_event_loop().run_until_complete(client.login())
   File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in 
run_until_complete
     return future.result()
            ^^^^^^^^^^^^^^^
   File "/home/matteo/Scrivania/smart_polinar/ewelink/client.py", line 
53, in login
     self.user = ClientUser(data = await self.http.login(), http=self.http)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/home/matteo/Scrivania/smart_polinar/ewelink/models/user.py", 
line 32, in __init__
     self.email: str | None = data.get('email', None)
                              ^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f2da3ffec00>
Unclosed connector
connections: ['[(<aiohttp.client_proto.ResponseHandler object at 
0x7f2da2d42510>, 61417.66621223)]']
connector: <aiohttp.connector.TCPConnector object at 0x7f2da2d3a930>/


Siccome tutto avviene dentro la libreria e non sono molto esperto di 
connessioni remote, sto facendo molta fatica a capire che succede. Di 
solito uso python per tutt'altro.

Anche solo la sintassi mi sembra diversa da quella a cui sono abituato.

Può essere che lato server si sia bloccato qualcosa?

Il dispositivo continua ad andare sia con l'app proprietaria che tramite 
google home.

Ho provato anche a togliere fisicamente l'alimentazione al router e al 
dispositivo ma senza ottenere risultati.

Cos'altro posso tentare?

Grazie

Ciao

Matteo


-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20240819/9a0e9ba4/attachment.html>


Maggiori informazioni sulla lista Python