Page 1 sur 2

installation de sonde de temperature et dht22

Publié : 01 nov. 2018, 17:41
par arnaud45
Bonjour, je n'arrive pas installé plusieurs sonde de température et une DHT22 sans que domoticz m'associe les autres sondes avec l'hygrométrie.
J'ai une mesure de température d'eau, une mesure de température extérieur et une sonde dht22 pour l'intérieur.
Les sondes de températures extérieur et d'eau sont raccordées a un Arduino qui les transmet en 433 mhz a un autre Arduino qui est lui branché en usb à un Raspberry ou il y a domoticz. La sonde dht 22 est raccordée à l'Arduino qui est en usb.
Lorsque je vais dans les dispositifs je retrouve mes valeurs avec l'hygrométrie:
- Température extérieur avec l'hygrométrie intérieur
- Température d'eau avec l'hygrométrie intérieur
- Température intérieur avec l'hygro intérieur, ca c'est bon.
Je vous remercie par avance pour vos réponses. Etant nouveau je ne sais pas si j'écris au bon endroit.
Je vous joint mon code qui est sur l'Arduino raccordé au Raspberry:
#define CHILD_ID_TEMP 0
#define CHILD_ID_TEMP 1
#define CHILD_ID_TEMP 2
#define CHILD_ID_HUM 3
#define MY_DEBUG
#define MY_GATEWAY_SERIAL
#define MY_NODE_ID 1



#include <VirtualWire.h>
#include <VirtualWire_Config.h>
#include<SoftwareSerial.h>
#include <DHT.h>
#include<SPI.h>
#include <MyConfig.h>
#include <MySensors.h>
float Tempext;
float Tempeau;
float Tempint;
float Humidite;
float valeurs[4];
MyMessage msgTempext(0,V_TEMP);
MyMessage msgTempeau(1,V_TEMP);
MyMessage msgTempint(2,V_TEMP);
MyMessage msgHumidite(3,V_HUM);
#define DHTPIN 8
#define DHTTYPE DHT 22
DHT dht(8,DHT22);

void setup() {
Serial.begin(115200);
dht.begin();
vw_set_tx_pin(10);
vw_set_rx_pin(2);
vw_setup(2000);
vw_rx_start();
Serial.println("Setup completed.");
}
void presentation()
{
sendSketchInfo("sonde Temp","1.0");
present(0,S_TEMP);
present(1,S_TEMP);
present(2,S_TEMP);
present(3,S_HUM);

}

void loop() {

float t = dht.readTemperature(); // Gets the values of the temperature
float h = dht.readHumidity(); // Gets the values of the humidity
if (isnan(h)|| isnan(t)) {
Serial.println("Erreur de lecture du capteur DHT");
return;
}

Tempint = t;
Humidite = h;
float hic = dht.computeHeatIndex(t,h, false);

byte taille_message = sizeof(valeurs);
vw_wait_rx();
if(vw_get_message((byte *) &valeurs,&taille_message))
{
Tempext= valeurs[3];
Tempeau= valeurs[2];

send(msgTempext.set(Tempext,1));
delay(150);
send(msgTempeau.set(Tempeau,1));
delay(2000);
send(msgTempint.set(Tempint,1));
delay(150);
send(msgHumidite.set(Humidite,1));
delay(1000);
}
else
{
Serial.println("pas de reception");
}


}

Re: installation de sonde de temperature et dht22

Publié : 02 nov. 2018, 07:57
par hbachetti
Salut

J'avoue avoir le même problème.
Je ne suis pas sûr que le le problème se situe au niveau du code ARDUINO, mais plutôt au niveau DOMOTICZ.
Mais si quelqu'un a un avis contraire ...

@+

Re: installation de sonde de temperature et dht22

Publié : 03 avr. 2019, 20:44
par JulesVernes
Bonjour

+1

J'ai le même problème.

