Для того, чтобы извлечь из системы WNAM QoW максимальную пользу, вам необходимо разобраться с принципами её работы. В этом разделе вы познакомитесь с концепцией системы, и основными понятиями, которые будут далее встречаться в документации.

Сенсор - ключевой элемент системы - представляет из себя точку доступа Wi-Fi, работающую под управлением ОС OpenWRT, и нашего Python-кода. В него встроен GSM модем. Питается он от адаптера сети 220 В, либо от коммутатора по PoE. Сенсор можно купить, либо собрать самостоятельно (при наличии подходящего оборудования, и лицензии).

Сенсор выполняет работу по автоматизированному периодическому подключению к вашей Wi-Fi сети, и выполнению набора задач и инструкций по расписанию, с отправкой результатов на сервер. Таким образом, сенсор является роботизированным клиентом Wi-Fi. Вам не нужно самостоятельно подключаться к сети, чтобы проверить авторизацию и скорость Интернета, или просить кого-то сделать это "на месте". Сенсор выполнит все проверки сам.

Сенсор подключается к порту ЛВС вашей корпоративной сети передачи данных, либо на сети объекта, где у вас работает беспроводная сеть. Разместить сенсор желательно в скрытом месте (чтобы не утащили), и при этом сравнительно недалеко от места, где вы ожидаете появления пользователей вашего Wi-Fi. Сенсор работает как один из клиентов Wi-Fi сети. 

Первоначальное его подключение и настройка производится, как и обычной точки доступа. IP адрес устройство получает по DHCP, в дальнейшем вы можете задать статический адрес и иные базовые сетевые параметры сенсора, работая с ним, как с OpenWRT-роутером. Для этого у вас есть веб-интерфейс LuCI, а также SSH-доступ к сенсору. Настраивать в интерфейсе OpenWRT клиентское подключение к вашему SSID не требуется.

После первоначальной настройки сенсора, когда у него есть сетевой доступ в Интернет, он самостоятельно пробует зарегистрироваться на сервере, им управляющим. В личном кабинете системы WNAM QoW Server или на вашем выделенном сервере вы должны "увидеть" сенсор, и приступить к его настройке. Регистрация сенсора на сервере проводится по его МАС-адресу. Коммуникационный протокол - MQTT/TLS.



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

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

К сенсору прикрепляется как минимум одна Задача. В задаче определяется периодичность её выполнения, действия при сбое, порядок повтора, а также набор инструкций. Задачу можно рассматривать как набор действий, которые сенсор выполняет подряд по заданному расписанию. Например, вы можете создать задачу виде "проверяй состояние моей вайфай сети, прохождение авторизации и скорость Интернета каждые полчаса".

В задаче определяется последовательность из заранее заданных Инструкций. Число этих инструкций не ограничено, но на практике в одном задании их будет меньше десятка. Как минимум одна инструкция должна быть добавлена в задачу. Инструкции выполняются последовательно. Если при выполнении очередной инструкции произошел сбой, выполнение следующих инструкций зависит от настроек "критичности" неудавшейся инструкции.

Инструкция представляет собой атомарное действие по проверке работы того или иного компонента сети. Всего существует восемь типов инструкций. К инструкции всегда прилагается редактируемый Python-скрипт, который содержит помимо кода обработки, который вы можете редактировать самостоятельно, вызов разработанных нами библиотечных функций, осуществляющих требуемые проверки.

Задача может иметь свой собственный набор параметров, которые передаются во все инструкции этой задачи при их выполнении. У инструкции может быть и индивидуальный набор параметров.

Библиотека задач и инструкций на сервере может содержать сколько угодно экземпляров этих объектов.

При запуске сенсор загружает в себя задачи, инструкции, начинает их выполнение. Обновление настроек на сервере обновляет их и на сенсорах. По завершению выполнения задания, успешного или нет, сенсор выгружает результат на сервер, где он становится виден в отчетах и дашбоардах различного типа, а также вызывает отправку уведомления о неисправности, если она случилась.

Сенсоры можно объединить в иерархические (вложенные) группы по организационному признаку, или по типу назначенных проверок (заданий). Сервер управления поддерживает ролевую модель доступа к набору сенсоров. Задачи, параметры, перечни "собственных" SSID на сервере желательно привязывать к группам: в этом случае они распространяются "вниз" на все вложенные в группу подгруппы и сенсоры.