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
Fonctionnement de la temp...
Dernier message : R@smokabe
Il y a 38 minutes
Blocage routeur intempest...
Dernier message : Richard59
Il y a 1 heure
Station de charge VE-RMS ...
Dernier message : Rakibou
Il y a 3 heures
Calcul Puissance sur rése...
Dernier message : Ropiero
Il y a 6 heures
mesure charge decharge ba...
Dernier message : H3rv3
Il y a 6 heures
Forçage ON OFF
Dernier message : gdrou
Il y a 6 heures
Branchement TRIAC régulat...
Dernier message : Lolo69
Aujourd’hui, 07:04 AM
Un nouveau qui s’y colle
Dernier message : Lolo69
Hier, 11:17 PM
leds routeur
Dernier message : michy
19-04-2026, 10:38 PM
Régulation par la tempéra...
Dernier message : pelfort89fr
19-04-2026, 07:41 PM

Statistiques du Forum
» Membres : 2,707,   » Dernier membre : ezzezerre,   » Sujets du forum : 2,299,   » Messages du forum : 21,528,  
Statistiques complètes

  page ACTION, rien ne s'affiche...
Posté par : lodev87 - 07-04-2026, 08:41 PM - Forum : Routeur Photovoltaïque - Réponses (16)

Bonjour la communauté solaire ?

Me revoilà avec un autre problème.

Après quelques messages en MP avec M. André, je suis passé en ESP32  WROM.

J'ai donc suivi la procédure rapide de téléchargement, tout c'est bien passé.

J'ai paramétré en ESP seul, en mesure UxI, pas de triac donc SSR.

Dans la page ACTION, je n'ai aucune boîte de dialogue pour paramétrer les GPIO pour le SSR ?

Ai-je raté quelque chose ?

J'attends avec impatience vos réponses.

A bientôt



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

  Régulation 10mA variateur pompe piscine
Posté par : nitrotop - 07-04-2026, 06:00 PM - Forum : Routeur Photovoltaïque - Réponses (14)

Bonjour à tous,
Je me pose une question concernant la régulation de la pompe de piscine.
Actuellement, je pilote le variateur avec les 3 entrées TOR, associées à 3 vitesses prédéfinies. Ça fonctionne, mais la régulation reste assez grossière.
Est-ce que quelqu’un sait s’il est possible d’utiliser l’entrée analogique du variateur (10mA - S12V - SGND, voir photo jointe) pour piloter directement la vitesse de la pompe, afin de l’adapter finement au surplus photovoltaïque ?
L’idée serait d’avoir une variation continue de la vitesse, un peu comme pour la régulation d’une résistance de chauffe‑eau avec le routeur.
Si certains ont déjà testé ou savent si c’est faisable (et sous quelles conditions), je suis preneur.
Merci d’avance.
Laurent



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

  Soucis 17.17 et UxIx2
Posté par : lorksoft - 06-04-2026, 08:06 PM - Forum : Routeur Photovoltaïque - Réponses (10)

Bonjour,
J'ai un routeur en 17.17 et un compteur JSY MK-194-T
Jusqu'a la version 16, pas de soucis, mais depuis que je suis passé a la version 17 (17.16 puis 17.17) j'ai un soucis avec les valeurs de conso de la deuxieme sonde : le compteur total et active du jour sont remis a zero plusieurs fois par jour. Pas de soucis avec la sonde principale, ni les valeurs des autres champs.
J'ai delesté env 5h et 3h , chacun sur une resistance de 2000w (chauffe eau avec plusieurs resistances) Soit environ 8*2kw => 16kw.
Mais le compteur deuxieme sonde (chauffe eau) m'indique 687 Wh en Active du jour et 688 Wh en total.
Je voix le compteur monter, puis repartir a Zero.
Suis-je le seul ?


