Ignorer l'enregistrement de valeurs supérieures à un seuil donné (statistics, utility_meter)

Bonsoir

J’ai créé des sensors statistics, utility_meter, integration et min/max.

Afin d’éviter des faux positifs, je souhaiterais savoir si il est possible d’empêcher que des valeurs supérieures à un seuil que je décide soient prises en compte ?

template :
- sensor:
    #################################################
    #####              Onduleur                  ####
    #################################################
    
    - name: "PV Puissance Totale"
      unit_of_measurement: "W"
      device_class: power
      state: >
        {{ [ states('sensor.pv2_charging_power'), 
             states('sensor.onduleur_pv_watt') ]
             | map('float') | sum }}
      availability: >
        {{ not 'unavailable' in 
           [ states('sensor.pv2_charging_power'), 
             states('sensor.onduleur_pv_watt') ] }}
sensor:
 
##### Intégration énergy puissance #####

- platform: integration
  source: sensor.onduleur_pv_watt
  name: consommation_pv1
  unit_prefix: k
  round: 1 
  
- platform: statistics
  name: "Puissance max PV1"  
  entity_id: sensor.onduleur_pv_watt
  state_characteristic: value_max
  sampling_size: 17280
    

Merci

1 « J'aime »

Je récupère des infos sur le site Web de la production en kWh cumulé sur la vie de l’onduleur
Sauf que parfois le site remonte des valeurs « 0 »
et quand on mets un 0 dans un « utility meter » , cela fait un pic énorme.

J’avais écris ce script pour filtrer ces valeurs « 0 »

Pour résumer :

  • on collecte la donnée brute
  • on copie la valeur brute dans le tag final uniquement si la valeur est supérieure a 10
  • Sinon on remets la dernière valeur du point final

NB : désolé pour les noms de variables.

  - platform: template
    sensors:
      solax_x1_total_raw:
        value_template: "{{ state_attr('sensor.solax_x1', 'yieldtotal') | float(-1) }}"
      solax_x1_total:
        friendly_name: "Solax X1 total"
        device_class: energy
        value_template: >-
          {% set truc = states('sensor.solax_x1_total_raw') | float(-1) %}
          {% set trub = states('sensor.solax_x1_total') | float(-1) %}
          {% if truc < 10 %}  
              {{ trub }}
          {% else %} 
              {{ truc }}
          {% endif %}
        unit_of_measurement: "kWh"
1 « J'aime »

Bonjour

J’ai compris le fonctionnement merci, je vais tenter de l’adapter à ma recherche

Merci