Emulation Téléinfo



  • Bonjour,

    Est-il facile d'émuler de la téléinfo ?

    En effet, J'ai une wallbox (pour la recharge de voiture électrique) qui est capable de recevoir de la téléinfo, pour adapter sa consommation électrique a ce qui est disponible, pour ne pas faire disjoncter le courant.
    Or, mon compteur est au niveau de la route,, très loin de la wallbox, et je ne peux relier le compteur à la téléinfo de la wallbox.

    J'aimerais donc émuler la téléinfo, pour moi même envoyer à la box des commande pour limiter la consommation d'électricité. (quand le ballon d'eau chaude se met en route, par exemple)

    Tout le monde veut en général juste lire de la téléinfo, j'ai jamais vu le contraire...



  • Tu utilises quoi comme wallbox ? Certaines sont pilotables en plus de la téléinfo.



  • Je devrais recevoir une hager... je sais qu'elle a le tic, mais j'ai rien vu d'autre.



  • Ah oui du commercial, la je ne sais pas. Perso je suis parti sur une OpenEVSE. L'installation est faite et j'attends les cartes électroniques. Pour ce qui est d'émuler le signal, je ne sais pas. Il reste la solution de mettre un compteur au niveau de ton tableau éléectrique.



  • Bonjour,

    avez-vous une prise électrique proche du compteur ? Captez-vous votre wifi domestique au niveau du compteur ?

    Parce que chez moi, j'utilise une astuce pour déporter la téléinfo:
    Niveau compteur, j'ai un circuit électronique téléinfo et un Wemos D1 mini, avec un soft basé sur le travail de Charles. C'est 97% de son code, auquel j'ai ajouté un export "brut" des données. voir ici: https://community.hallard.me/topic/151/ajout-de-l-export-xml-et-brut/

    L'export brut est ensuite "lu" à distance par un second D1 Mini, qui converti cette lecture "wifi" en sortie sur le port série. J'utilise les deux ports série: Le port 'classique' (usb) pour un humain et le port serial1 pour la sortie compatible téléinfo (pas de chaines de caractères, pas de débug, juste la téléinfo)

    Voici le code source du soft 'edf 2 serial':
    Fichier 'config.h'

    #ifndef __CONFIG_H__
    #define __CONFIG_H__
    
    # changer l'IP deux fois ci-dessous. C'est celle de l'autre module
    #define IP "192.168.5.229"
    #define URL "GET /raw  HTTP/1.1\r\nHost: 192.168.5.229\r\nConnection: close\r\n\r\n"
    
    #define DEFAULT_WIFI_SSID   "votre reseau privé"
    #define DEFAULT_WIFI_PASS   "votre pass reseau wifi"
    #define DEFAULT_HOSTNAME    "WifiInfo-to-serial"
    
    #define Debug(x)    Serial.print(x)
    #define Debugln(x)  Serial.println(x)
    #define DebugF(x)   Serial.print(F(x))
    #define DebuglnF(x) Serial.println(F(x))
    #define Debugf(...) Serial.printf(__VA_ARGS__)
    #define Debugflush  Serial.flush
    
    // Teleinfo start and end of frame characters
    #define TINFO_STX 0x02
    #define TINFO_ETX 0x03 
    #define TINFO_SGR '\n' // start of group  
    #define TINFO_EGR '\r' // End of group   
    
    #endif
    

    Fichier 'edf2serial.ino'

    // Include Arduino header
    #include <Arduino.h>
    #include <ESP8266WiFi.h>
    #include <ESP8266WebServer.h>
    #include <ESP8266mDNS.h>
    #include <WiFiUDP.h>
    #include <EEPROM.h>
    #include <Ticker.h>
    
    #include "config.h"
    
    void setup() {
      Serial.begin(115200, SERIAL_8E1);
      Serial1.begin(1200, SERIAL_7E1);
      // se connecter au reseau
      if (WiFi.getMode()!=WIFI_STA) {
          WiFi.mode(WIFI_STA);
          delay(10);
      }
    
      // Get Wifi Status
      int ret = WiFi.status();  
      while ( ret != WL_CONNECTED ) {
        WiFi.begin(DEFAULT_WIFI_SSID, DEFAULT_WIFI_PASS);
        delay(50);
        ret = WiFi.waitForConnectResult();
      }
      DebuglnF("Connected");
      DebugF("IP address   : "); Debugln(WiFi.localIP());
      DebugF("MAC address  : "); Debugln(WiFi.macAddress());  
    }
    
    void loop() {
      WiFiClient client;
      if (!client.connect(IP, 80)) {
        Serial.println("connection failed");
        return;
      }  
      client.print(String(URL));
      delay(100);
      // start trame
      Serial.println("________SOT_____________________");
      Serial.print("\nSTX");
      Serial1.write(TINFO_STX);
      while(client.available()){
        String line = client.readStringUntil('\r');
    
        //Serial.println("________SOL_____________________\r\n");
        line.trim();
        line.replace("\r","");
        line.replace("\n","");
        line.replace(":","");
        line.replace("\"","");
        int sum=0;
    
    // nettoyage des trames erronées
        if ( (line.length()>8) && (! line.startsWith("UPTIME ")) && (! line.startsWith("T ")) && (! line.startsWith("H ")) && (! line.startsWith("200 ")) && (! line.startsWith("Con")) && (! line.startsWith("Acc")) && (! line.startsWith("HTT")) ) {
    
          String checksumSTR = line.substring(line.length()-2);
          char checksum = char(checksumSTR.toInt());
          sum=checksum;      
    
          line = line.substring(0, line.length()-2);
          line = line + String(char(sum));
    
          // start group
          Serial.print("\nSGR");
          // group
          Serial.print(line);      
          // end group
          Serial.print("EGR\r");
          
          Serial1.write(TINFO_SGR);      
          Serial1.print(line);
          Serial1.write(TINFO_EGR);      
         
        }
        //Serial.println("\r\n________EOL_____________________\r\n");    
        
      }
      // end trame
      Serial.print("ETX");
      Serial1.write(TINFO_ETX);  
      Serial.println("________EOT_____________________\r\n");    
      delay(1000); // attente 1s
      
    
    }
    


  • Sinon chez Hager tu as le XEV304 qui fait ce que tu veux. Mais bon c'est un peu cher comparé à un compteur SAGEMCOM que l'on trouve à 40€. Ca prend juste moins de place !



  • justement, je voudrais me faire un XEV304 moi même. (pour éviter de payer 170 euros...)
    Avant d'économiser 170 euros avec les heures creuse, autant charger en HP quand il n'y a pas le chauffe eau, je n'aurais alors aucun risque de disjoncter !

    Pour la borne, j'ai pas eu le choix, c'est une borne offerte par Nissan. Si j'avais du la payer moi même j'aurais pris une OpenEVSE... mais là, c'est gratuit, c'est bête de ne pas en profiter !!!

    @mjeanne , mon problème n'est pas de lire le téléinfo (avec une prise ampèremétrique, je connais déjà ma consommation en temps reel), mais de re-injecté le signal dans la wallbox.

    Je me demande si je dois refaire une porteuse à 50kHz, ou si juste envoyer du signal série ASCII émise à 1200 bits/s, 7 bits/caractères, parité paire, 1 bit de stop depuis une sortie d'un arduino peut suffir.



  • Si tu te mets directement sur l'entrée TIC il faut recréer complètement le signal. Si tu arrive a te pettre après leur circuit de démodulation, le signal numérique sera suffisant. Tout dépend de ce que tu es capable et prêt à faire.
    Pour la petite histoire, Nissan me proposait soit la borne soit un chèque pour le retard de livraison de ma Leaf, j'ai pris le chèque pour une openEVSE et il me reste encore quelques dizaines d'euros...


Log in to reply
 

Looks like your connection to Community Forum was lost, please wait while we try to reconnect.