L'integrazione dei dati è uno dei requisiti principali per molti dei nostri clienti del sistema di monitoraggio.
La funzionalità di base del Rotronic Monitoring System (RMS) fornisce eccellenti grafici, statistiche e rapporti, tuttavia qui discutiamo gli strumenti che saranno utilizzati per l'integrazione Machine to Machine (M2M).
L'integrazione Machine to Machine (M2M) è assolutamente critica poiché i dati sono sempre più utilizzati per una varietà di motivi attraverso le aziende. Così, mentre RMS fornisce un quadro molto sicuro e adattabile per il monitoraggio e l'allarme, ci sono molte funzioni strane e meravigliose che non può offrire. In questo caso, dobbiamo estrarre i dati e usarli altrove.
RMS è un sistema basato su SQL, quindi potremmo naturalmente interrogare l'SQL direttamente, ma ci sono molte limitazioni con questo approccio, in particolare la sicurezza. Anche attraverso la nostra piattaforma cloud RMS non è assolutamente disponibile un accesso SQL diretto per gli utenti finali.
Invece RMS supporta un'API RESTful, useremo un semplice esempio per seguire i passi di base.
Come prima userò alcuni script Python in questo esempio, ma se preferite, POSTMAN è un ottimo strumento per testare questo tipo di API.
Ripercorriamo i passi:
1. Richiedi un token API usando il tuo nome utente e la tua password
2. Utilizzare il token per richiedere dati specifici
3. Utilizzare i dati come richiesto
Passo 1 - Richiedere un token
Per ragioni di sicurezza non puoi semplicemente inviare una richiesta e ottenere qualsiasi dato tu desideri. Prima devi richiedere un token a RMS. Il token è collegato ad un account utente e permetterà di accedere solo ai dati visibili da quell'utente. Quando richiedi un token puoi anche specificare per quanto tempo è valido. La durata massima è di 30 giorni.
importare json
importa richieste
url = 'https://rms.rotronic.com/RMS/API/RequestToken.ashx’
headers = {'Content-Type' : 'Application/json', 'Expect' : '100-continue', 'Connnection' : 'Close', 'Host' : 'rms.rotronic.com'}
UsrID = "1"
User= "Jeremy"
PW = "########"
Exp = "30"
get_payload = {'UserId':UsrID,'Username':User,'Password':PW,'RequestType':' DataHistory','ExpirationDays': Exp}
api_get = requests.post(url, headers=headers, data =json.dumps (get_payload))
token = json.loads(api_get.content)
token = token.get('Token')
{'UserId': 1, 'RequestType': 'DataHistory', 'Token': 'jUsTaNeXaMpLe_HRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9. eyJVc2VySWQiOjM5MzEsIlJlcXVlc3RUeXBlIjoiRGF0YUhpc3RvcnkiLCJFeHBpcmF0aW9uIjoiMjAxOS0wNC0wM1QxNToyMzoyMC44MTgwODM4WiJ9.rtHHKvrE-7jnMNHUGazso_jUsTaNeXaMpLe', 'Status': 'OK'}
Fase 2 - Richiedere i dati
Per richiedere i dati abbiamo bisogno dell'ID del punto di misura per i dati di cui abbiamo bisogno che può essere ottenuto dall'interfaccia RMS (ogni parametro misurato ha un ID unico all'interno di RMS che non cambia e non può essere riutilizzato). Definiamo anche gli intervalli From e To e il numero di valori che vogliamo ottenere (Count).
importa json
importare richieste
url = 'https://rms.rotronic.com/RMS/API/DataHistory.ashx’
headers = {'Content-Type' : 'Application/json', 'Expect' : '100-continue', 'Connnection' : 'Close', 'Host' : 'rms.rotronic.com'}
MPTID = "20"
Da = "2019-03-04T08:00:00"
A = "2019-03-04T09:00:00"
Conta = "10"
Token = "token dal passo 1"
post_payload = {'ID': MPTID,'From': From,'To':To,'Count':Count,'Order':'Asc','Token': Token}
api_get = requests.post(url, headers=headers, data =json.dumps (post_payload))
dati = json.loads(api_get.content)
stampa (dati)
{'Status': 'OK', 'ID': 20, 'Name': 'Humidity-18071604′, 'Parameter': 'Humidity', 'Unit': '%rh', 'Data': [{'Time': '2019-03-04T08:00:14+01:00′, 'Value': '29.45%rh'}, {'Time': '2019-03-04T08:05:14+01:00′, 'Value': '29.80%rh'}, {'Time': '2019-03-04T08:10:14+01:00′, 'Value': '29.61%rh'}, {'Time': '2019-03-04T08:15:14+01:00', 'Value': '29.29%rh'}, {'Time': '2019-03-04T08:20:14+01:00', 'Value': '29.80%rh'}]}
Fase 3 - Utilizzare i dati
Allora abbiamo i nostri dati in formato JSON da qui è un facile passo per sminuzzare i valori specifici e passarli a qualche altro codice, macchina o semplicemente visualizzarli per te stesso.
La flessibilità di RMS è un requisito importante per i nostri clienti, specialmente quelli con sistemi esistenti. L'utilizzo di RMS come piattaforma centrale assicura misure di precisione, una raccolta di dati sicura e affidabile e un facile accesso ai dati. L'utilizzo delle nostre API permette poi di utilizzare questi dati in operazioni commerciali più ampie.
Esempi di clienti che utilizzano l'API includono
Conclusione
Questo post si concentra sulla nostra API RESTful, anche se abbiamo una varietà di possibilità alternative di integrazione dei dati, come moduli di uscita a relè, moduli di uscita analogici e connessioni SQL dirette. Inoltre, il nostro hardware RMS-Integrator supporta la comunicazione diretta con i dispositivi tramite MODBUS, SNMP e MySQL.
Quindi il messaggio è semplice: se avete delle esigenze, il sistema di monitoraggio Rotronic RMS può generalmente soddisfarle. Contattateci e saremo lieti di discutere il vostro progetto. Non importa quanto grande o piccolo sia.
Scopri di più su RMS
Autore:
Jeremy Wingate
Responsabile Vendite Dipartimento Sistema di Monitoraggio Ambientale
Sign up to one of our Industry newsletters and you’ll receive our most-recent related news and insights all directly to your inbox!
Sign Up