Récupérer la valeur d’un virtuel depuis un script Python

Tags: #<Tag:0x00007f2834f85d00>

Bonjour,

Question dans le sujet :wink: merci @olive !

Ouvre ton équipement
Va dans commande
choisi la commande que tu veut récuperer —> clique sur roue crantée
dans l’onglet information
a droite tu a une icônes URL direct
bouton clique dessus ou fait bouton de droite copier l’URL

essai la dans un navigateur ça devrait te retourner la valeur de la commande

puis utilise cette url dans ton script pyton …

avec un request.get par exemple

Have a fun

Ah? merci, j’avais essayé par hasard, mais dans le navigateur ça me retourne un page blanche…

dans ton navigateur tu est peut être non sécurisé :

essai :

http://ippublique:port/suitedelacommande
ou
http://iplocal:port/suitedelacommande

J’étais bien http, toujours page blanche.
Mon script python renvoit « Response [200] »

C’est normal que la clé API ne soit pas la même que celle pour envoyer une valeur vers virtuel?

tu utilise un nom de domaine pour ton jeedom ?
tu est en http ou https ?
c’est pas un probleme de clef api …

Pas de nom de domaine, je suis en local et en http

Mes requetes
http://127.0.0.1/core/api/jeeApi.php?apikey=clé&type=virtual&id=104&value=12'
fonctionnent sans problème, j’ai donc fait en python une requête

test = requests.get('http://127.0.0.1:80/core/api/jeeApi.php?apikey=clé&type=cmd&id=126')
print(test)

qui renvoit <Response [200]>

oui 200 ça veut dire que ta requette est OK (c’est le statut)

il te faut extraire la valeur en plus du statut …

    resp = requests.get(envoyUrl,auth=HTTPDigestAuth(envoyuser,envoyPWD), headers=headers)
    
    if resp.status_code == requests.codes.ok:
       print('ca marche')
       reponse = str(resp.text)  <----------------------------
       print ('reponse OK')
       
    else:

Ah bah forcément… un grand merci pour ton aide, c’est bon :wink:

Oui la réponse a un requests.get est on objet qui contiens plusieurs informations …

https://fr.python-requests.org/en/latest/user/quickstart.html