IOT (Eingangsagent)

Dieser Eingangsagent erlaubt Kommunikation via OPC/UA.

Services aktivieren


Als erstes müssen die entsprechenden Services aktiviert werden.

Tragen Sie folgende Abschnitte in der Konfigurationsdatei ./etc/factory.xml ein.


...
 
<Call name="addService">
<Arg>com.ebd.hub.services.iot.IoTServerService</Arg>
<Arg>etc/iotserver.xml</Arg>
</Call>
 
<Call name="addService">
<Arg>com.ebd.hub.services.iot.IoTClientService</Arg>
<Arg>etc/iotclient.xml</Arg>
</Call>
 
...

Subscription-Modell


Lobster Integration agiert als IoT-Client.

Konfigurationsdatei anlegen


Legen Sie folgende Konfigurationsdatei ./etc/iotclient.xml an. Hinweis: Siehe auch Abschnitt IOT Clients (Verwaltung).

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Lobster//DTD Configure 1.0//EN" "http://www.lobster.de/dtd/configure_1_1.dtd">
 
<Configure class="com.ebd.hub.services.iot.IoTClientService">
<Set name="verbose">false</Set>
 
<Call name="addAlias">
<Arg>
<New class="com.ebd.hub.services.iot.opcua.OpcUaClientSettings">
<Set name="alias">boiler</Set>
<Set name="endpointURL">opc.tcp://opcua.demo-this.com:51210/UA/SampleServer</Set>
<Set name="minSize">4</Set>
<Set name="maxSize">4</Set>
<Set name="allowGrowing">true</Set>
 
<!--
<Set name="username">some_user</Set>
<Set name="password">some_password</Set>
-->
<!-- <Set name="opcSecurityPolicy">None</Set> -->
<!-- securityPolicy possible values:
None
Basic128Rsa15
Basic256
Basic256Sha256
Aes128_Sha256_RsaOaep
Aes256_Sha256_RsaPss
-->
<!-- <Set name="certificateSearchTerm">*CertificateName*</Set> -->
 
</New>
</Arg>
</Call>
</Configure>

GUI


images/download/attachments/137298967/1216-version-1-modificationdate-1681964067598-api-v2.png images/download/attachments/137298967/1217-version-1-modificationdate-1681964067596-api-v2.png


(1) Der Verbindungs-Alias. Hinweis: Es muss mindestens ein Alias angelegt sein, damit das Subcription-Modell auswählbar ist. Siehe Konfigurationsdatei oben.

(2) Über das Kontextmenü können in einem OpcUa-Browser Subcription Values ausgewählt werden. Ändert sich einer dieser Werte, wird das Profil getriggert, siehe auch (4). Die Read Values (3) werden dann mit abgefragt.

(3) Über das Kontextmenü können in einem OpcUa-Browser Read Values ausgewählt werden. Hinweis: Sie können hier über das Kontextmenü auch manuell Einträge einfügen und diese hierarchisch strukturieren. Die Read Values können dann per Drag and Drop dorthin verschoben werden. Siehe auch (7).

(4) Bei DataChange triggert ein Ändern der Werte das Profil. Bei Direct werden die Werte in regelmäßigen Abständen aktiv abgefragt.

(5) Jeder empfangene Datensatz hat einen Status. Wenn diese Checkbox gesetzt ist, wird der Status bad ignoriert. Ist die Checkbox nicht gesetzt, bricht das Profil in diesem Fall mit einem Fehler ab.

(6) Ist die Checkbox gesetzt, werden beim Aktivieren des Profils einmal alle Werte abgefragt.

(7) Erzeugt eine passende Quell-Struktur für Phase 3.

Client Security


Für eine einfache Zugriffsabsicherung können Sie die Parameter username und password verwenden (siehe oben).

Soll eine Verschlüsselung/ein Zertifikat für die Verbindung genutzt werden, verwenden Sie bitte den Parameter opcSecurityPolicy.

Im Parameter certificateSearchTerm ist der Common Name des Zertifikates zu hinterlegen.

Server-Modell


Lobster Integration agiert als IoT-Server.

Konfigurationsdatei anlegen


Legen Sie folgende Konfigurationsdatei ./etc/iotserver.xml an.

Der OPC/UA-Server ist unter opc.tcp://<URL/IP Integration Server>:4840/opcua_server erreichbar. Der Port kann angepasst werden (siehe unten).

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Lobster//DTD Configure 1.0//EN" "http://www.lobster.de/dtd/configure_1_1.dtd">
 
<Configure class="com.ebd.hub.services.iot.IoTServerService">
<Set name="verbose">False</Set>
<Call name="addDevice">
<Arg>
<New class="com.ebd.hub.datawizard.iot.IoTDashboardDevice"/>
</Arg>
</Call>
<Call name="addServer">
<Arg>
<New class="com.ebd.hub.services.iot.opcua.IoTOpcUAServer">
<!--Set name="tlsSubjectName">*IoT Testserver*</Set-->
<!--Set name="anonymousLoginAllowed">false</Set-->
<!--Only necessary if port needs to be adjusted - Default port is 4840-->
<!--Set name="listenPort">Port</Set-->
            </New>
</Arg>
</Call>
</Configure>

GUI


images/download/attachments/137298967/418-version-1-modificationdate-1681964067600-api-v2.png


(1) Ist die Checkbox gesetzt, wird nach Durchlauf des Profils an den Client eine einfache Antwort (für ein Ok oder einen Fehlschlag) zurückgesendet. Ist sie nicht gesetzt, kann über die Zielstruktur eine Antwort mit dynamischen Rückgabewerten erstellt werden. Hierzu werden alle Felder unter dem auf Root-Ebene befindlichen Knoten IOT_Result Teil der Antwort.

(2) Auswahl des Partners.

(3) Es muss mindestens ein Kanal ausgewählt werden.

Server Security


Soll der Endpunkt über Basic Authentication geschützt werden, ist der Parameter anonymousLoginAllowed (siehe oben) auf false zu setzen.

Zudem ist im Profil dann ein IoT-Kanal zu verwenden. Im Kanal muss unter Partner-Zugang die Partner-Kennung und das Partner-Kennwort eingetragen werden.