Sur la page Dispositif: MySensors
ID Enfant Type Values
11 S_TEMP #1. V_TEMP (20)
12 S_HUM #1. V_HUM (49)
13 S_TEMP #1. V_TEMP (21.3)

Quand je ne présente que les capteurs de températures, Domoticz me crée les dispositifs correctement avec en Unit les ID enfants :
Idx Matériel ID Unit Nom Type Sous-type Donnée
2 MySensorsGateway 060B 11 DHT Temp LaCrosse TX3 20.1 C
1 MySensorsGateway 060D 13 Dallas Temp LaCrosse TX3 20.7 C

Ensuite je présente en plus des température l'humidité en ID 12 et Domoticz me crée 2 nouvelles lignes :
Idx Matériel ID Unit Nom Type Sous-type Donnée
3 MySensorsGateway 060D 0 Dallas Temp + Humidity WTGR800 21.3 C, 49 %
4 MySensorsGateway 060B 0 DHT Temp + Humidity WTGR800 20.0 C, 49 %

et les 2 premiers dispositifs ne sont plus mis a jours.

Je pense que c'est un bug au niveau des associations de Domoticz,

comment peut on modifier ces éléments ?

Merci de votre aide

Re: installation de sonde de temperature et dht22

Publié : 09 janv. 2021, 19:36
par maticz
Bonsoir

Bug sur l'affichage avec le Module de MySensors, Domoticz est Super, mais les Api sont pas a jour.

Avec un capteur DHT22 Température et hydrométrie ...... c un big bordel

la/les valeurs Humidity son fausse

Image

Image

sur ma GateWay USB, l'afficheur OLED donne les bonnes Valeurs
Image

je pense que Domoticz en fait souff-rire plus d'un, et Domoticz doit souffrir ..... faut il l'abattre :D

une Solution possible Avant ???????????

doit pas avoir grand choses a modifier !!! ..... mais Houuuu

Re: installation de sonde de temperature et dht22

Publié : 10 janv. 2021, 11:22
par maticz
..mouais Rien de nouveau, Domoticz un attrape mouche :evil:

qui peut donner un lien sur le/les créateurs du module Mysensors dans DomoticZ

ou sinon comment retrouver l'emplacement dans DomoticZ


Problème de regroupement avec plusieurs capteurs HUM d'un nœud dans le réseau MySensors

gryzli133 a ouvert ce numéro il y a 23 jours
https://github.com/domoticz/domoticz/issues/4524

autre Prb https://forum.mysensors.org/topic/11318 ... d-group-id

viewtopic.php?t=9331

https://forum.mysensors.org/topic/11318 ... d-group-id

... bref la liste est longue :(

sur www.mysensors.org ... Référentiel Domoticz a supprimer ( trop de dégâts, pas une bonne pub pour MyS)
https://www.mysensors.org/controller/domoticz

Re: installation de sonde de temperature et dht22

Publié : 10 janv. 2021, 12:48
par maticz
..peut être une solution https://github.com/domoticz/domoticz/issues/276

Pas Sûr .. c pas sur

Re-Edit
après vue essai test, c sans issue, et modif de la Lib de Mysensors non merci, on vas pas en rajouter :mrgreen:

Donc a se jour 10 Janv. 2021, les dual Capteur DHT ne fonctionnement pas avec DOmoticZ et MySensors

bonne année
A+

https://www.domoticz.com/forum/viewtopi ... =42&t=9363

https://forum.mysensors.org/topic/10931 ... h-domoticz

Re: installation de sonde de temperature et dht22

Publié : 11 janv. 2021, 15:27
par maticz
.. en image

Image

bon bééée voila, la solution est Simple, supprimer les valeurs d' hydrométrie :D

vais enfin pouvoir avoir un historique des mesures température des pièces.

pour les valeurs d'humidité , création d'une virtuel qui récup la valeur du capteur ?????

.... quelle solution la plus simple (sans 200lignes de code :) ) Blockly Python Lua dzVents ???

