DHT Python library compatible avec domoticz

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
a62lex370
Messages : 4
Inscription : 14 avr. 2015, 19:23

DHT Python library compatible avec domoticz

Message par a62lex370 »

Bonjour la compagnie !

Je suis un neewbi dans domoticz et détenteur dans Raspberry PI 2...

Apres avoir lu plusieurs tuto sur les dht et leurs erreurs récurrente . J'ai voulu tenté le diable !

donc 1er essai " http://easydomoticz.com/raspberry-et-dht11/ "

pi@raspberrypi ~ $ sudo Adafruit_DHT 11 37 ( pin 37 : gpio 26 )
Using pin #37
Data (0): 0x0 0x0 0x0 0x0 0x0

J'ai retourné tous dans tous les sens et RIEN !!

2ieme mais avec " Python library " https://learn.adafruit.com/dht-humidity ... ll-updated

pi@raspberrypi ~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 26 ( gpio 26 : pin 37 )
Temp=18.0*C Humidity=54.0%

Ici cela fonctionne mais je ne sais pas mettre les relevé dans domoticz !

Donc je me demander juste si il est possible d'ajouter ces valeurs a domoticz ?

Merci par avance
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: DHT Python library compatible avec domoticz

Message par patrice »

Bonsoir
Bonne nouvelle si cela voulait marcher correctement !

Donc oui on peut renvoyer cela vers Domoticz
il faut que tu ajoutes dans le script de Ada, apres avoir récupéré tes valeurs temperature et humidité , l'envoi vers Domoticz sous la forme

"http://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"

ou DHTIDX est l'idx de ton capteur Temperature+Humidité et TEMP et HUM les 2 valeurs
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
a62lex370
Messages : 4
Inscription : 14 avr. 2015, 19:23

Re: DHT Python library compatible avec domoticz

Message par a62lex370 »

Slt patrice

j'ai bien compris ta réponse mais niveau du script je bloque !

La deuxième technique fonctionne bien , mais le script a crée est diffèrent ?

Car je dois faire : cd Adafruit_Python_DHT apres : cd examples et enfin sudo ./AdafruitDHT.py 11 26

Je bloque mais bon pour toi cela est possible c'est deja un bon point xD

merci
newgin
Messages : 22
Inscription : 04 avr. 2015, 14:45

Re: DHT Python library compatible avec domoticz

Message par newgin »

Salut,

Copie le script dans le dossier script de domoticz
cp /Adafruit_Python_DHT/examples/AdafruitDHT.py /domoticz/scripts

test le script
./domoticz/scripts/AdafruitDHT.py 11 26

si ça marche
sudo nano ./domoticz/scripts/AdafruitDHT.py

ajoute à la fin :

# Send data
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command&param=udevice&idx=11&nvalue=0&svalue=$TEMP;$HUM;2"
TEMP=""
HUM=""
rm $TMPFILE
exit 0
fi
#echo $cpt
cpt=$(($cpt+1))
done
exit 1

Avec un peu de chance ça peut marcher
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: DHT Python library compatible avec domoticz

Message par patrice »

Non
Cela ne fonctionnera pas tu ne peux pas melanger comme cela un bout de python et un autre bout de shell
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
a62lex370
Messages : 4
Inscription : 14 avr. 2015, 19:23

Re: DHT Python library compatible avec domoticz

Message par a62lex370 »

Slt la compagnie !

Donc en gros a moi de créer un tous nouveau script en python dans script/python de domoticz http://easydomoticz.com/domoticz-se-pythonise/

Qui celui ci pourrais récupérer les infos "temp" et "humidity" et les renvoyer a domoticz suivant l'IDX

Bon ba je crois que j'ai du taf dimanche ;-)

Sinon j'ai du mal a se que cela veut dire ( dans le tuto pour lire une sonde en typhon ):

If you'd like to access the DHT sensors using C/C++, you can use the C code that powers the Python library in your own program. Look at the source/Raspberry_Pi or source/Beaglebone_Black directory to see the C code for the Raspberry Pi or Beaglebone Black respectively. The code exposes a single function like pi_dht_read which performs the bitbang read of the DHT sensor.

Feel free to copy this code into your own program to read DHT sensors. Note that you will need to include all the .c & .h files in the directory, and the common_dht_read.c & common_dht_read.h files in the parent source directory.


