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

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


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

Это старая версия документа!


При включении, контроллер сначала проверяет наличие записанного в памяти конфигурационного файла. (У нового контроллера конфигурационный файл отсутствует). Затем контроллер поднимает сетевые интерфейсы, подключается к интернету, идет на сайт lazyhome.ru и пытается получить конфигурационный файл JSON к своему МАС-адресу. Для создания этого файла заходим на lazyhome.ru в свой аккаунт и на странице https://www.lazyhome.ru/portal создаем конфигурационный файл для своего роутера по его МАС-адресу. Тогда контроллер его там увидит и сможет начать работать по нему.

Для того, чтобы настроить Контроллер умного дома LightHub также заходим на Личный Кабинет (после регистрации на сайте), Для того чтобы начать, можете просто использовать примеры ниже, а затем доработать их по своему усмотрению

Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки с сайта lazyhome.ru.

В простом случае этого достаточно.

Если мы хотим сохранить настройки в постоянную память контроллера

После того, как вы убедитесь, что все работает, можно будет сохранить настройки в постоянную память контроллера (команда 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 команду

get <MY_CONFIG_SERVER>

Контроллер запомнит ваш сервер и далее, будет загружать обновление конфига из этого источника. (на ESP32, STM, NRF пока не сохраняется, но сделаем)

Для переключения контроллера на свой собственный MQTT брокер с общедоступного из примера, используйте настройку:

"mqtt":["controller_name","host",port,"user","pass"]

controller_name - уникальное имя вашего контроллера. К одному и тому же брокеру не может быть подключено два контроллера с одним и тем же именем. Используя общедоступный брокер, не забывайте задать свое уникальное имя.

Несмотря на то, что в настройке можно задать пароль вашего брокера, мы не рекомендуем это делать по соображениям безопасности. MQTT пароль желательно задавать через CLI команду pwd После этого он сохраняется в памяти вашего устройства (на ESP32, STM, NRF пока не сохраняется, но сделаем)

Пример 1: Плата ESP32-EVB

При нажатии на кнопку, переключаем оба реле и отправляем команду в MQTT топик myhome/in/light

Реле собраны в группу relays, но каждое доступно индивидуально

{
  "items": {
    "relay1":[6,32],
    "relay2":[6,33],
    "relays":[7,["relay1","relay2"]]
    },
"in":{
          "34":{"item":"relays","emit":"myhome/in/light","scmd":"TOGGLE","rcmd":""}
         },
  "mqtt":["LHexample01","test.mosquitto.org"]
  }

Пример 2: Сенсор CO2 CCS811 и влажности HD1080 на ESP8266

Данный сенсор CO2 и влажности подключен к шине I2C, поэтому номера PIN ов не используются и могут быть произвольными (уникальными в рамках раздела in)

Дополнительно, считываем значение аналогового входа А0, преобразовываем к шкале 0-100 и подавляем шумы

  
  {
"in":{
          "1":{"T":5,"emit":"myhome/s_out/1"},
          "2":{"T":6,"emit":"myhome/s_out/2"},
          "54":{"T":64,"emit":"analog","map":[0,1024,0,100,5]}
         },
  "mqtt":["LHexample02","test.mosquitto.org"]
}

Пример 3: Управление диммером, RGBW лентой, реле из Node Red, контроль протечек и счетчик воды

(Node-Red логика для данного примера развернута тут). а тут дашборд. - я не заметил, что примеры в облаке кому-то нужны и перестал оплачивать хостинг. Сорри

Это наиболее сложный пример, использующий большинство возможностей контроллера LightHub 2.2 .

* Диммеры света подключены по DMX, Датчик протечки - к аналоговому входу A6 (PIN#60) а шаровый кран перекрытия воды висит на A15 (PIN#69) - (подробнее про то, какие аналоговым входам соответствуют номера PIN указано тут)

* Используется вход DMX. Предполагается что на вход подключена типовая сенсорная панель для локального управления четырьмя четырех-канальными RGBW лентами (адреса 1,5,9,13). Эти ленты отображаются на «led5»,«led6»,«led7»,«led8»

* Вход №38 напрямую управляет реле, которое подключено на выход 22

* Вход №39 - Master Switch - позволяет выключить сразу все или вернуть в первоначальное положение

* Потенциометр, подключенный на аналоговый вход A5 (PIN#59) одновременно с NodeRed управляет DMX диммером (см 5-й параметр массива map - если значение считанное с аналогового входа, изменилось более чем на 10 пунктов, значение преобразовывается из диапазона 0-850 в диапазон 0-100 и передается на диммер)

* на PIN#34 и 36 подключены контакты счетчиков воды (дальнейший подсчет потребления происходит в Node Red)

* Также, на шину I2C подключены датчики температуры-влажности-CO2-летучих смесей

NB: Конфигурация такого объема не уместится в Mega2560 и требует контроллера DUE

{
  "dmx":[3,60],
  "dmxin":["led5","led6","led7","led8"],
  "topics":{"root":"myhome"},
  "mqtt":["lh22-test-0","m2m.eclipse.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],
                "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],
		"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"]],
		"relays":[7,["relay","thermostat","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":"acount_hot"},
    "36":{"emit":"acount_cold"},
    "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"}
         }
  }
  

Пример 4: Два термостата, управляющие реле на выходах 24 и 36

Предустановлена температура 33 и 32 градуса

Термостаты собраны в группу «floor» через которую ими можно управлять одновременно. (И это настроено в Node-Red в зависимости от времени суток)

Третий термометр ничем не управляет, просто передает температуру в MQTT Также, на PIN29 повешено реле «relay», включаемое сразу после загрузки и управляемое входом #38

А на входе 41 - мастер-выключатель, при переключении которого в топик myhome/in/all передаются команды «HALT» и «REST» При этом они отработают как на данном контроллере (через MQTT и группу «all») так и на всех контроллерах, подписанных на myhome/in/all

Настройка topics позволяет определить как формируются MQTT топики у данного контроллера

Например тут: Топики для управления: myhome/in/<имя item> и myhome/LHexample03/<имя item>

Топик, в который отправляются статусы: myhome/s_out/<имя item>

(это же соответствует настройкам по-умолчанию)

{
  "mqtt":["LHexample03","test.mosquitto.org"],
  "topics":{"root":"myhome","bcst":"in","out":"s_out"},
  "ow":{
           
                 "284811170400005B":{"emit":"t_entr"},
                 "28FFF95533160459":{"emit":"t_bath1","item":"h_bath1"},
                 "286164123C776A7D":{"emit":"t_bath2","item":"h_bath2"}
        },
  "items":{
 
        "floor":[7,["h_bath1","h_bath2"]],
        "all":[7,["floor","relay","dimmer"]],
        "h_bath1":[5,24,33],
        "h_bath2":[5,36,32],
        "relay":[6,29,1,1]
         },
   "in":{
          "41":{"T":0,"emit":"myhome/in/all","scmd":"HALT","rcmd":"REST"},
          "38":{"item":"relay"},
         }
}

Конфиг, рекомендованный для тестирования и начала работы с LightHub 2.2

{
  "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"}
         }
  }
  
примеры_конфигураций.1631465524.txt.gz · Последнее изменение: 2021/09/12 19:52 — 5.9.77.102