probleme requests.post avec un PI4 et python 3.7

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
estelle
Raspinaute
Messages : 154
Enregistré le : jeu. 24 déc. 2015 17:14

probleme requests.post avec un PI4 et python 3.7

Message par estelle » dim. 21 mars 2021 16:22

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 ?

jelopo
Raspinaute
Messages : 307
Enregistré le : mer. 11 oct. 2017 10:23

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

Message par jelopo » mar. 23 mars 2021 20:31

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+

estelle
Raspinaute
Messages : 154
Enregistré le : jeu. 24 déc. 2015 17:14

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

Message par estelle » mer. 24 mars 2021 09:48

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

estelle
Raspinaute
Messages : 154
Enregistré le : jeu. 24 déc. 2015 17:14

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

Message par estelle » mer. 24 mars 2021 16:19

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

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

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

Message par destroyedlolo » mer. 24 mars 2021 19:42

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 ;)
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

estelle
Raspinaute
Messages : 154
Enregistré le : jeu. 24 déc. 2015 17:14

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

Message par estelle » jeu. 25 mars 2021 10:17

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 !!

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

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

Message par destroyedlolo » jeu. 25 mars 2021 12:45

Ou un problème hard : il est long le cable ?
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

estelle
Raspinaute
Messages : 154
Enregistré le : jeu. 24 déc. 2015 17:14

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

Message par estelle » jeu. 25 mars 2021 13:54

non 20cm
mais il ne fonctionnerait pas en local si c'etait un pb de cable

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

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

Message par destroyedlolo » jeu. 25 mars 2021 14:33

Ben ca peut etre le transceiver (le chip qui gère l'éthernet) ...
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Python »