Mini graph card multi courbe

Salut les pro
j’ai besoin de votre aide car je cale sur ce coup comme d’habitude :slight_smile:
je n’arrive pas a avoir 3 belles courbes meme avec Y_axis.
Temperature, pression et humidite voici mon code

entities:
  - color: green
    entity: sensor.multi_sensor_parents
    name: Temperature
    y_axis: secondary
  - color: red
    entity: sensor.multi_sensor_parents_2
    name: Humidité
  - color: yellow
    entity: sensor.multi_sensor_parents_3
    y_axis: secondary
extrema: true
icon: 'mdi:thermometer'
labels: true
name: Speedtest
line_width: 1
points: true
show: null
type: 'custom:mini-graph-card' 

Capture

Je vous remercie d’avance et si vous avez mieux je prends aussiCapture

Bon noël à toi @nonome1 et à toute ta famille.

Je pense que ton problème d’affichage de courbe vient du fait que la température oscille entre 0 et 25 alors que la pression tournera autour de 1015.
Ce que l’on voit sur ton graphique, la courbe de pression reste très linéaire car l’échelle de ton graph sur l’axe y va de la température la plus faible (~18°C) à la pression la plus forte (1020 hPa). Tu vois donc une « droite » de pression en haut du graph et, masqué dans l’axe des abscisses en bas, une « droite » des températures.
La seule courbe « lisible » est celle qui est sur un axe y avec sa propre échelle : l’humidité.
Pour afficher les 3 courbes sur le même graphique, il faudra qu’au moins 2 des 3 aient le même ordre de grandeur pour que l’on puisse voir l’évolution sur le graph.

Il faudrait ramener la courbe de pression à une échelle équivalente à la température.
Il te faudra calculer un coefficient de correction de la pression, pour ça tu prends :

  • la pression mini qui pourrait y avoir chez toi : Pmin
  • la pression maxi qui pourrait y avoir chez toi : Pmax
  • la température mini qui pourrait y avoir chez toi : Tmin
  • la température maxi qui pourrait y avoir chez toi : Tmax

A faire une seule fois « à la main »
Calcul du coefficient (à affiner en fonction du rendu) :

  • coeff = (Pmax - Pmin) / (Tmax - Tmin)

A faire par HA
Ensuite pour chaque pression, il faut calculer un autre sensor Pcalc :

  • Pcalc = ( Pcourante - Pmini ) / coeff

Et tu affiches cet autre sensor à la place de sensor.multi_sensor_parents_3

Autre solution plus simple, mais qui ne te conviendra peut-être pas, afficher toutes les courbes d’une même unité ensemble. Les pressions ensembles, les températures ensembles, etc …

1 « J'aime »

Merci Sylvain pour ses directives, je ne sais pas trop comment m’y prendre pour programmermais je devrais trouver en fouillant un peu partout.
J’espere que le pere Noel a gater toute la famille. Biz

Je partirais sur un modèle (template), avec des input_number pour toutes les valeurs de configuration afin de tout gérer depuis Lovelace et ne pas faire de calcul à la main et surtout pouvoir ajuster rapidement et facilement.

Pas le temps pour donner les exemples, plus tard dans la semaine :+1:

merci Clemalex :wink: et bonne journée de Noel

1 « J'aime »

ça m’intéresse, je ne connais pas les modèles. Je lirais tes exemples et tes explications la semaine prochaine avec plaisir :grin:
Toujours à la recherche d’explications claires en :fr: :grin:

Ca restera le même principe qu’ici :

https://forum.hacf.fr/t/automatisation-avec-input-number-cover/1320

Du coup, voici le code qui représente les calculs de @Sylvain_G :

Ca donne en YAML :

  • 4 entités input_number : une par paramètre (Pmin, Pmax, Tmin et Tmax).
  • 1 entité sensor.pression_coeff : représente le coefficient de correction qui est ainsi calculé une seul fois dans HA (Coeff)
  • 1 entité sensor.p_calc_multi_sensor_parents_3 de la classe pressure : représente la valeur de la pression corrigée (Pcalc)
input_number:
  pmin:
    name: Pmin
    mode: box
    min: 1000
    max: 2000
  pmax:
    name: Pmax
    mode: box
    min: 1000
    max: 2000
  tmin:
    name: Tmin
    mode: box
    min: 1
    max: 40
  tmax:
    name: Tmax
    mode: box
    min: 1
    max: 40
sensor:
  - platform: template
    sensors:
      pression_coeff:
        friendly_name: "Pression (coeff)"
        value_template: >
          {% set Coeff = (states('input_number.pmax')|float - states('input_number.pmin')|float )/ (states('input_number.tmax')|float - states('input_number.tmin')|float) %}
          {{ Coeff }}
  - platform: template
    sensors:
      p_calc_multi_sensor_parents_3:
        friendly_name: "Pression Parents (coeff)"
        value_template: >
          {% set Pcalc = (states('sensor.multi_sensor_parents_3')|float - states('input_number.pmin')|float) / states('sensor.pression_coeff')|float %}
          {{ Pcalc }}
        device_class: pressure
1 « J'aime »

Merci a vous je vais tester ca prochainement je vous donne mon retour :grinning: