Skip to main content

Гібридні плагіни

На додаток до плагінів, написаних на 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-адреси камери.