Skip to content
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Community Forum

  1. Home
  2. Categories
  3. Téléinfo
  4. Téléinfo
  5. Tasmota

Tasmota

Scheduled Pinned Locked Moved Téléinfo
525 Posts 31 Posters 476.3k Views 14 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Nicolas BernaertsN Nicolas Bernaerts

    @enjoy-combi Bonjour,
    Les erreurs de réception sont effectivement très souvent liées à la valeur de la résistance en sortie TIC. Suivant les compteurs, elle peut varier entre 4.7k (mode historique) et 1k (triphasé standard). Je ne pense pas être descendu en dessous de 1k pour les différents compteurs testés. C'est une piste à suivre ...

    O Offline
    O Offline
    Obi_Yoann
    wrote on last edited by
    #308

    @Nicolas-Bernaerts
    Bonjour!
    Je continue ici plutôt que sur l'issue github, je suis quand même un poil plus à l'aise en français...
    Je suis donc sur votre firmware compilé par mes soins, et je tente de faire marcher le D1 Mini ESP32 fourni par @Charles, ainsi que son shield, sur le compteur linky en mode standard. A noter, je suis incapable d'utiliser le firmware compilé à la mano si j'active le serveur ftp, reboot en boucle de l'esp32.
    J'ai l'impression que quand on sauvegarde les paramètres teleinfo, ce n'est pas vraiment sauvegardé, en tout cas un reboot fait retourner sur la configuration stock en 1200bds (ainsi que les autres paramètres). J'ai essayé de passer en 9600, mais j'ai aucun message qui est parsé correctement apparemment. Je suis bien sur le bon gpio (autoconfiguration teleinfo qui semble maper correctement les gpio, mais idem en mapant manuellement).
    Je vois les compeurs Message et Reset qui incrémentent (assez lentement pour messages, très rapidement pour reset).
    Apparemment il comprend pour le 230v mais c'est tout. Il récupère rien du reste.
    Par ex en console :
    18:40:30.601 TIC: Message reset
    18:40:30.702 TIC: Message reset
    18:40:31.352 TIC: Message reset
    18:40:32.256 TIC: Message reset
    18:40:32.259 TIC: Message reset
    18:40:32.473 RSL: SENSOR = {"Time":"2022-07-21T18:40:32","METER":{"PH":1,"ISUB":0,"PSUB":0,"PMAX":0,"U1":230,"P1":0,"W1":0,"I1":0.0,"C1":1.00}}
    18:40:32.957 TIC: Message reset
    18:40:32.961 TIC: Message reset
    18:40:33.207 TIC: Message reset
    18:40:33.408 TIC: Message reset
    18:40:33.507 TIC: Message reset
    18:40:33.808 TIC: Message reset
    18:40:33.907 TIC: Message reset
    18:40:34.058 TIC: Message reset
    18:40:34.157 TIC: Message reset
    Sur le home j'ai ça au bout de quelques secondes :
    bd1da748-c6d4-46a8-86af-bba9df5f6eab-image.png
    Le baud rate ne change rien à ça, mais pourtant je sens bien un problème de ce côté, sachant que quoi que je change dans le menu de config teleinfo, ça reste identique en terme de "comportement"...
    Est-ce que vous auriez une idée de la source?
    Je vais revenir sur un autre esp32s2 avec le firmware d'origine tasmota teleinfo plus standard, mais que je n'arrive pas à faire communiquer avec emoncms en attendant de comprendre ça...
    Merci!

    O 1 Reply Last reply
    • O Obi_Yoann

      @Nicolas-Bernaerts
      Bonjour!
      Je continue ici plutôt que sur l'issue github, je suis quand même un poil plus à l'aise en français...
      Je suis donc sur votre firmware compilé par mes soins, et je tente de faire marcher le D1 Mini ESP32 fourni par @Charles, ainsi que son shield, sur le compteur linky en mode standard. A noter, je suis incapable d'utiliser le firmware compilé à la mano si j'active le serveur ftp, reboot en boucle de l'esp32.
      J'ai l'impression que quand on sauvegarde les paramètres teleinfo, ce n'est pas vraiment sauvegardé, en tout cas un reboot fait retourner sur la configuration stock en 1200bds (ainsi que les autres paramètres). J'ai essayé de passer en 9600, mais j'ai aucun message qui est parsé correctement apparemment. Je suis bien sur le bon gpio (autoconfiguration teleinfo qui semble maper correctement les gpio, mais idem en mapant manuellement).
      Je vois les compeurs Message et Reset qui incrémentent (assez lentement pour messages, très rapidement pour reset).
      Apparemment il comprend pour le 230v mais c'est tout. Il récupère rien du reste.
      Par ex en console :
      18:40:30.601 TIC: Message reset
      18:40:30.702 TIC: Message reset
      18:40:31.352 TIC: Message reset
      18:40:32.256 TIC: Message reset
      18:40:32.259 TIC: Message reset
      18:40:32.473 RSL: SENSOR = {"Time":"2022-07-21T18:40:32","METER":{"PH":1,"ISUB":0,"PSUB":0,"PMAX":0,"U1":230,"P1":0,"W1":0,"I1":0.0,"C1":1.00}}
      18:40:32.957 TIC: Message reset
      18:40:32.961 TIC: Message reset
      18:40:33.207 TIC: Message reset
      18:40:33.408 TIC: Message reset
      18:40:33.507 TIC: Message reset
      18:40:33.808 TIC: Message reset
      18:40:33.907 TIC: Message reset
      18:40:34.058 TIC: Message reset
      18:40:34.157 TIC: Message reset
      Sur le home j'ai ça au bout de quelques secondes :
      bd1da748-c6d4-46a8-86af-bba9df5f6eab-image.png
      Le baud rate ne change rien à ça, mais pourtant je sens bien un problème de ce côté, sachant que quoi que je change dans le menu de config teleinfo, ça reste identique en terme de "comportement"...
      Est-ce que vous auriez une idée de la source?
      Je vais revenir sur un autre esp32s2 avec le firmware d'origine tasmota teleinfo plus standard, mais que je n'arrive pas à faire communiquer avec emoncms en attendant de comprendre ça...
      Merci!

      O Offline
      O Offline
      Obi_Yoann
      wrote on last edited by
      #309

      J'ai le même comportement avec un esp32s2, la configuration teleinfo est réinitialisée lors d'un redémarrage, et je n'ai pas les commandes energyconfig comme dans la version de Charles. Est-ce que ça pourrait être lié au littlefs? j'ai l'impression pourtant que c'est bien fonctionnel...
      Sur l'esp32s2 :
      1696f04c-e215-44ec-a011-14305f698037-image.png
      Et la partition n'est pas vide, mais à peine mieux :
      59859c70-dcb8-4d3d-8517-e024852dc5fe-image.png

      CharlesC Nicolas BernaertsN 2 Replies Last reply
      • O Obi_Yoann

        J'ai le même comportement avec un esp32s2, la configuration teleinfo est réinitialisée lors d'un redémarrage, et je n'ai pas les commandes energyconfig comme dans la version de Charles. Est-ce que ça pourrait être lié au littlefs? j'ai l'impression pourtant que c'est bien fonctionnel...
        Sur l'esp32s2 :
        1696f04c-e215-44ec-a011-14305f698037-image.png
        Et la partition n'est pas vide, mais à peine mieux :
        59859c70-dcb8-4d3d-8517-e024852dc5fe-image.png

        CharlesC Offline
        CharlesC Offline
        Charles
        wrote on last edited by Charles
        #310

        @Obi_Yoann Hello, alors pour avoir eu ce bug sur tasmota (pas de commande EnergyConfig) j'ai du chercher dans le code pour comprendre en effet si aucune pin ne déclare TInfo Rx alors EnergyConfig, ça ne fonctionnera pas car ce n'est pas alors vu comme un module de type Energy (d'ailleurs pas d'index ou autre sur la WEBUI dans ce cas la)

        attention pour l'exemple sur un denky ce ne sera certainement pas la même pin pour vous.

        6a91a195-7ab9-4b02-a1b8-04167657853c-image.png

        Ensuite ça doit s'afficher dans les log au boot (TIC: RX on ...)

        00:00:00.003-219/51 HDW: ESP32-PICO-V3-02 (PSRAM)
        00:00:00.039-217/51 UFS: FlashFS mounted with 300 kB free
        00:00:00.077 CFG: Loaded from File, Count 23
        00:00:00.092 QPC: Count 1
        00:00:00.225 BRY: Berry initialized, RAM used=3756 bytes
        00:00:00.282 Project tasmota - Tasmota Version 12.0.2.2(teleinfo)-2_0_3(2022-06-25T15:41:33)
        00:00:00.284 TIC: RX on GPIO8, baudrate 1200
        00:00:01.040 WIF: Connecting to AP1 CH2I-HOTSPOT Channel 1 BSSId 94:83:C4:12:12:76 in mode 11n as tasmota-E8AE44-3652...
        00:00:06.876 QPC: Reset
        00:00:12.759 WIF: Connected
        08:09:12.024 HTP: Web server active on tasmota-E8AE44-3652 with IP address 192.168.1.116
        

        @Nicolas-Bernaerts , tu confirmes que ta version gère aussi bien le mode historique que standard ?

        O Nicolas BernaertsN 2 Replies Last reply
        • CharlesC Charles

          @Obi_Yoann Hello, alors pour avoir eu ce bug sur tasmota (pas de commande EnergyConfig) j'ai du chercher dans le code pour comprendre en effet si aucune pin ne déclare TInfo Rx alors EnergyConfig, ça ne fonctionnera pas car ce n'est pas alors vu comme un module de type Energy (d'ailleurs pas d'index ou autre sur la WEBUI dans ce cas la)

          attention pour l'exemple sur un denky ce ne sera certainement pas la même pin pour vous.

          6a91a195-7ab9-4b02-a1b8-04167657853c-image.png

          Ensuite ça doit s'afficher dans les log au boot (TIC: RX on ...)

          00:00:00.003-219/51 HDW: ESP32-PICO-V3-02 (PSRAM)
          00:00:00.039-217/51 UFS: FlashFS mounted with 300 kB free
          00:00:00.077 CFG: Loaded from File, Count 23
          00:00:00.092 QPC: Count 1
          00:00:00.225 BRY: Berry initialized, RAM used=3756 bytes
          00:00:00.282 Project tasmota - Tasmota Version 12.0.2.2(teleinfo)-2_0_3(2022-06-25T15:41:33)
          00:00:00.284 TIC: RX on GPIO8, baudrate 1200
          00:00:01.040 WIF: Connecting to AP1 CH2I-HOTSPOT Channel 1 BSSId 94:83:C4:12:12:76 in mode 11n as tasmota-E8AE44-3652...
          00:00:06.876 QPC: Reset
          00:00:12.759 WIF: Connected
          08:09:12.024 HTP: Web server active on tasmota-E8AE44-3652 with IP address 192.168.1.116
          

          @Nicolas-Bernaerts , tu confirmes que ta version gère aussi bien le mode historique que standard ?

          O Offline
          O Offline
          Obi_Yoann
          wrote on last edited by
          #311

          @Charles Merci du retour!
          J'ai bien l'affichage (vide) de la partie teleinfo pourtant :
          6b5057be-0828-4828-994f-2a927a3bfd78-image.png
          Je penche plutôt sur un problème de configuration, il n'écrit aucun fichier de configuration quand j'enregistre les paramètres.
          J'ai trouvé dans le code source les lignes de commande (via la commande tic_help on a un bel aperçu) :
          10:07:35.978 CMD: tic_help
          10:07:35.982 HLP: tic_enable = enable teleinfo (ON / OFF)
          10:07:35.983 HLP: tic_rate = set serial rate (1200, 9600, 19200)
          10:07:35.984 HLP: tic_msgp = message publish policy :
          10:07:35.984 HLP: 0 - Never
          10:07:35.985 HLP: 1 - Every TIC message
          10:07:35.986 HLP: 2 - When Power fluctuates (± 5%)
          10:07:35.986 HLP: 3 - With Telemetry only
          10:07:35.987 HLP: tic_msgt = message type publish policy :
          10:07:35.988 HLP: 0 - None
          10:07:35.988 HLP: 1 - METER only
          10:07:35.989 HLP: 2 - TIC only
          10:07:35.990 HLP: 3 - METER and TIC
          10:07:35.990 HLP: tic_ival = ROM update interval (mn)
          10:07:35.991 HLP: tic_adj = maximum power ajustment ()
          10:07:35.992 HLP: tic_log = [littlefs] log policy (0:buffered, 1:immediate)
          10:07:35.993 HLP: tic_rot = [littlefs] force log rotate
          10:07:35.994 RSL: RESULT = {"tic_help":"Done"}
          J'ai tenté de modifié la configuration via la commande tic_rate, elle est bien prise en compte au niveau du webui une fois passée dans la console tasmota (tic_rate 9600), mais n'est pas enregistrée et revient à 1200 après un reboot, et j'ai toujours les "reset" par dizaines, et rien qui remonte comme données...
          Par ex j'enregistre le tic_rate à 9600 mais les reset continuent :
          10:11:45.615 CMD: tic_rate 9600
          10:11:45.620 RSL: RESULT = {"tic_rate":9600}
          10:11:45.953 TIC: Message reset
          10:11:45.954 TIC: Message reset
          10:11:46.221 TIC: Message reset
          10:11:46.472 TIC: Message reset
          Si je reviens sur le firmware teleinfo d'origine, pas d'erreur visible.
          Pour la configuration je suis sur la configuration automatique :
          468d5be5-e0f1-40e2-b83f-a85eb4f83c62-image.png
          L'écran et la led fonctionne bien!

          Nicolas BernaertsN 2 Replies Last reply
          • Barbu DorB Barbu Dor

            @seb-h L'article que je t'ai lié date de 2015
            A l'époque Charles avait déterminé une valeur de 1.2K
            Plus recemment il est passé à 220 ohms.
            La resistance en sortie de l'opto n'a pas grande importance, on n'est pas dans un contexte d'electronique analogique. Elle polarise la Gate du BSS138 vers le 0V quand le transistor de l'opto ne conduit pas. Il ne faut pas qu'elle soit trop faible(<~ 2K) sinon le transistor de l'opto aura du mal a monter la Gate du BSS à VCC et le BSS ne conduira pas. Trop forte (>100K), la polarisation sera trop faible et la Gate ne redescendra pas a 0V a cause des capas internes du BSS.
            Pour la résistance série de la LED, la LTV814 est donnée pour un courant max de 50mA (Absolute Maximum Rating)
            La tension de fonctionnement de la LED est de 1.2V nominal. Donc en théorie, la valeur minimal de la resistance doit être (Vmax - 1.2V)/0.050
            Avec 220 ohms, c'est ok jusqu'à une tension crête de 11V entre les bornes I1 et I2 du Linky (a mesurer en charge avec le circuit teleinfo branché, pas a vide).
            Le doc Enedis-NOI-CPT_54E ne donne pas pas les infos de tension mais fait référence à la norme EURIDIS EN 62056-3-1 que jen'ai pas (payante).
            Sur mon Liny triphasé, j'ai pratiquement 5V crète a crète sur I1/I2 lorsque le circuit est branché avec une résistance de 220 ohms:
            d488c32b-b7aa-4fbf-a46d-6621daa8e4e0-image.png

            SebHS Offline
            SebHS Offline
            SebH
            wrote on last edited by
            #312

            @Barbu-Dor
            Je fais suite à notre échange qui date d'un moment concernant le choix de la résistance en série avec l'opto. A la base j'avais une 1.5K et j'avais de temps à autre des erreurs de com. Puis je suis passer à une 1K, et il me semble que globlement les erreurs ont augmenter. J'ai donc fait suite à ton post, j'ai sortis l'oscillo, j'obtiens environ comme toi, pas loin de 5v C/C . Avec une 220 ohms, même pas la peine d'essayer, je décode rien du tout... Du coup, je suis repassé a une 1.5K... Si quelqu'un comprend quelque chose la dedans, car moi je pige plus rien

            1 Reply Last reply
            • CharlesC Charles

              @Obi_Yoann Hello, alors pour avoir eu ce bug sur tasmota (pas de commande EnergyConfig) j'ai du chercher dans le code pour comprendre en effet si aucune pin ne déclare TInfo Rx alors EnergyConfig, ça ne fonctionnera pas car ce n'est pas alors vu comme un module de type Energy (d'ailleurs pas d'index ou autre sur la WEBUI dans ce cas la)

              attention pour l'exemple sur un denky ce ne sera certainement pas la même pin pour vous.

              6a91a195-7ab9-4b02-a1b8-04167657853c-image.png

              Ensuite ça doit s'afficher dans les log au boot (TIC: RX on ...)

              00:00:00.003-219/51 HDW: ESP32-PICO-V3-02 (PSRAM)
              00:00:00.039-217/51 UFS: FlashFS mounted with 300 kB free
              00:00:00.077 CFG: Loaded from File, Count 23
              00:00:00.092 QPC: Count 1
              00:00:00.225 BRY: Berry initialized, RAM used=3756 bytes
              00:00:00.282 Project tasmota - Tasmota Version 12.0.2.2(teleinfo)-2_0_3(2022-06-25T15:41:33)
              00:00:00.284 TIC: RX on GPIO8, baudrate 1200
              00:00:01.040 WIF: Connecting to AP1 CH2I-HOTSPOT Channel 1 BSSId 94:83:C4:12:12:76 in mode 11n as tasmota-E8AE44-3652...
              00:00:06.876 QPC: Reset
              00:00:12.759 WIF: Connected
              08:09:12.024 HTP: Web server active on tasmota-E8AE44-3652 with IP address 192.168.1.116
              

              @Nicolas-Bernaerts , tu confirmes que ta version gère aussi bien le mode historique que standard ?

              Nicolas BernaertsN Offline
              Nicolas BernaertsN Offline
              Nicolas Bernaerts
              wrote on last edited by
              #313

              @Charles je confirme que ma version gère le mode historique et le mode standard.

              1 Reply Last reply
              • O Obi_Yoann

                @Charles Merci du retour!
                J'ai bien l'affichage (vide) de la partie teleinfo pourtant :
                6b5057be-0828-4828-994f-2a927a3bfd78-image.png
                Je penche plutôt sur un problème de configuration, il n'écrit aucun fichier de configuration quand j'enregistre les paramètres.
                J'ai trouvé dans le code source les lignes de commande (via la commande tic_help on a un bel aperçu) :
                10:07:35.978 CMD: tic_help
                10:07:35.982 HLP: tic_enable = enable teleinfo (ON / OFF)
                10:07:35.983 HLP: tic_rate = set serial rate (1200, 9600, 19200)
                10:07:35.984 HLP: tic_msgp = message publish policy :
                10:07:35.984 HLP: 0 - Never
                10:07:35.985 HLP: 1 - Every TIC message
                10:07:35.986 HLP: 2 - When Power fluctuates (± 5%)
                10:07:35.986 HLP: 3 - With Telemetry only
                10:07:35.987 HLP: tic_msgt = message type publish policy :
                10:07:35.988 HLP: 0 - None
                10:07:35.988 HLP: 1 - METER only
                10:07:35.989 HLP: 2 - TIC only
                10:07:35.990 HLP: 3 - METER and TIC
                10:07:35.990 HLP: tic_ival = ROM update interval (mn)
                10:07:35.991 HLP: tic_adj = maximum power ajustment ()
                10:07:35.992 HLP: tic_log = [littlefs] log policy (0:buffered, 1:immediate)
                10:07:35.993 HLP: tic_rot = [littlefs] force log rotate
                10:07:35.994 RSL: RESULT = {"tic_help":"Done"}
                J'ai tenté de modifié la configuration via la commande tic_rate, elle est bien prise en compte au niveau du webui une fois passée dans la console tasmota (tic_rate 9600), mais n'est pas enregistrée et revient à 1200 après un reboot, et j'ai toujours les "reset" par dizaines, et rien qui remonte comme données...
                Par ex j'enregistre le tic_rate à 9600 mais les reset continuent :
                10:11:45.615 CMD: tic_rate 9600
                10:11:45.620 RSL: RESULT = {"tic_rate":9600}
                10:11:45.953 TIC: Message reset
                10:11:45.954 TIC: Message reset
                10:11:46.221 TIC: Message reset
                10:11:46.472 TIC: Message reset
                Si je reviens sur le firmware teleinfo d'origine, pas d'erreur visible.
                Pour la configuration je suis sur la configuration automatique :
                468d5be5-e0f1-40e2-b83f-a85eb4f83c62-image.png
                L'écran et la led fonctionne bien!

                Nicolas BernaertsN Offline
                Nicolas BernaertsN Offline
                Nicolas Bernaerts
                wrote on last edited by
                #314

                @Obi_Yoann j'avais publié une réponse sur GitHub avant de voir tes messages ici.
                J'ai reçu des ESP32S2. J'ai ajouté la prise en compte de ce proc comme une cible de compilation. Le problème du serveur FTP qui plante au boot est réglé. Son démarrage et son arrêt sont maintenant manuels : ftp_start et ftp_stop. Il me reste à le tester en vrai avec un flux TIC (Le S2 n'a pas de port série sur le connecteur USB en mode normal ...).

                1 Reply Last reply
                • O Obi_Yoann

                  @Charles Merci du retour!
                  J'ai bien l'affichage (vide) de la partie teleinfo pourtant :
                  6b5057be-0828-4828-994f-2a927a3bfd78-image.png
                  Je penche plutôt sur un problème de configuration, il n'écrit aucun fichier de configuration quand j'enregistre les paramètres.
                  J'ai trouvé dans le code source les lignes de commande (via la commande tic_help on a un bel aperçu) :
                  10:07:35.978 CMD: tic_help
                  10:07:35.982 HLP: tic_enable = enable teleinfo (ON / OFF)
                  10:07:35.983 HLP: tic_rate = set serial rate (1200, 9600, 19200)
                  10:07:35.984 HLP: tic_msgp = message publish policy :
                  10:07:35.984 HLP: 0 - Never
                  10:07:35.985 HLP: 1 - Every TIC message
                  10:07:35.986 HLP: 2 - When Power fluctuates (± 5%)
                  10:07:35.986 HLP: 3 - With Telemetry only
                  10:07:35.987 HLP: tic_msgt = message type publish policy :
                  10:07:35.988 HLP: 0 - None
                  10:07:35.988 HLP: 1 - METER only
                  10:07:35.989 HLP: 2 - TIC only
                  10:07:35.990 HLP: 3 - METER and TIC
                  10:07:35.990 HLP: tic_ival = ROM update interval (mn)
                  10:07:35.991 HLP: tic_adj = maximum power ajustment ()
                  10:07:35.992 HLP: tic_log = [littlefs] log policy (0:buffered, 1:immediate)
                  10:07:35.993 HLP: tic_rot = [littlefs] force log rotate
                  10:07:35.994 RSL: RESULT = {"tic_help":"Done"}
                  J'ai tenté de modifié la configuration via la commande tic_rate, elle est bien prise en compte au niveau du webui une fois passée dans la console tasmota (tic_rate 9600), mais n'est pas enregistrée et revient à 1200 après un reboot, et j'ai toujours les "reset" par dizaines, et rien qui remonte comme données...
                  Par ex j'enregistre le tic_rate à 9600 mais les reset continuent :
                  10:11:45.615 CMD: tic_rate 9600
                  10:11:45.620 RSL: RESULT = {"tic_rate":9600}
                  10:11:45.953 TIC: Message reset
                  10:11:45.954 TIC: Message reset
                  10:11:46.221 TIC: Message reset
                  10:11:46.472 TIC: Message reset
                  Si je reviens sur le firmware teleinfo d'origine, pas d'erreur visible.
                  Pour la configuration je suis sur la configuration automatique :
                  468d5be5-e0f1-40e2-b83f-a85eb4f83c62-image.png
                  L'écran et la led fonctionne bien!

                  Nicolas BernaertsN Offline
                  Nicolas BernaertsN Offline
                  Nicolas Bernaerts
                  wrote on last edited by
                  #315

                  @Obi_Yoann dans ton screen tu as 2 GPIO avec Tinfo_RX. Ce doit être une partie du problème.

                  1 Reply Last reply
                  • O Obi_Yoann

                    J'ai le même comportement avec un esp32s2, la configuration teleinfo est réinitialisée lors d'un redémarrage, et je n'ai pas les commandes energyconfig comme dans la version de Charles. Est-ce que ça pourrait être lié au littlefs? j'ai l'impression pourtant que c'est bien fonctionnel...
                    Sur l'esp32s2 :
                    1696f04c-e215-44ec-a011-14305f698037-image.png
                    Et la partition n'est pas vide, mais à peine mieux :
                    59859c70-dcb8-4d3d-8517-e024852dc5fe-image.png

                    Nicolas BernaertsN Offline
                    Nicolas BernaertsN Offline
                    Nicolas Bernaerts
                    wrote on last edited by
                    #316

                    @Obi_Yoann un complément : ton partionnement proposé sur GitHub ne semble pas compatible avec le S2. Il empêche toute mise à jour en OTA et il empêche la sauvegarde de la configuration. Il faut partir du partitionnement standard avec 320k de littlefs. C'est peu, mais c'est le seul qui fonctionne d'après de rapides tests.
                    Tous les message reset sont classiquement un problème de mauvaise vitesse (1200 pour 9600 ou vive versa).

                    O 1 Reply Last reply
                    • Nicolas BernaertsN Nicolas Bernaerts

                      @Obi_Yoann un complément : ton partionnement proposé sur GitHub ne semble pas compatible avec le S2. Il empêche toute mise à jour en OTA et il empêche la sauvegarde de la configuration. Il faut partir du partitionnement standard avec 320k de littlefs. C'est peu, mais c'est le seul qui fonctionne d'après de rapides tests.
                      Tous les message reset sont classiquement un problème de mauvaise vitesse (1200 pour 9600 ou vive versa).

                      O Offline
                      O Offline
                      Obi_Yoann
                      wrote on last edited by Obi_Yoann
                      #317

                      @Nicolas-Bernaerts
                      Merci de ton retour!
                      Désolé du retard de mon côté, j'étais en vacances et sans les esp32... 😅
                      J'ai incorporé tes modifications et compilé sans soucis, puis flashé, idem sans soucis. J'ai pu me connecter sur le wifi compteur-xxxx pour lui indiquer mon wifi, ça connecte et reboot nickel.
                      Pour le moment l'esp n'est pas branché sur le TIC, j'ai configuré le bon gpio pour le TINFO RX (le 11). J'ai testé par contre simplement l'enregistrement du passage de 1200 à 9600, je continue de ne pas avoir ce paramètre d'enregistré, ça ne survit pas au redémarrage, est-ce que tu aurais une idée de ce qui pourrait causer ça?
                      J'ai toujours le même comportement lorsque je branche le TIC, plein de reset et aucune data utile :
                      29a81436-526c-4581-a48d-4289074b57ef-image.png
                      J'ai bien qu'un GPIO cette fois d'enregistré pour le TINFO RX.
                      Je comprends pas pourquoi ça fait ça, mais c'est clair que c'est pénible de pas pouvoir débugger via l'usb...
                      a7c11eb1-47b8-4a97-96d1-db6931f4243b-image.png

                      OK pour le littlefs, j'ai tenté, ça compilait bien et semblait fonctionner, mais j'avais pas testé l'OTA... je suis revenu sur les partitions normales.

                      Nicolas BernaertsN 1 Reply Last reply
                      • O Obi_Yoann

                        @Nicolas-Bernaerts
                        Merci de ton retour!
                        Désolé du retard de mon côté, j'étais en vacances et sans les esp32... 😅
                        J'ai incorporé tes modifications et compilé sans soucis, puis flashé, idem sans soucis. J'ai pu me connecter sur le wifi compteur-xxxx pour lui indiquer mon wifi, ça connecte et reboot nickel.
                        Pour le moment l'esp n'est pas branché sur le TIC, j'ai configuré le bon gpio pour le TINFO RX (le 11). J'ai testé par contre simplement l'enregistrement du passage de 1200 à 9600, je continue de ne pas avoir ce paramètre d'enregistré, ça ne survit pas au redémarrage, est-ce que tu aurais une idée de ce qui pourrait causer ça?
                        J'ai toujours le même comportement lorsque je branche le TIC, plein de reset et aucune data utile :
                        29a81436-526c-4581-a48d-4289074b57ef-image.png
                        J'ai bien qu'un GPIO cette fois d'enregistré pour le TINFO RX.
                        Je comprends pas pourquoi ça fait ça, mais c'est clair que c'est pénible de pas pouvoir débugger via l'usb...
                        a7c11eb1-47b8-4a97-96d1-db6931f4243b-image.png

                        OK pour le littlefs, j'ai tenté, ça compilait bien et semblait fonctionner, mais j'avais pas testé l'OTA... je suis revenu sur les partitions normales.

                        Nicolas BernaertsN Offline
                        Nicolas BernaertsN Offline
                        Nicolas Bernaerts
                        wrote on last edited by
                        #318

                        @Obi_Yoann
                        Si tu n'as pas connecté le TIC, il n'y a aucune raison d'avoir des données en entrée.
                        GPIO11 est une entrée analogique, c'est peut être le problème. D'après la doc, il faudrait plutôt utiliser GPIO21 a GPIO38.
                        https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-saola-1-v1.2.html

                        Nicolas BernaertsN 1 Reply Last reply
                        • Nicolas BernaertsN Nicolas Bernaerts

                          @Obi_Yoann
                          Si tu n'as pas connecté le TIC, il n'y a aucune raison d'avoir des données en entrée.
                          GPIO11 est une entrée analogique, c'est peut être le problème. D'après la doc, il faudrait plutôt utiliser GPIO21 a GPIO38.
                          https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-saola-1-v1.2.html

                          Nicolas BernaertsN Offline
                          Nicolas BernaertsN Offline
                          Nicolas Bernaerts
                          wrote on last edited by
                          #319

                          J'ai forcé TELEINFO_RX en tant que digital input. Cela pourrait régler le problème des reset intempestifs sur un port initialement analogique. Le code est sous GitHub. Il faut juste le recompiler.
                          Tiens moi au courant si cela règle le pb.

                          O 1 Reply Last reply
                          • Nicolas BernaertsN Nicolas Bernaerts

                            J'ai forcé TELEINFO_RX en tant que digital input. Cela pourrait régler le problème des reset intempestifs sur un port initialement analogique. Le code est sous GitHub. Il faut juste le recompiler.
                            Tiens moi au courant si cela règle le pb.

                            O Offline
                            O Offline
                            Obi_Yoann
                            wrote on last edited by
                            #320

                            @Nicolas-Bernaerts ah désolé je n'ai pas été clair dans mon expression, j'ai fais trop de test dans un laps de temps trop court, du coup je n'ai pas bien décrit ce que j'ai fait!
                            Mes captures d'écran ont été faites après avoir placé le HAT de charles qui est branché sur le TIC.

                            Actuellement j'ai 2 ESP32S2 identiques, l'un flashé avec le tasmota teleinfo de charles, l'autre avec ta version.

                            Le fonctionnement avec le firmware de Charles est correct dans le sens où j'ai bien les données du TIC Standard qui remontent dans l'interface, sans soucis particulier. Ce que je n'arrive pas à faire avec ce firmware c'est la remontée d'info vers un emoncms.

                            Avec ta version, ce que je vois sur l'ESP32S2 c'est que je n'arrive pas à enregistrer le changement de baud rate, il reste à 1200bds. Je change le bouton, j'enregistre, je reviens dedans il est toujours à 9600, je reboot l'ESP32S2 et il revient à 1200. Idem avec la console. Je penche plutôt sur le fait qu'il ne bascule pas en 9600 réellement, je ne sais pas pourquoi, et du coup c'est "incorrect" par rapport au mode Standard. C'est pareil avec tous les autres paramètres sur la page configuration/configure teleinfo, tous les paramètres de cette page reviennent à leurs paramètres par défaut au reboot.
                            Si je fais save et que je reviens sur la page, la valeur présente quand j'ai fais save est bien reprise, mais au reboot ça revient par défaut, pour moi c'est un bug lié à l'ESP32S2 qui cause ça mais pour débugger sans serial... 😬

                            Utilisant le HAT, je n'ai pas vraiment la main sur quel GPIO est utilisable sur l'ESP32S2, mais vu que ça fonctionne correctement au niveau lecture sur l'autre firmware avec la même configuration, je pense que matériellement on est bon.

                            J'ai compilé la nouvelle version, j'ai le même comportement quant à l'enregistrement du mode 1200/9600, ça ne survit par à un reboot et revient à chaque fois en 1200.
                            Je boot, il est en 1200, je change la conf et passe en 9600, mais j'ai toujours ça en console :
                            e5f7ef22-c904-4f74-9f68-1359fd0511bf-image.png
                            Ca incrémente sur la fenêtre principale mais sans jamais qu'un message soit bien interprété :
                            d865d0ad-23d6-43ca-8701-f9ee4978af1f-image.png
                            Je n'ai bien ici à nouveau que le gpo11 définit comme tinfo rx.
                            Et je me suis pas gouré quand j'ai flashé la version fraichement compilée (on sait jamais! je commence à avoir un paquet de fichiers... ^^)
                            88bad94e-8150-4e1a-b00c-ebe730ce0aa0-image.png
                            Merci encore de ton aide, je pense qu'on n'est pas loin de la solution mais c'est pénible de pas avoir de log à fournir! 😣

                            CharlesC Nicolas BernaertsN 2 Replies Last reply
                            • O Obi_Yoann

                              @Nicolas-Bernaerts ah désolé je n'ai pas été clair dans mon expression, j'ai fais trop de test dans un laps de temps trop court, du coup je n'ai pas bien décrit ce que j'ai fait!
                              Mes captures d'écran ont été faites après avoir placé le HAT de charles qui est branché sur le TIC.

                              Actuellement j'ai 2 ESP32S2 identiques, l'un flashé avec le tasmota teleinfo de charles, l'autre avec ta version.

                              Le fonctionnement avec le firmware de Charles est correct dans le sens où j'ai bien les données du TIC Standard qui remontent dans l'interface, sans soucis particulier. Ce que je n'arrive pas à faire avec ce firmware c'est la remontée d'info vers un emoncms.

                              Avec ta version, ce que je vois sur l'ESP32S2 c'est que je n'arrive pas à enregistrer le changement de baud rate, il reste à 1200bds. Je change le bouton, j'enregistre, je reviens dedans il est toujours à 9600, je reboot l'ESP32S2 et il revient à 1200. Idem avec la console. Je penche plutôt sur le fait qu'il ne bascule pas en 9600 réellement, je ne sais pas pourquoi, et du coup c'est "incorrect" par rapport au mode Standard. C'est pareil avec tous les autres paramètres sur la page configuration/configure teleinfo, tous les paramètres de cette page reviennent à leurs paramètres par défaut au reboot.
                              Si je fais save et que je reviens sur la page, la valeur présente quand j'ai fais save est bien reprise, mais au reboot ça revient par défaut, pour moi c'est un bug lié à l'ESP32S2 qui cause ça mais pour débugger sans serial... 😬

                              Utilisant le HAT, je n'ai pas vraiment la main sur quel GPIO est utilisable sur l'ESP32S2, mais vu que ça fonctionne correctement au niveau lecture sur l'autre firmware avec la même configuration, je pense que matériellement on est bon.

                              J'ai compilé la nouvelle version, j'ai le même comportement quant à l'enregistrement du mode 1200/9600, ça ne survit par à un reboot et revient à chaque fois en 1200.
                              Je boot, il est en 1200, je change la conf et passe en 9600, mais j'ai toujours ça en console :
                              e5f7ef22-c904-4f74-9f68-1359fd0511bf-image.png
                              Ca incrémente sur la fenêtre principale mais sans jamais qu'un message soit bien interprété :
                              d865d0ad-23d6-43ca-8701-f9ee4978af1f-image.png
                              Je n'ai bien ici à nouveau que le gpo11 définit comme tinfo rx.
                              Et je me suis pas gouré quand j'ai flashé la version fraichement compilée (on sait jamais! je commence à avoir un paquet de fichiers... ^^)
                              88bad94e-8150-4e1a-b00c-ebe730ce0aa0-image.png
                              Merci encore de ton aide, je pense qu'on n'est pas loin de la solution mais c'est pénible de pas avoir de log à fournir! 😣

                              CharlesC Offline
                              CharlesC Offline
                              Charles
                              wrote on last edited by Charles
                              #321

                              @Obi_Yoann pour envoyer les données vers EMONCMS avec tasmota, c'est super simple avec un script en berry, regarde l'exemple ici (a adapter):

                              https://github.com/hallard/WeMos-TIC#send-data-to-emoncms-with-berry-esp32-only

                              D'ailleurs si tu es sur ESP32 tu dois avoir les LOG via l'USB puisque la GPIO pour le TInfo_rx n'est pas la Serial RX de la console ?

                              1 Reply Last reply
                              • O Obi_Yoann

                                @Nicolas-Bernaerts ah désolé je n'ai pas été clair dans mon expression, j'ai fais trop de test dans un laps de temps trop court, du coup je n'ai pas bien décrit ce que j'ai fait!
                                Mes captures d'écran ont été faites après avoir placé le HAT de charles qui est branché sur le TIC.

                                Actuellement j'ai 2 ESP32S2 identiques, l'un flashé avec le tasmota teleinfo de charles, l'autre avec ta version.

                                Le fonctionnement avec le firmware de Charles est correct dans le sens où j'ai bien les données du TIC Standard qui remontent dans l'interface, sans soucis particulier. Ce que je n'arrive pas à faire avec ce firmware c'est la remontée d'info vers un emoncms.

                                Avec ta version, ce que je vois sur l'ESP32S2 c'est que je n'arrive pas à enregistrer le changement de baud rate, il reste à 1200bds. Je change le bouton, j'enregistre, je reviens dedans il est toujours à 9600, je reboot l'ESP32S2 et il revient à 1200. Idem avec la console. Je penche plutôt sur le fait qu'il ne bascule pas en 9600 réellement, je ne sais pas pourquoi, et du coup c'est "incorrect" par rapport au mode Standard. C'est pareil avec tous les autres paramètres sur la page configuration/configure teleinfo, tous les paramètres de cette page reviennent à leurs paramètres par défaut au reboot.
                                Si je fais save et que je reviens sur la page, la valeur présente quand j'ai fais save est bien reprise, mais au reboot ça revient par défaut, pour moi c'est un bug lié à l'ESP32S2 qui cause ça mais pour débugger sans serial... 😬

                                Utilisant le HAT, je n'ai pas vraiment la main sur quel GPIO est utilisable sur l'ESP32S2, mais vu que ça fonctionne correctement au niveau lecture sur l'autre firmware avec la même configuration, je pense que matériellement on est bon.

                                J'ai compilé la nouvelle version, j'ai le même comportement quant à l'enregistrement du mode 1200/9600, ça ne survit par à un reboot et revient à chaque fois en 1200.
                                Je boot, il est en 1200, je change la conf et passe en 9600, mais j'ai toujours ça en console :
                                e5f7ef22-c904-4f74-9f68-1359fd0511bf-image.png
                                Ca incrémente sur la fenêtre principale mais sans jamais qu'un message soit bien interprété :
                                d865d0ad-23d6-43ca-8701-f9ee4978af1f-image.png
                                Je n'ai bien ici à nouveau que le gpo11 définit comme tinfo rx.
                                Et je me suis pas gouré quand j'ai flashé la version fraichement compilée (on sait jamais! je commence à avoir un paquet de fichiers... ^^)
                                88bad94e-8150-4e1a-b00c-ebe730ce0aa0-image.png
                                Merci encore de ton aide, je pense qu'on n'est pas loin de la solution mais c'est pénible de pas avoir de log à fournir! 😣

                                Nicolas BernaertsN Offline
                                Nicolas BernaertsN Offline
                                Nicolas Bernaerts
                                wrote on last edited by
                                #322

                                @Obi_Yoann Tu as raison ... sur un ESP32S2 la sauvegarde des parametres de configuration ne fonctionne pas. Dès que l'on sauvegarde la config GPIO, le boitier devient instable et ne se reconnecte plus.

                                Nicolas BernaertsN 1 Reply Last reply
                                • Nicolas BernaertsN Nicolas Bernaerts

                                  @Obi_Yoann Tu as raison ... sur un ESP32S2 la sauvegarde des parametres de configuration ne fonctionne pas. Dès que l'on sauvegarde la config GPIO, le boitier devient instable et ne se reconnecte plus.

                                  Nicolas BernaertsN Offline
                                  Nicolas BernaertsN Offline
                                  Nicolas Bernaerts
                                  wrote on last edited by
                                  #323

                                  @Nicolas-Bernaerts Je viens de tester le firmware tasmota32s2.firmware.bin en mode erase. Il est totalement instable, on ne peut enregistrer aucun paramètre. Dès que l'on enregistre un paramètre, le module devient inaccessibl. Il faut sans doute attendre que le firmware 32S2 se stabilise.

                                  Barbu DorB O 2 Replies Last reply
                                  • Nicolas BernaertsN Nicolas Bernaerts

                                    @Nicolas-Bernaerts Je viens de tester le firmware tasmota32s2.firmware.bin en mode erase. Il est totalement instable, on ne peut enregistrer aucun paramètre. Dès que l'on enregistre un paramètre, le module devient inaccessibl. Il faut sans doute attendre que le firmware 32S2 se stabilise.

                                    Barbu DorB Offline
                                    Barbu DorB Offline
                                    Barbu Dor
                                    wrote on last edited by
                                    #324

                                    @Nicolas-Bernaerts
                                    Je comprend pas ta remarque.
                                    Tasmota sur S2 est stable depuis 1 an.
                                    Je viens de charger tasmota32s2 sur mon DevKit et je peux sauvegarder les GPIO sans soucis.

                                    Nicolas BernaertsN 1 Reply Last reply
                                    • Nicolas BernaertsN Nicolas Bernaerts

                                      @Nicolas-Bernaerts Je viens de tester le firmware tasmota32s2.firmware.bin en mode erase. Il est totalement instable, on ne peut enregistrer aucun paramètre. Dès que l'on enregistre un paramètre, le module devient inaccessibl. Il faut sans doute attendre que le firmware 32S2 se stabilise.

                                      O Offline
                                      O Offline
                                      Obi_Yoann
                                      wrote on last edited by Obi_Yoann
                                      #325

                                      @Nicolas-Bernaerts bin je comprends pas non plus, le fonctionnement avec le firmware tasmota "stock" sur l'esp32s2 est parfaitement fonctionnel en plus, y compris l'enregistrement des GPIO, le changement de historique à standard, tout fonctionne plutôt bien... Ce que j'observe est différent, je peux enregistrer les GPIO sans soucis, mais la conf teleinfo ne s'enregistre pas. Je peux redémarrer autant que je veux l'esp32s2 reste accessible, mais les paramètres restent "stock". Je flash le firmware "factory" via serial de mon côté.

                                      @Charles en fait j'ai tenté en effet de faire marcher le tasmota avec emoncms mais ce que j'en ai sorti c'est que l'esp32s2 me semblait trop faible pour envoyer les trames avec toutes les données du mode standard. Je me trompe probablement, mais dès que j'activais le script berry, l'interface web devenait de plus en plus lente jusqu'à se bloquer jusqu'au redémarrage. Aucune donnée en plus n'arrivait dans l'emoncms, alors que si j'arrivais à attraper une URL depuis la console et que je l'entrait manuellement dans mon navigateur, une salve de données arrivait bien (indiquant que les configuration était a priori correcte).
                                      J'avais mis ça sur le compte de la quantité de données envoyée par le script, et qu'il était judicieux d'essayer la version de @Nicolas-Bernaerts pour filtrer les données avant des les envoyer.
                                      Pour la log, non pas possible par l'USB d'avoir un accès série, c'est déconnecté sur le S2. Idem pour flasher il faut obligatoirement garder un bouton appuyé au moment de reset, pour mettre en mode download, ce n'est pas automatique comme sur le wemos d1 mini esp32 (qui a bien un accès série par l'usb lui, mais c'est pas un s2 🙂 )

                                      Je vais tenter à nouveau avec le firmware version @Charles de jouer avec les script berry, mais je pense qu'il manque pas grand chose dans la version @Nicolas-Bernaerts pour que ça marche aussi sur le S2... ^^

                                      EDIT : @Charles en fait en mode "standard" le script proposé n'est pas compatible, j'avais essayé de le modifier mais du coup la modif faite n'est clairement pas bonne. Par ex, si j'ai bien compris, HCHP et HCHC ne sont pas transmises. ISOUSC doit être calculé sur la base de PREF/200. IINST est remplacé par SINSTS... Bref je suis largué... 😣
                                      J'ai en désespoir tenté de commenter le bloc avec les calculs juste pour faire un envoi des données brut, j'ai l'URL qui fonctionne j'ai l'impression quand je l'entre à la main dans le navigateur mais pas en auto depuis le tasmota.

                                      import json
                                      
                                      var api_url = "http://emoncms.mondomain.local/input/post"
                                      var api_key = "APIQUEJ'AIENTRE"
                                      var node_name = "linky"
                                      
                                      #def setcolor(iinst, isousc)
                                      #  var red = tasmota.scale_uint(iinst, 0, isousc, 0, 255)
                                      #  var green = 255 - red
                                      #  var channels = [red, green, 0]
                                      #  light.set({"channels":channels, "bri":64, "power":true})
                                      #end
                                      
                                      def rule_tic(value, trigger)
                                        # Got Heures Creuses contract so I will calculate total consumption
                                        # adding Heures Creuses (HCHC) + Heures Pleines (HCHP) and create new value for emoncms 
                                        # Change label depending on name for your contract type
                                        #var htot = value['HCHP'] + value['HCHC']
                                        # Create new value HTOT converted to kWH
                                        #value['HTOT'] = htot / 1000.0
                                        # Calculate current percent Load 
                                        #var iinst = value['SINSTS']
                                        #var isousc= value['PREF']
                                        #if iinst != nil && isousc != nil 
                                        #  # Drive RGB LED
                                        #  setcolor(iinst, isousc)
                                        #  if isousc > 0
                                        #    load = 100 * iinst / isousc
                                        #    value['LOAD'] = load
                                        #  end
                                        #end
                                        # Convert JSON object to string 
                                        var obj_json = json.dump(value)
                                        # Create URL to call
                                        var param="?fulljson="+obj_json + "&node="+node_name + "&apikey="+api_key 
                                        # Post Data to EMONCMS
                                        var cl = webclient()
                                        cl.begin( api_url + param)
                                        var r =  cl.GET()
                                        print(r, load, param) 
                                      end
                                      
                                      # Callback on each MQTT interception
                                      tasmota.add_rule("TIC",rule_tic)
                                      

                                      EDIT2 : voilà j'ai refait le test, en console berry après avoir entré le script ci-dessus, j'ai ces lignes très longues qui apparaissent :
                                      838f1e01-771e-4638-b6e6-d7d21984b92a-image.png
                                      J'ai copié une ligne dans un notepad :
                                      -1 <function: 0x3fd80e94> ?fulljson={"EASF08":0
                                      J'ai remplacé le début jusqu'au ? par l'url de mon emoncms, ce qui donne :
                                      http://emoncms.mondomaine.local/input/post?fulljson={"EASF08":0,"CCASN"[...]
                                      Si je colle ça dans mon navigateur j'obtiens :
                                      1568efd4-ac38-4212-b7ab-b3aec41804c0-image.png
                                      Et les données sont fraiches dans emoncms :
                                      aecbe44b-1a7c-4552-b0ca-1015507d25de-image.png
                                      Mais en auto rien ne se passe...

                                      EDIT3 :
                                      J'ai fais une nouvelle version du script mais pareil en auto rien ne part. La gestion de la valeur du LOAD est correcte a priori, de même que la gestion de la led (a priori toujours). J'ai décommenté ce que j'avais commenté, hors gestion heures creuses...

                                      import json
                                      
                                      var api_url = "http://emoncms.mondomaine.local/input/post"
                                      var api_key = "API"
                                      var node_name = "linky"
                                      
                                      def setcolor(iinst, isousc)
                                        var red = tasmota.scale_uint(iinst, 0, isousc, 0, 255)
                                        var green = 255 - red
                                        var channels = [red, green, 0]
                                        light.set({"channels":channels, "bri":64, "power":true})
                                      end
                                      
                                      def rule_tic(value, trigger)
                                        # Got Heures Creuses contract so I will calculate total consumption
                                        # adding Heures Creuses (HCHC) + Heures Pleines (HCHP) and create new value for emoncms 
                                        # Change label depending on name for your contract type
                                        #var htot = value['HCHP'] + value['HCHC']
                                        # Create new value HTOT converted to kWH
                                        #value['HTOT'] = htot / 1000.0
                                        # Calculate current percent Load 
                                        var iinst = value['SINSTS']
                                        var isousc= value['PREF'] * 1000
                                        if iinst != nil && isousc != nil 
                                          # Drive RGB LED
                                          setcolor(iinst, isousc)
                                          if isousc > 0
                                            load = 100 * iinst / isousc
                                            value['LOAD'] = load
                                          end
                                        end
                                        # Convert JSON object to string 
                                        var obj_json = json.dump(value)
                                        # Create URL to call
                                        var param="?fulljson="+obj_json + "&node="+node_name + "&apikey="+api_key 
                                        # Post Data to EMONCMS
                                        var cl = webclient()
                                        cl.begin( api_url + param)
                                        var r =  cl.GET()
                                        print(r, load, param) 
                                      end
                                      
                                      # Callback on each MQTT interception
                                      tasmota.add_rule("TIC",rule_tic)
                                      
                                      

                                      Dites moi si c'est correct ou pas, j'ai vu que PREF était en kva, donc pour comparer à SINSTS qui est en va il faut ajouter un x1000 sur PREF. Le reste doit fonctionner normalement...

                                      O Nicolas BernaertsN 2 Replies Last reply
                                      • O Obi_Yoann

                                        @Nicolas-Bernaerts bin je comprends pas non plus, le fonctionnement avec le firmware tasmota "stock" sur l'esp32s2 est parfaitement fonctionnel en plus, y compris l'enregistrement des GPIO, le changement de historique à standard, tout fonctionne plutôt bien... Ce que j'observe est différent, je peux enregistrer les GPIO sans soucis, mais la conf teleinfo ne s'enregistre pas. Je peux redémarrer autant que je veux l'esp32s2 reste accessible, mais les paramètres restent "stock". Je flash le firmware "factory" via serial de mon côté.

                                        @Charles en fait j'ai tenté en effet de faire marcher le tasmota avec emoncms mais ce que j'en ai sorti c'est que l'esp32s2 me semblait trop faible pour envoyer les trames avec toutes les données du mode standard. Je me trompe probablement, mais dès que j'activais le script berry, l'interface web devenait de plus en plus lente jusqu'à se bloquer jusqu'au redémarrage. Aucune donnée en plus n'arrivait dans l'emoncms, alors que si j'arrivais à attraper une URL depuis la console et que je l'entrait manuellement dans mon navigateur, une salve de données arrivait bien (indiquant que les configuration était a priori correcte).
                                        J'avais mis ça sur le compte de la quantité de données envoyée par le script, et qu'il était judicieux d'essayer la version de @Nicolas-Bernaerts pour filtrer les données avant des les envoyer.
                                        Pour la log, non pas possible par l'USB d'avoir un accès série, c'est déconnecté sur le S2. Idem pour flasher il faut obligatoirement garder un bouton appuyé au moment de reset, pour mettre en mode download, ce n'est pas automatique comme sur le wemos d1 mini esp32 (qui a bien un accès série par l'usb lui, mais c'est pas un s2 🙂 )

                                        Je vais tenter à nouveau avec le firmware version @Charles de jouer avec les script berry, mais je pense qu'il manque pas grand chose dans la version @Nicolas-Bernaerts pour que ça marche aussi sur le S2... ^^

                                        EDIT : @Charles en fait en mode "standard" le script proposé n'est pas compatible, j'avais essayé de le modifier mais du coup la modif faite n'est clairement pas bonne. Par ex, si j'ai bien compris, HCHP et HCHC ne sont pas transmises. ISOUSC doit être calculé sur la base de PREF/200. IINST est remplacé par SINSTS... Bref je suis largué... 😣
                                        J'ai en désespoir tenté de commenter le bloc avec les calculs juste pour faire un envoi des données brut, j'ai l'URL qui fonctionne j'ai l'impression quand je l'entre à la main dans le navigateur mais pas en auto depuis le tasmota.

                                        import json
                                        
                                        var api_url = "http://emoncms.mondomain.local/input/post"
                                        var api_key = "APIQUEJ'AIENTRE"
                                        var node_name = "linky"
                                        
                                        #def setcolor(iinst, isousc)
                                        #  var red = tasmota.scale_uint(iinst, 0, isousc, 0, 255)
                                        #  var green = 255 - red
                                        #  var channels = [red, green, 0]
                                        #  light.set({"channels":channels, "bri":64, "power":true})
                                        #end
                                        
                                        def rule_tic(value, trigger)
                                          # Got Heures Creuses contract so I will calculate total consumption
                                          # adding Heures Creuses (HCHC) + Heures Pleines (HCHP) and create new value for emoncms 
                                          # Change label depending on name for your contract type
                                          #var htot = value['HCHP'] + value['HCHC']
                                          # Create new value HTOT converted to kWH
                                          #value['HTOT'] = htot / 1000.0
                                          # Calculate current percent Load 
                                          #var iinst = value['SINSTS']
                                          #var isousc= value['PREF']
                                          #if iinst != nil && isousc != nil 
                                          #  # Drive RGB LED
                                          #  setcolor(iinst, isousc)
                                          #  if isousc > 0
                                          #    load = 100 * iinst / isousc
                                          #    value['LOAD'] = load
                                          #  end
                                          #end
                                          # Convert JSON object to string 
                                          var obj_json = json.dump(value)
                                          # Create URL to call
                                          var param="?fulljson="+obj_json + "&node="+node_name + "&apikey="+api_key 
                                          # Post Data to EMONCMS
                                          var cl = webclient()
                                          cl.begin( api_url + param)
                                          var r =  cl.GET()
                                          print(r, load, param) 
                                        end
                                        
                                        # Callback on each MQTT interception
                                        tasmota.add_rule("TIC",rule_tic)
                                        

                                        EDIT2 : voilà j'ai refait le test, en console berry après avoir entré le script ci-dessus, j'ai ces lignes très longues qui apparaissent :
                                        838f1e01-771e-4638-b6e6-d7d21984b92a-image.png
                                        J'ai copié une ligne dans un notepad :
                                        -1 <function: 0x3fd80e94> ?fulljson={"EASF08":0
                                        J'ai remplacé le début jusqu'au ? par l'url de mon emoncms, ce qui donne :
                                        http://emoncms.mondomaine.local/input/post?fulljson={"EASF08":0,"CCASN"[...]
                                        Si je colle ça dans mon navigateur j'obtiens :
                                        1568efd4-ac38-4212-b7ab-b3aec41804c0-image.png
                                        Et les données sont fraiches dans emoncms :
                                        aecbe44b-1a7c-4552-b0ca-1015507d25de-image.png
                                        Mais en auto rien ne se passe...

                                        EDIT3 :
                                        J'ai fais une nouvelle version du script mais pareil en auto rien ne part. La gestion de la valeur du LOAD est correcte a priori, de même que la gestion de la led (a priori toujours). J'ai décommenté ce que j'avais commenté, hors gestion heures creuses...

                                        import json
                                        
                                        var api_url = "http://emoncms.mondomaine.local/input/post"
                                        var api_key = "API"
                                        var node_name = "linky"
                                        
                                        def setcolor(iinst, isousc)
                                          var red = tasmota.scale_uint(iinst, 0, isousc, 0, 255)
                                          var green = 255 - red
                                          var channels = [red, green, 0]
                                          light.set({"channels":channels, "bri":64, "power":true})
                                        end
                                        
                                        def rule_tic(value, trigger)
                                          # Got Heures Creuses contract so I will calculate total consumption
                                          # adding Heures Creuses (HCHC) + Heures Pleines (HCHP) and create new value for emoncms 
                                          # Change label depending on name for your contract type
                                          #var htot = value['HCHP'] + value['HCHC']
                                          # Create new value HTOT converted to kWH
                                          #value['HTOT'] = htot / 1000.0
                                          # Calculate current percent Load 
                                          var iinst = value['SINSTS']
                                          var isousc= value['PREF'] * 1000
                                          if iinst != nil && isousc != nil 
                                            # Drive RGB LED
                                            setcolor(iinst, isousc)
                                            if isousc > 0
                                              load = 100 * iinst / isousc
                                              value['LOAD'] = load
                                            end
                                          end
                                          # Convert JSON object to string 
                                          var obj_json = json.dump(value)
                                          # Create URL to call
                                          var param="?fulljson="+obj_json + "&node="+node_name + "&apikey="+api_key 
                                          # Post Data to EMONCMS
                                          var cl = webclient()
                                          cl.begin( api_url + param)
                                          var r =  cl.GET()
                                          print(r, load, param) 
                                        end
                                        
                                        # Callback on each MQTT interception
                                        tasmota.add_rule("TIC",rule_tic)
                                        
                                        

                                        Dites moi si c'est correct ou pas, j'ai vu que PREF était en kva, donc pour comparer à SINSTS qui est en va il faut ajouter un x1000 sur PREF. Le reste doit fonctionner normalement...

                                        O Offline
                                        O Offline
                                        Obi_Yoann
                                        wrote on last edited by
                                        #326

                                        Bon en fait en log j'ai le retour du GET(), qui est un -1... Donc en fait ça confirme bien que la commande ne passe pas, je devrais avoir un 200 je pense. Est-ce qu'il me manque un truc? Vu que le firmware est compilé à la main, c'est clairement possible!
                                        b0f09a4e-01c9-49b1-90ac-4939bdfa7e6a-image.png
                                        Le "LOAD" est affiché correctement lui maintenant.

                                        CharlesC 1 Reply Last reply
                                        • O Obi_Yoann

                                          Bon en fait en log j'ai le retour du GET(), qui est un -1... Donc en fait ça confirme bien que la commande ne passe pas, je devrais avoir un 200 je pense. Est-ce qu'il me manque un truc? Vu que le firmware est compilé à la main, c'est clairement possible!
                                          b0f09a4e-01c9-49b1-90ac-4939bdfa7e6a-image.png
                                          Le "LOAD" est affiché correctement lui maintenant.

                                          CharlesC Offline
                                          CharlesC Offline
                                          Charles
                                          wrote on last edited by
                                          #327

                                          @Obi_Yoann

                                          Oui il faut adapter le script avec tes étiquettes ou supprimer le traitement pour avoir toutes les données comme tu as fait, c'est bien.

                                          Il faudrait un peu plus de debug tu peux changer les lignes

                                            cl.begin( api_url + param)
                                            var r =  cl.GET()
                                            print(r, load, param) 
                                          

                                          par

                                            var full = api_url + param
                                            print(full) 
                                            cl.begin( full)
                                            var r =  cl.GET()
                                            print(r, load, param) 
                                          

                                          tu ne fais pas de SSL ça devrait passer sur le S2 en terme de ressources.

                                          Si tu copies colle le lien complet affiché dans la console dans le browser et que ça fonctionne, alors oui il y a un hic.

                                          S2 qui par ailleurs sait faire en natif de l'USB serial, peut être il faut compiler avec une option pour ça mais il me semblait que c'était par défaut car j'ai fait ces tests sans aucun soucis, j'avais les traces sur l'USB (mode serial) @Barbu-Dor ?
                                          Il faut juste attendre 2/3 secondes au boot pour que l'USB natif monte (et que ton S2 soit connecté à un ordi pour que ça monte)

                                          O 1 Reply Last reply

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          1

                                          Online

                                          5.8k

                                          Users

                                          565

                                          Topics

                                          5.3k

                                          Posts

                                          Top Topics

                                          Popular Tags

                                          teleinfo
                                          25 topics
                                          arduino
                                          19 topics
                                          remora
                                          16 topics
                                          esp8266
                                          10 topics
                                          arduipi
                                          10 topics
                                          raspberry
                                          8 topics
                                          wifinfo
                                          7 topics
                                          broadcast
                                          7 topics
                                          Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Blog
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups