На этой странице описывается локальный HTTPS API, предоставляемый сборками MeshCoreTel-firmware, который поддерживает веб-панель.
Он предназначен для:
Это не облачный API и не отдельный фоновый сервис. Прошивка ретранслятора предоставляет его напрямую.
API доступно только при соблюдении следующих условий:
API предназначен для администрирования в доверенной локальной сети. Не открывайте его напрямую в публичный интернет.
Используйте локальный HTTPS-адрес ретранслятора:
https://<repeater-ip>/
Пример:
https://192.168.1.123/
API использует тот же пароль администратора, что и CLI ретранслятора, и веб-панель.
POST на /loginX-Auth-Token при последующих запросахПример:
TOKEN=$(curl -sk -X POST https://<repeater-ip>/login --data '<admin-password>')
Использование токена:
curl -sk https://<repeater-ip>/api/stats -H "X-Auth-Token: $TOKEN"
Примечания:
-k или аналог401 UnauthorizedAPI работает на самом ретрансляторе, поэтому частота опроса имеет значение.
Если ретранслятор также поддерживает два MQTT-соединения, избегайте частого опроса API. Текущая модель использования MeshCoreTel-firmware:
60 секундЭто рекомендуемый базовый уровень, если вы хотите избежать перегрузки устройства. Держите частоту запросов низкой, избегайте шквального опроса и отдавайте предпочтение ручному обновлению или чтению по событиям для более тяжёлых операций.
Рекомендуемая практика:
/api/stats не чаще одного раза в минутуPOST /loginАутентификация с паролем администратора ретранслятора.
Тело запроса:
<admin-password>
Ответ:
401 при неверном паролеПример:
curl -sk -X POST https://<repeater-ip>/login --data '<admin-password>'
POST /api/commandУдалённое выполнение команды CLI ретранслятора.
Заголовки:
X-Auth-Token: <token>
Тело запроса:
get wifi.status
Ответ:
OK, если команда выполнена успешно и не возвращает текстаПример:
curl -sk https://<repeater-ip>/api/command \
-H "X-Auth-Token: $TOKEN" \
--data 'get wifi.status'
GET /api/statsПолучить сводные данные, используемые на отдельной странице /stats.
Заголовки:
X-Auth-Token: <token>
Пример:
curl -sk https://<repeater-ip>/api/stats \
-H "X-Auth-Token: $TOKEN"
Примечания:
web.stats отключён, конечная точка возвращает 503 Service Unavailablesensors в сводных данных с текущей телеметрией GPS и окружающей средыcore включает исходное battery_mv, battery_pct (если устройство сообщает), готовый для интерфейса battery_display_pct, а также специфичные для устройства подсказки диапазона battery_min_mv / battery_max_mv, используемые /stats, когда устройство не предоставляет собственный процент зарядаGET /api/stats?series=<name>Получить один ряд тренда.
Поддерживаемые ряды:
batterymemorysignalnoise_floorpacketserror_ratecore0_utilvoltagesensor_temphumiditypressurepressure_altitudemcu_tempgps_altitudegps_satellitesПример:
curl -sk "https://<repeater-ip>/api/stats?series=memory" \
-H "X-Auth-Token: $TOKEN"
Примечания:
?series=battery, а не просто ?seriespoints и current:null/api/command — самая гибкая конечная точка. Она позволяет выполнять те же команды CLI, которые принимает ретранслятор.
Примеры:
get wifi.statusget mqtt.statusget web.statusget web.stats.statusget repeatget radioЭто полезно для:
Пример:
curl -sk https://<repeater-ip>/api/command \
-H "X-Auth-Token: $TOKEN" \
--data 'get mqtt.status'
Используйте /api/stats для сводной информации и по одному вызову series для линий трендов.
Рекомендуемый шаблон:
/api/stats60 секунд или реже, если ретранслятор загруженЭто тот же базовый шаблон, что используется встроенной страницей /stats.
Поскольку /api/command возвращает вывод CLI напрямую, он хорошо подходит для небольших операционных проверок в скриптах или домашнем мониторинге.
Примеры:
Пример:
curl -sk https://<repeater-ip>/api/command \
-H "X-Auth-Token: $TOKEN" \
--data 'get web.status'
Веб-панель также использует /api/command для действий оператора, не только для запросов только на чтение.
Примеры:
advertrebootstart otatime <epoch>time.force <epoch>Это мощные команды. Обращайтесь с ними так же, как с прямым доступом через последовательный CLI.
Пример:
curl -sk https://<repeater-ip>/api/command \
-H "X-Auth-Token: $TOKEN" \
--data 'advert'
Веб-панель сохраняет настройки, генерируя CLI-команды и отправляя их через /api/command.
Это означает, что ваши собственные инструменты могут делать то же самое для специфичных для MeshCoreTel-firmware настроек, таких как:
Это практичный способ автоматизировать настройку, сохраняя существующую семантику CLI.
Этот shell-пример выполняет вход, получает сводную статистику, один ряд тренда и выполняет CLI-команду:
#!/usr/bin/env bash
set -euo pipefail
BASE_URL="https://192.168.1.123"
PASSWORD="your-admin-password"
TOKEN=$(curl -sk -X POST "$BASE_URL/login" --data "$PASSWORD")
echo "Сводка:"
curl -sk "$BASE_URL/api/stats" \
-H "X-Auth-Token: $TOKEN"
echo
echo "Тренд памяти:"
curl -sk "$BASE_URL/api/stats?series=memory" \
-H "X-Auth-Token: $TOKEN"
echo
echo "Статус MQTT:"
curl -sk "$BASE_URL/api/command" \
-H "X-Auth-Token: $TOKEN" \
--data 'get mqtt.status'
Типичные ответы:
401 Unauthorized: отсутствует или истёк токен503 Service Unavailable: статистика отключена404 No stats data: не удалось сформировать запрошенные данные статистики400 Bad request: некорректное тело запроса при входе или выполнении командыЕсли запросы статистики не удаются:
web.stats включён/api/command, когда нужно точное соответствие CLI/api/stats для панелей мониторинга и просмотра трендовset web off, чтобы максимизировать запас памяти на устройствах с ограниченными ресурсами