(06-04-2026, 08:06 PM)lorksoft a écrit : Bonjour,
J'ai un routeur en 17.17 et un compteur JSY MK-194-T
Jusqu'a la version 16, pas de soucis, mais depuis que je suis passé a la version 17 (17.16 puis 17.17) j'ai un soucis avec les valeurs de conso de la deuxieme sonde : le compteur total et active du jour sont remis a zero plusieurs fois par jour. Pas de soucis avec la sonde principale, ni les valeurs des autres champs.
J'ai delesté env 5h et 3h , chacun sur une resistance de 2000w (chauffe eau avec plusieurs resistances) Soit environ 8*2kw => 16kw.
Mais le compteur deuxieme sonde (chauffe eau) m'indique 687 Wh en Active du jour et 688 Wh en total.
Je voix le compteur monter, puis repartir a Zero.
Suis-je le seul ?
je joint 2 captures d'ecran : la courbe de délestage et le résumé sur la page d'accueil



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

  Carte V2.2 et le 12volt
Posté par : Geosr - 06-04-2026, 05:45 PM - Forum : Adaptation aux chargeurs VE - Réponses (2)

Salut les experts pwm.

Meme si le soft est le meme. Il y a une différence hardware. Entre les V1 et V2.

Sachant que sut les V1 on joue avec la tension 12v en entrée pour que cela fonctionne correctement.
Comment cela se passe sur la V2. Car le + et - 12V sont fixé?

Merci a vous

Imprimer cet élément

  Script python - windows
Posté par : stephcache - 06-04-2026, 11:17 AM - Forum : Gluco-Monitor - Pas de réponse

Bonjour, je viens de créer un script python pour Windows afin affiché sa glycémie sur le bureau.

Le projet est libre de droit et gratuit sur github: https://github.com/stephcache/LibreLinkU...et-Windows

Imprimer cet élément

  Autonomie en Normandie : Deye 8K, Batterie 314Ah et Routage 4 voies
Posté par : Nidar - 06-04-2026, 06:54 AM - Forum : Evolutions faites, à faire, dont vous rêvez... - Réponses (6)

Bonjour à tous,

Je vous sollicite pour valider la partie logicielle de mon futur projet d'installation. Actuellement, je tourne avec 6 kWc de panneaux sur micro-onduleurs et un routeur F1ATB sur mon chauffe-eau.
Le projet à venir :
Je vais installer un onduleur Deye 8K avec une batterie DIY 16S 314Ah. Le cerveau sera un mini PC sous HAOS (bare metal), relié à l'onduleur en RS485/USB.

Mon ambition :

  • Off-Grid partiel : Par fierté et pour couper l'abonnement, je vise l'autonomie de début avril à fin septembre.
  • Gestion de l'inertie : Utiliser le surplus pour chauffer mes dalles (très utile pour les nuits fraîches en Normandie) via un routeur F1ATB 4 voies (1 ECS 2000W + 3 dalles 1500W).
La genèse du code :

Comme je n'y connais rien en informatique, j'ai fait travailler trois IA en collaboration. Je leur ai soumis mes idées et elles ont généré ce code YAML. Elles m'assurent qu'il est parfait, mais je préfère l'avis d'humains qui pratiquent le code au quotidien !
Logique du code :
  • Protection Batterie : Coupure du routage à 30% de SOC, reprise à 35%.
  • Rampes Intelligentes : Montée progressive (paliers de 10 à 20%) et descente rapide (palier de 15%) pour protéger la batterie des appels de charge de la maison ou des passages nuageux.
  • Calcul Hybride : Utilisation de PV - Load - Grid pour fonctionner aussi bien l'hiver (On-Grid avec pince CT réseau) que l'été (Off-Grid).
Bien sûr, les noms des entités et les valeurs de
 puissance devront être ajustés une fois le matériel en place ; ce qui m'intéresse avant tout, c'est de valider la structure du code et la logique des rampes.

Le code envisagé :

# ============================================================
# FILTER SENSOR — lissage surplus brut
# ============================================================
sensor:
  - platform: filter
    name: "Surplus Solaire Lissé"
    unique_id: surplus_solaire_lisse
    entity_id: sensor.surplus_solaire_brut
    filters:
      - filter: moving_average
        window_size: 3
        precision: 0
      - filter: range
        lower_bound: 0
        upper_bound: 8500

