Для того, чтобы настроить Контроллер умного дома LightHub достаточно просто зайти в [[https://www.lazyhome.ru/portal|Личный Кабинет]] (после регистрации на сайте), добавить свой контроллер, используя его MAC адрес и создать его настройку в JSON онлайн-редакторе.
Для того чтобы начать, можете просто использовать примеры ниже, а затем доработать их по своему усмотрению
Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки из Личного Кабинета. После того, как вы убедитесь, что все работает, можно будет сохранить настройки в постоянную память контроллера (команда save в CLI) и сделать его независимым от наличия доступа в интернет.
Для тех, кто не доверяет - можно разместить настройки на своем собственном http сервере, в корне. Формат имени файла: http://MY_CONFIG_SERVER/cnf/12-12-12-12-12-12.config.json
После этого выполнить через CLI команду get
Хотя это не так удобно.
Для переключения контроллера на свой собственный MQTT брокер с общедоступного из примера, используйте настройку:
"mqtt":["controller_name","host",port,"user","pass"]
controller_name - уникальное имя вашего контроллера. К одному и тому же брокеру не может быть подключено два контроллера с одним и тем же именем
Несмотря на то, что в настройке можно задать пароль вашего брокера, мы не рекомендуем это делать по соображениям безопасности. MQTT пароль желательно задавать через CLI команду pwd
После этого он сохраняется в памяти вашего устройства (на ESP32 пока не сохраняется, но сделаем)
**Пример 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 на ESP82**
{
"in":{
"1":{"T":5,"emit":"myhome/s_out/1"},
"2":{"T":6,"emit":"myhome/s_out/2"}
},
"mqtt":["LHexample02","test.mosquitto.org"]
}
**Пример 3: Управление диммером, RGBW лентой, реле из Node Red, контроль протечек и счетчик воды**
(Node-Red логика для данного примера [[http://lazyhome.mircloud.ru|развернута тут]]). [[http://lazyhome.mircloud.ru/ui|а тут дашборд]].
Это наиболее сложный пример.
Диммеры света подключены по DMX, Датчик протечки - к аналоговому входу A0 (PIN#54) а шаровый кран перекрытия воды висит на A15 (PIN#69) - (подробнее про то, какие аналоговым входам соответствуют номера PIN указано [[входы_выходы|тут]])
Вход №38 напрямую управляет реле, которое подключено на выход 22
Вход №41 - Master Switch - позволяет выключить сразу все или вернуть в первоначальное положение
Потенциометр, подключенный на аналоговый вход A7 (PIN#61) одновременно с NodeRed управляет DMX диммером (см 5-й параметр массива map - если значение считанное с аналогового входа, изменилось более чем на 10 пунктов, значение преобразовывается из диапазона 0-850 в диапазон 0-100 и передается на диммер)
на PIN#44 и 45 подключены контакты счетчиков воды (дальнейший подсчет потребления происходит в Node Red)
Также, на шину I2C подключены датчики температуры-влажности-CO2-летучих смесей
{
"dmx":[3,6],
"topics":{"root":"myhome"},
"items": {
"relay":[6,22],
"water":[6,69],
"dimmer":[0,1],
"led":[1,2],
"all":[7,["dimmer","water","relay","led"]]
},
"in":{
"41":{"T":0,"emit":"myhome/in/all","scmd":"HALT","rcmd":"REST"},
"54":{"T":66,"emit":"alock_leak","item":"water","map":[50,800],"scmd":"OFF","rcmd":"ON"},
"38":{"item":"relay"},
"61":{"T":66,"emit":"myhome/in/a07","item":"dimmer","map":[0,850,0,100,10]},
"10":{"T":5,"emit":"myhome/s_out/airq1"},
"20":{"T":6,"emit":"myhome/s_out/humidity1"},
"44":{"emit":"acount_hot"},
"45":{"emit":"acount_cold"}
},
"mqtt":["lighthub-07","m2m.eclipse.org"]
}
**Пример 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"},
}
}