Custom:gauge-card-pro

Bonjour,

J’essaye de faire une jauge dégradée pour mon imprimante 3d, couche actuelle/nombre de couches totale, mais le dégradé n’a pas l’air de se faire et la position de l’aiguille n’a pas l’air cohérente avec la valeur maximale.

type: custom:gauge-card-pro
entity: sensor.bambu_lab_a1_couche_actuelle
entity2: sensor.bambu_lab_a1_nombre_total_de_couches
needle: true
min: "0"
max: states('sensor.bambu_lab_a1_nombre_total_de_couches') | float %}
segments: >-
  {% set max = states('sensor.bambu_lab_a1_nombre_total_de_couches') | float %}

  {% set un = max/4 | round(0) %} 

  {% set deux = max /2 | round(0) %}

  {% set trois = (max *3)/4 | round(0) %}

  {{
    [
      { "from": 0, "color": "#4caf50" },
      { "from": un, "color": "#8bc34a" },
      { "from": deux, "color": "#ffeb3b" },
      { "from": trois, "color": "#ff9800" },
      { "from": max, "color": "#f44336" }
    ]
  }}
gradient: true
gradient_resolution: high
value_texts:
  primary: "{{ states(entity2) | float | round(0) }}"
  secondary: "{{ states(entity) | float | round(0) }}"
titles:
  primary: Couche actuelle
gradient_background: true

Et ça donne :

Je ne vois pas la boulette que j’ai faite.
Merci pour votre aide :wink:

Hello,

ce ne serait pas ta manière de créer le dégradé qui cloche ? (notamment les un deux trois…)
Dans la doc c’est exprimé de différents manière, par exemple comme ça:

segments:
  - from: 0
    color: red
  - from: 25
    color: "#FFA500"
  - from: 50
    color: rgb(255, 255, 0)
  - from: 100
    color: var(--green-color)

Tu peux regarder ici :

Bonjour,
en bas de la page, il y a ça :

segments: |-
  {% set max = states('sensor.max_sensor') | float %}
  {{
    [
      { "from": 0, "color": "#4caf50" },
      { "from": 25, "color": "#8bc34a" },
      { "from": 50, "color": "#ffeb3b" },
      { "from": 75, "color": "#ff9800" },
      { "from": 100, "color": "#f44336" },
      { "from": 125, "color": "#926bc7" },
      { "from": max, "color":"#795548"  }
    ]
  }}

ou ça dans un autre exemple :

segments:
  - from: 18
    color: var(--blue-color)
  - from: 18.5
    color: var(--light-blue-color)
  - from: 19
    color: var(--light-green-color)
  - from: 20
    color: var(--light-green-color)
  - from: 20.5
    color: var(--orange-color)
  - from: 21
    color: var(--red-color)

Donc des valeurs intermédiaires calculées/fixées par rapport à un maximum, c’est ce que je voulais faire, 1/4, 1/2 et 3/4 calculés par rapport au nombre de couches max qui change à chaque impression, mais c’est peut-être pas possible actuellement.

Merci.

Le problème je pense est que la carte attend des valeurs pour les bornes de couleur, alors que tes valeurs sont un,deux, etc. qui sont des textes. Si j’étais toi, j’essaierais de créér une valeur numérique entre 1 et 4.

1 « J'aime »

Du coup, je fais comme ça :

type: custom:gauge-card-pro
entity: sensor.bambu_lab_a1_couche_actuelle
entity2: sensor.bambu_lab_a1_nombre_total_de_couches
needle: true
min: "0"
max: states('sensor.bambu_lab_a1_nombre_total_de_couches') | float %}
segments: |-
  {% set max = states('sensor.bambu_lab_a1_nombre_total_de_couches') | float %}
  {{
    [
      { "from": 0, "color": "#4caf50" },
      { "from": 25, "color": "green" },
      { "from": 50, "color": "yellow" },
      { "from": 75, "color": "orange" },
      { "from": 100, "color": "red"  },
      { "from": max, "color": "black"  }
    ]
  }}
gradient: true
gradient_resolution: high
value_texts:
  primary: "{{ states(entity2) | float | round(0) }}"
  secondary: "{{ states(entity) | float | round(0) }} /"
titles:
  primary: Couche actuelle
gradient_background: true

Mais il y a quand même un bug pour la valeur de l’aiguille par rapport au max

Bon, ça fonctionne avec des valeurs intermédiaires calculées

type: custom:gauge-card-pro
entity: sensor.bambu_lab_a1_couche_actuelle
entity2: sensor.bambu_lab_a1_nombre_total_de_couches
needle: true
min: "0"
max: "{{states('sensor.bambu_lab_a1_nombre_total_de_couches') | float}} "
segments: |-
  {% set max = states('sensor.bambu_lab_a1_nombre_total_de_couches') | float %}
  {% set un = max/4 | round(0) %} 

  {% set deux = max /2 | round(0) %}

  {% set trois = (max *3)/4 | round(0) %}

  {{
    [
      { "from": 0, "color": "#4caf50" },
      { "from": un, "color": "#8bc34a" },
      { "from": deux, "color": "#ffeb3b" },
      { "from": trois, "color": "#ff9800" },
      { "from": max, "color": "#f44336" }
    ]
  }}
gradient: true
gradient_resolution: high
value_texts:
  primary: "{{ states(entity2) | float | round(0) }}"
  secondary: "{{ states(entity) | float | round(0) }} /"
  secondary_font_size_reduction: -15
titles:
  primary: Couche actuelle
gradient_background: true

Et l’aiguille est correcte maintenant

La boulette était de
max: states('sensor.bambu_lab_a1_nombre_total_de_couches') | float %}
à ça
max: "{{states('sensor.bambu_lab_a1_nombre_total_de_couches') | float}}"

Bonjour,
il faudrait mieux mettre | float(0) pour éviter des erreurs dans le journal au redémarrage de HA.

Ca m’a semblé bizarre aussi comme écriture, mais comme c’était dans les exemples, tels quels, j’ai recopié :wink:

1 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.