MQTT
Note di rilascio
Message Queuing Telemetry Transport (MQTT) è un protocollo di messaggistica aperto per le comunicazioni M2M (machine to machine) che consente il trasferimento dei dati di tipo telemetrico sotto forma di messaggi da dispositivi a un server o a un piccolo broker di messaggi attraverso latenza elevata o reti vincolate. I dispositivi possono variare da sensori e attuatori a telefoni cellulari, sistemi incorporati su veicoli, laptop e computer desktop.
MQTT lavora all'architettura di pubblicazione/sottoscrizione. MQTT richiede un broker di messaggi e dispositivi di comunicazione. I dispositivi di comunicazione possono essere denominati client. Il broker e i client possono pubblicare e sottoscrivere un parametro denominato "topic". È possibile proteggere la comunicazione tramite MQTT utilizzando SSL.
MQTT Extension consente di connettere sensori e dispositivi elettronici di piccole dimensioni che possono comunicare con ThingWorx.
È possibile utilizzare qualsiasi broker standard per MQTT in base al requisito dell'organizzazione. Fare riferimento alla documentazione del prodotto del broker che si desidera installare per qualsiasi impostazione di controllo utente.
* 
In un sistema operativo Windows il broker viene eseguito come servizio dopo l'installazione.
Importazione di MQTT
È possibile scaricare MQTT Extension dal sito support.ptc.com in Scarica il software > Order or Download Software Updates > ThingWorx Foundation > Release <versione più recente> > ThingWorx MQTT Extension > Most Recent Datecode > MQTT--<versione>-Extension. Fare riferimento a Importazione di estensioni ed importare il file MQTT_Extension.zip in ThingWorx. Quando viene installata l'estensione, nell'elenco Modelli di oggetto viene visualizzato quanto riportato di seguito:
MQTTConnection
Consente una connessione condivisa per gli oggetti MQTTSubscriber.
MQTTSubscriber
Consente la sottoscrizione a uno o più argomenti sul server MQTT. In Configurazione > Proprietà aggiungere le proprietà alla sezione delle mappature degli argomenti MQTT.
Quando si modifica un oggetto MQTTSubscriber, riavviare l'oggetto MQTTConnection associato per aggiornare.
MQTT
Consente di eseguire la configurazione precedente in un singolo oggetto.
Configurazione di MQTT
La sezione seguente descrive come configurare i parametri in MQTT se, dopo avere installato l'estensione in ThingWorx, si desidera stabilire la connessione con un broker.
1. Eseguire il broker installato sul computer.
2. In ThingWorx creare un nuovo Oggetto, selezionare MQTT come Modello di oggetto e fare clic su Salva.
3. Fare clic sulla vista Proprietà e avvisi. Viene visualizzata la schermata seguente:
Nell'immagine precedente i callout 1 e 2 indicano quanto segue:
Callout
Descrizione
1
L'icona verde indica che l'oggetto creato è connesso al broker. Viene visualizzata in rosso quando l'oggetto è disconnesso.
2
La proprietà isConnected è impostata su TRUE nel campo Valore quando viene stabilita la connessione tra l'oggetto e il broker. Il campo Valore è impostato su FALSE quando l'oggetto è disconnesso.
4. Fare clic su Aggiungi per aggiungere una proprietà.
5. Viene visualizzata la schermata seguente:
6. Immettere il nome della proprietà, il tipo di base e altri dettagli obbligatori.
7. Salvare le informazioni correlate alla proprietà.
8. Fare clic sulla vista Configurazione. Viene visualizzata la schermata seguente:
Nella tabella seguente sono descritti i diversi parametri individuati nella vista Configurazione:
JDBC Settings
Descrizione
clientIdFormat
Nome del client registrato con il broker MQTT.
* 
Deve essere univoco per un broker MQTT.
Il token {s} è per il nome del server di ThingWorx Platform. Assume il valore menzionato nella configurazione di Federation Subsystem per il nome del server.
Il token {t} è per il nome dell'oggetto corrente. Se si desidera che diverse piattaforme siano connesse a un unico broker e che gli oggetti abbiano lo stesso nome, si consiglia di specificare il nome del server in Federation Subsystem.
useSSL
Selezionare questa casella se il broker supporta connessioni sicure.
serverName
Nome host in cui il broker MQTT è in esecuzione.
* 
Lasciare vuoto il campo se il broker è in esecuzione sullo stesso computer di ThingWorx Platform.
serverPort
Porta per il broker MQTT. Il valore di default è 1883.
userId
Nome utente da connettere al broker.
Password
Password per userId.
Timeout
Tempo di attesa per il completamento di una richiesta di pubblicazione espresso in millisecondi. Il valore di default è 5000 mS.
ConnectTimeout
Tempo di l'attesa per la connessione tra ThingWorx Platform e il broker MQTT, espresso in millisecondi.
retryInterval
Intervallo di tempo, espresso in millisecondi, in cui vengono effettuati nuovi tentativi di connessione in caso di interruzione della connessione a un broker MQTT.
Il meccanismo di ripetizione dei tentativi funziona solo se la connessione è stata stabilita in un determinato momento e successivamente interrotta.
retryAttempts
Numero di tentativi di riconnessione eseguiti.
Ad esempio, se una connessione viene interrotta da disturbi di rete o a causa di altri problemi, il numero di tentativi effettuati per ristabilire la connessione viene specificato dal valore immesso in questo campo. Ogni nuovo tentativo è distinto dal parametro retryInterval sopra menzionato.
pingInterval
Tempo stabilito per il controllo periodico dello stato della connessione tra ThingWorx Platform e il broker MQTT, espresso in millisecondi.
Il valore di default è 45 secondi. Ogni 45 secondi viene inviato un messaggio ping al broker MQTT per verificare se è disponibile una risposta. La risposta del broker indica che la connessione è valida.
connectionIdleTimeout
Tempo di inattività per una connessione, espresso in millisecondi.
Una connessione inattiva oltre l'ora impostata indica che non vi sono comunicazioni di messaggi nel canale e l'oggetto è contrassegnato come disconnesso.
Quando non viene effettuata la sottoscrizione alle proprietà o le proprietà non vengono pubblicate, pingInterval continua da aggiornare l'orario dell'ultima attività in modo che l'oggetto non venga disconnesso.
qos
Questo valore imposta il livello di priorità di comunicazione tra il broker e i relativi client.
La tabella di configurazione AutoMapping include le impostazioni per la mappatura automatica delle proprietà per la pubblicazione o la sottoscrizione. Se la mappatura automatica è attivata, non è necessario specificare la tabella per Mappings. Qualsiasi proprietà creata nell'oggetto viene mappata automaticamente a una proprietà. Il nome dell'argomento è stabilito dal parametro format riportato di seguito:
AutoMapping
Descrizione
format
Il formato del nome dell'argomento che corrisponde a una proprietà.
Il token {s} è per il nome del server, {t} è per il nome dell'oggetto e {p} è per il nome della proprietà.
enabled
È possibile selezionare la funzionalità di mappatura automatica.
9. Immettere i valori nei campi in base alle proprie esigenze e fare clic su Aggiungi nell'impostazione Mappings.
Viene visualizzata la schermata seguente:
10. Immettere il nome della proprietà aggiunto al passo 6, il nome dell'argomento e selezionare sottoscrivi e/o pubblica. La proprietà pubblica o sottoscrive il nome dell'argomento immesso.
11. Fare clic su Aggiungi.
12. Nella vista Properties and Alerts fare clic su Imposta valore.
13. Viene visualizzata la schermata seguente:
Immettere il valore della proprietà nel campo e salvarlo.
14. Attenersi ai comandi di esecuzione specifici del broker installato sul computer in uso e verificare le attività di pubblicazione e sottoscrizione tra la proprietà dell'oggetto e il broker.