<div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1066880148/?value=0&amp;label=4oTQCMyJzwQQlJnd_AM&amp;guid=ON&amp;script=0">
Khalid Sayyed

By: Khalid Sayyed on March 21st, 2024

Print/Save as PDF

Sending IOT Sensor Readings to Maximo Monitor

Maximo Monitor offers robust IoT capabilities, seamlessly integrating with a wide array of sensors and devices to collect real-time data. This powerful monitoring solution enables organizations to gain valuable insights, enhance asset performance, and preemptively address issues through proactive maintenance strategies. Maximo Monitor's IoT capabilities play a pivotal role in optimizing operational efficiency and ensuring the reliability of critical assets. 

Maximo Monitor supports several protocols for ingesting data from IoT sensors.  

MQTT (Message Queuing Telemetry Transport), being a lightweight publish-subscribe protocol, is well-suited for low-bandwidth, high-latency networks. It minimizes data overhead, making it efficient for constrained environments. It excels in scenarios where real-time updates and minimal communication overhead are crucial. 

On the other hand, RESTful APIs (Representational State Transfer Application Programming Interface), based on HTTP (Hypertext Transfer Protocol), provide a standard and widely adopted approach for data communication. They are versatile, supporting various data formats and authentication methods. RESTful APIs are suitable for scenarios where interoperability and simplicity in integration are key considerations. 

In summary, the choice between MQTT and RESTful APIs depends on specific use cases, network conditions, and the desired balance between efficiency and standardization in data ingestion for Maximo Monitor. 

Creating Device Type and Device in Monitor: 

In our example, we will be creating a device type “HumiditySensor” and a device instance “humiditySensor1”. Click on create a device type on the Monitor landing page.

Graphical user interface, application
Description automatically generated

Choose Basic Template, give device name as “HumiditySensor” and create the device. 

Click on Add metric to add sensor readings that will be received and add the humidity metric. Provide the event name as humEvent. Select type as Number. 

Click Add and Save the device Type.

Go to Setup, search the Device Type and click on “Add device”. Provide the Device ID as “humiditySensor1”.

Graphical user interface, application, Teams
Description automatically generated

Note down the Authentication Method and the Authentication Token.

Graphical user interface, application
Description automatically generated

Sending Sensor Readings via HTTP Rest APIs:  

In this example, we will be using VS Code REST Client for connecting and sending sensor readings to monitor.

A screenshot of a computer
Description automatically generated with medium confidence

Host name is the host name of IoT tool and URL contains Device Type, Device ID, and Event ID. 

We will be providing “authentication method” and “authentication token” as noted above for authorization. 

Humidity sensor readings will be passed as JSON.

Upon sending the request, we get a successful response and data can be seen in Monitor for the device.

Text
Description automatically generated with medium confidence

Graphical user interface, text, application, Teams
Description automatically generated

Sending Sensor Readings via MQTT:  

In this example, we will be using hivemq mqtt-cli docker client for sending data via MQTT.  

docker run -it hivemq/mqtt-cli shell 

Establish a connection by running, 

con -s -h {Host Name} -p 443 -u use-token-auth -pw {Token} -i d:main:HumiditySensor:humiditySensor1 

Identity of a device is formed as “d:{orgID}:DeviceType:DeviceID” 

Publish your sensor reading by running,

Data can be seen in Monitor for the device.

Graphical user interface, application, Teams
Description automatically generated

With that, I will signoff for now. Stay tuned for more on many of the amazing features and functionalities that Maximo Application Suite has to offer.  

About Khalid Sayyed

Khalid Sayyed is a Maximo Consultant with over 15 years of industry experience, primarily in IBM Maximo and Cognos analytics. He has worked on multiple Maximo implementations and on support/administration projects, leading teams of developers and consultants. He has extensive experience working with IBM Maximo infrastructure & architecture, integrations, administration, upgrade, configurations, customizations, analytics, and end user/admin trainings. Khalid is very passionate about IOT, Data science and its applications to reliability industry for predictive maintenance.