Program API для создания собственных драйверов
Возможно создавать два типа драйверов:
* Драйвер ввода - код, конфигурируемый в разделе inputs и отвечающий за опрос каких либо внешних устройств (кнопки, сенсоры), не подразумевающих передачу каких-либо команд из внешнего мира к данным устройствам
* Драйверы вывода - код, конфигурируемый в разделе items. Основное назначение которого - транслировать внешним устройствам управляющие команды (по командам MQTT или от внутренних объектов контроллера). Драйверы вывода, также, имеют возможность транслировать в MQTT или другим объектам контроллера, информацию, получаемую от внешних устройств, изменившийся статус внешних устройств. То есть драйверы данного типа двунаправлены.
**Общий класс-предок, определяющий абстрактные методы как для драйвера ввода так и для драйвера вывода:** Class abstractCh-| Setup(), Stop(), Poll(), Status() ; publishTopic(topic, value) | | **Унаследованный класс, определяющий прототип для драйвера ввода** |-Class abstractIn in + publish() | | **Унаследованный класс, определяющий прототип для драйвера вывода** |-Class abstractOut item + Ctrl(), isActive(), getDefaultOnVal()