IoT Export
IoT Core Datenmodell

IoT Logic Core

56min

Beschreibung

Der IoT Logic Core stellt ein Datenmodell und Kommandos für Szenen, Regeln und dazugehörige Verknüpfungen bereit.

Verknüpfungen

Über Verknüpfungen werden N:N-Verbindungen zwischen Regeln und Szenen geschaffen. Regeln dienen hierbei als Trigger für die Auslösung. Über die Verknüpfungen wird aufgelöst, welche Szenen auszuführen sind.

ConnectionDTO

Feld

Datentype

Beschreibung

id

String

ID zur eindeutigen Identifizierung im System.

name

String

Der zugewiesene Name.

description

String

Die zugewiesene Beschreibung.

active

Boolean

Angabe ob die Verknüpfung aktiviert ist.

conditionCollectionId

String

Angabe der ID einer Regel.

executorCollectionId

String

Angabe der ID einer Szene.

Codebeispiele

ConnectionDeletedDTO

Feld

Datentype

Beschreibung

id

String

Eindeutige ID des Gerätes im System.

Codebeispiele

Szenen

Um Geräte zu schalten oder Aktionen auszulösen, werden Szenen benötigt. Diese enthalten vorkonfigurierte Werte für Geräte oder auszulösende Aktionen.

ExecutorCollectionDTO

Szenen werden durch einen Container abgebildet. Jede Szene wird durch einen Container repräsentiert. Ein solcher Container enthält im Feld "executors" eine Liste von Befehlen, die ausgeführt werden sollen.

Feld

Datentype

Beschreibung

id

String

ID zur eindeutigen Identifizierung im System.

name

String

Der zugewiesene Name.

description

String

Die zugewiesene Beschreibung.

executors

Array

Ein Array von Executor Objekten.

Codebeispiele

ExecutorCollectionDeletedDTO

Feld

Datentype

Beschreibung

id

String

Eindeutige ID des Gerätes im System.

Codebeispiele

Executor

Allgemeine Funktionen werden als Executor bezeichnet. Diese sind unabhängig von Geräten oder Kanälen. Zur Steuerung des Ausführungsverhaltens einer Szene kann der Delay- und Loop-Executor genutzt werden.

Feld

Datentype

Beschreibung

type

String

Angabe des Executortyps.

position

Number

Die Position bestimmt die Reihenfolge der Ausführung.

Executoren mit dem gleichen Wert für die Position werden gegebenenfalls in unterschiedlicher Reihenfolge ausgeführt.

Über das Feld "type" wird angegeben, um was für eine Art von Executor es sich handelt. Folgende Typen sind möglich:

Type

Executor

DELAY

DelayExecutor

LOOP

LoopExecutor

MESSAGE

URL

UrlExecutor

PARAMETER

RANDOM

STATE

StateExecutor

STATE_TOGGLE

VALUE

ValueExecutor

INCREASE_DECREASE

FADE_TO

FADE_FROM_TO

LINK

LinkExecutor

DelayExecutorDTO

Erzeugt eine Verzögerung während der Ausführung einer Szene.

Feld

Datentyp

Beschreibung

delay

Number

Verzögerung in Millisekunden

Codebeispiele

LoopExecutorDTO

Steuerelement für die Wiederholung der Szene.

Feld

Datentyp

Beschreibung

loop

Number

Ein Wert kleiner als 0 deaktiviert die Loop Funktion.

Der Wert 0 bewirkt eine unendliche Wiederholung der Ausführung.

Ein Wert größer als 0 gibt an wie oft die Ausführung wiederholt wird.

Codebeispiele

MessageExecutorDTO

Nachricht per E-Mail / Push an die angegebenen Benutzer versenden.

Feld

Datentyp

Beschreibung

message

String

Die Nachricht, welche gesendet werden soll.

messageType

String

Der Nachrichtentyp.

recipients

Array

Liste der Benutzer welche die Nachricht empfangen sollen.

Die Benutzer müssen lokal am Gateway angelegt sein. Bitte achten Sie bei der Schreibweise auf Groß- und Kleinschreibung.

Folgende Nachrichten Typen können im Feld "messageType" verwendet werden:

Type

NOTIFICATION

WARNING

ALERT

ERROR

CUSTOM

Codebeispiele

UrlExecutorDTO

Aufruf einer benutzerdefinierten URL.

