domotique arduino : 8 relais + 3 DS18B20 + email + téléinfo + NTP + delesteur

Yep!

Ton projet semble être arrivé à terme et peu d'utilisateur reprendront l'ensemble des pages afin ne serait-ce que d'y jeter un coup d'oeil.
La plupart d'entre nous avons suivi ton système au fil de l'eau et n'avons plus une vision globale des choses en fait.

Je t'exhorte donc soit à condenser tout çà dans un nouveau topic ou ici-même et d'exprimer les premières critiques façe à ton projet, soit de mettre l'ensemble dans la catégorie adéquate :wink:

Ton projet est super !!! Il sera une trés bonne base de travail pour beaucoup de personnes :wink:

@+

Zoroastre.

PS : En ce moment, je n'ai pas trop de temps mais je suis prêt à regarder ton projet si tu as déjà un condensé ou résumé.

Ce projet a été ré étudié sous websocket avec moins de fonction.

Peut-être devrais je faire un post spécial concernant un changement de boitier.

Voilà, j'ai trouvé un boitier acier pour mettre mes arduino et divers shields mais j'ai un doute concernant les alim. Dois je les mettre dans mon boitier acier ou à l'ext. pour éviter de rayonner ?

Bon après des semaines d'utilisation le systéme plante aléatoirement. Je pense qu'il n'est pas assez puissant pour tout gérer.

J'ai donc mis dans mon dernier test en parrallele la version d'origine et la version en html.

J'ai rajouter une prise mécanique qui coupe le lundi vers 2h du matin pendant 1h l'alimentation des deux systéme. Depuis, la plupart des fonctions continuent de fonctionner dont la sauvegarde sur la version HTML5.
En conclusion, grace à ce boitier, je préfére utiliser la version HTML5 qui plante moins souvent ou du moins est actif plus d'une semaine donc entre deux coupures.
Je vais utiliser un autre sketch pour les relais on/off simple qui lui tourne depuis longtemps sans avoir planté. Avec, il me servira à gérer les fils pilotes et 2 ou 3 prises.

Comme je n'ai plus de contact avec mon develop. , je vais essayer de revoir mon systéme pour lui en demander moins.

Bonjour, le code est-il dispo?

Sinon as tu utilisé la fonction

client.println(F(""));

et as tu testé ta RAM?

non

J'étais parti moi aussi du code de stantor, mais il est vraiment très lourd.
J'avais mon Arduino qui faisait un reset dès que la RAM était pleine.
Le fait d"utiliser F() allège fortement l'utilisation de la mémoire RAM.

Pour tester ta RAM tu peux utiliser:

#include <avr/pgmspace.h>
static void freeRAM (){
    extern int __heap_start, *__brkval;
    int v;
    int free = (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(F("   Free RAM :   "));
    lcd.setCursor(3,1);
    lcd.print(free);
    delay(1000);
  }

Si tu n'as pas de lcd tu remplaces les lcd.print par des Serial.print :wink:

Tu verras si au bout d'un moment ton programme fait planter la carte à cause de la RAM ou pas déjà.

Il me faudra tester ta solution bien que lors du developpement qui a duré presque 2 ans, nous avions testé avec pgmspace.h.

Je pense mettre la version HTML5 et ma prise hebdomadaire pour couper une fois par semaine le courant juste pour avoir la stat des T°C, les 3 T°C, la conso EDF et la sauvegarde sur SD.
Le fait de couper le courant (reset en gros) ne semble pas déranger la sauvegarde.

A cela je rajouterai la gestion de 8 relais avec des diodes pour gérer les fils pilotes à distance sur 4 ordres. En plus ce sketch garde en memoire l'état avant une possible coupure.

Sinon au lieu d'utiliser une prise de courant physique tu peux utiliser le Watchdog :wink:

Tu mets quoi comme code pour qu'il s'arrete et reparte ?

Je vais aller voir mais cela reste logiciel donc si il y a plantage, fonctionera t il contrairement à ma version mécanique !?!?

S'il y a plantage le watchdog sera là pour redémarrer justement

En tout cas, c'est une superbe explication. Bravo pour ce blog.

La solution 3 est interressante mais il me semble, sauf erreur, qu'il faut tjrs avoir accès à l'Arduino pour pouvoir le faire.

La solution 2 me parait bien dans mon cas, mais il me faudrait passer en minute car il y a pas mal de fonction à attendre dans mon systéme. Je vais étudier cela ....

Je ne sais pas si c'est possible de forcer un reset automatique, un peu comme ma prise, une fois par semaine.

Sinon, j'ai déjà un watchdog mais visuel :
Watchdog=Watchdog +1;
if (Watchdog>=250){
digitalWrite(pin_watchdog, LOW);//Watchdog
}
if (Watchdog<250){
digitalWrite(pin_watchdog, HIGH);//Watchdog
}
if (Watchdog>500){
Watchdog=0;

Si tu veux juste faire un reset tu relies un pin digital au RST et tu l'actives quand tu veux.

J'ai fait déjà un bouton reset déporté sur mon boitier. J'ai aussi pensé à le branché sur mon second arduino avec le sketch 8 relais on/off.

Il me faut un systéme que je puisse atteindre depuis le web car ma domotique n'est pas chez moi.

Je ne parlais pas d'un bouton physique mais d'une liaison entre 1 pins digital et le pin RST de l'arduino.
Après tu le pilote en digitalWrite(pin,HIGH); ou digitalWrite(pin,LOW); donc par l'interface web c'est faisable

Tu peux même te créer une tache planifiée si tu as un serveur.

A oui, mais quand il est planté je n'ai accès à rien et je n'ai pas de serveur.

Justement, le but c'est de le forcer à reset régulièrement pour pas planter après.

Enfin pour moi ton histoire de reset est pas normal, tu dois avoir un dépassement de chaîne de caractère ou bien une variable qui fait planter.

Il faut débug pour voir ce qu'il se passe et trouver la cause du plantage.

Sinon le wachdog c'est le mieux car si ça plante plus d'un certain temps il reset tout seul.

:wink:

En tout cas, super merci pour ton aide et tes idées.