Это старая версия документа!
Для того, чтобы настроить Контроллер умного дома LightHub достаточно просто зайти в Личный Кабинет (после регистрации на сайте), добавить свой контроллер, используя его MAC адрес и создать его настройку в JSON онлайн-редакторе. Для того чтобы начать, можете просто использовать примеры ниже, а затем доработать их по своему усмотрению
Далее, надо просто подключить контроллер к роутеру, имеющему выход в Интернет. После перезапуска, контроллер загрузит настройки из Личного Кабинета. После того, как вы убедитесь, что все работает, можно будет сохранить настройки в постоянную память контроллера (команда save в CLI) и сделать его независимым от наличия доступа в интернет.
Для тех, кто не доверяет - можно разместить настройки на своем собственном http сервере, в корне. Хотя это не так удобно. Формат имени файла: http://MY_CONFIG_SERVER/cnf/12-12-12-12-12-12.config.json После этого выполнить через CLI команду
get <MY_CONFIG_SERVER>
Контроллер запомнит ваш сервер и далее, будет загружать обновление конфига из этого источника. (на ESP32, STM, NRF пока не сохраняется, но сделаем)
Для переключения контроллера на свой собственный MQTT брокер с общедоступного из примера, используйте настройку:
"mqtt":["controller_name","host",port,"user","pass"]
controller_name - уникальное имя вашего контроллера. К одному и тому же брокеру не может быть подключено два контроллера с одним и тем же именем. Используя общедоступный брокер, не забывайте задать свое уникальное имя.
Несмотря на то, что в настройке можно задать пароль вашего брокера, мы не рекомендуем это делать по соображениям безопасности. MQTT пароль желательно задавать через CLI команду pwd После этого он сохраняется в памяти вашего устройства (на ESP32, STM, NRF пока не сохраняется, но сделаем)
При нажатии на кнопку, переключаем оба реле и отправляем команду в 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"] }
{ "in":{ "1":{"T":5,"emit":"myhome/s_out/1"}, "2":{"T":6,"emit":"myhome/s_out/2"} }, "mqtt":["LHexample02","test.mosquitto.org"] }
(Node-Red логика для данного примера развернута тут). а тут дашборд.
Это наиболее сложный пример, использующий большинство возможностей контроллера LightHub 2.2 .
Диммеры света подключены по DMX, Датчик протечки - к аналоговому входу A6 (PIN#60) а шаровый кран перекрытия воды висит на A15 (PIN#69) - (подробнее про то, какие аналоговым входам соответствуют номера PIN указано тут)
Вход №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"}, "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"} }, "mqtt":["lh22-test-0","m2m.eclipse.org"] }
Предустановлена температура 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"}, } }