ПО МКА-3

Материал из Wiren Board
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Другие языки:

Основная статья: Wiren Board NETMON-1

Перезагрузка SCU (задние реле)

За управление задними реле ответственен демон dbic-pcycle.py.

Запуск/остановка демона:

/etc/init.d/wb-dbic-pcycle start
/etc/init.d/wb-dbic-pcycle stop

Демон слушает команды по шине MQTT. Есть три разных способа вызвать перезагрузку SCU, т.е. отправить MQTT-команду демону:

  • Через веб-интерфейс в разделе Back relays
  • С помощью команды `dbic_invoke_pcycle.sh` в консоли
  • С помощью отправки команды через MQTT
mosquitto_pub -h <ip-адрес МКА> -t "/devices/dbic-power-cycle/controls/power/on" -m "0" -q 2

Механизм конфигурирования

Конфигурация

Пакет wb-dbic устанавливает и хранит темплейты конфигурационных файлов в директории /etc/wb-dbic/templates/. Например темплейт для файла /etc/network/interfaces хранится в файле /etc/wb-dbic/templates/etc/network/interfaces.template.

Конфигурационные файлы генерируются посредством вызова скрипта dbic_gen_conf. Скрипт получает переменные для конфигурирования от SCU, после чего обрабатывает файлы из директории /etc/wb-dbic/templates. Обрабатываются только файлы с расширением .template.

Если для заданного файла становится невозможно получить все необходимые переменные для подстановки, то файл не обновляется.

Изменения в конфигурационных файлах не сохраняются. Изменения в темплейтах в директории /etc/wb-dbic/templates обрабатываются стандартным механизмом conffiles в dpkg: при установке обновлённого пакета и при наличии локальных правок пользователю будут предложены варианты дальнейших действий.

Настройка сети

Т.к. получение переменных для подстановки в темплейты происходит по сети, то отдельно предоставляется первоначальный файл с настройками сети - /etc/network/interfaces.

Добавление конфигурационных файлов в систему

Добавление других конфигурационных файлов в систему автоконфигурирования должно производиться через обновление пакета wb-dbic (с увеличением версии). При этом, если нужный файл предоставляется каким-либо пакетом, то необходимо пользоваться функционалом dpkg-divert или dpkg-divert в сочетании с ucf, чтобы предотвратить перезаписывание файла при обновлении исходного пакета.