Гібридні плагіни
На додаток до плагінів, написаних на Python та C/C++, ви можете мати гібридний плагін, який є комбінацією існуючого плагіна та конфігурації для цього плагіна. Це корисно в ситуації, коли до Fledge підключено декілька датчиків або пристроїв, які мають спільну конфігурацію. Це дозволяє додавати пристрої без повторення загальної конфігурації.
Використовуючи наш приклад з датчиком DHT11, підключеним до виводу GPIO, якщо ми захочемо створити новий плагін для DHT11, який завжди був підключений до виводу 4, ми можемо зробити це, створивши JSON-файл, як показано нижче, який надає фіксоване значення за замовчуванням для виводу GPIO.
{
"description" : "A DHT11 sensor connected to GPIO pin 4",
"name" : "DHT11-4",
"connection" : "DHT11",
"defaults" : {
"pin" : {
"default" : "4"
}
}
}
Це створює новий гібридний плагін з назвою DHT11-4, який встановлюється шляхом копіювання цього файлу до каталогу plugins/south/DHT11-4 у вашій інсталяції. Після встановлення його можна використовувати як будь-який інший південний плагін у Fledge. Цей гібридний плагін завантажує плагін DHT11 і завжди встановлює параметр конфігурації під назвою "pin" на значення "4". Елемент "pin" буде прихований від користувача у графічному інтерфейсі Fledge, коли він створює екземпляр плагіна. Це дозволяє спростити і впорядкувати роботу користувача при додаванні плагінів зі спільною конфігурацією.
Елементами в JSON-файлі є;
| Назва | Опис |
|---|---|
| description | Опис гібридного плагіна. Він з'явиться праворуч від списку вибору в інтерфейсі користувача Fledge, коли плагін буде обрано. |
| name | Назва самого плагіна. Воно повинно збігатися з назвою файлу JSON, а також з назвою каталогу, в якому розміщено файл. |
| connection | Назва базового плагіна, який буде використано як основу для цього гібридного плагіна. Це має бути плагін на C/C++ або Python, це не може бути інший гібридний плагін. |
| defaults | Набір значень за замовчуванням у цьому гібридному плагіні. Це параметри конфігурації базового плагіна, які будуть зафіксовані в гібридному плагіні. Кожен гібридний плагін може мати одне або мої значення тут. |
У цьому прикладі може бути нескладно вводити вивід GPIO у кожному випадку, але це може бути корисним для таких плагінів, як Modbus, де складну карту потрібно вводити у JSON-документ. Використовуючи гібридний плагін, ми можемо один раз визначити потрібну нам карту, а потім додавати нові датчики того ж типу без необхідності повторювати карту. Прикладом може бути камера Flir AX8, яка потребує 176 регістрів Modbus для відображення 88 різних значень в активі. Гібридний плагін fledge-south-FlirAX8 визначає таке зіставлення один раз, і в результаті додавання нової камери Flir AX8 відбувається так само просто, як вибір гібридного плагіна FlirAX8 і введення IP-адреси камери.