Documentation Index

Fetch the complete documentation index at: https://docs.lobster-world.com/llms.txt

Use this file to discover all available pages before exploring further.

IOT (Eingangsagent)

Prev Next

Dieser Eingangsagent ermöglicht Kommunikation via OPC/UA.  Lobster Integration agiert dabei wahlweise als OPC UA-Client (Subscription-Modell) oder als OPC UA-Server.

Services aktivieren

Tragen Sie in ./etc/factory.xml je nach Rolle den Client- und/oder Server-Service 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 (Client)

Lobster Integration agiert als OPC UA-Client und abonniert Werte von einem Server.

Konfigurationsdatei anlegen

Legen Sie ./etc/iotclient.xml an. Jeder Alias beschreibt eine Verbindung zu einem OPC UA-Server:

<?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>

                <!-- Optional: Basic Authentication -->
                <!--
                <Set name="username">some_user</Set>
                <Set name="password">some_password</Set>
                -->

                <!-- Optional: Security Policy (Kryptosuite) -->
                <!-- <Set name="opcSecurityPolicy">Basic256Sha256</Set> -->

                <!-- Optional: Security Mode (None / Sign / SignAndEncrypt) -->
                <!-- <Set name="opcSecurityMode">SignAndEncrypt</Set> -->

                <!-- Optional: Zertifikatssuche (Common Name) -->
                <!-- <Set name="certificateSearchTerm">*CertificateName*</Set> -->
            </New>
        </Arg>
    </Call>
</Configure>

GUI

OPC UA Client GUI, Teil 1OPC UA Client GUI, Teil 2

(1) Verbindungs-Alias: Mindestens ein Alias muss in der Konfigurationsdatei (s. o.) definiert sein. Nur dann ist das Subscription-Modell auswählbar.

(2) Subscription Values: Im OPC UA-Browser per Kontextmenü auswählbar. Eine Änderung eines dieser Werte löst das Profil aus (siehe auch (4)). Lobster Integration fragt dabei auch die Read Values (3) ab.

(3) Read Values: Im OPC UA-Browser per Kontextmenü auswählbar.  HINWEIS Über das Kontextmenü fügen Sie manuell Einträge ein und strukturieren diese hierarchisch. Per Drag-and-drop verschieben Sie Read Values dann dorthin (siehe auch (7)).

(4) Subscription Type: DataChange löst das Profil bei jeder Wertänderung aus. Direct fragt die Werte in regelmäßigen Abständen ab.

(5) Ignore Retrieval Error Status: Jeder empfangene Datensatz hat einen Status. Ist die Checkbox gesetzt, ignoriert das System den Status bad. Andernfalls bricht das Profil mit einem Fehler ab.

(6) Subscription Initial Notification: Wenn gesetzt, fragt Lobster Integration beim Aktivieren des Profils einmalig alle Werte ab.

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

Client-Sicherheit

Für die Zugriffsabsicherung stehen drei Mechanismen zur Verfügung, die sich kombinieren lassen:

  • Basic Authentication über die Parameter username und password.

  • Kryptosuite über opcSecurityPolicy (z. B. Basic256Sha256) und Zertifikat via certificateSearchTerm (Common Name).

  • Security Mode über opcSecurityMode. Dieser Parameter legt fest, ob der Datenverkehr signiert und/oder verschlüsselt wird.

Security Mode festlegen (opcSecurityMode)

Verfügbar ab: Patch/Release 25.1.8, 26.1.2, 26.2.0

Mit opcSecurityMode legen Sie pro Alias einen bestimmten OPC UA-Security-Mode beim Verbindungsaufbau fest. Das ist relevant, wenn ein Server mehrere Endpoints meldet, aber nur bestimmte Modes akzeptiert. Das gilt auch, wenn Sie interne Security-Vorgaben (z. B. zwingende Verschlüsselung) durchsetzen müssen.

Erlaubte Werte:

Wert

Bedeutung

Einsatz

None

Keine Signatur, keine Verschlüsselung

Test / geschlossene Netze

Sign

Signatur, keine Verschlüsselung

Integrität ohne Vertraulichkeit

SignAndEncrypt

Signatur und Verschlüsselung

Empfohlener Standard für produktive Umgebungen

Standardverhalten: Ist opcSecurityMode nicht gesetzt, wählt der Client wie bisher den ersten vom Server gemeldeten Endpoint, der zu den übrigen Einstellungen passt. Die Auswahl hängt dann von der Endpoint-Reihenfolge des Servers ab. Das Ergebnis ist nicht immer vorhersehbar.

Beispiel:

