Exclusion de valeur Ecocompteur

Bonjour,

J’utilise l’Ecocompteur Legrand et je récupère mes données de puissance sur mes 5 circuits en W.
Jusqu’ici tout va bien … mais sur mon départ que j’ai appelé « Electromenager », j’ai des pics très importants.

Je n’arrive pas à résoudre ce problème niveau câblage ou autre et j’aimerais donc mettre une limite sur la valeur.
Par exemple : si Val>5000 je ne la prend pas en compte.

Pour lire la valeur du l’Ecocompteur j’utilise ceci:

  - platform: command_line
    name: EcoCompteur Electromenager
    command: curl -s 'http://192.168.1.11/inst.json' | jq '.data5'
    scan_interval: 2
    unit_of_measurement: W

Comment faire pour limiter mes pics?
Merci de votre aide.

Damien

Ma configuration


version core-2023.4.5
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.10
os_name Linux
os_version 6.1.24
arch x86_64
timezone Europe/Paris
config_dir /config

Avec ton module command_line, ca vas etre compliquer.

Tu pourrais mettre ton curl | jq dans un script bash et en bash tester si la valeur est > a 5000 , tu met 5000 (ou autre chose)
Mais, pour moi, c’est pas la bonne façon.
idéalement, tu remplace la platform command_line et tu la remplace par le module restfull
dedans, tu pourrais utiliser les templates donc facilement remplacer les valeurs supperieur a 5000, comme dans cette exemple : RESTful Sensor - Home Assistant

Merci pour ta réponse, j’ai pas tout compris je commence juste sur HA, mais je vais essayer ce bout de code:

sensor:
  - platform: rest
    name: Ecocompteur
    json_attributes:
      - data1
      - data2
      - data3
      - data4
      - data5
    resource: http://192.168.1.6/inst.json
    value_template: '{{ value_json.Date_Time }}'
 
template:
  - sensor:
      - name: "Consommation pompe à chaleur"
        state: "{{ state_attr('sensor.ecocompteur', 'data1') }}"
        unit_of_measurement: W
        device_class: power
        state_class: measurement
      - name: "Consommation machine à laver"
        state: "{{ state_attr('sensor.ecocompteur', 'data2') }}"
        unit_of_measurement: W
        device_class: power

Que j’ai trouvé ici :Eco compteur LEGRAND - #18 par jpty

Après j’aimerais faire un test de ce type:

    if(value < MIN)
        return MIN;
    else if(value > MAX)
        return MAX;
    else
        return value;

Bonsoir,
Bon je n’arrive à rien … est-ce que quelqu’un à un exemple je galère vraiment.
merci

j’ai essayé comme ceci mais ça ne fonctionne pas:

  - platform: template 
    sensors:
      conso_electromenager:
        friendly_name: 'EcoCompteur Electromenager Lim'
        entity_id: sensor.conso_electromenager
        unit_of_measurement: "W"
        value_template: >
          {% set PUI_EM = states('sensor.ecocompteur_electromenager') %}
          {% if is_state(PUI_EM, < '5999')}
            PUI_EM
          {% else %}
            0
          {% endif %}

Esseye plutot comme ca :

          {% if PUI_EM < 5999 %}
            {{ PUI_EM }}
          {% else %}
            0
          {% endif %}

Test dans les outils de développement, c’est fait pour ça :wink:

merci ça marche… en effet j’ai pas encore le reflex d’utiliser les outils de développement.
j’ai juste dû utiliser la valeur directement :

          {% set PUI_EM = states('sensor.ecocompteur_electromenage') %}
          {% if states("sensor.ecocompteur_electromenager") | float < 5999 %}
            {{ states("sensor.ecocompteur_electromenager") | float}}
          {% else %}
            0
          {% endif %}

Avec PUI_EM dans le IF ça ne fonctionne pas .
en tout cas merci

Si-si ça peut aussi fonctionné dans le if, il te manque juste des parenthèses