Олександр Пупена
З кінця 2019-го року на дашбоардах “IBM Watson IoT Platform” зникла кнопка і вікно налаштування Extension, які давали можливість налаштувати запис даних з подій та змін станів пристроїв IoT.
Проблему обговорювали на stack overflow де вказали один із способів, описаний в посібнику Gather, visualize, analyze and detect anomalies in IoT data. Більшість матеріалу статті взятий з цього посібника адаптовано для лабораторної з курсу “Технології Індустрії 4.0” .
У цій статті-рецепті показано як прив’язати сервіс IBM Cloudant до платформи Watson IoT для зберігання історичних даних. Для кращого розуміння виконуваних тут налаштувань, рекомендую ознайомитися (або пригадати) з наступними матеріалами:
1.Перейдіть до ресурсу Cloudant, який Ви хочете підключити до IoT сервісу.
2.Натисніть New credential
, заповніть поля імені облікового запису і імені ServiceID а потім натисніть Add
.
3.Натисніть View credentials
для новоствореного запису, скопіюйте його в блокнот.
Налаштування нового з’єднання - це чотиритактний процес:
Щоб налаштувати нове з’єднання, зробіть наступну послідовність.
1.Передйть на Watson IoT Platform, натисніть іконку Watson IoT Platform Help (правому верхньому кутку), далі натисніть API, після чого натисніть View APIs у розділі Historian Connector для перегляду а також виконання запитів HTTP API .
Внизу сторінки IBM Watson IoT Platform - Historical Data Storage Extension APIs
є кілька розділів, які показують які саме дії можна використати з HTTP API.
Тут налаштовується підлключення до сервісу Cloudant через обліковий запис, який був створений до цього.
2.Перейдіть (розгорніть кліком) розділ Services, виберіть POST /s2s/services і натисніть Try it out.
У вікні вводу Example Value замініть текст на наступний .
{
"name": "iot-cloudant",
"type": "cloudant",
"description": "for IoT solution tutorial",
"credentials": {
"username": "CLOUDANT_USERNAME",
"password": "CLOUDANT_PASSWORD",
"host": "CLOUDANT_HOST",
"port": 443,
"url": "CLOUDANT_URL"
}
}
Замініть поля username
, password
, host
та url
на однойменні з облікового запису для Cloudant, який був тільки що створений.
3.Натисніть Execute , повинна прийти відповідь HTTP 201
. Скопіюйтеid
(serviceID) в блокнот для наступного пункту.
Тут налаштовується підключення до конкретного historian (бази даних). У випадку Cloudant достатньо вказати тільки ідентифікатор прив’язки до сервісу.
4.Перейдіть (розгорніть кліком) розділ HistorianConnectors, виберіть POST /historianconnectors та натисніть Try it out. Замініть текст в полі Example Value наступним текстом.
{
"name": "iot-cloudant-connector",
"description": "Historian connector connecting IoT platform to cloudant",
"serviceId": "SERVICE_ID",
"type": "cloudant",
"enabled": true
}
Замініть поле SERVICE_ID
на id
з попередньої відповіді.
5.Натисніть Execute для отримання відповіді HTTP 201
. Скопіюйте отриманий id
(connectorID) з відповіді в блокнот для наступних використань.
Тут налаштовуються конкретне місце (для Cloudnat це bucket) куди будуть зберігатися дані.
6.Перейдіть (розгорніть кліком) розділ Destinations, виберіть POST/historianconnectors/{connectorId}/destinations та натисніть Try it out. Впишіть в поле connectorID
раніше скопійоване значення id
та замініть Example Value наступним текстом.
{
"name": "default",
"type": "cloudant",
"configuration": {
"bucketInterval": "DAY"
}
}
7.Натисніть Execute для отримання відповіді HTTP 201
.
Тут налаштовуються правила за якими дані пересилаються у вказаний конектор.
8.Перейдіть (розгорніть кліком) розділ Forwarding Rules, виберіть POST/historianconnectors/{connectorId}/forwardingrules та натисніть Try it out.
Впишіть скопійоване значення id
конектора (п.5) у поле connectorID
та замініть Example Value наступним текстом.
{
"name": "iot-cloudant-rule",
"destinationName": "default",
"type": "event",
"selector": {
"deviceType": "*",
"eventId": "*"
}
}
Зірочки (*
) в deviceType
та eventId
вказує на те, що в Cloudant будуть писатися всі події для всіх типів пристроїв IoT.
9.Натисніть Execute для отримання відповіді HTTP 201
.