Feld

Datentyp

Beschreibung

url

String

Die Aufzurufende URL inkl. Prefix wie https://

user

String

Der Nutzer für die Authentifizierung

password

String

Das Passwort für die Authentifizierung

ignoreCert

Boolean

Die Prüfung von Zertifikaten auf Gültigkeit deaktivieren

Codebeispiele

Thing Executor

Ein Thing Executor bezieht sich immer auf die Steuerung eines Geräts und benötigt dazu die Geräte-ID.

Feld

Datentyp

Beschreibung

thingId

String

Die eindeutige Geräte ID

ParameterExecutorDTO

Setzen von einem oder mehreren Geräteparametern.

Feld

Datentyp

Beschreibung

parameters

Object

Jedes Objektfeld repräsentiert einen Parameter unter Angabe der Parameter-ID und dem dazugehörigen Wert

Codebeispiele

Channel Executor

Der Channel Executor steuert einzelne Kanäle eines Gerätes. Daher werden die Geräte ID sowie die Kanal ID benötigt.

Feld

Datentyp

Beschreibung

thingId

String

Die eindeutige Geräte ID

channelId

String

Die, bezogen auf ein Gerät, eindeutige Kanal ID

LinkExecutorDTO

Wert/Status von einem anderen Kanal eines Gerätes nutzen.

Feld

Datentyp

Beschreibung

foreignThingId

String

Die eindeutige Geräte ID des Gerätes von dem der Wert übernommen werden soll

foreignChannelId

String

Die eindeutige Kanal ID des Kanals des andere Gerätes von dem der Wert übernommen werden soll

Codebeispiele

RandomExecutorDTO

Stellt einen zufälligen Wert oder State innerhalb des gültigen Wertebereichs ein.

Codebeispiele

StateToggleExecutorDTO

Schaltet zwischen angegebenen States hin und her.

Feld

Datentyp

Beschreibung

states

Array

Angabe der States als String, welche verwendet werden sollen. Bleibt das Array leer, werden alle States außer UNKNOWN verwendet

Codebeispiele

StateExecutorDTO

Setzt den State eines Kanals auf den angebenen Wert.

Feld

Datentyp

Beschreibung

state

String

Der State welcher gesetzt werden soll

Codebeispiele

Channel Value Executor

Eine Besonderheit bei Zahlenwerten ist, dass diese durch ein Objekt repräsentiert werden. Dies ermöglicht es, erweiterte Funktionen für die Ermittlung des eigentlichen Wertes zu nutzen.

Feld

Datentyp

Beschreibung

type

String

Gibt den Type des Wertcontainers an

Folgende Typen sind möglich.

Type

Beschreibung

RAW

Der Wert wird direkt angegeben.

CALCULATED

Der Wert wird mit Hilfe einer Formel und Variablen berechnet

LINK

Der Wert wird von einem anderen Gerät / Kanal übernommen

RawValueDTO

Der Wert wird direkt angegeben.

Feld

Datentyp

Beschreibung

value

Number

Der zu verwendende Wert

Codebeispiele

CalculatedValueDTO

Berechnung des Wertes basierend auf einer Formel und der Definition weiterer Werte als Variablen.

Feld

Datentyp

Beschreibung

expression

String

Formel für die Berechnung.

values

Object

Jedes Feld des Objektes repräsentiert ein Variable welche in der Berechnung genutzt werden kann. Als Wert ist dort wieder ein Wertcontainer Objekt hinterlegt. Eine Variable darf nur aus Buchstaben bestehen.

Jedes Feld des Objektes repräsentiert eine Variable, die in der Berechnung genutzt werden kann. Als Wert ist dort wieder ein Wert-Container-Objekt hinterlegt.

Folgende Operatoren und Steuerzeichen können im Feld "expression" genutzt werden:

Zeichen

Beschreibung

+

Addition

-

Subtraktion

*

Multiplikation

/

Division

(

Klammer auf

)

Klammer zu

Die folgenden Funktionen können im Feld "expression" verwendet werden. Hinweis: x,y können Variablen oder Werte sein.

Function

Beschreibung

min(x,y)

Gibt die Zahl mit dem kleineren Wert zurück

max(x,y)

Gibt die Zahl mit dem größeren Wert zurück

sqrt(x)

Quadratwurzel von x

