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

M

Marco40

@Marco40
About
Posts
17
Topics
1
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent

  • Implémentation Tarifs EDF
    M Marco40

    Bonjour

    C'est en grande partie ce que je fait dans mon application
    piloteVmc

    Dans lequel j'ai modifié le logiciel Teleinfo qui affiche les courbes tempo avec le logiciel Hignchart Highstock.

    Marc

    Téléinfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    Bonjour

    J'ai mis mon projet complet sur github qui utilise la libTeleinfo de Charles, ça peux peut-être servir pour d'autres applications.

      le lien est:  (https://github.com/marco402/piloteVMC.git)
    

    Marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    as-tu remplacé sizeof(tabNames) par 38 ?
    Marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    J'ai ajouté un test dans build_emoncms_json au cas ou on a jamais reçu de message teleinfo , dans ce cas j'avais un reboot par le watchdog.

        if(! first_item) 
          // go to next node
         me = me->next;
       //marc
       else
    	   if (me->free) {
    		   //1st item is free : empty list !
    		   Debugln("Teleinfo list is empty !");
    		   break;
    	   }
       //fin marc
        if( ! me->free ) {
    

    C'est le code qui était déjà dans tinfoJSONTable.

    Il faudra voir pour httpRequest si tu as encore un soucis et pour jeedomPost.

    J'ai dimensionné le tableau à 400 et j'ai mis ta modif String(atol(me->value)).

    Github est à jour.

    Marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    Il y a un autre problème, le buffer dimensionné à 136 est trop petit avec les variables ajoutées, je l'ai passé de 136 à 300.

    webClient-->httpPost -->char buffer[300];

    marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    Bonjour Pierre

    J'ai fait une erreur dans la dernière version:
    en fin de webClient.cpp fonction validate_value_name
    Il faut que tu remplace sizeof(tabNames) par 38 ou la nouvelle taille du tableau tabName si tu ajoute des champs(ce que j'ai fait dans la dernière version pour les 4 champs que tu avait indiqué).
    J'ai ajouté par sécurité un ESP.wdtFeed(); en début de build_emoncms_json.

    marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    @mangoose
    Bonjour Pierre

    J'ai corrigé sur Github et j'ai ajouté une classe myTinfo pour sortir les fonctions de Wifinfo.ino.

    Pour ton problème, est-ce lié à ma version ?
    Est ce que le reboot se fait sur l'initialisation ?
    As tu des messages console au moment du reboot (watchdog...)?

    Marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    @mangoose

    Bonjour Pierre,
    Je pense que c'est normal, j'ai bien précisé que le mode standard est à terminer (je n'ai pas encore le linky pour essayer).
    Marc

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    @Marco40
    Bonjour
    J'ai mis une version de Wifinfo/Libteleinfo réorganisée sur github:
    https://github.com/marco402/LibTeleinfo/tree/rewrite-Wifinfo.

    -Je n'ai pas re testé:
    -Les sorties leds(leds.cpp et leds.h),j'ai conservé les fonctions d'origine mais j'ai une autre version avec des leds APA106.
    -Les sortie emoncms,jeedom et httpRequest, fonctions qui sont d'origine à la mise en place des classes près.

    WifInfo

  • Ré-écriture de Wifinfo pour traiter le mode standard du Linky
    M Marco40

    Bonjour Charles
    Je ne sais pas ou vous en êtes dans la réécriture du code, j'ai remanié entièrement wifinfo pour une application perso,
    je pense la mettre plus tard sur github. Je peux déjà vous l'envoyer si ça vous intéresse.
    J'ai mis en place les classes:
    les fonctionnalités présentes dans wifinfo
    -myWifi ajout start stop wifi horaire paramétrés par l'interface web
    -myOta
    -webClient
    -webServer
    -config
    -LibTeleinfo mode standard à terminer(j'ai pas encore le linky)
    -mySyslog version de Dominique DAMBRAIN 2017-07-10
    -ledRGBSerial (pour des APA106)
    ajout
    -myNTP mise à l'heure datation
    -simuTempo simulation de trames tempo (historique)
    -enregistrement enregistrement d'informations (compteur couleur imax...)

    ajouts pour mon application qui pilote la vmc et affiche les couleurs tempo et jour/nuit
    -vmc
    -interRelais
    -buzzer
    -canBus liaison vers un module d'affichage commande + capteur déporté st7735
    -capteur
    -ta12 surveillance du courant vmc
    -dht
    -smt160

    le programme principal
    traitement_tempo.ino

    WifInfo

  • Procédure mise à jour sans fil (OTA) pour WifInfo
    M Marco40

    Bonjour

    J'ai fait une modification pour transférer les fichiers spiffs en OTA à partir de la page html car j'avais une erreur.
    J'ai peut-être un problème de version, je met le code de la modification si ça peux servir:

    	//ajout pour spiffs
    	int command = U_FLASH;
    	if (strstr(upload.filename.c_str(), "spiffs"))
    	{
    		command = U_SPIFFS;
    		//Debugln("command = U_SPIFFS");
    	}
    	//else
    		//Debugln("command = U_FLASH");
    
    
    
    	if (!Update.begin(maxSketchSpace,command))--->ligne 694 modifiée de Wifinfo.ino.
    
    WifInfo wifinfo wifi ota nodemcu esp8266

  • Lecture du Linky via le port série de l'esp8266 .. des particularités ?
    M Marco40

    Bonjour
    J'ai prévu une option de compilation dans libTeleinfo.cpp pour le mode standard , je n'ai pas pus les essayer n'ayant pas encore le linky .
    Je les met si ça peux aider.
    Vous devez avoir le mode affiché sur votre compteur pour savoir si vous êtes en mode standard(9600 bds) ou historique(1200bds).
    -----------------------------dans l'en-tête--------------------------------------

    #define MODE_HISTORIQUE

    -----------------------------dans le setup()---------------------------------------

    #ifdef MODE_HISTORIQUE
    Serial.begin(1200, SERIAL_7E1);
    #else
    Serial.begin(9600, SERIAL_7E1); //5.3.5. Couche physique document enedis Enedis-NOI-CPT_54E.pdf
    #endif

    -----------------------------dans TInfo::checkLine(char * pline) -----------
    //5.3.6. Couche liaison document enedis Enedis-NOI-CPT_54E.pdf
    #ifdef MODE_HISTORIQUE
    if ( *p==' ' && ptok) {
    #else
    if ( *p=='\t' && ptok) { //reste a traiter les champs horodatés
    #endif

    --------------------------dans TInfo::calcChecksum------------------------

    unsigned char TInfo::calcChecksum(char *etiquette, char *valeur)
    {
    uint8_t i;
    #ifdef MODE_HISTORIQUE
    uint8_t sum = ' '; // Somme des codes ASCII du message + un espace
    #else
    uint8_t sum = 0x09; // Somme des codes ASCII du message + un espace
    sum+= 0x09;
    #endif
    // avoid dead loop, always check all is fine
    if (etiquette && valeur) {
    // this will not hurt and may save our life 😉
    if (strlen(etiquette) && strlen(valeur)) {
    while (*etiquette)
    sum += *etiquette++;
    while (*valeur)
    sum += *valeur++;
    #ifdef MODE_HISTORIQUE
    return ((sum & 63) + ' ');
    #else
    return ((sum & 0x3f) + 0x20);
    #endif
    }
    }
    return 0;
    }
    }

    WifInfo

  • Vends kit REMORA 1.3
    M Marco40

    Bonjour

    Si vous les avez encore, pouvez-vous préciser la liste des composants qu'il manque pour faire fonctionner le kit et à quel prix?

    Merci

    Remora

  • Simulation de trames teleInfo par WinInfo.ino
    M Marco40

    @mjeanne
    Vous parlez-donc d'une version wifinfo modifiée? qui réémet les informations reçues de Rx serial vers Tx serial1 au profit d'une box domotique.

    WifInfo

  • Simulation de trames teleInfo par WinInfo.ino
    M Marco40

    Bonjour
    C'est toujours possible mais il faudrait prévoir un relais pour commuter l'entrée série entre la liaison teleinfo ou la simulation.

    WifInfo

  • Simulation de trames teleInfo par WinInfo.ino
    M Marco40

    Je vous colle le code directement, problème avec un fichier.

    #define SIMUTRAMETEMPO

    #ifdef SIMUTRAMETEMPO

    //avec esp12 0.9
    //strapper ces 2 pins:
    //emission sur serial1 esp12-->GPIO2--->TXD1-->D4
    //réception sur serial après le swap-->GPIO13---->RXD2--->D7

    //fonctions calcChecksum de LibTeleinfo modifié
    unsigned char calcChecksum(char *mot)
    {
    unsigned int i;
    unsigned int sum = ' '; // Somme des codes ASCII du message + un espace

    						  // avoid dead loop, always check all is fine 
    if (mot) {
    	// this will not hurt and may save our life ;-)
    	if (strlen(mot)) {
    		while (*mot)
    			sum += *mot++;
    		return ((sum & 63) + ' ');
    	}
    }
    return 0;
    

    }

    /* ======================================================================
    Function: initSimuTrame
    Purpose :
    Input :
    Output : -
    Comments: -
    ====================================================================== */
    int cptChar = 500;
    unsigned long cpt = 0; //max:4294967295
    #define END_STR '\0' // End of group
    #define NBCHAR 23
    #define NBCHAMP 17

    //options supplémentaire du compilateur, ajouter -fpermissive

    //ATTENTION a tabnames de webserver.cpp si version LibTeleinfo-syslog.zip
    char TRAME[][NBCHAR] = { "\x02\0","\rADCO 039801172264 \0", "\rOPTARIF BBR* \0", "\rISOUSC 45 \0",
    "\rBBRHCJB 008078393 \0", "\rBBRHPJB 015766489 \0", "\rBBRHCJW 001256887 \0",
    "\rBBRHPJW 002075407 \0", "\rBBRHCJR 000153905 \0", "\rBBRHPJR 000532607 \0",
    "\rPTEC HCJW \0", "\rDEMAIN BLEU \0", "\rIINST 001 \0","\rIMAX 025 \0",
    "\rHHPHC Y \0","\rMOTDETAT 000000 \0","\x03\0" };
    void initSimuTrameTempo(void)
    {
    for (int i = 1; i < NBCHAMP - 1; i++)
    {
    TRAME[i][0] = TINFO_SGR;
    for (int j = 0; j <NBCHAR; j++)
    {
    if (TRAME[i][j] == END_STR)
    {
    TRAME[i][j] = calcChecksum(&TRAME[i][1]); //CRC
    TRAME[i][j + 1] = TINFO_EGR;
    TRAME[i][j + 2] = END_STR;
    break;
    }
    }
    }
    }
    void emetTrameTempo(void)
    {
    char Etiq[] = "ADCO";
    //mise a jour du compteur
    char buffer[13];
    sprintf(buffer, "%012u", cpt);
    for (int i = 0; i < 12; i++)
    TRAME[1][i + 6] = buffer[i];
    TRAME[1][19] = tinfo.calcChecksum(&Etiq[0], &buffer[0]);
    //emission d'une trame complète
    for (int i = 0; i < NBCHAMP; i++)
    {
    for (int j = 0; j < NBCHAR; j++)
    {
    if (TRAME[i][j] != END_STR)
    Serial1.write(TRAME[i][j]);
    else
    break;
    }
    delay(10);//tempo inter champ
    }
    cpt += 1; //pas de test de débordement...
    delay(10);//tempo intertrame
    }

    #endif //SIMUTRAMETEMPO

    #ifdef SIMUTRAMETEMPO
    //dans setup juste avant Init teleinfo
    Serial1.begin(1200, SERIAL_7E1);
    Serial1.setRxBufferSize(1024);
    initSimuTrameTempo();
    #endif // SIMUTRAMETEMPO

    #ifdef SIMUTRAMETEMPO
    //au début de loop
    cptChar += 1;
    if(cptChar>=500)
    {
    emetTrameTempo();
    cptChar = 0;
    }
    #endif //SIMUTRAMETEMPO

    WifInfo

  • Simulation de trames teleInfo par WinInfo.ino
    M Marco40

    Bonjour,
    j'ai ajouté une option pour simuler des trames teleInfo en bouclant TX serial1 vers Rx serial2.
    Je vous joint 1 fichier avec les modifications à ajouter à WinInfo.ino ainsi qu'un copie décran de l'onglet tinfo associé.
    0_1518804358183_onglet tabinfo .JPG

    [0_1518804378137_modif WinInfo.txt](Envoi en cours 100%)

    WifInfo
  • Login

  • Don't have an account? Register

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