2017-02-07 11 views
1

Ich versuche, ein Arduino mit Watson IoT zu verbinden. Mit dem folgenden Befehl:Arduino verbindet sich nicht mit Watson IoT mit MQTT

mqtt.connect(0, "d6acq3.messaging.internetofthings.ibmcloud.com",1883,"d:d6acq3:Arduino_Helligkeit:1234567890","use-token-auth","<as it was provided>"); 

Dies ist die lib ich für MQTT verwenden und wo der Verbindungsbefehl wie folgt angegeben:

bool connect (int id, String brooker, unsigned int port, String deviceId); 

bool connect ([s.o], String userName , String password); 

Auf der Watson-Plattform ich die folgenden Meldungen in meinem Geräte-Verbindungsprotokoll:

Closed connection from 93.231.145.115. 
The topic is not valid: use-token-auth 
The topic does not match an allowed rule 07.02.2017 11:58:16 
Closed connection from 93.231.145.115. 
The topic is not valid: use-token-auth 
The topic does not match an allowed rule 2 times in the last 5 minutes 07.02.2017 11:58:16 
Closed connection from 93.231.145.115. 
The topic is not valid: use-token-auth 
The topic does not match an allowed rule 07.02.2017 11:56:03 
Closed connection from 93.231.145.115. 
The topic is not valid: use-token-auth 
The topic does not match an allowed rule 07.02.2017 11:45:36 

Vielen Dank im Voraus für jede Hilfe, damit diese funktioniert.

Antwort

1

Wie Dan sagte, sind nur bestimmte Themenzeichenfolgen für die Watson IoT-Plattform zulässig, daher sollten Sie bestätigen, dass Sie die richtige Themenzeichenfolge verwenden.

Für Anwendungen, Themenveranstaltungen: iot-2/Typ/{Gerätetyp}/id/{device id}/evt/{Ereignistyp}/fmt/{Formattyp}

Für Anwendungen, Befehle Thema: iot-2/Typ/{Gerätetyp}/id/{device id}/cmd/{Befehlstyp}/fmt/{Formattyp}

Für Geräte, Veranstaltungen Thema: iot-2/evt/{Ereignistyp}/fmt/{Formattyp}

Für Geräte, Befehle Thema: iot-2/cmd/{Befehlstyp}/fmt/{Formattyp}

Was ich jedoch in Protokollen sehe, zeigt an, dass Sie versuchen, eine Verbindung mit einer längeren Client-ID herzustellen, als Sie in Ihrem Beitrag angegeben haben. Ich sehe diesen Fehler:

Token Auth fehlgeschlagen (Device existiert nicht): ClientID = 'd: d6acq3: Arduino_Helligkeit: 12345678901486464057428',

Sie müssen also überprüfen Sie die Verbindung sicher sein das richtige Gerät verwendet ID, die Sie registriert haben.

+0

Liebe Valerie, soweit ich sehen kann, bekomme ich nicht mal eine Verbindung. Also, ich nehme an, das Thema spielt noch keine Rolle, oder? Inzwischen habe ich eine andere Geräte-ID (18fe34a46709) erstellt, die ich auch nicht verbinden kann. –

+0

Ich habe versucht, eine dritte Geräte-ID mit MQTTBox (einem Chrome-Client) zu verbinden, die funktioniert. (Zumindest für die Verbindung) –

+0

Ich sehe Ihre MQTTBox Verbindungen funktionieren gut. Bei der Überprüfung für das Gerät 18fe34a46709 wurde dieser Fehler angezeigt. Es sieht so aus, als ob er den falschen Wert im Themenfeld eingegeben hätte: Das Thema ist nicht gültig: use-token-auth Das Thema stimmt nicht mit einer zulässigen Regel überein. Reason = "Das Thema ist nicht gültig: use-token-auth Das Thema stimmt nicht mit einer zulässigen Regel überein" – ValerieLampkin

Verwandte Themen