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. Librairie Téléinfo
  5. Librairie Universelle Pour la Téléinformation

Librairie Universelle Pour la Téléinformation

Scheduled Pinned Locked Moved Librairie Téléinfo
corearduinoesp8266librairiejson
12 Posts 5 Posters 19.3k Views 1 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.
  • M Offline
    M Offline
    mersing
    wrote on last edited by mersing
    #3

    Re,

    Tout fonctionne parfaitement sur un Moteino, jusqu'à l'utilisation de la fonction Radio.

    J'ai pris Arduino_Softserial_Etiquette.ino comme exemple.

    J'ai uniquement ajouter la fonction radio.initialize( RF69_868MHZ, NODEID, NETWORKID ) à la fin de Setup().

    L'execution est bloquée. Rien ne s'affiche.

    Dans la librairie RFM69.cpp, si l'on commente les lignes :

    //do writeReg(REG_SYNCVALUE1, 0xAA); while (readReg(REG_SYNCVALUE1) != 0xAA);
    //do writeReg(REG_SYNCVALUE1, 0x55); while (readReg(REG_SYNCVALUE1) != 0x55);
    //while ((readReg(REG_IRQFLAGS1) & RF_IRQFLAGS1_MODEREADY) == 0x00); // wait for ModeReady

    ca fonctionne à nouveau (la partie Teleinfo, pas la partie radio bien sur).
    La fonction radio.initialize ne bloque plus.

    Une idée de ce qui peut se passer ?

    Cordialement.

    1 Reply Last reply
    • CharlesC Offline
      CharlesC Offline
      Charles
      wrote on last edited by Charles
      #4

      Bonjour,

      Merci pour le commentaire. C'est rigolo quand j'ai développé la librairie je l'ai fait sur un moteino 😉 mais je n'ai pas activé la radio, faudrait que j'essais!
      Mais je ne suis pas surpris que ce çà ne fonctionne pas, le SoftSerial c'est vraiment pas terrible et surtout incompatible avec d'autres librairies. C'est pas sa faute, mais il prends une IRQ à chaque changement d'état sur la pin soft RX, donc çà le travaille pas mal. Quand je vois déjà comment il torpille le millis(), j'imagine avec le moteino et les IRQ (quoique çà peut être asynchrone) çà pourrait marcher
      Il y a 3 solutions pour se sortir de là:

      • Privilégier la liaison Série Hardware, et switcher la pin RX (D0) entre celle de l'adaptateur FTDI pour l'upload la téléinfo une fois le sketch uploadé, ouais je sais, galère!!
      • Passer sur un moteino mega qui a 2 liaisons série hard et utiliser Serial1 pour la téléinfo 😉
      • Activer l'OTA sur le moteino, comme çà les upload se font en RF et la liaison série hard reste disponible pour la téléinfo 😉
      1 Reply Last reply
      • M Offline
        M Offline
        mersing
        wrote on last edited by
        #5

        Bonjour,
        J'ai change de Moteino - Tout fonctionne bien.

        Je dois avoir un probleme HW sur la Moteino précedente: les codes basic RF69 ne fonctionnent pas non plus : bloquent au niveau de radio.initialize.

        Cordialement.

        1 Reply Last reply
        • CharlesC Offline
          CharlesC Offline
          Charles
          wrote on last edited by Charles
          #6

          Ah cool alors 🙂

          j'aime pas trop le initialize de la librairie d'origine de Felix, car justement en cas de problème çà bloque et on ne sait jamais d'ou çà vient.
          Je l'avais déjà modifié pour çà, regarde sur mon git rfm69.cpp la fonction me retourne true si module trouvé ou false si time-out (50ms)

          bool RFM69::initialize(byte freqBand, byte nodeID, byte networkID)
          {
            unsigned long start_to;
            const byte CONFIG[][2] =
            {
              /* 0x01 */ { REG_OPMODE, RF_OPMODE_SEQUENCER_ON | RF_OPMODE_LISTEN_OFF | RF_OPMODE_STANDBY },
              /* 0x02 */ { REG_DATAMODUL, RF_DATAMODUL_DATAMODE_PACKET | RF_DATAMODUL_MODULATIONTYPE_FSK | RF_DATAMODUL_MODULATIONSHAPING_00 }, //no shaping
              /* 0x03 */ { REG_BITRATEMSB, RF_BITRATEMSB_55555}, //default:4.8 KBPS
              /* 0x04 */ { REG_BITRATELSB, RF_BITRATELSB_55555},
              /* 0x05 */ { REG_FDEVMSB, RF_FDEVMSB_50000}, //default:5khz, (FDEV + BitRate/2 <= 500Khz)
              /* 0x06 */ { REG_FDEVLSB, RF_FDEVLSB_50000},
          
              /* 0x07 */ { REG_FRFMSB, (freqBand==RF69_315MHZ ? RF_FRFMSB_315 : (freqBand==RF69_433MHZ ? RF_FRFMSB_433 : (freqBand==RF69_868MHZ ? RF_FRFMSB_868 : RF_FRFMSB_915))) },
              /* 0x08 */ { REG_FRFMID, (freqBand==RF69_315MHZ ? RF_FRFMID_315 : (freqBand==RF69_433MHZ ? RF_FRFMID_433 : (freqBand==RF69_868MHZ ? RF_FRFMID_868 : RF_FRFMID_915))) },
              /* 0x09 */ { REG_FRFLSB, (freqBand==RF69_315MHZ ? RF_FRFLSB_315 : (freqBand==RF69_433MHZ ? RF_FRFLSB_433 : (freqBand==RF69_868MHZ ? RF_FRFLSB_868 : RF_FRFLSB_915))) },
          
              // looks like PA1 and PA2 are not implemented on RFM69W, hence the max output power is 13dBm
              // +17dBm and +20dBm are possible on RFM69HW
              // +13dBm formula: Pout=-18+OutputPower (with PA0 or PA1**)
              // +17dBm formula: Pout=-14+OutputPower (with PA1 and PA2)**
              // +20dBm formula: Pout=-11+OutputPower (with PA1 and PA2)** and high power PA settings (section 3.3.7 in datasheet)
              ///* 0x11 */ { REG_PALEVEL, RF_PALEVEL_PA0_ON | RF_PALEVEL_PA1_OFF | RF_PALEVEL_PA2_OFF | RF_PALEVEL_OUTPUTPOWER_11111},
              ///* 0x13 */ { REG_OCP, RF_OCP_ON | RF_OCP_TRIM_95 }, //over current protection (default is 95mA)
          
              // RXBW defaults are { REG_RXBW, RF_RXBW_DCCFREQ_010 | RF_RXBW_MANT_24 | RF_RXBW_EXP_5} (RxBw: 10.4khz)
              /* 0x19 */ { REG_RXBW, RF_RXBW_DCCFREQ_010 | RF_RXBW_MANT_16 | RF_RXBW_EXP_2 }, //(BitRate < 2 * RxBw)
              //for BR-19200: //* 0x19 */ { REG_RXBW, RF_RXBW_DCCFREQ_010 | RF_RXBW_MANT_24 | RF_RXBW_EXP_3 },
              /* 0x25 */ { REG_DIOMAPPING1, RF_DIOMAPPING1_DIO0_01 }, //DIO0 is the only IRQ we're using
              /* 0x29 */ { REG_RSSITHRESH, 220 }, //must be set to dBm = (-Sensitivity / 2) - default is 0xE4=228 so -114dBm
              ///* 0x2d */ { REG_PREAMBLELSB, RF_PREAMBLESIZE_LSB_VALUE } // default 3 preamble bytes 0xAAAAAA
              /* 0x2e */ { REG_SYNCCONFIG, RF_SYNC_ON | RF_SYNC_FIFOFILL_AUTO | RF_SYNC_SIZE_2 | RF_SYNC_TOL_0 },
              /* 0x2f */ { REG_SYNCVALUE1, 0x2D },      //attempt to make this compatible with sync1 byte of RFM12B lib
              /* 0x30 */ { REG_SYNCVALUE2, networkID }, //NETWORK ID
              /* 0x37 */ { REG_PACKETCONFIG1, RF_PACKET1_FORMAT_VARIABLE | RF_PACKET1_DCFREE_OFF | RF_PACKET1_CRC_ON | RF_PACKET1_CRCAUTOCLEAR_ON | RF_PACKET1_ADRSFILTERING_OFF },
              /* 0x38 */ { REG_PAYLOADLENGTH, 66 }, //in variable length mode: the max frame size, not used in TX
              //* 0x39 */ { REG_NODEADRS, nodeID }, //turned off because we're not using address filtering
              /* 0x3C */ { REG_FIFOTHRESH, RF_FIFOTHRESH_TXSTART_FIFONOTEMPTY | RF_FIFOTHRESH_VALUE }, //TX on FIFO not empty
              /* 0x3d */ { REG_PACKETCONFIG2, RF_PACKET2_RXRESTARTDELAY_2BITS | RF_PACKET2_AUTORXRESTART_ON | RF_PACKET2_AES_OFF }, //RXRESTARTDELAY must match transmitter PA ramp-down time (bitrate dependent)
              //for BR-19200: //* 0x3d */ { REG_PACKETCONFIG2, RF_PACKET2_RXRESTARTDELAY_NONE | RF_PACKET2_AUTORXRESTART_ON | RF_PACKET2_AES_OFF }, //RXRESTARTDELAY must match transmitter PA ramp-down time (bitrate dependent)
              //* 0x6F */ { REG_TESTDAGC, RF_DAGC_CONTINUOUS }, // run DAGC continuously in RX mode
              /* 0x6F */ { REG_TESTDAGC, RF_DAGC_IMPROVED_LOWBETA0 }, // run DAGC continuously in RX mode, recommended default for AfcLowBetaOn=0
              {255, 0}
            };
          
            pinMode(_slaveSelectPin, OUTPUT);
            SPI.begin();
           
            // Set time out to 50ms
            #define TIME_OUT 50
            
            start_to = millis() ;
          
            do 
              writeReg(REG_SYNCVALUE1, 0xaa); 
            while (readReg(REG_SYNCVALUE1) != 0xaa && millis()-start_to < TIME_OUT);
          
            if (millis()-start_to >= TIME_OUT) 
              return (false);
              
            // Set time out 
            start_to = millis()  ;  
            do 
                writeReg(REG_SYNCVALUE1, 0x55);
            while (readReg(REG_SYNCVALUE1) != 0x55 && millis()-start_to < TIME_OUT);
            
            if (millis()-start_to >= TIME_OUT) 
              return (false);
            for (byte i = 0; CONFIG[i][0] != 255; i++)
              writeReg(CONFIG[i][0], CONFIG[i][1]);
          
            // Encryption is persistent between resets and can trip you up during debugging.
            // Disable it during initialization so we always start from a known state.
            encrypt(0);
          
            setHighPower(_isRFM69HW); //called regardless if it's a RFM69W or RFM69HW
            setMode(RF69_MODE_STANDBY);
            // Set time out 
            start_to = millis() ;
          	while (((readReg(REG_IRQFLAGS1) & RF_IRQFLAGS1_MODEREADY) == 0x00) && millis()-start_to < TIME_OUT); // Wait for ModeReady
            if (millis()-start_to >= TIME_OUT) return (false);
            attachInterrupt(_interruptNum, RFM69::isr0, RISING);
          
            selfPointer = this;
            _address = nodeID;
            return true;
          }
          
          
          1 Reply Last reply
          • X Offline
            X Offline
            XxP1asmaxX
            wrote on last edited by
            #7

            Bonjour,

            Je me demandais si il était possible d'utiliser facilement l'ESP8266 et la téléinfo ?? en effet les deux utilise le serial il faudrait donc un softserial et un serial physique ça ne risque pas de poser des problèmes lors de la communication ?

            Merci d'avance !

            1 Reply Last reply
            • CharlesC Offline
              CharlesC Offline
              Charles
              wrote on last edited by
              #8

              Bonjour,

              Oui c'est ce qui est fait avec la carte WifInfo, mais en revanche on perd la serial. J'utilise le TXD1 (la 1/2 uart serial restante) pour le débug.

              J'ai essayé le soft serial (sur l'entrée téléinfo), pas concluant, ça génère tellement d'interruption que ça ralenti le processus.
              Ceci dit, comme on est réseau avec l'ESP rien n'empêche d'utiliser une interface style telnet.

              1 Reply Last reply
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #9
                This post is deleted!
                1 Reply Last reply
                • CharlesC Offline
                  CharlesC Offline
                  Charles
                  wrote on last edited by
                  #10

                  @J6B
                  Merci merci, dans la nouvelle version tous les retours se font en JSON 😉
                  Normalement la 1ere entrée de la liste chainée est vide (histoire de toujours avoir un pointeur en cas de liste vide justement) donc le me->next pointe bien sur la réelle 1ere entrée de la liste. et si la liste est vide le 1er me->next vaut null

                  1 Reply Last reply
                  • F Offline
                    F Offline
                    fred
                    wrote on last edited by
                    #11

                    Bonjour,
                    je m’intéresse aux nouvelles technologies et à la domotique.
                    Je souhaite avoir un relevé de ma conso électrique dans l'environnement Domoticz.
                    Pour se faire après lecture sur différents forums je me suis équipé d'un Arduino Nano et d'un Opto SFH620. Le but de mon installation est de transférer les trames via un RF433.
                    Sur différents forums le montage fonctionne et la remontée d'infos se fait bien via le mode RF433.
                    Le problème me concernant est que je suis en Tempo triphasé et le scripts pour l'Aruino sont écrits pour les monophasé
                    Pensez-vous que votre script peut fonctionner pour un Arduino Nano et un abonnement Tempo triphasé ?
                    Si oui est-il possible de le partager sur le forum "Easydomoticz" pour essayer de l'adapter pour qu'il puisse fonctionner en RF433.
                    Je n'y connais rien en progs d'où peut-être des questions bêtes !!!

                    En tout cas félicitation pour votre travail.

                    Fred

                    1 Reply Last reply
                    • CharlesC Offline
                      CharlesC Offline
                      Charles
                      wrote on last edited by
                      #12

                      @fred
                      Normalement le code dans l'Arduino (donc ça doit marcher sur Nano) ne fait que transmettre les informations.

                      Tu parles de quel code ? quel sketch tu mets dans ton Arduino?

                      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