Variable interne d'une automation

Bonjour a tous,

je suis embête je ne comprend pas pourquoi mon automation test ne fonctionne pas .


- id: '1715958383067'
  alias: Nouvelle automatisation test
  description: Fermeture volet suivant élévation soleil
  trigger:
  - platform: numeric_state
    entity_id:
    - climate.tete_thermostatique_cuisine
    attribute: current_temperature
    above: 10
    enabled: true
  condition: []
  action:
  - variables:
      nivEx: 0
      prv_nivEx: -1
  - choose:
    - conditions:
      - condition: numeric_state
        entity_id: sun.sun
        below: 40
        above: 10
        attribute: elevation
      sequence:
      - variables:
          nivEx: 6
    - conditions:
      - condition: numeric_state
        entity_id: sun.sun
        below: 10
        attribute: elevation
      sequence:
      - variables:
          nivEx: 7
  - if:
    - condition: and
      conditions:
      - condition: template
        value_template: '{{ nivEx != prv_nivEx }}'
    then:
    - choose:
      - conditions:
        - condition: template
          value_template: '{{ nivEx == 6 }}'
        sequence:
        - variables:
            niv: 6
      - conditions:
        - condition: template
          value_template: '{{ nivEx == 7 }}'
        sequence:
        - variables:
            niv: 7
    - if:
      - condition: template
        value_template: '{{ nivEx != prv_nivEx }}'
      then:
      - variables:
          prv_nivEx: ( nivEx | int )
  mode: single

je n’arrive pas à passer par le deuxième choose nivEx ==7, Pourquoi ?

J’ai essayé pas mal de syntaxe mais je vois pas, qu’est-ce que je fais mal ?
pour info je n’ai pas tapé le cote s’est home assistant qu’il me la fait. ( s’est puissance l’outil automation au passage)

Merci de votre aide.

Salut!
J’essaye de comprendre ton automation et je t’avoue être perdu peut être que tu peux me guider.
De ce que j’interprète (je ne prend pas en compte ton déclencheur) l’action de ton automation fait ça:

1 - Définir deux variables (nivEx a 0 et prv_nivEx à -1)
2 - Si la valeure de Sun est entre 10<X<40 alors definir nivEx à 6
… Si la valeure de Sun est X<10 alors definir nivEx à 7
3 - Si nivEx n’est PAS égale à prv_nivEx

La deja je note un soucis; les deux valeures sont forcément PAS égale puisque nivEx = 6 OU 7 alors que prv_nivEx = -1

3.1 - Alors si nivEx = 6 définir la valeure de nivEx à 6

Autre soucis, tu définis une variable en lui donnant la même valeure qu’elle possède déjà

ou alors si nivEx = 7 définir la valeure de nivEx à 7

Toujours le même soucis que juste avant

3.2 Puis si nivEx n’est PAS égale à prv_nivEx

On reviens au premier soucis, les valeures sont forcément inégale puisque prv_nivEx = -1

3.2 Alors definir prv_nivEx à la valeure de nivEx

J’ai peut être surmalinterpreter ton automation, mais pour le coup je veux bien que tu nous expliques ce que tu as voulu faire ? :slight_smile:

Boujour Frosh,

Tu as bien compris, en effet je suis parti d’une automatisation qui ne marche pas et j’ai isoler la partie qui ne marche pas.
le code est beaucoup trop long.
J’ai corriger pour tester si la parti 3.1 pouvait poser problème et idem je n’arrive pas à definir Niv = 7
(j’ai corriger mon post aussi)
ce code tourne en boucle avec un appel de service si la valeur nivEx à changer.
sinon il ne se passe rien.

Salut,
Bon je ne comprend pas beaucoup plus avec ce que tu me dis ^^’
Du coup je vais poser une question bete mais; est ce que lors de tes test tu fais ca le soir? Quand ton sun.sun est < 10 ? Car c’est la condition pour que ta variable soit defini à 7

Oui tout a fait s’était pour pouvoir effectuer le test justement

Et le debug de cet automatisation, ne t’aide pas à savoir où ça ne va pas ?

Je pense que c’est un problème sur la « portée » des variables, voir

Merci pour vos réponses.
J’ai fini par créer des entrées pour quelle soit globale a ha
Maintenant tout fonctionne