Assistentenaliase und Skripte können aus einer YAML-Datei (.yaml) importiert werden. Diese Seite beschreibt jedes Feld der Datei, Version 1. Informationen zum Importieren einer Datei und zum Verwalten ihres Inhalts finden Sie unter Aliase und Skripte des Assistenten verwenden.
Der schnellste Start ist die Vorlage in der App: Assistent → → Hilfe → Aliase & Skripte → Vorlage herunterladen. Es enthält ein Beispiel für alles, bereit zum Import.
Struktur
version: 1
prompt: # aliases - tied to the ETS project loaded when you import
entities: []
groups: []
rooms: []
phrases: []
cli:
scripts: [] # scripts - available in every project
| Feld | Erforderlich | Beschreibung |
|---|---|---|
version |
Ja | Muss 1 sein |
defaults.locale |
NEIN | Akzeptiert für Portabilität; noch nicht verwendet |
prompt |
NEIN | Aliase – entities, groups, rooms und phrases |
cli |
NEIN | scripts |
Eine Datei benötigt mindestens einen Alias oder ein Skript. Listen, die Sie nicht verwenden, können weggelassen werden. Unbekannte Felder sind Fehler.
Eine Datei mit Aliasnamen kann nur importiert werden, während ein ETS-Projekt geladen ist und die Aliasnamen zu diesem Projekt gehören. Durch den Import werden die Aliassätze des Projekts ersetzt. Skripte gehören nicht zu einem Projekt; Jedes wird Ihren Skripten hinzugefügt und eines mit demselben Namen wie ein vorhandenes Skript ersetzt es.
Felder jedes Eintrags
| Feld | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
name |
Ja | - | Die Worte, die es auslösen |
aka |
NEIN | [] |
Andere Wörter, die es auslösen, z.B. [my lamp, sofa light] |
enabled |
NEIN | true |
false behält den Eintrag bei, schaltet ihn aber aus |
note |
NEIN | - | Ihre eigene Notiz; Der Assistent ignoriert es |
override |
NEIN | false |
Nur Aliase: true sorgt dafür, dass der Alias ein gleichnamiges Element im ETS-Projekt übertrifft |
Namen werden unter Berücksichtigung der Groß- und Kleinschreibung und der umgebenden Leerzeichen verglichen. Jedes name und aka muss unter allen Aliasen und separat unter allen Skripten eindeutig sein – ein Alias und ein Skript können einen gemeinsamen Namen haben.
Entitäten
Ein benutzerfreundlicher Name für eine Gruppenadresse.
prompt:
entities:
- name: reading lamp
aka: [my lamp]
address: 1/2/3
dpt: "1.001"
note: beside the sofa
| Feld | Erforderlich | Beschreibung |
|---|---|---|
address |
Ja | Die Gruppenadresse, main/middle/sub |
dpt |
NEIN | Ein Hinweis auf den Datenpunkttyp in Anführungszeichen. Der Typ des geladenen Projekts gewinnt. |
Eine Adresse, die nicht im geladenen Projekt enthalten ist, ist eine Warnung und kein Fehler – der Alias schreibt weiterhin an diese Adresse, was für die Inbetriebnahme und Tests nützlich ist.
Gruppen
Ein Name für mehrere Gruppenadressen. Das Schreiben an eine Gruppe erfordert immer eine starke Bestätigung.
prompt:
groups:
- name: downstairs lights
aka: [lower floor lights]
members:
- 1/1/1
- 1/1/2
- ref: reading lamp
| Feld | Erforderlich | Beschreibung |
|---|---|---|
members |
Ja | Gruppenadressen oder ref: gefolgt vom name einer Entität in derselben Datei |
Raum
Ein eigener Raum, wenn das ETS-Projekt keine sinnvolle Raumgruppierung vorsieht. Jedes Mitglied hat einen Typ, also ändert set home office temperature to 21 nur die Temperaturadressen des Raums.
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 }
| Feld | Erforderlich | Beschreibung |
|---|---|---|
members[].address |
Ja | Die Gruppenadresse |
members[].type |
Ja | Was es ist, zum Beispiel light, blind oder temperature – verwenden Sie das Wort, das Sie in Anfragen verwenden werden |
Räume können nur in einer Datei erstellt werden; In der App können sie ein- oder ausgeschaltet und gelöscht werden.
Phrasen
Eine Verknüpfung für eine vollständige Anfrage. Der Assistent liest den Satz als Anfrage vor, mit der üblichen Klarstellung und Bestätigung.
prompt:
phrases:
- name: good night
aka: [bedtime]
expands_to: "turn all kitchen lights off"
| Feld | Erforderlich | Beschreibung |
|---|---|---|
expands_to |
Ja | Die Aufforderung zur Ausführung, auf Englisch |
Skripte
Eine benannte Folge exakter Befehle, ausgeführt mit sharknx <name> oder 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
| Feld | Erforderlich | Beschreibung |
|---|---|---|
lines |
Ja | Exakte Befehle, einer pro Zeile, ohne das Wort sharknx – siehe Befehle des Assistenten |
- Zeilen werden nacheinander ausgeführt, wie mit
;verbundene Befehle: Eine Zeile wird weiterhin ausgeführt, wenn eine frühere fehlschlägt. Verwenden Sie&&,||oder|innerhalb einer Zeile für Abhängigkeiten. - Adressen müssen literal sein – ein Skript verwendet niemals Projektnamen oder Aliase.
- Ein Skript kann kein anderes Skript ausführen.
nameundakaeines Skripts können keine integrierten Befehle sein:help,connect,disconnect,discover,write,read,monitor,ping,restart,progmode,scan,progscan,project,ipoderrun.
Vollständiges Beispiel
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"
Validierung
SharKNX überprüft die gesamte Datei, bevor etwas importiert wird, und zeigt einen Bericht an. Es wird nichts gespeichert, bis Sie eine Datei ohne Fehler importieren.
| Fehler – Blockieren Sie den Import | Warnungen – Import erlaubt |
|---|---|
Ungültiges YAML, ein anderes version als 1, ein unbekanntes Feld |
Eine Adresse, die nicht im geladenen Projekt enthalten ist |
Ein fehlendes Pflichtfeld, leeres members oder lines |
Ein Alias mit demselben Namen wie ein Element im Projekt (verwenden Sie override: true, damit der Alias gewinnt). |
| Eine ungültige Adresse | Ein vom Projekt abhängiger Skriptbefehl, z.B. ein Datenpunkttyp – er wird erneut überprüft, wenn das Skript ausgeführt wird |
Ein doppelter Name oder aka, ein ref für eine fehlende Entität |
|
| Eine Skriptzeile, die kein gültiger Befehl ist oder ein anderes Skript ausführt | |
| Ein Skript mit dem Namen eines integrierten Befehls | |
| Aliase ohne geladenes ETS-Projekt |
Grenzen
| Limit | Wert |
|---|---|
| Dateigröße | 256 KB |
| Aliase in einer Datei | 500 |
| Skripte in einer Datei | 200 |
Verwandt
- Aliase und Skripte des Assistenten verwenden – erstellen, importieren und verwalten
- Befehle des Assistenten – die in Skripten verwendete Befehlssyntax
- Der SharKNX-Assistent – wie der Assistent funktioniert