# ============================================================
# TEMPLATE SENSORS — surplus brut + consignes par voie
# ============================================================
template:
  - sensor:
      - name: "Surplus Solaire Brut"
        unique_id: surplus_solaire_brut
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
        state: >
          {% set pv = states('sensor.deye_pv_power') | float(0) %}
          {% set load = states('sensor.deye_load_power') | float(0) %}
          {% set grid = states('sensor.deye_grid_power') | float(0) %}
          {{ [pv - load - grid, 0] | max | int }}

      # --- Voie 1 : chauffe-eau 2000 W ---
      - name: "F1ATB V1 consigne pct"
        unique_id: f1atb_v1_pct
        unit_of_measurement: "%"
        state: >
          {% set soc = states('sensor.deye_battery_soc') | float(0) %}
          {% set seuil = 100 if soc > 90 else 200 %}
          {% set s = states('sensor.surplus_solaire_lisse') | float(0) %}
          {% set s = 0 if s < seuil else s %}
          {{ [[s / 2000 * 100, 0] | max, 100] | min | round(0) | int }}

      # --- Voie 2 : dalle 1 — 1500 W ---
      - name: "F1ATB V2 consigne pct"
        unique_id: f1atb_v2_pct
        unit_of_measurement: "%"
        state: >
          {% set soc = states('sensor.deye_battery_soc') | float(0) %}
          {% set seuil = 100 if soc > 90 else 200 %}
          {% set s = states('sensor.surplus_solaire_lisse') | float(0) %}
          {% set s = 0 if s < seuil else s %}
          {% set reste = [s - 2000, 0] | max %}
          {{ [[reste / 1500 * 100, 0] | max, 100] | min | round(0) | int }}

      # --- Voie 3 : dalle 2 — 1500 W ---
      - name: "F1ATB V3 consigne pct"
        unique_id: f1atb_v3_pct
        unit_of_measurement: "%"
        state: >
          {% set soc = states('sensor.deye_battery_soc') | float(0) %}
          {% set seuil = 100 if soc > 90 else 200 %}
          {% set s = states('sensor.surplus_solaire_lisse') | float(0) %}
          {% set s = 0 if s < seuil else s %}
          {% set reste = [s - 2000 - 1500, 0] | max %}
          {{ [[reste / 1500 * 100, 0] | max, 100] | min | round(0) | int }}

      # --- Voie 4 : dalle 3 — 1500 W ---
      - name: "F1ATB V4 consigne pct"
        unique_id: f1atb_v4_pct
        unit_of_measurement: "%"
        state: >
          {% set soc = states('sensor.deye_battery_soc') | float(0) %}
          {% set seuil = 100 if soc > 90 else 200 %}
          {% set s = states('sensor.surplus_solaire_lisse') | float(0) %}
          {% set s = 0 if s < seuil else s %}
          {% set reste = [s - 2000 - 1500 - 1500, 0] | max %}
          {{ [[reste / 1500 * 100, 0] | max, 100] | min | round(0) | int }}

