Comment cacher une courbe en fonction d'une entité avec plotly-graph

Mon problème

J’utilise plotly-graph pour faire une représentation schématique de certaines pièces dans une maison.
Dans cette maison, j’ai des zones qui restent fixes et d’autres qui bougent. Mais surtout certaines zones doivent apparaître ou disparaitre en fonction de l’état d’une entité.

Je me dis que le teste à faire c’est quelque chose comme ça :
hass.states["switch.zout2_enable"].state == "on"
Mais j’ai beau retourner le problème dans tous les sens, je n’arrive pas à comprendre comment faire disparaître une zone en fonction de l’état de mon switch.

Voici le code complet pour info
type: custom:plotly-graph
title: Zones
refresh_interval: 2
hours_to_show: current_day
ha_theme: true
layout:
  legend:
    'y': 8000
    orientation: h
  autosize: true
  margin:
    autoexpand: true
    l: 50
    r: 20
    t: 20
    b: 40
  showlegend: true
  xaxis:
    dtick: 1000
    gridcolor: RGBA(200,200,200,0.15)
    zerolinecolor: RGBA(200,200,200,0.15)
    type: number
    fixedrange: true
    range:
      - -4000
      - 4000
  yaxis:
    dtick: 1000
    gridcolor: RGBA(200,200,200,0.15)
    zerolinecolor: RGBA(200,200,200,0.15)
    scaleanchor: x
    scaleratio: 1
    fixedrange: true
    range:
      - 8000
      - 0
