arduino et teleinfo linky en mode standard triphasé



  • Re: Démystifier le décodage Téléinformation et l'optocoupleur SFH620

    bonjour,

    j'ai testé le montage de Charles avec mosfet à base d'opto SFH620aV3.
    C'est pour récupérer la téléinfo d'un linky en mode standard triphasé
    et non en mode historique.

    Ce qui permet d'obtenir la consommation instantanée de chaque phase afin
    de gérer un potentiel délestage (cette information est indisponible en
    mode historique sur le linky triphasé).
    Le code de lecture des trames est donc différent.
    Je peux fournir un lien gitub pour ceux qui seraient intéressés par ce
    code, ou par messagerie.
    Quand je colle ce montage sur un esp8266 (dans mon cas un nodemcu v0.9)
    tout fonctionne impeccablement. Cent pour cent des trames sont
    correctement récupérées.

    Le code est donc parfaitement fonctionnel.

    Quand je le fais tourner sur un arduino, plus d'une trame sur deux est
    en erreur.
    L'information est partielle, ou vide.

    J'ai essayé deux arduinos (un nanov3 et un mega).

    Les symptôme sont les mêmes.
    Que j'alimente le montage en 3.3v ou en 5v ne change rien à l'affaire.
    Que j'utilise un UART soft ou hardware ne change rien non plus.

    J'ai tenté de baisser la valeur de la résistance pull-down de la gate du
    mosfet sans succès : cela génere encore plus d'erreurs.

    Je n'ai pas encore tenté de l'augmenter.

    Si quelqu'un a une idée ça serait chouette.

    Un extrait des logs que j'obtiens, on y voit l'attente de début de
    trame, les infos que l'on souhaite conserver (par exemple).

    22:15:49.473 -> Wait End Previous/Start new frame <=== syncho
    22:15:50.113 -> Wait End trame
    22:15:51.193 -> CHECKSUM_OK,COUNT(1),E=[SINSTS],D=[02436] <=== info
    à conserver
    22:15:51.233 -> CHECKSUM_OK,COUNT(2),E=[SINSTS1],D=[02928]
    22:15:51.313 -> CHECKSUM_OK,COUNT(3),E=[SINSTS3],D=[77354]
    22:15:51.353 -> CHECKSUM_OK,COUNT(4),E=[SMAXSN],H=[H190110184637],D=[07850]
    22:15:51.393 -> CHECKSUM_OK,COUNT(5),E=[SMAXSN1],H=[H190110185756],D=[02220]
    22:15:51.473 -> CHECKSUM_OK,COUNT(6),E=[SMAXSN2],H=[H190110025614],D=[03180]
    22:15:51.513 -> CHECKSUM_OK,COUNT(7),E=[SMAXSN3],H=[H190110164209],D=[03330]
    22:15:51.553 ->
    CHECKSUM_OK,COUNT(8),E=[SMAXSN-1],H=[H190109181632],D=[08560]
    22:15:51.633 ->
    CHECKSUM_OK,COUNT(9),E=[SMAXSN1-1],H=[H190109181618],D=[04330]
    22:15:51.673 ->
    CHECKSUM_OK,COUNT(10),E=[SMAXSN2-1],H=[H190109233416],D=[03680]
    22:15:51.713 ->
    CHECKSUM_OK,COUNT(11),E=[SMAXSN3-1],H=[H190109191307],D=[03860]
    22:15:52.353 -> Tout est complet
    22:15:52.353 -> Statistiques echec [358]/[571] <=== stats
    d'erreurs/nb lectures
    22:15:52.353 -> [**** contenu en json ] <=== le resume en
    json correct
    22:15:52.353 ->
    {"SINSTS":"02436"},{"SINSTS1":"02928"},{"SINSTS3":"77354"},{"SMAXSN":"07850","Horo":"H190110184637"},{"SMAXSN1":"02220","Horo":"H190110185756"},{"SMAXSN2":"03180","Horo":"H190110025614"},{"SMAXSN3":"03330","Horo":"H190110164209"},{"SMAXSN-1":"08560","Horo":"H190109181632"},{"SMAXSN1-1":"04330","Horo":"H190109181618"},{"SMAXSN2-1":"03680","Horo":"H190109233416"},{"SMAXSN3-1":"03860","Horo":"H190109191307"}
    22:15:52.433 -> [
    fin ]
    22:15:54.433 -> Wait End Previous/Start new frame
    22:15:54.433 -> Wait End trame
    22:15:54.633 -> Il manque [11] groupes
    22:15:54.633 -> Statistiques echec [359]/[572] <==== erreur
    22:15:54.673 -> [
    contenu en json ] <==== on a rien de
    correct
    22:15:54.673 ->
    22:15:54.673 -> [
    fin ****]

    J'ai également des captures faites à l'oscillo pour plus de détail.

    merci


Log in to reply