Fledge широко використовує компоненти плагінів для розширення базової функціональності платформи. Зокрема, плагіни використовуються для:
- Розширення набору датчиків і актуаторів, які підтримує Fledge.
- Розширення набору сервісів, до яких Fledge передаватиме накопичені дані, зібрані з цих датчиків.
- Механізму, за допомогою якого Fledge буферизує дані всередині.
- Плагінів фільтрів можна використовувати для доповнення, редагування або видалення даних, які проходять через Fledge.
- Плагінів правил, що розширюють правила, які можуть запускати доставку сповіщень на межі.
- Плагінів доставки сповіщень, що дозволяють інтегрувати нові механізми доставки у Fledge.
У цьому розділі представлено плагіни, які постачаються разом із Fledge, як писати та використовувати нові плагіни для підтримки різних датчиків, протоколів, істориків і пристроїв зберігання. Він проведе вас через процес і точки входу, необхідні для різних типів плагінів.
Є також численні плагіни, які доступні як окремі пакети або в окремих репозиторіях, які можна використовувати з Fledge.
Плагіни
У цій версії Fledge є шість типів плагінів:
- South Plugins - Вони відповідають за зв’язок між Fledge і датчиками й актуаторами, які вони підтримують. Кожен екземпляр мікросервісу Fledge South використовуватиме плагін для фактичного зв’язку з датчиками або актуаторами, які підтримує цей екземпляр мікросервісу South.
- North Plugins - Вони відповідають за зчитування даних, переданих їм із південної служби, виконання будь-якого необхідного перетворення даних і надання протоколу для надсилання цих перетворених даних до завдання на північній стороні.
- Storage Plugins - Вони розташовані між мікросервісом Storage і фізичним механізмом зберігання даних, який зберігає конфігурацію Fledge і дані зчитування. Плагіни зберігання відрізняються від інших плагінів тим, що вони написані виключно мовою C/C++, однак вони мають спільні атрибути та точки входу, які має підтримувати інший фільтр.
- Filter Plugins - Плагіни фільтрів використовуються для зміни даних, які проходять через Fledge. Плагіни фільтрів можна об’єднати в набір упорядкованих фільтрів, які застосовуються як трубопровід або до служби південного входу, або до завдання північного виходу, яке надсилає дані зовнішнім системам.
- Notification Rule Plugins - Вони використовуються додатковою службою сповіщень, щоб оцінити дані, які надходять до служби сповіщень, щоб визначити, чи потрібно надсилати сповіщення.
- Notification Delivery Plugins - Ці плагіни використовуються додатковою службою сповіщень для доставки сповіщень системі, коли спрацьовує правило сповіщень. Ці плагіни дозволяють розширити механізми доставки сповіщень.
Плагіни в цій версії Fledge
Ця версія Fledge містить такі плагіни в основному репозиторії:
| Тип | Назва | Початковий Статус | Опис | Доступність | | Примітка |
|---|---|---|---|---|---|
| Storage | SQLite | Enabled | SQLite storage для даних і метаданих | Ubuntu: x86_64 Ubuntu Core: x86, ARM Raspbian | |
| Storage | Postgres | Disabled | PostgreSQL storage для даних і метаданих | Ubuntu: x86_64 Ubuntu Core: x86, ARM Raspbian | |
| North | OMF | Disabled | OSIsoft Message Format відправник до PI Connector Relay OMF | Ubuntu: x86_64 Ubuntu Core: x86, ARM Raspbian | Працює з PI Connector Relay OMF 1.2.X і 2.2. Плагін також працює проти EDS and OCS. |
Окрім плагінів у основному репозиторії, є багато інших плагінів, доступних у окремих репозиторіях, список доступних плагінів зберігається в цьому документі.
Встановлення нових плагінів
За загальним правилом і якщо в документації не зазначено інше, плагіни слід установлювати двома способами:
- Коли плагін доступний як пакет (package), він повинен встановлюватися коли Fledge is running. Це обов’язковий метод, оскільки пакет виконував завдання до та після інсталяції, для запуску яких потрібен Fledge.
- Коли плагін доступний як вихідний код (source code), він повинен встановлюватися коли Fledge is either running or not. Ви захочете вручну перемістити код плагіна в потрібне розташування, де встановлено Fledge, додати попередні умови та виконати команди REST, необхідні для запуску плагіна після (after) того, як ви запустили Fledge, якщо він не працює, коли ви запускаєте це процес.
Наприклад, це команда для встановлення південного плагіна OpenWeather:
$ sudo systemctl status fledge.service
● fledge.service - LSB: Fledge
Loaded: loaded (/etc/init.d/fledge; bad; vendor preset: enabled)
Active: active (running) since Wed 2018-05-16 01:32:25 BST; 4min 1s ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/fledge.service
├─13741 python3 -m fledge.services.core
└─13746 /usr/local/fledge/services/storage --address=0.0.0.0 --port=40138
May 16 01:36:09 ubuntu python3[13741]: Fledge[13741] INFO: scheduler: fledge.services.core.scheduler.scheduler: Process started: Schedule 'stats collection' process 'stats coll
['tasks/statistics', '--port=40138', '--address=127.0.0.1', '--name=stats collector']
...
Fledge v1.3.1 running.
Fledge Uptime: 266 seconds.
Fledge records: 0 read, 0 sent, 0 purged.
Fledge does not require authentication.
=== Fledge services:
fledge.services.core
=== Fledge tasks:
$
$ sudo cp fledge-south-openweathermap-1.2-x86_64.deb /var/cache/apt/archives/.
$ sudo apt install /var/cache/apt/archives/fledge-south-openweathermap-1.2-x86_64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'fledge-south-openweathermap' instead of '/var/cache/apt/archives/fledge-south-openweathermap-1.2-x86_64.deb'
The following packages were automatically installed and are no longer required:
linux-headers-4.4.0-109 linux-headers-4.4.0-109-generic linux-headers-4.4.0-119 linux-headers-4.4.0-119-generic linux-headers-4.4.0-121 linux-headers-4.4.0-121-generic
linux-image-4.4.0-109-generic linux-image-4.4.0-119-generic linux-image-4.4.0-121-generic linux-image-extra-4.4.0-109-generic linux-image-extra-4.4.0-119-generic
linux-image-extra-4.4.0-121-generic
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed
fledge-south-openweathermap
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
Need to get 0 B/3,404 B of archives.
After this operation, 0 B of additional disk space will be used.
Selecting previously unselected package fledge-south-openweathermap.
(Reading database ... 211747 files and directories currently installed.)
Preparing to unpack .../fledge-south-openweathermap-1.2-x86_64.deb ...
Unpacking fledge-south-openweathermap (1.2) ...
Setting up fledge-south-openweathermap (1.2) ...
openweathermap plugin installed.
$
$ fledge status
Fledge v1.3.1 running.
Fledge Uptime: 271 seconds.
Fledge records: 36 read, 0 sent, 0 purged.
Fledge does not require authentication.
=== Fledge services:
fledge.services.core
fledge.services.south --port=42066 --address=127.0.0.1 --name=openweathermap
=== Fledge tasks:
Ви також можете встановлювати нові плагіни безпосередньо з графічного інтерфейсу користувача Fledge, однак вам потрібно буде налаштувати свою машину Linux, щоб включити репозиторій пакетів Fledge у список репозиторіїв, у яких менеджер пакетів Linux шукає нові пакети.