Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
MQTT et signe de la puissance envoyée
#1
Bonjour
J'ai un compteur d'energie zigbee avec pince ampèremétrique type PJ-MGW1203 et j'envoie avec home assistant la puissance mesurée "sensor.0xxxx_power_a" au routeur solaire avec MQTT.
Ça fonctionne très bien, mais le problème, c'est qu'avec ce compteur, la valeur n'est pas signée
Le compteur est bien bidirectionnel mais cette direction est donnée par une autre entité "sensor.0xxxx_energy_flow_a" qui prend la valeur "consuming" ou "producing"
Avez-vous une idée pour transformer la valeur "producing" en signe "-" avant de l'envoyer à l'esp32.
Merci d'avance pour votre aide.
Répondre
#2
Bonjour,

Pour ce genre de manipulation j'ai pour habitude d'avoir recours à des flux NODE-Red.
Ça ajoute un peu de latence, mais ça fonctionne ;-)

Cordialement
Enphase -> Node-RED -> Source MQTT
3x IQ7+/3x 375WhC + 4x IQ8MC/4x 400WhC
1x Routeur 12.06_Custom -> CES 2,5kW
Domotique gérée sous Jeedom 4.4.19 (DIY VMM Synology)
Répondre
#3
(03-01-2025, 09:08 AM)Nalexdouze a écrit : Bonjour,

Pour ce genre de manipulation j'ai pour habitude d'avoir recours à des flux NODE-Red.
Ça ajoute un peu de latence, mais ça fonctionne ;-)

Cordialement

Bonjour,
Après avoir fait plusieurs essais sans succès, je me suis aperçu que mon compteur était paramétrable et qu'il pouvait envoyer la valeur signée.
Mon problème est donc réglé mais, merci beaucoup pour votre réponse car je vais quand même regarder NODE-Red que je ne connais pas du tout.
Cordialement.
Répondre
#4
Bonjour,

J'ai un compteur d'énergie Zigbee identique et j'ai demandé à ChatGPT de m'aider il faut crée un template dans home assistant qui va faire ca :

Voici un template pour un capteur personnalisé qui ajuste la valeur d'un capteur d'énergie (sensor.energy) pour qu'elle soit négative lorsque le capteur d'état (sensor.status) affiche producing et positive lorsqu'il affiche consuming :

Dans Parametres --> Appareil --> Ajouter une intégration -> Template --> Modéliser un capteur --> tu rentres le nom du capteur et dans Modèle de l'état du colle ca : 

          {% set energy = states('sensor.energy') | float %}
          {% set status = states('sensor.status') %}
          {% if status == 'producing' %}
            {{ -energy }}
          {% elif status == 'consuming' %}
            {{ energy }}
          {% else %}
            0  # Valeur par défaut si l'état est inconnu
          {% endif %}

Il suffit de changer le nom des sensors par les tiens selon l'explication ci-dessous de ChatGPT

Explications :

sensor.energy :
Le capteur d'énergie de base (par exemple, la production ou la consommation en kWh).

sensor.status :
Un capteur qui indique si l'énergie est en mode producing (production) ou consuming (consommation).
Logique :

Si sensor.status est producing, l'énergie devient négative.
Si sensor.status est consuming, l'énergie reste positive.
Si le statut est autre chose ou inconnu, le capteur retourne 0.

Exemple de Scénarios
Exemple 1 :
sensor.energy = 5 kWh
sensor.status = producing
Résultat : -5 kWh
Exemple 2 :
sensor.energy = 10 kWh
sensor.status = consuming
Résultat : 10 kWh

Bonne chance
Répondre


Atteindre :


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