Variablen
Um die Nutzung der Add-ins weiter auszubauen, besteht die Möglichkeit Variablen zu verwenden. Diese können als schreibgeschützte Werte in Add-ins verwendet werden.
Eine Variable besteht aus den folgenden Parametern:
- Name
- Typ
- Wert
Variables können in dem Menü Add-ins → Variablen erstellt und bearbeitet werden.
Variablen hinzufügen:
Eine Variable kann an verschiedenen Stellen verwendet werden. Bei Verwendung der gleichen Variable an mehreren Stellen überschreibt die letzte Variable die vorherigen Einträge.
- Global
- Netze
- Standort
- Gerät
Global:
Wird einer Variable ein Wert zugewiesen, gilt diese global. Diese kann dann in einem Add-in verwendet werden.
Netze:
1. Wechseln Sie in das Menü Netze, wählen ein Netzwerk aus und klicken auf Variablen → Variablen hinzufügen.
2. Wählen Sie die gewünschte Variable aus und weisen dieser gegebenenfalls einen Wert zu bzw. wählen die Aktion aus. Klicken Sie anschließend auf Hinzufügen.
Standorte:
1. Wechseln Sie in das Menü Standorte, wählen einen Standort aus und klicken auf Variablen → Variablen hinzufügen.
2. Wählen Sie die gewünschte Variable aus und weisen dieser gegebenenfalls einen Wert zu bzw. wählen die Aktion aus. Klicken Sie anschließend auf Hinzufügen.
Geräte:
1. Wechseln Sie in das Menü Geräte, wählen ein Gerät aus und klicken auf Variablen → Variablen hinzufügen.
2. Wählen Sie die gewünschte Variable aus und weisen dieser gegebenenfalls einen Wert zu bzw. wählen die Aktion aus. Klicken Sie anschließend auf Hinzufügen.
Neuen Variablen-Typ definieren:
1. Wechseln Sie in das Menü Add-ins und klicken auf Variablen.
2. Klicken Sie auf Variablen-Typen.
3. Klicken Sie anschließend auf Neuen Typ hinzufügen.
4. Es gibt zwei mögliche Variablen-Typen (String selection und Regulärer Ausdruck).
String selection:
Passen Sie die folgenden Parameter an und klicken auf Speichern:
- Variablen Typ: Wählen Sie die Option String selection aus.
- Name: Vergeben Sie einen aussagekräftigen Namen für die Variable (in diesem Beispiel Switch).
- Name / Wert: Vergeben Sie einen oder mehrere Namen und zugehörige Wert(e) (in diesem Beispiel enable → on und disabled → off).
Regulärer Ausdruck:
Um die Eingabe-Möglichkeiten für Variablen zu limitieren, wird auch die Möglichkeit zur Verwendung regulärer Ausdrücke (regular expressions - Regex) unterstützt.
Für die regulären Ausdrücke stehen die folgenden Optionen zur Verfügung:
| Regulärer Ausdruck | Beschreibung |
|---|---|
| IPv4 | Dieser Variablen-Typ unterstützt nur valide IPv4-Adressen. |
| Subnet mask | Dieser Variablen-Typ unterstützt nur valide Subnetzmasken. |
| [A-Z a-z]* | Dieser Variablen-Typ unterstützt nur ASCII-Zeichen von A-Z und a-z. |
| User defined | Mit dieser Option können Sie einen eigenen regulären Ausdruck erstellen, um die Eingabe zu limitieren. |
Passen Sie die folgenden Parameter an und klicken auf Speichern:
- Variablen Typ: Wählen Sie die Option Regulärer Ausdruck aus.
- Name: Vergeben Sie einen aussagekräftigen Namen für die Variable (in diesem Beispiel IP).
- Anzeigename: In diesem Beispiel wird zum besseren Verständnis zusätzlich ein Anzeigename hinterlegt, da im Namen kein Bindestrich verwendet werden darf.
- Regulärer Ausdruck: Wählen Sie im Dropdown-Menü die gewünschte Option aus (in diesem Beispiel IPv4).
Neue Variable anlegen:
1. Wechseln Sie in das Menü Add-ins → Variablen und klicken auf Neue Variable.
2. Passen Sie die folgenden Parameter an und klicken auf Speichern:
- Name: Vergeben Sie einen aussagekräftigen Namen für die Variable (in diesem Beispiel wlanstate).
- Variablen Typ: Wählen Sie im Dropdown-Menü einen Variablen Typ aus (in diesem Beispiel den im Abschnitt Neuen Variablen-Typ definieren erstellten Typ Switch).
- Wert: Vergeben Sie einen Wert für die Variable oder wählen im Dropdown-Menü eine Option aus.
Verwenden von Variablen:
Werte von Variablen können in dem Objekt context.vars verwendet werde:
/**
* @param {Config} config
* @param {Context} context
* Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main =
function (config, context) {
if (context.vars.deviceName) { // checks if the variable is set
context.setScalarByOid("1.2.1" /* /Setup/Name */, config.vars.deviceName);
}
};
System-Variablen:
System-Variablen verwalten spezifische Aspekte der Smart-Konfiguration.
- Alle System-Variablen (außer der Variable UF_DEFAULT_IF) können in den Projektvorgaben angepasst werden.
- System-Variablen können nicht durch Add-in Skripte modifiziert werden (Read-Only).
- System-Variablen können nur in den Menüs Netze und Geräte verwendet werden.
- System-Variablen können nur für Status-Anfragen verwendet werden (die Konfiguration wird ausgerollt, wenn eine System-Variable einen bestimmten Wert hat).
Beispiel für eine Status-Anfrage:
Der folgende Code-Auszug zeigt die generelle Herangehensweise für eine Status-Anfrage. Tauschen Sie die Variablen “Systemvariable” und “Value” je nach Bedarf aus. Der Add-in Code muss unter der auskommentierten Zeile “Code will be executed, if variable is met.” eingefügt werden.
/**
* @param {Config} config
* @param {Context} context
* Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main =
function (config, context) {
if Systemvariable == ("Value"){
//Code will be executed, if variable is met.
};
};
Verfügbare System-Variablen:
INITIAL_TEST_MODE_ENABLED:
- Aktiviert einen Test-Modus von 300 Sekunden für den initialen Konfigurations-Rollout (im Standard aktiv).
- Kann nach dem initialen Konfigurations-Rollout mit der Einstellung Testmodus nach initialem Konfigurations-Rollout in dem Menü Projektvorgaben → Inbetriebnahme von Geräten angepasst werden.
PASSWORD:
- Globales Haupt-Geräte-Passwort.
- Kann unter Projektvorgaben → Basis angepasst werden.
UF_CLEAR_DEFAULT_CFG:
- Deaktiviert die Standard-Schnittstellen einer Unified Firewall während des Konfigurations-Rollouts (im Standard deaktiviert).
- Kann mit der Einstellung Default-Netze beim Konfigurations-Rollout auf LANCOM R&S®Unified Firewalls deaktivieren in dem Menü Projektvorgaben → Inbetriebnahme von Geräten angepasst werden.
UF_DEFAULT_IF:
- Standard-Schnittstelle für den Netzwerk-Rollout per LANCOM Management Cloud.
- Die Standard-Schnittstelle ist eth1 und kann ausschließlich per API geändert werden.
LMC_DOMAIN:
- URL für private LMC-Instanzen.
UF_ETH0_NETWORKS ... UF_ETH10_NETWORKS:
- Zuweisung der ETH-Ports von Unified Firewalls zu den Netzwerken.
VPN_IDENTITY_SEPARATOR:
- Zeichen, welches für die automatische Erstelleung von VPN-Verbindungen verwendet wird (z.B. mit dem Standard-Zeichen "@": ALL@HQ__).
Werte
Schreiben
Sie können die Konfiguration, welche an ein Gerät gesendet werden soll, per config.setScalarByOid modifizieren:
/**
* @param {Config} config
* @param {Context} context
* Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main =
function (config, context) {
config.setScalarByOid("1.2.9.11", "Comment 1");
config.setScalarByOid("1.2.9.12", "Comment 2");
};
Konfigurations-Änderungen, welche per config.setScalarByOid vorgenommen wurden, sind in der Konfigurations-Vorschau sichtbar, da diese in der Konfiguration hinzugefüht werden, bevor diese an das Gerät gesendet wird.
Dies kann auch per config.addScriptLine erreicht werden:
/**
* @param {Config} config
* @param {Context} context
* Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main =
function (config, context) {
// LCOS only:
config.addScriptLine('set /Setup/SNMP/Comment-1 "Hello"');
config.addScriptLine('set /Setup/SNMP/Comment-2 "World"');
};
Konfigurations-Änderungen, die per config.addScriptLine vorgenommen wurden, sind nicht in der Konfigurations-Vorschau sichtbar, da diese nur auf dem Gerät ausgeführt werden. Diese Mehode funktioniert ausschließlich auf LCOS-basierten Geräten.
Lesen
Informationen können von einem Gerät über die Funktion config.getScalarByOid ausgelesen werden:
/**
* @param {Config} config
* @param {Context} context
* Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main =
function (config, context) {
var comment1 = config.getScalarByOid("1.2.9.11");
var comment2 = config.getScalarByOid("1.2.9.12");
};
Es gibt kein Äquivalent für config.addScriptLine , um Daten vom Gerät zu lesen.










