Erweiterte Konfigurationen und Integrationen > Assets mit dem Edge MicroServer (EMS) verbinden
Assets mit dem Edge MicroServer (EMS) verbinden
Der Edge MicroServer (EMS) ist eine eigenständige Anwendung, die auf einem Remote-Gerät installiert ist. Er stellt eine ständig eingeschaltete bidirektionale Kommunikation zwischen dem Gerät und einem ThingWorx Host her.
In diesem Abschnitt wird erläutert, wie Asset-Eigenschaften in ThingWorx mithilfe von Edge MicroServer (EMS) und der mit dem EMS gebündelten Lua-Skriptressource mit einem Gerät verbunden werden.
Informationen zum Verbinden von Asset-Eigenschaften mithilfe des Edge SDK finden Sie im ThingWorx Edge Java SDK Hilfe-Center.
Voraussetzungen
Stellen Sie sicher, dass Sie Folgendes haben:
Edge MicroServer (EMS) und die gebündelte Lua-Skriptressource (LSR).
ThingWorx Composer 8.2.0 oder höher mit installierten ThingWorx Apps.
ThingWorx WebSocket-basierter Edge MicroServer (WS EMS) und Lua-Skript-Ressource (LSR) Hilfe-Center. Diese Anweisungen setzen voraus, dass Sie mit dem Inhalt des Hilfe-Centers vertraut sind.
ThingWorx konfigurieren
1. Erstellen Sie in ThingWorx Composer einen Anwendungsschlüssel, der in Ihrem EMS verwendet werden soll.
a. Klicken Sie unter Sicherheit > Anwendungsschlüssel auf Neu.
b. Geben Sie die entsprechenden Werte ein:
Name – Dieser Wert wird bei der Konfiguration des EMS benötigt.
Benutzernamenreferenz – Wählen Sie einen Benutzer aus, der EMS verwenden wird. Zum Beispiel Administrator.
Ablaufdatum – Legen Sie basierend auf Ihren Unternehmensrichtlinien ein entsprechendes Ablaufdatum für den Anwendungsschlüssel fest. Wird dies leer gelassen, wird standardmäßig ein Tag festgelegt.
c. Klicken Sie auf Speichern.
2. Erstellen Sie in ThingWorx das Asset (Ding), mit dem Sie Remote-Geräte verbinden möchten. Verwenden Sie eine der folgenden Basis-Dingvorlagen oder eine Dingvorlage, die eine der folgenden Dingvorlagen implementiert:
RemoteThing
RemoteThingWithFileTransfer
RemoteThingWithTunnels
RemoteThingWithTunnelsAndFileTransfer
PTC.ISA95.PhysicalAssetBaseThingTemplate
Unabhängig von der verwendeten Basis-Dingvorlage muss das Asset die Dingform RemoteAccessible implementieren.
Die optimale Vorgehensweise besteht darin, Dingformen auf Dingvorlagen zu implementieren, anstatt auf individuellen Assets.
EMS konfigurieren
1. Laden Sie den EMS herunter, und installieren Sie ihn, gemäß den Anweisungen im ThingWorx WebSocket-basierter Edge MicroServer (WS EMS) und Lua-Skript-Ressource (LSR) Hilfe-Center.
2. Navigieren Sie zur folgenden Datei: <EMS-Installationsspeicherort>/microserver/etc/config.json.
3. Bearbeiten Sie die Datei config.json so, dass host, port und appKey Ihr ThingWorx System zum Ziel haben. Sie können das folgende Beispiel oder die Datei config.json.minimal verwenden.
{
"ws_servers": [{
"host": "localhost",
"port": 8080
}],
"appKey": "84fbd93b-1ca5-4057-be39-5a2b3bd1cf9e",
"ws_connection":{
"encryption":"none"
"http_server" : {
"host": "10.232.247.58",
"port": 8000,
"ssl" : false,
"certificate": "<absoluter Pfad zur Zertifikatdatei>",
"private_key": "<absoluter Pfad zum privaten Schlüssel>",
"passphrase": "password"
"authenticate": false,
"user": "johnsmith",
"password": "DP:AQABAKs1GFoUEW1XfDlwab4J4huKthm9GP3seM3PEjOMVoyFD3es2ZDtN2ngA99oLkcODQ",
"content_read_timeout": 20000,
"ports_to_try": 10,
"max_clients": 15,
"enable_csrf_tokens": true,
"csrf_token_rotation_period": 10
},

"logger":{
"level":"WARN",
"publish_directory":"<absoluter Pfad zu \MicroServer\edge\logs>",
"publish_level":"INFO",
"max_file_storage":2000000,
"auto_flush":true
},

"certificates":{
"validate":false,
"allow_self_signed":true
},
"file":{
"buffer_size":32400,
"virtual_dirs":[{
"in":"<absoluter Pfad zu \MicroServer\edge\in>"
}, {
"out":"<absoluter Pfad zu \MicroServer\edge\out>"
},{
"staging":"<absoluter Pfad zu \MicroServer\edge\staging>"
}],
"staging_dir":"staging"
}
}
4. Speichern Sie die geänderte Datei config.json.
5. Führen Sie die Datei <EMS-Installationsspeicherort>/microserver/wsems.exe als Option aus, oder installieren Sie sie als Dienst.
Lua-Skriptressource (LSR) konfigurieren
1. Suchen Sie die Datei config.lua.example im Verzeichnis <EMS-Installationsspeicherort>/microserver/etc.
2. Suchen Sie in der Datei den Abschnitt Connection parameters, und ändern Sie ihn gemäß Ihren Einstellungen für EMS. Zum Beispiel:
--
-- Connection parameters
--
scripts.rap_host = "EMS IP Address"
scripts.rap_port = "EMS Port"
scripts.rap_ssl = true
scripts.rap_userid = "EMS HTTP Server User ID"
scripts.rap_password = "password"
scripts.rap_server_authenticate = true
scripts.rap_cert_file = "Path to CA cert file."
scripts.rap_deny_selfsigned = true
scripts.rap_validate = true
3. Suchen Sie den Abschnitt HTTP Server Configuration, und konfigurieren Sie ihn für die Lua-Skriptressource. Zum Beispiel:
--
-- HTTP Server Configuration
--
scripts.script_resource_host = "localhost"
scripts.script_resource_port = "8001"
scripts.script_resource_ssl = "false"
scripts.script_resource_certificate_chain = "/path/to/lsr_http_server_certificate_chain/file"
scripts.script_resource_private_key = "/path/to/private/key"
scripts.script_resource_passphrase = "password"
scripts.script_resource_authenticate = "false"
scripts.script_resource_userid = "johnsmith"
scripts.script_resource_password = "AES:EncryptedPassword"
scripts.script_resource_enable_csrf_tokens = true
scripts.script_resource_csrf_token_rotation_period = 10
scripts.script_resource_enable_rest_services = false
4. Identifizieren Sie das Asset, an das Sie die Eigenschaften binden möchten. Suchen Sie den folgenden Abschnitt in der Datei config.lua.example:
scripts.EdgeThing = {
file = "thing.lua",
template = "example",
}
Ersetzen Sie EdgeThing durch den tatsächlichen Wert des Assets für Name aus ThingWorx.
Alternativ können Sie hier die Eigenschaft identifier angeben. Nachdem Sie das Lua-Skript später in diesem Prozess ausführen, wird in ThingWorx eine ID erstellt, die Sie dann unter ID auf der Seite Allgemeine Informationen für Ihr Asset in ThingWorx Composer auswählen können.
* 
Ein Remote-Ding kann nach Name oder nach ID gebunden werden, aber nicht nach beidem. Wenn ein nach Name gebundenes Remote-Ding auch eine ID hat, funktioniert das Ausführen von Remote-Diensten oder das Abrufen von Remote-Eigenschaften für das Ding nicht wie erwartet.
Wenn Sie ein Remote-Ding nach Name binden möchten, geben Sie keine ID an. Wenn bereits eine ID angegeben ist, entfernen Sie sie.
Die Eigenschaft template stellt das Skript dar, das angibt, welche Informationen Sie vom Gerät an Ihr Asset senden möchten, z.B. Remote-Eigenschaften oder Remote-Dienste. Im obigen Codebeispiel finden Sie die gezeigte Datei example hier: <EMS-Installationsspeicherort>/microserver/etc/custom/templates/example.lua. Die Dateien mit dem Namen example.lua enthalten Beispiele zum Erstellen eigener Remote-Eigenschaften und Remote-Dienste.
EMS und Lua-Skriptressource (LSR) ausführen
Führen Sie nach Abschluss der Konfigurationen den EMS als Dienst oder über die Befehlszeile aus, und führen Sie anschließend die LSR als Dienst oder über die Befehlszeile aus. Die folgenden Grafiken zeigen Beispiele für das Ausführen von beiden über die Befehlszeile.
EMS:
Lua-Skript:
Wenn in Ihrer Konfiguration ein Fehler auftritt, meldet die Befehlszeilenschnittstelle den Fehler.
Remote-Eigenschaften binden
Sobald die LSR erfolgreich ausgeführt wurde, sind die Remote-Eigenschaften, die in dem als template angegebenen Skript definiert wurden, zum Binden an Ihr Asset in ThingWorx verfügbar.
1. Öffnen Sie in ThingWorx Composer Ihr Asset.
2. Klicken Sie auf der Seite Eigenschaften und Warnungen auf Bindungen verwalten.
3. Klicken Sie im Fenster Bindungen verwalten auf Remote. Ziehen Sie die Remote-Eigenschaften, die Sie an Ihr Asset binden möchten, aus dem linken Fensterbereich in den rechten Fensterbereich, und legen Sie sie dort ab.
4. Klicken Sie auf Fertig.
5. Klicken Sie auf Speichern, um das Asset zu speichern.