Aujourd’hui, 07:09 AM
(Aujourd’hui, 01:02 AM)michy a écrit :(Hier, 06:48 PM)rdsoft30 a écrit :(Hier, 08:37 AM)algorytmix a écrit :(Hier, 08:32 AM)rdsoft30 a écrit : Bonjour à tous,
J'ai remis un lien de la version que j'ai produite qui tourne chez moi depuis hier soir sans soucis.
Merci à tous pour ceux qui vont tester de donner un retour ici ;-)
Le bon lien : https://drive.google.com/drive/folders/1...sp=sharing
A+
ne marche pas en triphasé mais fonctionne effectivement depuis hier soir
(Hier, 06:30 PM)michy a écrit : Bonjour,
très difficile de gérer les corrections par itération à distance (et c'est fête de la musique Aujourd'hui, donc d'autres occupations ...)
Je partage le code actuel (en utilisant httpClient qui est natif dans l'ecosystem espressif, ça permet de passer le stream réseau à ArduinoJson sans stockage du paquet entre 10 et 15 ko)
Surpression et correction dans le fonction interne de parsing du JSON (qui ne sont plus utilisé pour la source enphase)
si quelqu'un veut continuer l'évolution dans cette direction ... (il y a quelques suppression de variables global a faire : clientSecure, clientFirmV5 ...)
le code en utilisant httpClient peut être déployé sur d'autre source aussi (et tempoRTE) [Solution plus fiable que la gestion de client.available, timeout, de stop et traitement octet par octet du retour]
La fin du code pour Enphase c'est d'interpréter les données contenues dans le Json, je ne peux pas la faire n'ayant pas de passerelle (le principe de filtrage mit en place est bon, il faut peut être ajuster ce qu'on souhaite conserver du JSON d'origine)
Salut michy,
Je ne comprends pas pourquoi vous voulez recalculer quelque chose qui est déjà donné par la passerelle Enphase ! La tension et courant et autres infos cumulées de toutes les phases sont déjà disponibles.
Peux tu me dire ce que tu penses de l'explication que je donne sur le décodage de la trame JSON dans le post #229 (https://f1atb.fr/forum_f1atb/thread-2795...l#pid24994) ?
Merci à toi.
A+
En fait le routeur a besoin d'une unique information (la puissance en watt / combinaison des 3 phases en triphasé), le reste n'est que annexe pour remonté sur l'affichage ou par mqtt
Si on considère que le routeur affiche uniquement une tension et une intensité (Sur la page données brute), je préfère afficher une tension et une intensité moyenne que 700 volts et une intensité qui est plus près du triple de ce qui se passe sur une phase / si en triphasé on passe sur un affiche individuel par phase , le calcul /3 n'a plus lieu d'être
En triphasé, dans le bloc échange avec Enedis, on a une valeur dans le bloc d'entête (dans les 700 volt) + dans chaque sous bloc channels, l'info par Phase.
dans le routeur, il y a les variables Tension_M, Tension_M1, Tension_M2, Tension_M3 je charge chaque variable avec une valeur cohérente (pas 700V pour Tension_M mais une moyenne 700/3, qui sera affiché sur la page données brutes)
Pareil pour Intensite_M et le facteur de puissance
pas d'autres calcul dans le code ...
dans le bloc échange avec Enedis, version réduite a quelques paramètres :
sur une trame en triphasé :
{
"eid": 704643584,
"activePower": -1564.87, // Ce paramètre est le seul important utilisé par le routeur pour faire du routage (triphasé ou monophasé)
"pwrFactor": -0.964, // lui pas besoin de divisé par 3 ça semble être une pondération correcte
"voltage": 692.84, // en divisant par 3 on a le tension moyenne monophasé affecté a variable Tension_M
"current": 6.956, // en divisant par 3 on a l'intensité moyenne par phase
"freq": 50.125, // identique pour chaque phase
"channels": [
{
"eid": 1778385425,
"activePower": -390.965, // utilisable par l'équipe charge VE pour tirer la puissance maxi possible en fonction d'un plafond
"pwrFactor": -0.946,
"voltage": 231.828, // affecté a variable Tension_M1
"current": 1.737,
},
{
"eid": 1778385426,
"activePower": -624.625, // utilisable par l'équipe charge VE pour tirer la puissance maxi possible en fonction d'un plafond
"pwrFactor": -0.966,
"voltage": 230.502, // affecté a variable Tension_M2
"current": 2.792,
},
{
"eid": 1778385427,
"activePower": -549.281, // utilisable par l'équipe charge VE pour tirer la puissance maxi possible en fonction d'un plafond
"pwrFactor": -0.974,
"voltage": 230.511, // affecté a variable Tension_M3
"current": 2.427,
}
]
},
sur une trame en monophasé
{
"eid": 704643584,
"activePower": 1154.149, // Ce paramètre est le seul important utilisé par le routeur pour faire du routage (triphasé ou monophasé), en monophasé, petite dérive possible dû au bruit de mesure
"pwrFactor": -0.024, // non représentatif
"voltage": 245.58, // en monophasé, reprend les 3 phases avec un petit écart parasite, dû au bruit de mesure
"current": 5.309,
"freq": 50.062, // peut importe si c'est L1 L2 ou L3 qui représente la phase active en mono, c'est cette valeur qu'il faut
"channels": [
{
"eid": 1778385425,
"activePower": 1148.639, // si L1 toujours la phase principale en monophasé, on utilise cette valeur, sinon il faut détecter laquelle c'est
"pwrFactor": 0.975, // si L1 toujours la phase principale en monophasé, on utilise cette valeur
"voltage": 231.255, // Si on confirme que c'est toujours les info en phase L1 qui sont représentative on utilise cette valeur
"current": 5.099, // si L1 toujours la phase principal en monophasé, on utilise cette valeur
},
{
"eid": 1778385426,
"activePower": -0.0,
"pwrFactor": -1.0,
"voltage": 5.844, // bruit de mesure
"current": 0.0, // bruit de mesure
},
{
"eid": 1778385427,
"activePower": -0.896, // bruit de mesure
"pwrFactor": 0.0,
"voltage": 8.497, // bruit de mesure
"current": 0.185, // bruit de mesure
}
]
},
En mono, le bruit de mesure sur les 2 phases qui ne sont pas 'actives' est négligeable (d'autant plus quand on se rapproche de zéro qui est la cible du routeur)
Je prendrais la valeur de activePower qui chapeaute les channels qu'on soit en mono ou en tri, sinon il faut identifier la section channel correspondant à la phase active en mono (espérant qua ça soit figé sur L1) pour tirer la valeur en Watt et pour le cas triphase prendre celle chapeau
comme dit plus haut les autres valeurs c'est du luxe inutilisé par le routeur, peut importe si les données sont exact ou pas ...
Salut michy,
C'est exactement ce que j'ai fait dans mon dernier code.
En Multiphases (Tri ou Bi) je prends toutes les valeurs utiles dans la section qui chapeaute les channels de la trame JSON, alors qu'en Monophasé, je prends les valeurs dans le Channel L1.
En monophasé, le bruit dont tu parles sur les section Channel L2 et L3 qui ne sont pas câblés affectent trop à mon sens la vraie mesure de la phase L1.
Il suffit de regarder la tension secteur qui passe à 245V si on prends la section qui chapeaute les channels, alors qu'en prenant la valeur de la tension dans le Channel L1, la tension est correcte de 231V.
A+


