Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
примеры_конфигураций [2021/01/08 13:36] vika |
примеры_конфигураций [2021/09/25 04:16] (текущий) 176.31.125.95 старая версия восстановлена (2019/05/05 10:48) |
При включении, контроллер сначала проверяет наличие записанного в памяти конфигурационного файла. (У нового контроллера конфигурационный файл отсутствует). Затем контроллер поднимает сетевые интерфейсы, подключается к интернету, идет на сайт lazyhome.ru и пытается получить конфигурационный файл JSON к своему МАС-адресу. | Для того, чтобы настроить Контроллер умного дома LightHub достаточно просто зайти в [[https://www.lazyhome.ru/portal|Личный Кабинет]] (после регистрации на сайте), добавить свой контроллер, используя его MAC адрес и создать его настройку в JSON онлайн-редакторе. |
Для создания этого файла заходим на lazyhome.ru в свой аккаунт и на странице https://www.lazyhome.ru/portal создаем конфигурационный файл для своего роутера по его МАС-адресу. Тогда контроллер его там увидит и сможет начать работать по нему. | |
| |
Для того, чтобы настроить Контроллер умного дома LightHub также заходим на [[https://www.lazyhome.ru/portal|Личный Кабинет]] (после регистрации на сайте), | |
Для того чтобы начать, можете просто использовать примеры ниже, а затем доработать их по своему усмотрению | Для того чтобы начать, можете просто использовать примеры ниже, а затем доработать их по своему усмотрению |
| |
Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки с сайта lazyhome.ru. | Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки из Личного Кабинета. После того, как вы убедитесь, что все работает, можно будет сохранить настройки в постоянную память контроллера (команда save в CLI) и сделать его независимым от наличия доступа в интернет. |
| |
В простом случае этого достаточно. | Для тех, кто не доверяет - можно разместить настройки на своем собственном http сервере, в корне. Формат имени файла: http://MY_CONFIG_SERVER/cnf/12-12-12-12-12-12.config.json |
| |
====== Если мы хотим сохранить настройки в постоянную память контроллера ====== | |
| |
После того, как вы убедитесь, что все работает, можно будет сохранить настройки в постоянную память контроллера (команда save в CLI) и сделать его независимым от наличия доступа в интернет. | |
Два способа сохранения конфига в память контроллера: | |
| |
1. Подключаем контроллер по USB к ноутбуку. Сохраняем через эмулятор терминала командой CLI | |
2. Если контроллер уже успешно подключен к MQTT брокеру, то команду CLI можно направить в топик. | |
| |
| |
Также можно разместить настройки на своем собственном 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> | После этого выполнить через CLI команду <code>get <MY_CONFIG_SERVER></code> |
Контроллер запомнит ваш сервер и далее, будет загружать обновление конфига из этого источника. (на ESP32, STM, NRF пока не сохраняется, но сделаем) | Хотя это не так удобно. |
Для переключения контроллера на свой собственный MQTT брокер с общедоступного из примера, используйте настройку: | Для переключения контроллера на свой собственный MQTT брокер с общедоступного из примера, используйте настройку: |
<code> | <code> |
</code> | </code> |
| |
controller_name - уникальное имя вашего контроллера. К одному и тому же брокеру не может быть подключено два контроллера с одним и тем же именем. Используя общедоступный брокер, не забывайте задать свое уникальное имя. | controller_name - уникальное имя вашего контроллера. К одному и тому же брокеру не может быть подключено два контроллера с одним и тем же именем |
| |
Несмотря на то, что в настройке можно задать пароль вашего брокера, мы не рекомендуем это делать по соображениям безопасности. MQTT пароль желательно задавать через CLI команду pwd | Несмотря на то, что в настройке можно задать пароль вашего брокера, мы не рекомендуем это делать по соображениям безопасности. MQTT пароль желательно задавать через CLI команду pwd |
После этого он сохраняется в памяти вашего устройства (на ESP32, STM, NRF пока не сохраняется, но сделаем) | После этого он сохраняется в памяти вашего устройства (на ESP32 пока не сохраняется, но сделаем) |
| |
===== Пример 1: Плата ESP32-EVB ===== | **Пример 1: Плата ESP32-EVB** |
При нажатии на кнопку, переключаем оба реле и отправляем команду в MQTT топик __myhome/in/light__ | При нажатии на кнопку, переключаем оба реле и отправляем команду в MQTT топик __myhome/in/light__ |
| |
</code> | </code> |
| |
===== Пример 2: Сенсор CO2 CCS811 и влажности HD1080 на ESP8266 ===== | **Пример 2: Сенсор CO2 CCS811 и влажности HD1080 на ESP82** |
| |
Данный сенсор CO2 и влажности подключен к шине I2C, поэтому номера PIN ов не используются и могут быть произвольными (уникальными в рамках раздела in) | |
| |
Дополнительно, считываем значение аналогового входа А0, преобразовываем к шкале 0-100 и подавляем шумы | |
<code> | <code> |
{ | { |
"in":{ | "in":{ |
"1":{"T":5,"emit":"myhome/s_out/1"}, | "1":{"T":5,"emit":"myhome/s_out/1"}, |
"2":{"T":6,"emit":"myhome/s_out/2"}, | "2":{"T":6,"emit":"myhome/s_out/2"} |
"54":{"T":64,"emit":"analog","map":[0,1024,0,100,5]} | |
}, | }, |
"mqtt":["LHexample02","test.mosquitto.org"] | "mqtt":["LHexample02","test.mosquitto.org"] |
</code> | </code> |
| |
===== Пример 3: Управление диммером, RGBW лентой, реле из Node Red, контроль протечек и счетчик воды ===== | **Пример 3: Управление диммером, RGBW лентой, реле из Node Red, контроль протечек и счетчик воды** |
| |
<del>(Node-Red логика для данного примера [[http://lazyhome.mircloud.host|развернута тут]]). [[http://lazyhome.mircloud.host/ui|а тут дашборд]].</del> - я не заметил, что примеры в облаке кому-то нужны и перестал оплачивать хостинг. Сорри | (Node-Red логика для данного примера [[http://lazyhome.mircloud.ru|развернута тут]]). [[http://lazyhome.mircloud.ru/ui|а тут дашборд]]. |
| |
Это наиболее сложный пример, использующий большинство возможностей контроллера LightHub 2.2 . | Это наиболее сложный пример. |
| |
* Диммеры света подключены по DMX, Датчик протечки - к аналоговому входу A6 (PIN#60) а шаровый кран перекрытия воды висит на A15 (PIN#69) - (подробнее про то, какие аналоговым входам соответствуют номера PIN указано [[входы_выходы|тут]]) | Диммеры света подключены по DMX, Датчик протечки - к аналоговому входу A0 (PIN#54) а шаровый кран перекрытия воды висит на A15 (PIN#69) - (подробнее про то, какие аналоговым входам соответствуют номера PIN указано [[входы_выходы|тут]]) |
| |
* Используется вход DMX. Предполагается что на вход подключена типовая сенсорная панель для локального управления четырьмя четырех-канальными RGBW лентами (адреса 1,5,9,13). Эти ленты отображаются на "led5","led6","led7","led8" | Вход №38 напрямую управляет реле, которое подключено на выход 22 |
| Вход №41 - Master Switch - позволяет выключить сразу все или вернуть в первоначальное положение |
| |
* Вход №38 напрямую управляет реле, которое подключено на выход 22 | Потенциометр, подключенный на аналоговый вход A7 (PIN#61) одновременно с NodeRed управляет DMX диммером (см 5-й параметр массива map - если значение считанное с аналогового входа, изменилось более чем на 10 пунктов, значение преобразовывается из диапазона 0-850 в диапазон 0-100 и передается на диммер) |
| |
* Вход №39 - Master Switch - позволяет выключить сразу все или вернуть в первоначальное положение | на PIN#44 и 45 подключены контакты счетчиков воды (дальнейший подсчет потребления происходит в Node Red) |
| |
* Потенциометр, подключенный на аналоговый вход A5 (PIN#59) одновременно с NodeRed управляет DMX диммером (см 5-й параметр массива map - если значение считанное с аналогового входа, изменилось более чем на 10 пунктов, значение преобразовывается из диапазона 0-850 в диапазон 0-100 и передается на диммер) | Также, на шину I2C подключены датчики температуры-влажности-CO2-летучих смесей |
| |
* на PIN#34 и 36 подключены контакты счетчиков воды (дальнейший подсчет потребления происходит в Node Red) | |
| |
* Также, на шину I2C подключены датчики температуры-влажности-CO2-летучих смесей | |
| |
NB: Конфигурация такого объема не уместится в Mega2560 и требует контроллера DUE | |
| |
| |
<code> | <code> |
{ | { |
"dmx":[3,60], | "dmx":[3,6], |
"dmxin":["led5","led6","led7","led8"], | |
"topics":{"root":"myhome"}, | "topics":{"root":"myhome"}, |
"mqtt":["lh22-test-0","m2m.eclipse.org"], | |
"ow":{ | |
"2861641227C1EFED":{"emit":"t_1","item":"thermostat"}, | |
"28EE504E161601C7":{"emit":"t_2"} | |
}, | |
"items": { | "items": { |
"mbusdim1":[4,[1,0,3,100]], | "relay":[6,22], |
"mbusdim2":[4,[1,1,3,100]], | |
"mbusdim3":[4,[1,2,3,100]], | |
"mbusdim4":[4,[1,3,3,100]], | |
"relay":[6,22], | |
"thermostat":[5,23,33], | |
"pout2":[6,24], | |
"pout3":[6,25], | |
"pout4":[3,9], | |
"pout5":[3,8], | |
"pout6":[3,11], | |
"pout7":[3,12], | |
"pwm0" :[3,4], | |
"pwm1" :[3,5], | |
"pwm2" :[3,6], | |
"pwm3" :[3,7], | |
"pwm10":[3,10], | |
"water":[6,69], | "water":[6,69], |
"unprot0":[6,33], | "dimmer":[0,1], |
"unprot1":[6,32], | "led":[1,2], |
"unprot2":[6,31], | "all":[7,["dimmer","water","relay","led"]] |
"unprot3":[6,30], | |
"unprot4":[6,29], | |
"unprot5":[6,28], | |
"unprot6":[6,27], | |
"unprot7":[6,26], | |
"led": [1,1], | |
"led2":[1,5], | |
"led3":[1,9], | |
"led4":[1,13], | |
"led5":[1,17], | |
"led6":[1,21], | |
"led7":[1,25], | |
"led8":[1,29], | |
"dimmer" :[0,33], | |
"dimmer2":[0,34], | |
"dimmer3":[0,35], | |
"dimmer4":[0,36], | |
"dimmer5":[0,37], | |
"dimmer6":[0,38], | |
"dimmers":[7,["dimmer","dimmer2","dimmer3","dimmer4","dimmer5","dimmer6"]], | |
"leds":[7,["led","led2","led3","led4","led5","led6"]], | |
"mbuses":[7,["mbusdim1","mbusdim2","mbusdim3","mbusdim4"]], | |
"all":[7,["dimmers","uouts","relays","leds"]], | |
"relays":[7,["relay","thermostat","pout2","pout3","pout4","pout5","pout6","pout7"]], | |
"uouts":[7,["unprot0","unprot1","unprot2","unprot3","unprot4","unprot5","unprot6","unprot7"]] | |
}, | }, |
"in":{ | "in":{ |
"42":{"emit":"in0"}, | "41":{"T":0,"emit":"myhome/in/all","scmd":"HALT","rcmd":"REST"}, |
"44":{"emit":"in1"}, | "54":{"T":66,"emit":"alock_leak","item":"water","map":[50,800],"scmd":"OFF","rcmd":"ON"}, |
"46":{"emit":"in2"}, | "38":{"item":"relay"}, |
"49":{"emit":"in3"}, | "61":{"T":66,"emit":"myhome/in/a07","item":"dimmer","map":[0,850,0,100,10]}, |
"43":{"emit":"in4"}, | "10":{"T":5,"emit":"myhome/s_out/airq1"}, |
"45":{"emit":"in5"}, | "20":{"T":6,"emit":"myhome/s_out/humidity1"}, |
"47":{"emit":"in6"}, | "44":{"emit":"acount_hot"}, |
"48":{"emit":"in7"}, | "45":{"emit":"acount_cold"} |
"34":{"emit":"acount_hot"}, | }, |
"36":{"emit":"acount_cold"}, | "mqtt":["lighthub-07","m2m.eclipse.org"] |
"38":{"emit":"in10","item":"relay"}, | |
"40":{"emit":"myhome/in/in11","scmd":"TOGGLE","rcmd":""}, | |
"35":{"emit":"in12","item":"all","scmd":"REST","rcmd":"HALT"}, | |
"37":{"emit":"myhome/in/in13","scmd":"ON","rcmd":"OFF"}, | |
"39":{"emit":"myhome/in/all","scmd":"HALT","rcmd":"REST"}, | |
"41":{"emit":"in15"}, | |
| |
"54":{"T":64,"emit":"myhome/in/a00","map":[0,1024,0,1024,10]}, | |
"55":{"T":64,"emit":"myhome/in/a01","map":[0,1024,0,1024,10]}, | |
"56":{"T":64,"emit":"myhome/in/a02","map":[0,1024,0,1024,10]}, | |
"57":{"T":64,"emit":"myhome/in/a03","map":[0,1024,0,1024,10]}, | |
"58":{"T":64,"emit":"myhome/in/a04","map":[0,850,0,100]}, | |
"59":{"T":66,"emit":"myhome/in/a05","item":"dimmer","map":[0,920,0,100,5]}, | |
"60":{"T":66,"emit":"alock_leak","item":"water","map":[200,700],"scmd":"ON","rcmd":"OFF"}, | |
"61":{"T":66,"emit":"myhome/in/a07","map":[0,1024,0,1024,5]}, | |
"62":{"T":64,"emit":"myhome/in/a08","map":[0,1024,0,1024,5]}, | |
"63":{"T":64,"emit":"myhome/in/a09","map":[0,1024,0,1024,5]}, | |
"64":{"T":64,"emit":"myhome/in/a10","map":[0,1024,0,1024,5]}, | |
"65":{"T":64,"emit":"myhome/in/a11","map":[0,1024,0,1024,5]}, | |
"66":{"T":0,"emit":"myhome/in/d12"}, | |
"67":{"T":2,"emit":"myhome/in/d13"}, | |
"68":{"T":0,"emit":"myhome/in/d14"}, | |
| |
"10":{"T":5,"emit":"myhome/s_out/airq1"}, | |
"20":{"T":6,"emit":"myhome/s_out/humidity1"} | |
} | |
} | } |
| |
</code> | </code> |
| |
===== Пример 4: Два термостата, управляющие реле на выходах 24 и 36 ===== | **Пример 4: Два термостата, управляющие реле на выходах 24 и 36** |
| |
| |
</code> | </code> |
| |
===== Конфиг, рекомендованный для тестирования и начала работы с LightHub 2.2 ===== | |
| |
<code> | |
| |
{ | |
"dmx":[3,60], | |
"dmxin":["led5","led6","led7","led8"], | |
"topics":{"root":"lazyhome.ru"}, | |
"mqtt":["lazyhome.ru-UA2","test.mosquitto.org"], | |
"ow":{ | |
"2861641227C1EFED":{"emit":"t_1","item":"thermostat"}, | |
"28EE504E161601C7":{"emit":"t_2"} | |
}, | |
"items": { | |
"mbusdim1":[4,[1,0,3,100]], | |
"mbusdim2":[4,[1,1,3,100]], | |
"mbusdim3":[4,[1,2,3,100]], | |
"mbusdim4":[4,[1,3,3,100]], | |
"relay":[6,22], | |
"pout1":[6,23], | |
"pout2":[6,24], | |
"pout3":[6,25], | |
"pout4":[3,9], | |
"pout5":[3,8], | |
"pout6":[3,11], | |
"pout7":[3,12], | |
"pwm0" :[3,4], | |
"pwm1" :[3,5], | |
"pwm2" :[3,6], | |
"pwm3" :[3,7], | |
"pwm10":[3,10], | |
"thermostat":[5,2,33], | |
"unprot0":[6,33], | |
"unprot1":[6,32], | |
"unprot2":[6,31], | |
"unprot3":[6,30], | |
"unprot4":[6,29], | |
"unprot5":[6,28], | |
"unprot6":[6,27], | |
"unprot7":[6,26], | |
"led": [1,1], | |
"led2":[1,5], | |
"led3":[1,9], | |
"led4":[1,13], | |
"led5":[1,17], | |
"led6":[1,21], | |
"led7":[1,25], | |
"led8":[1,29], | |
"dimmer" :[0,33], | |
"dimmer2":[0,34], | |
"dimmer3":[0,35], | |
"dimmer4":[0,36], | |
"dimmer5":[0,37], | |
"dimmer6":[0,38], | |
"dimmers":[7,["dimmer","dimmer2","dimmer3","dimmer4","dimmer5","dimmer6"]], | |
"leds":[7,["led","led2","led3","led4","led5","led6"]], | |
"mbuses":[7,["mbusdim1","mbusdim2","mbusdim3","mbusdim4"]], | |
"all":[7,["dimmers","uouts","relays","leds","mbuses"]], | |
"relays":[7,["relay","pout1","pout2","pout3","pout4","pout5","pout6","pout7"]], | |
"uouts":[7,["unprot0","unprot1","unprot2","unprot3","unprot4","unprot5","unprot6","unprot7"]] | |
}, | |
"in":{ | |
"42":{"emit":"in0"}, | |
"44":{"emit":"in1"}, | |
"46":{"emit":"in2"}, | |
"49":{"emit":"in3"}, | |
"43":{"emit":"in4"}, | |
"45":{"emit":"in5"}, | |
"47":{"emit":"in6"}, | |
"48":{"emit":"in7"}, | |
"34":{"emit":"in8"}, | |
"36":{"emit":"in9","item":"unprot0","scmd":"TOGGLE","rcmd":""}, | |
"38":{"emit":"in10","item":"dimmers","scmd":"TOGGLE","rcmd":""}, | |
"40":{"emit":"in11","item":"leds","scmd":"TOGGLE","rcmd":""}, | |
"35":{"emit":"in12","item":"mbuses","scmd":"TOGGLE","rcmd":""}, | |
"37":{"emit":"in13","item":"relays","scmd":"TOGGLE","rcmd":""}, | |
"39":{"emit":"in14","item":"uouts","scmd":"TOGGLE","rcmd":""}, | |
"41":{"emit":"in15","item":"all","scmd":"TOGGLE","rcmd":""}, | |
| |
"54":{"T":66,"emit":"myhome/in/a00","map":[0,1024,0,1024,10]}, | |
"55":{"T":66,"emit":"myhome/in/a01","map":[0,1024,0,1024,10]}, | |
"56":{"T":66,"emit":"myhome/in/a02","map":[0,1024,0,1024,10]}, | |
"57":{"T":66,"emit":"myhome/in/a03","map":[0,1024,0,1024,10]}, | |
"58":{"T":66,"emit":"myhome/in/a04","map":[0,1024,0,1024,10]}, | |
"59":{"T":66,"emit":"myhome/in/a05","map":[0,1024,0,1024,10]}, | |
"60":{"T":66,"emit":"myhome/in/a06","map":[0,1024,0,1024,10]}, | |
"61":{"T":66,"emit":"myhome/in/a07","map":[0,1024,0,1024,10]}, | |
"62":{"T":66,"emit":"myhome/in/a08","map":[0,1024,0,1024,10]}, | |
"63":{"T":66,"emit":"myhome/in/a09","map":[0,1024,0,1024,10]}, | |
"64":{"T":66,"emit":"myhome/in/a10","map":[0,1024,0,1024,10]}, | |
"65":{"T":66,"emit":"myhome/in/a11","map":[0,1024,0,1024,10]}, | |
"66":{"T":0,"emit":"myhome/in/d12"}, | |
"67":{"T":0,"emit":"myhome/in/d13"}, | |
"68":{"T":0,"emit":"myhome/in/d14"}, | |
"69":{"T":0,"emit":"myhome/in/d15"}, | |
"10":{"T":15,"emit":"myhome/s_out/airq1"}, | |
"20":{"T":16,"emit":"myhome/s_out/humidity1"} | |
} | |
} | |
| |
</code> | |