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.
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
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 ?

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¶m=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¶m=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+