Mon 1er script, besoin d'aide

Bon, je reviens vers toi @olive,

Voici mon script :

#! /usr/bin/env python3

import requests, json, codecs

url_token = "https://interop.ondilo.com/oauth2/token"
url_ico = "https://interop.ondilo.com/api/customer/v1/pools/xxx/lastmeasures"
url_ipx = "http://192.168.0.xxx/api/xdevices.json?key=xxxxxxx&SetVA"

payload_token = "refresh_token=xxxxxxxxxx&grant_type=refresh_token&client_id=customer_api"
headers_token = {
    'Content-Type': "application/x-www-form-urlencoded",
    'Cache-Control': "no-cache",
    }

response_token = requests.request("POST", url_token, data=payload_token, headers=headers_token)
jsonlist = json.loads(response_token.text)
jsonlist = jsonlist['access_token']


headers_ico = {
    'Authorization': "Bearer " + str(jsonlist),
    'Cache-Control': "no-cache",
    }

response_ico = requests.request("GET", url_ico, headers=headers_ico)
payload = response_ico.text

f = codecs.open('/var/www/html/ico_data.txt', 'w', encoding='utf8')
f.write(payload)

list_ico = json.loads(response_ico.text) #traduction langage JSON dans variable liste_ico
temperature_ico=list_ico[0].get("value")
redox_ico=list_ico[1].get("value")
temperature_ico=temperature_ico*10

requests.request("GET",url_ipx + "01=" + str(temperature_ico))
requests.request("GET",url_ipx + "02=" + str(redox_ico))

J’ai eu un soucis la dernière fois, c’était que mon script s’exécutais bien, mais mon refresh token n’était plus valide, donc j’avais un message d’erreur de la part du server ONDILO, donc mon script n’aboutissait pas. Mais je n’avais aucune information de cela, que pourrais ajouter afin de remédier a cela ?

J’ai bien une idée, mais qui est plus du bricolage… je m’explique : j’active via mon script une variable, cette variable ce réinitialise sous Jeedom toute les 9 minutes, mon script s’exécutant toute les 10 minutes, si la variable ne c’est pas réactiver au bous de 10 minute, c’est que le script n’a pas aboutis…
Mais je suppose qu’il y a une solution autre non ?

Merci a toi

Je serait toi je met des stop par dichotomie
avec un print qui renvoi une valeur de retour du script
même si ça correspond pas a la final tu finira par savoir si ton script fonctionne ou pas sans erreur non ?

mon script fonctionne parfaitement, mais l’autre jours mon refresh token n’était plus valide… et aucun moyen pour moi de le voir sauf à exécuter la requête sous POSTAM afin de voir la reponse des serveurs de ONDILO…

Je croyais un problème de CRON qui n’exécutait pas le script, et c’est quand j’ai vu que meme en exécution manuel, le fichier ou le script écrit ne c’était pas mis à jour, que je me suis dis il doit y avoir un soucis

et tu peut pas faire un test a l’intérieur pour contrôler ?

je pourrais mais je ne sais pas faire …

Tout peu s’apprendre surtout de no jours a l’heure internet
prend ton programme ligne pas ligne en dehors de jeedom en ligne de commande Phyton décortique analyse trouve comment ça fonctionne …

j’ai compris mon programme, en gros faut que je teste la reponse du serveur de ondilo, si elle me renvoie autre chose que mon token, c’est qu’il ya une erreur… je vai m’y pencher !! :grin:

Autre petite question, j’aimerai passer une info à un virtuelle via le script… si je tape dans un explorateur cette ligne http://192.168.0.xxx/core/api/jeeApi.php?plugin=virtual&apikey=xxxxxxxx&type=virtual&id=10416&value=1

mon virtuel passe à 1 en revanche si je met dans mon script la commande :

requests.request("GET",http://192.168.0.xxx/core/api/jeeApi.php?plugin=virtual&apikey=xxxxxxxx&type=virtual&id=10416&value=1)

Cela ne fonctionne pas :thinking:

Test ta ligne http dans un navigateur !

oui ca fonctionne dans un navigateur

Cela ne fonctionne pas :thinking:
[/quote]

Bien maintenant
en ligne de commande

>>> import requests
>>> requests.request("GET",http://192.168.0.xxx/core/api/jeeApi.php?plugin=virtual&apikey=xxxxxxxx&type=virtual&id=10416&value=1)
>>> requests.request("GET",http://192.168.0.xxx/core/api/jeeApi.php?plugin=virtual&apikey=xxxxxxxx&type=virtual&id=10416&value=0)

a la main en test une ligne par une ligne tu va bien tombé sur celle qi va pas !

Invalide syntax… à priori il n’aime pas les « : » du HTTP

essai avec des " "

nikel ca fonctionne, je test dans le script

Ca fonctionne aussi dans le script, mais toujours le meme soucis, le script s’exécute parfaitement via le CRON, par contre quand je clique sur test, il ne s’exécute pas… bizzard…