Инструменты пользователя

Инструменты сайта


как_lighthub_работает_с_файлом_конфигурации

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
как_lighthub_работает_с_файлом_конфигурации [2021/01/08 19:00]
vika created
как_lighthub_работает_с_файлом_конфигурации [2024/01/29 00:07] (текущий)
admin
Строка 1: Строка 1:
-При включении, контроллер сначала проверяет наличие записанного в памяти конфигурационного файла. (У нового контроллера конфигурационный файл отсутствует). Затем контроллер поднимает сетевые интерфейсы, подключается к интернету, идет на сайт lazyhome.ru и пытается получить конфигурационный файл JSON к своему МАС-адресу. +===== Первое включение =====
-Для создания этого файла заходим на lazyhome.ru в свой аккаунт и на странице https://www.lazyhome.ru/portal создаем конфигурационный файл для своего роутера по его МАС-адресу. Тогда контроллер его там увидит и сможет начать работать по нему.+
  
-Для того, чтобы настроить Контроллер умного дома LightHub также заходим на  [[https://www.lazyhome.ru/portal|Личный Кабинет]] (после регистрации на сайте),  +По-умолчанию, контроллер получает динамический адрес локальной сети по DHCP 
-Для того чтобы начать, можете просто использовать примеры ниже, а затем доработать их по своему усмотрению+При этомон записывает его в энергонезависимую память. И если при очередном перезапуске, DHCP сервер не доступен - он будет использовать последний известный IP адрес. 
 + 
 +Если надо определить статический адрес (а, также, GW, DNS, NetMask), это можно сделать при помощи команды ip в [[cli_интерфейс]] 
 +Адрес будет сохранен в энергонезависимую память контроллера.  
 + 
 +При включении, контроллер сначала проверяет наличие записанного в памяти конфигурационного файла. (У нового контроллера, а также, после перезаливки прошивки, конфигурационный файл отсутствует (кроме mega2560, в случае этого контроллера, конфигурация не утрачивается в процессе перепрошивки)). Затем контроллер поднимает сетевые интерфейсы, подключается к интернетуидет на сайт lazyhome.ru и пытается скачать конфигурационный файл JSON для своего МАС-адреса.   
 + 
 +====Создание конфигурационного файла ==== 
 +Для того чтобы начать, можете просто использовать примеры [[https://www.lazyhome.ru/dokuwiki/doku.php?id=примеры_конфигураций]], а затем доработать их по своему усмотрению 
 + 
 +Чтобы загрузить/отредактировать конфигурацию контроллера есть несколько методов: 
 +==== Простой метод настройки - через портал lazyhome.ru ==== 
 +Для создания конфигурационного файла заходим на lazyhome.ru в свой аккаунт (после регистрации на сайте) и на странице [[https://www.lazyhome.ru/portal|Личный Кабинет]] создаем конфигурационный файл для своего контроллера, нажав кнопку "создать" и указав его [[mac_адрес]] Тогда контроллер при перезагрузке получит настройку и сможет начать работать в этой конфигурации.
  
 Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки с сайта lazyhome.ru.  Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки с сайта lazyhome.ru. 
  
-В простом случае этого достаточно.+Для того, чтобы быстро начать работу, этого достаточно.
  
-====== Если мы хотим сохранить настройки в постоянную память контроллера ======+В дальнейшем, Автоматическую загрузку конфига можно отменить при помощи команды <code>get OFF</code> в [[cli_интерфейс]] или изменив конфиг через web интерфейс контроллера  
  
-После того, как вы убедитесь, что все работает, можно будет сохранить настройки в постоянную память контроллера (команда save в CLI) и сделать его независимым от наличия доступа в интернет+==== Автономный метод настройки - веб интерфейс/плагин браузера ==== 
-Два способа сохранения конфига в память контроллера:+Также, редактировать конфигурацию, управлять режимами, перегружать контроллер можно, зайдя в веб интерфейс на адрес контроллера по http через браузер (рекомендован firefox) или установив плагин браузера Chrome (рекомендуется) 
 +Подробности тут: [[интерфейс_настройки]]
  
-1Подключаем контроллер по USB к ноутбуку. Сохраняем через эмулятор терминала (например для Макбука использую minicom). +==== Дополнительные возможности ==== 
-Для улучшения читаемости в minicomEsc+U+Также можно разместить настройки на своем собственном http сервере, в папке cnfФормат имени файла: http://MY_CONFIG_SERVER/cnf/12-12-12-12-12-12.config.json (вместо 12-12-12-12-12-12 ваш mac адрес) 
 + 
 +После этого выполнить через CLI команду <code>get <MY_CONFIG_SERVER></code> 
 +Контроллер запомнит ваш сервер и далее, будет загружать обновление конфига из этого источника. (на платформах STM, NRF пока не сохраняется) 
 + 
 +===== Сохранение настроек в постоянную память контроллера ===== 
 + 
 + 
 +По-умолчанию, успешно загруженный конфиг автоматически сохраняется в энергонезависимую память контроллера. 
 +После этого контроллер готов к автономной работе.  
 +При загрузке конфигурации проверяется наличие изменений - если в памяти сохранен тот же конфиг, что имеется на портале, повторная загрузка и сохранение не происходит. 
 + 
 +Данное поведение можно изменить при помощи команды save в [[cli_интерфейс]] 
 +<code> 
 +save ON - включить автосохранение конфига (по умолчанию) 
 +save OFF - выключить автосохранение конфига 
 +save - сохранить текущий конфиг 
 +</code> 
 + 
 +Есть три способа подключения к контроллеру для управления: по USB, через MQTT и через HTTP [[api]]. Рассмотрим их подробнее. 
 + 
 +===== Подключение по USB ===== 
 + 
 + 
 +Подключаем контроллер USB кабелем к ноутбуку. Открываем эмулятор терминала (например для Макбука использую minicom, который устанавливается через homebrew). 
 +Для улучшения читаемости ответов контроллера в minicom нажимаем комбинацию Esc+U 
 + 
 + 
 +''$ minicom -D /dev/tty.usbmodem14201'' 
 + 
 +Для windows можно использовать putty или терминал, входящий в среду разработки PlatfrmIO 
 + 
 +Параметры подключения - 115200 бод, N-8-1
  
-$ minicom -D /dev/tty.usbmodem14201 +После подключения, контроллер отвечает:
-Контроллер отвечает:+
  
-''+<code>
 Got IP address:192.168.88.44,  Default config server used: lazyhome.ru  Got IP address:192.168.88.44,  Default config server used: lazyhome.ru 
 Config URI: http://lazyhome.ru/cnf/de-71-d5-9a-93-96.config.json                 Config URI: http://lazyhome.ru/cnf/de-71-d5-9a-93-96.config.json                
 HTTP Status code: 404                                                            HTTP Status code: 404                                                           
 Config retrieving failed                                                         Config retrieving failed                                                        
-Loading Config from EEPROM       No stored config ''  +Loading Config from EEPROM       No stored config </code>  
  
-Видим, что контроллер пытается считать конфиг по адресу de-71-d5-9a-93-96.config.json и его там не находит (404 ошибка). 
  
-после того как мы сформировали конфиг на портале lazyhome.ruконтроллер нам ответит что все хорошо и можно сохранить командой SAVE+Видим, что контроллер пытается считать конфиг для своего MAC-адреса de-71-d5-9a-93-96.config.jsonи его там не находит (404 ошибка).
  
 +После того как мы сформировали конфиг на портале lazyhome.ru, контроллер нам ответит что все хорошо и сохранит конфиг.
  
  
-2. Если контроллер уже успешно подключен к MQTT брокеру, то команду CLI можно направить в топик.  
  
 +===== Подключение по MQTT =====
  
-Также можно разместить настройки на своем собственном http сервере, в папке cnf. Формат имени файла: http://MY_CONFIG_SERVER/cnf/12-12-12-12-12-12.config.json (вместо 12-12-12-12-12-12 ваш mac адрес) 
-После этого выполнить через CLI команду <code>get <MY_CONFIG_SERVER></code> 
-Контроллер запомнит ваш сервер и далее, будет загружать обновление конфига из этого источника. (на ESP32, STM, NRF пока не сохраняется, но сделаем) 
  
 +Если контроллер уже успешно подключен к MQTT брокеру, то команду CLI можно направить в топик $command. 
 +см [[работа_с_mqtt#служебные_топики]]
 +
 +
 +
 +===== Рабочий режим =====
 +During normal operation, controller:
 +
 +  * Accepting incoming MQTT message flow and retrieving item name from topic name. For example, /myhome/in/item1 will control "item1"
 +  * Controlling items.
 +  * Most commands, accepted on INTOPIC passed throw to OUTTOPIC after interpretation. Interpretation is converting of high level commands like ON OFF HALT REST to low-level commands with real values. OUTTOPIC publishing uses "persistent" flag to allow retrieving recent status from MQTT broker after restart of controller
 +  * Polling: Normally, Modbus devices and 1-wire thermometers are polled with reasonable interval. Retrieved values are publishing to OUTTOPIC
 +
 +
 +===== Цветовая индикация режимов работы =====
 +Контроллер LightHub имеет трехцветный светодиод, который наглядно показывает текущий режим работы контроллера
 +
 +  * красный - отсутствует подключение по локальной сети
 +  * желтый  - контроллер подключен к локальной сети но не подключен к MQTT брокеру
 +  * зеленый - контроллер подключен к брокеру
 +  * вспышки синего - получены инструкции по MQTT
 +  * вспышки красного - ошибки в процессе работы (изучить отладотчный лог)
 +  * постоянное свечение - конфигурация не загружена
 +  * мигание с интервалом 2-3 секунды - конфигурация загружена и в работе
 +
 +То есть, например, мигание красным цветом с интервалом 2-3 секунды означает, что контроллер отключен от локальной сети, но продолжает локальную работу по имеющемуся на борту файлу конфигурации
  
как_lighthub_работает_с_файлом_конфигурации.1610121600.txt.gz · Последнее изменение: 2021/01/08 19:00 — vika