pow(x,y)

Gibt die y-te Potenz zur Basis x zurück

floor(x)

Nimmt als Eingabe eine reelle Zahl x und gibt als Ausgabe die größte ganze Zahl kleiner als oder gleich x zurück

ceiling(x)

Nimmt als Eingabe eine reelle Zahl x und gibt als Ausgabe die größte ganze Zahl größer als oder gleich x zurück

round(x)

Rundet den angegebenen Wert auf den nächstliegenden Long-Wert

abs(x)

Gibt den nichtnegativen Wert von x ohne Rücksicht auf sein Vorzeichen zurück

log(x)

Gibt den natürlichen Logarithmus (Basis e) von x zurück

log10(x)

Gibt den Logarithmus zur Basis 10 von x zurück

sin(x)

Sinus von x

sinh(x)

Sinus hyperbolicus von x

asin(x)

Liefert den Arcussinus von x

cos(x)

Cosinus von x

cosh(x)

Cosinus hyperbolicus von x

acos(x)

Liefert den Arcuscosinus von x

tan(x)

Tangens von x

tanh(x)

Tangens hyperbolicus von x

atan(x)

Liefert den Arcustanges von x

Variablennamen dürfen nur aus Buchstaben bestehen und nicht aus den o.g. Operatoren oder Funktionsnamen.

Codebeispiele

LinkedValueDTO

Wert von einem anderen Gerät / Kanal nutzen.

Feld

Datentyp

Beschreibung

foreignThingId

String

Angabe der Geräte ID.

foreignChannelId

String

Angabe der Geräte Kanal ID.

Codebeispiele

ValueExecutorDTO

Den Zahlenwert eines Kanals auf den angegebenen Wert ändern. Der eigentliche Wert wird zum Prüfzeitpunkt anhand des hinterlegten Wertcontainers ermittelt.

Feld

Datentyp

Beschreibung

value

Object

Wertcontainers für den zu verwendenden Wert.

FadeFromToExecutorDTO

Ändert einen Zahlenwert innerhalb einer zeitlichen Vorgabe inkrementell von einem angegebenen Startwert auf den angegebenen Zielwert.

Feld

Datentyp

Beschreibung

from

Object

Wertcontainer für den Startwert.

to

Object

Wertcontainer für den Zielwert.

ms

Number

Zeitangabe in Millisekunden.

Codebeispiele

FadeToExecutorDTO

Ändert einen Zahlenwert innerhalb einer zeitlichen Vorgabe inkrementell auf den angegebenen Zielwert.

Feld

Datentyp

Beschreibung

to

Object

Wertcontainer für den Zielwert.

ms

Number

Zeitangabe in Millisekunden.

Codebeispiele

InDecreaseExecutorDTO

Erhöht oder verringert den Kanalwert um den angegebenen Wert.

Feld

Datentyp

Beschreibung

value

Object

Wertcontainer für den zu verwendenden Wert.

decrease

Boolean

Angabe, ob der Kanalwert um den Wert aus dem Feld "value" verringert werden soll, ansonsten wird dieser erhöht.

Codebeispiele

Regeln

Mit Hilfe von Regeln können Auslöser für Szenen hinterlegt werden. Die Auswertung erfolgt sequenziell in Reihenfolge unter Berücksichtigung des Feldes "position".

ConditionCollectionDTO

Eine ConditionCollection repräsentiert eine Regel mit einer Sammlung an Conditions.

Feld

Datentype

Beschreibung

id

String

ID zur eindeutigen Identifizierung im System.

name

String

Der zugewiesene Name.

description

String

Die zugewiesene Beschreibung.

conditions

Array

Eine Sammlung von Conditions für die logische Auswertung.

type

String

Der Typ der ConditionCollection ist immer COLLECTION

position

Number

Das Feld position wird bei der Auswertung berücksichtigt und die Conditions vorher entsprechend sortiert.

Ein ConditionCollection-Objekt kann auch als Bedingung genutzt werden. Dies ist hilfreich für eine verschachtelte Auswertung mit gegebenenfalls komplexen Blöcken.

Codebeispiele

ConditionCollectionDeletedDTO

Feld

Datentype

Beschreibung

id

String

Eindeutige ID des Gerätes im System.

Codebeispiele

Condition

Eine Condition oder Bedingung dient der logischen Auswertung von Gerätedaten oder anderen Faktoren wie beispielsweise einer Prüfung der Uhrzeit.

Alle Condition Objekte besitzen folgende Felder:

Feld

Datentype

Beschreibung

type

String

Der Type der Condition.

position

Number

Das Feld position wird bei der Auswertung berücksichtigt und die Conditions vorher entsprechend sortiert.

comparator

String

Vergleichsoperator welcher genutzt werden soll. Dieser ist abhängig vom verwendeten Condition Typ.

Das Feld "type" gibt an um welche Art von Condition es sich handelt.

Type

Condition DTO

COLLECTION

OPERATOR

TIME

TimeCondition

STATE

VALUE

ConditionOperatorDTO

Ein Vergleichsoperator ermöglicht es Conditions logisch zu verknüpfen.

Im Feld "comparator" sind folgende Vergleichsoperatoren möglich:

Mögliche Vergleichsoperatoren

AND

NAND

OR

NOR

XOR

NXOR

Sind mehrere Conditions in einer ConditionCollection vorhanden, können diese mit einem ConditionOperator verknüpft werden. Dabei muss das Feld "position" der Conditions korrekt befüllt werden.

Befindet sich zwischen zwei Conditions kein ConditionOperator, wird automatisch ein AND-Vergleich durchgeführt. Das Feld "position" ist hierbei ausschlaggebend für die Reihenfolge.



Codebeispiele

Time Condition

Eine Time Condition stellt eine Möglichkeit dar, aktuelle zeitliche Informationen bei der Auswertung zu berücksichtigen.

TimeConditionDTO

Feld

Datentype

Beschreibung

selectedDays

Array

Ausgewählte Tage als String Array.

startTime

Number

Startzeit als Unix Timestamp.

endTime

Number

Endzeit als Unix Timestamp.

timerType

String

Timer Type zur Festlegung wie die Auswertung der Parameter erfolgt.

Über das Feld "timerType" wird bestimmt um was für eine Art von Timer es sich handelt. Folgende Typen sind möglich:

Type

Beschreibung

DATE

Datumsbereich von startTime bis endTime.

TIME

Zeitbereich von startTime bis endTime.

DAYS

Ein oder mehrere Wochentage.

DAYS_TIME

Innerhalb eines Zeitbereich von startTime bis endTime an einem oder mehreren Wochentagen.

Im Feld "selectedDays" kann ein Array mit den ausgewählten Tagen hinterlegt werden.

Tag

MONDAY

TUESDAY

WEDNESDAY

THURSDAY

FRIDAY

SATURDAY

SUNDAY

Im Feld "comparator" sind folgende Vergleichsoperatoren möglich:

Mögliche Vergleichsoperatoren

EQUAL

NOT_EQUAL

Codebeispiele

Channel Condition

Channel Conditions dienen zur Prüfung eines Kanalwertes. Jede Spezialisierung bringt besitzt eigene Felder zur Definition des Prüfwertes und eine Liste von möglichen Vergleichsoperatoren.

Feld

Datentype

Beschreibung

thingId

String

Einzigartige Geräte ID

channelId

String

Einzigartige (bezogen auf das Gerät) Kanal ID

smartCheck

Boolean

Intelligente Prüfung. Verhindert die mehrfache Auswertung als wahr, bis der Prüfwert wieder als unwahr ausgewertet wurde.

StateChannelConditionDTO

Prüft den (String) State eines Kanals.

Feld

Datentype

Beschreibung

state

String

Der State, welcher mit dem aktuellen Kanalwert verglichen wird.

Im Feld "comparator" sind folgende Vergleichsoperatoren möglich:

Mögliche Vergleichsoperatoren

EQUAL

NOT_EQUAL

Codebeispiele

ValueChannelConditionDTO

Prüft den Zahlenwert eines Kanals.

Feld

Datentype

Beschreibung

value

Number

Der Wert, welcher mit dem aktuellen Kanalwert verglichen wird.

Im Feld "comparator" sind folgende Vergleichsoperatoren möglich:

Mögliche Vergleichsoperatoren

EQUAL

NOT_EQUAL

GREATER

GREATER_EQUAL

SMALLER

SMALLER_EQUAL

Codebeispiele



Aktualisiert 25 Mar 2024
Doc contributor
Doc contributor
Hat Ihnen diese Seite geholfen?