mirror of
https://github.com/anklimov/lighthub
synced 2026-10-28 11:15:00 +00:00
Frozen copy of the official wiki (lazyhome.ru) used as the audit reference while the repo documentation is brought in line with the code.
141 lines
8.3 KiB
Plaintext
141 lines
8.3 KiB
Plaintext
Для того, чтобы настроить Контроллер умного дома 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 команду <code>get <MY_CONFIG_SERVER></code>
|
||
Хотя это не так удобно.
|
||
Для переключения контроллера на свой собственный MQTT брокер с общедоступного из примера, используйте настройку:
|
||
<code>
|
||
"mqtt":["controller_name","host",port,"user","pass"]
|
||
</code>
|
||
|
||
controller_name - уникальное имя вашего контроллера. К одному и тому же брокеру не может быть подключено два контроллера с одним и тем же именем
|
||
|
||
Несмотря на то, что в настройке можно задать пароль вашего брокера, мы не рекомендуем это делать по соображениям безопасности. MQTT пароль желательно задавать через CLI команду pwd
|
||
После этого он сохраняется в памяти вашего устройства (на ESP32 пока не сохраняется, но сделаем)
|
||
|
||
**Пример 1: Плата ESP32-EVB**
|
||
При нажатии на кнопку, переключаем оба реле и отправляем команду в MQTT топик __myhome/in/light__
|
||
|
||
Реле собраны в группу __relays__, но каждое доступно индивидуально
|
||
<code>
|
||
{
|
||
"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"]
|
||
}
|
||
</code>
|
||
|
||
**Пример 2: Сенсор CO2 CCS811 и влажности HD1080 на ESP82**
|
||
<code>
|
||
{
|
||
"in":{
|
||
"1":{"T":5,"emit":"myhome/s_out/1"},
|
||
"2":{"T":6,"emit":"myhome/s_out/2"}
|
||
},
|
||
"mqtt":["LHexample02","test.mosquitto.org"]
|
||
}
|
||
</code>
|
||
|
||
**Пример 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-летучих смесей
|
||
|
||
|
||
|
||
<code>
|
||
{
|
||
"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"]
|
||
}
|
||
|
||
</code>
|
||
|
||
**Пример 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>**
|
||
|
||
(это же соответствует настройкам по-умолчанию)
|
||
|
||
<code>
|
||
{
|
||
"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"},
|
||
}
|
||
}
|
||
|
||
</code>
|