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
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 :oops: ) :

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&param=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&param=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&param=udevice&idx='+str(domoticz_idx)
url='/json.htm?type=commande&param=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
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
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.