Les alias et les scripts de l'assistant peuvent être importés à partir d'un fichier YAML (.yaml). Cette page décrit chaque champ du fichier, version 1. Pour savoir comment importer un fichier et gérer ce qu'il contient, voir Comment utiliser les alias et scripts de l'assistant.
Le démarrage le plus rapide est le modèle dans l'application : Assistant → → Aide → Alias et scripts → Télécharger le modèle. Il contient un exemple de tout, prêt à être importé.
Structure
version: 1
prompt: # aliases - tied to the ETS project loaded when you import
entities: []
groups: []
rooms: []
phrases: []
cli:
scripts: [] # scripts - available in every project
| Champ | Requis | Description |
|---|---|---|
version |
Oui | Doit être 1 |
defaults.locale |
Non | Accepté pour la portabilité ; pas encore utilisé |
prompt |
Non | Alias : entities, groups, rooms et phrases |
cli |
Non | scripts |
Un fichier nécessite au moins un alias ou un script. Les listes que vous n'utilisez pas peuvent être omises. Les champs inconnus sont des erreurs.
Un fichier avec des alias ne peut être importé que lorsqu'un projet ETS est chargé et que les alias appartiennent à ce projet - leur importation remplace le jeu d'alias du projet. Les scripts n'appartiennent pas à un projet ; chacun est ajouté à vos scripts et un autre portant le même nom qu'un script existant le remplace.
Champs de chaque entrée
| Champ | Requis | Défaut | Description |
|---|---|---|---|
name |
Oui | - | Les mots qui le déclenchent |
aka |
Non | [] |
D'autres mots qui le déclenchent, par ex. [my lamp, sofa light] |
enabled |
Non | true |
false conserve l'entrée mais la désactive |
note |
Non | - | Votre propre note ; l'assistant l'ignore |
override |
Non | false |
Alias uniquement : true fait gagner l'alias sur un élément du même nom dans le projet ETS |
Les noms sont comparés en ignorant la casse et les espaces environnants. Chaque name et aka doivent être uniques parmi tous les alias, et séparément parmi tous les scripts - un alias et un script peuvent partager un nom.
Entités
Un nom convivial pour une adresse de groupe.
prompt:
entities:
- name: reading lamp
aka: [my lamp]
address: 1/2/3
dpt: "1.001"
note: beside the sofa
| Champ | Requis | Description |
|---|---|---|
address |
Oui | L'adresse du groupe, main/middle/sub |
dpt |
Non | Un indice de type de point de données, entre guillemets. Le type du projet chargé gagne. |
Une adresse qui ne figure pas dans le projet chargé est un avertissement, pas une erreur : l'alias écrit toujours à cette adresse, ce qui est utile pour la mise en service et les tests.
Groupes
Un nom pour plusieurs adresses de groupe. Écrire à un groupe nécessite toujours une confirmation forte.
prompt:
groups:
- name: downstairs lights
aka: [lower floor lights]
members:
- 1/1/1
- 1/1/2
- ref: reading lamp
| Champ | Requis | Description |
|---|---|---|
members |
Oui | Adresses de groupe, ou ref: suivi du name d'une entité dans le même fichier |
Chambres
Une pièce à vous, lorsque le projet ETS ne dispose pas de regroupement de pièces utile. Chaque membre a un type, donc set home office temperature to 21 ne modifie que les adresses de température de la pièce.
prompt:
rooms:
- name: home office
aka: [office, study]
members:
- { address: 4/1/1, type: light }
- { address: 4/1/2, type: blind }
- { address: 4/1/3, type: temperature }
| Champ | Requis | Description |
|---|---|---|
members[].address |
Oui | L'adresse du groupe |
members[].type |
Oui | De quoi s'agit-il, par exemple light, blind ou temperature - utilisez le mot que vous utiliserez dans les requêtes |
Les pièces ne peuvent être créées que dans un fichier ; dans l'application, ils peuvent être activés, désactivés et supprimés.
Phrases
Un raccourci pour une demande complète. L'assistant lit la phrase comme cette demande, avec la clarification et la confirmation habituelles.
prompt:
phrases:
- name: good night
aka: [bedtime]
expands_to: "turn all kitchen lights off"
| Champ | Requis | Description |
|---|---|---|
expands_to |
Oui | La demande de candidature, en anglais |
Scripts
Une séquence nommée de commandes exactes, exécutées avec sharknx <name> ou sharknx run <name>.
cli:
scripts:
- name: secure house
aka: [lock down]
lines:
- "connect"
- "write 1/0/1 off"
- "write 1/0/2 off"
note: nightly shutdown
| Champ | Requis | Description |
|---|---|---|
lines |
Oui | Commandes exactes, une par ligne, sans le mot sharknx - voir Commandes de l'assistant |
- Les lignes s'exécutent les unes après les autres, comme les commandes jointes à
;: une ligne s'exécute toujours si une précédente échoue. Utilisez&&,||ou|dans une ligne pour les dépendances. - Les adresses doivent être littérales - un script n'utilise jamais de noms de projet ou d'alias.
- Un script ne peut pas exécuter un autre script.
- Les
nameetakad'un script ne peuvent pas être une commande intégrée :help,connect,disconnect,discover,write,read,monitor,ping,restart,progmode,scan,progscan,project,ipourun.
Exemple complet
version: 1
prompt:
entities:
- name: kitchen island lights
aka: [island]
address: 1/0/12
dpt: "1.001"
groups:
- name: kitchen lights
members:
- ref: kitchen island lights
- 1/0/13
rooms:
- name: media room
aka: [cinema]
members:
- { address: 1/1/1, type: light }
- { address: 1/1/2, type: blind }
phrases:
- name: movie mode
expands_to: "turn kitchen lights off"
cli:
scripts:
- name: secure house
aka: [night shutdown]
lines:
- "write 1/0/12 off"
- "write 1/0/13 off"
Validation
SharKNX vérifie l'intégralité du fichier avant d'importer quoi que ce soit et affiche un rapport. Rien n'est enregistré jusqu'à ce que vous importiez un fichier sans erreur.
| Erreurs - bloquer l'importation | Avertissements - importation autorisée |
|---|---|
YAML invalide, un version autre que 1, un champ inconnu |
Une adresse pas dans le projet chargé |
Un champ obligatoire manquant, members ou lines vide |
Un alias portant le même nom qu'un élément du projet (utilisez override: true pour faire gagner l'alias) |
| Une adresse invalide | Une commande de script qui dépend du projet, par ex. un type de point de données - il est vérifié à nouveau lorsque le script s'exécute |
Un nom en double ou aka, un ref à une entité manquante |
|
| Une ligne de script qui n'est pas une commande valide ou qui exécute un autre script | |
| Un script nommé comme une commande intégrée | |
| Alias sans projet ETS chargé |
Limites
| Limite | Valeur |
|---|---|
| Taille du fichier | 256 KB |
| Alias dans un seul fichier | 500 |
| Scripts dans un seul fichier | 200 |
En rapport
- Comment utiliser les alias et scripts de l'assistant - créer, importer et gérer
- Commandes de l'assistant - la syntaxe de commande utilisée dans les scripts
- L'assistant SharKNX - comment fonctionne l'assistant