Note de ce sujet :
  • Moyenne : 4.5 (2 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
nouvelle action index UV
#21
Tu fais parti de ceux qui vont tourner en orbite toi, un peu de culture en regardant le Pacha plutot que les tontons Flingueurs t aidera à comprendre
Répondre
#22
Je me demande s'il ne faudrait pas avoir une approche plus générale.
Le routeur a déjà de nombreuses possibilités de contrôle, en incluant des paramètres venant d'autres routeurs. Il y a même les informations Tempo (et on a vu la difficulté à maintenir l'accès à l'information).
Pourtant, on voit régulièrement apparaitre des nouveaux besoins.
L'ajout de nouveaux paramètres rend l'interface graphique plus complexe, au point qu'il y a maintenant un mode "expert" pour masquer tout ce qui est complexe.

Une solution pourrait être d'ajouter une variable dans le code qui serait utilisée pour modifier le comportement.
Cette variable (ou des variables?) non typée serait sous le contrôle d'un service de domotique. A chacun ensuite d'envoyer ce qu'il veut dans cette variable.
Reste à définir comment une telle variable viendrait influencer le comportement du routeur.
Actuellement, la fonction byte Action::TypeEnCours() dans Action.cpp agit comme un "désactivateur" de la fonction principale.

Je mets le code ici:

Code :
byte Action::TypeEnCours(int Heure, float Temperature, int Ltarfbin, int Retard) {  //Retourne type d'action  active à cette heure et test temperature OK
  byte S = 1;
  int16_t Tempx10 = int(Temperature * 10.0);  //Température en dixième de degré                                                                  //Equivalent à Action Off
  bool ConditionsOk;
  for (int i = 0; i < NbPeriode; i++) {
    if (Heure >= Hdeb[i] && Heure <= Hfin[i]) {
      ConditionsOk = true;
      if (Temperature > -100.0) {
        if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) {  // on applique un hystérésis dont les valeurs sont Tinf et Tsup
          if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i];
          if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i];
          if (Tempx10 > Tseuil) { ConditionsOk = false; }
        } else {
          if (Tinf[i] <= 1000 && Tempx10 > Tinf[i]) { ConditionsOk = false; }
          if (Tsup[i] <= 1000 && Tempx10 < Tsup[i]) { ConditionsOk = false; }
        }
      }
      if (Ltarfbin > 0 && (Ltarfbin & Tarif[i]) == 0) ConditionsOk = false;
      if (SelAct[i] != 255) {  //On conditionne à une autre action
        if (Hmin[i] != 0 && (Hmin[i] > ExtHequiv || ExtValide == 0)) ConditionsOk = false;
        if (Hmax[i] != 0 && (Hmax[i] < ExtHequiv || ExtValide == 0)) ConditionsOk = false;
        if (Ooff[i] != 0 && ((int(Ooff[i]) >= ExtOuvert && Retard != 100) || ExtValide == 0)) ConditionsOk = false;  //Inferieur au seuil bas
        if (O_on[i] != 0 && ((int(O_on[i]) > ExtOuvert && Retard == 100) || ExtValide == 0)) ConditionsOk = false;  //Inferieur au seuil haut et pas encore ouvert
      }
      if (ConditionsOk) S = Type[i];
    }
  }

  if (tOnOff > 0) S = 2;  // Force On
  if (tOnOff < 0) S = 1;  // Force Off
  return S;              //0=NO (pas utilisé),1=OFF,2=ON,3=PW,4=Triac
}


Dans cette fonction on pourrait avoir des tests supplémentaires sur des variables générales modifiées par une logique externe.

Ca rejoins l'idée de contrôler directement l'ouverture du triac via la domotique. Point soulevé ici:
https://f1atb.fr/forum_f1atb/thread-1219.html
Répondre
#23
Bonjour,

lolo69 ma écrit un message privée  mais je trouve qu'il doit bien être a la suite de cette échange

message de lolo69:
Tu as raison qu'ikl faut surveiller les UV ca t aurais eviter de te cramer le cerveau.
Ton code est completement bidon , il ne donne en rien la façon d extraire les index UV du site cité. C est pourtant effectivement pas compliqué de le faire.
En tout cas j'aimerai voir naitre ton idée un jour dans les versions d André, ce jour là le rechauffement climatique aura fait son oeuvre et on aura plus besoin de chauffer son CE

ma réponse:
mon code enfin la ligne que j'ai mis précédemment est effectivement insuffisante elle ne sert qu'a contourner les actions

ma ligne bidon if (maproduction==1&&i==1&&lindexuv<3&&maintenant>5*3600&&maintenant<7*3600){  Type_En_Cours = 2; }

fonction pour recup index uv ci dessous mais cela ne suffit toujours pas il faut appeler la fonction a une heure choisi et faire plein d'autre truc
pour que cela fonctionne

void indexuv(){


  //Serial.print("connecting to :");
// Serial.println("www.wofrance.fr");
WiFiClientSecure clientUV;
clientUV.setInsecure();
  clientUV.connect("www.wofrance.fr", 443);

  String url69 = "RhoneAlpes/Lyon/IndexUV.htm";//attention l'indexuv ne prend pas en compte la pollution lyonaise il peut y'avoir des erreurs
  clientUV.print(String("GET ") + url69 + " HTTP/1.1\r\n" + "Host: " + "www.wofrance.fr" + "\r\n");
         
  clientUV.println();
 
  unsigned long timeout = millis();
  while (clientUV.available() == 0); {
    if (millis() - timeout > 5000) {

      StockMessage("client UV Timeout !");
      clientUV.stop();
      return;
    }
  }
  while (clientUV.available()) {
 
    String lineUV = clientUV.readStringUntil('\n');
    if (lineUV.indexOf(">Heure locale<") > 0) {
        for (int l = 0 ; l <12 ; l++){
        String lineUV2 = clientUV.readStringUntil('\n');
        ligneindex[l]=lineUV2;
        Serial.println(ligneindex[l]);
      }
    break;
    }
  delay(1);
  }/////////
    clientUV.stop();
if (ligneindex[7].indexOf("color=") > 0){
  Tindexuv= ligneindex[7].substring(ligneindex[7].indexOf("color=") + 0);
  Tindexuv= Tindexuv.substring(Tindexuv.indexOf(">")+1,Tindexuv.indexOf("<"));
lindexuv=Tindexuv.toInt();}


  }

