Bienvenue, Visiteur
Vous devez vous enregistrer avant de pouvoir poster.

Nom d’utilisateur
  

Mot de passe
  





Rechercher dans les forums

(Recherche avancée)

Derniers sujets
Configuration minimum
Dernier message : bisoncasino-Vaway
Il y a 11 minutes
Affichage Seconde source ...
Dernier message : FrancoisP
Il y a 15 minutes
Suggestion evols S3
Dernier message : Sgb31
Il y a 2 heures
Action OFF en fonction du...
Dernier message : f.ricou
Il y a 2 heures
Nouveau routeur photovolt...
Dernier message : F1ATB
Il y a 3 heures
Bug affichage écran dépor...
Dernier message : clyon44
Il y a 3 heures
Fonctionnement routeur
Dernier message : bebertelf
Il y a 5 heures
Planning des Routages
Dernier message : rolrider
Il y a 6 heures
Mesure UxI sur modèle écr...
Dernier message : AtomeIon
Hier, 08:36 PM
beta 9
Dernier message : rolrider
Hier, 08:04 PM

Statistiques du Forum
» Membres : 3,439,   » Dernier membre : bisoncasino-Vaway,   » Sujets du forum : 2,605,   » Messages du forum : 25,147,  
Statistiques complètes

  Regulation routeur solaire + batteries
Posté par : dom_poste - 07-03-2025, 06:50 PM - Forum : Routeur Photovoltaïque - Réponses (2)

