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

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


примеры_конфигураций

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
примеры_конфигураций [2021/08/08 16:43]
85.10.207.195 старая версия восстановлена (2021/01/08 13:45)
примеры_конфигураций [2021/09/25 04:16] (текущий)
176.31.125.95 старая версия восстановлена (2019/05/05 10:48)
Строка 1: Строка 1:
-При включении, контроллер сначала проверяет наличие записанного в памяти конфигурационного файла. (У нового контроллера конфигурационный файл отсутствует). Затем контроллер поднимает сетевые интерфейсы, подключается к интернету, идет на сайт 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 к ноутбуку. Сохраняем через эмулятор терминала (например для Макбука использую minicom). +
- +
-$ minicom -D /dev/tty.usbmodem14201 +
-Контроллер отвечает: +
-'' +
-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                 +
-HTTP Status code: 404                                                            +
-Config retrieving failed                                                         +
-Loading Config from EEPROM       No stored config ''   +
- +
- +
- командой 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>
Строка 41: Строка 12:
 </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__
  
Строка 64: Строка 35:
 </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"]
Строка 80: Строка 46:
 </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**
  
  
Строка 250: Строка 140:
 </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> 
примеры_конфигураций.1628430191.txt.gz · Последнее изменение: 2021/08/08 16:43 — 85.10.207.195