personnellement je ne suis pas la pour me faire insulter
mais plutôt pour émettre des idées en prendre essayer d'aider dans ce super projet
6800W pV
un triac sur  résistance cumulus eau sanitaire
2 relais SSR sur 2 résistances pour cumulus chauffage
et 1 relais  SSR sur radiateur en on/off
4 DS18b20 plus 4 thermistances
2 JSY-MK-194 soit 4 ampèremètre
8 relais  sur 74hc595 contrôle, chaudière, planché, vanne, circulateur.....
Répondre
#24
Et franchement tu veux que j affiche tes messages ?
Sinon ton code est sympa, il va fonctionner jusqu’à ce que le site rajoute une ligne de publicité, bon courage pour tenir ton automatisation à jour.
Répondre
#25
(25-03-2025, 03:59 PM)Lolo69 a écrit : Et franchement tu veux que j affiche tes messages ?
Sinon ton code est sympa, il va fonctionner jusqu’à ce que le site rajoute une ligne de publicité, bon courage pour tenir ton automatisation à jour.

oui c'est un risque que Chris a déjà évoqué précédemment et qui pour moi est un vrai argument de non mise en place dans le prog d'André
mais bon demain les server ntp peuvent aussi s'arrêter de fonctionné l'esp n'aura plus l'heure il faudra choisir d'autre server et recompilé
6800W pV
un triac sur  résistance cumulus eau sanitaire
2 relais SSR sur 2 résistances pour cumulus chauffage
et 1 relais  SSR sur radiateur en on/off
4 DS18b20 plus 4 thermistances
2 JSY-MK-194 soit 4 ampèremètre
8 relais  sur 74hc595 contrôle, chaudière, planché, vanne, circulateur.....
Répondre
#26
Le jour ou les 2 server ntp France s arrêteront, passe en heure locale ESP ;-) et quand ca arrivera on ne sera plus là pour en parler ;-)
Répondre
#27
Les serveurs ntp répondent à un standard. Passer de l'un à l'autre ne demande qu'à changer le nom ou l'ip. (j'avais d'ailleurs demandé l'ajout d'un champ à cet effet pour pouvoir renseigner un ntp local plutôt qu'internet).
En ce qui concerne les prévisions météo / uv, chaque site a ses propres api et règles pour les utiliser: ce n'est pas comparable !
Répondre
#28
aujourd'hui, cétait prévu couvert (mais c'est vague comme info), j'ai donc chauffé 1h cette nuit, résultat, à 14h je donnais sur le réseau, chauffe eau plein..

Faut que je regarde plus précisément les prévisions uv, pour voir leur fiabilité localement avant de lancer l'exploitation.

ps: ce systeme n'est utile quand mi saison, car dès mai, le chauffe eau ne chauffe plus la nuit, peut importe la météo, la temps de jour suffit à couvrir le besoin en énergie.
Répondre
#29
bonjour,

https://toutletempslaniaque.net/wxsolarsummary.php?  3 onglets intéressants UV, kwh/jour, maxi soleil, moyenne des années précédente sur la France
on voit bien qu'en mai l'index uv des années precedent est supérieur a 5 donc pas besoin de chauffer la nuit enfin celons le nombre de panneau et le cumulus a chauffer pour moi meme index uv4 je ne me pose plus la question je chauffe pas la nuit

index uv 1 ou 2 je chauffe la nuit mon cumulus sanitaire limite 48°
index uv3 je prend le risque de ne pas chauffer la nuit mais il faudra que je chauffe le cumulus sanitaire dés le matin donc pas de chauffage solaire en générale de la journée
index uv4 je priorise le chauffage dés le matin et je commence a chauffer le sanitaire vers midi en prio sur le chauffage mais bien souvent les 2 chauffes a fond (100%)
index uv5 souvent mi avril quasiment plus besoin de chauffage, piscine pas encore mis en route forcement tous est chaud très vite et très tot donc j'injecte
supérieur a uv5 mai juin... la piscine passe après le sanitaire mais il n'y a pas de question a ce poser j'aurais assez d'eau chaude

cette hiver du 26 aux 30 décembre il a fait beau  dans ma région index uv 3  et vraiment  un beau soleil  j'ai chauffer la nuit  du coup j'ai balancé sur le chauffage le jour bien sure j'ai fait des economies mais j'aurais pus faire mieux.
l'index uv n'est peut être pas très precis mais il m'aide beaucoup et cela fait quasiment 3 Ans que je m'enserre et les douches froide il y'en a pas eu beaucoup
6800W pV
un triac sur  résistance cumulus eau sanitaire
2 relais SSR sur 2 résistances pour cumulus chauffage
et 1 relais  SSR sur radiateur en on/off
4 DS18b20 plus 4 thermistances
2 JSY-MK-194 soit 4 ampèremètre
8 relais  sur 74hc595 contrôle, chaudière, planché, vanne, circulateur.....
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)