Перейти к содержимому

EasyLBS: маяки и ключи устройств

EasyLBS определяет положение прибора не по спутникам, а по тому, что прибор видит вокруг: сотовым вышкам, точкам доступа Wi-Fi и BLE-маякам с известными координатами. Маяки вы расставляете сами — на складе, в цеху, в тоннеле, в подземном паркинге, то есть там, где GNSS не работает в принципе, а не только под РЭБ.

Чтобы сервис знал, где стоят ваши маяки, в учётной записи Galileosky заводятся две сущности:

  • BLE-лист — набор точек с координатами и точностью: BLE-маяков и точек доступа Wi-Fi. Прибор берёт из него позицию.
  • Ключ устройства — авторизует запросы прибора к EasyLBS и связывает его с конкретным BLE-листом. Ключ прописывается в конфигурацию прибора.

И то и другое заводится прямо из конфигуратора — в окне «EasyLBS — маяки и ключи устройств». Команды прибора (LBSCFG, LBSBLE) и их параметры описаны отдельно: «Работа в условиях РЭБ и функционал LBS».

Прибор отправляет на сервер EasyLBS свой IMEI, список окружающих сотовых вышек, при наличии Wi-Fi-модуля — видимые точки доступа, а если включён сбор BLE — до 16 самых сильных меток с их MAC, уровнем сигнала и возрастом наблюдения.

Ключ устройства уходит в том же запросе и выбирает BLE-лист учётной записи. Сервер сопоставляет присланные MAC с точками листа того же типа: BLE-метки — с BLE-маяками, точки доступа Wi-Fi — с точками Wi-Fi:

  • совпадений нет (или ключ не задан) — отвечает обычным LBS-решением по вышкам и Wi-Fi;
  • совпадения есть — считает позицию как взвешенный по уровню сигнала центроид совпавших точек. Точность ответа — не меньше, чем разброс этих точек между собой, и не меньше заданной им точности.

Отсюда практическое следствие: точность в листе — это радиус уверенности точки, а не «поставьте 1 метр, будет точнее». Одна точка даёт своё положение и свою точность; несколько рядом — среднее между ними.

Кнопка «EasyLBS: маяки и ключи» стоит в секции Трек → Компенсация отклонения трека из-за РЭБ, сразу под выпадающим списком Режим LBS.

⚙ Открыть настройки EasyLBS

Кнопка работает, когда в Режим LBS выбран EasyLBS. При любом другом режиме она видна, но выключена, с подсказкой «Доступно, когда в режиме LBS выбран EasyLBS» — сначала выберите режим, потом открывайте окно.

В мобильном приложении кнопки нет совсем: управление маяками там пока не реализовано, и выключенная кнопка обещала бы то, чего не будет.

Для работы с BLE-листами и ключами нужен вход в учётную запись Galileosky — это данные аккаунта, а не прибора. Если входа нет, окно показывает «Войдите в учётную запись Galileosky»: войдите в главном окне приложения и откройте окно заново.

Окно закрывается кнопкой «Закрыть», крестиком или клавишей Esc. Оно не отключает конфигуратор от прибора — настройки в секции остаются на месте.

Вкладка «BLE-листы» показывает все листы учётной записи: название, количество точек, комментарий. Лист открывается щелчком по строке или кнопкой «Открыть», удаляется — «Удалить лист».

Удаление спрашивает подтверждение: «Удалить лист «…» вместе с маяками?». Если на лист ссылаются ключи устройств, в том же подтверждении появится строка «На него ссылаются ключи: N» — эти приборы после удаления останутся без листа.

Новый лист создаётся кнопкой «+ Создать лист» — она сразу открывает редактор.

Редактор занимает всё окно: слева список точек, справа карта. BLE-маяки и точки Wi-Fi лежат в одном списке, тип показан меткой «BLE» или «Wi-Fi» в строке. На карте BLE-маяк — круглый значок, точка Wi-Fi — квадратный.

Название и описание. Новый лист открывается с курсором в поле названия; у существующего название правится карандашом «Переименовать». Ссылка «+ Добавить описание» разворачивает поле комментария.

Добавить точку. Нажмите «Добавить» — надпись сменится на «Кликните по карте…», и следующий клик по карте поставит точку. Новая точка — BLE-маяк; чтобы сделать её точкой Wi-Fi, переключите «Тип» в её карточке. Esc выходит из режима расстановки, не трогая остальной черновик.

