Page 1 sur 1

Pb remontée sonde DHT22

Publié : 02 sept. 2020, 18:11
par acuponctus
Bonjour,

J'ai réinstallé mon RPi 3 suite à crash de la carte SD.
J'ai installé la version Buster Lite et la dernière version de domoticz dessus, puis restauré ma base domoticz avec succès.

Cependant j'utilise une sonde DHT22 reliée sur ce RPi. J'arrive à obtenir les valeurs depuis une appli android (T° et humidité), ce qui confirme que la sonde est toujours bien branchée..

Et après avoir installé Adafruit_Python_DHT, pour l'utiliser avec domoticz, j'ai ces erreurs :

Quand je fais ceci depuis /home/pi/Adafruit_Python_DHT/examples :
sudo ./AdafruitDHT.py 22 4
j'obtiens :
Traceback (most recent call last):
File "./AdafruitDHT.py", line 24, in <module>
import Adafruit_DHT
ImportError: No module named Adafruit_DHT

Ligne 24 il y a ceci : "import Adafruit_DHT"
La différence par rapport à avant le crash est que j'étais en version classique, pas en version light.

version Python 2.7.16

Le second souci est lors de l'utilisation du script qui génère d'autres erreurs, mais je dois d'abord résoudre le premier problème, car le second découle sans doute du premier. (import: not found avec la ligne 29 pour commencer : import os)

Quelqu'un a t il déjà rencontré ceci ?
Ce que j'ai trouvé ne m'a pour le moment pas fait progresser.
Merci

PS, j'ai suivi ce qui était indiqué ici : https://easydomoticz.com/dht-11-22-rasp ... che-enfin/
sauf la partie apez sudo raspi-config puis dans le point 8 « Advanced Options », faites un « Enable Device Tree » car elle est inexistante dans le menu

Re: Pb remontée sonde DHT22

Publié : 02 sept. 2020, 18:50
par acuponctus
A force d'insister j'ai refait ceci :
cd Adafruit_Python_DHT
sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl
sudo python setup.py install

Et c'est passé !

Allons donc à l'étape suivante :

J’appelle la fonction: sudo sh DHT22-domoticz.sh
et j'ai ceci :

Code : Tout sélectionner

DHT22-idx1.sh: 29: DHT22-idx1.sh: import: not found
DHT22-idx1.sh: 30: DHT22-idx1.sh: import: not found
DHT22-idx1.sh: 31: DHT22-idx1.sh: import: not found
from: can't read /var/mail/requests.auth
DHT22-idx1.sh: 33: DHT22-idx1.sh: import: not found
DHT22-idx1.sh: 67: DHT22-idx1.sh: Syntax error: "(" unexpected
et les lignes sont :

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: latin-1 -*-

# basé sur le script Adafruit et adapté pour Domoticz



# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola

# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import os
import sys
import Adafruit_DHT
from requests.auth import HTTPBasicAuth
import requests


############# Parametres ################################# 

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

domoticz_ip='192.168.1.61'
domoticz_port='8080'
user=''
password=''
domoticz_idx=1


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du DHT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#sensor est 11,22,ou 2302
# pin est le numero d la pin que vous avez cablée

sensor=22
pin=4

############# Fin des parametres ################################# 


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# le fomat pour la temp hum est celui ci
#/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT
             

def maj_widget(val_url):
    requete='http://'+domoticz_ip+':'+domoticz_port+val_url
    print requete
    r=requests.get(requete,auth=HTTPBasicAuth(user,password))
    if  r.status_code != 200:
          print "Erreur API Domoticz"



humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

#if humidity is not None and temperature is not None:
if humidity < 100 and temperature is not None:
    
    print('Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(temperature, humidity))
    # l URL Domoticz pour le widget virtuel 
    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)
    print humidity


else:
    print('Probleme avec la lecture du DHT. Try again!')
    sys.exit(1)
J'avoue ne pas comprendre... c'est au niveau de l'import que ca bloque comme si la commande n'était pas comprise.

Re: Pb remontée sonde DHT22

Publié : 13 oct. 2020, 16:49
par acuponctus
Bonjour,
Après quelques semaine je me remets sur le souci rencontré.
J'ai fait les mises à jour des paquets à aujourd'hui et la commande suivante fonctionne désormais :

Code : Tout sélectionner

sudo ./AdafruitDHT.py 22 4
Temp=20.7*  Humidity=50.6%
Mais, malheureusement, le script ne passe toujours pas :

Code : Tout sélectionner

 sudo sh DHT22-idx1.sh
DHT22-idx1.sh: 29: DHT22-idx1.sh: import: not found
DHT22-idx1.sh: 30: DHT22-idx1.sh: import: not found
DHT22-idx1.sh: 31: DHT22-idx1.sh: import: not found
from: can't read /var/mail/requests.auth
DHT22-idx1.sh: 33: DHT22-idx1.sh: import: not found
DHT22-idx1.sh: 67: DHT22-idx1.sh: Syntax error: "(" unexpected
et voici les lignes en question :

Code : Tout sélectionner

import os (ligne 29)
import sys (ligne 30)
import Adafruit_DHT (ligne 31)
from requests.auth import HTTPBasicAuth
import requests (ligne 33)


############# Parametres ################################# 

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

domoticz_ip='192.168.1.61'
domoticz_port='8080'
user='xxxxxxxxxxxxxxxxxxxxxxxxx'
password='xxxxxxxxxxxxxxxxxxxxxx'
domoticz_idx=1


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du DHT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#sensor est 11,22,ou 2302
# pin est le numero d la pin que vous avez cablée

sensor=22
pin=4

############# Fin des parametres ################################# 


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# le fomat pour la temp hum est celui ci
#/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT
             

def maj_widget(val_url): (ligne 67)
    requete='http://'+domoticz_ip+':'+domoticz_port+val_url
    print requete
    r=requests.get(requete,auth=HTTPBasicAuth(user,password))
    if  r.status_code != 200:
          print "Erreur API Domoticz"

L'un d'entre vous aurait il une idée ?
Merci par avance.