Go Down

Topic: Decodeur TIC Linky (Read 16907 times) previous topic - next topic

MicroQuettas

Bonjour Olivier,

Merci pour la nouvelle version de la doc Enedis. Je l'avais eue et j'en ai tenu compte pour la V04 du serveur de téléinfo publiée par ailleurs sur ce forum.
On sait maintenant que le Linky ne coupe que lorsque la PAPP dépasse 130% de la puissance souscrite. Il coupe d'autant plus vite que le dépassement au dessus de 130% est important. J'ai rajouté ce seuil de coupure sur l'échelle de PAPP de la V04 du serveur publiée par ailleurs sur le site.
Avec maintenant 2 ans de recul et un abo de 6kWh, je n'ai pas eu une seule coupure... Je fais juste un peu attention à ne pas faire tourner tout à la fois. Les ustensiles les plus gourmands sont le four et les plaques de cuisson.

Bonne bidouille

Fred de MicroQuettas

oleveque

Bonjour Micro Quettas
je reviens sur ton code, je l'ai modifié pour obtenir la puissance apparente par phase disponible dans la TIC linky.
je ne suis pas sûr de tout avoir bien modifié:
LinkyHistTIC_triM.cpp
LinkyHistTIC_triM.cpp
Serait il possible s'il te plait et quand tu auras un moment d'y jeter un oeil.
Merci d'avance

oleveque

Bonjour Micro Quettas
il semble que Papp ne soit pas disponible sur la TIC linky, mais que le dépassement est notifié lors de l'envoi des trames courtes par Adir et le numéro de phase.
Ce que je cherche à faire c'est déléster ou bien basculer les phases en prenant en compte le temps dispo pour gérer l'urgence de délestage en focntion du dépassement.
Bonne soirée
Olivier


MicroQuettas

Bonjour Olivier,

Je n'avais pas vu votre message tout de suite.
Je me suis replongé dans la doc Enedis.

De ce que j'en comprends, en triphasé :
  • le Linky coupe lorsque  la "PAPP par phase" (SINST1 à 3) dépasse le seuil de 130%, avec la temporisation du filtre (Cf. p29 de la note),
  • en TIC "historique", il ne transmet pas cette "PAPP par phase", mais uniquement les intensités par phase IINST1 à 3,
  • il indique un dépassement de puissance lorsque une des intensité dépasse un seuil d'intensité IR calculé sur la base de 200V, ce qui correspond à 115% de la puissance souscrite par phase,
  • il émet alors des trames courtes plus fréquentes avec les IINST1 à 3 et les ADIR1 à 3 dont le contenu n'est pas clair pour moi.


A partir de cela, pour votre application, je pense que le mieux est que vous surveilliez les IINST1 à 3, qui sont toujours transmises et que vous déclenchiez une éventuelle action au dessus d'IR, sachant qu'à IR, vous avez encore un peu de marge (en temps et en intensité) avant la coupure.
Si une IINST dépasse l'intensité de coupure, alors il faut agir fissa fissa, car en plus les IINST sont en A et on sait pas comment les arrondis sont faits (A inférieur, A le plus proche, A supérieur)...
Ne prenez pas de risque et agissez à IR.

Exemples avec 3kW de puissance souscrite par phase :
  • puissance apparente de coupure = 3900 VA,
  • intensité de coupure à 230V = 16,96 A,
  • intensité de référence IR = 15 A.


Comme le programme capture toujours les IINST  et ne s'occupe pas de savoir si c'est une trame courte ou longue, vous n'avez a priori pas de changement à y apporter.

Le mieux serait de faire un essai (prudent) en ne consommant plus que sur une phase et en la mettant progressivement en surcharge en suivant la PAPP (qui est alors celle de la phase) et l'IINST de la phase.

Bonne bidouille,

Fred de MicroQuettas

oleveque

Bonsoir Micro Quettas.
C'est ce que je compte faire. Mais je voudrais enregistrer ADIR1 à ADIR3 avec le décodeur en mode debug. 
Mes premières observations sur un compteur non linky ADIRx apparaît dès lors que l'on dépasse et on passe en trame courte avec 1 trame longue toutes les 20 trames courtes. Lors du retour à la normale ADIRx disparaît. La trame courte est maintenue 20 cycles avant de re-emettre les trames normales toutes les seconde.
Je te ferais part de mes tests à venir
Cordialement
Olivier