<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="opcSecurityPolicy">Basic256Sha256</Set>
    <Set name="opcSecurityMode">SignAndEncrypt</Set>
    <Set name="certificateSearchTerm">*CertificateName*</Set>
</New>

Policy vs. Mode: Abgrenzung

  • opcSecurityPolicy bestimmt, welche Kryptosuite genutzt wird (z. B. Basic256Sha256, Aes256_Sha256_RsaPss).

  • opcSecurityMode bestimmt, ob signiert und/oder verschlüsselt wird (None, Sign, SignAndEncrypt).

Beide Einstellungen zusammen entscheiden, welcher Server-Endpoint verwendbar ist.

Fehlerbehebung

Schlägt die Verbindung fehl, obwohl Richtlinie und Zertifikat korrekt erscheinen?

  1. Prüfen Sie, welche Security Modes der Server an seinen Endpoints tatsächlich anbietet und akzeptiert.

  2. Setzen Sie opcSecurityMode explizit (üblicherweise SignAndEncrypt).

  3. Stellen Sie sicher, dass opcSecurityPolicy zum gewählten Modus passt. Die None-Policy lässt sich z. B. nicht mit SignAndEncrypt kombinieren.

  4. Testen Sie erneut.

Parameter-Referenz (Client)

Parameter

Pflicht

Beschreibung

alias

ja

Eindeutiger Name der Verbindung (Referenz im Profil).

endpointURL

ja

OPC UA-Endpoint des Zielservers.

minSize / maxSize / allowGrowing

nein

Pool-Sizing der Client-Verbindungen.

username / password

nein

Basic Authentication am Server.

opcSecurityPolicy

nein

Kryptosuite: None, Basic128Rsa15, Basic256, Basic256Sha256, Aes128_Sha256_RsaOaep, Aes256_Sha256_RsaPss.

opcSecurityMode

nein

Security Mode: None, Sign, SignAndEncrypt. Ab 25.1.8 / 26.1.2 / 26.2.0.

certificateSearchTerm

nein

Common Name des Client-Zertifikats (Wildcards erlaubt).

Server-Modell

Lobster Integration agiert als OPC UA-Server und stellt Daten für externe Clients bereit.

Konfigurationsdatei anlegen

Legen Sie ./etc/iotserver.xml an. Der OPC UA-Server ist standardmäßig unter opc.tcp://<URL/IP Integration Server>:4840/opcua_server erreichbar. Den Port passen Sie über listenPort an.

<?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> -->
                <!-- Nur setzen, wenn vom Default-Port 4840 abgewichen werden soll -->
                <!-- <Set name="listenPort">Port</Set> -->
            </New>
        </Arg>
    </Call>
</Configure>

GUI

OPC UA Server GUI

(1) Generische Rückmeldung senden: Wenn gesetzt, erhält der Client nach dem Profildurchlauf eine einfache OK/Fehler-Antwort. Andernfalls erstellen Sie über die Zielstruktur eine Antwort mit dynamischen Rückgabewerten. Alle Felder unter dem Root-Knoten IOT_Result werden Teil der Antwort.

(2) Auswahlfeld unter (1): Auswahl des Partners.

(3) Pfeile in der Mitte: Es muss mindestens ein Kanal ausgewählt werden.

Server-Sicherheit

Um den Endpunkt über Basic Authentication abzusichern, setzen Sie anonymousLoginAllowed auf false. Verwenden Sie im Profil dann einen IoT-Kanal. Hinterlegen Sie dort unter Partner-Zugang die Partner-Kennung und das Partner-Kennwort.

Serverzertifikat und Subject Alternative Name (SAN)

Der OPC UA-Server benötigt ein TLS-Zertifikat. Das Zertifikat muss einen Subject Alternate Name vom Typ URI enthalten. Diese URI muss der Application-URI des Servers entsprechen. Andernfalls lehnen viele Clients die Verbindung ab.

Ohne Eintrag in der iotserver.xml gilt der Default urn:de:lobster:iot:integrationserver.

Die URI fügen Sie im Zertifikatsdialog über Weitere Ersatznamen hinzu. Den Zertifikatsnamen referenzieren Sie anschließend über tlsSubjectName.

Parameter-Referenz (Server)

Parameter

Pflicht

Beschreibung

tlsSubjectName

nein

Suchbegriff für das TLS-Serverzertifikat (Subject). Wildcards erlaubt, z. B. *IoT Server*.

anonymousLoginAllowed

nein

Steuert den anonymen Zugriff. Default true. Für Basic Authentication auf false setzen.

listenPort

nein

Port des OPC UA-Endpoints. Default 4840.