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.
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)
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) :
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.