Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
le Multi-Sinus peut il déclencher l'interrupteur differentiel?
#1
Bonjour,

J'expérimente avec un ESP32 et un relai SSR sur la résistance de mon chauffe-eau. Pour le moment. je n'utilise pas le routeur F1ATB (plus tard peut être) mais le projet est une bonne source d'inspiration et d'informations techniques. 

Je possède un compteur d'énergie bidirectionnel Zigbee avec double pince (https://www.zigbee2mqtt.io/devices/PJ-1203A.html). La première pince mesure le réseau EDF et la seconde le chauffe-eau. A priori, tout baigne sauf que le PJ-1203A n'effectue pas ses mesures pendant 1000ms comme le Linky mais pendant une durée sensiblement plus courte (probablement entre 150 et 200ms). Je pensais utiliser le mode train d'ondes avec une trame de 1000ms mais les mesures sont trop chaotiques.      

J'ai donc écrit un petit programme pour expérimenter avec diverses longueurs de trames pour voir lesquelles donnent des mesures stables (a priori, le PJ-1203A fait ses mesures entre 150 et 200 ms).

Mon problème est tout simplement que mon interrupteur différentiel s'est déclenché au cours d'une de mes mesures. A priori, mon câblage est bon, mon installation électrique est récente et je n'utilisais même pas une forte puissance pour mes tests (un appareil à raclette avec un résistance de 450W). Je pense avoir une petite idée de la cause mais j'aimerai avoir confirmation.

Le code source de F1ATB contient la boucle suivante permettant de calculer le Tableau Longueur Pulse et Longueur Trame pour Multi-Sinus de 0 à 100%

Code :
for (int I = 0; I < 101; I++) {
    tabPulseSinusTotal[I] = -1;
    tabPulseSinusOn[I] = -1;
    target = float(I) / 100.0;
    for (int T = 20; T < 101; T++) {
      for (int N = 0; N <= T; N++) {
        if (T % 2 == 1 || N % 2 == 0) {  // Valeurs impair du total ou pulses pairs pour éviter courant continu
          vrai = float(N) / float(T);
          erreur = abs(vrai - target);
          if (erreur < 0.004) {
            tabPulseSinusTotal[I] = T;
            tabPulseSinusOn[I] = N;
            N = 101;
            T = 101;
          }
        }
      }
    }
  }

Si je comprend correctement le code, le if avec le commentaire permet d'éviter les cas où T est pair et N impairs. Ce cas n'est pas acceptable car, sur le long terme, il produit un nombre différent de demi-phases positives et négatives.

Mon code n'essaye pas d'éviter ce cas particulier.  Cela peut il être la cause du déclenchement de mon interrupteur différentiel?
Répondre
#2
Oui, vous avez compris Un
Répondre
#3
Super.

Merci.
Répondre
#4
(28-06-2024, 06:15 PM)Stef70 a écrit : J'ai donc écrit un petit programme pour expérimenter avec diverses longueurs de trames pour voir lesquelles donnent des mesures stables (a priori, le PJ-1203A fait ses mesures entre 150 et 200 ms).

Bonjour,

Je viens de recevoir le mien. J'ai découvert qu'il envoyait des salves de mesures mqqt toutes les 10s (update frequency par défaut) au lieu d'une seule. 
J'ai ajusté le débounce mais
Comment savez vous que les mesures sont toutes les 150/200ms sachant que les updates sont reglables de 3s à 60s ?

Merci
Répondre
#5
La période de mesure et la période d'envoi vers le broker MQTT sont 2 choses différentes et indépendantes.

André
Répondre
#6
(15-07-2024, 05:05 PM)F1ATB a écrit : La période de mesure et la période d'envoi vers le broker MQTT sont 2 choses différentes  et indépendantes.

André

Bonjour,

Je suis d'accord. On ne peut avoir des valeurs rafraichies (envoyées au broker) qu'au mieux toutes les 3s (ajustable au mini avec Zigbee2mqtt).
Comment peut il savoir que le composant fait des mesures tous les 150/200ms ? (c'est une boite noire pour moi, aucune doc sur ce qu'il se passe dedans)
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)