Température sur carte APEX

Bonsoir,
Je n’arrive pas a comprendre pourquoi mes températures ext max restent tout en haut de mon graphique?

Voici le YAML de la carte APEX:

type: custom:apexcharts-card
graph_span: 7d
span:
  end: day
stacked: true
header:
  show: true
  title: Consomation PAC à 7 jours
apex_config:
  yaxis:
    - title:
        text: kWh
      decimalsInFloat: 0
      max: 30
    - title:
        text: °C
      decimalsInFloat: 0
      max: 30
      opposite: true
  chart:
    type: area
    height: 510
  stroke:
    show: true
    width: 1
    curve: smooth
  fill:
    type: gradient
    gradient:
      shadeIntensity: 0.1
      opacityFrom: 0.25
      opacityTo: 1
      inverseColors: true
      stops:
        - 0
        - 90
        - 100
series:
  - entity: sensor.consommation_du_jour_pac
    color: rgb(0,255,0)
    type: column
    name: Consomation du jour
    group_by:
      func: diff
      duration: 24h
    show:
      datalabels: true
  - entity: sensor.temp_mini_to_day
    type: line
    name: Temp ext mini
    color: rgb(255,0,0)
    group_by:
      func: avg
      duration: 24h
    show:
      datalabels: true
  - entity: sensor.temp_max_to_day
    yaxis_id: °C
    type: line
    name: Temp ext max
    color: rgb(0,0,255)
    group_by:
      func: avg
      duration: 24h
    show:
      datalabels: true

J’ai crée 2 sensors pour récupérer le max et le mini de la température extérieure a partit du plugin météo france:

####
# Température mini
####
      temp_mini_to_day:
        value_template: >-
          {{ state_attr('weather.provin', 'forecast')[0].templow }}
        unit_of_measurement: "°C"
####
# Température max
####
      temp_max_to_day:
        value_template: >-
          {{ state_attr('weather.provin', 'forecast')[0].temperature }}
        unit_of_measurement: "°C"

Philippe

Salut

A vue de nez je dirai que tu as défini 2yaxis mais sans leur donner d’id et dans les séries tu ne leur dis pas nom plus quel axe y utiliser du coup.
Je suis pas complétement sur mais à tester.

exemple :

      yaxis:
        - id: sensor.msunpv_outbal
          max: 100
          decimals: 0
          apex_config:
            tickAmount: 4
        - id: binary_sensor.msunpv_s2
          opposite: true
          max: 1
          decimals: 0
          apex_config:
            tickAmount: 1
      series:
        - entity: sensor.msunpv_outbal
          yaxis_id: sensor.msunpv_outbal
          transform: return x / 4;
          fill_raw: last
          group_by:
            func: last
            duration: 600s
          type: column
          show:
            legend_value: false
        - entity: binary_sensor.msunpv_s2
          yaxis_id: binary_sensor.msunpv_s2
          extend_to: now
          name: Sortie 2
          transform: 'return x === ''on'' ? 1 : 0;'
          fill_raw: last
          group_by:
            func: last
            duration: 600s
          type: line
          show:
            legend_value: false
            hidden_by_default: true

Ou peut être même plus simplement sur ta série max tu lui dis d’utiliser un yaxis_id: °C qu’il ne trouve pas et du coup mes les valeurs ou bon lui semble. essai peut être de virer simplement cette ligne.

Merci @Tochy pour ta réponse.

J’ai réécrit ma carte APEX en prenant en compte tes remarques.

type: custom:apexcharts-card
graph_span: 7d
span:
  end: day
header:
  show: true
  title: Consomation PAC à 7 jours
apex_config:
  yaxis:
    - id: power
      mini: auto
      max: auto
      decimalsInFloat: 0
    - id: temp
      mini: 0
      max: 20
      decimalsInFloat: 0
      opposite: true
  chart:
    type: area
    height: 510
  fill:
    type: gradient
    gradient:
      shadeIntensity: 0.1
      opacityFrom: 0.25
      opacityTo: 1
      inverseColors: true
      stops:
        - 0
        - 90
        - 100
series:
  - entity: sensor.consommation_du_jour_pac
    yaxis_id: power
    color: rgb(0,255,0)
    type: column
    name: Consomation du jour
    group_by:
      func: diff
      duration: 24h
    show:
      datalabels: true
  - entity: sensor.temp_mini_to_day
    yaxis_id: temp
    type: line
    name: Temp ext mini
    color: rgb(255,0,0)
    group_by:
      func: last
      duration: 24h
    show:
      datalabels: true
  - entity: sensor.temp_max_to_day
    yaxis_id: temp
    type: line
    name: Temp ext max
    color: rgb(0,0,255)
    group_by:
      func: last
      duration: 24h
    show:
      datalabels: true

Mais la seconde courbe de température n’est toujours pas à la bonne place.


J’ai même fais une seconde carte en inversant les courbes, même résultat une courbe ne se place pas au bon endroit.

Salut

Je viens de faire un test de mon coté et j’ai le même comportement que toi, la 3eme courbe se place mal.
Cependant en enlevant les yaxis cela semble fonctionner.

Fait un essai comme cela :

type: custom:apexcharts-card
graph_span: 7d
span:
  end: day
header:
  show: true
  title: Consomation PAC à 7 jours
apex_config:
  chart:
    type: area
    height: 510
  fill:
    type: gradient
    gradient:
      shadeIntensity: 0.1
      opacityFrom: 0.25
      opacityTo: 1
      inverseColors: true
      stops:
        - 0
        - 90
        - 100
series:
  - entity: sensor.consommation_du_jour_pac
    color: rgb(0,255,0)
    type: column
    name: Consomation du jour
    group_by:
      func: diff
      duration: 24h
    show:
      datalabels: true
  - entity: sensor.temp_mini_to_day
    type: line
    name: Temp ext mini
    color: rgb(255,0,0)
    group_by:
      func: last
      duration: 24h
    show:
      datalabels: true
  - entity: sensor.temp_max_to_day
    type: line
    name: Temp ext max
    color: rgb(0,0,255)
    group_by:
      func: last
      duration: 24h
    show:
      datalabels: true

Tu perds l’axe à droite mais les points sont bien placés, en tout cas sur mon essai.

Effectivement, c’est aussi lisible.


Merci @Tochy