Test d'un champ dans un script

Bonjour,

Quelqu’un peut il me dire comment on teste la valeur d’un champ dans un script ?

Merci

Bonjour.

Tu peux être plus précis?

Tu veux réaliser une action conditionnelle?
Dans ce cas il faut ajouter une condition dans ta liste d’actions.
Tu cliques sur +ajouter un bloc de construction
et tu as le choix entre:

  • « choisir » qui va t’offrir plusieurs conditions et plusieurs chaines d’action
  • « condition » qui va être juste un test qui va arrêter la sequence si la condition n’est pas remplie.

Hello @steche

Un champs de quoi? Une entrée texte dans un dashboard? Un attribut d’une entitée?

Il est bien de donner un contexte: le but final, puis le cas particulier qu’on veut tester.
Si possible le bout de code test qui ne fonctionne pas et un screenshot pour parfaire le post :slight_smile:

1 « J'aime »

Ok mais après le test proposé est sur une entité et non sur un champ ? Quelle est la syntaxe pour spécifier que le test est sur un champ (field) ?

Qu’est ce que tu appelles un champ ?

Tu as un exemple?

Tu peux aussi tester des tas de choses, et pas que des entités:


et sur une entité tu peux tester tous les attributs:

Un champs de quoi? Champ déclaré ds un script

Une entrée texte dans un dashboard? Non

Un attribut d’une entitée? Non

Un champ déclaré ds un script, ce qu’on appelle argument dans d’autres langages.

Oui mais pour un champ déclaré dans un script, je ne vois pas !

Les champs (fields) sont des variables que tu peux passer à ton script.
Tu peux voir comment les utiliser dans la doc:

En général il va te falloir faire des tests en jinja (template) sur le nom de ta variable de champ.

Attention, ce n’est valable que dans le script (comme une variable locale quoi…)

un exemple d’aide résolue sur le forum anglophone:

j’ai testé rapidement la solution donnée sur le forum anglais, la syntaxe est un peu vieille, mais avec ça, c’est ok:

alias: test
description: Test script
fields:
  param1:
    description: Parameter 1
    example: Any text
sequence:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ param1 is not defined }}"
        sequence:
          - service: persistent_notification.create
            data:
              title: Testing
              message: "Test: no param"
    default:
      - service: persistent_notification.create
        data:
          title: Testing
          message: "Test: '{{ param1 }}'"

Ca crée un script auquel tu passe le texte param1 en ‹ argument › et ça te renvoie soit « Test: no param » si le test value_template: "{{ param1 is not defined }}" est faux, soit "Test : ‹ la valeur de param1 › "

Ok, et pour tester si param1 == ‹ Tyty › quelle serait la syntaxe ?

Merci

Il va falloir bosser un peu les templates

teste par exemple {{ param1 == 'tyty' }} ou {{ is_state(param1,'tyty') }}

Mais en général pour tester les templates j’utilise beaucoup l’editeur de modèles (templates) des outils de developpement.

La bonne syntaxe c’est {{ param1 == 'tyty' }}

Super !

Je teste tout cela tout à l’heure !