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. Denky D4
  5. Denky D4 + Tempo

Denky D4 + Tempo

Scheduled Pinned Locked Moved Denky D4
23 Posts 5 Posters 5.9k Views 3 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.
  • T Offline
    T Offline
    Tostaky
    wrote on last edited by Tostaky
    #2

    xnrg_15_teleinfo.ino >

                if (status_register >> 24) {
                    char txt[32]; 
                    uint8_t sr = status_register >> 24;
                    uint8_t val = sr & 0x03;
                    if (val) {
                        WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Jour"), val==1?"Bleu":val==2?"Blanc":"Rouge");
                    }
                    val = (sr >> 2) & 0x03;
                    if (val) {
                        WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Demain"), val==1?"Bleu":val==2?"Blanc":"Rouge");
                    }
                    val = (sr >> 4) & 0x03;
                    if (val) {
                        sprintf_P(txt, PSTR("Pointe mobile %d"), val);
                        WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Préavis"), txt);
                    }
                    val = (sr >> 6) & 0x03;
                    if (val) {
                        sprintf_P(txt, PSTR("En cours %d"), val);
                        WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Pointe mobile"), txt);
                    }
                }
    

    On utilise pourtant la même info. L'interface web ne se met pas à jour en même temps néanmoins. Le registre a été détecté mis à jour à 19h42 selon EmonCMS (via un scrip Berry). L'interface ne l'a toujours pas vu...

    localhost61L CharlesC 2 Replies Last reply
    • T Tostaky

      xnrg_15_teleinfo.ino >

                  if (status_register >> 24) {
                      char txt[32]; 
                      uint8_t sr = status_register >> 24;
                      uint8_t val = sr & 0x03;
                      if (val) {
                          WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Jour"), val==1?"Bleu":val==2?"Blanc":"Rouge");
                      }
                      val = (sr >> 2) & 0x03;
                      if (val) {
                          WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Demain"), val==1?"Bleu":val==2?"Blanc":"Rouge");
                      }
                      val = (sr >> 4) & 0x03;
                      if (val) {
                          sprintf_P(txt, PSTR("Pointe mobile %d"), val);
                          WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Préavis"), txt);
                      }
                      val = (sr >> 6) & 0x03;
                      if (val) {
                          sprintf_P(txt, PSTR("En cours %d"), val);
                          WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Pointe mobile"), txt);
                      }
                  }
      

      On utilise pourtant la même info. L'interface web ne se met pas à jour en même temps néanmoins. Le registre a été détecté mis à jour à 19h42 selon EmonCMS (via un scrip Berry). L'interface ne l'a toujours pas vu...

      localhost61L Offline
      localhost61L Offline
      localhost61
      wrote on last edited by
      #3

      @Tostaky Pour ma part j'ai aussi un abonnement Tempo mais j'utilise la version Teleinfo de Nicolas et à priori il n'affiche que le tarif en cours.
      Je n'ai pas trouvé de bug dans le code source que tu affiches, mais je ne suis pas infaillible 😕
      Par contre j'ai implémenté l'API RTE dans un script OpenHab et l'info est disponible tous les jours à 10h20 soit 19h40 à l'avance.
      Ainsi, tous les matin à 10h20, Openhab interroge les serveurs de RTE selon le protocole oauth2 en fournissant mon identifiant unique, extrait l'info et l'envoie à un ESP8266 qui allume 2 LEDs RVB. À 22h l'intensité des LEDs est réduite (passage en Heures Creuses). Elle est minimum quand les 2 LEDs sont bleues.
      Et si je suis absent Openhab me notifie par SMS (API Freemobile) en cas de changement de couleur.

      1 Reply Last reply
      • T Tostaky

        xnrg_15_teleinfo.ino >

                    if (status_register >> 24) {
                        char txt[32]; 
                        uint8_t sr = status_register >> 24;
                        uint8_t val = sr & 0x03;
                        if (val) {
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Jour"), val==1?"Bleu":val==2?"Blanc":"Rouge");
                        }
                        val = (sr >> 2) & 0x03;
                        if (val) {
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Demain"), val==1?"Bleu":val==2?"Blanc":"Rouge");
                        }
                        val = (sr >> 4) & 0x03;
                        if (val) {
                            sprintf_P(txt, PSTR("Pointe mobile %d"), val);
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Préavis"), txt);
                        }
                        val = (sr >> 6) & 0x03;
                        if (val) {
                            sprintf_P(txt, PSTR("En cours %d"), val);
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Pointe mobile"), txt);
                        }
                    }
        

        On utilise pourtant la même info. L'interface web ne se met pas à jour en même temps néanmoins. Le registre a été détecté mis à jour à 19h42 selon EmonCMS (via un scrip Berry). L'interface ne l'a toujours pas vu...

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

        @Tostaky

        j'écrirais plutôt comme ça (j'ai pas vérifié) mais sans savoir comment est calculé ton status_register depuis l'étiquette, difficile de savoir si il y a bug

                   uint8_t sr = status_register >> 24;
                    if ( sr ) {
                        char txt[32]; 
                        char coul[4][6] = { "----", "Bleu", "Blanc", "Rouge" };
                    
                        uint8_t val = sr & 0x03 ;
                        if (val) {
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Jour"), coul[val]);
                        }
                        sr >>= 2;
                        val = sr & 0x03;
                        if (val) {
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Demain"), coul[val]);
                        }
                        sr >>= 2;
                        val = sr & 0x03;
                        if (val) {
                            sprintf_P(txt, PSTR("Pointe mobile %d"), val);
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Préavis"), txt);
                        }
                        sr >>= 2;
                        val = sr & 0x03;
                        if (val) {
                            sprintf_P(txt, PSTR("En cours %d"), val);
                            WSContentSend_P(HTTP_ENERGY_LABEL_VALUE, PSTR("Pointe mobile"), txt);
                        }
                    }
                    
        

        En revanche les décalages de bits semblent bons et conformes à la spec

        1 Reply Last reply
        • T Offline
          T Offline
          Tostaky
          wrote on last edited by
          #5

          Le code partagé est issu du repo Tasmota de @Charles 😊
          J'ai juste dit que j'étais d'accord avec lui sur les bitmasking

          Je ne m'explique juste pas pourquoi il y a un décallage entre la mise à jour du registre par Enedis, et la mise à jour de l'interface (par défaut) du denky 🙂
          Je ne suis pas allé jusque là dans la relecture du code

          CharlesC 2 Replies Last reply
          • T Tostaky

            Le code partagé est issu du repo Tasmota de @Charles 😊
            J'ai juste dit que j'étais d'accord avec lui sur les bitmasking

            Je ne m'explique juste pas pourquoi il y a un décallage entre la mise à jour du registre par Enedis, et la mise à jour de l'interface (par défaut) du denky 🙂
            Je ne suis pas allé jusque là dans la relecture du code

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

            @Tostaky je me souviens même pas avoir codé ça c'est le plus drole 🙂

            1 Reply Last reply
            • T Tostaky

              Le code partagé est issu du repo Tasmota de @Charles 😊
              J'ai juste dit que j'étais d'accord avec lui sur les bitmasking

              Je ne m'explique juste pas pourquoi il y a un décallage entre la mise à jour du registre par Enedis, et la mise à jour de l'interface (par défaut) du denky 🙂
              Je ne suis pas allé jusque là dans la relecture du code

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

              @Tostaky tu peux augmenter le niveau de log et afficher la console il doit afficher le status register en hexa normalement ça permettrait déjà de vérifier

              1 Reply Last reply
              • T Offline
                T Offline
                Tostaky
                wrote on last edited by Tostaky
                #8

                Après 10 minutes de log su service web sur le niveau le plus verbeux, pas de traces de l'étiquette en question STEG.
                Pourtant, le script berry qui envoie 0,1,2, ou 3 à EmonCMS détecte bien le changement à 20h

                CharlesC 1 Reply Last reply
                • T Tostaky

                  Après 10 minutes de log su service web sur le niveau le plus verbeux, pas de traces de l'étiquette en question STEG.
                  Pourtant, le script berry qui envoie 0,1,2, ou 3 à EmonCMS détecte bien le changement à 20h

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

                  @Tostaky

                  C'est pas normal, tu dois avoir une trace de STEG comme c'est codé ici et du dois aussi l'avoir dans la trame MQTT si c'est configuré non?

                  T 2 Replies Last reply
                  • T Tostaky

                    Bonjour,
                    Comment est calculé la couleur des étiquettes tempo ?

                    Par exemple, aujourd'hui, c'est affiché, rouge J / Rouge J+1.
                    Le décodage de l'étiquette STEG donne Rouge J / Blanc J+1
                    Enedis donne comme l'étiquette STEG.

                    Qu'en est-il ?

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

                    @Tostaky @localhost61 @Charles Hello,

                    Pour information, je suis en train d'intégrer la lecture des données Tempo de RTE dans mon fork Tasmota Teleinfo.

                    Un nouveau topic MQTT sera disponible afin de récupérer les données :

                    .../sensor/TEMPO
                        {"Time":"2022-10-10T23:51:09", "Tempo":{"J-1":"bleu","J":"blanc","J+1":"rouge"}}
                    

                    Pour récupérer ces données, il faudra simplement avoir créé un compte sur le site RTE et généré sa clé privée (même compte que pour Ecowatt).

                    Je pense pouvoir publier cette nouvelle version d'ici 1 ou 2 jours.

                    Capture d’écran du 2023-12-05 21-34-06.png

                    CharlesC Nicolas BernaertsN 2 Replies Last reply
                    • Nicolas BernaertsN Nicolas Bernaerts

                      @Tostaky @localhost61 @Charles Hello,

                      Pour information, je suis en train d'intégrer la lecture des données Tempo de RTE dans mon fork Tasmota Teleinfo.

                      Un nouveau topic MQTT sera disponible afin de récupérer les données :

                      .../sensor/TEMPO
                          {"Time":"2022-10-10T23:51:09", "Tempo":{"J-1":"bleu","J":"blanc","J+1":"rouge"}}
                      

                      Pour récupérer ces données, il faudra simplement avoir créé un compte sur le site RTE et généré sa clé privée (même compte que pour Ecowatt).

                      Je pense pouvoir publier cette nouvelle version d'ici 1 ou 2 jours.

                      Capture d’écran du 2023-12-05 21-34-06.png

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

                      @Nicolas-Bernaerts ah excellent et joli en plus 🙂

                      Nicolas BernaertsN 1 Reply Last reply
                      • CharlesC Charles

                        @Nicolas-Bernaerts ah excellent et joli en plus 🙂

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

                        @Charles Merci 😚

                        1 Reply Last reply
                        • CharlesC Charles

                          @Tostaky

                          C'est pas normal, tu dois avoir une trace de STEG comme c'est codé ici et du dois aussi l'avoir dans la trame MQTT si c'est configuré non?

                          T Offline
                          T Offline
                          Tostaky
                          wrote on last edited by
                          #13
                          This post is deleted!
                          1 Reply Last reply
                          • CharlesC Charles

                            @Tostaky

                            C'est pas normal, tu dois avoir une trace de STEG comme c'est codé ici et du dois aussi l'avoir dans la trame MQTT si c'est configuré non?

                            T Offline
                            T Offline
                            Tostaky
                            wrote on last edited by Tostaky
                            #14

                            @Charles said in Denky D4 + Tempo:

                            @Tostaky

                            C'est pas normal, tu dois avoir une trace de STEG comme c'est codé ici et du dois aussi l'avoir dans la trame MQTT si c'est configuré non?

                            Pas de MQTT pour moi. Néanmoins, j'ai des gros doigts. STGE != STEG.

                            21:03:25.957 RSL: SENSOR = {"Time":"2023-12-06T21:03:25","ENERGY":{"TotalStartTime":"2023-12-06T09:54:49","Total":14623.401,"Yesterday":14.950,"Today":4.984,"Period":[0,0,0],"Power":[0,227,336],"ApparentPower":[0,227,336],"ReactivePower":[0,0,0],"Factor":[0.00,1.00,1.00],"Voltage":[238,224,241],"Current":[0.000,1.000,1.000],"Load":0},"TIC":{"ADSC":"022076***","VTIC":2,"NGTF":"TEMPO","LTARF":"HP  ROUGE","EAST":14623401,"EASF01":6659364,"EASF02":7829254,"EASF03":76043,"EASF04":30388,"EASF05":16803,"EASF06":11549,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":9237921,"EASD02":2600419,"EASD03":1209456,"EASD04":1575605,"EAIT":3127874,"ERQ1":1964972,"ERQ2":362712,"ERQ3":54345,"ERQ4":927425,"IRMS1":0,"IRMS2":1,"IRMS3":1,"URMS1":238,"URMS2":224,"URMS3":241,"PREF":9,"PCOUP":9,"SINSTS":595,"SINSTS1":31,"SINSTS2":227,"SINSTS3":336,"SMAXSN":3380,"SMAXSN1":1090,"SMAXSN2":1030,"SMAXSN3":1300,"SMAXSN-1":6480,"SMAXSN1-1":3090,"SMAXSN2-1":2670,"SMAXSN3-1":1390,"SINSTI":0,"SMAXIN":2710,"SMAXIN-1":260,"CCASN":390,"CCASN-1":426,"CCAIN":0,"CCAIN-1":0,"UMOY1":236,"UMOY2":224,"UMOY3":240,"STGE":"9B3AD501","PRM":****,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0}}
                            

                            STGE = xBxxxxx => B = 1011 => aujourd'hui rouge (3), demain blanc (2).
                            L'interface affiche toujours rouge / rouge

                            @Nicolas-Bernaerts said in Denky D4 + Tempo:

                            @Tostaky @localhost61 @Charles Hello,

                            Pour information, je suis en train d'intégrer la lecture des données Tempo de RTE dans mon fork Tasmota Teleinfo.

                            Un nouveau topic MQTT sera disponible afin de récupérer les données :

                            .../sensor/TEMPO
                                {"Time":"2022-10-10T23:51:09", "Tempo":{"J-1":"bleu","J":"blanc","J+1":"rouge"}}
                            

                            Pour récupérer ces données, il faudra simplement avoir créé un compte sur le site RTE et généré sa clé privée (même compte que pour Ecowatt).

                            Je pense pouvoir publier cette nouvelle version d'ici 1 ou 2 jours.

                            Capture d’écran du 2023-12-05 21-34-06.png

                            Génial.
                            Je viens de terminer mon alerting mail en m'appuyant sur l'API publique d'EDF. Pas besoin de compte et de clef d'API.
                            Le code est là : https://github.com/sosandroid/Monitoring_Energie/tree/main/src/tempo

                            CharlesC 1 Reply Last reply
                            • Nicolas BernaertsN Nicolas Bernaerts

                              @Tostaky @localhost61 @Charles Hello,

                              Pour information, je suis en train d'intégrer la lecture des données Tempo de RTE dans mon fork Tasmota Teleinfo.

                              Un nouveau topic MQTT sera disponible afin de récupérer les données :

                              .../sensor/TEMPO
                                  {"Time":"2022-10-10T23:51:09", "Tempo":{"J-1":"bleu","J":"blanc","J+1":"rouge"}}
                              

                              Pour récupérer ces données, il faudra simplement avoir créé un compte sur le site RTE et généré sa clé privée (même compte que pour Ecowatt).

                              Je pense pouvoir publier cette nouvelle version d'ici 1 ou 2 jours.

                              Capture d’écran du 2023-12-05 21-34-06.png

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

                              Je viens de publier une version Teleinfo v13.2 qui gère :

                              • Tempo
                              • Ecowatt v4 et v5

                              Attention, le fichier de configuration sur le littlefs est maintenant rte.cfg (au lieu de ecowatt.cfg).

                              Si vous aviez déclaré Ecowatt précédemment, il faudra :

                              • redéclarer votre clé privée via rte_key maclebase64
                              • activer ecowatt de nouveau via eco_enable 1
                              • activer tempo via tempo_enable 1
                              • redémarrer l'ESP

                              L'aide est disponible en mode console via rte_help.

                              WendigogoW 1 Reply Last reply
                              • T Tostaky

                                @Charles said in Denky D4 + Tempo:

                                @Tostaky

                                C'est pas normal, tu dois avoir une trace de STEG comme c'est codé ici et du dois aussi l'avoir dans la trame MQTT si c'est configuré non?

                                Pas de MQTT pour moi. Néanmoins, j'ai des gros doigts. STGE != STEG.

                                21:03:25.957 RSL: SENSOR = {"Time":"2023-12-06T21:03:25","ENERGY":{"TotalStartTime":"2023-12-06T09:54:49","Total":14623.401,"Yesterday":14.950,"Today":4.984,"Period":[0,0,0],"Power":[0,227,336],"ApparentPower":[0,227,336],"ReactivePower":[0,0,0],"Factor":[0.00,1.00,1.00],"Voltage":[238,224,241],"Current":[0.000,1.000,1.000],"Load":0},"TIC":{"ADSC":"022076***","VTIC":2,"NGTF":"TEMPO","LTARF":"HP  ROUGE","EAST":14623401,"EASF01":6659364,"EASF02":7829254,"EASF03":76043,"EASF04":30388,"EASF05":16803,"EASF06":11549,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":9237921,"EASD02":2600419,"EASD03":1209456,"EASD04":1575605,"EAIT":3127874,"ERQ1":1964972,"ERQ2":362712,"ERQ3":54345,"ERQ4":927425,"IRMS1":0,"IRMS2":1,"IRMS3":1,"URMS1":238,"URMS2":224,"URMS3":241,"PREF":9,"PCOUP":9,"SINSTS":595,"SINSTS1":31,"SINSTS2":227,"SINSTS3":336,"SMAXSN":3380,"SMAXSN1":1090,"SMAXSN2":1030,"SMAXSN3":1300,"SMAXSN-1":6480,"SMAXSN1-1":3090,"SMAXSN2-1":2670,"SMAXSN3-1":1390,"SINSTI":0,"SMAXIN":2710,"SMAXIN-1":260,"CCASN":390,"CCASN-1":426,"CCAIN":0,"CCAIN-1":0,"UMOY1":236,"UMOY2":224,"UMOY3":240,"STGE":"9B3AD501","PRM":****,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0}}
                                

                                STGE = xBxxxxx => B = 1011 => aujourd'hui rouge (3), demain blanc (2).
                                L'interface affiche toujours rouge / rouge

                                @Nicolas-Bernaerts said in Denky D4 + Tempo:

                                @Tostaky @localhost61 @Charles Hello,

                                Pour information, je suis en train d'intégrer la lecture des données Tempo de RTE dans mon fork Tasmota Teleinfo.

                                Un nouveau topic MQTT sera disponible afin de récupérer les données :

                                .../sensor/TEMPO
                                    {"Time":"2022-10-10T23:51:09", "Tempo":{"J-1":"bleu","J":"blanc","J+1":"rouge"}}
                                

                                Pour récupérer ces données, il faudra simplement avoir créé un compte sur le site RTE et généré sa clé privée (même compte que pour Ecowatt).

                                Je pense pouvoir publier cette nouvelle version d'ici 1 ou 2 jours.

                                Capture d’écran du 2023-12-05 21-34-06.png

                                Génial.
                                Je viens de terminer mon alerting mail en m'appuyant sur l'API publique d'EDF. Pas besoin de compte et de clef d'API.
                                Le code est là : https://github.com/sosandroid/Monitoring_Energie/tree/main/src/tempo

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

                                @Tostaky said in Denky D4 + Tempo:

                                STGE = xBxxxxx => B = 1011 => aujourd'hui rouge (3), demain blanc (2).
                                L'interface affiche toujours rouge / rouge

                                je comprends pas j'ai testé le même code et aucun soucis

                                https://onlinegdb.com/_VnKGhRZ5

                                #include <stdio.h>
                                #include <stdlib.h>
                                #include <stdint.h>
                                
                                
                                int main()
                                {
                                    uint32_t status_register = strtol("9B3AD501", NULL, 16);
                                    printf("Status Register is 0x%08X\r\n", status_register);
                                    
                                    if (status_register >> 24) {
                                        char txt[32]; 
                                        uint8_t sr = status_register >> 24;
                                        uint8_t val = sr & 0x03;
                                        if (val) {
                                            printf("Jour %s\r\n", val==1?"Bleu":val==2?"Blanc":"Rouge");
                                        }
                                        val = (sr >> 2) & 0x03;
                                        if (val) {
                                            printf("Demain %s\r\n", val==1?"Bleu":val==2?"Blanc":"Rouge");
                                        }
                                        val = (sr >> 4) & 0x03;
                                        if (val) {
                                            printf("Préavis pointe mobile %d\r\n", val);
                                        }
                                        val = (sr >> 6) & 0x03;
                                        if (val) {
                                            printf("Pointe mobile en cours %d\r\n", val);
                                        }
                                    }
                                    return 0;
                                }
                                

                                La sortie donne bien ça

                                Status Register is 0x9B3AD501
                                Jour Rouge
                                Demain Blanc
                                Préavis Pointe mobile 1
                                Pointe mobile En cours 2
                                

                                peut être essayer cette 2eme méthode au cas ou (avec aussi le strtol changé en strtoul)
                                https://onlinegdb.com/ADbvc4273

                                #include <stdio.h>
                                #include <stdlib.h>
                                #include <stdint.h>
                                
                                
                                int main()
                                {
                                    uint32_t status_register = strtoul("9B3AD501", NULL, 16);
                                    printf("Status Register is 0x%08X\r\n", status_register);
                                    
                                    if (status_register >> 24) {
                                        char txt[32]; 
                                        char coul[4][6] = { "----", "Bleu", "Blanc", "Rouge" };
                                        
                                        uint8_t sr = status_register >> 24;
                                        uint8_t val = sr & 0x03;
                                        if (val) {
                                            printf("Jour %s\r\n", coul[val]);
                                        }
                                        val = (sr >> 2) & 0x03;
                                        if (val) {
                                            printf("Demain %s\r\n", coul[val]);
                                        }
                                        val = (sr >> 4) & 0x03;
                                        if (val) {
                                            printf("Préavis pointe mobile %d\r\n", val);
                                        }
                                        val = (sr >> 6) & 0x03;
                                        if (val) {
                                            printf("Pointe mobile en cours %d\r\n", val);
                                        }
                                    }
                                    return 0;
                                    return 0;
                                }
                                

                                qui donne la même chose mais codé différemment, t'as moyen de tester ?

                                T 1 Reply Last reply
                                • Nicolas BernaertsN Nicolas Bernaerts

                                  Je viens de publier une version Teleinfo v13.2 qui gère :

                                  • Tempo
                                  • Ecowatt v4 et v5

                                  Attention, le fichier de configuration sur le littlefs est maintenant rte.cfg (au lieu de ecowatt.cfg).

                                  Si vous aviez déclaré Ecowatt précédemment, il faudra :

                                  • redéclarer votre clé privée via rte_key maclebase64
                                  • activer ecowatt de nouveau via eco_enable 1
                                  • activer tempo via tempo_enable 1
                                  • redémarrer l'ESP

                                  L'aide est disponible en mode console via rte_help.

                                  WendigogoW Offline
                                  WendigogoW Offline
                                  Wendigogo
                                  wrote on last edited by
                                  #17

                                  @Nicolas-Bernaerts : Excellent !
                                  Je mets à jour le Denky-D4.

                                  Tu penses inclure le code de @Tostaky pour ne plus avoir à créer de compte EDF ?

                                  Merci.

                                  Nicolas BernaertsN 2 Replies Last reply
                                  • WendigogoW Wendigogo

                                    @Nicolas-Bernaerts : Excellent !
                                    Je mets à jour le Denky-D4.

                                    Tu penses inclure le code de @Tostaky pour ne plus avoir à créer de compte EDF ?

                                    Merci.

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

                                    @Wendigogo En fait, le problème est double :

                                    • les API EDF répondent quand elles veulent ... elles peuvent mettre 10s a répondre et l'ESP reboot en watchdog
                                    • elles sont très en retard par rapport à RTE : RTE donne l'info vers 9h, EDF souvent après 11h
                                      Donc les données RTE sont beaucoup plus fiables sur les 2 aspects.
                                    WendigogoW 1 Reply Last reply
                                    • WendigogoW Wendigogo

                                      @Nicolas-Bernaerts : Excellent !
                                      Je mets à jour le Denky-D4.

                                      Tu penses inclure le code de @Tostaky pour ne plus avoir à créer de compte EDF ?

                                      Merci.

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

                                      @Wendigogo Je suis en train de voir comment exploiter l'etiquette STGE pour recuperer ces donnees directement depuis le compteur. Mais il reste a verifier la fiabilite et la prevenance.

                                      1 Reply Last reply
                                      • Nicolas BernaertsN Nicolas Bernaerts

                                        @Wendigogo En fait, le problème est double :

                                        • les API EDF répondent quand elles veulent ... elles peuvent mettre 10s a répondre et l'ESP reboot en watchdog
                                        • elles sont très en retard par rapport à RTE : RTE donne l'info vers 9h, EDF souvent après 11h
                                          Donc les données RTE sont beaucoup plus fiables sur les 2 aspects.
                                        WendigogoW Offline
                                        WendigogoW Offline
                                        Wendigogo
                                        wrote on last edited by
                                        #20

                                        @Nicolas-Bernaerts : Merci pour ces explications. J'ai créé un compte RTE du coup.

                                        1 Reply Last reply
                                        • CharlesC Charles

                                          @Tostaky said in Denky D4 + Tempo:

                                          STGE = xBxxxxx => B = 1011 => aujourd'hui rouge (3), demain blanc (2).
                                          L'interface affiche toujours rouge / rouge

                                          je comprends pas j'ai testé le même code et aucun soucis

                                          https://onlinegdb.com/_VnKGhRZ5

                                          #include <stdio.h>
                                          #include <stdlib.h>
                                          #include <stdint.h>
                                          
                                          
                                          int main()
                                          {
                                              uint32_t status_register = strtol("9B3AD501", NULL, 16);
                                              printf("Status Register is 0x%08X\r\n", status_register);
                                              
                                              if (status_register >> 24) {
                                                  char txt[32]; 
                                                  uint8_t sr = status_register >> 24;
                                                  uint8_t val = sr & 0x03;
                                                  if (val) {
                                                      printf("Jour %s\r\n", val==1?"Bleu":val==2?"Blanc":"Rouge");
                                                  }
                                                  val = (sr >> 2) & 0x03;
                                                  if (val) {
                                                      printf("Demain %s\r\n", val==1?"Bleu":val==2?"Blanc":"Rouge");
                                                  }
                                                  val = (sr >> 4) & 0x03;
                                                  if (val) {
                                                      printf("Préavis pointe mobile %d\r\n", val);
                                                  }
                                                  val = (sr >> 6) & 0x03;
                                                  if (val) {
                                                      printf("Pointe mobile en cours %d\r\n", val);
                                                  }
                                              }
                                              return 0;
                                          }
                                          

                                          La sortie donne bien ça

                                          Status Register is 0x9B3AD501
                                          Jour Rouge
                                          Demain Blanc
                                          Préavis Pointe mobile 1
                                          Pointe mobile En cours 2
                                          

                                          peut être essayer cette 2eme méthode au cas ou (avec aussi le strtol changé en strtoul)
                                          https://onlinegdb.com/ADbvc4273

                                          #include <stdio.h>
                                          #include <stdlib.h>
                                          #include <stdint.h>
                                          
                                          
                                          int main()
                                          {
                                              uint32_t status_register = strtoul("9B3AD501", NULL, 16);
                                              printf("Status Register is 0x%08X\r\n", status_register);
                                              
                                              if (status_register >> 24) {
                                                  char txt[32]; 
                                                  char coul[4][6] = { "----", "Bleu", "Blanc", "Rouge" };
                                                  
                                                  uint8_t sr = status_register >> 24;
                                                  uint8_t val = sr & 0x03;
                                                  if (val) {
                                                      printf("Jour %s\r\n", coul[val]);
                                                  }
                                                  val = (sr >> 2) & 0x03;
                                                  if (val) {
                                                      printf("Demain %s\r\n", coul[val]);
                                                  }
                                                  val = (sr >> 4) & 0x03;
                                                  if (val) {
                                                      printf("Préavis pointe mobile %d\r\n", val);
                                                  }
                                                  val = (sr >> 6) & 0x03;
                                                  if (val) {
                                                      printf("Pointe mobile en cours %d\r\n", val);
                                                  }
                                              }
                                              return 0;
                                              return 0;
                                          }
                                          

                                          qui donne la même chose mais codé différemment, t'as moyen de tester ?

                                          T Offline
                                          T Offline
                                          Tostaky
                                          wrote on last edited by
                                          #21

                                          @Charles said in Denky D4 + Tempo:

                                          @Tostaky said in Denky D4 + Tempo:

                                          STGE = xBxxxxx => B = 1011 => aujourd'hui rouge (3), demain blanc (2).
                                          L'interface affiche toujours rouge / rouge

                                          je comprends pas j'ai testé le même code et aucun soucis

                                          https://onlinegdb.com/_VnKGhRZ5

                                          #include <stdio.h>
                                          #include <stdlib.h>
                                          #include <stdint.h>
                                          
                                          
                                          int main()
                                          {
                                              uint32_t status_register = strtol("9B3AD501", NULL, 16);
                                              printf("Status Register is 0x%08X\r\n", status_register);
                                              
                                              if (status_register >> 24) {
                                                  char txt[32]; 
                                                  uint8_t sr = status_register >> 24;
                                                  uint8_t val = sr & 0x03;
                                                  if (val) {
                                                      printf("Jour %s\r\n", val==1?"Bleu":val==2?"Blanc":"Rouge");
                                                  }
                                                  val = (sr >> 2) & 0x03;
                                                  if (val) {
                                                      printf("Demain %s\r\n", val==1?"Bleu":val==2?"Blanc":"Rouge");
                                                  }
                                                  val = (sr >> 4) & 0x03;
                                                  if (val) {
                                                      printf("Préavis pointe mobile %d\r\n", val);
                                                  }
                                                  val = (sr >> 6) & 0x03;
                                                  if (val) {
                                                      printf("Pointe mobile en cours %d\r\n", val);
                                                  }
                                              }
                                              return 0;
                                          }
                                          

                                          La sortie donne bien ça

                                          Status Register is 0x9B3AD501
                                          Jour Rouge
                                          Demain Blanc
                                          Préavis Pointe mobile 1
                                          Pointe mobile En cours 2
                                          

                                          peut être essayer cette 2eme méthode au cas ou (avec aussi le strtol changé en strtoul)
                                          https://onlinegdb.com/ADbvc4273

                                          #include <stdio.h>
                                          #include <stdlib.h>
                                          #include <stdint.h>
                                          
                                          
                                          int main()
                                          {
                                              uint32_t status_register = strtoul("9B3AD501", NULL, 16);
                                              printf("Status Register is 0x%08X\r\n", status_register);
                                              
                                              if (status_register >> 24) {
                                                  char txt[32]; 
                                                  char coul[4][6] = { "----", "Bleu", "Blanc", "Rouge" };
                                                  
                                                  uint8_t sr = status_register >> 24;
                                                  uint8_t val = sr & 0x03;
                                                  if (val) {
                                                      printf("Jour %s\r\n", coul[val]);
                                                  }
                                                  val = (sr >> 2) & 0x03;
                                                  if (val) {
                                                      printf("Demain %s\r\n", coul[val]);
                                                  }
                                                  val = (sr >> 4) & 0x03;
                                                  if (val) {
                                                      printf("Préavis pointe mobile %d\r\n", val);
                                                  }
                                                  val = (sr >> 6) & 0x03;
                                                  if (val) {
                                                      printf("Pointe mobile en cours %d\r\n", val);
                                                  }
                                              }
                                              return 0;
                                              return 0;
                                          }
                                          

                                          qui donne la même chose mais codé différemment, t'as moyen de tester ?

                                          Je n'ai pas modifié de code coté Denky car j'ai pris un firmware déjà compilé.
                                          A la lecture du code, je suis 100% d'accord avec le fonctionnement.
                                          Comme le script Berry accède à la valeur STGE et la décode correctement pour la transmettre à EmonCMS, j'en déduis que c'est quelque part entre la libteleinfo et l'affichage.

                                          C'est plus à titre informatif que je fais remonter car j'utilise peu l'affichage

                                          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


                                          3

                                          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