entities:
  - entity: ''
    name: Person1
    show_value: true
    unit_of_measurement: mm
    marker:
      size: 12
    line:
      shape: spline
      width: 5
    x:
      - $ex hass.states["sensor.target1_x"].state
    'y':
      - $ex hass.states["sensor.target1_y"].state
  - entity: ''
    name: Person2
    show_value: true
    unit_of_measurement: mm
    marker:
      size: 12
    line:
      shape: spline
      width: 5
    x:
      - $ex hass.states["sensor.target2_x"].state
    'y':
      - $ex hass.states["sensor.target2_y"].state
  - entity: ''
    name: Person3
    show_value: true
    unit_of_measurement: mm
    marker:
      size: 12
    line:
      shape: spline
      width: 5
    x:
      - $ex hass.states["sensor.target3_x"].state
    'y':
      - $ex hass.states["sensor.target3_y"].state
  - entity: ''
    name: Zone1
    mode: lines
    fill: toself
    fillcolor: RGBA(20,200,0,0.1)
    line:
      color: RGBA(20,200,0,0.4)
      shape: line
      width: 2
    x:
      - $ex hass.states["number.zone1_x_begin"].state
      - $ex hass.states["number.zone1_x_begin"].state
      - $ex hass.states["number.zone1_x_end"].state
      - $ex hass.states["number.zone1_x_end"].state
      - $ex hass.states["number.zone1_x_begin"].state
    'y':
      - $ex hass.states["number.zone1_y_begin"].state
      - $ex hass.states["number.zone1_y_end"].state
      - $ex hass.states["number.zone1_y_end"].state
      - $ex hass.states["number.zone1_y_begin"].state
      - $ex hass.states["number.zone1_y_begin"].state
  - entity: ''
    name: Zone2
    mode: lines
    fill: toself
    fillcolor: RGBA(255,233,107,0.1)
    line:
      color: RGBA(255,233,107,0.4)
      shape: line
      width: 2
    x:
      - $ex hass.states["number.zone2_x_begin"].state
      - $ex hass.states["number.zone2_x_begin"].state
      - $ex hass.states["number.zone2_x_end"].state
      - $ex hass.states["number.zone2_x_end"].state
      - $ex hass.states["number.zone2_x_begin"].state
    'y':
      - $ex hass.states["number.zone2_y_begin"].state
      - $ex hass.states["number.zone2_y_end"].state
      - $ex hass.states["number.zone2_y_end"].state
      - $ex hass.states["number.zone2_y_begin"].state
      - $ex hass.states["number.zone2_y_begin"].state
  - entity: ''
    name: Zone3
    mode: lines
    fill: toself
    fillcolor: RGBA(0,137,207,0.1)
    line:
      color: RGBA(0,137,207,0.4)
      shape: line
      width: 2
    x:
      - $ex hass.states["number.zone3_x_begin"].state
      - $ex hass.states["number.zone3_x_begin"].state
      - $ex hass.states["number.zone3_x_end"].state
      - $ex hass.states["number.zone3_x_end"].state
      - $ex hass.states["number.zone3_x_begin"].state
    'y':
      - $ex hass.states["number.zone3_y_begin"].state
      - $ex hass.states["number.zone3_y_end"].state
      - $ex hass.states["number.zone3_y_end"].state
      - $ex hass.states["number.zone3_y_begin"].state
      - $ex hass.states["number.zone3_y_begin"].state
  - entity: ''
    name: Zone4
    mode: lines
    fill: toself
    fillcolor: RGBA(0,169,164,0.1)
    line:
      color: RGBA(0,169,164,0.4)
      shape: line
      width: 2
    x:
      - $ex hass.states["number.zone4_x_begin"].state
      - $ex hass.states["number.zone4_x_begin"].state
      - $ex hass.states["number.zone4_x_end"].state
      - $ex hass.states["number.zone4_x_end"].state
      - $ex hass.states["number.zone4_x_begin"].state
    'y':
      - $ex hass.states["number.zone4_y_begin"].state
      - $ex hass.states["number.zone4_y_end"].state
      - $ex hass.states["number.zone4_y_end"].state
      - $ex hass.states["number.zone4_y_begin"].state
      - $ex hass.states["number.zone4_y_begin"].state
  - entity: ''
    name: Zone5
    mode: lines
    fill: toself
    fillcolor: RGBA(244,143,159,0.1)
    line:
      color: RGBA(244,143,159,0.4)
      shape: line
      width: 2
    x:
      - $ex hass.states["number.zone5_x_begin"].state
      - $ex hass.states["number.zone5_x_begin"].state
      - $ex hass.states["number.zone5_x_end"].state
      - $ex hass.states["number.zone5_x_end"].state
      - $ex hass.states["number.zone5_x_begin"].state
    'y':
      - $ex hass.states["number.zone5_y_begin"].state
      - $ex hass.states["number.zone5_y_end"].state
      - $ex hass.states["number.zone5_y_end"].state
      - $ex hass.states["number.zone5_y_begin"].state
      - $ex hass.states["number.zone5_y_begin"].state
  - entity: ''
    name: Zone6
    mode: lines
    fill: toself
    fillcolor: RGBA(255,194,34,0.1)
    line:
      color: RGBA(255,194,34,0.4)
      shape: line
      width: 2
    x:
      - $ex hass.states["number.zone6_x_begin"].state
      - $ex hass.states["number.zone6_x_begin"].state
      - $ex hass.states["number.zone6_x_end"].state
      - $ex hass.states["number.zone6_x_end"].state
      - $ex hass.states["number.zone6_x_begin"].state
    'y':
      - $ex hass.states["number.zone6_y_begin"].state
      - $ex hass.states["number.zone6_y_end"].state
      - $ex hass.states["number.zone6_y_end"].state
      - $ex hass.states["number.zone6_y_begin"].state
      - $ex hass.states["number.zone6_y_begin"].state
  - entity: ''
    name: Zout1
    mode: lines
    fill: toself
    fillcolor: RGBA(238,48,78,0.2)
    line:
      color: RGBA(238,48,78,0.4)
      width: 3
      dash: dash
    x:
      - $ex hass.states["number.zout1_x_begin"].state
      - $ex hass.states["number.zout1_x_begin"].state
      - $ex hass.states["number.zout1_x_end"].state
      - $ex hass.states["number.zout1_x_end"].state
      - $ex hass.states["number.zout1_x_begin"].state
    'y':
      - $ex hass.states["number.zout1_y_begin"].state
      - $ex hass.states["number.zout1_y_end"].state
      - $ex hass.states["number.zout1_y_end"].state
      - $ex hass.states["number.zout1_y_begin"].state
      - $ex hass.states["number.zout1_y_begin"].state
  - entity: ''
    name: Zout2
    mode: lines
    fill: toself
    fillcolor: RGBA(215,11,140,0.2)
    line:
      color: RGBA(215,11,140,0.4)
      width: 3
      dash: hass.states["switch.zout2_enable"].state == "on"
        
    x:
      - $ex hass.states["number.zout2_x_begin"].state
      - $ex hass.states["number.zout2_x_begin"].state
      - $ex hass.states["number.zout2_x_end"].state
      - $ex hass.states["number.zout2_x_end"].state
      - $ex hass.states["number.zout2_x_begin"].state
    'y':
      - $ex hass.states["number.zout2_y_begin"].state
      - $ex hass.states["number.zout2_y_end"].state
      - $ex hass.states["number.zout2_y_end"].state
      - $ex hass.states["number.zout2_y_begin"].state
      - $ex hass.states["number.zout2_y_begin"].state
  - entity: ''
    name: Zout3
    mode: lines
    fill: toself
    fillcolor: RGBA(255,48,140,0.2)
    line:
      color: RGBA(246,140,30,0.4)
      width: 3
      dash: dash
    x:
      - $ex hass.states["number.zout3_x_begin"].state
      - $ex hass.states["number.zout3_x_begin"].state
      - $ex hass.states["number.zout3_x_end"].state
      - $ex hass.states["number.zout3_x_end"].state
      - $ex hass.states["number.zout3_x_begin"].state
    'y':
      - $ex hass.states["number.zout3_y_begin"].state
      - $ex hass.states["number.zout3_y_end"].state
      - $ex hass.states["number.zout3_y_end"].state
      - $ex hass.states["number.zout3_y_begin"].state
      - $ex hass.states["number.zout3_y_begin"].state
  - entity: ''
    name: Coverage
    mode: lines
    fill: tonexty
    fillcolor: rgba(168, 216, 234, 0.08)
    line:
      width: 1
      dash: dot
    x:
      - 0
      - 1000
      - 3700
      - 3500
      - 2000
      - 0
      - -2000
      - -3500
      - -3700
      - -1000
      - 0
    'y':
      - 0
      - 500
      - 3700
      - 6000
      - 7400
      - 8000
      - 7400
      - 6000
      - 3700
      - 500
      - 0