# ============================================================
# AUTOMATIONS
# ============================================================
automation:

  # 1. REGULATION PRINCIPALE — ramp adaptatif toutes les 2s
  - alias: "F1ATB - Regulation triacs finale"
    id: f1atb_regulation_finale
    mode: queued
    max: 2
    trigger:
      - platform: time_pattern
        seconds: "/2"
      - platform: event
        event_type: f1atb_resume
    condition:
      - condition: numeric_state
        entity_id: sensor.deye_battery_soc
        above: 30
    action:
      - variables:
          soc: "{{ states('sensor.deye_battery_soc') | float(0) }}"
          surplus: "{{ states('sensor.surplus_solaire_lisse') | float(0) }}"
          step_up: >
            {% if soc > 95 %} 20
            {% elif soc > 80 %} 15
            {% else %} 10
            {% endif %}
          step_down: "{{ 15 if surplus < 500 else 8 }}"
          seuil: 3
      - repeat:
          for_each:
            - { sensor: "sensor.f1atb_v1_consigne_pct", entity: "number.f1atb_voie_1" }
            - { sensor: "sensor.f1atb_v2_consigne_pct", entity: "number.f1atb_voie_2" }
            - { sensor: "sensor.f1atb_v3_consigne_pct", entity: "number.f1atb_voie_3" }
            - { sensor: "sensor.f1atb_v4_consigne_pct", entity: "number.f1atb_voie_4" }
          sequence:
            - variables:
                new_val: "{{ states(repeat.item.sensor) | int(0) }}"
                old_val: "{{ states(repeat.item.entity) | int(0) }}"
            - if:
                - condition: template
                  value_template: "{{ (new_val - old_val) | abs > seuil }}"
              then:
                - service: number.set_value
                  target:
                    entity_id: "{{ repeat.item.entity }}"
                  data:
                    value: >
                      {% if new_val > old_val %}
                        {{ [old_val + step_up, new_val] | min }}
                      {% else %}
                        {{ [old_val - step_down, new_val] | max }}
                      {% endif %}

  # 2. COUPURE SOC BAS — tout à 0 immédiatement
  - alias: "F1ATB - Coupure SOC bas"
    id: f1atb_coupure_soc
    mode: single
    trigger:
      - platform: numeric_state
        entity_id: sensor.deye_battery_soc
        below: 30
    action:
      - service: number.set_value
        target:
          entity_id:
            - number.f1atb_voie_1
            - number.f1atb_voie_2
            - number.f1atb_voie_3
            - number.f1atb_voie_4
        data:
          value: 0

  # 3. REPRISE APRES SOC BAS — hysteresis 30/35%
  - alias: "F1ATB - Reprise SOC"
    id: f1atb_reprise_soc
    mode: single
    trigger:
      - platform: numeric_state
        entity_id: sensor.deye_battery_soc
        above: 35
    action:
      - delay: "00:00:15"
      - event: f1atb_resume

  # 4. RESYNC PERIODIQUE — rattrape les dérives toutes les minutes
  - alias: "F1ATB - Resync periodique"
    id: f1atb_resync
    mode: single
    trigger:
      - platform: time_pattern
        minutes: "/1"
    condition:
      - condition: numeric_state
        entity_id: sensor.deye_battery_soc
        above: 30
    action:
      - service: number.set_value
        target: { entity_id: number.f1atb_voie_1 }
        data: { value: "{{ states('sensor.f1atb_v1_consigne_pct') | int(0) }}" }
      - service: number.set_value
        target: { entity_id: number.f1atb_voie_2 }
        data: { value: "{{ states('sensor.f1atb_v2_consigne_pct') | int(0) }}" }
      - service: number.set_value
        target: { entity_id: number.f1atb_voie_3 }
        data: { value: "{{ states('sensor.f1atb_v3_consigne_pct') | int(0) }}" }
      - service: number.set_value
        target: { entity_id: number.f1atb_voie_4 }
        data: { value: "{{ states('sensor.f1atb_v4_consigne_pct') | int(0) }}" }

Votre avis :
Avant d'acheter tout le matériel et de lancer le montage, est-ce que cette logique de régulation via Home Assistant vous semble tenir la route ? 

Merci pour votre aide et vos retours d'expérience !

Imprimer cet élément

  Deuxiéme routeur ne répond pas au commande MQTT
Posté par : DidierJ - 05-04-2026, 06:58 PM - Forum : Routeur Photovoltaïque - Réponses (1)

Bonjour
J'ai deux routeurs je souhaite piloter via MQTT, le 1er repond correctement au commande
mais le 2eme non 

pourtant dans MQTT explorer les commandes sont OK.
Le 2eme ne semble pas aller voir la commande.

les deux sont en 17.17
Avez vous une idée ?

Imprimer cet élément

  Perte de connexion wifi.
Posté par : frdd - 05-04-2026, 06:12 PM - Forum : Routeur Photovoltaïque - Réponses (3)

Bonjour à tous.
Cela fait un moment que je cherche , mais je n arrive pas a résoudre mon problème.
Je me rends compte que mon routeur ( la partie au tableau Esp+ jsy ) perd le wifi régulièrement.
Je suis obligé de débrancher/rebrancher pour retrouver l' accès.
L.ip reste bien la même..
Je ne sais plus trop où regarder.
Si vous avez une idée ou une piste je suis preneur.
Merci d avance.

Imprimer cet élément

  Filtrage pour CACSI
