Page 1 sur 1

Récuperer valeur d'un dispositif

Publié : 27 août 2019, 17:07
par espagne1988
Bonjour,

Je vous écris afin de solliciter votre aide.
Je ne parviens pas à trouver comment récupérer les valeurs d'un dispositif afin de pouvoir les exploiter dans un script python

Je voudrais récupérer la température extérieure afin de faire une comparaison avec la température intérieure.

Image

Comment faire pour recupérer la donnée 31,9°C ?

Merci d'avance

Re: Récuperer valeur d'un dispositif

Publié : 27 août 2019, 18:33
par Chrominator

Re: Récuperer valeur d'un dispositif

Publié : 27 août 2019, 22:08
par papoo
le plus simple est de passer par l'api json
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s

exemple de requête qui retourne les données d'un device au format Json
http://AdresseIP:Port/json.htm?type=devices&rid=IDX

Re: Récuperer valeur d'un dispositif

Publié : 01 sept. 2019, 14:16
par espagne1988
papoo a écrit : 27 août 2019, 22:08 le plus simple est de passer par l'api json
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s

exemple de requête qui retourne les données d'un device au format Json
http://AdresseIP:Port/json.htm?type=devices&rid=IDX
J'ai bien compris le JSON ca m'a vraiment pas mal aidé par contre par contre je ne comprends pas comment inputer une variable de la valeur 26.5 ?

Image

Re: Récuperer valeur d'un dispositif

Publié : 01 sept. 2019, 14:26
par vil1driver
espagne1988 a écrit : 27 août 2019, 17:07 Je voudrais récupérer la température extérieure afin de faire une comparaison avec la température intérieure.
salut,

tu veux vraiment utiliser python ?

car en lua ou même blocky, ce serait déjà réglé ;)

Re: Récuperer valeur d'un dispositif

Publié : 01 sept. 2019, 14:31
par papoo
il faut "parser" (décoder) les données qui sont au format json
https://docs.python.org/fr/3/library/json.html

Re: Récuperer valeur d'un dispositif

Publié : 01 sept. 2019, 14:42
par papoo
ceci pourra surement t'aider
viewtopic.php?t=8618

Re: Récuperer valeur d'un dispositif

Publié : 03 sept. 2019, 15:59
par espagne1988
Merci, j'ai réussi à m'inspirer des autres sujets

pour finir j'ai fait :

- sudo apt-get update
- sudo apt-get upgrade
- sudo pip3 install --upgrade setuptools

Et ensuite le code suivant:

Code : Tout sélectionner

#!/usr/bin/python3
# -*- coding: latin-1 -*-

#Permet de récupérer une valeur dans domoticz

import requests
import chardet
import json

# Variable utilisateur : http://192.168.1.8:8080/json.htm?type=command&param=getuservariable&idx=6
# Récupérer valeur d'un dispositif : http://192.168.1.8:8080/json.htm?type=devices&rid=17

url = 'http://192.168.1.8:8080/json.htm?type=command&param=getuservariable&idx=6'
Response = requests.get(url)

if(Response.ok):
    result = json.loads(Response.content.decode(chardet.detect(Response.content)["encoding"]))
    print (result['result'][0]['Temp'])
    Temp=str(result['result'][0]['Temp'])
    print("la valeur de la variable dz est à " + Temp)
On peut cloturer le sujet
A+