📋 Управление конфигурацией JXCT 7-в-1¶
Версия: 3.10.0 Дата: Июль 2025 Автор: JXCT Development Team
📋 Содержание¶
- Содержание
- Обзор
- Веб-интерфейс
- Доступ к управлению конфигурацией
- Основные функции
- Экспорт конфигурации
- Что экспортируется
- Что заменяется заглушками (по безопасности)
- Что НЕ экспортируется
- Пример экспортированного файла
- Импорт конфигурации
- Поддерживаемые форматы
- Процесс импорта
- Обработка ошибок
- Массовое развертывание
- Шаблон конфигурации
- Заглушки в шаблоне
- Процесс массового развертывания
- Пример готового файла для продакшена
- Технические детали
- Парсер JSON
- Безопасность
- Ограничения
- Отладка
- Логи в Serial Monitor
- Типичные ошибки
- Связанная документация
- История изменений
- v3.10.0
- Поддержка
- Связь с разработчиками
- Дополнительные ресурсы
- Полезные ссылки
📖 Содержание¶
- 🎯 Обзор
- 🌐 Веб-интерфейс
- 📤 Экспорт конфигурации
- 📥 Импорт конфигурации
- 🏭 Массовое развертывание
- 🔧 Технические детали
- 🐛 Отладка
- 📋 Связанная документация
- 🔄 История изменений
🎯 Обзор¶
Система JXCT поддерживает полноценное управление конфигурацией через веб-интерфейс с возможностью экспорта и импорта настроек в формате JSON.
🌐 Веб-интерфейс¶
Доступ к управлению конфигурацией¶
Основные функции¶
- 📤 Экспорт настроек - сохранение текущей конфигурации
- 📥 Импорт настроек - загрузка конфигурации из файла
- 🔄 Автоматическая перезагрузка после импорта
- ⚠️ Безопасность - исключение критических данных из экспорта
📤 Экспорт конфигурации¶
Что экспортируется¶
- ✅ MQTT настройки: server, port, user, enabled
- ✅ ThingSpeak настройки: channel_id, enabled
- ✅ Интервалы: sensor_read, mqtt_publish, thingspeak, web_update
- ✅ Дельта-фильтры: temperature, humidity, ph, ec, npk
- ✅ Скользящее среднее: window, force_cycles, algorithm, outlier_filter
- ✅ Флаги: hass_enabled, real_sensor
Что заменяется заглушками (по безопасности)¶
- 🔒 MQTT сервер →
YOUR_MQTT_SERVER_HERE
- 🔒 MQTT пользователь →
YOUR_MQTT_USER_HERE
- 🔒 MQTT пароль →
YOUR_MQTT_PASSWORD_HERE
- 🔒 ThingSpeak канал →
YOUR_CHANNEL_ID_HERE
- 🔒 ThingSpeak API ключ →
YOUR_API_KEY_HERE
Что НЕ экспортируется¶
- ❌ WiFi настройки (ssid, password)
- ❌ MAC-зависимые поля (topic_prefix, device_name)
- ❌ Системная информация (version, exported timestamp)
Пример экспортированного файла¶
{
"mqtt": {
"enabled": true,
"server": "192.168.2.11",
"port": 1883,
"user": "mqtt"
},
"thingspeak": {
"enabled": true,
"channel_id": "2952280"
},
"intervals": {
"sensor_read": 5000,
"mqtt_publish": 60000,
"thingspeak": 900000,
"web_update": 5000
},
"delta_filter": {
"temperature": 0.10,
"humidity": 0.50,
"ph": 0.01,
"ec": 10.00,
"npk": 1.00
},
"moving_average": {
"window": 5,
"force_cycles": 5,
"algorithm": 0,
"outlier_filter": 0
},
"flags": {
"hass_enabled": true,
"real_sensor": true
}
}
📥 Импорт конфигурации¶
Поддерживаемые форматы¶
- JSON - единственный поддерживаемый формат
- Одна строка - JSON должен быть в одну строку без форматирования
- UTF-8 - кодировка файла
Процесс импорта¶
- Выбор файла - через веб-интерфейс
- Загрузка - файл передается на устройство
- Парсинг - JSON разбирается и проверяется
- Применение - настройки записываются в NVS
- Перезагрузка - устройство автоматически перезагружается
Обработка ошибок¶
- Неверный JSON - сообщение об ошибке парсинга
- Пустой файл - предупреждение о пустом содержимом
- Недоступность в AP режиме - импорт отключен в режиме точки доступа
🏭 Массовое развертывание¶
Шаблон конфигурации¶
Используйте файл test_safe_config.json
как шаблон для массового развертывания.
Заглушки в шаблоне¶
YOUR_MQTT_SERVER_HERE
- адрес MQTT сервераYOUR_MQTT_USER_HERE
- имя пользователя MQTTYOUR_MQTT_PASSWORD_HERE
- пароль MQTTYOUR_CHANNEL_ID_HERE
- ID канала ThingSpeakYOUR_API_KEY_HERE
- API ключ ThingSpeak
Процесс массового развертывания¶
-
Копирование шаблона
-
Замена заглушек (в текстовом редакторе)
- Найти и заменить все заглушки на реальные значения
-
Использовать функцию "Найти и заменить" для быстрой замены
-
Применение на устройствах
- Загрузить готовый файл на каждое устройство
- Устройства автоматически перезагрузятся с новыми настройками
Пример готового файла для продакшена¶
{"mqtt":{"enabled":true,"server":"192.168.4.1","port":1883,"user":"sensor_user","password":"secret123"},"thingspeak":{"enabled":true,"channel_id":"1234567","api_key":"ABCD1234EFGH5678"},"intervals":{"sensor_read":5000,"mqtt_publish":60000,"thingspeak":900000,"web_update":5000},"delta_filter":{"temperature":0.10,"humidity":0.50,"ph":0.01,"ec":10.00,"npk":1.00},"moving_average":{"window":5,"force_cycles":5,"algorithm":0,"outlier_filter":0},"flags":{"hass_enabled":true,"real_sensor":true}}
🔧 Технические детали¶
Парсер JSON¶
- Простой парсер - без использования ArduinoJson для экономии памяти
- Секционный поиск - поиск значений в соответствующих секциях JSON
- Игнорирование заглушек - заглушки не применяются к конфигурации
- Отладочные сообщения - детальные логи в Serial Monitor
Безопасность¶
- Фильтрация полей - критические данные не экспортируются
- Проверка режима - импорт недоступен в AP режиме
- Валидация данных - проверка корректности JSON
- Уникальные идентификаторы - автоматическая генерация по MAC адресу
Ограничения¶
- Размер файла - ограничен доступной памятью ESP32
- Формат JSON - только одна строка без форматирования
- Кодировка - только UTF-8
- Режим работы - импорт недоступен в AP режиме
🐛 Отладка¶
Логи в Serial Monitor¶
⚙️ Начало загрузки файла конфигурации: config.json
⚙️ Загрузка завершена, размер: 425 байт
[IMPORT] MQTT enabled: 1, server: 192.168.2.11, port: 1883, user: mqtt
[IMPORT] ThingSpeak enabled: 1, channel: 2952280, interval: 900000
[IMPORT] Intervals - sensor: 5000, mqtt: 60000, ts: 900000, web: 5000
[IMPORT] Flags - hass: 1, real_sensor: 1
✅ JSON конфигурация успешно распарсена
✅ Конфигурация сохранена
✅ Конфигурация импортирована успешно
Типичные ошибки¶
- "Пустой файл" - файл не содержит данных
- "Ошибка парсинга JSON" - неверный формат JSON
- "Import недоступен в режиме AP" - устройство в режиме точки доступа
- "Not found: /api/config/import" - устройство не подключено к сети
📋 Связанная документация¶
- Пример конфигурации - шаблон для массового развёртывания
- API.md - REST API для управления конфигурацией
- План рефакторинга QA - планы развития
🔄 История изменений¶
v3.10.0¶
- ✅ Реализован полноценный импорт/экспорт конфигурации
- ✅ Добавлен шаблон для массового развертывания
- ✅ Исправлен парсер JSON для работы с вложенными секциями
- ✅ Добавлена поддержка заглушек в шаблоне
- ✅ Улучшена отладка и логирование
- ✅ Исправлен редирект после импорта
📞 Поддержка¶
💬 Связь с разработчиками¶
- Telegram: @Gfermoto
- GitHub Issues: Сообщить о проблеме
- Документация: GitHub Pages
📚 Дополнительные ресурсы¶
- Руководство пользователя
- Техническая документация
- Агрономические рекомендации
- Руководство по компенсации
- API документация
- Схема подключения
- Протокол Modbus
- Управление версиями
🔗 Полезные ссылки¶
- 🌱 GitHub репозиторий - Исходный код проекта
- 📋 План рефакторинга - Планы развития
- 📊 Отчет о техническом долге - Анализ технических проблем
- 🏗️ Архитектура системы - Общая архитектура проекта