Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Version Cartes Espressif 3.2.0 ATTENTION, le port série ne marche plus !
#1
Après un mois d'aller-retour entre EDF et Enedis, les derniers indiquant à EDF que mon installation solaire n'était pas déclarée, et ne voulaient donc pas intervenir.  Il semblerait que chez Enedis, les personnels n'aient pas accès aux mêmes informations, alors que tout a été fait dans les règles de mon côté, et que j'ai le retour d'acceptation de mon CACSI par Enedis...

Mon compteur, dont le module TIC était en panne après le blackout de Mai, a été remplacé Mardi matin.
Mon petit bricolage à partir d'un Arduino Nano fonctionnant à nouveau, j'ai rebranché mon routeur (serveur) Linky.
Je récupère la version d'André 14.24, je recompile, je charge et .... nada. rien !

Je me dis que l'optocoupleur a peut-être pris. Je le change. Toujours rien !
Je mets mon ESP32 sur la plaque à trou à la place du Nano, en refaisant les connexions : toujours rien.
Je  porte mon petit code Nano sur l'ESP32. Je le téléchage, et les données séries sont toutes vérolées.

Je vérifie les bibliothèques utilisées, et je me rends compte que j'ai mis à jour récemment toutes les bibliothèques Arduino IDE à jour.
En particulier, la biblio Espressif est maintenant le 3.2.0 et non plus la 3.1.0-RC1 (beta).

Je ré-installe donc la 3.1.1 ( officielle) et tout remarche ! Mon petit code, et aussi le code d'André 14.24.
Trois jours de prise de tête enfin terminés.

Donc faites attention si de manière intempestive vous mettez à jour les bibliothèques. Il y a des régressions, comme on en a déjà connu par la passé.

André le magicien, si tu passes par là...

Je n'ai pas eu le temps de chercher beaucoup le "pourquoi", mais trouvé une piste ici :
https://github.com/espressif/arduino-esp32/issues/9783
V14.21 modifiée. 1 serveur UxIx3, 1 Linky de référence, 1 client Triac CE tampon + 1 client SSR CE tampon + 1 client SSR sur CE tri + 3 clients SSR sur 3 radiateurs bain d'huile d'appoint. Variateurs de fréquence Piscine.
8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars.
Répondre
#2
Merci de ce retour d'expérience.
effectivement, ca peut vraiment servir ....
Config : 3 routeurs F1ATB en V14.25 - 2 routeurs fixes en mode Triacs + 1 routeur mobile polyvalent en mode : Triac+SSR
PV 3kw (8 panneaux TrinaSolar 425W + Onduleur SunGrow 3KW) - Supervision : Home Assistant / Shelly & MQTT
Autoconsommation moyenne >96 % depuis l'usage des routeurs f1atb Smile
Répondre
#3
De mon côté, j'ai également le TIC linky en panne. J'attends Enedis.... Pour les bibliothèques, je vais voir.
Répondre
#4
Au cas où, ci-joint le petit code pour Arduino Nano connecté au PC par port USB, sur lequel on utilise une librairie altsoftSerial permettant de créer des liens série sur d'autres Pins.

Ce code affiche les données Linky, sans traitement, et m'a permis de démontrer la panne du TIC ( toutes les données étaient à zéro, seul kle bit de parité "vivait" ).


/**********************************************************************************************************************************

INTERFACE Linky Arduino pc

"AltSoftSerial.h" utilise Rx 8 et Tx 9 - & pwm D10 inutilisable pour générer une horloge, car AltSofSerial utilise le timer 1 (D9 - D10)

************************************************************************************************************************************/
#define SER_BUF_SIZE 1024

#include "AltSoftSerial.h"

AltSoftSerial Rx_Linky; // Attention, pins 8 pour Rx sur Arduino Nano et pin 9 pour le Tx depuis Arduino!

int Horloge = 0;
int ledPin = 12;

void setup() {

byte V = 0;
pinMode(ledPin, OUTPUT);

// deux clignotements rapides pour tester la Led connectée sur la pin D12.
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);

Serial.begin(115200); // on initialise le lien série PC <-> Arduino Nano (Via USB)
Rx_Linky.begin(9600); // Baud Rate Linky Arduino default 8 bits sans parité. -> Il faudra masquer le bit 8.

delay(50);
Rx_Linky.flush();
Serial.flush();
delay(10);

Serial.println("initialisation et purge ports série");

}

unsigned long previousETX= millis();


// ****************************
// * Source de Mesures LINKY *
// ****************************

int boucle_appel_Linky = 0;

void LectureLinky() { //Lecture port série du LINKY .

byte V = 0;
boucle_appel_Linky++;

if (boucle_appel_Linky > 4000) {
boucle_appel_Linky = 0;
Rx_Linky.flush();
Serial.println("Attente Linky 4000 boucles = 8s");
}

while (Rx_Linky.available() > 0)

{
boucle_appel_Linky = 0;

// Le port série fonctionne en 7 bits parité paire
// La Réception se fait en 8 bits, pas de parité
// il faudra forcer le bit 8 à 0 à réception
// mais dans le cas de ma panne TIC, il n'y a que le bit parité ( ie le 8e ), qui bouge !

V = Rx_Linky.read();

switch (V) {
case 0: // valeur nulle reçue (donc bit de parité à zéro)
Serial.print("0-");
break;
// 128 64 32 16 8 4 2 0
case 128: // valeur 1 0 0 0 0 0 0 0
Serial.print("128-"); // ( valeur nulle reçue sur 7 bits, mais avec bit de parité à 1 ! )
break;

default:
byte B = (V & 0x7F); // On masque le bit de parité ( bit 7, de 0 à 7) 0111 1111 pour obtenir un caractère ASCII
// on ne le fait pas avant pour pouvoir capturer toutes les données "vides", c.a.d avec les 7 bits de données à zéro
// et on imprime si B <>2 (STX) ou 3 (ETX)

switch (B) {
case 2:
digitalWrite(ledPin, HIGH);
Serial.println();
Serial.println("received STX"); // début de trame Linky
break;
case 3 :
digitalWrite(ledPin, LOW);
Serial.println();
Serial.println("received ETX"); // fin de trame Linky
Serial.println();
break;
default : // contenu du message
Serial.print(char(B));
break;
}

break;
}
}
}


void loop() {


if (Rx_Linky.available()) // a'ton reçu un caractère sur le port Série Linky ?
{
LectureLinky(); // on lit et on affiche
}

else if (Serial.available()) // a-t'on reçu un caractère de contrôle du PC (si on veut implanter d'autres possibilités...)
{
byte outcoming_byte = (byte) Serial.read(); // on lit le caractère reçu du PC

}

}
V14.21 modifiée. 1 serveur UxIx3, 1 Linky de référence, 1 client Triac CE tampon + 1 client SSR CE tampon + 1 client SSR sur CE tri + 3 clients SSR sur 3 radiateurs bain d'huile d'appoint. Variateurs de fréquence Piscine.
8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars.
Répondre
#5
   

Enfin et bizarrement, j'ai maintenant des erreurs Checksum ( mais je ne me souviens pas qu'avec la 14.21 la page données brutes donnaient tout le message brut Linky, ce qui est le cas avec la 14.25. Peut-être n'avais-je pas fait attention, car j'utilise essentiellement le UxIx3.
V14.21 modifiée. 1 serveur UxIx3, 1 Linky de référence, 1 client Triac CE tampon + 1 client SSR CE tampon + 1 client SSR sur CE tri + 3 clients SSR sur 3 radiateurs bain d'huile d'appoint. Variateurs de fréquence Piscine.
8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars.
Répondre


Atteindre :


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