raw_plotly_config: true

J’ai beau fouiller sur le web francophone ou anglophone, je séche…

Merci d’avance à ceux et celles qui m’aideront.

Je précise mon besoin, car je n’ai pas été assez clair.
J’aimerais utiliser la valeur de la transparence de la zone pour pouvoir la rendre visible ou non.
Je partage ci-dessous le test qui me semble le plus proche de ce que ça devrait être. Mais bien sûr, malheureusement, ça ne fonctionne pas…

  - entity: ''
    name: Zout2
    mode: lines
    fill: toself
    fillcolor: >-
      {% if states.switch.zout2_enable.state == 'on' -%} rgba(215,11,140,0.2)
      {%- else -%} rgba(0,0,0,0)
      {%- endif %}
    line:
      color: rgba(215,11,140, 0.4)
      width: 3
      dash: dash
    x:
      - $ex hass.states["number.zout2_x_begin"].state
      - $ex hass.states["number.zout2_x_begin"].state
      - $ex hass.states["number.zout2_x_end"].state
      - $ex hass.states["number.zout2_x_end"].state
      - $ex hass.states["number.zout2_x_begin"].state
    'y':
      - $ex hass.states["number.zout2_y_begin"].state
      - $ex hass.states["number.zout2_y_end"].state
      - $ex hass.states["number.zout2_y_end"].state
      - $ex hass.states["number.zout2_y_begin"].state
      - $ex hass.states["number.zout2_y_begin"].state

Et voilà la solution

  - entity: ''
    name: Zout2
    mode: lines
    fill: toself
    fillcolor: >-
      $ex hass.states["switch.zout2_enable"].state == "on" ?
      "RGBA(215,11,140,0.2)" : "RGBA(0,0,0,0)" 
    line:
      color: >-
        $ex hass.states["switch.zout2_enable"].state == "on" ?
        "RGBA(215,11,140, 0.4)" : "RGBA(0,0,0,0)" 
      width: 3
      dash: dash
    x:
      - $ex hass.states["number.zout2_x_begin"].state
      - $ex hass.states["number.zout2_x_begin"].state
      - $ex hass.states["number.zout2_x_end"].state
      - $ex hass.states["number.zout2_x_end"].state
      - $ex hass.states["number.zout2_x_begin"].state
    'y':
      - $ex hass.states["number.zout2_y_begin"].state
      - $ex hass.states["number.zout2_y_end"].state
      - $ex hass.states["number.zout2_y_end"].state
      - $ex hass.states["number.zout2_y_begin"].state
      - $ex hass.states["number.zout2_y_begin"].state