Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Digital Matter Site
  • Contact Us

Device Manager API - ASYNC Messaging Architecture

Written by Matthew Clark-Massera

Updated at March 26th, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Contact Support
  • Home
  • Device Manager (OEM Server)
  • Device Manager API
  • Device Control - Asynchronous Messages

Table of Contents

Message Delivery and Acknowledgement Message Structure Checking Message Delivery

Digital Matter Devices make use of an asynchronous (ASYNC) messaging protocol to send messages between the device and server. This enables various command and control of the device including:

  • Turning recovery mode off/on
  • Activating or deactivating an immobiliser
  • Toggling a device output

Given most devices do not remain constantly connected to the network and the server, a message queuing mechanism is built into Device Manager. 

The Device Manager API allows any ASYNC message to be queued via API call. Once the call is made the message is queued on the server until the device connects in - then it is delivered to the device. 

Implementing these calls enables the full potential of Digital Matter devices to be unlocked. 

Message Delivery and Acknowledgement

It is important to note that when using the Device Manager API, messages are sent on to devices via Device Manager. Specifically, the order of operation is:

  1. 3rd Party Platform sends API call to Device Manager
  2. Device Manager will acknowledge this message, sending back an ASYNC Message ID
  3. Device Manager will queue the message
  4. The device will connect in, and process any queued async messages, and action them if valid. 

The acknowledgement given in (2) - is not an indication that a device has entered recovery mode for example (if this is the command sent).

In general, device payload data will indicate if the ASYNC was processed by the device. This is detailed in the documentation per message type. 

Message Structure

See https://api.oemserver.com/swagger/index.html 

URL: https://api.oemserver.com/v1.0/asyncmessaging/send/[device serial]
  • Content Type: application/json
  • Accept Header: application/json
  • Authentication: Basic or Bearer is supported. 

The DM ASYNC message structure must be adhered to which requires the following:

  • Message Type
    • E.g. 0x100 (256) for immobilisation, 0x003 for operational (recovery) mode
  • CAN Address - this is always 0xFFFFFFFF - meaning it is a message to be sent to a device.
  • Message Expiry - time for the ASYNC message to expire if left unprocessed (i.e. device doesn't connect in)
    • Most simply just default to 30 days from the time of the original message being sent (i.e. increment the month number by 1)
  • SendAfterDateUTC
    • Could be used to ‘schedule’ a message. Device Manager will store the ASYNC in it's queue and only send to the device after this date. 
    • However we cannot necessarily control when the device will connect in to Device Manager and process it
    • e.g. if we set Recovery Mode with SendAfterDateUTC to the 01/04/2025 at 10am - we know that the device will receive the ASYNC at some point after this - not exactly at this time.  
  • Data (Payload specific to the message type) 

To use the API, we must simply pass the same data in JSON format, and Device Manager will forward this to the device. 

Checking Message Delivery

To check for ASYNC message delivery when testing, go to the Details tab in Device Manager by selecting the serial number.

The queue and history of messages is displayed (you can toggle between queue and history with the button)

Some messages have descriptions indicating what they are for. 

When posting an asynchronous message to a device via the WebAPI – the response only indicates that the payload was valid, and that Device Manager has received the message. It does not indicate that it has been passed down to the device and the device has actioned the message. 

The ASYNC message queue goes into more detail. 

AsyncMessaging/GET allows this queue to be retrieved/read via API call

 

 

Yet even a message being Delivered to the device does not mean we got the result we wanted - i.e. we can send an immobilisation command to a device, it will always be processed by most device types that support immobilisation. If we have not configured the parameters correctly - nothing will happen. 

It is best to validate the message has given the intended effect in the upcoming device data. 

messaging architecture device api

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Remora2 - Getting Started
  • Remora3 - Tracking Modes
  • Yabby 3 LoRaWAN® Configuration and Usage Guide

Subscribe to Partner News

Subscribe to our mailing list to receive Digital Matter news, product and tehnical updates, and more.

Subscribe

Copyright © Digital Matter . All Rights Reserved.

Privacy Contact Support

Knowledge Base Software powered by Helpjuice

Expand