Координаты задаются только картой. Перетащите точку — координаты изменятся вслед за ней. В карточке точки правятся тип (BLE или Wi-Fi), MAC (поле принимает только hex и само расставляет разделители — AA:BB:CC:DD:EE:FF), точность в метрах и комментарий. Для точки Wi-Fi MAC — это адрес точки доступа (BSSID).

Найти место. Поле «Найти адрес или место» ищет по адресу или названию и перелетает к найденной точке. Поиск срабатывает по Enter или кнопке «Найти», а не по каждой букве. Если сервис не ответил, поиск просто скажет об этом — редактор продолжает работать.

Фильтр. Поле «Поиск по MAC, комментарию или типу» сужает список точек, не трогая сам лист. Запрос wifi (или Wi-Fi) покажет все точки Wi-Fi, ble — все BLE-маяки.

Отмена. Ctrl/Cmd + Z (кнопка «Отменить») отменяет последнее действие в черновике — и правку в таблице, и перетаскивание на карте, и удаление точки.

Кнопка «Импорт CSV» разворачивает поле, куда вставляется текст в формате:

[ble|wifi,]mac,lat,lon,accuracy[,comment]

Первое поле ble или wifi задаёт тип точки (регистр не важен, Wi-Fi тоже подходит). Без него строка — BLE-маяк, так что файлы старого формата mac,lat,lon,accuracy[,comment] загружаются как раньше.

Пример:

80EA1234ABCD,55.751244,37.618423,15,ворота
wifi,A0B1C2D3E4F5,55.751801,37.619102,20,точка доступа склада №2

Разбор идёт построчно, и ошибочные строки перечисляются как «Строка N: причина»:

ПричинаЧто не так
мало полей (нужно mac,lat,lon,accuracy)в строке меньше четырёх значений, не считая типа
пустой MACполе MAC пустое
неверная широтане число
неверная долготане число
неверная точность (должна быть > 0)ноль, отрицательное или не число

Кнопка «Добавить N» дописывает разобранные точки в черновик — импорт не затирает то, что уже есть. Остальное — формат MAC, диапазон координат, повторы, предел числа точек — проверяется уже в черновике (см. ниже). Обратная операция — «Копировать CSV»: кладёт весь лист в буфер обмена в том же формате. Если в листе есть хотя бы одна точка Wi-Fi, тип стоит в начале каждой строки; если только BLE-маяки — строки без типа, как в старом формате.

Счётчик «BLE: N · Wi-Fi: M» показывает размер черновика по типам. Если что-то не проходит проверку, под ним появится «Ошибок в точках: N · показать первую» — ссылка прокручивает список к первой битой точке.

Проверяется то же, что и на сервере: MAC заполнен, из шести байт и не повторяется среди точек того же типа (BLE-маяк и точка Wi-Fi с одним MAC — не повтор); широта −90…90; долгота −180…180; точность больше нуля. В листе не больше 10000 точек каждого типа — при превышении редактор покажет «Не больше 10000 точек каждого типа в листе.». Пока есть ошибки, кнопка «Сохранить» не нажимается.

Изменения уходят на сервер только по кнопке «Сохранить». «Назад» возвращает к списку листов, а если черновик изменён — кнопка превращается в «Отменить изменения». Попытка закрыть окно с несохранёнными правками покажет «Изменения в листе не сохранены» и предложит «Продолжить правку» или «Отменить изменения».

Карта берёт подложку с публичного сервера OpenStreetMap. Без интернета будет пустая сетка — список маяков, импорт CSV и сохранение при этом работают как обычно.

Вкладка «Ключи устройств» показывает ключи учётной записи: название, сам ключ и BLE-лист, к которому он привязан.

Создание. «+ Создать ключ» просит название и BLE-лист (можно «Без BLE-листа» — привязать позже, пересоздавать ключ не придётся).

Ключ не показывается целиком. В таблице он маскирован — видны только несколько первых и последних символов. Кнопка копирования кладёт в буфер обмена полное значение.

«Использовать» подставляет ключ в параметр «Токен для выполнения запросов» той же команды LBS, рядом с которой вы открыли окно. Строка ключа после этого отмечается как «В конфиге», а над таблицей появляется «Ключ в конфиге прибора: …».

Без ключа режим EasyLBS всё равно работает — запрос уходит анонимно, и позиция считается только по вышкам и Wi-Fi. Ключ нужен именно для того, чтобы сервер подключил к запросу ваш BLE-лист. (В режиме Yandex.Locator наоборот: без токена запросы не отправляются вообще.)

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

