Envoyer requête http avec un script python

Capteurs et actionneurs HTTP

Envoyer requête http avec un script python

Messagepar donDams » 09 Avr 2020 18:02

Bonjour,

j'utilise un script python pour renvoyer une mesure d'un capteur à ultrason avec un Raspberry PI.
C'est un tuto que j'ai vu sur http://www.domo-blog.fr.
Je récupère bien ma valeur avec mon script tout est OK, le script, le câblage.

Je veux récupérer cette valeur et l'afficher sur ma box eedomus.
J'ai donc utilisé une variable d'état et je demande à mon script python d'écrire dedans.
Pour cela j'utilise cette requête :

r = requests.post("http://api.eedomus.com/set?api_user=XXXXXX&api_secret=YYYYYYYYYYYYYYYY&action=periph.value&periph_id=ZZZZZZZ&value=[VALEUR]")

Le problème est que je n'arrive pas à mettre une variable dynamique dans [VALEUR].
Si je mets une variable fixe 555 par exemple, la variable est bien remontée dans ma box.
Je pense que c'est un problème de synthaxe.
Est-ce que quelqu’un avec des connaissances en python peut m'éclairer?

Merci
Damien

Merci
donDams
 
Messages : 120
Inscription : 25 Fév 2017

Re: Envoyer requête http avec un script python

Messagepar xeos » 09 Avr 2020 18:53

Salut,

Essaye,

Api = Api eedomus
capteur = valeur capteur

valeur = {'action=periph.value&periph_id': 'Api', 'value': 'capteur'}
if capteur:
r = requests.post("http://localhost/api/set, params=valeur)

A adapter selon le script
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: Envoyer requête http avec un script python

Messagepar donDams » 10 Avr 2020 08:07

Salut,
merci pour ta réponse.
Sous quelle forme écrire Api eedomus? ... ça semble bloquer sure ce point.
Merci
donDams
 
Messages : 120
Inscription : 25 Fév 2017

Re: Envoyer requête http avec un script python

Messagepar donDams » 10 Avr 2020 08:37

voilà ce que j'ai écrit :

Api = "XXXXXX"&"YYYYYYYYYYYYYYYY"
capteur = format(distance)
valeur = {'action=periph.value&periph_id': 'Api', 'value': 'capteur'}
r = requests.post("http://192.XXX.XXX.XXX/api/set, params=valeur)

avec XXXXXX api_user
et YYYYYYYYYYYYYYYY api_secret

et j'ai ce résultat:
Capture.PNG
Capture.PNG (6.44 Kio) Consulté 5332 fois
donDams
 
Messages : 120
Inscription : 25 Fév 2017

Re: Envoyer requête http avec un script python

Messagepar xeos » 10 Avr 2020 08:59

Salut,

Effectivement j'ai oublier qu'il faut l'api user et secret quand tu envoi meme en local sur eedomus

user = xxxxxxx
secret= xxxxxx
id = xxxxxx
capteur = valeur capteur

valeur = {'api_user': 'user','api_secret':'secret','action=periph.value&periph_id': 'id', 'value': 'capteur'}
if capteur:
r = requests.post("http://192.168.0.XX/api/set, params=valeur)
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: Envoyer requête http avec un script python

Messagepar donDams » 10 Avr 2020 09:58

Oui pour mon problème d'avant il y avait un problème de syntaxe... comme je connais pas python c'est chaud ... la moindre erreur et c'est foutu. :roll:
J'ai repris le code avec ton dernier post.
voila la requête:
Capture.PNG
Capture.PNG (14.71 Kio) Consulté 5322 fois


je pense qu'il y a un problème au niveau de l'ecriture de :
'action=periph.value'and'periph_id': 'id'

J'ai essayé plusieurs choses mais je n'y arrive pas.
J'ai encore besoin de ton aide. :wave:

Merci
donDams
 
Messages : 120
Inscription : 25 Fév 2017

Re: Envoyer requête http avec un script python

Messagepar xeos » 10 Avr 2020 10:18

j'ai pas le code devant moi c'est dommage

si les variables passent pas en string met des guillemets simple genre user = 'XXXXXX'
Tu peux soit tester =
valeur = {'api_user': 'user','api_secret':'secret','action':'periph.value','periph_id': 'id', 'value': 'capteur'}

ou enlever les variables sauf capteur et essayer
valeur = {'api_user': 'ton user direct','api_secret':'ton secret direct','action':'periph.value',periph_id': 'ton id direct', 'value': 'capteur'}

tu as une fréquence de requête a combien ? parce que tu risque d'avoir une saturation du réseau
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: Envoyer requête http avec un script python

Messagepar donDams » 10 Avr 2020 10:53

Alors j'ai trouvé le problème, c'est ma valeur capteur qui n'était pas bonne.
J'ai pas bien compris comment était déclaré les variables (STRING, INT, BOOL ...) ????? :?:
Donc devant ma valeur capteur j'ai mis
format (capteur)
et ça fonctionne. Je ne sais pas à quoi sert cette fonction mais c'est OK.
Je pensais que c'était un problème de chaîne HTTP, mais c'était le format de ma valeur :roll:

Pour la fréquence de la requête j'ai mis 10s pour mes tests mais je vais passer à 1/2 heure ou 1h, car c'est pour remonter un niveau de ma cuve enterrée.

En tout cas merci de ton aide... en conclusion il faut que je me forme sur python ;)
donDams
 
Messages : 120
Inscription : 25 Fév 2017

Re: Envoyer requête http avec un script python

Messagepar xeos » 10 Avr 2020 11:00

Ah cool :thumbup:

Tu as eu besoin de la mise en paramètre de l'url en faite..... l'essentiel c'est que ca fonctionne ;)
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: Envoyer requête http avec un script python

Messagepar donDams » 10 Avr 2020 11:04

j'ai utilisé la méthode "bourrin":
valeur = {'api_user': 'ton user direct','api_secret':'ton secret direct','action':'periph.value',periph_id': 'ton id direct', 'value': 'capteur'}
J'ai essayé avec ton autre méthode et les paramètres mais j'ai pas réussi.
donDams
 
Messages : 120
Inscription : 25 Fév 2017

Re: Envoyer requête http avec un script python

Messagepar xeos » 10 Avr 2020 11:12

T'inquiète la méthode bourrin passe creme sur certains de mes scripts Synology/Domoticz.
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: Envoyer requête http avec un script python

Messagepar donDams » 10 Avr 2020 12:08

du moment que ça fonctionne... c'est le principal
donDams
 
Messages : 120
Inscription : 25 Fév 2017


Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 39 invité(s)

cron