Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Deutsch

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 can be created in the Add-in menu by selecting the variables button.


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 → Variablen und klicken auf 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 → Variablen und klicken auf 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 AusdruckBeschreibung
IPv4Dieser Variablen-Typ unterstützt nur valide IPv4-Adressen.
Subnet maskDieser 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 definedMit 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).
    • Can be modified with the setting Testmode after initial configuration rollout in the menu Project specifications -> Device startup.
    • Kann nach dem initialen Konfigurations-Rollout mit der Einstellung Konfigurations-Testmodus in dem Menü Projektvorgaben → Inbetriebnahme von Geräten angepasst werden. 
  • PASSWORD:

    • Globales Haupt-Geräte-Passwort.
    • Kann unter Projektvorgaben → Basis angepasst werden

    PASSWORD:

    • Global Main device password.
    • Can be modified in the menu Project specifications -> Basic.
  • UF_CLEAR_DEFAULT_CFG:

    • Disables default interfaces of a Unified Firewall during configuration rollout (disabled by default).
    • Can be modified with the setting Disable default networks during configuration rollout to LANCOM R&S®Unified Firewalls in the menu Project specifications -> Device startup.
  • UF_DEFAULT_IF:

    • Default interface for network rollout via the LANCOM Management Cloud.
    • The default interface is eth1 and can only be changed via the API.
  • LMC_DOMAIN:

    • URL setting for private LMC instances.
  • UF_ETH0_NETWORKS ... UF_ETH10_NETWORKS:

    • Network assignment to ETH port of the Unified Firewalls.
  • VPN_IDENTITY_SEPARATOR:

    • Symbol used for the automatic VPN creation: (e.g with the default "@": ALL@HQ__).

Values

Writing

To modify the configuration that is sent to a device you can use config.setScalarByOid:

/**
 * @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");
};


Changes made by config.setScalarByOid will be visible in the config preview, as they are applied to the configuration before it is sent to the device.


The same can be achieved by using config.addScriptLine:

/**
 * @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"');
};


Changes made by config.addScriptLine are NOT visible in the config preview, as they are only run on the device. This method only works on LCOS based devices.


Reading

/**
 * @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");
};


There is no equivalent config.addScriptLine to read data from the device.


...