<texit info>
author=Alexander Krause
title=Clever2Link - Dataobjecs/Templates
backgroundtext=Clever2Link
recurse=on
</texit>
Templates/Vorlagen
Die Template Funktion wird hauptsächlich durch das Ordner-Link Objekt realisiert.
Der Grundlegende Ablauf sieht wie folgt aus:
Erstellen einer Objektstruktur mit
Ordnern/Unterordnern
Datenpunkten
Erstellen eines Links, außerhalb der Struktur
target Eigenschaft ist die
Objekt-Nummer vom Template-Objekt der Objektstruktur (ab Version 1.22.0 dataobjects kann auch auf Objekte mit der Eigenschaft „is“ verwiesen werden)
Link auflösen
Beispiel: Objektstruktur einer Clever2Link Funktzentrale
dynamische Eigenschaften
Mitunter werden Templates auch innerhalb des gleichen Gerätes benutzt, dies bedeutet, dass die Eigenschaft address unterhalb jedes Links angepasst werden muß.
Beispiel
Aufgabe
ein iLON hat 30 Datenpunkte mit folgenden Adressen
Raumname: NVL_name_200 .. NVL_name_210
Sollwert: NVL_setpoint_200 .. NVL_setpoint_210
Istwert: NVL_temperature_200 .. NVL_temperature_210
die Datenpunkte sollen nach Raum gruppiert werden, das Template sähe wie folgt aus
es werden nun 10 Links erstellt, welche alle auf das selbe Template verweisen
Problem
Lösung
jeder Link besitzt zu der Eigenschaft address eine 2te, welche den Raumindex angibt
rid wird nun für jeden der 10 Links festgelegt, der Name spielt keine Rolle
1. Link: name=raum[0],rid=0
2. Link: name=raum[1],rid=1
3. Link: name=raum[2],rid=2
dynamische Eigenschaften in dem Template benutzen
name=Name, address=NVL_name_{200+$rid}
name=Sollwert, address=NVL_setpoint_{200+$rid}
name=Istwert, address=NVL_temperature_{200+$rid}
beim Auflösen wird nun der Teil `{200+$rid}` durch 200, 201 usw. ersetzt
Syntax dynamischer Addressen
Beispiel
Regulärer Ausdruck | Bedeutung | Beispiel |
[\w_] | Konstante | 123
abc_123 |
\$([\w_]+) | Variable | $rid
$Alter |
[\+\-\.\/\%] | Operator
+ Addieren
- Subtrahieren
. String-Addieren
/ Division
% Modulo | |
\|(%[\w]+) | Formatierung | |%02d |
Beispiele dynamischer Eigenschaften
Auflösen
Objekte, welche im Template vorhanden sind, aber nicht im Link werden neu erzeugt
Objekte, welche nicht im Template sind werden gelöscht
Objekte mit gleichen Namen bleiben erhalten (Objet-Id bleibt gleich)
neue Eigenschaften werden bei vorhandenen Objekten im Link hinzugefügt
alte Eigenschaften werden gelöscht, außer sie beginnen und enden mit einem _