|
|
@@ -843,10 +843,566 @@ GET /beacon/get-vpn.php?mac=ac:84:c6:42:17:90
|
|
|
6. RSSI-based геолокация (близко/далеко)
|
|
|
|
|
|
### Инфраструктура:
|
|
|
-1. MySQL для конфигов и WiFi данных
|
|
|
-2. ClickHouse для BLE событий (phones2, blex5)
|
|
|
-3. Redis (упоминался, не видел использования)
|
|
|
-4. OpenVPN сервер
|
|
|
-5. Nginx reverse proxy
|
|
|
-6. PHP 7.x backend
|
|
|
-7. jQuery + DataTables + jEditable frontend
|
|
|
+1. **MySQL** - конфиги устройств, WiFi данные, пользователи
|
|
|
+ - Таблицы: `users`, `configs`, `clients`, `user_devices`
|
|
|
+2. **ClickHouse** (2 инстанса):
|
|
|
+ - Порт 8123 → таблица `phones2` (мобильные приложения)
|
|
|
+ - Порт 8124 → таблица `blex5` (BLE радары), `clients2` (WiFi дубликаты)
|
|
|
+3. **OpenVPN сервер** - туннели для удаленного доступа к радарам
|
|
|
+4. **Nginx** - reverse proxy для всех сервисов
|
|
|
+5. **PHP 7.x** - backend для всех эндпоинтов
|
|
|
+6. **jQuery + DataTables + jEditable** - фронтенд клиентской панели
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Дополнительный функционал (детальный анализ)
|
|
|
+
|
|
|
+### 1. Мобильное приложение - WebView интерфейс
|
|
|
+
|
|
|
+**Файл:** `webview.php`
|
|
|
+
|
|
|
+**Назначение:** Тестовая страница для WebView в мобильных приложениях
|
|
|
+
|
|
|
+**JavaScript Bridge:**
|
|
|
+```javascript
|
|
|
+mobile.setBootFlag() // Установить флаг первого запуска
|
|
|
+mobile.getId() // Получить IMEI/Device ID
|
|
|
+```
|
|
|
+
|
|
|
+**Use case:**
|
|
|
+- Гибридное приложение (нативный код + WebView)
|
|
|
+- Взаимодействие между JS и Android/iOS
|
|
|
+- Передача Device ID с устройства
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2. Видео-прокси для соцсетей
|
|
|
+
|
|
|
+**Файл:** `getmp4.php`
|
|
|
+
|
|
|
+**Функционал:**
|
|
|
+- Проксирование видео с Instagram/социальных сетей
|
|
|
+- Поддержка byte ranges (streaming)
|
|
|
+- Частичная загрузка (HTTP 206 Partial Content)
|
|
|
+- User-Agent spoofing
|
|
|
+- Опциональный proxy для обхода блокировок
|
|
|
+
|
|
|
+**Параметр:** `?video=https://instagram.com/...video.mp4`
|
|
|
+
|
|
|
+**Use case:**
|
|
|
+- Воспроизведение видео из соцсетей в мобильном приложении
|
|
|
+- Обход CORS restrictions
|
|
|
+- Обход geo-блокировок
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 3. Конфигурация устройств - эволюция форматов
|
|
|
+
|
|
|
+#### Формат v1 (хардкод switch-case)
|
|
|
+
|
|
|
+**Файл:** `ib-config.php`
|
|
|
+
|
|
|
+**Формат ответа:**
|
|
|
+```
|
|
|
+MAC;wifi_flag;bt_flag;bt_addr;wifi_addr;
|
|
|
+```
|
|
|
+
|
|
|
+**Пример:**
|
|
|
+```
|
|
|
+d8:0d:17:5e:14:de;0;1;http://192.168.200.12/gw.php;http://my-beacon.ru/wifi.php;
|
|
|
+```
|
|
|
+
|
|
|
+**Проблема:** Хардкод для каждого устройства в switch-case
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+#### Формат v2 (БД configs)
|
|
|
+
|
|
|
+**Файл:** `getfile_v2.php`
|
|
|
+
|
|
|
+**Формат ответа:** key=value (plain text)
|
|
|
+```
|
|
|
+wf_client_ssid=Office_WiFi
|
|
|
+wf_client_psk=password123
|
|
|
+ovpn_flag=1
|
|
|
+ovpn_addr=https://beacon.e-bash.ru/get-vpn.php?mac=
|
|
|
+wf_flag=1
|
|
|
+wf_addr=https://beacon.e-bash.ru/wifi_receiver.php
|
|
|
+bt_flag=1
|
|
|
+bt_addr=https://beacon.e-bash.ru/newfilebeacon.php
|
|
|
+fw_flag=0
|
|
|
+fw_addr=https://beacon.e-bash.ru/fw_update.php?mac=
|
|
|
+reboot_flag=0
|
|
|
+ip=192.168.5.244
|
|
|
+```
|
|
|
+
|
|
|
+**Преимущество:** Гибкая настройка через БД
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 4. WiFi Data Processing Pipeline
|
|
|
+
|
|
|
+#### Шаг 1: Прием данных от радара
|
|
|
+
|
|
|
+**Endpoint:** `POST /beacon/wifi_receiver.php`
|
|
|
+
|
|
|
+**Формат входных данных:**
|
|
|
+```
|
|
|
+MAC радара
|
|
|
+timestamp1 -75dBm SA:source_mac1 "SSID_name1"
|
|
|
+timestamp2 -68dBm SA:source_mac2 "SSID_name2"
|
|
|
+...
|
|
|
+```
|
|
|
+
|
|
|
+**Пример:**
|
|
|
+```
|
|
|
+ac:84:c6:42:17:90
|
|
|
+1565183706 -75dBm SA:d8:0d:17:5e:07:94 "Home_WiFi"
|
|
|
+1565183710 -68dBm SA:ac:15:a2:3f:ee:26 "Office_WiFi"
|
|
|
+```
|
|
|
+
|
|
|
+#### Шаг 2: Парсинг и валидация
|
|
|
+
|
|
|
+1. **Разбор построчно:**
|
|
|
+ - Первая строка = MAC радара
|
|
|
+ - Остальные = детекции
|
|
|
+
|
|
|
+2. **Парсинг детекции:**
|
|
|
+ - `timestamp` - Unix timestamp
|
|
|
+ - `rssi` - уровень сигнала (dBm)
|
|
|
+ - `SA:source` - Source Address (MAC телефона)
|
|
|
+ - `ssid` - название сети
|
|
|
+
|
|
|
+3. **Фильтрация:**
|
|
|
+ - Проверка валидности MAC радара
|
|
|
+ - Фильтр locally administered MAC (второй символ: 2,3,6,7,a,b,e,f)
|
|
|
+ - Очистка SSID от спецсимволов
|
|
|
+
|
|
|
+**Логика фильтра LA bit:**
|
|
|
+```php
|
|
|
+$bb = $source[1]; // Второй символ MAC
|
|
|
+if ($bb=='2' || $bb=='3' || $bb=='6' || $bb=='7' ||
|
|
|
+ $bb=='a' || $bb=='b' || $bb=='e' || $bb=='f') {
|
|
|
+ // Пропустить - это рандомизированный MAC
|
|
|
+} else {
|
|
|
+ // Сохранить - это реальный MAC
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**Назначение:** iOS/Android рандомизируют MAC при сканировании WiFi для приватности
|
|
|
+
|
|
|
+#### Шаг 3: Сохранение данных (dual write)
|
|
|
+
|
|
|
+**a) MySQL → таблица `clients`:**
|
|
|
+```sql
|
|
|
+INSERT INTO clients (dev, ssid, source, rssi, time)
|
|
|
+VALUES ('ac:84:c6:42:17:90', 'Home_WiFi', 'd8:0d:17:5e:07:94', '-75dBm', '2024-12-27 15:30:45')
|
|
|
+```
|
|
|
+
|
|
|
+**Назначение:** Краткосрочное хранение для клиентской панели (последние 100 записей)
|
|
|
+
|
|
|
+**b) ClickHouse → таблица `clients2`:**
|
|
|
+```sql
|
|
|
+INSERT INTO clients2 (dev, ssid, source, devtime, rssi)
|
|
|
+VALUES (MACStringToNum('ac:84:c6:42:17:90'), 'Home_WiFi', MACStringToNum('d8:0d:17:5e:07:94'), '2024-12-27 15:30:45', -75)
|
|
|
+```
|
|
|
+
|
|
|
+**Назначение:**
|
|
|
+- Долгосрочное хранение (годы данных)
|
|
|
+- Аналитика больших объемов
|
|
|
+- Экспорты в Excel за месяцы
|
|
|
+
|
|
|
+**MACStringToNum:**
|
|
|
+- Конвертирует `ac:84:c6:42:17:90` → число
|
|
|
+- Экономия места в ClickHouse
|
|
|
+- Быстрые сравнения
|
|
|
+
|
|
|
+#### Шаг 4: Обновление Last Seen
|
|
|
+
|
|
|
+```sql
|
|
|
+UPDATE user_devices SET lastevent = '2024-12-27 15:30:45' WHERE mac='ac:84:c6:42:17:90'
|
|
|
+```
|
|
|
+
|
|
|
+**Назначение:**
|
|
|
+- Показать в админке когда радар был активен
|
|
|
+- Мониторинг доступности устройств
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 5. BLE Data Processing Pipeline
|
|
|
+
|
|
|
+#### Форматы данных от радаров
|
|
|
+
|
|
|
+**a) Text format (старые устройства):**
|
|
|
+
|
|
|
+Разделитель `;`
|
|
|
+
|
|
|
+**Примеры:**
|
|
|
+```
|
|
|
+ibeacon_android;ac:15:a2:3f:ee:26;FDA50693-A4E2-4FB1-AFCF-C6EB07647825;1565183706;-75;0;1000;10
|
|
|
+my-beacon_acc;ac:15:a2:3f:ee:26;FDA50693-A4E2-4FB1-AFCF-C6EB07647825;1565183706;-65;90;0.5;-0.3;9.8;28
|
|
|
+bracelet_acc;ac:15:a2:3f:ee:26;FDA50693-A4E2-4FB1-AFCF-C6EB07647825;1565183706;-60;0.1;-0.2;9.7
|
|
|
+bracelet_bat;ac:15:a2:3f:ee:26;FDA50693-A4E2-4FB1-AFCF-C6EB07647825;1565183706;-55;85
|
|
|
+```
|
|
|
+
|
|
|
+**Структура:**
|
|
|
+```
|
|
|
+type;radio_mac;bt_mac;timestamp;rssi;field1;field2;...;majorN;minorN
|
|
|
+```
|
|
|
+
|
|
|
+**Endpoint:** `POST /beacon/newfilebeacon.php`
|
|
|
+
|
|
|
+**Таблица:** ClickHouse `blex5` (mac, btmac, major, minor, rssi, bat, x, y, z, time)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+**b) JSON format (мобильные приложения):**
|
|
|
+
|
|
|
+**Endpoint:** `POST /beacon/ble/get4.php`
|
|
|
+
|
|
|
+**Headers:**
|
|
|
+- `Content-Type: application/json`
|
|
|
+- `Content-Encoding: gzip` (опционально)
|
|
|
+
|
|
|
+**Обработка gzip:**
|
|
|
+```php
|
|
|
+$encoding = $_SERVER['HTTP_CONTENT_ENCODING'];
|
|
|
+if ($encoding === 'gzip') {
|
|
|
+ $data = gzdecode($rawBody);
|
|
|
+} elseif ($encoding === 'deflate') {
|
|
|
+ $data = zlib_decode($rawBody);
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**Таблица:** ClickHouse `phones2`
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 6. File Storage System
|
|
|
+
|
|
|
+#### Uploads директории:
|
|
|
+
|
|
|
+| Директория | Содержимое | Формат | Назначение |
|
|
|
+|------------|-----------|--------|-----------|
|
|
|
+| `uploads/` | WiFi данные | `.tar.gz`, `.wdata.gz` | Архив WiFi детекций |
|
|
|
+| `uploads2/` | WiFi данные (старые) | `.tar.gz` | Исторические данные |
|
|
|
+| `uploadsbeacon/` | BLE данные | `.tar.gz`, `.bdata.gz` | Архив BLE событий |
|
|
|
+| `uploadsbeacon2/` | BLE данные (версия 2) | `.bdata.gz` | |
|
|
|
+| `uploadsbeacon4/` | BLE данные (версия 4) | `.bdata.gz` | |
|
|
|
+| `uploadsbeacon49999/` | BLE данные (тест) | `.bdata.gz` | Тестовые данные |
|
|
|
+| `uploadsbeacon5/` | BLE данные (текущая) | `.bdata.gz` | Актуальная версия |
|
|
|
+
|
|
|
+**Схема работы:**
|
|
|
+
|
|
|
+1. **Радар создает локальный файл:**
|
|
|
+ - WiFi: `2024-12-27_15-30.wdata`
|
|
|
+ - BLE: `1703686200.bdata` (Unix timestamp)
|
|
|
+
|
|
|
+2. **Сжатие:** `gzip filename`
|
|
|
+
|
|
|
+3. **Упаковка в tar (WiFi):** `tar -czf archive.tar.gz file.wdata`
|
|
|
+
|
|
|
+4. **Upload на сервер:** `POST /beacon/upload.php`
|
|
|
+
|
|
|
+5. **Распаковка и импорт в БД:**
|
|
|
+ - Распаковать tar.gz
|
|
|
+ - Прочитать .wdata / .bdata
|
|
|
+ - Парсинг и INSERT в ClickHouse
|
|
|
+
|
|
|
+**Use case:**
|
|
|
+- Offline режим радара (нет интернета)
|
|
|
+- Batch upload при восстановлении связи
|
|
|
+- Backup исторических данных
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 7. VPN Infrastructure
|
|
|
+
|
|
|
+#### VPN Сервер
|
|
|
+
|
|
|
+**Файлы конфигов:**
|
|
|
+```
|
|
|
+/beacon/vpn/ - VPN v1
|
|
|
+/beacon/vpn2/ - VPN v2
|
|
|
+/beacon/vpn3/ - VPN v3 (текущий)
|
|
|
+/beacon/vpn4/ - VPN v4 (production)
|
|
|
+/beacon/vpn5/ - VPN v5
|
|
|
+/beacon/vpn6/ - VPN v6 (latest)
|
|
|
+/beacon/x5vpn/ - VPN для X5 проекта
|
|
|
+```
|
|
|
+
|
|
|
+**Пример конфига:** `1c:3b:f3:41:a2:be.ovpn`
|
|
|
+- Имя файла = MAC радара
|
|
|
+- Уникальный .ovpn для каждого устройства
|
|
|
+
|
|
|
+#### Endpoint для получения VPN
|
|
|
+
|
|
|
+**Файлы:**
|
|
|
+- `get-vpn.php` - основной
|
|
|
+- `get-vpn2.php` - версия 2
|
|
|
+- `get-vpn4.php` - версия 4
|
|
|
+- `get-vpn-x5.php` - для X5 проекта
|
|
|
+- `work_get-vpn.php` - рабочая версия
|
|
|
+
|
|
|
+**Запрос:** `GET /beacon/get-vpn.php?mac=ac:84:c6:42:17:90`
|
|
|
+
|
|
|
+**Ответ:** `.ovpn` файл (OpenVPN config)
|
|
|
+
|
|
|
+**Содержимое .ovpn:**
|
|
|
+```
|
|
|
+client
|
|
|
+dev tun
|
|
|
+proto udp
|
|
|
+remote beacon.e-bash.ru 1194
|
|
|
+ca ca.crt
|
|
|
+cert client_ac-84-c6-42-17-90.crt
|
|
|
+key client_ac-84-c6-42-17-90.key
|
|
|
+...
|
|
|
+```
|
|
|
+
|
|
|
+#### VPN Мониторинг
|
|
|
+
|
|
|
+**Файлы:**
|
|
|
+- `scanvpn.php` - сканер VPN для обычных радаров
|
|
|
+- `scanx5.php` - сканер VPN для X5 проекта
|
|
|
+
|
|
|
+**Функционал:**
|
|
|
+- Список подключенных радаров
|
|
|
+- VPN IP адреса (10.42.x.x)
|
|
|
+- Время подключения
|
|
|
+- Статус (online/offline)
|
|
|
+
|
|
|
+**Use case:**
|
|
|
+- Админ видит какие радары в VPN
|
|
|
+- Может SSH на 10.42.61.115
|
|
|
+- Отладка устройства удаленно
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 8. REST API для iBeacon
|
|
|
+
|
|
|
+**Endpoint:** `ib-get-rest.php`
|
|
|
+
|
|
|
+**Формат:** REST API для получения BLE данных
|
|
|
+
|
|
|
+**Назначение:** Альтернативный API для сторонних систем
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 9. Debug/Testing Features
|
|
|
+
|
|
|
+#### Debug endpoints:
|
|
|
+
|
|
|
+1. **post_debug.php** - логирование POST запросов
|
|
|
+2. **testfile.php** - тестовый upload файлов
|
|
|
+3. **test.php** - общие тесты
|
|
|
+4. **test3.php** - специфичные тесты
|
|
|
+5. **testt.php** - дополнительные тесты
|
|
|
+6. **tt.php** - быстрые тесты
|
|
|
+
|
|
|
+#### Лог файлы:
|
|
|
+
|
|
|
+- `incoming_raw_data.log` - сырые данные от устройств
|
|
|
+- `incoming_raw_data2.log` - backup лог
|
|
|
+- `clickhouse_bulk.log` - ошибки ClickHouse
|
|
|
+- `foreach_debug.log` - дебаг циклов обработки
|
|
|
+- `step_log.log` - пошаговое логирование
|
|
|
+- `post.log` - POST запросы
|
|
|
+- `count.log` - счетчики
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 10. Data Import/Export
|
|
|
+
|
|
|
+#### Import в БД:
|
|
|
+
|
|
|
+**Файл:** `file2db.php`
|
|
|
+
|
|
|
+**Назначение:**
|
|
|
+- Импорт исторических данных
|
|
|
+- Миграция между версиями
|
|
|
+- Восстановление из backup
|
|
|
+
|
|
|
+#### Export MAC addresses:
|
|
|
+
|
|
|
+**Файл:** `macsend.php`
|
|
|
+
|
|
|
+**Назначение:**
|
|
|
+- Генерация файла для Яндекс.Аудитории
|
|
|
+- Генерация файла для myTarget
|
|
|
+- Формат: один MAC на строку
|
|
|
+
|
|
|
+**Процесс:**
|
|
|
+1. Выбор периода (от-до)
|
|
|
+2. Выбор радаров
|
|
|
+3. Выборка DISTINCT MAC
|
|
|
+4. Генерация TXT файла
|
|
|
+5. Download
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 11. Excel Export System
|
|
|
+
|
|
|
+**Файл:** `exel/index2.php`
|
|
|
+
|
|
|
+**Библиотека:** PHPExcel-1.8
|
|
|
+
|
|
|
+**Функционал:**
|
|
|
+- Экспорт WiFi детекций в .xlsx
|
|
|
+- Фильтр по устройствам (мультиселект)
|
|
|
+- Фильтр по периоду (datepicker от-до)
|
|
|
+- Форматирование таблицы
|
|
|
+- Headers с названиями колонок
|
|
|
+
|
|
|
+**Колонки в Excel:**
|
|
|
+1. № п/п
|
|
|
+2. Радар (MAC)
|
|
|
+3. Время детекции
|
|
|
+4. MAC устройства
|
|
|
+5. SSID (сеть которую искал)
|
|
|
+6. RSSI (уровень сигнала)
|
|
|
+
|
|
|
+**Use case:**
|
|
|
+- Скачать за месяц все детекции
|
|
|
+- Анализ в Excel (сводные таблицы, графики)
|
|
|
+- Отчеты руководству
|
|
|
+- Аудит данных
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 12. Дополнительные фичи
|
|
|
+
|
|
|
+#### a) Календарь с подсветкой активных дат
|
|
|
+
|
|
|
+**Функция:** `my_calendar($fill)`
|
|
|
+
|
|
|
+**Параметр:** Массив дат с данными
|
|
|
+
|
|
|
+**Визуализация:**
|
|
|
+- Даты с данными → желтый фон
|
|
|
+- Текущая дата → жирный шрифт
|
|
|
+- Клик на дату → фильтр данных
|
|
|
+
|
|
|
+#### b) Выбор радара
|
|
|
+
|
|
|
+**Интерфейс:**
|
|
|
+```
|
|
|
+Список WiFi-радаров:
|
|
|
+ac:84:c6:42:17:90 был на связи 2024-12-27 15:30:45
|
|
|
+d8:0d:17:5e:07:94 был на связи 2024-12-27 15:28:12
|
|
|
+```
|
|
|
+
|
|
|
+**SESSION переменные:**
|
|
|
+- `$_SESSION['mac']` - выбранный радар
|
|
|
+- `$_SESSION['login-email']` - текущий пользователь
|
|
|
+- `$_SESSION['login-password']` - пароль (!)
|
|
|
+
|
|
|
+#### c) Множественные версии endpoints
|
|
|
+
|
|
|
+**Причина наличия версий:**
|
|
|
+- Разные версии прошивок радаров
|
|
|
+- Эволюция протоколов
|
|
|
+- Backward compatibility
|
|
|
+- A/B тестирование
|
|
|
+
|
|
|
+**Примеры:**
|
|
|
+- `getfile.php`, `getfile_v2.php`, `getfile_v22.php`
|
|
|
+- `getfilebeacon.php` → v2 → v3 → v5 → v6 → v7
|
|
|
+- `newfilebeacon.php` → newfilebeacon2 → newfilebeacon3
|
|
|
+- `get-vpn.php` → get-vpn2 → get-vpn4
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Полный список таблиц БД
|
|
|
+
|
|
|
+### MySQL (база `wifi`)
|
|
|
+
|
|
|
+1. **users** - клиенты системы
|
|
|
+ - login, password (plain text)
|
|
|
+ - device (MAC через `;`)
|
|
|
+ - till (дата оплаты до)
|
|
|
+ - dopinfo, paidTill
|
|
|
+
|
|
|
+2. **configs** - конфигурация радаров
|
|
|
+ - mac (уникальный)
|
|
|
+ - wf_client_ssid, wf_client_psk
|
|
|
+ - ovpn_flag, ovpn_addr
|
|
|
+ - wf_flag, wf_addr
|
|
|
+ - bt_flag, bt_addr
|
|
|
+ - fw_flag, fw_addr
|
|
|
+ - reboot_flag, ip
|
|
|
+ - time (last update)
|
|
|
+
|
|
|
+3. **clients** - WiFi детекции (краткосрочные)
|
|
|
+ - dev (MAC радара)
|
|
|
+ - source (MAC телефона)
|
|
|
+ - ssid (название сети)
|
|
|
+ - rssi (уровень сигнала)
|
|
|
+ - time (timestamp)
|
|
|
+
|
|
|
+4. **user_devices** - связь users ↔ devices
|
|
|
+ - mac (MAC радара)
|
|
|
+ - name (название)
|
|
|
+ - user_id (FK → users)
|
|
|
+ - max1000 (лимит: 0=нет, 1=1000 записей)
|
|
|
+ - segment (для Yandex.Аудитории)
|
|
|
+ - lastevent (последнее событие)
|
|
|
+
|
|
|
+### ClickHouse
|
|
|
+
|
|
|
+#### База: wifi_analytics
|
|
|
+
|
|
|
+1. **clients2** - WiFi детекции (долгосрочные)
|
|
|
+ - dev (UInt64 - MAC радара как число)
|
|
|
+ - source (UInt64 - MAC телефона)
|
|
|
+ - ssid (String)
|
|
|
+ - devtime (DateTime)
|
|
|
+ - rssi (Int8)
|
|
|
+
|
|
|
+#### База: ble_tracking
|
|
|
+
|
|
|
+2. **blex5** - BLE события от радаров
|
|
|
+ - mac (UInt64 - MAC радара)
|
|
|
+ - btmac (String - BT MAC устройства)
|
|
|
+ - major (UInt16)
|
|
|
+ - minor (UInt16)
|
|
|
+ - rssi (Int8)
|
|
|
+ - bat (UInt8 - батарея)
|
|
|
+ - x, y, z (Float32 - акселерометр)
|
|
|
+ - time (UInt32 - Unix timestamp)
|
|
|
+
|
|
|
+3. **phones2** - события от мобильных приложений
|
|
|
+ - mac (String - PHONE_UUID)
|
|
|
+ - nfc_id (String)
|
|
|
+ - type (Enum: status, beacon, accel, nfc)
|
|
|
+ - btmac (String - BT устройства)
|
|
|
+ - major, minor (UInt16)
|
|
|
+ - rssi (Int8)
|
|
|
+ - btuid (String - beacon UUID)
|
|
|
+ - lat, lon, alt, hdop (Float64 - GPS)
|
|
|
+ - perm (String - разрешения)
|
|
|
+ - bat (UInt8)
|
|
|
+ - x, y, z (Float32 - акселерометр)
|
|
|
+ - acc_temp (Float32)
|
|
|
+ - acc_bat (UInt8)
|
|
|
+ - provider (String - GPS provider)
|
|
|
+ - power_perm (String)
|
|
|
+ - time (UInt32)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Специфичные проекты внутри Legacy
|
|
|
+
|
|
|
+### X5 Retail Group Integration
|
|
|
+
|
|
|
+**Файлы:**
|
|
|
+- `get-vpn-x5.php`
|
|
|
+- `scanx5.php`
|
|
|
+- `x5vpn/` (директория)
|
|
|
+
|
|
|
+**Специфика:**
|
|
|
+- Отдельная VPN сеть для X5
|
|
|
+- Специальные конфиги
|
|
|
+- Изолированный мониторинг
|
|
|
+
|
|
|
+**Назначение:** Крупный ритейлер - торговые сети X5 (Пятёрочка, Перекрёсток)
|