📊 API документация JXCT 7-в-1¶
Дата: Июль 2025 Версия API: v3.11.0
REST API для интеграции с JXCT Soil Sensor v3.11.0
🔗 Связанная документация¶
- 🖥️ C++ API - Документация исходного кода
- 🏗️ Архитектура - Техническая документация
- 🧪 Тестирование - Как тестировать API
📋 Содержание¶
- Связанная документация
- Содержание
- Доступ к API
- Таблица актуальных эндпоинтов (API v3.11.0)
- УстаревшиеDEPRECATED эндпоинты
- Веб-страницы
- GET - Настройки
- GET readings - Мониторинг
- GET service - Диагностика
- Настройки
- POST save - Сохранение настроек
- MQTT интеграция
- Топики публикации
- Команды управления
- ThingSpeak интеграция
- Коды ошибок
- CORS поддержка
- Примеры интеграций
- Python
- Node.js
- Home Assistant
- Поддержка
- Связь с разработчиками
- Дополнительные ресурсы
- Полезные ссылки
📖 Содержание¶
- 🌐 Доступ к API
- 📊 Основные endpoints
- 🌐 Веб-страницы
- 📝 Настройки
- 🏠 MQTT интеграция
- 📡 ThingSpeak интеграция
- 🔄 Коды ошибок
- 📱 CORS поддержка
🌐 Доступ к API¶
Все endpoints открыты - авторизация не требуется.
📋 Таблица актуальных эндпоинтов (API v3.11.0)¶
Метод | Путь | Описание |
---|---|---|
GET | /api/v3.11.0/sensor |
Основные данные датчика (JSON) |
GET | /api/v3.11.0/system/health |
Полная диагностика устройства |
GET | /api/v3.11.0/system/status |
Краткий статус сервисов |
POST | /api/v3.11.0/system/reset |
Сброс настроек (307 на /reset ) |
POST | /api/v3.11.0/system/reboot |
Перезагрузка (307 на /reboot ) |
GET | /api/v3.11.0/config/export |
Скачать конфигурацию (JSON, без паролей) |
POST | /api/v3.11.0/config/import |
Импорт конфигурации |
🕑 Устаревшие/DEPRECATED эндпоинты¶
Метод | Путь | Описание |
---|---|---|
GET | /sensor_json |
Те же данные (legacy, будет удалён в будущих версиях) |
GET | /api/sensor |
DEPRECATED alias → /api/v3.11.0/sensor |
GET | /api/config/export |
DEPRECATED alias → /api/v3.11.0/config/export |
POST | /api/config/import |
DEPRECATED alias → /api/v3.11.0/config/import |
POST | /reset |
Legacy сброс (будет удалён) |
POST | /reboot |
Legacy перезагрузка (будет удалён) |
GET | /health |
Старый путь диагностики |
🌐 Веб-страницы¶
GET / - Настройки¶
Веб-интерфейс для настройки WiFi, MQTT, ThingSpeak.
GET /readings - Мониторинг¶
Страница с live данными датчика (обновление каждые 2 сек).
GET /service - Диагностика¶
Статус WiFi, MQTT, ThingSpeak, датчика, системные метрики.
📝 Настройки¶
POST /save - Сохранение настроек¶
curl -X POST http://192.168.4.1/save \
-d "wifi_ssid=MyWiFi" \
-d "wifi_password=mypass" \
-d "mqtt_server=mqtt.local" \
-d "mqtt_port=1883" \
-d "thingspeak_api_key=YOUR_KEY"
Параметры:
- wifi_ssid
, wifi_password
- WiFi настройки
- mqtt_server
, mqtt_port
, mqtt_user
, mqtt_password
- MQTT
- thingspeak_api_key
- ThingSpeak API ключ
- homeassistant_discovery
- включить HA Discovery (1/0)
- web_password
- пароль для веб-интерфейса
🏠 MQTT интеграция¶
Топики публикации¶
homeassistant/sensor/jxct_soil/temperature/state
homeassistant/sensor/jxct_soil/humidity/state
homeassistant/sensor/jxct_soil/ec/state
homeassistant/sensor/jxct_soil/ph/state
homeassistant/sensor/jxct_soil/nitrogen/state
homeassistant/sensor/jxct_soil/phosphorus/state
homeassistant/sensor/jxct_soil/potassium/state
Команды управления¶
# Перезагрузка устройства
mosquitto_pub -h mqtt.local -t "jxct/command" -m "reboot"
# Сброс настроек
mosquitto_pub -h mqtt.local -t "jxct/command" -m "reset"
# Тестовая публикация
mosquitto_pub -h mqtt.local -t "jxct/command" -m "publish_test"
📡 ThingSpeak интеграция¶
Автоматическая отправка данных каждые 15 секунд в поля: - Field1: Температура (°C) - Field2: Влажность (%) - Field3: EC (µS/cm) - Field4: pH - Field5: Азот (mg/kg) - Field6: Фосфор (mg/kg) - Field7: Калий (mg/kg)
🔄 Коды ошибок¶
- 200 - Успешно
- 400 - Некорректные параметры
- 403 - Доступ запрещен
- 500 - Внутренняя ошибка сервера
📱 CORS поддержка¶
API поддерживает CORS для локальных сетей:
fetch('http://192.168.4.1/api/sensor')
.then(response => response.json())
.then(data => console.log(data));
🔧 Примеры интеграций¶
Python¶
import requests
# Получить данные датчика
response = requests.get('http://192.168.4.1/api/sensor')
data = response.json()
print(f"Температура: {data['temperature']}°C")
Node.js¶
const axios = require('axios');
async function getSensorData() {
const response = await axios.get('http://192.168.4.1/api/sensor');
return response.data;
}
Home Assistant¶
# configuration.yaml
sensor:
- platform: rest
resource: http://192.168.4.1/api/sensor
name: "JXCT Soil Sensor"
json_attributes:
- temperature
- humidity
- ph
- ec
value_template: "{{ value_json.temperature }}"
📞 Поддержка¶
💬 Связь с разработчиками¶
- Telegram: @Gfermoto
- GitHub Issues: Сообщить о проблеме
- Документация: GitHub Pages
📚 Дополнительные ресурсы¶
- Руководство пользователя
- Техническая документация
- Агрономические рекомендации
- Руководство по компенсации
- Управление конфигурацией
- Схема подключения
- Протокол Modbus
- Управление версиями
🔗 Полезные ссылки¶
- 🌱 GitHub репозиторий - Исходный код проекта
- 📋 План рефакторинга - Планы развития
- 📊 Отчет о техническом долге - Анализ технических проблем
- 🏗️ Архитектура системы - Общая архитектура проекта