Объясняется с использованием Node-Red

Чтобы отправить информацию с датчика на IoT-устройство SAP Leonardo, вам потребуется несколько фрагментов информации и точно определенный HTTP-запрос на публикацию.
Какая информация необходима для сервера SAP IoT и как должен быть построен HTTP-запрос Описывать буду на примере узла html-запроса в Node-Red.

Предпосылки

Сначала вам нужно создать вещь в SAP Leonardo IoT. Как это работает и где можно найти информацию об URL сенсора, описано в этой ссылке.

Кроме того, я использую Node-Red для отправки http-запроса. Но я делаю это только потому, что так понятнее продемонстрировать. Конечно, вы также можете отправить информацию через Python или Java. Все, что может отправить http, достаточно хорошо.
Таким образом, вам не нужно использовать Node-Red.

Какая информация необходима?

Итак, что нам нужно собрать вместе, чтобы отправить информацию в SAP?

Thing-ID   (aka Device-ID)
Token
Host-Adress(the adress the SAP Leonardo IoT system is running)
API-Adress (the adress of the API we send data to)
Messagetype-ID 

Не слишком пугайтесь того, сколько работы вам придется добавить, чтобы добавить более одного датчика. Большая его часть избыточна для каждого дополнительного датчика. Только Thing-Id и Token различаются для каждого нового датчика.

Как это выглядит в моем примере? (Данные взяты из демонстрационной системы, которая к тому времени была закрыта. Поэтому нет смысла следовать примеру с моими данными.)

Thing-ID:    '591188FC5CEF41_fake_3E9D5AE3F641429BB5'
Token:       '7461f8d7385_fake_179d36fcfd8'
Host:        'iotmmsa2667617c.hana.ondemand.com'
API:         '/com.sap.iotservices.mms/v1/api/http/data/'
Message-Type:'d2b2db6980f940fae7d3'

Первое, что мы можем сделать с этой информацией, — это создать URL-адрес для отправки http-запроса. Он создается по следующей схеме:

url = “https://” + Host-ID + API + Thing-ID

В нашем случае:

https://iotmmsa2667617c.hana.ondemand.com/com.sap.iotservices.mms/v1/api/http/data/591188FC5CEF41_fake_3E9D5AE3F641429BB5

Отправьте значение вашего датчика в SAP

Теперь у нас есть все необходимое для отправки значения нашего датчика в SAP. Давайте переключимся на Node-Red, чтобы увидеть, как мы должны сочинять.

Вот что в принципе нужно:

С левой стороны у нас вход. Вот сигнал, в моем примере от облачного MQTT-брокера. Это время, когда датчик отправляет новое значение. т.е. сообщается только значение датчика. (в Node-Red это переменная msg.payload).

Поскольку база данных для датчиков основана на времени, нам нужно добавить метку времени. Мы делаем это внутри функционального узла «Добавить метку времени».

Node-Red основан на Javascript, поэтому мы можем добавить текущую метку времени в качестве нового атрибута "time" объекта "msg". Бывшая полезная нагрузка с предыдущего узла (в данном примере Cloud MQTT) передается новому атрибуту «msg.cpu». Затем весь объект передается следующему узлу с помощью «return msg».

Теперь мы должны подготовить сообщение, чтобы его понял API. Мы сделаем это в следующем узле.
В первой строке мы создаем информационное тело и назначаем его обратно объекту msg.

Затем мы создаем заголовок сообщения. В строке 4 мы добавляем наш Token в «авторизация».

И снова передаем msg-объект следующему узлу: «Запрос к SAP IoT».

Здесь мы используем уже собранный выше URL и отправляем его в виде POST-запроса на сервер.

Если все настроено правильно, серверы отвечают подтверждающей информацией. Чтобы прочитать ответ сервера, мы должны добавить узел отладки.

В моем случае результат в SAP Leonardo IoT выглядит так:

Если вам интересна вся история с сенсора (прочитайте загрузку ЦП с моего ноутбука, через ноутбук Jupyter, MQTT и Node-Red, вы можете посмотреть мое видео: