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

Merci,

Je vais regarder dans la semaine, je te remercie.

Steeve

Je vais voir si j'ai le temps de tester ce soir.

Je me demande si le problème ne viens pas du fait que j'utilise le SoftwareSerial ?

j'utilise la voie serie pour l'affichage de debug.

Merci pour les informations,
Je pense que j'avais voulu faire trop compliqué. (boucle while ....)

Le programme parfaitement bien, je vais le compléter pour le rendre le plus compatible possible.
Je vais ensuite voir si on peux faire une libraire, si vous avez des informations je suis preneur.
Je pourrais le mettre a disposition si ça intéresse quelqu'un.

J'espère pouvoir aider,
J'ai modifié ton code, je rajoute le partie pour tous les abonnements (mono et triphasé) avec des paramètres.
Je vais faire quelques recherche et le passer en bibliothèque et je pense que cela pourra servir.

bluemax2001:
Bon alors pas d'idée - dommage. Cela aurait été super intéressant d'y inclure la sécurité vidéo simple.
Je suis en train de voir si il est possible de supprimer les 8 boutons On/Off "simple" pour les passer tous en On/Off/tempo. Cela dépendra de la mémoire disponible.
A oui, mettre un PIR sur le boitier pour déclencher l'allumage du blacklight du mini LCD.
Et c'est tout !!!
Puis faire les photos définitive et poster là où il faut.

En définitive, le passage en 8 boutons avec tempo ne sera pas possible. Il faudrait reprendre tout le code notamment.

Pas d'idée ? Une fois programmé et installé, je n'y reviendrai plus ...

idée esthétique ?

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.