An easy way to geolocate my maintenance teams and integrate it into my operations control center
Imagine you have a maintenance fleet of 5 teams and you have several incidents in the field. How do you assign a team to a specific incident?...
In the maintenance management of an infrastructure, from a unified operations center, it is very common to encounter the scenario in which we have maintenance fleet teams that are in the field and we need to know their position in real time.
Normally, distributed infrastructures such as city management, water treatment, or energy are usually the most affected by this problem.
But, why am I going to need to know the position of my maintenance team in real time? Is it necessary?
I propose the following scenario: imagine you have a maintenance fleet of 5 teams and you have several incidents in the field. How do you assign a team to a specific incident? It is logical to think that if the teams are equally qualified, it should be done by proximity to the incident. However, if you do not know where each team is at all times, time is usually lost between phone calls and manual management.
The solution that I want to present to you is very simple, and it is within the reach of anyone who has a smartPhone. It is about sending the real-time GPS position from your Smartphone to the control center. Next, I will explain how I have done it.
First of all, I have used an app for IoS called OwnTracks. Here are the links for IOS and for Android:
Owntracks is an app that allows you to track the GPS position of the mobile device on which it is installed, and send the data (together with other data such as the battery charge, for example) to an MQTT broker.
For this example, I have used a public MQTT broker called HiveMQ. However, for a production installation, I recommend that you use a broker that is in your domain, that only you have access to, and with the appropriate security and encryption measures.
The configuration that I have made in the app is the following:
- Mode: MQTT
- Host: broker.hivemq.com
- Port: 1883

It is important to take into account how the app publishes the payload, and above all, under what topic it publishes.
MQTT is a publisher – subscriber protocol, and publications are made on a specific topic, therefore, in order to subscribe, we need to know the structure of both.
In this case, the app always publishes under the topic: owntracks/user/device.
Which is our case, and taking into account that the userID and the deviceID are taken from the app settings corresponds to:
owntracks/user/7C5A76F8-28FE-4DB8-B633-C91188875F1E
As an MQTT client to verify that everything works correctly, we have used NodeRed:

Where it can be seen that on the right side, messages are being received with the following payload:
“{ \”bs\”:1,\”tst\”:1601486071,\”acc\”:34,\”_type\”:\”location\”,\”lon\”:2.083091,\”lat\”:41.475468,\”batt\”:34,\”tid\”:\”1E\”}”
From which you can obtain, among others, the latitude, longitude, and battery status.
Finally, we have used the MQTT driver from Wonderware to integrate the information from the different positions within System Platform using GISIZE as a GIS tool within the SCADA.
I Result

A unified operations center, where we can see the locations of the different teams in real time (E1, E2, E4…), and the distributed assets in which there are incidents. In addition, we can calculate distances between assets and determine which team we have closest, to assign a work order using the AVANTIS maintenance software.
Finally, and from the same operations center, we can determine the status of the different assets, view alarms, and act on control variables.
A unified operations center, which together with GISIZE and its ability to display geo-localized assets in real time, becomes the perfect tool to optimize and reduce operating costs.
I leave you here the link to the post where it is detailed how to configure the MQTT OI Server driver step by step to integrate MQTT data within System Platform.
I hope you found it useful! See you in the next post!