MicroQuettas

Bonjour Olivier,

Pas de problème, je vais modifier le décodeur pour enregistrer les ADIRn lorsqu'elles sont présentes.
Pour cela je vais avoir besoin d'un peu d'aide :
  • Pouvez vous poster un exemple de trame courte que je puisse tester un minimum,
  • La question qui reste ouverte, c'est de gérer leur annulation, c-à-d quand voulez vous qu'elles repassent à 0 ?
    Ce serait utile que vous me disiez ce que vous voulez en faire...


Bonne bidouille

Fred de MicroQuettas




oleveque

Bonjour Micro Quettas.
Pour la trame courte je peux récupérer cela sans problème.
Pour la remise à zéro  il faudrait prendre un élément dans les trames qui soit constant pour avoir une notion temporelle. En gros il apparaît et ensuite tant qu'il est là et que sa valeur est là on ne fait rien. Quand il n'apparaît plus pendant un cycle complet on le remet à zéro.
Le but est de vérifier la documentation du linky et de mesurer les temps de réaction en fonction de la surcharge. Je vais faire ces tests sur 1 seule phase en chargeant progressivement avec des radiateurs électriques. Je me demande en fait si le temps de coupure évolue en fonction de la surcharge ou bien en fonction des paliers de la doc linky.
Je ne sais pas ce qu'émet le compteur quand il coupe ... à définir. On pourrait piloter un relais pour ouvrir le circuit pour pouvoir réamorcer le linky à vide sans avoir à tout couper
Cordialement
Olivier

oleveque

Bonjour Micro Quettas
Voici un ficher texte avec les trames longues et courtes.
j'ai masqué mon Adresse compteur avec XXXXXXXXXX X le dernier X etant le mot d'etat.
La seule info qui est récurrente quelle que soit la trame, C'est l'instruction ADCO XXXXXXX
Cordialement
Olivier 

MicroQuettas

Bonjour Olivier,

Merci pour tout cela. J'ai effectivement utilisé le groupe ADCO pour "compter" les trames dans la nouvelle version du décodeur ci-joint :
  • j'ai testé avec un Uno (AT328). Je crois me souvenir que vous recevez le signal sur Serial1 d'un Mega2560 : n'oubliez pas de décommenter (et d'adapter le cas échéant la ligne 35) du fichier "LkyRx_triM07a.ino",
  • la nouvelle version doit capturer les ADIR et indiquer qu'au moins une ADIR est transmise (isAdir()) sans le mode debug. Voir dans le .ino comment cela peut être utilisé,
  • attention, tous ces ajouts se paient en termes de performance. Vos enregistrements montrent bien que l'ADIR lorsqu'elle est transmise est égale à l'IINST. Donc basiquement, on avait déjà l'info !


Tenez moi au courant et bonne bidouille,

Fred de MicroQuettas

oleveque

Bonjour Micro Quettas.
Merci pour ce code modifié. Je pense tester cela la semaine prochaine et te faire un retour sur mes constatations. Je vais essayer de rajouter une fonction de comptabilisation du temps entre le premier ADIR et sa disparition.
Si je n'y arrive pas excel et la com serie me permettrons d'exploiter les données .
Cordialement
Olivier

Gups

Bonjour tout le monde,

Tout d'abord merci MicroQuettas pour le travail effectué avec cette librairie.
Je l'ai testé sur mon Linky avec un Uno et tout fonctionne à merveille du premier coup (une fois n'est pas coutume).

J'ai pour projet de réaliser un petit boitier fixé à côté du Linky permettant aux occupants de notre foyer de visualiser en un coup d'œil la quantité d'électricité consommée dans la journée.

