Page 1 sur 1

probleme requests.post avec un PI4 et python 3.7

Posté : dim. 21 mars 2021 16:22
par estelle
Bonjour,

Depuis que j'ai passé mon PI2 en pi4 et de python 3.5 en 3.7, il est impossible d'envoyer cette commande pour mettre à jour ma bdd

Code : Tout sélectionner

data = {"Dateheure":Date_heure_sql, "Temp_CPU":cpu_temp_max, "Temp_coffret":TT_RTC, "BME680_PresAt":hpa_corrig, "BME680_Hum":hum,"BME680_temp":sensor.data.temperature,"BME680_gas":gas,"DHT22_Hum":humidity,
                "DHT22_Temp":temperature,"Quality_Air":air_quality_score,"MinQuality_Air":Min_air_quality_score,"SGP30_CO2":sgp30.eCO2,"SGP30_TVOC":sgp30.TVOC,"PMT2_5":PMT2_5_H,"PMT10":PMT10_H,"MaxPMT2_5":MaxPMT2_5_H,"MaxPMT10":MaxPMT10_H} 
                
 try:
     r = requests.post("http://ruches.montminoises.free.fr/Rajout_Q_air.php", data = data)      
     print = ("Envoi mise a jour BDD: ",r.status_code)                         
 except Exception:
     print("Pb9 Requests: probleme de transmission rajout Air vers serveur FREE") 
J'ai un retour d'erreur assez long:

Code : Tout sélectionner

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 159, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 57, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 354, in_make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.7/http/client.py", line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/usr/lib/python3.7/http/client.py", line 966, in send
    self.connect()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 181, in connect
    conn = self._new_conn()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 168, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0xb59936d0>: 
Failed to establish a new connection: [Errno -3] Temporary failure in name resolution

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen_stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='ruches.montminoises.free.fr', port=80): 
Max retries exceeded with url: /Rajout_Q_air.php (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb59936d0>: 
Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/Documents/indoor-air-quality-1.py", line 849, in <module>
  File "/usr/lib/python3/dist-packages/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='ruches.montminoises.free.fr', port=80):
Max retries exceeded with url: /Rajout_Q_air.php (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xb59936d0>:                                                                                                                Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
Qui peut m'aider ?

Re: probleme requests.post avec un PI4 et python 3.7

Posté : mar. 23 mars 2021 20:31
par jelopo
Bonjour,

Il semble que urllib3 n'arrive pas à résoudre le nom du service. L'erreur à creuser est celle-ci:
socket.gaierror: [Errno -3] Temporary failure in name resolution
Un post similaire est se trouve ici:
https://stackoverflow.com/questions/586 ... tion-error

Il est possible que le serveur(http://ruches.montminoises.free.fr/) ne soit pas accessible au moment de la requête ? Par exemple, service réseau non actifs, pas de résolution DNS, ...

Refaire le test ultérieurement. Si le service est actif, essayer de voir avec son adresse IP au cas où ?

A+

Re: probleme requests.post avec un PI4 et python 3.7

Posté : mer. 24 mars 2021 09:48
par estelle
Merci pour ta réponse
En fait je n'arrive plus à communiquer vers l'extérieur
J'ai tenté une mise à jour avec un sudo apt-get update qui n'a pas abouti

Code : Tout sélectionner

pi@PI4:~ $ sudo apt-get update
Err :1 http://raspbian.raspberrypi.org/raspbian buster InRelease
  Erreur temporaire de résolution de « raspbian.raspberrypi.org »
Err :2 http://archive.raspberrypi.org/debian buster InRelease
  Erreur temporaire de résolution de « archive.raspberrypi.org »
Lecture des listes de paquets... Fait
W: Impossible de récupérer http://raspbian.raspberrypi.org/raspbian/dists/buster/InRelease  Erreur temporaire de résolution de « raspbian.raspberrypi.org »
W: Impossible de récupérer http://archive.raspberrypi.org/debian/dists/buster/InRelease  Erreur temporaire de résolution de « archive.raspberrypi.org »
W: Le téléchargement de quelques fichiers d'index a échoué, ils ont été ignorés, ou les anciens ont été utilisés à la place.
Je n'arrive plus à communiquer à l'extérieur

Re: probleme requests.post avec un PI4 et python 3.7

Posté : mer. 24 mars 2021 16:19
par estelle
J'ai regardé dans ce fichier de config:
/etc/dhcpcd.conf

interface eth0
static ip_address=192.168.0.34/24
static routers=192.168.0.1

Je ne vois pas ce qui cloche !!
sur l'intranet, je peux me connecter sans soucis via la box

Re: probleme requests.post avec un PI4 et python 3.7

Posté : mer. 24 mars 2021 19:42
par destroyedlolo
Coucou,

Arrives tu a te connecter au PI depuis ton intranet (s'il est sur le même réseau évidemment) ?
Et t'as essayé de faire un ping 192.168.0.1 depuis le PI ?

A+

ps: sinon ta page projet ne fonctionne pas, erreur PHP ;)

Re: probleme requests.post avec un PI4 et python 3.7

Posté : jeu. 25 mars 2021 10:17
par estelle
Mon pi4 est dans un boitier métallique donc pas de wifi PI
Donc liaison ethernet via la box
La connection avec les autre utilisateurs locaux fonctionnent

J'ai donc installer une antenne wifi externe via usb
Le fonctionnement est ok et j'ai pu mettre à jour buster et également l'accès avec FREE
Le pb vient bien du coté liaison ethernet
Il doit y avoir un conflit !!

Re: probleme requests.post avec un PI4 et python 3.7

Posté : jeu. 25 mars 2021 12:45
par destroyedlolo
Ou un problème hard : il est long le cable ?

Re: probleme requests.post avec un PI4 et python 3.7

Posté : jeu. 25 mars 2021 13:54
par estelle
non 20cm
mais il ne fonctionnerait pas en local si c'etait un pb de cable

Re: probleme requests.post avec un PI4 et python 3.7

Posté : jeu. 25 mars 2021 14:33
par destroyedlolo
Ben ca peut etre le transceiver (le chip qui gère l'éthernet) ...