Comment faire reconnaitre des sensors MQTT
-
Vieux Zebre
- Messages : 8
- Inscription : 14 août 2020, 22:53
- Localisation : Antilles
Comment faire reconnaitre des sensors MQTT
Bonjour,
Nouveau venu sur ce forum, Je butte sur un probleme depuis 2 jours, et je tourne en rond sans trouver de solution.
J'ai installé Domoticz sur un PI, j'ai mis sur le meme PI le serveur MQTT Mosquitto, depuis 2 autres ordis (Ubuntu, et Win10) tous sur le meme reseau domestique, les echanges se font tres bien, (publications, abonnements). y compris les echanges MQTT du serveur vers et depuis Domoticz.
Mais comment faire reconnaitre par Domoticz les données d'un mimiD1 avec un SHT30 qui envoi parfaitement ses données à mosquitto (je m'y abonne depuis les autres ordi sans pb)
J'ai cree un objet virtuel (capteur temp et humidité),
Je comprend que domoticz doit les associer à l'IDX 5, mais comment faire ce lien avec le wemos D1 concerné ?
faut il obligatoirement utiliser ESPeasy ou similaire ?, sinon ou trouver un code Arduino qui fasse le lien ?
j'ai l'impression que ce qui me manque c'est un bout de code dans le wemos qui dise à domoticz "C'est moi le capteur dont tu attends les données !!!
excusez ma facon d'expliquer les choses, mais je suis loin d'etre un spécialiste, et tous les tutos que je trouve me paraissent inachevés.
merci de votre aide, en fait ce que je souhaiterais surtout c'est des tutos plus détaillés.
merci d'avance les amis
Nouveau venu sur ce forum, Je butte sur un probleme depuis 2 jours, et je tourne en rond sans trouver de solution.
J'ai installé Domoticz sur un PI, j'ai mis sur le meme PI le serveur MQTT Mosquitto, depuis 2 autres ordis (Ubuntu, et Win10) tous sur le meme reseau domestique, les echanges se font tres bien, (publications, abonnements). y compris les echanges MQTT du serveur vers et depuis Domoticz.
Mais comment faire reconnaitre par Domoticz les données d'un mimiD1 avec un SHT30 qui envoi parfaitement ses données à mosquitto (je m'y abonne depuis les autres ordi sans pb)
J'ai cree un objet virtuel (capteur temp et humidité),
Je comprend que domoticz doit les associer à l'IDX 5, mais comment faire ce lien avec le wemos D1 concerné ?
faut il obligatoirement utiliser ESPeasy ou similaire ?, sinon ou trouver un code Arduino qui fasse le lien ?
j'ai l'impression que ce qui me manque c'est un bout de code dans le wemos qui dise à domoticz "C'est moi le capteur dont tu attends les données !!!
excusez ma facon d'expliquer les choses, mais je suis loin d'etre un spécialiste, et tous les tutos que je trouve me paraissent inachevés.
merci de votre aide, en fait ce que je souhaiterais surtout c'est des tutos plus détaillés.
merci d'avance les amis
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Comment faire reconnaitre des sensors MQTT
Salut,
J'ai peu joué avec mqtt mais ce que je sais c'est que c'est un moyen de transport d'un message.
Message qui n'est pas standardisé.
Il se peux simplement que ton wemos ne parle pas le 'domoticz'
Il y a fort à parier que ton salut se trouve en espeasy.. Que je ne connais que de lectures..
D'ailleurs je suis surpris qu'en connaissant son existence tu n'ais pas encore fait l'essai
Autrement il est toujours bon d'indiquer dans un sos les logs de Domoticz et en l'occurrence le message mqtt. ça peut grandement aiguiller.
Bien venu
J'ai peu joué avec mqtt mais ce que je sais c'est que c'est un moyen de transport d'un message.
Message qui n'est pas standardisé.
Il se peux simplement que ton wemos ne parle pas le 'domoticz'
Il y a fort à parier que ton salut se trouve en espeasy.. Que je ne connais que de lectures..
D'ailleurs je suis surpris qu'en connaissant son existence tu n'ais pas encore fait l'essai
Autrement il est toujours bon d'indiquer dans un sos les logs de Domoticz et en l'occurrence le message mqtt. ça peut grandement aiguiller.
Bien venu
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
mike913
- Messages : 159
- Inscription : 18 oct. 2014, 10:22
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: Comment faire reconnaitre des sensors MQTT
Bonjour,
Je n'utilise ni MQTT ni espeasy
voici le code que j'utilise pour un DHT22
Il suffit de remplacer le XX par l'ID de ton capteur virtuel
Je n'utilise ni MQTT ni espeasy
voici le code que j'utilise pour un DHT22
Code : Tout sélectionner
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Version pour ESP8266
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiUdp.h>
#include <WiFiClient.h>
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Version
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
String script = "DHT22-4.055";
String host = "Domo-05";
String dest = "http://192.168.6.218";
String sondes = "DHT-22";
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Domoticz
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
String domo = "http://192.168.6.8:8088";
String device = "xx"; // a remplacer ar le numero du device
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Variables DHT22
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#include "DHTesp.h"
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define DHTPIN 2 // what digital pin we're connected to. If you are not using NodeMCU change D6 to real pin
DHTesp dht;
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Variables WiFi
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
String ssid = "SSID";
String password = "PSK";
WiFiClient client;
HTTPClient http;
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Timers
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
unsigned long CurrentMillis = 0; // Millisseconde courante
unsigned long NextMillis = 0; // Millisseconde courante
unsigned long JourMillis = 600000; // 10 minutes
unsigned long delai = 86400000; // 24 heures (24*60*60000)
#define INTERVAL 120000 ;
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Evoie des données
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
int Send(String URL)
{
int OK = 0;
if (http.begin(URL))
{
int httpCode = http.GET();
OK = httpCode;
if (httpCode > 0)
{
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY)
{
String payload = http.getString();
Serial.println(payload);
}
}
else
{
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
return OK;
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Procedure Connexion
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void connexion(String msg)
{
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("Connexion Wifi...");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
}
//===========================================================================
// SETUP
//===========================================================================
void setup()
{
Serial.begin(115200);
delay(10);
dht.setup(DHTPIN, DHTesp::DHT22);
connexion("Connexion");
delay(1000);
}
// ===========================================================================
// Boucle principale
// ===========================================================================
void loop()
{
CurrentMillis = millis() ;
if (CurrentMillis > NextMillis)
{
if (WiFi.status() != WL_CONNECTED)
{
connexion("Reconnexion");
Serial.println("Connexion Perdue");
}
else
{
float h = dht.getHumidity();
float t = dht.getTemperature();
if (isnan(t) || isnan(h))
{
delay(2000);
Serial.println("Erreur Sonde");
}
else
{
int hum_stat;
if ( h > 70 )
{
hum_stat = 3;
}
else if ( h < 30 )
{
hum_stat = 2;
}
else if ( h >= 30 & h <= 45 )
{
hum_stat = 0;
}
else if ( h > 45 & h <= 70 )
{
hum_stat = 1;
}
String url = domo;
url += "/json.htm?type=command¶m=udevice&idx=";
url += device;
url += "&nvalue=0&svalue=";
url += String(t); url += ";";
url += String(h); url += ";";
url += String(hum_stat); url += ";";
Serial.println(url);
NextMillis = CurrentMillis + INTERVAL ;
}
}
}
if (CurrentMillis > JourMillis)
{
connexion("Reconnexion");
JourMillis = CurrentMillis + delai ;
}
}
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Comment faire reconnaitre des sensors MQTT
mike913 utilise simplement l'api http de Domoticz.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
Chrominator
- Messages : 1042
- Inscription : 19 déc. 2015, 07:29
- Localisation : France
Re: Comment faire reconnaitre des sensors MQTT
Est-ce que tu as lu le wiki domoticz concernant MQTT ?
Il y a là assez d'explications pour mener à bien ton projet.
Pour ma part et éviter la programmation, j'ai trouvé l'utilisation de node-RED très pratique et puissante.
Il y a là assez d'explications pour mener à bien ton projet.
Pour ma part et éviter la programmation, j'ai trouvé l'utilisation de node-RED très pratique et puissante.
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
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
-
Vieux Zebre
- Messages : 8
- Inscription : 14 août 2020, 22:53
- Localisation : Antilles
Re: Comment faire reconnaitre des sensors MQTT
merci pour vos réponses,
et particulierement pour ton code Mike913, effectivement je pense que la solution est de ce type,
car aussi simple d'emploi que puisse etre Espeasy, il integre assez peu de capteurs je trouve,
et la solution je pense est d'envoyer par du code Arduino la chaine qui va bien, et notament le fameux index atribué par domoticz.
Je vais creuser un peu dans ce sens.
Encore merci
et particulierement pour ton code Mike913, effectivement je pense que la solution est de ce type,
car aussi simple d'emploi que puisse etre Espeasy, il integre assez peu de capteurs je trouve,
et la solution je pense est d'envoyer par du code Arduino la chaine qui va bien, et notament le fameux index atribué par domoticz.
Je vais creuser un peu dans ce sens.
Encore merci
-
Vieux Zebre
- Messages : 8
- Inscription : 14 août 2020, 22:53
- Localisation : Antilles
Re: Comment faire reconnaitre des sensors MQTT
Effectivement c'est plus simple, et ca fonctionne, par contre avec MQTT les données des capteurs restent disponibles pour d'autres clients que domoticz, et c'est ça que je souhaite justement.
Cordialement
patrick
-
Vieux Zebre
- Messages : 8
- Inscription : 14 août 2020, 22:53
- Localisation : Antilles
Re: Comment faire reconnaitre des sensors MQTT
Ca fait un moment que je souhaite en savoir un peu plus sur Node red, mais je ne connais pas du tout.Chrominator a écrit : 15 août 2020, 12:11 Est-ce que tu as lu le wiki domoticz concernant MQTT ?
Il y a là assez d'explications pour mener à bien ton projet.
Pour ma part et éviter la programmation, j'ai trouvé l'utilisation de node-RED très pratique et puissante.