Posté par : Alain59 - 05-04-2026, 01:10 PM - Forum : Routeur Photovoltaïque - Réponses (4)

Bonjour, merci encore pour le travail et le partage réalisé.
André, je n'ai pas trouvé mon bonheur dans les réglages pour CACSI. Il est vraie que j'ai l’obsession permanenta d'aller chercher les quelques watts qui s’échappent chez Enedis ! Wink . Je peaufine mes réglages via Mqtt et Node-RED.
J'ai mis en place une fonction dans Node-RED qui comprend une régulation "exponentielle" et filtres qui me donne plutôt de bons résultats. Je priorise aussi l'injection RouteurECS / RouteurRAD. Peut-être est-il possible d'ajouter ce type de chose nativement dans ton système. Je te joins ce script ci-dessous, à toute fin utile.
// ======================================================
// FILTRAGE PUISSANCE POUR ROUTEUR SOLAIRE F1ATB
// ======================================================
// Ce script :
// 1) vérifie la validité de la mesure
// 2) élimine les valeurs aberrantes
// 3) applique un filtre exponentiel (EMA)
// 4) ignore les petites perturbations (deadband)
// 5) applique un offset pour ajuster le seuil du routeur
// 6) envoie la puissance filtrée en MQTT
// ======================================================
 
// ------------------------------------------------------
// 1. Vérification de la structure du message
// ------------------------------------------------------
// On vérifie que le message contient bien svalue1
if (!msg.payload || msg.payload.svalue1 === undefined) {
    return null; // message ignoré
}
 
// Conversion en nombre
let currentValue = Number(msg.payload.svalue1);
// Vérifie que la valeur est bien numérique
if (isNaN(currentValue)) {
    return null;
}
 
// ------------------------------------------------------
// 2. Filtrage des valeurs aberrantes
// ------------------------------------------------------
// Ces limites dépendent de ton installation
// Elles évitent les bugs ou valeurs incohérentes
 
if (currentValue < -160 || currentValue > 4000) {
    return null;
}
 
// ------------------------------------------------------
// 3. Paramètres du filtre
// ------------------------------------------------------
// coefficient du filtre exponentiel
// plus alpha est petit → filtrage fort
// valeurs typiques : 0.2 à 0.35
// 0.2-filtrage fort, [0.35](0.3)-bon compromis, 0.4-plus réactif
let alpha = 0.30;
// zone morte pour ignorer les petites variations
// évite les oscillations dues aux TV, box, etc.
// zone morte = ±xx W, variation prise en compte si hors de cette plage
// 10W-très sensible, [20W]-sensible, (30W)-bon compromis, 50W-très stable moins précis
//
// Remplacée par une version asymétrique :
// - import (consommation réseau) → plus sensible
// - export (surplus PV) → plus tolérant
let deadband_import = 15;
let deadband_export = 25;
 
// ------------------------------------------------------
// 4. Récupération de la valeur filtrée précédente
// ------------------------------------------------------
// On récupère la dernière valeur filtrée sauvegardée
let previousFiltered = context.get("filteredPower");
// si première exécution on initialise
if (previousFiltered === undefined) {
    previousFiltered = currentValue;
}
 
// ------------------------------------------------------
// 5. Détection des petites perturbations
// ------------------------------------------------------
// Si la variation est trop faible on l'ignore
// Version asymétrique : seuil différent selon import/export
let delta = currentValue - previousFiltered;
// Cas IMPORT (puissance > 0 → on consomme du réseau)
if (currentValue > 0) {
    if (Math.abs(delta) < deadband_import) {
// on garde simplement l'ancienne valeur
        currentValue = previousFiltered;
    }
// Cas EXPORT (puissance < 0 → surplus PV)
} else {
    if (Math.abs(delta) < deadband_export) {
// on garde simplement l'ancienne valeur
        currentValue = previousFiltered;
    }
}
 
// ------------------------------------------------------
// 6. Filtre exponentiel
// ------------------------------------------------------
// Formule EMA
// filtered = alpha * mesure + (1-alpha) * ancienne valeur
let filtered = alpha * currentValue + (1 - alpha) * previousFiltered;
 
// ------------------------------------------------------
// 7. Sauvegarde pour la prochaine itération
// ------------------------------------------------------
context.set("filteredPower", filtered);
 
