Page 1 sur 1
module humidité + temperature AZDelivery DHT22
Publié : 24 nov. 2020, 22:14
par damolc
bonjour j ai acheté un module AZDelivery DHT22 relié a un GPIO 12
puis j ai installé CircuitPython-DHT Library
avec le script "dht_simpletest.py" :
Code : Tout sélectionner
import time
import board
import adafruit_dht
# Initial the dht device, with data pin connected to:
dhtDevice = adafruit_dht.DHT22(board.D12)
# you can pass DHT22 use_pulseio=False if you wouldn't like to use pulseio.
# This may be necessary on a Linux single board computer like the Raspberry Pi,
# but it will not work in CircuitPython.
# dhtDevice = adafruit_dht.DHT22(board.D18, use_pulseio=False)
while True:
try:
# Print the values to the serial port
temperature = dhtDevice.temperature
humidity = dhtDevice.humidity
print(
"Temp: {:.1f} C Humidity: {}% ".format(
temperature_c, humidity
)
)
except RuntimeError as error:
# Errors happen fairly often, DHT's are hard to read, just keep going
print(error.args[0])
time.sleep(2.0)
continue
except Exception as error:
dhtDevice.exit()
raise error
time.sleep(2.0)
j arrive a remonter les valeurs:
pi@raspi2:~/Adafruit_Python_DHT/examples $ python3 dht_simpletest.py
Temp: 17.6 C Humidity: 58.5%
Temp: 17.6 C Humidity: 58.7%
Temp: 17.6 C Humidity: 58.8%
Temp: 17.6 C Humidity: 58.8%
Mais je souhaite récupérer les valeurs dans domoticz
avez vous une solution pour moi?
Re: module humidité + temperature AZDelivery DHT22
Publié : 25 nov. 2020, 08:30
par Chrominator
Si tu n'en a pas déjà un, il faut créer dans Domoticz un contrôleur virtuel (type Dummy), lui ajouter un capteur de température/hygrométrie virtuel, et ajouter à ton script un appel à l'API de Domoticz qui permet de mettre à jour ce capteur.

