Візуалізація даних та інтерфейсів в Node-RED.¶
Мета: Набуття навичок практичного застосування засобів розробки інтерфейсів та компонентів візуалізації даних в середовищі Node-RED для ефективного представлення результатів обробки.
Виконавець:
студент групи КН-41
Кривобоков Микита Олександрович
Завдання¶
- Використовуючи попередній потік, спроектуйте інтерфейс для візуалізації значень з послідовності повідомлень, а також зведеної аналітики (рисунок 1.0).
- Для побудови візуалізації значень з послідовності повідомлень використайте вузол Chart і налаштуйте його відповідним чином (рисунок 1.0, пункт 1).
- Потрібен Bar chart з діапазоном значень 0 - 86400 (1 доба в секундах).
- Інтерфейс повинен надавати можливість:
- контролювати процес оновлення даних з підпотоку (рисунок 1.0, пункт 2);
- очищати значення в графіку за потреби (рисунок 1.0, пункт 4) — для цього достатньо надіслати
[]в якості корисного навантаження в повідомленні, спрямованому до вузла Chart.
- Для конвертування даних з контракту повідомлень у необхідний контракт для вузла Chart використовуйте вузол Function.
- Примітка: кожен стовпчик графіку складається з
{ topic: <Значення вісі Y>, payload: <Значення вісі X> }. - Візуалізуйте загальну аналітику.
- Її необхідно отримувати з порта No2 підпотоку, додатково форматуючи відповідно до одиниць вимірювання.
- Для цього використайте вузол Gauge з різними видами оформлення:
- Загальна тривалість тривог (total duration) — Donut (рисунок 1.0, пункт 5).
- Середня тривалість тривоги (average duration) — Gauge (рисунок 1.0, пункт 8).
- Мінімальна та максимальна тривалості тривоги (min duration, max duration) — Level (рисунок 1.0, пункти 6-7).
- Інтерфейс повинен надавати можливість скидання статистики (рисунок 1.0, пункт 3).
- Загальну кількість тривог виведіть у вигляді тексту поруч з попередніми показниками (на зображенні прикладів не наведено).
- Можливість контролю над обробкою повідомлень з підпотоку реалізуйте за рахунок прапорця в контексті потоку (рисунок 1.0, пункт 2).
- При розгортанні потоку необхідно ініціалізовувати значення в компонентах інтерфейсу (відповідність пункту 2 і змінної середовища, як приклад) і скинути попередні дані, які залишились з минулої сесії розгортання (як приклад, вузол Inject).
- В момент надходження нового набору даних і активному прапорцю контролю над потоком обробки необхідно повідомити користувача про оновлення даних за допомогою Notification.
- В якості заголовку вузол використовує
msg.topic, а в якості повідомлення —msg.payload. - Візуальне оформлення інтерфейсу налаштуйте відповідно до прикладу (рисунок 1.1).
- Складіть звіт про виконану роботу, в якому необхідно перелічити використані вузли та їх застосування.
- А також, опишіть в деталях перший пункт з даного переліку завдань.
Хід роботи¶
Реалізація UI¶
Завдання передбачає використання потоку з попередньої практичної з додаванням компонентів UI, нижче наведено кінцеву реалізацію під-потоку UI «Статистика»:
Пояснення: Основним зміни, порівняно з прикладом, полягають у організації компонентів та типі топіків, які приймаються даним під-потоком.
Які topic приймає UI?
Поточна реалізація передбачає прийняття topic типу двох видів: stats — статистика загалом, chart — конкрентно для графіка.
Принцип роботи даного під-потоку заключається в тому що існує змінна isEnableStatisticInterface, яка або true що значить виводити в інтерфейс статистику, або false — не виводити.
Чистота і узгодженість
Враховуючи що завдання не вимагало потокової обробки повідомлень, було вирішено виводити дані в UI з одноразового джерела №2. Таким чином повідомлення що генеруються періодично — виводяться в дебаг, а вже готові дані відправляються в статистику — поточна ідея розподілу джерел.
Незначні зміни в інших під-потоках¶
Саме з цього компонента ми "перехоплюємо" дані ще до того як вони пройдуть обробку даних і гуманізацію для компонентів індикаторів, і використовуємо цей проміжковий результат напряму для графіка.
Початковий UI¶
- Одноразова обробка набору
- Накопичення даних
- Скинули дані індикаторів
- Скинули дані графіка
Нові компоненти представлені у цій практичній є доволі простими та переважно мають лише налаштування для кастомізації так, як, вони напряму стосуються візуального вигляду на сайті.
Висновок¶
Набутті навичоки практичного застосування засобів розробки інтерфейсів та компонентів візуалізації даних в середовищі Node-RED передбачають ефективне представлення результатів обробки за допомогою компонентів UI.