Pour cela rien de très compliqué :
- Un Arduino (je passerai surement sur un nano une fois que tout roulera, mais je n'en ai plus sous la main).
- Un petit ruban de 8 LED WS2812.
- Un circuit d'horloge type DS1307.

Le nombre de LED allumées va augmenter progressivement au fur et a mesure des kWh consommés tout au long de la journée.

Aucune LED allumée = 0kWh consommé.
8 LED allumées = on est arrivés au seuil qu'on aimerait ne pas dépasser par jour, on déclenche une séquence qui électrise toutes les personnes ayant pris des douches de plus de 30 minutes et qui ne coupent pas le chauffage dans leur chambre en partant
Quand il est minuit, on remet les LED à zéro et c'est reparti pour un tour.

Je ne sais pas si cela aura un quelconque impact sur notre facture, mais cela nous permettra au moins de prendre conscience de l'influence que nous avons sur notre consommation.

Pour le moment tout se passe bien, le ruban LED fonctionne, le DS1307 également et je récupère correctement la téléinfo.

Mon seul souci : j'ai un contrat HP/HC... Et la je pense que MicroQuettas me voit venir avec mes gros sabots...  :)

Avec la librairie actuelle, je ne récupère pas les index HP/HC. J'ai jeté un coup d'œil aux fichiers, mais je n'ai pas un niveau suffisant pour comprendre quoi que ce soit qu'il se passe dans cette librairie.

Pourriez-vous me guider sur les modifications à apporter dans les fichiers de la librairie pour récupérer ces deux index ?

D'avance merci !

Guillaume

MicroQuettas

Bonjour Guillaume,

Sympa votre application. Quand elle sera au point il faudra la publier.

Pour le décodeur, le HP/HC existe, mais dans une autre version. Une occasion de mettre à jour la version de base.
Je résume votre besoin :
  • carte Uno (c-à-d AVR328, donc entrée par SoftwareSerial),
  • index HP/HC,
  • mono ou triphasé ?
  • vous n'avez a priori pas besoin des intensités (pour éviter de charger inutilement la barque) ?


Merci de me confirmer et bonne bidouille,

MicroQuettas

Gups

#87
Oct 21, 2019, 12:49 pm Last Edit: Oct 21, 2019, 03:52 pm by Gups
Bonjour MicroQuettas,

  • Carte Uno pour le moment, mais je passerai sur un Nano une fois le prototype fonctionnel. Cela reste un 328P.
  • Index des HP et index des HC, tout à fait.
  • Compteur en mono.
  • Je ne compte pas utiliser l'intensité, en revanche je me servirai peut-être de Papp avec un deuxième strip LED pour la visualiser.


[EDIT] : Oh et cela me vient à l'esprit : Est-il possible de récupérer l'heure du compteur via la télé-info ? J'ai l'impression que non car je ne la voit pas passer dans le trames.

Merci beaucoup et bonne journée.

Guillaume

MicroQuettas

Bonjour,

La nouvelle version est en route... Les champs à extraire seront paramétrables à la compilation.

Pour l'heure, seuls les Linky en TIC standard (rapide) envoient l'heure.
Pour votre système, vous avez prévu une DS1307 (ou mieux une DS3231, plus précise), mais je pense qu'en fait, avec la nouvelle version du décodeur, vous n'en aurez pas besoin. Si vous avez uniquement besoin d'un signal toutes les 24h pour remettre le compteur journalier à zéro, vous pourrez utiliser le changement de tarif PTEC, par ex. lorsqu'il passe en heures creuses en fin de soirée.

Pour la tester la réception du PTEC, pourriez vous m'enregistrer une trame en mode heures pleines et une en heures creuses ?
Pour enregistrer tout ce qui rentre dans le décodeur, il faut décommenter la ligne 22 de LinkyHistTIC.cpp
Quote
//#define LINKYDEBUG true
Merci d'avance et bonne bidouille,

MicroQuettas

Gups

Heures pleines :

Quote
OPTARIF HC.. <
ISOUSC 30 9
HCHC 009574010  
HCHP 002818492 5
PTEC HP..  
IINST 001 X
IMAX 090 H
PAPP 00300 $
HHPHC A ,
MOTDETAT 000000 B

Heures creuses :


Quote
OPTARIF HC.. <
ISOUSC 30 9
HCHC 009576971 2
HCHP 002821111 #
PTEC HC.. S
IINST 009 
IMAX 090 H
PAPP 02050 (
HHPHC A ,
MOTDETAT 000000 B
Effectivement je n'ai besoin que d'un trigger par jour.
En revanche, les compteurs changent de tarif deux fois par jour : Chez nous c'est heures creuses de 3h à 8h, puis de 12h30 à 15h30. Ce qui me donne deux triggers par période de 24h. Je ne sais pas comment l'arduino pourrait les différencier et se remettre à zéro seulement avec le trigger de 3h du matin.

Go Up