Messages : 28 
    Sujets : 3
	 Inscription : Mar 2025
	
	 
 
	
	
		bonjour, nouveau et débutant, j'ai réussi à installer la version lecture linky v10.1 sur mon esp32 vroom. le linky est en mode standard ( j(ai modifié la vitesse du port série pour adapté le code) je voudrai avoir accés à l'étiquette DATE pour décoder la date , le jour ..... j'ai chercher , j'ai écrit pas mal de code, mais là je sèche. quelqu'un a t-il déjà réussi cela ? 
ps j'ai écrit un code pour convertir la date unix en "arduino" mais apparemment c'est pas de l'unix?  
merci pour votre aide.
	 
	
	
	
		
	 
 
 
	
	
	
		
	Messages : 50 
    Sujets : 3
	 Inscription : Nov 2024
	
	 
 
	
	
		if (code.indexOf("DATE")>0){ 
  String test= code.substring(code.indexOf("DATE") + 0); 
   DATELinky= test.substring(6, 20); 
    
anneelinky="20"+test.substring(6, 8); 
moislinky=test.substring(8, 10); 
jourlinky=test.substring(10, 12); 
   heurelinky=test.substring(12, 14); 
   minutelinky=test.substring(14, 16); 
   secondelinky=test.substring(16, 18);}
	 
	
	
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.....
 
	
		
	 
 
 
	
	
	
		
	Messages : 28 
    Sujets : 3
	 Inscription : Mar 2025
	
	 
 
	
		
		
  
		29-03-2025, 08:38 PM 
(Modification du message : 29-03-2025, 08:45 PM par tictic tac.)
		
	 
	
		bonsoir, merci pour votre retour. voila ce que j'ai sur le décodage linky , c'est la page html. 
je vais essayer vos propositions. merci
 https://www.dropbox.com/scl/fi/5zibhrhc5...yq7et&dl=0
	 
	
	
	
		
	 
 
 
	
	
	
		
	Messages : 28 
    Sujets : 3
	 Inscription : Mar 2025
	
	 
 
	
		
		
		29-03-2025, 10:05 PM 
(Modification du message : 29-03-2025, 10:09 PM par tictic tac.)
		
	 
	
		voilà j'ai mis ce bout de code dans la boucle lecture linky, ( merci cdlnd) ici: 
