Page 2 sur 5
Re: Arduino & Domoticz
Publié : 26 févr. 2024, 23:34
par petrapi
Oui les pins TX et RX,(UART) comme le port USB(SERIAL) de l'arduino permettent une communication série.
Donc en principe tout ce que tu as pu lire ci-dessus est applicable aux 2 branchements.
Avec un rappel sur l'UART, il te faudra probablement adapter les niveaux de tensions 3v3/5v.
Re: Arduino & Domoticz
Publié : 27 févr. 2024, 20:48
par Bobardui
Ah ok !
Je n'ai plus qu'à me mettre les mains dans le cambouis
Merci pour ces éclaircissements
Re: Arduino & Domoticz
Publié : 27 févr. 2024, 22:53
par Bobardui
Après quelques essais, j'ai enfin obtenu le message et j'ai compris une partie du fonctionnement de l'interfaçage de l'Arduino avec Domoticz
Maintenant j'ai besoin de votre aide pour comprendre comment fonctionne l'incrémentation du N° de la zone de ma boucle "FOR" présente dans Arduino
Je vous joint la partie du code Arduino qui affecte le N° de la Zone qui est en " Fuite ", cela sera plus facile pour vous d'identifier ma problématique car dans Domoticz, je n'arrive pas à afficher " fuite Zone 4 " quand celle ci est présente sur mon lcd Arduino
Code : Tout sélectionner
for (auto &zone : zones) // effectue le traitement pour toutes les zones
{
if (digitalRead(zone.broche) == HIGH) { //Lecture de l'information de l'arrosage de la Zone
switch (zone.etat) {
case REPOS:
digitalWrite(brocheElectrovanne, HIGH);
if (debitInstantane > zone.seuilDebitCoupe) {
zone.tempsDebutDebit = tempsActuel;
zone.etat = ACTIF;
}
break;
case ACTIF:
if (debitInstantane > zone.seuilDebitCoupe) {
if (tempsActuel - zone.tempsDebutDebit >= delaiFermetureElectrovanne) {
digitalWrite(brocheElectrovanne, LOW);
zone.etat = STOP;
zone.tempsDebutEtat = tempsActuel;
}
} else {
zone.etat = REPOS;
}
break;
case STOP:
//lcd.clear(); // Effacer l'écran après le message de démarrage
lcd.setCursor(0, 2);
lcd.print("Fuite Zone"); // Affiche un avertissement de fuite
lcd.print(&zone - zones + 1); // affiche numéro de zone
//A placer a l'endroit de ton code ou tu veux remonter la fuite dans domoticz:
//send(msgFuiteZone1.set(1));
send(msgFuiteTexte.set("Fuite zone 1"));
Re: Arduino & Domoticz
Publié : 28 févr. 2024, 00:39
par Flying Domotic
La description "officielle" se trouve à
https://en.cppreference.com/w/cpp/language/range-for
En gros, zone est un pointeur sur chaque élément de la table zones, du premier au dernier. Ce n'est pas une façon très courante de créer une boucle, et ça n'est pas supporté par les versions de C++ avant 2011, mais ça doit marcher

Re: Arduino & Domoticz
Publié : 28 févr. 2024, 09:38
par Bobardui
Merci Flying
Très intéressant ces explications
Mais mon problème est que tout fonctionne correctement sur Arduino
j'ai bien le bon affichage sur le lcd Arduino
par contre j'aimerais pouvoir transférer les mêmes messages sur Domoticz avec le même principe de la boucle FOR, si cela est possible
Re: Arduino & Domoticz
Publié : 28 févr. 2024, 10:24
par boum
Le calcul de la zone se fait ici (arithmétique de pointeurs un peu obscure) :
Pour avoir la même chose avec l'envoi du message :
Code : Tout sélectionner
case STOP:
const int zoneIndex = &zone - zones + 1;
//lcd.clear(); // Effacer l'écran après le message de démarrage
lcd.setCursor(0, 2);
lcd.print("Fuite Zone"); // Affiche un avertissement de fuite
lcd.print(zoneIndex); // affiche numéro de zone
//A placer a l'endroit de ton code ou tu veux remonter la fuite dans domoticz:
//send(msgFuiteZone1.set(zoneIndex));
char messageFuite[] = "Fuite zone 0";
messageFuite[11] += zoneIndex;
send(msgFuiteTexte.set(messageFuite));
Re: Arduino & Domoticz
Publié : 28 févr. 2024, 21:21
par Bobardui
Merci Boum
Cela fonctionne
Petite question : le chiffre [11] correspond à quoi ?
Re: Arduino & Domoticz
Publié : 28 févr. 2024, 21:52
par Bobardui
Comment faire une notification à partir d'une mesure ?
j'ai la possibilité à partir d'un interrupteur ou d'une température mais pas avec une mesure ?
Merci par avance
Re: Arduino & Domoticz
Publié : 28 févr. 2024, 21:59
par Keros
Normalement, tu as des notifications possibles sur tous les widgets, même mesures ou températures.
Sinon, il faut faire un script.
Re: Arduino & Domoticz
Publié : 28 févr. 2024, 22:58
par Bobardui
Merci Keros,
Mais qu'est-ce qui fait que le Widget n'a pas de Notification ?
PS : je n'arrive pas à insérer une image ?