// ------------------------------------------------------
// 8. Ajustement du seuil du routeur
// ------------------------------------------------------
// offset utilisé pour ajuster la régulation
// (dans ton ancien script : -80)
// sert à éviter l’injection Linky réseau/pince modifiée Emphase
let offset = 70;
let finalPower = Math.round(filtered) - offset;
// sécurité supplémentaire
if (isNaN(finalPower)) {
    return null;
}
 
// ------------------------------------------------------
// 9. Construction du message MQTT avec gestion RouteurECS/RouteurRAD
// ------------------------------------------------------
 
// ---------------- Récupération de l'état ECS_Injection % Idx247 ----------------
let injectionECS = Number(global.get("ECS_Injection") || 0);
// ---------------- DEBUG ----------------
// node.warn("Valeur ECS_Injection actuelle : " + injectionECS);
 
// ---------------- Définition des seuils et blocage ----------------
let seuilECS = 0;      // Seuil mini pour ignorer blocage RouteurRAD
let seuilMaxECS = 100; // Seuil maxi pour ignorer blocage RouteurRAD
let blocageRAD = 40; // Valeur W ajoutée à "Pw" pour empêcher RAD de démarrer
 
// ---------------- Calcul de la puissance "Pw" pour RouteurRAD ----------------
let finalPowerRAD;
 
if (injectionECS > seuilECS && injectionECS < seuilMaxECS) {
    // ECS en train de monter → priorité ECS → blocage RAD entre 0 et 100%
    finalPowerRAD = finalPower + blocageRAD;
 
} else {
    // ECS = 0% ou ECS saturé 100% → RAD autorisé
    finalPowerRAD = finalPower;
}
 
// ---------------- DEBUG ----------------
// node.warn("ECS Pw = " + finalPower);
// node.warn("RAD Pw = " + finalPowerRAD);
 
// ---------------- Construction des messages MQTT ----------------
let msg1 = {
    topic: "LinkyPwToRouteurECS",
    payload: JSON.stringify({ Pw: finalPower })
};
 
let msg2 = {
    topic: "LinkyPwToRouteurRAD",
    payload: JSON.stringify({ Pw: finalPowerRAD })
};
 
// ---------------- Renvoi des deux messages ----------------
return [msg1, msg2];

Imprimer cet élément

  RMS VE – Intégration Home Assistant v0.2.3
Posté par : Geosr - 05-04-2026, 12:00 AM - Forum : Adaptation aux chargeurs VE - Réponses (6)

Bonjour à tous,

Je vous partage ici la procédure complète pour installer et utiliser l’intégration RMS VE dans Home Assistant, permettant de piloter et superviser un routeur de charge VE.
J'avais fait un premier post en utilisant les packtages.. mais c'etait pas trés propre....

Installation via HACS
1. Ajouter le dépôt
Dans Home Assistant Community Store (HACS) :

  • Aller dans Integrations
  • Menu (⋮) → Custom repositories
Ajouter :
Code :
https://github.com/Geosr600/ha-rms-ve
Type :  Integration


2. Installation:
  • Rechercher RMS VE
  • Installer
  • Redémarrer Home Assistant

Configuration
Après redémarrage :
  1. Aller dans :
    Paramètres → Appareils & Services
  2. Ajouter :
    RMS VE
Paramètres demandés :
  • Adresse IP du routeur VE
  • Nom de l’équipement
Le nom servira de base pour les entités



Feedback / contributions
N’hésitez pas à :
  • remonter des bugs
  • proposer des améliorations
  • partager vos dashboards
Repo GitHub :
https://github.com/Geosr600/ha-rms-ve

chancelog
passage en V0.2.3
- recuperation et controle des valeurs de la page configuration borne VE.
- Choix de modification de mode au branchement / débranchement
- rajout de "énergie à ajouter".

Imprimer cet élément


Utilisateurs en ligne
Il y a actuellement 193 utilisateurs connectés. » 5 Membre(s) | 184 Visiteur(s)
Applebot, Baidu, Bing, Google, 31jeje31, Chris, EG44, lahuchette, Lolo69

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