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.4k 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.
  • O Obi_Yoann

    @Charles pas de soucis pour moi, mais aurais-tu un binaire pour pouvoir reflasher le denky après en tasmota? j'ai pas réussi (ni trop tenté en fait) de recompiler tasmota pour lui n'ayant pas la cible... 😅
    Comme board tu utilises esp32_8M c'est ça?
    Merci de ton aide!

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

    @Obi_Yoann j'utilise les versions non officielle flashée avec le WebFlasher (ça se débrouille tout seul, pas besoin de choisir le chip)
    Tu as tous les binaires non officiels dont celui avec la téléinfo
    https://github.com/Jason2866/Tasmota-specials lis le readme pour le flash 🙂

    1 Reply Last reply
    • Nicolas BernaertsN Nicolas Bernaerts

      @Obi_Yoann Je viens de mettre à jour tasmota-flash sur GitHub. Il intègre le bon paramètre -fm dio pour les ESP32.

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

      @Nicolas-Bernaerts Bonjour!
      Je tente à nouveau d'utiliser ta version, j'ai pu la flasher sans soucis sur mon esp32s2 pour info, et elle fonctionne apparemment au poil.
      Je voulais recompiler pour ajouter le support de l'écran, mais même sans aller jusque là juste en suivant les instructions je n'arrive plus à compiler.
      J'ai tenté sur les releases suivantes de Tasmota :

      • v12.0.2
      • v12.1.0
      • v12.1.1
      • v12.2.0
        La version 12.0.2 me sort plein d'erreurs sur xdrv_01_9_webserver.ino :
      Compiling .pio/build/teleinfo32s2/libdb5/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino: In function 'void HandleWifiConfiguration()':
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:11: error: 'WIFI_NOT_TESTING' was not declared in this scope
             if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                 ^~~~~~~~~~~~~~~~
      Compiling .pio/build/teleinfo32s2/lib90c/Adafruit_VEML7700/Adafruit_VEML7700.cpp.o
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:11: note: suggested alternative: 'WIFI_NO_SLEEP'
             if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                 ^~~~~~~~~~~~~~~~
                 WIFI_NO_SLEEP
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:36: error: 'struct WIFI' has no member named 'wifiTest'
             if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                                          ^~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1867:37: error: 'struct WIFI' has no member named 'old_wificonfig'
               if (MAX_WIFI_OPTION == Wifi.old_wificonfig) { Wifi.old_wificonfig = Settings->sta_config; }
                                           ^~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1867:60: error: 'struct WIFI' has no member named 'old_wificonfig'
               if (MAX_WIFI_OPTION == Wifi.old_wificonfig) { Wifi.old_wificonfig = Settings->sta_config; }
                                                                  ^~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1869:14: error: 'struct WIFI' has no member named 'save_data_counter'
               Wifi.save_data_counter = TasmotaGlobal.save_data_counter;
                    ^~~~~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1872:12: error: 'struct WIFI' has no member named 'wifi_test_counter'; did you mean 'config_counter'?
             Wifi.wifi_test_counter = 9;   // seconds to test user's proposed AP
      

      Tasmota a visiblement évolué sur ce fichier, si j'ai bien compris, et du coup ton fichier était en double du fichier d'origine ? J'avais tenté la 12.0.2 ayant vu que c'était la version que tu avais compilé pour tes binaires de fin aout... 🙂
      Toutes les versions à part la 12.0.2 me sortent moins d'erreurs mais échouent quand même :

      Compiling .pio/build/teleinfo32s2/lib3b5/Adafruit_VEML7700/Adafruit_VEML7700.cpp.o
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino: In function 'void TeleinfoLoadConfig()':
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:662:111: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
         teleinfo_config.baud_rate       = TeleinfoValidateBaudRate (UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_RATE));
                                                                                                                     ^
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
       int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
           ^~~~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:663:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
         teleinfo_config.log_policy      = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_LOG_POLICY);
                                                                                                  ^
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
       int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
           ^~~~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:664:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
         teleinfo_config.msg_policy      = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_MSG_POLICY);
                                                                                                  ^
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
       int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
           ^~~~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:665:88: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
         teleinfo_config.msg_type        = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_MSG_TYPE);
                                                                                              ^
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
       int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
           ^~~~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:666:95: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
         teleinfo_config.update_interval = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_INTERVAL);
                                                                                                     ^
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
       int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
           ^~~~~~~~~~~~~~~~
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:667:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
         teleinfo_config.percent_adjust  = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_ADJUST);
                                                                                                  ^
      /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
       int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
      

      Là j'avoue que je sèche complètement...
      J'ai bien trouvé la déclaration de la fonction par ex UfsCfgLoadKeyInt où effectivement on a 3 arguments :

      int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
      

      J'ai aussi trouvé que le fichier où cette fonction était déclarée avait évolué le 16 octobre dernier, et qu'avant la déclaration était :

      int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value = INT_MAX)
      

      Donc avec une valeur par défaut en cas d'absence du 3ème argument. Je pense que mes erreurs de compilation viennent de là... Qu'en penses-tu?

      Merci d'avance pour ton aide!!! 🙂

      EDIT : j'ai repris l'ancien fichier avant refactoring, la compilation va effectivement bien plus loin mais échoue cette fois sur l'erreur suivante :

      Retrieved `.pio/build/teleinfo32s2/lib3d8/Adafruit_seesaw_soilsensor_1.3.1/Adafruit_seesaw.cpp.o' from cache
      /home/yoann/platformio-core/Tasmota-12.2.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino: In function 'void TeleinfoInit()':
      /home/yoann/platformio-core/Tasmota-12.2.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:1334:13: error: 'struct TSettings' has no member named 'energy_kWhtotal'; did you mean 'energy_kWhtotal_ph'?
         Settings->energy_kWhtotal = 0;
                   ^~~~~~~~~~~~~~~
                   energy_kWhtotal_ph
      Retrieved `.pio/build/teleinfo32s2/libcc1/BM8563_RTC/BM8563.cpp.o' from cache
      Retrieved `.pio/build/teleinfo32s2/lib6e4/AT24C256_512/Eeprom24C128_256.cpp.o' from cache
      

      En effet la déclaration de energy_kWhtotal n'est plus présente dans tasmota_types.h depuis la version 12.1.0 a priori. Là par contre je ne vois pas de solution à ce problème... 😞

      Nicolas BernaertsN 2 Replies Last reply
      • O Obi_Yoann

        @Nicolas-Bernaerts Bonjour!
        Je tente à nouveau d'utiliser ta version, j'ai pu la flasher sans soucis sur mon esp32s2 pour info, et elle fonctionne apparemment au poil.
        Je voulais recompiler pour ajouter le support de l'écran, mais même sans aller jusque là juste en suivant les instructions je n'arrive plus à compiler.
        J'ai tenté sur les releases suivantes de Tasmota :

        • v12.0.2
        • v12.1.0
        • v12.1.1
        • v12.2.0
          La version 12.0.2 me sort plein d'erreurs sur xdrv_01_9_webserver.ino :
        Compiling .pio/build/teleinfo32s2/libdb5/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino: In function 'void HandleWifiConfiguration()':
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:11: error: 'WIFI_NOT_TESTING' was not declared in this scope
               if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                   ^~~~~~~~~~~~~~~~
        Compiling .pio/build/teleinfo32s2/lib90c/Adafruit_VEML7700/Adafruit_VEML7700.cpp.o
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:11: note: suggested alternative: 'WIFI_NO_SLEEP'
               if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                   ^~~~~~~~~~~~~~~~
                   WIFI_NO_SLEEP
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:36: error: 'struct WIFI' has no member named 'wifiTest'
               if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                                            ^~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1867:37: error: 'struct WIFI' has no member named 'old_wificonfig'
                 if (MAX_WIFI_OPTION == Wifi.old_wificonfig) { Wifi.old_wificonfig = Settings->sta_config; }
                                             ^~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1867:60: error: 'struct WIFI' has no member named 'old_wificonfig'
                 if (MAX_WIFI_OPTION == Wifi.old_wificonfig) { Wifi.old_wificonfig = Settings->sta_config; }
                                                                    ^~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1869:14: error: 'struct WIFI' has no member named 'save_data_counter'
                 Wifi.save_data_counter = TasmotaGlobal.save_data_counter;
                      ^~~~~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1872:12: error: 'struct WIFI' has no member named 'wifi_test_counter'; did you mean 'config_counter'?
               Wifi.wifi_test_counter = 9;   // seconds to test user's proposed AP
        

        Tasmota a visiblement évolué sur ce fichier, si j'ai bien compris, et du coup ton fichier était en double du fichier d'origine ? J'avais tenté la 12.0.2 ayant vu que c'était la version que tu avais compilé pour tes binaires de fin aout... 🙂
        Toutes les versions à part la 12.0.2 me sortent moins d'erreurs mais échouent quand même :

        Compiling .pio/build/teleinfo32s2/lib3b5/Adafruit_VEML7700/Adafruit_VEML7700.cpp.o
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino: In function 'void TeleinfoLoadConfig()':
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:662:111: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
           teleinfo_config.baud_rate       = TeleinfoValidateBaudRate (UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_RATE));
                                                                                                                       ^
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
         int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
             ^~~~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:663:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
           teleinfo_config.log_policy      = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_LOG_POLICY);
                                                                                                    ^
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
         int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
             ^~~~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:664:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
           teleinfo_config.msg_policy      = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_MSG_POLICY);
                                                                                                    ^
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
         int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
             ^~~~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:665:88: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
           teleinfo_config.msg_type        = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_MSG_TYPE);
                                                                                                ^
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
         int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
             ^~~~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:666:95: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
           teleinfo_config.update_interval = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_INTERVAL);
                                                                                                       ^
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
         int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
             ^~~~~~~~~~~~~~~~
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:667:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
           teleinfo_config.percent_adjust  = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_ADJUST);
                                                                                                    ^
        /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
         int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
        

        Là j'avoue que je sèche complètement...
        J'ai bien trouvé la déclaration de la fonction par ex UfsCfgLoadKeyInt où effectivement on a 3 arguments :

        int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
        

        J'ai aussi trouvé que le fichier où cette fonction était déclarée avait évolué le 16 octobre dernier, et qu'avant la déclaration était :

        int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value = INT_MAX)
        

        Donc avec une valeur par défaut en cas d'absence du 3ème argument. Je pense que mes erreurs de compilation viennent de là... Qu'en penses-tu?

        Merci d'avance pour ton aide!!! 🙂

        EDIT : j'ai repris l'ancien fichier avant refactoring, la compilation va effectivement bien plus loin mais échoue cette fois sur l'erreur suivante :

        Retrieved `.pio/build/teleinfo32s2/lib3d8/Adafruit_seesaw_soilsensor_1.3.1/Adafruit_seesaw.cpp.o' from cache
        /home/yoann/platformio-core/Tasmota-12.2.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino: In function 'void TeleinfoInit()':
        /home/yoann/platformio-core/Tasmota-12.2.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:1334:13: error: 'struct TSettings' has no member named 'energy_kWhtotal'; did you mean 'energy_kWhtotal_ph'?
           Settings->energy_kWhtotal = 0;
                     ^~~~~~~~~~~~~~~
                     energy_kWhtotal_ph
        Retrieved `.pio/build/teleinfo32s2/libcc1/BM8563_RTC/BM8563.cpp.o' from cache
        Retrieved `.pio/build/teleinfo32s2/lib6e4/AT24C256_512/Eeprom24C128_256.cpp.o' from cache
        

        En effet la déclaration de energy_kWhtotal n'est plus présente dans tasmota_types.h depuis la version 12.1.0 a priori. Là par contre je ne vois pas de solution à ce problème... 😞

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

        @Obi_Yoann hello,
        En fait j'ai fait évoluer pas mal de choses depuis tasmota 12, mais je n'ai pas tout republié sur GitHub. C'est dans doute pour cela que tes compilations sont en erreur.
        Mais je te confirme que tout compile sans problème chez moi sur la base de Tasmota 12.1.1.
        Je vais essayer de déposer tous les dernières versions des fichiers demain matin.

        1 Reply Last reply
        • O Obi_Yoann

          Bonjour à tous! j'ai un soucis récurrent sur mon compteur, et je n'arrive pas à trouver de solution.
          J'ai des erreurs checksum en pagaille, et le passage du hat wemos teleinfo avec esp32s2 au fameux Denky D4 1.1 de @Charles n'a hélas pas fait évoluer positivement ce soucis, au contraire j'ai même l'impression que c'est encore pire :
          ead8178b-b203-4f18-8952-548c1abca19c-image.png
          Je suis en TIC Standard et non historique, et j'ai du coup des trames TIC incomplètes (des balises manquantes notamment), que je n'avais pas avec le wemos teleinfo classique.
          En terme de stabilité je dois toujours redémarrer l'esp32 relativement régulièrement (toutes les semaines environ) sans quoi il n'arrive plus à analyser les trames pour les rebalancer vers emoncms.
          Ces erreurs checksums m'embêtent et je pense qu'il faut que je trouve pourquoi ça fait ça.
          Je me demande s'il n'y aurait pas une incompatibilité entre mon compteur et le teleinfo.
          Suite à une suggestion de @Charles j'ai refait mes fils, en étamant des deux côtés pour que ça tienne bien, c'est le cas mais pas d'évolution sur les checksum.
          Est-ce qu'il faudrait que je change une résistance pour améliorer la compatibilité? Si oui laquelle et pour quelle valeur???
          Est-ce que d'autres personnes utilisent le tasmota teleinfo avec un compteur linky en mode Standard? Pas de soucis de checksum pour vous?

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

          @Obi_Yoann hello alors ce soir j'ai regardé la console de tasmota (ESP32 + WeMos TIC) et effectivement je suis aussi gavé d'erreurs de checksum

          mais je subodore que ca va trop vite et qu'il n'a pas le temps de tout traiter. du coups j'ai désactivé le script berry qui intercepte MQTT pour poster sur emoncms et la bingo plus d'erreur.

          d46edb18-be04-421d-9bcd-65abb08e8b4c-image.png

          On va investiguer ce coté là car c'est clairement ça

          Edit : j'ai réactivé le script pour savoir ou ça déconnait, et bien j'ai trouvé, en fait c'est pas l'interception MQTT elle elle fonctionne parfaitement mais les erreurs arrivent au moment ou le script fait un cl.get() pour poster (dans mon cas sur emoncms)

          Donc ce que j'ai fait, j'ai activé le skip pour avoir l'émission d'une trame complète toutes les 20 secondes environ (en mode standard)
          energyconfig skip 15
          au moment ou la trame est reçue il fait un post sur emoncms et la série n'arrive plus à suivre, il s'en suit qq erreur de checksum mais c'est pas très grave il se rattrape après.

          Ensuite j'ai fait la même chose en postant sur emoncms mais sans SSL (le truc gourmand) et du coups quand je fais ça, plus d'erreur (moins secure)

          O 1 Reply Last reply
          • CharlesC Charles referenced this topic on
          • O Obi_Yoann

            @Nicolas-Bernaerts Bonjour!
            Je tente à nouveau d'utiliser ta version, j'ai pu la flasher sans soucis sur mon esp32s2 pour info, et elle fonctionne apparemment au poil.
            Je voulais recompiler pour ajouter le support de l'écran, mais même sans aller jusque là juste en suivant les instructions je n'arrive plus à compiler.
            J'ai tenté sur les releases suivantes de Tasmota :

            • v12.0.2
            • v12.1.0
            • v12.1.1
            • v12.2.0
              La version 12.0.2 me sort plein d'erreurs sur xdrv_01_9_webserver.ino :
            Compiling .pio/build/teleinfo32s2/libdb5/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino: In function 'void HandleWifiConfiguration()':
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:11: error: 'WIFI_NOT_TESTING' was not declared in this scope
                   if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                       ^~~~~~~~~~~~~~~~
            Compiling .pio/build/teleinfo32s2/lib90c/Adafruit_VEML7700/Adafruit_VEML7700.cpp.o
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:11: note: suggested alternative: 'WIFI_NO_SLEEP'
                   if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                       ^~~~~~~~~~~~~~~~
                       WIFI_NO_SLEEP
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1866:36: error: 'struct WIFI' has no member named 'wifiTest'
                   if (WIFI_NOT_TESTING == Wifi.wifiTest) {
                                                ^~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1867:37: error: 'struct WIFI' has no member named 'old_wificonfig'
                     if (MAX_WIFI_OPTION == Wifi.old_wificonfig) { Wifi.old_wificonfig = Settings->sta_config; }
                                                 ^~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1867:60: error: 'struct WIFI' has no member named 'old_wificonfig'
                     if (MAX_WIFI_OPTION == Wifi.old_wificonfig) { Wifi.old_wificonfig = Settings->sta_config; }
                                                                        ^~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1869:14: error: 'struct WIFI' has no member named 'save_data_counter'
                     Wifi.save_data_counter = TasmotaGlobal.save_data_counter;
                          ^~~~~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.0.2_MOD3/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino:1872:12: error: 'struct WIFI' has no member named 'wifi_test_counter'; did you mean 'config_counter'?
                   Wifi.wifi_test_counter = 9;   // seconds to test user's proposed AP
            

            Tasmota a visiblement évolué sur ce fichier, si j'ai bien compris, et du coup ton fichier était en double du fichier d'origine ? J'avais tenté la 12.0.2 ayant vu que c'était la version que tu avais compilé pour tes binaires de fin aout... 🙂
            Toutes les versions à part la 12.0.2 me sortent moins d'erreurs mais échouent quand même :

            Compiling .pio/build/teleinfo32s2/lib3b5/Adafruit_VEML7700/Adafruit_VEML7700.cpp.o
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino: In function 'void TeleinfoLoadConfig()':
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:662:111: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
               teleinfo_config.baud_rate       = TeleinfoValidateBaudRate (UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_RATE));
                                                                                                                           ^
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
             int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
                 ^~~~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:663:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
               teleinfo_config.log_policy      = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_LOG_POLICY);
                                                                                                        ^
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
             int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
                 ^~~~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:664:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
               teleinfo_config.msg_policy      = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_MSG_POLICY);
                                                                                                        ^
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
             int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
                 ^~~~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:665:88: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
               teleinfo_config.msg_type        = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_MSG_TYPE);
                                                                                                    ^
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
             int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
                 ^~~~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:666:95: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
               teleinfo_config.update_interval = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_INTERVAL);
                                                                                                           ^
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
             int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
                 ^~~~~~~~~~~~~~~~
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:667:92: error: too few arguments to function 'int UfsCfgLoadKeyInt(const char*, const char*, int)'
               teleinfo_config.percent_adjust  = UfsCfgLoadKeyInt (D_TELEINFO_CFG, D_CMND_TELEINFO_ADJUST);
                                                                                                        ^
            /home/yoann/platformio-core/Tasmota-12.1.0_MOD/tasmota/tasmota_xdrv_driver/xdrv_50_filesystem_cfg_csv.ino:105:5: note: declared here
             int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
            

            Là j'avoue que je sèche complètement...
            J'ai bien trouvé la déclaration de la fonction par ex UfsCfgLoadKeyInt où effectivement on a 3 arguments :

            int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value)
            

            J'ai aussi trouvé que le fichier où cette fonction était déclarée avait évolué le 16 octobre dernier, et qu'avant la déclaration était :

            int UfsCfgLoadKeyInt (const char* pstr_filename, const char* pstr_key, const int default_value = INT_MAX)
            

            Donc avec une valeur par défaut en cas d'absence du 3ème argument. Je pense que mes erreurs de compilation viennent de là... Qu'en penses-tu?

            Merci d'avance pour ton aide!!! 🙂

            EDIT : j'ai repris l'ancien fichier avant refactoring, la compilation va effectivement bien plus loin mais échoue cette fois sur l'erreur suivante :

            Retrieved `.pio/build/teleinfo32s2/lib3d8/Adafruit_seesaw_soilsensor_1.3.1/Adafruit_seesaw.cpp.o' from cache
            /home/yoann/platformio-core/Tasmota-12.2.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino: In function 'void TeleinfoInit()':
            /home/yoann/platformio-core/Tasmota-12.2.0_MOD/tasmota/tasmota_xnrg_energy/xnrg_15_teleinfo.ino:1334:13: error: 'struct TSettings' has no member named 'energy_kWhtotal'; did you mean 'energy_kWhtotal_ph'?
               Settings->energy_kWhtotal = 0;
                         ^~~~~~~~~~~~~~~
                         energy_kWhtotal_ph
            Retrieved `.pio/build/teleinfo32s2/libcc1/BM8563_RTC/BM8563.cpp.o' from cache
            Retrieved `.pio/build/teleinfo32s2/lib6e4/AT24C256_512/Eeprom24C128_256.cpp.o' from cache
            

            En effet la déclaration de energy_kWhtotal n'est plus présente dans tasmota_types.h depuis la version 12.1.0 a priori. Là par contre je ne vois pas de solution à ce problème... 😞

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

            @Obi_Yoann Je viens de publier la version 9.3.3 ainsi que les dernières versions des fichiers common. Tu devrais pouvoir compiler sans problème maintenant.

            1 Reply Last reply
            • CharlesC Charles

              @Obi_Yoann hello alors ce soir j'ai regardé la console de tasmota (ESP32 + WeMos TIC) et effectivement je suis aussi gavé d'erreurs de checksum

              mais je subodore que ca va trop vite et qu'il n'a pas le temps de tout traiter. du coups j'ai désactivé le script berry qui intercepte MQTT pour poster sur emoncms et la bingo plus d'erreur.

              d46edb18-be04-421d-9bcd-65abb08e8b4c-image.png

              On va investiguer ce coté là car c'est clairement ça

              Edit : j'ai réactivé le script pour savoir ou ça déconnait, et bien j'ai trouvé, en fait c'est pas l'interception MQTT elle elle fonctionne parfaitement mais les erreurs arrivent au moment ou le script fait un cl.get() pour poster (dans mon cas sur emoncms)

              Donc ce que j'ai fait, j'ai activé le skip pour avoir l'émission d'une trame complète toutes les 20 secondes environ (en mode standard)
              energyconfig skip 15
              au moment ou la trame est reçue il fait un post sur emoncms et la série n'arrive plus à suivre, il s'en suit qq erreur de checksum mais c'est pas très grave il se rattrape après.

              Ensuite j'ai fait la même chose en postant sur emoncms mais sans SSL (le truc gourmand) et du coups quand je fais ça, plus d'erreur (moins secure)

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

              @Charles Merci pour ton retour, je pense que mon problème est différent, de base j'étais sans SSL et j'ai pas testé avec (le emoncms est local, je crains pas trop les interceptions) mais j'ai testé à l'instant de désactiver le script (et rebooter) mais pareil toujours autant d'erreur checksum :
              0c8d6e70-e789-4d5f-b09c-3e010f713f42-image.png
              Mon père est passé aussi en TIC Standard sur le sien et très très peu d'erreur, même avec le même script berry que sur le mien et sans skip. Ca sent la différence de compteur, mais je sais pas ce qu'il a...
              Sur la version précompilée de @Nicolas-Bernaerts, je n'ai pas encore testé le script Berry (pas sûr qu'il marche tel quel d'ailleurs, je pense qu'il faut que j'ajoute le support de Berry qui n'est pas dedans je crois de base), mais aucune erreur checksum avec le wemos tic et l'esp32s2. Il interprête, apparemment, tout parfaitement!
              Le energy total est correct, la barre de "charge" est correcte aussi, current est plus précis et active power aussi :
              f5feff4c-c4a6-49b5-8b8c-db314c898897-image.png
              @Nicolas-Bernaerts merci beaucoup! je récupère tout et tente la compilation!!! 😎🙏🏻

              CharlesC 1 Reply Last reply
              • O Obi_Yoann

                @Charles Merci pour ton retour, je pense que mon problème est différent, de base j'étais sans SSL et j'ai pas testé avec (le emoncms est local, je crains pas trop les interceptions) mais j'ai testé à l'instant de désactiver le script (et rebooter) mais pareil toujours autant d'erreur checksum :
                0c8d6e70-e789-4d5f-b09c-3e010f713f42-image.png
                Mon père est passé aussi en TIC Standard sur le sien et très très peu d'erreur, même avec le même script berry que sur le mien et sans skip. Ca sent la différence de compteur, mais je sais pas ce qu'il a...
                Sur la version précompilée de @Nicolas-Bernaerts, je n'ai pas encore testé le script Berry (pas sûr qu'il marche tel quel d'ailleurs, je pense qu'il faut que j'ajoute le support de Berry qui n'est pas dedans je crois de base), mais aucune erreur checksum avec le wemos tic et l'esp32s2. Il interprête, apparemment, tout parfaitement!
                Le energy total est correct, la barre de "charge" est correcte aussi, current est plus précis et active power aussi :
                f5feff4c-c4a6-49b5-8b8c-db314c898897-image.png
                @Nicolas-Bernaerts merci beaucoup! je récupère tout et tente la compilation!!! 😎🙏🏻

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

                @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

                O 1 Reply Last reply
                • CharlesC Charles

                  @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

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

                  @Charles said in Tasmota:

                  @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

                  Tout à fait!!! Merci de l'info!!!
                  Flashé et effectivement la barre fonctionne!
                  420c46f7-04ef-43e7-8841-bea6a6d83362-image.png
                  Hélas toujours les checksums, et energy total est "négatif".
                  Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé! 😅
                  En tout cas c'est top, merci!

                  @Nicolas-Bernaerts je suis vraiment désolé d'être aussi pénible mais toujours pas possible de compiler hélas avec la dernière release, j'ai bien tout récupéré et replacé aux bons endroits, mais en 12.1.1 et en 12.2.0 j'ai des erreurs à la toute fin de la compilation.
                  Le script que je passe pour placer tes fichiers aux bons endroits (j'espère) :

                  cp ../tasmota/teleinfo/platformio_override.ini .
                  cp ../tasmota/teleinfo/user_config_override.h tasmota/
                  cp ../tasmota/common/esp8266_16M14M.json boards/
                  cp ../tasmota/teleinfo/xnrg_15_teleinfo.ino tasmota/tasmota_xnrg_energy/
                  cp ../tasmota/teleinfo/xdrv_01_9_webserver.ino tasmota/tasmota_xdrv_driver/
                  cp ../tasmota/common/xdrv_50_filesystem_cfg_csv.ino tasmota/tasmota_xdrv_driver/
                  cp ../tasmota/common/xdrv_94_ip_address.ino tasmota/tasmota_xdrv_driver/
                  cp ../tasmota/common/xdrv_96_ftp_server.ino tasmota/tasmota_xdrv_driver/
                  cp ../tasmota/common/xdrv_97_tcp_server.ino tasmota/tasmota_xdrv_driver/
                  cp ../tasmota/common/xdrv_98_esp32_board.ino tasmota/tasmota_xdrv_driver/
                  cp ../tasmota/common/xsns_120_timezone.ino tasmota/tasmota_xsns_sensor/
                  unzip ../tasmota/common/FTPClientServer.zip -d lib/default/
                  
                  

                  Mon arborescence :
                  ~/platformio-core/tasmota (ton repo github)
                  ~/platformio-core/Tasmota-12.1.1_MOD (version 12.1.1 avec tes fichiers)
                  ~/platformio-core/Tasmota-12.2.0_MOD (version 12.2.0 avec tes fichiers)
                  Le script ci-dessus je le passe depuis les dossiers Tasmota*_MOD naturellement.
                  Pour la 12.1.1 l'erreur que j'ai :

                  Creating filesystem with content:
                  No files added -> will NOT create littlefs.bin and NOT overwrite fs partition!
                  Unexpected naming conventions in this build environment -> Undefined behavior for further build process!!
                  Expected build environment name like 'tasmota32-whatever-you-want'
                  Will download safeboot binary from URL:
                  http://ota.tasmota.com/tasmota32/release/teleinfo32s2-safeboot.bin
                  safeboot binary written to variants dir.
                      Offset | File
                   -  0x1000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin
                   -  0x8000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/partitions.bin
                   -  0xe000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin
                   -  0x10000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin
                   - 0xe0000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/firmware.bin
                  usage: esptool merge_bin [-h] --output OUTPUT [--format {r,a,w}]
                                           [--flash_freq {keep,80m,60m,48m,40m,30m,26m,24m,20m,16m,15m,12m}]
                                           [--flash_mode {keep,qio,qout,dio,dout}]
                                           [--flash_size FLASH_SIZE]
                                           [--spi-connection SPI_CONNECTION]
                                           [--target-offset TARGET_OFFSET]
                                           [--fill-flash-size FILL_FLASH_SIZE]
                                           <address> <filename> [<address> <filename> ...]
                  esptool merge_bin: error: argument <address> <filename>: [Errno 2] No such file or directory: '/home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin'
                  *** [.pio/build/teleinfo32s2/firmware.bin] Explicit exit, status 2
                  ============================================================================================================================= [FAILED] Took 46.89 seconds =============================================================================================================================
                  
                  Environment    Status    Duration
                  -------------  --------  ------------
                  teleinfo32s2   FAILED    00:00:46.890
                  ======================================================================================================================== 1 failed, 0 succeeded in 00:00:46.890 ========================================================================================================================
                  

                  J'ai regardé dans le dossier mentionné, je n'ai effectivement pas ce fichier mais un autre :

                  (platformio-core) yoann@powerripper:~/platformio-core/Tasmota-12.1.1_MOD$ ls ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/
                  teleinfo32s2-safeboot.bin
                  

                  teleinfo32s2 au lieu de tasmota32s2, aucune idée de pourquoi!
                  Avant de compiler teleinfo32s2, et avant d'incorporer tes fichiers via mon script, j'avais compilé avec succès tasmota32s2 depuis ce même dossier Tasmota-12.1.1_MOD (puis j'ai purgé les dossier .cache et .pio).

                  Pour la version 12.2.0 :

                  Compiling .pio/build/teleinfo32s2/FrameworkArduino/stdlib_noniso.c.o
                  Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_pulse.c.o
                  Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_shift.c.o
                  Archiving .pio/build/teleinfo32s2/libFrameworkArduino.a
                  Indexing .pio/build/teleinfo32s2/libFrameworkArduino.a
                  Linking .pio/build/teleinfo32s2/firmware.elf
                  /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                  /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                  <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                  collect2: error: ld returned 1 exit status
                  *** [.pio/build/teleinfo32s2/firmware.elf] Error 1
                  ============================================================================================================================= [FAILED] Took 52.68 seconds =============================================================================================================================
                  
                  Environment    Status    Duration
                  -------------  --------  ------------
                  teleinfo32s2   FAILED    00:00:52.682
                  ======================================================================================================================== 1 failed, 0 succeeded in 00:00:52.682 ========================================================================================================================
                  

                  Là je sèche complètement, aucune idée de pourquoi ça fait ça. 😞
                  Vraiment désolé, je sais pas pourquoi je galère à ce point mais je pense pas être très loin de "la vérité"! ^^

                  Nicolas BernaertsN CharlesC 2 Replies Last reply
                  • O Obi_Yoann

                    @Charles said in Tasmota:

                    @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

                    Tout à fait!!! Merci de l'info!!!
                    Flashé et effectivement la barre fonctionne!
                    420c46f7-04ef-43e7-8841-bea6a6d83362-image.png
                    Hélas toujours les checksums, et energy total est "négatif".
                    Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé! 😅
                    En tout cas c'est top, merci!

                    @Nicolas-Bernaerts je suis vraiment désolé d'être aussi pénible mais toujours pas possible de compiler hélas avec la dernière release, j'ai bien tout récupéré et replacé aux bons endroits, mais en 12.1.1 et en 12.2.0 j'ai des erreurs à la toute fin de la compilation.
                    Le script que je passe pour placer tes fichiers aux bons endroits (j'espère) :

                    cp ../tasmota/teleinfo/platformio_override.ini .
                    cp ../tasmota/teleinfo/user_config_override.h tasmota/
                    cp ../tasmota/common/esp8266_16M14M.json boards/
                    cp ../tasmota/teleinfo/xnrg_15_teleinfo.ino tasmota/tasmota_xnrg_energy/
                    cp ../tasmota/teleinfo/xdrv_01_9_webserver.ino tasmota/tasmota_xdrv_driver/
                    cp ../tasmota/common/xdrv_50_filesystem_cfg_csv.ino tasmota/tasmota_xdrv_driver/
                    cp ../tasmota/common/xdrv_94_ip_address.ino tasmota/tasmota_xdrv_driver/
                    cp ../tasmota/common/xdrv_96_ftp_server.ino tasmota/tasmota_xdrv_driver/
                    cp ../tasmota/common/xdrv_97_tcp_server.ino tasmota/tasmota_xdrv_driver/
                    cp ../tasmota/common/xdrv_98_esp32_board.ino tasmota/tasmota_xdrv_driver/
                    cp ../tasmota/common/xsns_120_timezone.ino tasmota/tasmota_xsns_sensor/
                    unzip ../tasmota/common/FTPClientServer.zip -d lib/default/
                    
                    

                    Mon arborescence :
                    ~/platformio-core/tasmota (ton repo github)
                    ~/platformio-core/Tasmota-12.1.1_MOD (version 12.1.1 avec tes fichiers)
                    ~/platformio-core/Tasmota-12.2.0_MOD (version 12.2.0 avec tes fichiers)
                    Le script ci-dessus je le passe depuis les dossiers Tasmota*_MOD naturellement.
                    Pour la 12.1.1 l'erreur que j'ai :

                    Creating filesystem with content:
                    No files added -> will NOT create littlefs.bin and NOT overwrite fs partition!
                    Unexpected naming conventions in this build environment -> Undefined behavior for further build process!!
                    Expected build environment name like 'tasmota32-whatever-you-want'
                    Will download safeboot binary from URL:
                    http://ota.tasmota.com/tasmota32/release/teleinfo32s2-safeboot.bin
                    safeboot binary written to variants dir.
                        Offset | File
                     -  0x1000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin
                     -  0x8000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/partitions.bin
                     -  0xe000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin
                     -  0x10000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin
                     - 0xe0000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/firmware.bin
                    usage: esptool merge_bin [-h] --output OUTPUT [--format {r,a,w}]
                                             [--flash_freq {keep,80m,60m,48m,40m,30m,26m,24m,20m,16m,15m,12m}]
                                             [--flash_mode {keep,qio,qout,dio,dout}]
                                             [--flash_size FLASH_SIZE]
                                             [--spi-connection SPI_CONNECTION]
                                             [--target-offset TARGET_OFFSET]
                                             [--fill-flash-size FILL_FLASH_SIZE]
                                             <address> <filename> [<address> <filename> ...]
                    esptool merge_bin: error: argument <address> <filename>: [Errno 2] No such file or directory: '/home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin'
                    *** [.pio/build/teleinfo32s2/firmware.bin] Explicit exit, status 2
                    ============================================================================================================================= [FAILED] Took 46.89 seconds =============================================================================================================================
                    
                    Environment    Status    Duration
                    -------------  --------  ------------
                    teleinfo32s2   FAILED    00:00:46.890
                    ======================================================================================================================== 1 failed, 0 succeeded in 00:00:46.890 ========================================================================================================================
                    

                    J'ai regardé dans le dossier mentionné, je n'ai effectivement pas ce fichier mais un autre :

                    (platformio-core) yoann@powerripper:~/platformio-core/Tasmota-12.1.1_MOD$ ls ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/
                    teleinfo32s2-safeboot.bin
                    

                    teleinfo32s2 au lieu de tasmota32s2, aucune idée de pourquoi!
                    Avant de compiler teleinfo32s2, et avant d'incorporer tes fichiers via mon script, j'avais compilé avec succès tasmota32s2 depuis ce même dossier Tasmota-12.1.1_MOD (puis j'ai purgé les dossier .cache et .pio).

                    Pour la version 12.2.0 :

                    Compiling .pio/build/teleinfo32s2/FrameworkArduino/stdlib_noniso.c.o
                    Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_pulse.c.o
                    Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_shift.c.o
                    Archiving .pio/build/teleinfo32s2/libFrameworkArduino.a
                    Indexing .pio/build/teleinfo32s2/libFrameworkArduino.a
                    Linking .pio/build/teleinfo32s2/firmware.elf
                    /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                    /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                    <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                    collect2: error: ld returned 1 exit status
                    *** [.pio/build/teleinfo32s2/firmware.elf] Error 1
                    ============================================================================================================================= [FAILED] Took 52.68 seconds =============================================================================================================================
                    
                    Environment    Status    Duration
                    -------------  --------  ------------
                    teleinfo32s2   FAILED    00:00:52.682
                    ======================================================================================================================== 1 failed, 0 succeeded in 00:00:52.682 ========================================================================================================================
                    

                    Là je sèche complètement, aucune idée de pourquoi ça fait ça. 😞
                    Vraiment désolé, je sais pas pourquoi je galère à ce point mais je pense pas être très loin de "la vérité"! ^^

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

                    @Obi_Yoann Hello,
                    En fait il faut compiler au préalable tasmota32s2 en version fastboot. Il l'utilise au moment de la compilation pour générer l'image .firmware.bin

                    • soit tu la compiles avec le projet tasmota officiel
                    • soit tu la récupères depuis le download de tasmota. Tu la places ensuite là où il l'attend ... et cela devrait rouler.

                    Je te confirme que la 1ere compilation d'une cible esp32 est toujours galère 😔

                    O 1 Reply Last reply
                    • O Obi_Yoann

                      @Charles said in Tasmota:

                      @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

                      Tout à fait!!! Merci de l'info!!!
                      Flashé et effectivement la barre fonctionne!
                      420c46f7-04ef-43e7-8841-bea6a6d83362-image.png
                      Hélas toujours les checksums, et energy total est "négatif".
                      Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé! 😅
                      En tout cas c'est top, merci!

                      @Nicolas-Bernaerts je suis vraiment désolé d'être aussi pénible mais toujours pas possible de compiler hélas avec la dernière release, j'ai bien tout récupéré et replacé aux bons endroits, mais en 12.1.1 et en 12.2.0 j'ai des erreurs à la toute fin de la compilation.
                      Le script que je passe pour placer tes fichiers aux bons endroits (j'espère) :

                      cp ../tasmota/teleinfo/platformio_override.ini .
                      cp ../tasmota/teleinfo/user_config_override.h tasmota/
                      cp ../tasmota/common/esp8266_16M14M.json boards/
                      cp ../tasmota/teleinfo/xnrg_15_teleinfo.ino tasmota/tasmota_xnrg_energy/
                      cp ../tasmota/teleinfo/xdrv_01_9_webserver.ino tasmota/tasmota_xdrv_driver/
                      cp ../tasmota/common/xdrv_50_filesystem_cfg_csv.ino tasmota/tasmota_xdrv_driver/
                      cp ../tasmota/common/xdrv_94_ip_address.ino tasmota/tasmota_xdrv_driver/
                      cp ../tasmota/common/xdrv_96_ftp_server.ino tasmota/tasmota_xdrv_driver/
                      cp ../tasmota/common/xdrv_97_tcp_server.ino tasmota/tasmota_xdrv_driver/
                      cp ../tasmota/common/xdrv_98_esp32_board.ino tasmota/tasmota_xdrv_driver/
                      cp ../tasmota/common/xsns_120_timezone.ino tasmota/tasmota_xsns_sensor/
                      unzip ../tasmota/common/FTPClientServer.zip -d lib/default/
                      
                      

                      Mon arborescence :
                      ~/platformio-core/tasmota (ton repo github)
                      ~/platformio-core/Tasmota-12.1.1_MOD (version 12.1.1 avec tes fichiers)
                      ~/platformio-core/Tasmota-12.2.0_MOD (version 12.2.0 avec tes fichiers)
                      Le script ci-dessus je le passe depuis les dossiers Tasmota*_MOD naturellement.
                      Pour la 12.1.1 l'erreur que j'ai :

                      Creating filesystem with content:
                      No files added -> will NOT create littlefs.bin and NOT overwrite fs partition!
                      Unexpected naming conventions in this build environment -> Undefined behavior for further build process!!
                      Expected build environment name like 'tasmota32-whatever-you-want'
                      Will download safeboot binary from URL:
                      http://ota.tasmota.com/tasmota32/release/teleinfo32s2-safeboot.bin
                      safeboot binary written to variants dir.
                          Offset | File
                       -  0x1000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin
                       -  0x8000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/partitions.bin
                       -  0xe000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin
                       -  0x10000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin
                       - 0xe0000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/firmware.bin
                      usage: esptool merge_bin [-h] --output OUTPUT [--format {r,a,w}]
                                               [--flash_freq {keep,80m,60m,48m,40m,30m,26m,24m,20m,16m,15m,12m}]
                                               [--flash_mode {keep,qio,qout,dio,dout}]
                                               [--flash_size FLASH_SIZE]
                                               [--spi-connection SPI_CONNECTION]
                                               [--target-offset TARGET_OFFSET]
                                               [--fill-flash-size FILL_FLASH_SIZE]
                                               <address> <filename> [<address> <filename> ...]
                      esptool merge_bin: error: argument <address> <filename>: [Errno 2] No such file or directory: '/home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin'
                      *** [.pio/build/teleinfo32s2/firmware.bin] Explicit exit, status 2
                      ============================================================================================================================= [FAILED] Took 46.89 seconds =============================================================================================================================
                      
                      Environment    Status    Duration
                      -------------  --------  ------------
                      teleinfo32s2   FAILED    00:00:46.890
                      ======================================================================================================================== 1 failed, 0 succeeded in 00:00:46.890 ========================================================================================================================
                      

                      J'ai regardé dans le dossier mentionné, je n'ai effectivement pas ce fichier mais un autre :

                      (platformio-core) yoann@powerripper:~/platformio-core/Tasmota-12.1.1_MOD$ ls ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/
                      teleinfo32s2-safeboot.bin
                      

                      teleinfo32s2 au lieu de tasmota32s2, aucune idée de pourquoi!
                      Avant de compiler teleinfo32s2, et avant d'incorporer tes fichiers via mon script, j'avais compilé avec succès tasmota32s2 depuis ce même dossier Tasmota-12.1.1_MOD (puis j'ai purgé les dossier .cache et .pio).

                      Pour la version 12.2.0 :

                      Compiling .pio/build/teleinfo32s2/FrameworkArduino/stdlib_noniso.c.o
                      Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_pulse.c.o
                      Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_shift.c.o
                      Archiving .pio/build/teleinfo32s2/libFrameworkArduino.a
                      Indexing .pio/build/teleinfo32s2/libFrameworkArduino.a
                      Linking .pio/build/teleinfo32s2/firmware.elf
                      /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                      /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                      <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                      collect2: error: ld returned 1 exit status
                      *** [.pio/build/teleinfo32s2/firmware.elf] Error 1
                      ============================================================================================================================= [FAILED] Took 52.68 seconds =============================================================================================================================
                      
                      Environment    Status    Duration
                      -------------  --------  ------------
                      teleinfo32s2   FAILED    00:00:52.682
                      ======================================================================================================================== 1 failed, 0 succeeded in 00:00:52.682 ========================================================================================================================
                      

                      Là je sèche complètement, aucune idée de pourquoi ça fait ça. 😞
                      Vraiment désolé, je sais pas pourquoi je galère à ce point mais je pense pas être très loin de "la vérité"! ^^

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

                      @Obi_Yoann said in Tasmota:

                      Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé!

                      En fait c'était buggué le contrat en historique est en Ampères et en standard en KVA donc ça affichait 6A au lieu de 6KVA (ce qui fait 30A) donc maintenant c'est correct.

                      energy total est "négatif

                      tu as bien fait un reset du compteur d'énergie? ca m'est arrivé au début puis ça à disparu il est possible que j'ai un bug mais j'ai regardé ce qu'a fait @Nicolas-Bernaerts je n'ai pas vu de différence, si il a un oeil expert sur le sujet je suis preneur.

                      Hélas toujours les checksum

                      Peux-tu essayer le programme de test ESP32 Passthru, ça se compile et flash avec l'Arduino IDE (board ESP32 type Denky)

                      Nicolas BernaertsN 1 Reply Last reply
                      • Nicolas BernaertsN Nicolas Bernaerts

                        @Obi_Yoann Hello,
                        En fait il faut compiler au préalable tasmota32s2 en version fastboot. Il l'utilise au moment de la compilation pour générer l'image .firmware.bin

                        • soit tu la compiles avec le projet tasmota officiel
                        • soit tu la récupères depuis le download de tasmota. Tu la places ensuite là où il l'attend ... et cela devrait rouler.

                        Je te confirme que la 1ere compilation d'une cible esp32 est toujours galère 😔

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

                        @Nicolas-Bernaerts YES!
                        J'ai réussi à compiler la version 12.1.1 avec cette technique! 👍🏻
                        Pas possible de compiler la cible tasmota32s2 avec tes fichiers présents, j'ai une erreur sur un include incorrect :

                        Indexing .pio/build/tasmota32s2/lib8be/libWire.a
                        Archiving .pio/build/tasmota32s2/liba79/libAdafruit_CCS811-1.0.0.14.a
                        Indexing .pio/build/tasmota32s2/liba79/libAdafruit_CCS811-1.0.0.14.a
                        Archiving .pio/build/tasmota32s2/lib345/libSPI.a
                        Indexing .pio/build/tasmota32s2/lib345/libSPI.a
                        /home/yoann/platformio-core/Tasmota-12.1.1_MOD/tasmota/tasmota_xdrv_driver/xdrv_17_rcswitch.ino:44:10: fatal error: RCSwitch.h: No such file or directory
                        
                        ******************************************************************
                        * Looking for RCSwitch.h dependency? Check our library registry!
                        *
                        * CLI  > platformio lib search "header:RCSwitch.h"
                        * Web  > https://registry.platformio.org/search?q=header:RCSwitch.h
                        *
                        ******************************************************************
                        
                         #include <RCSwitch.h>
                                  ^~~~~~~~~~~~
                        compilation terminated.
                        Archiving .pio/build/tasmota32s2/lib5c1/libAdafruit_MAX31865-1.1.0-custom
                        Indexing .pio/build/tasmota32s2/lib5c1/libAdafruit_MAX31865-1.1.0-custom
                        Archiving .pio/build/tasmota32s2/lib325/libAdafruit_MCP9808_Tasmota.a
                        Indexing .pio/build/tasmota32s2/lib325/libAdafruit_MCP9808_Tasmota.a
                        Archiving .pio/build/tasmota32s2/lib628/libAdafruit_SGP30-1.2.0.a
                        Indexing .pio/build/tasmota32s2/lib628/libAdafruit_SGP30-1.2.0.a
                        

                        A la place j'ai téléchargé dans le dossier ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/ le fichier http://ota.tasmota.com/tasmota32/release/tasmota32s2-safeboot.bin et relancé la compilation de teleinfo32s2, je confirme que ça fonctionne...
                        Bref, j'ai pu compiler la version 12.1.1 c'est déjà cool! Merci de ton aide!
                        J'essaierais plus tard de regarder pourquoi ça foire avec la 12.2.0, il y a du y avoir une évolution importante sur cette version.

                        @Charles mais c'est TRES juste ce que tu dis ma foi! Encore une défaillance de mes yeux, je n'avais même pas remarqué! ^^

                        Je vais tenter le reset, je l'avais essayé sur une ancienne version mais pas sur la dernière.

                        Je vais aussi tenter l'ESP32 Passthru dont tu parles, mais ça implique un pc pas loin du compteur j'imagine j'ai juste?

                        CharlesC 1 Reply Last reply
                        • O Offline
                          O Offline
                          Obi_Yoann
                          wrote on last edited by Obi_Yoann
                          #361

                          @Nicolas-Bernaerts je reviens sur le sujet compilation de la 12.1.1, a priori le plus simple serait de renommer la cible, au lieu de teleinfo32s2 j'ai changé en tasmota32s2-ticnb et ça compile direct sans manipulation, et sans devoir placer une fichier manuellement... Plutôt cool! Pas encore trouvé de solution pour la 12.2.0...

                          EDIT : ok j'ai la raison de l'erreur lors de la compilation en 12.2.0.
                          Pour rappel j'ai ce message lors de la phase "linking" en fin de compilation :

                          Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/stdlib_noniso.c.o
                          Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_pulse.c.o
                          Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_shift.c.o
                          Archiving .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                          Indexing .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                          Linking .pio/build/tasmota32s2-ticnb/firmware.elf
                          /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                          /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                          <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                          collect2: error: ld returned 1 exit status
                          *** [.pio/build/tasmota32s2-ticnb/firmware.elf] Error 1
                          ============================================================================================================================= [FAILED] Took 57.43 seconds =============================================================================================================================
                          
                          Environment        Status    Duration
                          -----------------  --------  ------------
                          tasmota32s2-ticnb  FAILED    00:00:57.428
                          ======================================================================================================================== 1 failed, 0 succeeded in 00:00:57.428 ========================================================================================================================
                          

                          Le problème concerne effectivement la fonction ESP_getFlashChipRealSize, appelée dans le fichier xdrv_01_9_webserver.ino ligne 2453 :
                          WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP_getFlashChipRealSize() / 1024);

                          Le problème c'est qu'entre la 12.1.1 et la 12.2.0, la déclaration de cette fonction a sauté dans le fichier ./tasmota/tasmota_support/support_esp.ino !
                          Elle est bien déclarée mais uniquement dans une section ESP8266, plus dans la section ESP32.
                          A priori c'est le commit 452c6fabb05f5700e59c4d9bb90eb4b0cafada47 du 17 septembre : https://github.com/arendst/Tasmota/commit/452c6fabb05f5700e59c4d9bb90eb4b0cafada47
                          d5a99825-6b14-440f-9379-74a4d83ce052-image.png

                          Si je comprends l'évolution suivante :
                          75acc9e1-bdb1-424a-bf97-dc323b7d8825-image.png
                          Il faudrait probablement faire une modification similaire... 🙂

                          EDIT 2 :
                          f029274f-20b8-4179-8dcd-7a98d449c564-image.png
                          Et la lumière fut! 😎
                          J'ai modifié la ligne 2453 du fichier ./tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino comme suivant :

                          WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP.getFlashChipSize() / 1024);
                          
                          Nicolas BernaertsN 2 Replies Last reply
                          • O Obi_Yoann

                            @Nicolas-Bernaerts je reviens sur le sujet compilation de la 12.1.1, a priori le plus simple serait de renommer la cible, au lieu de teleinfo32s2 j'ai changé en tasmota32s2-ticnb et ça compile direct sans manipulation, et sans devoir placer une fichier manuellement... Plutôt cool! Pas encore trouvé de solution pour la 12.2.0...

                            EDIT : ok j'ai la raison de l'erreur lors de la compilation en 12.2.0.
                            Pour rappel j'ai ce message lors de la phase "linking" en fin de compilation :

                            Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/stdlib_noniso.c.o
                            Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_pulse.c.o
                            Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_shift.c.o
                            Archiving .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                            Indexing .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                            Linking .pio/build/tasmota32s2-ticnb/firmware.elf
                            /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                            /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                            <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                            collect2: error: ld returned 1 exit status
                            *** [.pio/build/tasmota32s2-ticnb/firmware.elf] Error 1
                            ============================================================================================================================= [FAILED] Took 57.43 seconds =============================================================================================================================
                            
                            Environment        Status    Duration
                            -----------------  --------  ------------
                            tasmota32s2-ticnb  FAILED    00:00:57.428
                            ======================================================================================================================== 1 failed, 0 succeeded in 00:00:57.428 ========================================================================================================================
                            

                            Le problème concerne effectivement la fonction ESP_getFlashChipRealSize, appelée dans le fichier xdrv_01_9_webserver.ino ligne 2453 :
                            WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP_getFlashChipRealSize() / 1024);

                            Le problème c'est qu'entre la 12.1.1 et la 12.2.0, la déclaration de cette fonction a sauté dans le fichier ./tasmota/tasmota_support/support_esp.ino !
                            Elle est bien déclarée mais uniquement dans une section ESP8266, plus dans la section ESP32.
                            A priori c'est le commit 452c6fabb05f5700e59c4d9bb90eb4b0cafada47 du 17 septembre : https://github.com/arendst/Tasmota/commit/452c6fabb05f5700e59c4d9bb90eb4b0cafada47
                            d5a99825-6b14-440f-9379-74a4d83ce052-image.png

                            Si je comprends l'évolution suivante :
                            75acc9e1-bdb1-424a-bf97-dc323b7d8825-image.png
                            Il faudrait probablement faire une modification similaire... 🙂

                            EDIT 2 :
                            f029274f-20b8-4179-8dcd-7a98d449c564-image.png
                            Et la lumière fut! 😎
                            J'ai modifié la ligne 2453 du fichier ./tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino comme suivant :

                            WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP.getFlashChipSize() / 1024);
                            
                            Nicolas BernaertsN Offline
                            Nicolas BernaertsN Offline
                            Nicolas Bernaerts
                            wrote on last edited by
                            #362

                            @Obi_Yoann très smart ...
                            Je vais tester avec la 12.2
                            Si cela fonctionne, je change le nom de la destination.

                            1 Reply Last reply
                            • O Obi_Yoann

                              @Nicolas-Bernaerts YES!
                              J'ai réussi à compiler la version 12.1.1 avec cette technique! 👍🏻
                              Pas possible de compiler la cible tasmota32s2 avec tes fichiers présents, j'ai une erreur sur un include incorrect :

                              Indexing .pio/build/tasmota32s2/lib8be/libWire.a
                              Archiving .pio/build/tasmota32s2/liba79/libAdafruit_CCS811-1.0.0.14.a
                              Indexing .pio/build/tasmota32s2/liba79/libAdafruit_CCS811-1.0.0.14.a
                              Archiving .pio/build/tasmota32s2/lib345/libSPI.a
                              Indexing .pio/build/tasmota32s2/lib345/libSPI.a
                              /home/yoann/platformio-core/Tasmota-12.1.1_MOD/tasmota/tasmota_xdrv_driver/xdrv_17_rcswitch.ino:44:10: fatal error: RCSwitch.h: No such file or directory
                              
                              ******************************************************************
                              * Looking for RCSwitch.h dependency? Check our library registry!
                              *
                              * CLI  > platformio lib search "header:RCSwitch.h"
                              * Web  > https://registry.platformio.org/search?q=header:RCSwitch.h
                              *
                              ******************************************************************
                              
                               #include <RCSwitch.h>
                                        ^~~~~~~~~~~~
                              compilation terminated.
                              Archiving .pio/build/tasmota32s2/lib5c1/libAdafruit_MAX31865-1.1.0-custom
                              Indexing .pio/build/tasmota32s2/lib5c1/libAdafruit_MAX31865-1.1.0-custom
                              Archiving .pio/build/tasmota32s2/lib325/libAdafruit_MCP9808_Tasmota.a
                              Indexing .pio/build/tasmota32s2/lib325/libAdafruit_MCP9808_Tasmota.a
                              Archiving .pio/build/tasmota32s2/lib628/libAdafruit_SGP30-1.2.0.a
                              Indexing .pio/build/tasmota32s2/lib628/libAdafruit_SGP30-1.2.0.a
                              

                              A la place j'ai téléchargé dans le dossier ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/ le fichier http://ota.tasmota.com/tasmota32/release/tasmota32s2-safeboot.bin et relancé la compilation de teleinfo32s2, je confirme que ça fonctionne...
                              Bref, j'ai pu compiler la version 12.1.1 c'est déjà cool! Merci de ton aide!
                              J'essaierais plus tard de regarder pourquoi ça foire avec la 12.2.0, il y a du y avoir une évolution importante sur cette version.

                              @Charles mais c'est TRES juste ce que tu dis ma foi! Encore une défaillance de mes yeux, je n'avais même pas remarqué! ^^

                              Je vais tenter le reset, je l'avais essayé sur une ancienne version mais pas sur la dernière.

                              Je vais aussi tenter l'ESP32 Passthru dont tu parles, mais ça implique un pc pas loin du compteur j'imagine j'ai juste?

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

                              @Obi_Yoann said in Tasmota:

                              Je vais aussi tenter l'ESP32 Passthru dont tu parles, mais ça implique un pc pas loin du compteur j'imagine j'ai juste?

                              yes un portable quelconque avec une console série 🙂

                              1 Reply Last reply
                              • CharlesC Charles

                                @Obi_Yoann said in Tasmota:

                                Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé!

                                En fait c'était buggué le contrat en historique est en Ampères et en standard en KVA donc ça affichait 6A au lieu de 6KVA (ce qui fait 30A) donc maintenant c'est correct.

                                energy total est "négatif

                                tu as bien fait un reset du compteur d'énergie? ca m'est arrivé au début puis ça à disparu il est possible que j'ai un bug mais j'ai regardé ce qu'a fait @Nicolas-Bernaerts je n'ai pas vu de différence, si il a un oeil expert sur le sujet je suis preneur.

                                Hélas toujours les checksum

                                Peux-tu essayer le programme de test ESP32 Passthru, ça se compile et flash avec l'Arduino IDE (board ESP32 type Denky)

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

                                @Charles Hello,
                                Je pense que la différence se situe ligne 2148 et 2149 de teleinfo.ino. De mémoire c'est la différence de modèle de données apparue avec la version 12.1.

                                CharlesC 1 Reply Last reply
                                • O Obi_Yoann

                                  @Nicolas-Bernaerts je reviens sur le sujet compilation de la 12.1.1, a priori le plus simple serait de renommer la cible, au lieu de teleinfo32s2 j'ai changé en tasmota32s2-ticnb et ça compile direct sans manipulation, et sans devoir placer une fichier manuellement... Plutôt cool! Pas encore trouvé de solution pour la 12.2.0...

                                  EDIT : ok j'ai la raison de l'erreur lors de la compilation en 12.2.0.
                                  Pour rappel j'ai ce message lors de la phase "linking" en fin de compilation :

                                  Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/stdlib_noniso.c.o
                                  Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_pulse.c.o
                                  Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_shift.c.o
                                  Archiving .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                                  Indexing .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                                  Linking .pio/build/tasmota32s2-ticnb/firmware.elf
                                  /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                                  /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                                  <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                                  collect2: error: ld returned 1 exit status
                                  *** [.pio/build/tasmota32s2-ticnb/firmware.elf] Error 1
                                  ============================================================================================================================= [FAILED] Took 57.43 seconds =============================================================================================================================
                                  
                                  Environment        Status    Duration
                                  -----------------  --------  ------------
                                  tasmota32s2-ticnb  FAILED    00:00:57.428
                                  ======================================================================================================================== 1 failed, 0 succeeded in 00:00:57.428 ========================================================================================================================
                                  

                                  Le problème concerne effectivement la fonction ESP_getFlashChipRealSize, appelée dans le fichier xdrv_01_9_webserver.ino ligne 2453 :
                                  WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP_getFlashChipRealSize() / 1024);

                                  Le problème c'est qu'entre la 12.1.1 et la 12.2.0, la déclaration de cette fonction a sauté dans le fichier ./tasmota/tasmota_support/support_esp.ino !
                                  Elle est bien déclarée mais uniquement dans une section ESP8266, plus dans la section ESP32.
                                  A priori c'est le commit 452c6fabb05f5700e59c4d9bb90eb4b0cafada47 du 17 septembre : https://github.com/arendst/Tasmota/commit/452c6fabb05f5700e59c4d9bb90eb4b0cafada47
                                  d5a99825-6b14-440f-9379-74a4d83ce052-image.png

                                  Si je comprends l'évolution suivante :
                                  75acc9e1-bdb1-424a-bf97-dc323b7d8825-image.png
                                  Il faudrait probablement faire une modification similaire... 🙂

                                  EDIT 2 :
                                  f029274f-20b8-4179-8dcd-7a98d449c564-image.png
                                  Et la lumière fut! 😎
                                  J'ai modifié la ligne 2453 du fichier ./tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino comme suivant :

                                  WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP.getFlashChipSize() / 1024);
                                  
                                  Nicolas BernaertsN Offline
                                  Nicolas BernaertsN Offline
                                  Nicolas Bernaerts
                                  wrote on last edited by Nicolas Bernaerts
                                  #365

                                  @Obi_Yoann hello,
                                  Bien joué !
                                  En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                                  #ifdef EXTENSION_NAME
                                  "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                                  #endif

                                  Cela me permet entre autre d'avoir la version de build dans la home page.

                                  Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

                                  O 1 Reply Last reply
                                  • Nicolas BernaertsN Nicolas Bernaerts

                                    @Charles Hello,
                                    Je pense que la différence se situe ligne 2148 et 2149 de teleinfo.ino. De mémoire c'est la différence de modèle de données apparue avec la version 12.1.

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

                                    @Nicolas-Bernaerts said in Tasmota:

                                    @Charles Hello,
                                    Je pense que la différence se situe ligne 2148 et 2149 de teleinfo.ino. De mémoire c'est la différence de modèle de données apparue avec la version 12.1.

                                    Hello, merci de ta réponse effectivement je faisais

                                    Energy.import_active[0] = (float)total/1000.0f;
                                    EnergyUpdateTotal();
                                    

                                    Je vais essayer avec

                                    Energy.total[0] = (float) total / 1000.0f;
                                    Energy.import_active[0] = Energy.total[0];
                                    

                                    du coups tu confirmes tu n'appelles jamais EnergyUpdateTotal() ?

                                    Edit ah si pardon, c'est pas super clair pour moi de ce qui doit être fait et quand, et j'ai pas trouvé de doc sur le module energy de tasmota

                                    Nicolas BernaertsN 1 Reply Last reply
                                    • Nicolas BernaertsN Nicolas Bernaerts

                                      @Obi_Yoann hello,
                                      Bien joué !
                                      En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                                      #ifdef EXTENSION_NAME
                                      "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                                      #endif

                                      Cela me permet entre autre d'avoir la version de build dans la home page.

                                      Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

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

                                      @Nicolas-Bernaerts said in Tasmota:

                                      @Obi_Yoann hello,
                                      Bien joué !
                                      En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                                      #ifdef EXTENSION_NAME
                                      "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                                      #endif

                                      Cela me permet entre autre d'avoir la version de build dans la home page.

                                      Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

                                      Effectivement c'est bien plus simple et propre! Modification faite et compilée chez moi, ras nickel.
                                      Pour info petit script berry pour cette version pour la remontée vers emoncms :

                                      import json
                                      
                                      var api_url = "http://192.168.xxx.xxx/input/post"
                                      var api_key = "xxx"
                                      var node_name = "ENERGY"
                                      
                                      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)
                                        # Convert map to json
                                        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, param) 
                                      end
                                      
                                      # Callback on each MQTT interception
                                      tasmota.add_rule("METER",rule_tic)
                                      tasmota.add_rule("ENERGY",rule_tic)
                                      

                                      Cela transmets à emoncms deux objets, METER en fonction du délai de journalisation (par défaut 300s/5mn), et ENERGY apparemment à chaque trame reçue du TIC (si je dis pas de bêtise).
                                      Voici ce qui est envoyé pour ENERGY :
                                      c63a4a8a-9b8d-4d86-b1db-cceedad41a44-image.png
                                      Et pour METER :
                                      34444e5d-63a3-43b4-9cf0-858d1101c104-image.png
                                      La puissance souscrite utilisée pour calculer le "LOAD" et règler la couleur de la led n'est hélas présent que dans l'objet "METER", du coup que toutes les 5mn (ou moins si on règle moins).
                                      C'est une alternative qui peut être intéressante quand on est une buse comme moi en MQTT et pas fichu de comprendre comment faire pour envoyer les données de Tasmota vers emoncms via MQTT!!! 🤣

                                      CharlesC Nicolas BernaertsN 2 Replies Last reply
                                      • O Obi_Yoann

                                        @Nicolas-Bernaerts said in Tasmota:

                                        @Obi_Yoann hello,
                                        Bien joué !
                                        En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                                        #ifdef EXTENSION_NAME
                                        "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                                        #endif

                                        Cela me permet entre autre d'avoir la version de build dans la home page.

                                        Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

                                        Effectivement c'est bien plus simple et propre! Modification faite et compilée chez moi, ras nickel.
                                        Pour info petit script berry pour cette version pour la remontée vers emoncms :

                                        import json
                                        
                                        var api_url = "http://192.168.xxx.xxx/input/post"
                                        var api_key = "xxx"
                                        var node_name = "ENERGY"
                                        
                                        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)
                                          # Convert map to json
                                          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, param) 
                                        end
                                        
                                        # Callback on each MQTT interception
                                        tasmota.add_rule("METER",rule_tic)
                                        tasmota.add_rule("ENERGY",rule_tic)
                                        

                                        Cela transmets à emoncms deux objets, METER en fonction du délai de journalisation (par défaut 300s/5mn), et ENERGY apparemment à chaque trame reçue du TIC (si je dis pas de bêtise).
                                        Voici ce qui est envoyé pour ENERGY :
                                        c63a4a8a-9b8d-4d86-b1db-cceedad41a44-image.png
                                        Et pour METER :
                                        34444e5d-63a3-43b4-9cf0-858d1101c104-image.png
                                        La puissance souscrite utilisée pour calculer le "LOAD" et règler la couleur de la led n'est hélas présent que dans l'objet "METER", du coup que toutes les 5mn (ou moins si on règle moins).
                                        C'est une alternative qui peut être intéressante quand on est une buse comme moi en MQTT et pas fichu de comprendre comment faire pour envoyer les données de Tasmota vers emoncms via MQTT!!! 🤣

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

                                        @Obi_Yoann tu as levé un point sur lequel j'ai eu une discussion avec @Barbu-Dor cet après midi. Le berry que j'ai mis en exemple est pas bon, je m'explique le

                                        tasmota.add_rule("TIC",rule_tic)
                                        

                                        que j'avais mis ne tient pas compte du skip (c'est fait comme ça en fait) donc toutes les trames tu post emoncms genre tt les secondes, tu satures le tout et c'est pour ça que j'avais des soucis et de checksum aussi (tu m'étonnes), je ne sais pas comment se comporte la version METER ou ENERGY à tester

                                        J'ai réglé ce problème autrement dans le berry à chaque trame j'update les valeurs et je poste seulement toutes les 15s ça donne un truc comme ça beaucoup plus efficace et un payload bien plus light (avec le LOAD).

                                        import json
                                        var node_name = "maison"
                                        var post_every = 15000
                                        var payload = {}
                                        
                                        def send_emoncms()
                                          # Convert JSON object to string 
                                          var obj_json = json.dump(payload)
                                          #print(obj_json) 
                                        
                                          # 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) 
                                          tasmota.set_timer(post_every, send_emoncms)
                                        end
                                        
                                        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})
                                        #  tasmota.set_timer(200, led_off)
                                        end
                                        
                                        def led_off()
                                          var channels = [0, 0, 0]
                                          light.set({"channels":channels, "power":true})
                                        end
                                        
                                        def rule_tic(value, trigger)
                                          # Calculate current percent Load 
                                          var iinst = value['IRMS1']
                                          var isousc= value['PREF']*5
                                          if iinst != nil && isousc != nil 
                                            # Drive RGB LED
                                            setcolor(iinst, isousc)
                                            if isousc > 0
                                              load = 100 * iinst / isousc
                                              payload['LOAD'] = load
                                            end
                                          end
                                          # build the light payload 
                                          # Here I keep name of historique mode
                                          payload['ADCO']  = value['ADSC']
                                          payload['HTOT']  = value['EAST']
                                          payload['HCHP']  = value['EASF01']
                                          payload['HCHC']  = value['EASF02']
                                          payload['ISOUSC']= isousc
                                          payload['PAPP']  = value['SINSTS']
                                          payload['IINST'] = iinst
                                        end
                                        
                                        # Callback on each frame interception
                                        tasmota.add_rule("TIC",rule_tic)
                                        # fire 1st post
                                        tasmota.set_timer(post_every, send_emoncms)
                                        

                                        j'ai aussi un PR en cours pour augmenter la taille du buffer série et régler les soucis de total négatif suite aux conseil de @Nicolas-Bernaerts

                                        1 Reply Last reply
                                        • O Obi_Yoann

                                          @Nicolas-Bernaerts said in Tasmota:

                                          @Obi_Yoann hello,
                                          Bien joué !
                                          En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                                          #ifdef EXTENSION_NAME
                                          "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                                          #endif

                                          Cela me permet entre autre d'avoir la version de build dans la home page.

                                          Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

                                          Effectivement c'est bien plus simple et propre! Modification faite et compilée chez moi, ras nickel.
                                          Pour info petit script berry pour cette version pour la remontée vers emoncms :

                                          import json
                                          
                                          var api_url = "http://192.168.xxx.xxx/input/post"
                                          var api_key = "xxx"
                                          var node_name = "ENERGY"
                                          
                                          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)
                                            # Convert map to json
                                            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, param) 
                                          end
                                          
                                          # Callback on each MQTT interception
                                          tasmota.add_rule("METER",rule_tic)
                                          tasmota.add_rule("ENERGY",rule_tic)
                                          

                                          Cela transmets à emoncms deux objets, METER en fonction du délai de journalisation (par défaut 300s/5mn), et ENERGY apparemment à chaque trame reçue du TIC (si je dis pas de bêtise).
                                          Voici ce qui est envoyé pour ENERGY :
                                          c63a4a8a-9b8d-4d86-b1db-cceedad41a44-image.png
                                          Et pour METER :
                                          34444e5d-63a3-43b4-9cf0-858d1101c104-image.png
                                          La puissance souscrite utilisée pour calculer le "LOAD" et règler la couleur de la led n'est hélas présent que dans l'objet "METER", du coup que toutes les 5mn (ou moins si on règle moins).
                                          C'est une alternative qui peut être intéressante quand on est une buse comme moi en MQTT et pas fichu de comprendre comment faire pour envoyer les données de Tasmota vers emoncms via MQTT!!! 🤣

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

                                          @Obi_Yoann La fréquence d'envoi de METER est paramétrable a travers Configure / Teleinfo.
                                          Tu peux envoyer METER seulement, ENERGY seulement ou les 2 et le faire à chaque Telemetry ou dès que la puissance varie en %.
                                          Si j'ai bien compris, cela devrait régler ton problème.

                                          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


                                          0

                                          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