Если в конфигурации лежит ключ не из этой учётной записи (или ключей с одинаковыми видимыми краями оказалось несколько), вместо названия показывается сам маскированный токен — это не ошибка, а честное «не могу сказать, чей он».

Удаление спрашивает подтверждение: «Удалить ключ «…»? Приборы, где он прописан, потеряют доступ к EasyLBS». Если удаляемый ключ сейчас стоит в конфигурации, добавится предупреждение «Этот ключ сейчас в конфиге прибора».

EasyLBS работает только на Galileosky 10: в прошивке 7x и XS запросов к LBS-сервису нет.

  1. В секции Трек → Компенсация отклонения трека из-за РЭБ выберите Режим LBS = EasyLBS. ⚙ Открыть компенсацию РЭБ
  2. Откройте «EasyLBS: маяки и ключи», создайте BLE-лист и расставьте BLE-маяки и точки Wi-Fi — на карте или импортом CSV. Сохраните лист.
  3. На вкладке «Ключи устройств» создайте ключ и привяжите его к этому листу.
  4. Нажмите «Использовать» — ключ встанет в поле «Токен для выполнения запросов».
  5. Закройте окно и сохраните конфигурацию в прибор.
  6. Если прибор с Bluetooth должен ещё и сам сообщать о видимых метках, включите «Включить запрос данных по BLE меткам» и при необходимости настройте «Фильтрация меток» (см. ниже).

Свой адрес сервера EasyLBS (например, через прокси) задаётся в подсекции «Адрес сервера LBS»; пустое поле означает адрес по умолчанию для выбранного режима, порт 0 — порт по умолчанию.

⚙ Открыть адрес сервера LBS

Блок «BLE-наблюдения для EasyLBS» (команда LBSBLE) виден только при режиме LBS EasyLBS. Отметка «Включить запрос данных по BLE меткам» добавляет к LBS-запросу список видимых BLE-устройств, а кнопка «Фильтрация меток» открывает диалог с ограничениями:

ПараметрЗначенияСмысл
Минимальный RSSI−127…0 дБм, 0 — без порогаслабее порога метки в запрос не попадают
Максимальное количество устройств в запросе0…32, 0 — значение по умолчанию (7)прибор хранит 16 последних наблюдений, больше 16 не отправит
Маска MAC-адреса 1…812 hex-символов, X — любая тетрада, например 80EAXXXXXXXXоставляет только свои метки; масок нет — принимаются все

Маски удобно задавать по префиксу производителя: чужие метки соседнего склада тогда не попадут в запрос и не собьют позицию.

Наблюдение живёт 60 секунд с момента, когда метку видели последний раз, и в запрос попадают самые сильные из оставшихся. После включения отметки первые 15 секунд прибор копит наблюдения и запрос не отправляет — первый ответ всё равно был бы без меток.

Разбор самой команды LBSBLE и того, как прибор решает, когда отправлять LBS-запрос, — в статье «Работа в условиях РЭБ и функционал LBS».

  • Кнопка выключена. В «Режим LBS» не выбран EasyLBS — либо вы смотрите на прибор другой модификации: команда LBS существует в двух вариантах (с Wi-Fi и без), кнопка относится к тому, рядом с которым стоит.
  • Окно просит вход. Учётная запись Galileosky не авторизована в главном окне приложения либо сессия истекла.
  • Точки не сохраняются. Посмотрите «Ошибок в точках: N» — сервер отвергнет лист с битым MAC, нулевой точностью или повтором.
  • Прибор не получает координаты. Проверьте, что ключ действительно попал в прибор (LBSCFG без параметров вернёт apiKey=…), а точки лежат в том листе, на который ссылается ключ.
  • Точка Wi-Fi не влияет на позицию. Проверьте её тип: MAC точки доступа, заведённый как BLE-маяк, сервер с Wi-Fi не сопоставит.
  • Позиция «застыла» на месте. Так и задумано: пока прибор не двигался по акселерометру, запрос не уходит и повторяется последняя LBS-точка. Сдвиньте прибор — кэш сбросится.
  • Метки не попадают в запрос. Дайте сканеру 15 секунд после включения, проверьте порог RSSI (слишком высокий отсечёт всё) и маски: маска применяется ко всему списку, и опечатка в одной позиции оставит запрос без меток.

См. также: Работа в условиях РЭБ и функционал LBS · Bluetooth: устройства и алгоритмы · Настройка трека · Вкладка «Настройки» (конфигурация прибора)