un lien ? .. un tuto ? ... deux tuto !! Merci

Re: installation de sonde de temperature et dht22

Publié : 11 janv. 2021, 18:21
par Chrominator
Python c'est pas mal.
Je m'en suis servi avec un DHT22 pour récupérer la température de l'eau de mon chauffage central.
Ça fonctionne bien.
Faut juste penser à alimenter le DH22 avec un GPIO pour lui faire un reset entre deux mesures (pin 17 dans mon cas), sinon il ne renvoie plus rien de temps en temps. Peut-être à cause des conditions un peu extrêmes, ce capteur n'est pas sensé opérer à des températures supérieures à 80°C (mais il le fait le bougre !) ;)

Le tuto d'origine est sur le site du forum, pas bien loin : https://easydomoticz.com/dht-11-22-rasp ... che-enfin/ :lol:


Evidemment, le dispositif ci-dessous est une sonde de température/humidité rattachée à un contrôleur virtuel, mis à jour par un script...Python.
Screenshot_2021-01-11 Domoticz.png
Screenshot_2021-01-11 Domoticz.png (8.4 Kio) Consulté 7762 fois
Screenshot_2021-01-11 Domoticz(1).png
Screenshot_2021-01-11 Domoticz(1).png (60.95 Kio) Consulté 7762 fois

Le script Python :

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-

# 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
import RPi.GPIO as GPIO
import time

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

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

domoticz_ip='localhost'
domoticz_port='8080'
user=''
password=''
domoticz_idx=1635


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

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

#sensor=Adafruit_DHT.DHT11
#sensor=Adafruit_DHT.DHT22
sensor=Adafruit_DHT.AM2302
pin=4

# Set up GPIO pins
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
pin_alim = 17
GPIO.setup(pin_alim,GPIO.OUT)
GPIO.output(pin_alim,0)
print("Turnin GPIO " + str(pin_alim) + " off for 1 second.")
time.sleep(1)

############# 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")

GPIO.output(pin_alim,1)

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

if humidity is not None 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)

else:
    # Url pour ajouter un message dans le log
    url='/json.htm?type=command&param=addlogmessage&message='
    url+=os.path.basename(__file__) + ': Problème pour lire le DHT - Réinit nécessaire.'
    maj_widget(url)
    print('Probleme avec la lecture du DHT. Try again!')
    sys.exit(1)

GPIO.output(17,0)

Je le mets en zip aussi, l'indentation et les espaces sont importants avec Python.
read_heating_temp.zip
(1.72 Kio) Téléchargé 439 fois

Re: installation de sonde de temperature et dht22

Publié : 11 janv. 2021, 19:28
par maticz
Bonsoir Chrominator

Aie " script...Python" .. cella me fait un peut peur, suis obliger de partir avec un script en Python ??

je vais tourner autour pour voir, pas sur que je passe a l'acte :D

mais 1er prb, , dans le script il y a : "GPIO.output(17,0)" ..... moi c un Arduino, Rien de connecter sur le GPIO de l'Odroid

Merci Beaucoup, c'est des Info qui vont peut être me servir.

ah oui, explication de mon architecture "domotique" (un schéma a venir)
DomoticZ et seulement utiliser pour l'enregistrement des Sondes, un historique sur l'année. (un superviseur)
peut être plus par la suite.

la Philosophie du système, c'est de l'intelligence répartie , rien de centraliser .

Encore Merci Chrominator

Re: installation de sonde de temperature et dht22

Publié : 11 janv. 2021, 21:13
par Chrominator
Avec l'architecture ça précise le besoin.
Si ce sont des Arduino, on peut faire la même chose que ce qui est dans le script en Python, mais en C cette fois-ci.
Mais j'ai bien compris que le but n'était pas de se servir de DZ pour gérer les sondes, du coup tu trouveras certainement d'autres solutions.