L'intégration de données est l'une des principales exigences pour beaucoup de nos clients de systèmes de surveillance.
.
La fonctionnalité de base du système de surveillance Rotronic (RMS) fournit d'excellents graphiques, statiques et rapports, cependant, nous discutons ici des outils qui seront utilisés pour l'intégration Machine à Machine (M2M).
.
L'intégration Machine à Machine (M2M) est absolument critique puisque les données sont de plus en plus utilisées pour diverses raisons à travers les entreprises. Ainsi, bien que RMS fournisse un cadre très sécurisé et adaptable pour la surveillance et les alarmes, il existe de nombreuses fonctions étranges et merveilleuses qu'il ne peut pas offrir. Dans ce cas, nous devons extraire les données et les utiliser ailleurs.
RMS étant un système basé sur SQL, nous pourrions bien sûr interroger directement le SQL, mais cette approche présente de nombreuses limites, notamment en matière de sécurité. De plus, les utilisateurs finaux n'ont absolument aucun accès direct à SQL via notre plateforme en nuage RMS.
RMS prenant en charge une API RESTful, nous allons utiliser un exemple simple pour suivre les étapes de base.
Comme précédemment, je vais utiliser des scripts Python dans cet exemple, mais si vous préférez, POSTMAN est un excellent outil pour tester ces types d'API.
Décomposons les étapes :
1. Demandez un jeton API en utilisant votre nom d'utilisateur et votre mot de passe.
2. Utiliser un jeton pour demander des données spécifiques
3. Utiliser les données selon les besoins
Étape 1 - Demander un jeton
Pour des raisons de sécurité, vous ne pouvez pas simplement envoyer une demande et obtenir les données que vous souhaitez. Vous devez d'abord demander un jeton à RMS. Le jeton est lié à un compte utilisateur et ne permet d'accéder qu'aux données visibles par cet utilisateur. Lorsque vous demandez un jeton, vous pouvez également préciser sa durée de validité. La durée maximale est de 30 jours.
import json
import requests
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’}
Étape 2 - Demande de données
Pour demander des données, nous avons besoin de l'ID du point de mesure pour les données dont nous avons besoin, qui peut être obtenu à partir de l'interface RMS (chaque paramètre mesuré a un ID unique dans RMS qui ne changera pas et ne pourra pas être réutilisé). Nous définissons également les Échelles From et To ainsi que le nombre de valeurs que nous souhaitons obtenir (Count).
import json
import requests
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”
From = “2019-03-04T08:00:00”
To = “2019-03-04T09:00:00”
Count = “10”
Token = “token from step 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))
data = json.loads(api_get.content)
print (data)
La demande ci-dessus, accompagnée des détails appropriés, renverra quelque chose de ce type.
{‘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’}]}
Étape 3 - Utilisez les données
Nous disposons donc de nos données au format JSON. Il n'y a plus qu'à découper les valeurs spécifiques et à les transmettre à un autre code, à une machine ou simplement à les afficher pour vous-même.
La flexibilité de RMS est une exigence importante pour nos clients, notamment ceux qui disposent de systèmes existants. L'utilisation de RMS comme plateforme centrale garantit des mesures précises, une collecte de données sûre et fiable et un accès facile aux données. L'utilisation de nos API permet ensuite d'utiliser ces données dans le cadre d'un fonctionnement plus large de l'entreprise.
Voici quelques exemples de clients utilisant l'API
Conclusion
Ce post se concentre sur notre API RESTful, bien que nous ayons une variété de possibilités alternatives d'intégration de données, telles que les modules de sortie de relais, les modules de sortie analogiques et les connexions SQL directes. En outre, notre matériel RMS-Integrator prend en charge la communication directe avec les appareils via MODBUS, SNMP et MySQL.
Le message est donc simple : si vous avez des exigences, le système de surveillance RMS de Rotronic peut généralement y répondre. N'hésitez pas à nous contacter et nous nous ferons un plaisir de discuter de votre projet. Quelle que soit sa taille.
En savoir plus sur RMS
Auteur:
Jeremy Wingate
Responsable des ventes du département des systèmes de surveillance de l'environnement
Inscrivez-vous à l'une de nos lettres d'information sur l'industrie et vous recevrez directement dans votre boîte aux lettres électronique nos dernières informations et réflexions sur le sujet !
S'inscrire