Gültigkeitsregeln an Artikeln

Syntax

Der Syntax ist immer nach folgenden Schema zusammengestellt:

<TAG-SYNTAX> = { tag: _<TAG-KEY>_ , _<TAG-PARAM>_ }

<TAG-KEY> - Liste mit Bedeutung:

TAG-KEY Charakter Bedeutung zulassige TAG-PARAM-Name
AND Knoten Prüft, ob ALLE Bedingungen in der Parameterliste wahr bzw. korrekt sind. logik-args
OR Knoten Prüft, ob EINE Bedingung aus der Parameterliste wahr oder korrekt ist. logik-args
NOT Knoten Prüft, ob die folgende Bedingung falsch bzw. negiert korrekt ist. arg
BITSET Blatt Prüft, ob die folgenden Merkmale an einer Messstelle gesetzt sind werte-args
YEAR_CONSUMPTION Blatt Prüft, ob Jahresverbrauch über/unter einer Grenze liegt args
BOOL_CMP_PROPERTY Blatt Prüft, ob Werte eines (alten) Vergleichsmerkmals true name
BOOL_FLEX_PROPERTY Blatt Prüft, ob Wert eines booleschen neuen Merkmals true name
BOOL_FLEX_PROPERTY Blatt Prüft, ob Wert eines booleschen neuen Merkmals true name
NUM_FLEX_PROPERTY Blatt Prüft, ob Wert eines numerischen neuen Merkmals größer/kleiner/… einer vorgegebenen Zahl ist name, cmp, against
STRING_FLEX_PROPERTY Blatt Prüft, ob String-Wert eines neuen Merkmals gleich/ungleich einem vorgegebenen String ist name, cmp, against

<TAG-PARAM> - Liste mit Syntax:

TAG-PARAM-Name TAG-PARAM Bedeutung
logik-args args: [ <TAG-SYNTAX>(,<TAG-SYNTAX>) ] Eine Liste von neuen Logikausdrücken
werte-args args: [ <TAG-KEY-VALUE> (,<TAG-KEY-VALUE>)* ] Eine Liste von vorgegebenen Werten
arg arg: <TAG-SYNTAX> Ein einzelner Logikausdruck

<TAG-KEY-VALUE> - Erklärung Das sind einzelne Werte oder Konstanten, die abhängig von dem verwendeten <TAG-KEY> sind. Dabei sind nur für TAG-KEY mit Blatt-Charakter einzelne Werte definiert. Diese sind unter den Schlüsselworte und Wertebereiche beschrieben.

Schlüsselworte und Wertebereiche

BITSET

Das Schüsselwort BITSET dient zur Abwärtskompatibilität mit den bisher über valdityBits abgebildete dynamische Nutzung von Artikeln. Über dieses Schlüsselwort können die vorgegebenen Merkmale einer Messstelle abgefragt werden. Jeder Ausprägung entspricht dabei einem Merkmal. Das Merkmal gilt dabei als gesetzt (TRUE), wenn dessen Wert größer 0,0 ist. Ist der Wert gleich oder kleiner 0,0 dann gilt der Wert als nicht gesetzt (FALSE).

Folgende Merkmale können dabei abgefragt werden:

Merkmal (TAG-KEY) Index Integer Prüfung
NB_EQUALS_MSB 0 =. 1 VNB = MSB
NON_MAIN_METERLOCATION 1 =. 2 false
VOLTAGE_LEVEL_NEQ_MEASUREMENT_LEVEL 2 =. 4 Messspannung != Lieferspannung
IS_BALGEN 3 =. 8 Zählertyp ist BALGEN
IS_TURBINENRAD 4 =. 16 Zählertyp ist TURBINENRAD
IS_DREHKOLBEN 5 =.32 Zählertyp ist DREHKOLBEN
HAS_DATA_LOGGER 6 =. 64 Das Merkmal “DATA_LOGGER” ist vergeben
HAS_QUANTITY_CONVERTER 7 =. 128 Das Merkmal “QUANTITY_CONVERTER” ist vergeben
HAS_MODEM 8 =. 256 Das Merkmal “MODEM” ist vergeben
HAS_FESTNETZ_MODEM 9 =. 512 Das Merkmal “FNMD” ist vergeben

Weitere Details zum Bitset sind im Artikel [[dynamische Steuerung von Artikeln]] beschrieben.

YEAR_CONSUMPTION

Experimentell und vorläufig. Es gibt zwei Argumente (in einem Array namens args). Das erste ist ein String, und zwar einer von “LT”, “GT”, “LE”, “GE”, “EQ”, “NEQ”. Der zweite eine Zahl. Das Resultat gibt an, ob der “Jahresverbrauch” in KWh unter, über, nicht über oder nicht unter der Grenze liegt.

BOOL_CMP_PROPERTY

Experimentell und vorläufig. Abfrage altes Merkmal, ein Argument (unter dem Schlüssel “name”): ein Namensmuster.

BOOL_FLEX_PROPERTY

Experimentell und vorläufig. Abfrage neues Merkmal, ein Argument (unter dem Schlüssel “name”): ein Namensmuster.

NUM_FLEX_PROPERTY

Experimentell und vorläufig. Abfrage neues Merkmal, Argument namens “name” enthält ein Namensmuster; ein Argument namens “cmp” enthält einen String, der das Vergleichen steuert: “LT”, “GT”, “LE”, “GE”, “EQ” oder “NEQ”; ein Argument namens “against”, ein Double. Bei Aufzählungstypen wird der numerische Wert als Zahl genommen.

STRING_FLEX_PROPERTY

Experimentell und vorläufig. Abfrage neues Merkmal, Argument namens “name” enthält ein Namensmuster; ein Argument namens “cmp” enthält einen String, der das Vergleichen steuert: “EQ” oder “NEQ”; ein Argument namens “against”, ein String. Bei Aufzählungstypen wird der Name der Aufzählungskonstanten genommen.

Beispiele

Ein Beispiel zur Ausprägung ohne fachlichen Gehalt:

{
    "tag": "AND",
    "args" [
        { "tag": "NOT" "arg": {"tag":"AND", "args":[]} },
        {
            "tag": "OR",
            "args":[{"tag":"AND", "args":[]}]
        },
        { "tag": "BITSET", "args":["NB_EQUALS_MSB", "VOLTAGE_LEVEL_NEQ_MEASUREMENT_LEVEL", "HAS_MODEM"] }
    ]
}

Ein Beispiel für neue Merkmale:

{
    "tag": "AND", "args": [
        { "tag": "NUM_FLEX_PROPERTY", "name": "Mengenumwerter", "cmp":"GEQ", "against":2 },
        { "tag": "NUM_FLEX_PROPERTY", "name": "Mengenumwerter", "cmp":"LEQ", "against":4 }
    ]
}