Fehlerdiagnose

Das folgende Kapitel gibt nützliche Informationen zur Fehlerdiagnose, wenn Anwendungsszenarien nicht so funktionieren wie erwartet.

Verhalten

Kategorie

Beschreibung

Verbindung zum Message Broker kann nicht hergestellt werden

Verbindungsaufbau

Überprüfen Sie, ob der Message Broker grundsätzlich von dem System aus erreichbar ist, auf dem die Tc3_IotBase ausgeführt wird (z.B. mit einem anderen MQTT-Client).

Falls der Message Broker nicht erreichbar ist, überprüfen Sie Ihre Firewall-Einstellungen. Für eine MQTT-Kommunikation muss auf dem MQTT-Client (dem Rechner der die Tc3_IotBase ausführt) standardmäßig der ausgehende TCP-Port 1883 bzw. 8883 (bei Verwendung von TLS) geöffnet sein. Auf der Seite des Message Brokers müssen diese Ports entsprechend eingehend geöffnet sein.

Die Port-Konfiguration kann bei Verwendung der Tc3_IotBase über den Eingabeparameter nHostPort am Funktionsbaustein FB_IotMqttClient überprüft werden.

Verbindung mit AWS IoT kann nicht hergestellt werden

Verbindungsaufbau

Überprüfen Sie, ob die AWS IoT URL grundsätzlich von dem System aus erreichbar ist, auf dem die Tc3_IotBase ausgeführt wird (z.B. mit einem anderen MQTT-Client). Dies gibt Ihnen auch die Gelegenheit die Zertifikate für die Verbindung auf Gültigkeit zu überprüfen. Falls der andere MQTT-Client keine Verbindung herstellen kann, überprüfen Sie auf der AWS IoT Management-Webseite, ob die Zertifikate gültig und aktiv sind.

Falls AWS IoT nicht erreichbar ist, überprüfen Sie Ihre Firewall-Einstellungen. Für eine MQTT-Kommunikation mit AWS IoT muss auf dem MQTT-Client (dem Rechner der die Tc3_IotBase ausführt) standardmäßig der ausgehende TCP-Port 8883 geöffnet sein.

Die Port-Konfiguration kann bei Verwendung der Tc3_IotBase über den Eingabeparameter nHostPort am Funktionsbaustein FB_IotMqttClient überprüft werden.

Verbindung mit Azure IoT Hub kann nicht hergestellt werden

Verbindungsaufbau

Überprüfen Sie, ob die AWS IoT URL grundsätzlich von dem System aus erreichbar ist, auf dem die Tc3_IotBase ausgeführt wird (z.B. mit einem anderen MQTT-Client). Dies gibt Ihnen auch die Gelegenheit das CA-Zertifikat für die Verbindung auf Gültigkeit zu überprüfen. Falls der andere MQTT-Client keine Verbindung herstellen kann, überprüfen Sie, ob Sie ein gültiges CA-Zertifikat verwenden.

Falls der Azure IoT Hub nicht erreichbar ist, überprüfen Sie Ihre Firewall-Einstellungen. Für eine MQTT-Kommunikation mit dem Azure IoT Hub muss auf dem MQTT-Client (dem Rechner der die Tc3_IotBase ausführt) standardmäßig der ausgehende TCP-Port 8883 geöffnet sein.

Die Port-Konfiguration kann bei Verwendung der Tc3_IotBase über den Eingabeparameter nHostPort am Funktionsbaustein FB_IotMqttClient überprüft werden.

Nach einem CRL Update kann die Verbindung nicht aufgebaut werden. Die Variable eConnectionState zeigt den folgenden Wert an: MQTT_ERR_TLS_VERIFY_FAIL

Verbindungsaufbau

Das Zertifikat des Message Brokers wurde revoked. Bitte wenden Sie sich in diesem Fall an den Betreiber des Message Brokers für weitere Informationen.

Nach zwischenzeitlichem Verwenden eines ungültigen Topics (bspw. eine Wildcard an der falschen Stelle „testtopic#“) toggelt die Verbindung des MQTT-Clients zum Broker

Verbindungsaufbau

Nach Verwenden eines ungültigen Topics muss TwinCAT neugestartet werden. Bitte achten Sie darauf, dass keine ungültigen Topics verwendet werden.

Nachrichten kommen nicht im Azure IoT Hub an

Publish

Überprüfen Sie, ob Sie die Nachrichten an das richtige Topic publishen. Die Topic-Struktur ist beim Azure IoT Hub fest vorgegeben und obliegt einem festen Namensschema.

Überprüfen Sie, ob Sie gültige MQTT-Einstellungen verwenden und diese vom Azure IoT Hub unterstützt werden.

Konsultieren Sie unsere Hinweise zum Verbindungsaufbau mit dem Azure IoT Hub oder die MSDN-Dokumentation für weitere Informationen.

Nachrichten kommen nicht bei IBM Watson IoT an

Publish

Überprüfen Sie, ob Sie die Nachrichten an das richtige Topic publishen. Die Topic-Struktur ist IBM Watson IoT fest vorgegeben und obliegt einem festen Namensschema.

Überprüfen Sie, ob Sie gültige MQTT-Einstellungen verwenden und diese von IBM Watson IoT unterstützt werden.

Konsultieren Sie unsere Hinweise zum Verbindungsaufbau mit IBM Watson IoT oder die IBM Watson Dokumentation für weitere Informationen.

Nachrichten-Inhalt wird vom Subscriber nicht als gültige JSON-Nachricht erkannt

Publish

Überprüfen Sie, ob Sie ein gültiges JSON Dokument verschicken. Unsere Tc3_JsonXml-Bibliothek unterstützt Sie beim Erzeugen von gültigen JSON-Dokumenten.

Überprüfen Sie, ob Sie beim Aufrufen der Publish-Methode die richtige Längeninformation (nPayloadSize) übergeben und sich nicht zu viele Daten (null) hinter dem eigentlichen Payload befinden.

Es werden keine Properties für das zugehörige Event auf IBM Watson IoT erkannt

Publish

Überprüfen Sie, ob Sie beim Aufrufen der Publish-Methode die richtige Längeninformation (nPayloadSize) übergeben und sich nicht zu viele Daten (null) hinter dem eigentlichen Payload befinden, sodass IBM Watson die Nachricht gegebenenfalls nicht als gültige JSON-Nachricht erkennen kann.

Node-RED meldet bei der Konvertierung von eingehenden MQTT Nachrichten an der JSON Funktion "Ignored non-object payload"

Publish

Überprüfen Sie, ob Sie beim Aufrufen der Publish-Methode die richtige Längeninformation (nPayloadSize) übergeben und sich nicht zu viele Daten (null) hinter dem eigentlichen Payload befinden, sodass Node-RED die Nachricht gegebenenfalls nicht als gültige JSON-Nachricht erkennen kann.

Die Verbindung zum Message Broker wird zwischendurch plötzlich getrennt.

Subscribe

Überprüfen Sie, ob auf den Topics, auf die Sie sich subscribed haben, eventuell eine Nachricht empfangen wurde, welche die maximale Nachrichtengröße (cMaxSizeOfMqttMessage) überschreitet. In diesem Fall trennt der MQTT Client Treiber die Verbindung zum Broker.