Manifest
Hier wird der Aufbau der manifest.json
beschrieben.
Diesen habe ich in stark vereinfachter Form von Home Assistant übernommen.
Welche Angaben müssen vorhanden sein?
Wie kann ich Optionen definieren und welche Typen stehen dafür bereit?
Beispiel
Ich werde die einzelnen Angaben an folgendem Beispiel aus dem GetWeather Skill erklären:
{
"version": "1.0",
"dependencies": {
"axios": "^0.23.0"
},
"options": [
{
"name": "APIKey",
"type": "String",
"default": "Enter your API-Key here, please."
},
{
"name": "city",
"type": "Number",
"default": 51789
},
{
"name": "country",
"type": "String",
"default": "DE"
},
{
"name": "language",
"type": "String",
"default": "de"
},
{
"name": "units",
"type": "String",
"default": "metric",
"choices": ["standard","metric", "imperial"]
}
]
}
Version
Unter dem Punkt version
steht ganz einfach der Tag der jeweiligen Version des Skills.
Dieser Tag sollte mit dem Verzeichnis der jeweiligen Version übereinstimmen.
Abhängigkeiten
Unter dependencies
stehen alle vom Skill benötigten Abhängigkeiten.
Dabei handelt es sich bei diesen Abhängigkeiten um npm-Dependencies.
Beim Herunterladen eines Skills, werden dann alle angegebenen Pakete automatisch installiert, sodass der Skill reibungslos funktioniert.
Einige dieser Pakete werden jedoch vom Skillmanager benötigt und können daher zwar genutzt, jedoch nicht überschrieben werden.
Welche das sind, kann man in der defaults.json
unter dem Punkt dependencies
nachschauen.
Optionen
Damit man den eigenen Skill auf die Bedürfnisse der jeweiligen Nutzerinnen und Nutzer anpassen kann, gibt es die Optionen.
Diese können unter dem Punkt options
definieren.
Später können diese Optionen dann über das Webinterface angepasst werden.
In obigem Beispiel kann man dann zum Beispiel einen eigenen API-Key oder den eigenen Wohnort angeben.
Um eine Option zu definieren, muss man drei Felder definieren:
name
: Der Name, der im Webinterface steht und unter dem man im Code die Option auslesen kann.type
: Das bestimmt den Typen der Option, z.B.String
oderNumber
.default
: Beschreibt den Standardwert, welcher durch den Entwickler vorgegeben werden kann.choices
: Damit soll es möglich sein, aus gegebenen Werten auswählen zu können. Das ist allerdings noch nicht implementiert.
- Previous
- Next