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

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


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

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


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

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

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

  
  {
"in":{
          "1":{"T":5,"emit":"myhome/s_out/1"},
          "2":{"T":6,"emit":"myhome/s_out/2"},
          "17":{"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"}
         }
  }
  
примеры_конфигураций.1585786285.txt.gz · Последнее изменение: 2020/04/02 03:11 — 192.168.88.1