Code : DataRawLinky[IdxDataRawLinky] = char(13); 
            IdxDataRawLinky = (IdxDataRawLinky + 1) % 1000; 
            if (code.indexOf("IINST") == 0) { 
              Iinst = val.toFloat(); 
              if (Imoy == 0) { Imoy = Iinst; } 
              Imoy = (Iinst + 149 * Imoy) / 150;  //moyenne courant efficace 5 dernieres minutes environ 
            } 
            if (code.indexOf("PAPP") == 0) { 
              Papp = val.toFloat(); 
              if (PappM == 0) { PappM = Papp; } 
              PappM = (Papp + 149 * PappM) / 150;  //moyenne puissance apparente 5 dernieres minutes environ 
            } 
            if (code.indexOf("HCHP") == 0 || code.indexOf("BASE") == 0) { 
              HCHP = val.toInt(); 
            } 
            if (code.indexOf("HCHC") == 0) { 
              HCHC = val.toInt(); 
            } 
            if (code.indexOf("DATE") > 0) { 
               
              String test = code.substring(code.indexOf("DATE") + 0); 
              DATELinky = test.substring(6, 20); 
 
              anneelinky = "20" + test.substring(6, 8); 
              moislinky = test.substring(8, 10); 
              jourlinky = test.substring(10, 12); 
              heurelinky = test.substring(12, 14); 
              minutelinky = test.substring(14, 16); 
              secondelinky = test.substring(16, 18); 
 
              Serial.print("DATE*****************************"); 
              Serial.println(anneelinky); 
              Serial.print(moislinky); 
              Serial.println(jourlinky); 
 
              Serial.print(heurelinky); 
              Serial.print(minutelinky); 
              Serial.println(secondelinky); 
            } 
          } 
 
          break;
  j'ai rien comme si l'étiquette date était vide , alors que ce n'est pas le cas ( je l'ai sur la page html). j'ai retourné le problème dans tout les sens, j'ai même change le signe supérieur en différent ( j'ai juste le chiffre 20 qui est ajouté pour les années). merci pour votre lecture.
	  
	
	
	
		
	 
 
 
	
	
	
		
	Messages : 28 
    Sujets : 3
	 Inscription : Mar 2025
	
	 
 
	
		
		
		30-03-2025, 08:51 AM 
(Modification du message : 30-03-2025, 08:57 AM par tictic tac.)
		
	 
	
		bonjour, je continue mon exploration, je m’aperçois que mes graphes sont aussi vide ( comme ils ne m'intéresse pas pour l'instant,  je pensai qu'il fallait les actionner) donc j'ai peut être un soucis ailleurs. j'ai copié le code  lecture linky mode historique v1.10 tel quel, j'ai juste modifié la vitesse de réception du serial 2. je reçoit la trame dans le serial moniteur.dans la page hmtl en bas. Je cale! merci de votre lecture. 
https://www.dropbox.com/scl/fi/77wznnmfs...ase3w&dl=0
	 
	
	
	
		
	 
 
 
	
	
	
		
	Messages : 183 
    Sujets : 0
	 Inscription : Jun 2024
	
	 
 
	
	
		 (30-03-2025, 08:51 AM)tictic tac a écrit :  bonjour, je continue mon exploration, je m’aperçois que mes graphes sont aussi vide ( comme ils ne m'intéresse pas pour l'instant,  je pensai qu'il fallait les actionner) donc j'ai peut être un soucis ailleurs. j'ai copié le code  lecture linky mode historique v1.10 tel quel, j'ai juste modifié la vitesse de réception du serial 2. je reçoit la trame dans le serial moniteur.dans la page hmtl en bas. Je cale! merci de votre lecture. 
 
https://www.dropbox.com/scl/fi/77wznnmfs...ase3w&dl=0 
Bonjour 
 
  le prog d'André est spécifique au mode historique, il y a quelques autre modif a faire en plus du simple changement de vitesse port série
 
  entre autre :  
  en mode standard, le séparateur n'est plus un espace mais une tabulation et certaine ligne comporte aussi un champ représentant le moment de l'événement 
  les étiquettes mode historique ne sont plus les même en mode standard
   https://www.enedis.fr/media/2035/download
	 
	
	
Merci André    , 
Routeur V15.11 (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions 
Panneaux 1680Wc 
1 Triac : ECS 2000W 
1 SSR (multi) : ECS 1800W 
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W 
1 SSR (multi) : circuit d'eau 1500W 
1 SSR (multi) : Ultime 2000W
  
	
		
	 
 
 
	
	
	
		
	Messages : 28 
    Sujets : 3
	 Inscription : Mar 2025
	
	 
 
	
	
		bonjour, comme me le faisait remarquer michy ( c'est pas possible il y trop de changement a faire). je suis donc parti sur la version "routeur solaire V3.11 linky" j'ai pas besoin de plus car je n'ai pas de prod solaire. 
j'ai réussi à obtenir la date et l'heure. je suis bloqué sur l'étiquette STGE, j'ai besoin de récupérer les bit 26 et 27. seulement c'est un String, quand je le transforme en INT ça passe pas car dedans il y des caractères (STGE = 012A4401) la fonction Val.toInt bloque. j'ai essayé pas mal de chose. mais la je séche. 
merci de votre aide. 
ps je récupére le STGE ave ça:
 Code : if (code.indexOf("STGE") == 0) { 
      Serial.println ("****STGE******"); 
      unsigned long Decod_Couleur; 
     int Couleur; 
      Decod_Couleur=val.toInt(); 
      
      Serial.println (Decod_Couleur);
  
	 
	
	
	
		
	 
 
 
	
	
	
		
	Messages : 50 
    Sujets : 3
	 Inscription : Nov 2024
	
	 
 
	
		
		
		02-04-2025, 09:40 AM 
(Modification du message : 02-04-2025, 09:53 AM par cdlnd.)
		
	 
	
		Bonjour, 
 
retire toint() et mais ta variable en String 
 
if (code.indexOf("STGE") == 0) { 
      Serial.println ("****STGE******"); 
      String Decod_Couleur; 
    int Couleur; 
      Decod_Couleur=val; 
     
      Serial.println (Decod_Couleur); 
  
Re  
que veux tu faire réellement pourquoi utilisé le RMS si ta pas de production donc pas besoin de router? 
tu veux juste récupérer les infos du linky avec le tic afin de les voir sur une pageweb?
	
	
	
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.....
 
	
		
	 
 
 
	
	
	
		
	Messages : 28 
    Sujets : 3
	 Inscription : Mar 2025
	
	 
 
	
	
		bonjour, merci cdlnd. mon objectif c'est en effet d'afficher les infos modes standard du linky sur une page html.Ensuite pouvoir faire du délestage ( en heure creuse ( machine a laver, sèche linge, lave vaisselle et bientôt une pompe a chaleur). 
pour en revenir sur mon morceau de code. Cela me donne bien ce que je retrouve sur les infos du linky. mais je voudrais pouvoir lire les bits de cette étiquette pour savoir qu'elle est la couleur du jour, de lendemain. merci pour votre lecture.
	 
	
	
	
		
	 
 
 
	
	
	
		
	Messages : 183 
    Sujets : 0
	 Inscription : Jun 2024
	
	 
 
	
		
		
		02-04-2025, 11:15 AM 
(Modification du message : 02-04-2025, 12:38 PM par michy.)
		
	 
	
		 (02-04-2025, 10:06 AM)tictic tac a écrit :  je voudrais pouvoir lire les bits de cette étiquette pour savoir qu'elle est la couleur du jour, de lendemain. merci pour votre lecture. 
Bonjour, 
 
en partant de l’hypothèse que STGE est récupérer dans un variable String  =>  String STGE = "012A4401"; 
quelques déclarations variables et constantes pour extraire les informations
 Code : uint32_t statusReg=0; 
byte contact = 0; 
byte depassement = 0; 
byte indexActif = 0; 
byte colDuJour = 0; 
byte colDemain = 0; 
#define UNKN 0b00 
#define BLEU 0b01 
#define BLAN 0b10 
#define ROUG 0b11 
char tarifTempo[6][9] = {"Bleu HC","Bleu HP", "Blanc HC", "Blanc HP","Rouge HC","Rouge HP"}; 
char couleur[4][5] = {"UNKN","BLEU","BLAN","ROUG"};
  
 
Code :    statusReg = strtoul(STGE.c_str(),NULL,16); // converti la chaine d'un texte hexa en numérique 
  contact = statusReg & 0b1;  // le premier bit du registre donne l'état du contact sec (période creuse / période pleine) 
  depassement = (statusReg >> 7) & 0b1;  // le bit 7 du registre donne l'information du dépassement de la puissance souscrite 
  indexActif  = (statusReg >> 10) & 0b1111;  // les bits 10, 11, 12 et 13 donne l'index actif (comptage énergie)  
  // 0b0000 = Index 1 = tempo heure creuse tarif bleu 
  // 0b0001 = Index 2 = tempo heure pleine tarif bleu 
  // 0b0010 = Index 3 = tempo heure creuse tarif blanc 
  // 0b0011 = Index 4 = tempo heure pleine tarif blanc 
  // 0b0100 = Index 5 = tempo heure creuse tarif rouge 
  // 0b0101 = Index 6 = tempo heure pleine tarif rouge 
  colDuJour = (statusReg >> 24) & 0b11;  // les bits 24 et 25 donne la couleur du jour  
  colDemain = (statusReg >> 26) & 0b11;  // les bits 26 et 27 donne la couleur de demain 
  Serial.println(statusReg, BIN); 
  Serial.printf("Le contact C1 C2 est : %s\n", (contact == 1 ? "ouvert" : "fermé")); 
  Serial.printf("En ce moment, la puissance soutirée%sdépasse%sle contrat souscrit\n",(depassement ? " ": " ne "),(depassement ? " ": " pas ")); 
  Serial.printf("Tarif en cours : %s\n",tarifTempo[indexActif]); 
  Serial.printf("Couleur du jour : %s\n",couleur[colDuJour]); 
  Serial.printf("Couleur de demain : %s\n", couleur[colDemain]);
  
	 
	
	
Merci André    , 
Routeur V15.11 (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions 
Panneaux 1680Wc 
1 Triac : ECS 2000W 
1 SSR (multi) : ECS 1800W 
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W 
1 SSR (multi) : circuit d'eau 1500W 
1 SSR (multi) : Ultime 2000W
  
	
		
	 
 
 
			 
		 |