- Screenshot_2020-11-25 Domoticz API JSON URL's - Domoticz.png (9.71 Kio) Consulté 3538 fois
https://www.domoticz.com/wiki/Domoticz_ ... 2Fhumidity
Re: module humidité + temperature AZDelivery DHT22
Publié : 25 nov. 2020, 20:39
par damolc
merci de ton aide
je suis nul en programmation : voila mon script ( qui ne fonctionne pas

) :
Code : Tout sélectionner
import os
import sys
import requests
import time
import board
import adafruit_dht
############# Parametres #################################
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_ip='192.168.1.27'
domoticz_port='9090'
domoticz_idx=145
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du DHT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Initial the dht device, with data pin connected to:
dhtDevice = adafruit_dht.DHT22(board.D12)
# you can pass DHT22 use_pulseio=False if you wouldn't like to use pulseio.
# This may be necessary on a Linux single board computer like the Raspberry Pi,
# but it will not work in CircuitPython.
# dhtDevice = adafruit_dht.DHT22(board.D18, use_pulseio=False)
while True:
try:
# Print the values to the serial port
temperature = dhtDevice.temperature
humidity = dhtDevice.humidity
print(
"Temp: {:.1f} C Humidity: {}% ".format(
temperature, humidity
)
)
# l URL Domoticz
url='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
url+='&nvalue=0&svalue='
url+=str('{0:0.1f};{1:0.1f};2').format(temperature, humidity)
print url
maj_widget(url)
except RuntimeError as error:
# Errors happen fairly often, DHT's are hard to read, just keep going
print(error.args[0])
time.sleep(2.0)
continue
except Exception as error:
dhtDevice.exit()
raise error
time.sleep(2.0)
j ai comme reponce :
pi@raspi2:~/Adafruit_Python_DHT/examples $ python3 dht_simpletest.py
File "dht_simpletest.py", line 47
url='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
^
IndentationError: unindent does not match any outer indentation level
peux tu m aider a aller plus loin? Merci
Re: module humidité + temperature AZDelivery DHT22
Publié : 26 nov. 2020, 05:28
par denis_brasseur
Tout est dans le message d'erreur, problème d'indentation du code ligne 47, il manque un espace.
Re: module humidité + temperature AZDelivery DHT22
Publié : 26 nov. 2020, 09:09
par Chrominator
Et aussi, une lecture un peu rapide de la page dont j'ai donné le lien.
Ne pas oublier de lire le
début.
Re: module humidité + temperature AZDelivery DHT22
Publié : 26 nov. 2020, 10:37
par damolc
j avance a petit pas
j ai fait les correction avec mon script :
Code : Tout sélectionner
#!/usr/bin/python
# -*- coding: latin-1 -*-import os
import sys
import requests
import time
import board
import adafruit_dht
############# Parametres #################################
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_ip='192.168.1.27'
domoticz_port='9090'
user=''
password=''
domoticz_idx=145
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du DHT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Initial the dht device, with data pin connected to:
dhtDevice = adafruit_dht.DHT22(board.D12)
# you can pass DHT22 use_pulseio=False if you wouldn't like to use pulseio.
# This may be necessary on a Linux single board computer like the Raspberry Pi,
# but it will not work in CircuitPython.
# dhtDevice = adafruit_dht.DHT22(board.D18, use_pulseio=False)
while True:
try:
# Print the values to the serial port
temperature = dhtDevice.temperature
humidity = dhtDevice.humidity
print(
"Temp: {:.1f} C Humidity: {}% ".format(
temperature, humidity
)
)
except RuntimeError as error:
# Errors happen fairly often, DHT's are hard to read, just keep going
print(error.args[0])
time.sleep(2.0)
continue
except Exception as error:
dhtDevice.exit()
raise error
# l URL Domoticz pour le widget virtuel
# url='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
url='/json.htm?type=commande¶m=udevice& idx='+(domoticz_idx)
url+='&nvalue=0&svalue='
url+=str('{0:0.1f};{1:0.1f};2').format(temperature, humidity)
#print url
maj_widget(url)
time.sleep(2.0)
maintenant nouvelle echec :
pi@raspi2:~/Adafruit_Python_DHT/examples $ sudo ./dht_simpletest.py
Traceback (most recent call last):
File "./dht_simpletest.py", line 6, in <module>
import board
ImportError: No module named board
une idée?
Re: module humidité + temperature AZDelivery DHT22
Publié : 26 nov. 2020, 12:24
par Chrominator
La programmation nécessite de la rigueur.
Jeu des 7 différences :
Qu'est-ce qui change dans cette partie de ton script entre le premier qui plantait à la ligne 47

- Screenshot_2020-11-26 module humidité + temperature AZDelivery DHT22 - Forum Domoticz en français.png (10.12 Kio) Consulté 3459 fois
Et le plus récent qui plante dès le début à la ligne 6 ?

- Screenshot_2020-11-26 module humidité + temperature AZDelivery DHT22 - Forum Domoticz en français(1).png (10.2 Kio) Consulté 3459 fois
Re: module humidité + temperature AZDelivery DHT22
Publié : 26 nov. 2020, 17:40
par damolc
j ai changer le script pour la deuxième version avec comme message d erreur :
sudo ./dht_simpletest.py
Traceback (most recent call last):
File "./dht_simpletest.py", line 6, in <module>
import board
ImportError: No module named board
il me met que le module n a pas été nommé ?
je ne comprend pas ce message et j ai cherché sans resultat
Re: module humidité + temperature AZDelivery DHT22
Publié : 26 nov. 2020, 18:20
par damolc
c est bon j ai résolu mon problème :
j ai installer sur un autre raspi et j ai mis le script decrit dans :
https://easydomoticz.com/dht-11-22-rasp ... che-enfin/
et tout foncionne
Merci de votre aide
Re: module humidité + temperature AZDelivery DHT22
Publié : 27 nov. 2020, 10:43
par Flying Domotic
Bonjour,
C'est probablement que le module board.py n'existe pas sur la machine qui râle.