Il dit qu'on peu recuperé les infos en C ?


Ou encore il faudrais un " google_spreadsheet.py " mais en version domiticz !https://learn.adafruit.com/dht-humidity ... cs-updated

Je regarde savoir si je pourais modifier le script de base de " google_spreadsheet.py " car lui arive a lire , créer un log et envoyer !
Juste ce qu'il faudrait pour moi ( nous )



merci
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: DHT Python library compatible avec domoticz

Message par patrice »

Bonsoir

J'ai commencé à regarder les scripts de chez ADA, il faut faire une ou 2 bricoles dedans
je regarde ce soir/demain pour faire un truc
te casse pas la tete
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: DHT Python library compatible avec domoticz

Message par patrice »

Bonsoir

Alors
Dans le fichier ADAFRUITDHT.py
tout en haut ajouter

Code : Tout sélectionner

import subprocess
plus bas

la partie

Code : Tout sélectionner

if humidity is not None and temperature is not None:
        print 'Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity)


sera modifiee comme suit

Code : Tout sélectionner

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 ecrit_dht.py "+str(temperature)+" "+str(humidity)
        subprocess.call(cmd, shell=True)

Puis

Le script ci-dessous devra être nommé ecrit_dht.py
rendu executable par un chmod +x
il a besoin du module requests (sudo pip install requests)
il faut y mettre les IP,ports eventuels user/password de Domoticz
et surtout l'idx du capteur de temperature+humidité dans le domoticz_idx='57'

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.1.82'
domoticz_port='8080'
user=''
password=''
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# l IDX du capteur temp+hum
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_idx='57'

###############  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;$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)


Ainsi le lancement de ADAFRUITDHT.py lancera automatiquement le 2eme script (ecrit_dht.py) avec les temp/humidite, et c'est le 2eme script qui va ecrire dans Domoticz


Je n'ai pas pu tester en vrai le fonctionnement avec un DHT1 car je n'en ai plus mais sous reserve que l'on ramene des valeurs depuis le DHT (ce qui m'étonnerait que ca marche à tous les coup) cela devrait fonctionner

A vous lire

Bonne soirée
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
a62lex370
Messages : 4
Inscription : 14 avr. 2015, 19:23

Re: DHT Python library compatible avec domoticz

Message par a62lex370 »

Slt patrice !!!

BIG MERCI a toi mais je trouve pas mon ADAFRruit.py

python: can't open file '/home/pi//adafruit/adafruit.py': [Errno 2] No such file or directory

Je dois chercher au mauvais endroit ...

Pour le script j'ai commencé mais la aussi j'ai du mal, j'ai fait :

pi@raspberrypi ~ $ cd /usr/bin
pi@raspberrypi /usr/bin $ sudo nano ecrit_dht.py ( j'ai coller ton script )
pi@raspberrypi /usr/bin $ sudo chmod +x ecrit_dht.py

Pour request :

Code : Tout sélectionner

sudo apt-get install python-setuptools 
sudo pip requests

mais le sudo pip requests ne va pas.

Je commence a nager ! et la je vais faire dodo demain debout a 3h30 .

Bonnne nuit et merci pour ton attention
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: DHT Python library compatible avec domoticz

Message par patrice »

Bonjour
Lorsque je parle de ADAFRUITDHT, il s'agit (mea culpa) tu fichier AdafruitDHT.py que tu le citais dans un post précédent, c'est celui que tu lances pour interroger le DHT
C'est donc dans celui ci que tu devra apporter les 1eres modifs
J'ai retourné tous dans tous les sens et RIEN !!

2ieme mais avec " Python library " https://learn.adafruit.com/dht-humidity ... ll-updated

pi@raspberrypi ~/Adafruit_Python_DHT/examples $ sudo ./AdafruitDHT.py 11 26 ( gpio 26 : pin 37 )
Temp=18.0*C Humidity=54.0%

Ici cela fonctionne mais je ne sais pas mettre les relevé dans domoticz !

Donc je me demander juste si il est possible d'ajouter ces valeurs a domoticz ?
Quant à requests
je n'ai pas écrit
sudo pip requests
mais
il a besoin du module requests (sudo pip install requests)
le install fait toute la différence
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Répondre