module humidité + temperature AZDelivery DHT22

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
Répondre
damolc
Messages : 240
Inscription : 24 juil. 2016, 22:08

module humidité + temperature AZDelivery DHT22

Message 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?
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: module humidité + temperature AZDelivery DHT22

Message 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é 3545 fois

https://www.domoticz.com/wiki/Domoticz_ ... 2Fhumidity
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
damolc
Messages : 240
Inscription : 24 juil. 2016, 22:08

Re: module humidité + temperature AZDelivery DHT22

Message 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
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: module humidité + temperature AZDelivery DHT22

Message par denis_brasseur »

Tout est dans le message d'erreur, problème d'indentation du code ligne 47, il manque un espace.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: module humidité + temperature AZDelivery DHT22

Message 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.
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
damolc
Messages : 240
Inscription : 24 juil. 2016, 22:08

Re: module humidité + temperature AZDelivery DHT22

Message 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?
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Re: module humidité + temperature AZDelivery DHT22

Message 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é 3466 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é 3466 fois
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
damolc
Messages : 240
Inscription : 24 juil. 2016, 22:08

Re: module humidité + temperature AZDelivery DHT22

Message 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
damolc
Messages : 240
Inscription : 24 juil. 2016, 22:08

Re: module humidité + temperature AZDelivery DHT22

Message 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
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: module humidité + temperature AZDelivery DHT22

Message par Flying Domotic »

Bonjour,

C'est probablement que le module board.py n'existe pas sur la machine qui râle.
Répondre