Problemes avec les kWh et le tableau Energie

Alors, peu être total :stuck_out_tongue:

5 messages ont été fusionnés à un sujet existant : [ CARTE ] Cartes diverses ( Livebox, NAS, RPI, BLE Proxy…)

Coucou, 'core moi…

Pour mon sensor sensor.capt_four_ecs_current_b, issu d’un capteur zigbee energy meter with 80A current clamp (PJ-1203A)

je n’arrive pas a avoir de statistiques.
il est tel quel, directement arrivé de Z2M
avec seulement ces 3 attributs:

  • unit_of_measurement: A
  • icon: phu:rooms-bathroom
  • friendly_name: Current_b

comment lui rajouter un state_class: measurement pour l’avoir dans mes statistiques pour faire un graphique ?

Avec customize.

homeassistant:
  customize:
    sensor.capt_four_ecs_current_b:
      state_class: measurement

Super !!! ca faisait longtemps que j’avais pas rebooté :rofl:

Salut
Quel intérêt d’avoir des statistiques long termes sur le courant ?
Et même sur la puissance.

pour l’instant, il s’agit de pouvoir obtenir le maximum de précision en ce qui concerne ma consommation électrique sur les différents postes, pour cibler des incohérences, des possibilité d’économie ou autres…
c’est encore avec des graphique que j’arrive le mieux à visualiser tout ca.
rien n’empêche de purger ces statistiques quand on n’en a plus besoin.

Alors de mon coté si j’insiste c’est uniquement par égo. Je me dis que s’il est conseiller de mettre en state_classe : total_increasing, alors il doit etre possible que ca soit le cas :crazy_face:
Mais là j’ai fais quelques test avec les modèles et je m’arrache les cheveux
Je ne comprend pas, alors que j’ai mis des valeurs arrondi, pourquoi j’obtient un résultat avec autant de décimales :exploding_head: :exploding_head:

Peut être que les calculs se font sur les chiffres avec toutes leurs décimales ce qui serait logique.
Il te suffit de mettre un round sur ton total comme tu l’as fais sur les autres

il y a un sens pour les pipes de pipes, essaye d’inverser tes float() et tes round()

un truc | float(0) | round(3) est différent d’un truc | round(3) | float(0)

aucun des sensors n’a plus de 4 chiffres apres la virgule. Donc je ne comprend pas d’ou sorstent tous les autres :confused:

Bien que comme j’ai dis, je n’ai pas autant de décimale sur mes sensors, ça semble fonctionner

