Capteur tendance pour identifier heures pleines/creuses

Bonjour,

J’ai une offre électricité heure pleine/creuse avec des plages horaires à la c#! et susceptibles de varier.
Je souhaite mettre en place un binary_sensor qui indique un état on/off pour la période pleine et la période creuse.
Il semble que le helper « tendance » (ou Trend en anglais) réponde parfaitement à mon besoin.
Je l’utilise d’ailleurs pour déterminer si la T°C extérieure augmente ou diminue, aucun souci.

Mon problème

J’ai un module Lixee configuré avec ZHA.
Il me renvoie les relevés de compteur total, heure pleine, heure creuse.
J’ai configuré un trend sensor sur chaque entité. Si la valeur du compteur change, ça déclenche le capteur et son état passe en « on ». Ça fonctionne bien.

En revanche, ça ne fonctionne pas dans l’autre sens quand le compteur ne s’incrémente plus. Il ne repasse pas en « off ».
Je pense que ça doit avoir un rapport avec la période de rafraîchissement. Si le compteur n’incrémente pas, il ne renvoie aucune valeur. Je me retrouve avec des « trous » de plusieurs heures. Le sample_count passe à 0, le capteur reste en « on » au lieu de passer en « off », et pourtant, le gradient vaut bien 0.

Sur l’image ci-dessous, ça devrait repasser en « off » à 7h00.

Voici les attributs du capteur à 9h00 :

entity_id: sensor.lixee_zlinky_tic_tier_1_summation_delivered
friendly_name: Tendance heures creuses
gradient: 0
invert: false
min_gradient: 0.00001
sample_count: 0
sample_duration: 60

Et les attributs du capteur « heures pleines » au même moment :

entity_id: sensor.lixee_zlinky_tic_tier_2_summation_delivered
friendly_name: Tendance heures pleines
gradient: 0.00013581412802585099
invert: false
min_gradient: 0.00001
sample_count: 2
sample_duration: 60

Si quelqu’un a réussi à trouver une parade à ce problème… Je suis preneur !
Merci :wink:

Je ne sais pas ce que retourne ton Lixee mais dans les trames TIC du compteur, si tu es en mode Historique (page 15 de la notice) , tu as l’info PTEC qui te dit si tu es en heure pleine (valeur=‹ HP… ›) ou en heure creuse (valeur=‹ HC… ›). Et en mode Standard, tu dois avoir l’info LTARF

Par défaut, les Linky sont en mode Historique et généralement, on passe en mode Standard quand on est producteur d’électricité (panneaux photovoltaïques)

Notice : https://www.enedis.fr/media/2035/download

1 « J'aime »

Salut,
sauf que ce sensor, n’est pas précis, j’ai un décalage de 30sec a 10min.
mes heures creuse de 23h02 a 7h02:

Ah, pas de bol. Faut donc effectivement se reposer sur les indexes HC et HP

Le bug a été remonté , il faut attendre un fix sur le Zlinky.

Donc l’info dans la trame TIC est bien mise à jour ‹ instantanément › mais c’est le ZLinky qui introduit ce retard

1 « J'aime »

Merci pour les réponses.

Je suis en mode Standard (j’avais fait la demande) pour avoir un rafraîchissement toutes les 7 secondes.

En revanche, le Zlinky tourne sous ZHA et je n’ai aucune entité/attribut d’indication de tarif, d’où le besoin de créer un sensor spécifique.

Je reviens avec une solution qui fonctionne pas trop mal.
Après quelques recherches, il s’avère que le sensor « tendance » ne fonctionne pas bien si la valeur du capteur mesuré ne se met pas à jour. Si mon compteur heure creuse kWh n’évolue plus, il ne renvoie plus de valeur, et le sensor tendance ne recalcule pas de nouvelle valeur.

J’ai donc crée un sensor « template » à partir de la plateforme time_pattern.
Ce nouveau sensor va scruter la valeur du compteur heure creuse et l’enregistrer toutes les 10 secondes. J’ai dû également rajouter l’attribut time: "{{ now() }}" pour que ça fonctionne bien.
Voilà à ce que ça donne dans le fichier de configuration (templates.yaml) :

- trigger:
    - platform: time_pattern
      seconds: "/10"
  sensor: 
    - name: "Compteur kWh HC"
      unit_of_measurement: "kWh"
      state: "{{states('sensor.lixee_zlinky_tic_tier_1_summation_delivered') | float }}"
      attributes:
        time: "{{ now() }}"

Le déclenchement ne peut pas être instantané, il y a un décalage d’une minute, mais c’est volontaire. En effet, la valeur du compteur est précise à 1Wh près, soit 0.001kWh.
Ma conso mini est de l’ordre de 250W. Pour incrémenter le compteur de 1Wh, il faut que je consomme 250W pendant au moins 15 secondes. Il me faut donc suffisamment d’échantillons (pour rappel, une valeur toutes les 10 secondes), pour éviter de se retrouver avec une valeur de gradient de 0, alors qu’il s’incrémente bien.