Bonjour,
Je viens de réaliser le routeur solaire F1ATB (merci encore à André pour le site, les infos, les explications et les évolutions). Je fais des tests pour vérifier si j'ai tout bien câblé et j'essai de comprendre le fonctionnement. Sur mon routeur solaire j'ai branché en sortie un radiateur.
En principe lorsqu'il y a du surplus d'énergie, le routeur allume le radiateur pour consommer le surplus. Mais lorsque je branche mon radiateur, il ne consomme pas le surplus il consomme le maximum 2000w et par conséquence mon onduleur renvoie de l'électricité depuis mes batteries. Le fonctionnement est pour moi bizarre. Pouvez-vous m'aiguiller sur le principe de fonctionnement (si j'ai mal compris) ou alors m'orienter vers une solution.
Merci

Routeur solaire : F1ATB versuin 14.03
Sortie : Triac découpe sinus
Seuil : 2000W si je mets 20w même resultat
Ouverture Max : 100%
Réactivé : 15
Source :  uxlx2
Onduleur : Sofar Solar Hybride 6000
BMS : Seplos
Batterie : ~5kw

Bonne journée.



Pièces jointes Miniature(s)
   
Imprimer cet élément

  Triac pas disponible
Posté par : Suetens - 07-03-2025, 05:40 PM - Forum : Vos réalisations - Réponses (2)

Bonjour, je suis débutant dans la matière.. Le Triac Robotdyn  16/24A n'est pas disponible sur Aliexpress. Est-ce qu'il y a une alternative ?
merci !

Imprimer cet élément

  Cablage sonde DS18B20
Posté par : Daniel CARREAU - 06-03-2025, 09:16 PM - Forum : Routeur Photovoltaïque - Réponses (9)

Bonjour

j'ai une sonde cablée sur un ESP32 qui contreole la temperr


Bonjour

j'ai une sonde DS18B20 cablée sur un module ESP32 qui contrôle la température de mon chauffe eau.
j'ai acheté un module affichage température TTGOt-display pour avoir l'affichage de cette température.
Ma question : Puis-je câbler une seule sonde sur l'ESP et le module TTGO en reliant les masses bien entendu et alimenté par l'un des deux modules ?
Merci à vous

Imprimer cet élément

  Proposition code uxix3
Posté par : piamp - 06-03-2025, 05:25 PM - Forum : Evolutions faites, à faire, dont vous rêvez... - Réponses (2)

Bonjour,
Voici une proposition de code pour source_uxix3 apportant 2 améliorations :
- le calculs sont fait en binaire ce qui soulage le processeur
- les données de consommation et injection journalières en W, fidèles à ce que le linky comptabilise, sont remontées en MQTT (très pratique si l'on souhaite suivre dans home assistant sa conso). On pourrait faire mieux car les données totales sont effacées chaque jour, mais de toute façon le total sera agrégé côté home assistant !

il resterait à implémenter (andré?) la possibilité de configurer la vitesse de dialogue du JSY (2 vitesses sont possibles sur le 333: 9600bps ou 9600x2bps)

si andré peut utiliser ce code dans une prochaine version Smile

Code :
// *************************************************
// * Client lecture JSY-MK-333 * Triphasé *
// * Développement initial de Pierre F (Mars 2024) *
// * update PhDV61 Juin 2024 et Août 2024*
// *************************************************


void Setup_JSY333() {
  MySerial.setRxBufferSize(SER_BUF_SIZE);
  MySerial.begin(9600*2, SERIAL_8N1, RXD2, TXD2);  //PORT DE CONNEXION AVEC LE CAPTEUR JSY-MK-333
}

void Requete_JSY333() {
  int i;
  byte msg_send[] = { 0x01, 0x03, 0x01, 0x00, 0x00, 0x44, 0x44, 0x05 };
  for (i = 0; i < 8; i++) {
    MySerial.write(msg_send[i]);
  }
}

void Lecture_JSY333() {
  float Tension_M1, Tension_M2, Tension_M3;
  float Intensite_M1, Intensite_M2, Intensite_M3;
  float PVA_M_inst1, PVA_M_inst2, PVA_M_inst3;
  float PW_inst1, PW_inst2, PW_inst3;

  byte Lecture333[200];
  bool injection;
  bool sens1, sens2, sens3;
  long delta_temps = 0;

  Requete_JSY333();

  int a = 0;
  while (MySerial.available()) {
    Lecture333[a] = MySerial.read();
    a++;
  }

  if (a == 141) {                                               //message complet reçu
    delta_temps = (unsigned long)(millis() - Temps_precedent);  // temps écoulé depuis le dernier appel
    Temps_precedent = millis();                                 // on conserve la valeur du temps actuel pour le calcul précédent

    Tension_M1 = ((Lecture333[3] << 8) + Lecture333[4]) / 100;
    Tension_M2 = ((Lecture333[5] << 8) + Lecture333[6]) / 100;
    Tension_M3 = ((Lecture333[7] << 8) + Lecture333[8]) / 100;

    Intensite_M1 = float(((Lecture333[9] << 8) + Lecture333[10])) / 100;
    Intensite_M2 = float(((Lecture333[11] << 8) + Lecture333[12])) / 100;
    Intensite_M3 = float(((Lecture333[13] << 8) + Lecture333[14])) / 100;

    sens1 = (Lecture333[104]) & 0x01;
    sens2 = (Lecture333[104] >> 1) & 0x01;
    sens3 = (Lecture333[104] >> 2) & 0x01;

    if (sens1) { Intensite_M1 *= -1; }
    if (sens2) { Intensite_M2 *= -1; }
    if (sens3) { Intensite_M3 *= -1; }

    injection = (Lecture333[104] >> 3) & 0x01;  // si true, injection

    // Lecture des Puissances actives de chacune des phases
    PW_inst1 = float((Lecture333[15] << 8) + Lecture333[16]);
    PW_inst2 = float((Lecture333[17] << 8) + Lecture333[18]);
    PW_inst3 = float((Lecture333[19] << 8) + Lecture333[20]);

    //Lecture des puissances apparentes de chacune des phases, qu'on signe comme le Linky
    PVA_M_inst1 = float((Lecture333[35] << 8) + Lecture333[36]);
    if (sens1) { PVA_M_inst1 = -PVA_M_inst1; }
    PVA_M_inst2 = float((Lecture333[37] << 8) + Lecture333[38]);
    if (sens2) { PVA_M_inst2 = -PVA_M_inst2; }
    PVA_M_inst3 = float((Lecture333[39] << 8) + Lecture333[40]);
    if (sens3) { PVA_M_inst3 = -PVA_M_inst3; }

    if (injection) {
      PuissanceS_M_inst = 0;
      PuissanceI_M_inst = float((Lecture333[21] << 24) +  (Lecture333[22] << 16) + (Lecture333[23] << 8)  + Lecture333[24]);
      PVAS_M_inst = 0;
      PVAI_M_inst = abs(PVA_M_inst1 + PVA_M_inst2 + PVA_M_inst3);  // car la somme des puissances apparentes "signées" est négative puisqu'en "injection" au global

      // PhDV61 : on considère que cette puissance active "globale" a duré "delta_temps", et on l'intègre donc pour obtenir une énergie en Wh
      Energie_jour_Injectee += ((float)delta_temps / 1000.0) * (PuissanceI_M_inst / 3600.0);
      Energie_M_Injectee = Energie_jour_Injectee;

    } else {  // soutirage
      PuissanceI_M_inst = 0;
      PuissanceS_M_inst = float((Lecture333[21] << 24) +  (Lecture333[22] << 16) + (Lecture333[23] << 8)  + Lecture333[24]);
      PVAS_M_inst = PVA_M_inst1 + PVA_M_inst2 + PVA_M_inst3;

      // PhDV61 : on considère que cette puissance active "globale" a duré "delta_temps", et on l'intègre donc pour obtenir pour obtenir une énergie en Wh
      Energie_jour_Soutiree += ((float)delta_temps / 1000.0) * (PuissanceS_M_inst / 3600.0);
      Energie_M_Soutiree = Energie_jour_Soutiree;
    }
   
    MK333_dataBrute = "";
    MK333_dataBrute = "<strong>Triphasé</strong>";

    if (Intensite_M1 < 0)
      MK333_dataBrute += "<br>Phase1 : " + String(Tension_M1) + "V x " + String(Intensite_M1) + "A = " + String(int(PVA_M_inst1)) + "VA</br>";
    else
      MK333_dataBrute += "<br>Phase1 : " + String(Tension_M1) + "V x +" + String(Intensite_M1) + "A = +" + String(int(PVA_M_inst1)) + "VA</br>";

    if (Intensite_M2 < 0)
      MK333_dataBrute += "<br>Phase2 : " + String(Tension_M2) + "V x " + String(Intensite_M2) + "A = " + String(int(PVA_M_inst2)) + "VA</br>";
    else
      MK333_dataBrute += "<br>Phase2 : " + String(Tension_M2) + "V x +" + String(Intensite_M2) + "A = +" + String(int(PVA_M_inst2)) + "VA</br>";

    if (Intensite_M3 < 0)
      MK333_dataBrute += "<br>Phase3 : " + String(Tension_M3) + "V x " + String(Intensite_M3) + "A = " + String(int(PVA_M_inst3)) + "VA</br>";
    else
      MK333_dataBrute += "<br>Phase3 : " + String(Tension_M3) + "V x +" + String(Intensite_M3) + "A = +" + String(int(PVA_M_inst3)) + "VA</br>";

    if (PuissanceS_M_inst == 0)
      MK333_dataBrute += "<br>Puissance active injectée    : " + String(PuissanceI_M_inst) + "W</br>";
    else
      MK333_dataBrute += "<br>Puissance active soutirée    : " + String(PuissanceS_M_inst) + "W</br>";

    if (PVAS_M_inst == 0)
      MK333_dataBrute += "<br>Puissance apparente injectée : " + String(PVAI_M_inst) + "VA</br>";
    else
      MK333_dataBrute += "<br>Puissance apparente soutirée : " + String(PVAS_M_inst) + "VA</br>";

    if (PVA_M_inst1 != 0)
      MK333_dataBrute += "<br>Facteur de puissance phase 1 : " + String(abs(PW_inst1 / PVA_M_inst1)) + "</br>";
    if (PVA_M_inst2 != 0)
      MK333_dataBrute += "<br>Facteur de puissance phase 2 : " + String(abs(PW_inst2 / PVA_M_inst2)) + "</br>";
    if (PVA_M_inst3 != 0)
      MK333_dataBrute += "<br>Facteur de puissance phase 3 : " + String(abs(PW_inst3 / PVA_M_inst3)) + "</br>";

    MK333_dataBrute += "<br>Energie jour nette soutirée (Linky): " + String(Energie_jour_Soutiree) + "Wh</br>";
    MK333_dataBrute += "<br>Energie jour nette injectée (Linky): " + String(Energie_jour_Injectee) + "Wh</br>";

    MK333_dataBrute += "<br>Energie totale soutirée : " + String(Energie_M_Soutiree) + "Wh</br>";
    MK333_dataBrute += "<br>Energie totale injectée : " + String(Energie_M_Injectee) + "Wh</br>";

    Pva_valide = true;
    filtre_puissance();
    PuissanceRecue = true;  //Reset du Watchdog à chaque trame du JSY reçue
    EnergieActiveValide = true;
    if (cptLEDyellow > 30) {
      cptLEDyellow = 4;
    }
  } else {
    StockMessage("Pas tout reçu, pas traité... nombre de données : " + String(a));
  }
}

Imprimer cet élément

  UxIX2 calibration
Posté par : Mael - 06-03-2025, 10:34 AM - Forum : Evolutions faites, à faire, dont vous rêvez... - Réponses (13)

Bonjour,
Est il possible d'avoir le calibrage du UxIx2 comme celui du UxI?



Pièces jointes Miniature(s)
   
Imprimer cet élément

  Dimmer/triac
Posté par : edouard12240 - 05-03-2025, 08:47 PM - Forum : Routeur Photovoltaïque - Réponses (3)

Bonjour ce fameux dimer triac neccessaire au routeur n'est plus dispo sur ali..... 
Par quel moyen ou article similaire le remplacer 
Merci

Imprimer cet élément

  Optimisation entre gros ballon branché sur Triac et petit ballon branché en on/off
Posté par : Julien - 05-03-2025, 05:42 PM - Forum : Routeur Photovoltaïque - Réponses (10)

Bonjour, 
J'aurais besoin de votre aide à propos d'un problème d'optimisation de la production photovoltaïque avec le routeur F1ATB.
Je dispose de deux ballons d'eau chaude, un petit qui consomme 500W (eau chaude cuisine) et un gros qui consomme 2400W pour les salles de bains. Actuellement, le gros ballon est branché via le routeur muni d'un gradateur et le petit ballon est relié à une prise connectée et se déclenche en on/off.
Le déclenchement du petit ballon est géré avec la production solaire et la consommation de la maison, grâce à un scénario home assistant.

Mon problème : j'ai des pics de consommation dés que le petit ballon se met en route, je voudrais gommer ceux-ci. J'imagine qu'une des solutions seraient de monter un deuxième ESP32 avec gradateur pour le petit ballon, mais je voudrais pour le moment rester en on/off si possible avec la prise connectée.

Je vous partage des courbes montrant les pics (ecs1 le gros ballon, ecs2 le petit, win la conso entrante), ainsi que le scénario .yaml que j'ai mis en place.

Merci beaucoup par avance pour les pistes que vous pourrez me proposer. 
Julien

[Image: courbes.png]

Scénario :
alias: Ballons ter
description: Chauffe du ballon d'eau chaude en fonction de la production solaire
triggers:
  - seconds: /30
    trigger: time_pattern
conditions:
  - condition: sun
    before: sunset
    after: sunrise
actions:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.temp_petit_ballon
            above: 56
        sequence:
          - action: switch.turn_off
            data: {}
            target:
              entity_id: switch.plug_158d00032d853a
          - delay:
              minutes: 5
      - conditions:
          - condition: numeric_state
            entity_id: sensor.sb3_6_1av_40_826_pv_power
            above: 1000
          - condition: numeric_state
            entity_id: sensor.routeur_rms_puissance_m_soutiree
            below: 50
        sequence:
          - action: switch.turn_on
            data: {}
            target:
              entity_id: switch.plug_158d00032d853a
      - conditions:
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.sb3_6_1av_40_826_pv_power
                below: 900
              - condition: numeric_state
                entity_id: sensor.routeur_rms_puissance_m_soutiree
                above: 150
        sequence:
          - action: switch.turn_off
            data: {}
            target:
              entity_id: switch.plug_158d00032d853a
mode: single



Pièces jointes Miniature(s)
   
Imprimer cet élément

Question Modification de l'heure de marche forcée
Posté par : DaLi - 05-03-2025, 01:54 PM - Forum : Routeur Photovoltaïque - Réponses (4)

Bonjour,

Je suis un nouvel utilisateur du routeur F1ATB.
Je suis en phase d'expérimentation et je cherche à trouver les meilleurs réglages possible. J'ai compris que le mode de marche forcée si il n'y a pas eu assez de chauffe dans la journée est à 6h du matin, est-il possible de modifier cette valeur ? Je ne trouve pas le paramètre ?

Je vous explique la situation, première chose à savoir, dans la famille, nous prenons nos douches le soir. Donc la majeure partie de consommation de l'eau chaude se situe entre 20h et 22h.
Si la marche forcée se déclenche à 6h le matin, alors le chauffe eau se chargera entièrement sur le réseau et quand la période de production solaire arrivera alors il ne restera plus rien à consommer. J'aimerai donc pouvoir paramétrer la marche forcée s'il n'y a pas eu assez d chauffe (l'hiver ou jours de pluie par exemple) pour 17h, ce qui permet d'avoir le complément de chauffe forcée pile pour les douches du soir.

Cordialement,
David

Imprimer cet élément

  Remerciement et nouvelle installation
Posté par : Pie - 05-03-2025, 01:37 PM - Forum : Vos réalisations - Réponses (4)

Tout d'abord un grand merci à André pour le partage de tout son travail.
C'est remarquable !
En quelques mots, qui suis-je ?
De formation BTS en électrotechnique, je me suis orienté ensuite dans l'univers des Télécom, électromécanique d'abord, puis j'ai suivi l'évolution des technologies vers le numérique puis l'informatique avec l'administration de serveurs, bases de données, et enfin j'ai intégré une équipe de soutien national chargée d'intégrer de nouvelles plateformes de service dans les réseaux.
Maintenant que l'heure de la retraite a sonné (73 ans), je continue à m'intéresser aux nouvelles technologies en utilisant des Raspberry et Jeedom, et j'ai découvert dernièrement la puissance et les possibilités du microcontrôleur ESP32 avec le routeur d'André.
Mon installation en solaire est très modeste, 2 panneaux Sunology PlayMax,  un panneau au sud et l'autre côté ouest.
Pourtant, je constate des plages dans la journée où ma production est excédentaire d'où l'idée de récupérer ce surplus d'énergie pour l'injecter dans mon chauffe-eau et l'autoconsommer.
 
Réalisation du routeur :
Installation d'un premier ESP au plus proche du Linky pour récupérer les données TIC.
Les données sont routées vers un 2° ESP à proximité du chauffe-eau.
J'ai fait le choix d'utiliser un relai SSR plutôt qu'un triac.
Le radiateur du SSR est équipé d'un petit ventilateur en 24v CC. Ce ventilateur est piloté par une sonde de température DS18B20 fixé sur le radiateur et un peu de pâte thermique. J'utilise un mini relai 3,3v raccordé au GPIO 5 de l'ESP pour déclencher la mise en route du ventilateur via une alimentation 220v-24v DC.
Mon chauffe-eau est équipé d’un thermostat électronique. J’ai donc modifié en conséquence l’alimentation pour n’envoyer du courant haché que sur les résistances.
Pour l’instant, je recherche à éviter trop de passages à 0 w en jouant sur les seuils d’ouvertures du SSR ou encore sur la réactivité dans « Actions ». (Je suis en CACSI). Ce n’est pas évident.



Pièces jointes Miniature(s)
               
Imprimer cet élément

  uxi et uxix2 probleme
Posté par : Tagora35 - 05-03-2025, 12:16 PM - Forum : Routeur Photovoltaïque - Réponses (15)

bonjour  

je suis perdu  : en uxi la led clignotte bien mais quand je passe en x2 plus rien  et dans les donnée brutes tension efficace j'ai 19,62 volts  (je route pas en moment precis car j'ai seulement 2 panneaux de 500w  

au niveau gpio lesquelles   a cocher ?  

merci de votre aide

Imprimer cet élément


Utilisateurs en ligne
Il y a actuellement 324 utilisateurs connectés. » 6 Membre(s) | 316 Visiteur(s)
Bing, Google, bisoncasino-Vaway, FrancoisP, Philmaz, Sgb31

Moteur MyBB, © 2002-2026 Melroy van den Berg.