parameters
Parameter-Metadaten werden benutzt um die Gültigkeit von Parametern zu prüfen, die im Verzeichnis ../etc
konfiguriert wurden. Falls für einen Parameter ein ungültiger Wert konfiguriert wurde, wird eine Warnung im Logfile
von SmartHomeNG eingetragen.
Wenn ein gültiger Wert konfiguriert wurde, wird der Parameter an das Plugin/Modul übergeben, und zwar als der Datentyp, der in den Metadaten definiert wurde.
Der parameters:
Abschnitt hat für jeden definierten Parameter einen Unter-Abschnitt, der den Parameter genauer
beschreibt. Der Schlüssel des Unter-Abschnitts ist der Name des Parameters. Parameter Namen sollten keine
Großbuchstaben und Sonderzeichen enthalten. Sie dürfen nicht mit einer Ziffer beginnen.
Die Definitionen im Abschnitt parameters:
werden für die Gültigkeitsprüfung der konfigurierten Werte, sowie
zur Dokumentation und zur Konfiguration in der Admin GUI benutzt.
parameters:
param1:
type: int
default: 1234
description:
de: 'Deutsche Beschreibung'
en: 'English description'
valid_list:
- 1234
- 2222
- 4321
param2:
type: ...
Hinweis
Der Parameter webif_pagelength
wird jedem Plugin automatisch hinzugefügt und sollte
daher NICHT manuell im plugin.yaml File hinterlegt werden.
Beschreibung der Schlüssel im Abschnitt für einen Parameter bzw. ein Attribut:
type:
Beschreibt den Datatyp des Parameters bzw. Attributes. Gültige Datentypen sind:- Einfache Datentypen:
bool
- ein boolscher Wertint
- ein ganzzahliger Wertscene
- ein ganzzahliger Wert im Bereich von 0 bis 63, der eine Szenen Nummer repräsentiertfloat
- ein numerischer Wert der Nachkommastellen enthalten darfnum
- das Equivalent zum Typ`float
str
- ein String`ip
- ein String, der einen Hostnamen, eine ipv4-Adresse oder eine ipv6-Adresse repräsentiertipv4
- ein String, der eine ipv4-Adresse repräsentiertipv6
- ein String, der eine ipv6-Adresse repräsentiertmac
- ein String, der eine MAC Adresse repräsentiertknx_ga
- ein string, der eine KNX Gruppen Adresse (z.B..: 31/7/255) repräsentiertfoo
- der universelle Datatyp
- Komplexe Datentypen:
dict
- ein Dictionarylist
- eine Liste bei der jedes Element vom Datentypfoo
istlist(len)
- eine Liste fester Länge bei der jedes Element vom Datentypfoo
ist und deren Anzahl Elementelen
istlist(subtype)
- eine Liste bei der jedes Element vom Datentypsubtype
ist 1 (z.B.:list(int)
orlist(ipv4)
)list(subtype, subtype, ...)
- eine Liste bei der jedes Element von einem angegebenen Datentyp ist. Falls die Liste länger ist als die Anzahl angegebener subtypes 1, wird der letzte angegebene subtype für alle weiteren Elemente verwendet.list(len,subtype, subtype, ...)
- eine Liste fester Länge bei der bei der für jedes Element ein subtype angegeben wird. Falls die Liste länger ist als die Anzahl angegebener subtypes 1, wird der letzte angegebene subtype für alle weiteren Elemente verwendet.
1 subtype kann nur ein einfacher Datentyp sein
gui_type:
Optional: Spezifiziert genauer, wie der Parameter in der Admin GUI shngadmin behandelt werden soll. Die Handhabung der Parameter in der Admin GUI wird durch den Parametertype
bestimmt.type
ist jedoch auf die Datentypen beschränkt, die SmartHomeNG kennt. Für das Editieren kann es jedoch wünschenswert sein, unterschiedlche Feld-Editoren für den selben Datentyp zu verwenden.Bisher werden nur zwei Werte für
gui_type
unterstützt:wide_str
wird benutzt, um ein breiteres Editor Feld zu verwenden (z.B. für Strings die einen längeren Inhalt haben können/sollen.readonly
wird benutzt, wenn der Parameter nicht in der GUI konfiguriert werden soll, z.B. wenn das Webinterface des Plugins diesen Parameter konfiguriert.
default:
Optional: Gibt einen Standardwert vor, der verwendet wird, falls bei der Konfiguration des Parameters in../etc/plugin.yaml
bzw.../etc/module.yaml
kein Wert angegeben wird.description:
Mehrsprachiger Text, der die Funktion das Plugins beschreibt. Die Beschreibung wird bei der Generierung des Dokumentations-Seiten des Plugins verwendet - Die Texte in den verschiedenen Sprachen werden als Unter-Einträge in der Form <Sprache>: <Text> erfasst. Zur Identifikation der Sprache werden die 2-stelligen Länder-Kürzel verwendet (de
,en
,fr
,pl
, …)de
unden
müssen angegeben werden. Weitere Sprachen sind optionalvalid_list:
Optional: Liste der erlaubten Werte für den Parameter (case sensitive)valid_list_ci:
Optional: Liste der erlaubten Werte für den Parameter (nicht case sensitive) Der Wert wird dem Plugin/Modul in lower case übergeben. Fallsvalid_list_ci
angegeben ist, wird eine evtl spezifiziertevalid_list
ignoriert.valid_list_description:
Optional: Beschreibung der Werte, die invalid_list:
bzw.valid_list_ci:
spezifiziert sind. Falls definiert, mussvalid_list_description:
Sub-Keys haben, um die Beschreibung in mehreren Sprachen (de
,en
,fr
,pl
, …) anzugeben.Jeder Sprach-Sub-Key muss eine Liste sein, die für jeden Eintrag in
valid_list
eine Beschreibung enthält.valid_min:
Optional: Für die Datentypenint
,pint
,float
,pfloat
,num
undscene
kann hier ein minimal Wert angegeben werdenvalid_max
Optional: Für die Datentypenint
,pint
,float
,pfloat
,num
undscene
kann hier ein maximal Wert angegeben werdenmandatory:
Optional: Falls aufTrue
gesetzt, muss dieser Wert konfiguriert werden, damit das Plugin/Modul geladen/initialisiert wird. Diese Einschränkung ist wirkungslos, falls ein Wert fürdefault:
definiert ist.
Plugins/Module ohne Parameter
Falls ein Plugin oder Modul keine Parameter hat, wird das durch den folgenden Eintrag in der
Datei plugin.yaml
angezeigt:
parameters: NONE
Hinweis
Bitte beachten, dass hier NONE
vollständig in Großbuchstaben geschrieben werden muss.