Community Forum
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. Tostaky
    T
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 18
    • Groups 0

    Tostaky

    @Tostaky

    1
    Profile views
    18
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    Tostaky Unfollow Follow

    Latest posts made by Tostaky

    • RE: Denky D4 + Tempo

      @Tostaky said in Denky D4 + Tempo:

      payload['IDX_SOUT_HP'] = value['EASF02']
      payload['IDX_SOUT_HC'] = value['EASF01']

      Evidement, ces lignes sont en trop

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 + Tempo

      Bonjour,

      Pour continuer sur ce sujet, j'ai essayé de passer sur le firmware de @Nicolas-Bernaerts. Les différents retours que j'ai pu lire est que cela améliore la comptabilisation de l'énergie entre Enedis, le Denky et EmonCMS.

      Aujourd'hui j'utilise un firmware "standard" et un script Berry pour alimenter EmonCMS toutes les 8500ms.

      En passant à la version 14.9beta de @Nicolas-Bernaerts, je n'ai plus de données qui remlontent. Le script Berry ne fonctionne plus.
      J'ai fait un rollback et tout est rentré dans l'ordre.

      Néanmoins, je voudrais tester ce firmware. De manière à préparer le script avant (je n'ai pas accès au Denky avant le WE prochain), est-il possible de valider que le script simplifié suivant

      var payload = {}
      def rule_tic(value, trigger)
      
        payload['IDX_SOUT'] = value['EAST']
        payload['IDX_SOUT_HP'] = value['EASF02']
        payload['IDX_SOUT_HC'] = value['EASF01']
        payload['IDX_INJ'] = value['EAIT']
        payload['PUI_SOUT'] = value['SINSTS']
        payload['PUI_INJ'] = value['SINSTI']
      
      end
      
      def start()
        # Callback on each frame interception
        tasmota.add_rule("TIC",rule_tic)
        # fire first post in 5s 
        tasmota.set_timer(5000, send_emoncms)
      end
      
      def send_emoncms()
       ...
      end
      

      devient

      var payload = {}
      
      def rule_meter (value, trigger)
        payload['PUI_SOUT'] = value['W']
        payload['PUI_INJ'] = value['PW']
         
      end
      
      def rule_contract (value, trigger)
        payload['IDX_SOUT'] = value['CONSO']
        payload['IDX_SOUT_HP'] = value['EASF02']
        payload['IDX_SOUT_HC'] = value['EASF01']
        payload['IDX_INJ'] = value['PROD']
      end
      
      def send_emoncms()
       ...
      end
      
      def start()
        # Callback on each frame interception
        tasmota.add_rule("METER",rule_meter)
        tasmota.add_rule("CONTRACT",rule_contract)
        # fire first post in 5s 
        tasmota.set_timer(5000, send_emoncms)
      end
      
      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 + Tempo

      @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

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 + Tempo

      @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

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 + Tempo

      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

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 + Tempo

      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

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 + Tempo

      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...

      posted in Denky D4
      T
      Tostaky
    • Denky D4 + Tempo

      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 ?

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 - démarrage

      Mise à jour de ma doc sur les étiquettes Standard et Historique. et décodage des étiquettes ADSC et STEG en particulier

      https://github.com/sosandroid/Monitoring_Energie/blob/main/doc/tic_standard_histo.md

      posted in Denky D4
      T
      Tostaky
    • RE: Denky D4 - démarrage

      @Charles 👍
      Wilco

      posted in Denky D4
      T
      Tostaky