Arduino & Domoticz
Re: Arduino & Domoticz
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.
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
Ah ok !
Je n'ai plus qu'à me mettre les mains dans le cambouis
Merci pour ces éclaircissements
Je n'ai plus qu'à me mettre les mains dans le cambouis
Merci pour ces éclaircissements
Re: Arduino & Domoticz
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
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"));
-
Flying Domotic
- Messages : 772
- Inscription : 10 mars 2020, 15:26
Re: Arduino & Domoticz
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
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
Dernière modification par Keros le 28 févr. 2024, 06:38, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Re: Arduino & Domoticz
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
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
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
lcd.print(&zone - zones + 1); // affiche numéro de zoneCode : 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));
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Re: Arduino & Domoticz
Merci Boum
Cela fonctionne
Petite question : le chiffre [11] correspond à quoi ?
Cela fonctionne
Petite question : le chiffre [11] correspond à quoi ?
Code : Tout sélectionner
messageFuite[11] += zoneIndex;Re: Arduino & Domoticz
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
j'ai la possibilité à partir d'un interrupteur ou d'une température mais pas avec une mesure ?
Merci par avance
Re: Arduino & Domoticz
Normalement, tu as des notifications possibles sur tous les widgets, même mesures ou températures.
Sinon, il faut faire un script.
Sinon, il faut faire un script.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: Arduino & Domoticz
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 ?
Mais qu'est-ce qui fait que le Widget n'a pas de Notification ?
PS : je n'arrive pas à insérer une image ?