okay tu me conseils d’essayer avec des pipes pour les float (ce que je n’ai pas fais j’ai préferer utiliser des ()
Je vais essayer comme ça

j’ai mon sensor « maison » qui marche plus… ???
mais j’ai vu ce message dans le paramétrage du dashboard energie…

Dernière réinitialisation manquante
Les entités suivantes ont la classe d'état 'measurement' mais 'last_reset' est manquant :
* sensor.capteur_four_energy

et quand je compare deux entités:
je ne vois pas de last reset…

sensor.capteur_four_energy     782.68   state_class: measurement
Conso Four kWh                          unit_of_measurement: kWh
                                                  device_class: energy
                                                  icon: mdi:stove
                                                  friendly_name: Conso Four kWh
sensor.prise_girier_09_energy   16.32   state_class: total_increasing
Conso Onduleur Salon kWh        unit_of_measurement: kWh
                                                  device_class: energy
                                                  icon: phu:apc-ups-upright
                                                  friendly_name: Conso Onduleur Salon kWh

alors, j’ai mis state_class: total…
a suivre.

Bonjour, alors je pense que j’ai mis le doigt sur quelque chose pour comprendre pourquoi ce total_increasing pose problème. L’explication est un peut compliqué et plutot mathématique mais je vais essayer tout de même d’être le plus claire possible :smile:

Pour ceux qui veulent la conclusion sans l’explication:

Pour mettre state_classe: total_increasing il faut que la duréé du trigger d’actualisation du sensor soit plus grande que la durée d’actualisation la plus longue des sensors qui sont écouter dans le template state.
Dans mon cas

  state: >
    {{ (float(states('sensor.lixee_base')) - 10029.630
        - float(states('sensor.smartplug_elia_energy'))
        - float(states('sensor.smartplug_1_energy'))
        - float(states('sensor.smartplug_2_energy'))
        - float(states('sensor.google_home_mini_energy'))
        - float(states('sensor.aqara_light_bulb_energy'))
        - float(states('sensor.light_mi_bulb_1s_energy'))
        - float(states('sensor.mi_bedside_lamp2_energy'))
        - float(states('sensor.chauffe_eau_energy')))  | round(3) }}

Le sensor.smartplug_1_energy s’actualise toutes les 25 minutes environ J’ai donc mis mon trigger à 30 minutes

- trigger:
    - platform: time_pattern
      minutes: "/30"

EXPLICATION (enfin tentative d’explication^^):

Au début je n’avais aucun trigger. Le sensor était donc actualiser a chaques changement d’état de l’un des capteurs présent dans le template state

Mais cela ne suffisait pas. Le trigger sur E0 n’allait pas.
Si E0 s’actualise toutes les 10 minutes et E1 s’actualise toutes les 15 minutes et E2 toutes les 7minutes, alors a T+1 nous avons un sensor qui s’actualise en prenant state = E0(T+1) - E1(T) - E2(T+1)
La valeur de E1 n’est pas changé puisque 15minutes ne sont pas écouler et la valeur est donc la même que celle prise à T

Chaque valeurs ne fait qu’augmenter. OR ce que nous mesurons entre T et T+1 c’est l’écart entre E0 et SOMME(E1+E2+E3…)
Mais si par exemple E1 n’est pas actualisé à T+1 puisqu’elle ne s’actualise que toutes les 15 minutes Alors a T+1 nous mesurons l’écart entre

  • E0 (qui représente TOUTE LA CONSO et donc contient E1(T+1) ET E2(T+1) ET E3(T+1) …)
  • et E1(T) + E2(T+1) + E3(T+1)

L’erreur est donc que nous ne soustrayons pas E1(T+1) Mais E1(T) à une donnée qui elle contient E1(T+1)
DONC à T+2, la valeur de E1 sera cette fois ci actualisée puisque a T+2 nous somme à 20minutes et donc > 15 minutes
Notre résultat à T+2 va donc calculer une somme de E1 + E2 + E3 qui sera bien supérieur à celle escompter puisque cette somme contient l’écart de 5 minutes supplémentaires du capteur E1
On a donc un écart(T+2) < écart (T+1) Ce qui nous donne une state(T+2) < state(T+1)
Ainsi une diminution de la valeur qui se constate sur le graphique des valeurs, et donc une valeur qui ne correspond pas aux conditions pour êtres une total_increasing

J’ai mis ce trigger de time_pattern cette nuit avant d’allé dormir. Et depuis je n’ai eu aucun problème, aucune valeur T+1 < T
Disparition du soucis initiale Entity sensorss.XXXXXXX from integration template has state class total_increasing, but its state is not strictly increasing.
Mon capteur ne s’actualise en revanche plus que toutes les 30 minutes (pas un soucis pour moi) mais si je veux le faire plus fréquemment il faudra que je fasse en sorte que chaques capteurs que mon template écoute s’actualisent plus rapidement que la durée que je choisirait pour mon template

Je sais que c’est hyper farfelu :crazy_face: et moi même j’ai beaucoup de mal a me conceptualiser cela dans ma tête, j’ai essayer d’expliquer comme je pouvais, j’espère que certaine.es d’entre vous comprendrons quand même :pray:
Je croise le doigts pour que ça soit bon et que ça soit pas un coup de chance de ma part depuis 14h qde ne pas avoir eu de valeurs négatif XD

1 « J'aime »