Page 1 sur 2

[RESOLU] Valeurs température DHT 22

Publié : 16 janv. 2017, 15:55
par codercrack
Bonjour,

Je souhaiterais savoir comment réduire le nombre de chiffre après la virgule sur des données d'un sonde DHT 22
sonde DHT 22.JPG
sonde DHT 22.JPG (18.24 Kio) Consulté 10272 fois
Voici le script que j'utilise pour remonter les informations

Fichier sondedht.py (Lui même lancé par AdafruitDHT.py)

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import requests
from requests.auth import HTTPBasicAuth


############# Parametres #################################
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.2.251'
domoticz_port='8080'
user=''
password=''
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# l IDX du capteur temp+hum
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_idx='72'

###############  fin des parametres #############################

temperature=(sys.argv[1])
humidite=(sys.argv[2])

# l URL Domoticz pour le widget virtuel
json_url_text1='/json.htm?type=command&param=udevice&idx='
json_url_text2='&nvalue=0&svalue='
valeurs=str(temperature)+";"+str(humidite)+";2"
#"http://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;3;$HUM;2"

requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+valeurs
print requete

r=requests.get(requete,auth=HTTPBasicAuth(user,password))
if  r.status_code != 200:
    print "Erreur API Domoticz"

sys.exit(0)
Merci pour votre aide

Re: Valeurs température DHT 22

Publié : 16 janv. 2017, 19:53
par thier
Cherche sur le forum j'avais posté la fonction arrondir. Là je n'ai pas accès au forum.

Re: Valeurs température DHT 22

Publié : 16 janv. 2017, 20:42
par codercrack
J'ai tester le script LUA en question (si c'est bien celui dont tu fais allusion), il ne fonctionne pas dans mon cas.

Re: Valeurs température DHT 22

Publié : 16 janv. 2017, 20:59
par thier
Autant pour moi je n'ai pas vu que tu étais en python

Re: Valeurs température DHT 22

Publié : 16 janv. 2017, 21:49
par vil1driver
Salut,

Sans déconner...

Un petit googlelage et basta !

https://www.google.fr/search?q=python+fonction+arrondir

La première réponse de cette page explique comment :roll:

Re: Valeurs température DHT 22

Publié : 17 janv. 2017, 06:19
par codercrack
Sans deconner waaaoouuuhhhhh c'est génial ce truc google !!!!
Pourquoi n'y ai-je pas pensé ????
A ben si !!! mais ça marche pas non plus ;-)

Re: Valeurs température DHT 22

Publié : 17 janv. 2017, 10:20
par vil1driver
Tu as raison, je suis désolé pour la forme...
Mais si tu as testé des choses, il serait bon d'en parler que l'on ne perde pas notre temps..

J'imagine que tu as donc vérifié la concordance entre ce que domoticz affiche et ce que tu lui envoies ?
Que tu as testé de fixer différentes valeurs ?

Re: Valeurs température DHT 22

Publié : 17 janv. 2017, 12:15
par codercrack
J'ai testé tellement de chose, que je ne voulais pas polluer le post.

Ceci dit lors de mes recherche avec google :) j'avais bien pensé que la fonction arrondir sous python serait mon sésame ! mais non :roll:
Voici des infos :
l’exécution de la commande AdafruitDHT.py (avec quelques rajouts de la fonction print dans le script):

Code : Tout sélectionner

pi@domoticz:~/domoticz/scripts$ ./AdafruitDHT.py 22 4
Temp=19.8*C  Humidity=43.9%
19.7999992371;
43.9000015259;2
http://192.168.2.251:8080/json.htm?type=command&param=udevice&idx=72&nvalue=0&svalue=19.7999992371;43.9000015259;2
J'obtiens une concordance dans les valeurs avec domoticz.
Par contre comme tu peux le constater la valeur d'humidité s'arrondit bien, mais pas celle de la température.

Voici le script AdafruitDHT.py que j'utilise:

Code : Tout sélectionner

#!/usr/bin/python
import subprocess
import sys
import Adafruit_DHT
# Parse command line parameters.
sensor_args = { '11': Adafruit_DHT.DHT11,
                '22': Adafruit_DHT.DHT22,
                '2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
    sensor = sensor_args[sys.argv[1]]
    pin = sys.argv[2]
else:
    print('usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#')
    print('example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4')
    sys.exit(1)


if humidity is not None and temperature is not None:
        print 'Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity)
        cmd="python /home/pi/domoticz/scripts/sonde_dht.py "+str(temperature)+" "+str(humidity)
        subprocess.call(cmd, shell=True)
else:
    print('Failed to get reading. Try again!')
    sys.exit(1)

Re: Valeurs température DHT 22

Publié : 17 janv. 2017, 12:23
par zaraki673
Bonjour,

peux tu donner le code de sonde_dht.py

Merci ;)

Re: Valeurs température DHT 22

Publié : 17 janv. 2017, 12:27
par codercrack
Au début du post.
Mais sinon le voici:

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import requests
from requests.auth import HTTPBasicAuth


############# Parametres #################################
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.2.251'
domoticz_port='8080'
user=''
password=''
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# l IDX du capteur temp+hum
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_idx='72'

###############  fin des parametres #############################

temperature=(sys.argv[1])
humidite=(sys.argv[2])

# l URL Domoticz pour le widget virtuel
json_url_text1='/json.htm?type=command&param=udevice&idx='
json_url_text2='&nvalue=0&svalue='
valeurs_temp=str(temperature)+";"
print valeurs_temp
valeurs_hum=str(humidite)+";2"
print valeurs_hum
#"http://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;3;$HUM;2"

requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+valeurs_temp+valeurs_hum
print requete

r=requests.get(requete,auth=HTTPBasicAuth(user,password))
if  r.status_code != 200:
    print "Erreur API Domoticz"

sys.exit(0)