ItemListen-Dienste

Im Gegensatz zu Item-Diensten bieten ItemListen-Dienste den Zugriff auf mehrere Einträge mit gleichen Eigenschaften an. Um den Kommunikationsaufwand bei Änderungen gering zu halten, kommt hierbei eine etwas komplexere Struktur zum Einsatz, die das Erkennen geänderter Eigenschaften erleichtert.

Beispiele: WeatherInformation, ErrorInformation, PriceInformation

Item-Werte

Item-Werte lassen sich in drei verschiedene Gruppen einteilen, die im folgenden beschrieben werden.

MetaID

Metadaten erlauben das gezielte Abrufen von geänderten Item-Werten. Sie beschreiben z.B. eine UpdateMask zum Erkennen geänderter Dienstwerte oder einen CRC zum Überwachen komplexer Elemente wie Kontaktinformationen. Die verfügbaren MetaIDs sind fest definiert. Dienste übertragen die unterstützten MetaIDs über das Tupel SupportedMetaIDMask innerhalb der Dienstbeschreibung.

Beispiele: MetaIDPropEvntID, MetaIDUpdateMask, MetaIDInfoMask

ElementListen-Dienste erlauben den Abruf der Meta-Eigenschaften über den ControlRequest ElementMetaValues. Die aktuellen Werte werden in einem ElementListValues-Tupel als composite byte array übertragen.

DescriptiveID

Descriptive-Daten kommen bei Diensten zum Einsatz, die sowohl schnell als auch langsam veränderliche Eigenschaften besitzen. Die langsam veränderlichen Werte werden dann als Descriptive-Daten zur Verfügung gestellt. Für Descriptive-Daten gibt es keine individuellen Update- oder InfoMasken, sie können bei Änderungen also nur komplett abgerufen werden.

Der Sinn von Descriptive-Daten liegt in der Ersparnis der abzurufenden Werte bei der Aufsynchronisierung von ElementListen-Diensten. Verliert ein Client eine Event-Nachricht mit Property-Änderungen, so muss er alle Properties neu abrufen, da er nicht wissen kann, welche UpdateMask zur verlorenen Event-Nachricht gehört hat. Für einen ErrorInformation-Dienst würde das einen Neuabruf von Fehlernamen und Fehlerbeschreibung bedeuten, obwohl diese mit hoher Wahrscheinlichkeit nicht geändert wurden. Durch das Verschieben dieser Eigenschaften nach Descriptive verringert sich die Nachrichtengröße erheblich.

Beispiele: DescriptiveIDName, DescriptiveIDDescription, DescriptiveIDValueType

ElementListen-Dienste erlauben den Abruf der Descriptive-Eigenschaften über den ControlRequest ElementDescriptiveValues. Die aktuellen Werte werden in einem ElementListValues-Tupel als composite byte array übertragen.

PropertyID

Properties entsprechen den Eigenschaften aus einfachen Element-Diensten. Die Abfrage erfolgt analog über den ControlRequest ElementPropertyValues. Es können Eigenschaften für ein einzelnes Element oder eine ElementListe (identifiziert über den ElementIndexMask-Tupel) abgefragt werden.