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

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


конфигурирование

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
конфигурирование [2021/09/10 04:12]
194.209.25.110 старая версия восстановлена (2021/09/04 10:52)
конфигурирование [2023/10/22 01:27] (текущий)
Admin [Настройка объектов (items)]
Строка 1: Строка 1:
-==== Boot sequence: ====+==== Основные разделы конфигурационного файла ==== 
 +Конфигурационный файл позволяет настроить контроллер lighthub конкретно для выполнения Вашей задачи. Может быть загружен в контроллер разными способами - портал lazyhome.ru/portal, веб-интерфейс контроллера, http API, плагин браузера. 
  
-  * Trying to load JSON config from NVRAM. If config is valid JSON structure - start to operating (to avoid dependance from network and allow local control) +Подробности тут [[как_lighthub_работает_с_файлом_конфигурации]]
-  * Trying to retrieve MAC address, stored in NVRAM. If ok - using retrieved MAC. If not - using CUSTOM_FIRMWARE_MAC (see compilers directives). If not configured - using hardcoded DEFAULT_FIRMWARE_MAC = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0} +
-  * Starting LAN with DHCP or with static ip if configured +
-  * Trying to load JSON config from  address "http://MY_CONFIG_SERVER/12-12-12-12-12-12.config.json", where "12-12....12" is controller's MAC address and MY_CONFIG_SERVER - compiler's directive. If not configured = lazyhome.ru used +
-  * After parsing of loaded config, performing re-initialization of objects, except number of DMX channels. There is possible to store loaded config in NVRAM after some testing using "save" cli command. +
-  * Connecting to MQTT server according stored or retrieved config. +
-  * Subscribing to OUTTOPIC (/myhome/s_out/# by default) for 5 sec. Retrieving and executing all persistent topic (restore recent values) +
-  * Unsubscribe from OUTTOPIC, Subscribe for INTOPIC (/myhome/in/# by default) and start processing normal incoming event flow+
  
-==== Operation ==== +Конфигурационный файл имеет формат JSON. На первом уровне файла конфигурации задаются следующие объекты:
-During normal operation, controller:+
  
-  * Accepting incoming MQTT message flow and retrieving item name from topic name. For example, /myhome/in/item1 will control "item1" 
-  * Controlling items. 
-  * Most commands, accepted on INTOPIC passed throw to OUTTOPIC after interpretation. Interpretation is converting of high level commands like ON OFF HALT REST to low-level commands with real values. OUTTOPIC publishing uses "persistent" flag to allow retrieving recent status from MQTT broker after restart of controller 
-  * Polling: Normally, Modbus devices and 1-wire thermometers are polled with reasonable interval. Retrieved values are publishing to OUTTOPIC 
  
-==== Useful CLI commands====+^имя ^ назначений ^ параметры ^ пример ^ 
 +|mqtt| настройка параметров MQTT|[имя_контроллера,ip_брокера,логин,пароль] см [[работа_с_mqtt]] NB: пароль, также, может быть определен через [[CLI интерфейс]], чтобы не компрометировать в открытом файле конфигурации|"mqtt":["lighthub-07","m2m.eclipse.org"]| 
 +|ow| настройка сенсоров 1-wire|в качестве параметра - JSON объект, содержащий в качестве ключа адрес термометра а в качестве значения - execObj (см ниже), определяющий куда передать показания термометра| [[конфигурирование#настройка_температурных_датчиков_1-wire]]| 
 +|syslog|Настройка логгирования контроллера через UDP syslog на сторонний сервер|первый элемент массива - ip адрес сервера логгирования, второй (опционально) порт|"syslog":["192.168.88.2"]| 
 +|dmx|Настройка DMX выхода|[кол-во каналов], для mega2560 возможна такая настройка: [выходной_pin_DMX, кл-во-каналов]|"dmx":[80],
 +|dmxin|настройка входа DMX|масссив названий каналов типа DMXRGBW|"dmxin":["led5","led6","led7","led8"]| 
 +|artnet|Настройка Artnet шлюза|[начальный DMX канал (соответствует 1-му каналу artnet),конечный DMX канал|"artnet":[48,67]| 
 +|topics|задает настройки топиков MQTT.|root: корневой топик (myhome по умолчанию), bcst: броадкаст топик (in по-умолчанию) | "topics":{"root":"flat2"} см [[работа_с_mqtt#пример_настройки_mqtt_в_json_конфигурации]]| 
 +|modbus|Задает справочник обьектов modbus|описание тут|[[настройка_modbus]]| 
 +|in|задает настройку входов контроллера|описание тут|[[аналоговые_входы]] [[несколько_кнопок_на_одном_входе]]| 
 +|items|Основной раздел конфигурации. Задает список обьектов, их настройку и взаимосвязь||описание ниже|
  
-  * mac 11:22:33:44:55:66  - writing custom MAC address to NVRAM 
-  * save - writing currently loaded config from RAM to NVRAM 
-  * get <servername> - retrieve config from server and store servername to NVRAM (default servername: lazyhome.ru) 
-  * ip [ip[ dns[ gw[ subnet]]]] - configure and save to NVRAM static ip. if no parameters - DHCP will be used 
-  * load - load config from NVRAM 
-  * kill - test watchdog timer (normally, causes reboot) 
  
-CLI commands must be send via serial port with 115200 baud rate / 8N1 params: 8 data bitsno parity bit1 stop bit.+====Что такое {execObj}==== 
 +Прежде чем далее описывать структуру файла настройкинеобходимо определить такое понятие как {execObj}которое довольно часто будет использоваться далее. 
 +Это JSON объект, или массив JSON обьектов, который может принимать на вход какое-либо значение или команду в унифицированном формате контроллера, а далее, предпринимать с этой информацией какие то действия. А именно: 
 +  * Выдавать в MQTT на один или несколько топиков 
 +  * Передавать на вход другим объектам контроллера 
 +  * Передавать по шине CAN (скоро)
  
-Example via shell+параметры
-<code> + 
-> stty -/dev/cu.usbmodem146101 ispeed 115200 ospeed 115200 -parenb cs8 cstopb +  * emit MQTT топик в который отправить значение из параметра ecmd (если в параметре отсутствует он будет дополнен слева префиксом статусного топика) 
-> echo "ip" > /dev/cu.usbmodem146101 +  * item имя локального устройства из items (может содержать суффикс для указания того, какое именно свойство объекта надо изменитьНапример: «lamp/hue» или «lamp/sat»)
-> cat /dev/cu.usbmodem146101 +
-</code>+
  
-Same can be done via GUI e.g. from Arduino IDE (serial monitor). Serial port must be configured (MacOSX config file ~/Library/Arduino15/preferences.txt)+Примеры:
 <code> <code>
-serial.databits=8 +{"emit":"edem/edem3/p_zal3/mode"} 
-serial.stopbits=1 +[{"emit":"t_bath3","item":"tbath3"},{"item":"p_bedr3/floor_temp"}]
-serial.parity=N +
-serial.debug_rate=115200 +
-serial.line_ending=1+
 </code> </code>
  
-The example of config files you can find in config folder +====Настройка температурных датчиков 1-wire==== 
-Notein real configs comments are not allowed +формат"device#":{execObj}
-Below is brief explanation of basic configuration values:+
  
 +Ниже пример конфигурации (в реальном файле конфигурации комментарии не допускаются)
 <code> <code>
 { {
Строка 60: Строка 53:
  
 </code> </code>
-// Every Lighthub's object are "item": lampdimmertermostatrelayled etc +В данном примере определены два термодатчика. Температура первого будет передаваться в статусный топик myhome/s_out/t_entrа второго - в топик myhome/s_out/t_bath1 икроме тогона внутренний обьект h_bath (по-умолчаниюв суффикс val) 
-// item is accessible via mqtt bus as /myhome/in/itemname+ 
 +====Настройка объектов (items)==== 
 +Каждый объект lightHub описывается в разделе items конфигурационного файла в виде JSON массива
  
 <code> <code>
-#define I_TYPE 0 //Type of item +"itemname":[<#type>,<itemConfig>,<set>,<cmd>]
-#define I_ARG  1 //Chanel-type depended argument or array of arguments (pinaddress etc) +
-#define I_VAL  2 //Latest preset (int or array of presets) +
-#define I_CMD  3 //Latest CMD received +
-#define I_EXT  4 //Chanell-depended extension - array+
 </code> </code>
-There are two mandatory elements in item's array: type and address 
-1-st element of array is item type 
  
-# Item types: +Только первые два элемента массива -  тип и конфигурация, являются обязательными 
-^of type ID Note Parameters + 
-|0| DIMMER|DMX out 1 ch|| +^номер элемента массива ^назначение^ 
-|1| RGBW  |DMX out 4 ch|| +|1|тип обьекта. Это может быть как число из таблицы ниже так и строка, содержащая аббревиатуру типа|  
-|2| RGB   |DMX out 3 ch|| +|2|конфигурация объекта. В зависимости от его типа это может быть как число так и массив параметров (pins, address etc)| 
-|3| PWM   |PWM output directly to PIN|| +|3|текущая уставка (int or array of presets)| 
-|4| MODBUS|Modbus AC Dimmer|| +|4|текущая команда| 
-|5| THERMO|Simple ON/OFF thermostat|| +  
-|6| RELAY |ON_OFF relay output|| + 
-|7| GROUP |Group pseudochannel|| +^# типа аббревиатура типа описание ^ конфигурация объекта 
-|8| VCTEMP|Vacom PID thermo - regulator (Ventilation set)|| +|0| DMX|DMX out 1-5 ch|стартовый номер DMX канала или массив каналов
-|9| VC    |Vacom modbus motor regulator|| +|1| DMXRGBW  |DMX out 4 ch|стартовый номер DMX канала
-|10|AC 10|Air Conditioner Haier|| +|2| DMXRGB   |DMX out 3 ch|| 
-|11|SPILED | SPI LED|| +|3| PWM   |PWM output 1-5 каналов|номер пина или массив пинов
-|12|MOTOR |Motorized air gateway|| +|4| MBUSDIM|Modbus AC Dimmer (legacy)|| 
-|13|PID   |PID regulator|| +|5| THERMO|Simple ON/OFF thermostat|номер пина
-|14|MBUS  |Universal Modbus channel|| +|6| RELAY |ON_OFF relay output|номер пина
-|18|MULTIVENT |Multiroom ventilation set||+|7| GROUP |Group pseudochannel|массив строк с названиями каналов в группе
 +|8| VCTEMP|Vacom PID thermo - regulator (Ventilation set)|"fm_t":[8,"fm"]
 +|9| MBUSVC    |Vacom modbus motor regulator(legacy)|"fm":[9,[10,"a_ext"]]
 +|10|ACHAIER|Air Conditioner Haier|"ac_3":[10,[<port#>,{"mode":{"emit":"mode"},"speed":{"emit":"speed"},"temp":{"emit":"set"}}]]}
 +|11|SPILED | SPI LED strip|| 
 +|12|MOTOR |Motorized air gateway with feedback resistor|"airgate":[12,[<pwm_pin>,<pin>,<pin_feedback>,<feedbackOffVal>,<feedbackOnVal>,<maxMotorTimeMs>]],
 +|13|PID   |PID regulator|[ [P,I,D,dT,alarmTO, alarmVal, outMin, outMax],{Output execObj},{Cascade execObj}]
 +|14|MBUS  |Universal Modbus channel|"t_balk3":[14,[<addr>,<"template">,{<"param1">:{execObj},...}]]| 
 +|15|UARTBRDG |Bridge between 2 UARTS with reporting PDUs to Wireshark via UDP|| 
 +|16|RELAYPWM   |Slow PWM relay to control objects with inertia| 
 +|17|DMXRGBWW  |DMX RGBWW channel (warm&cold white)|| 
 +|18|VENTS |Multiroom ventilation set|
 +|19|ELEVATOR |Reserved|| 
 +|20|COUNTER   |Generic counter| "pumpctr":[20,[0.02,1.2]],"gasctr":[20,0]| 
 +|21|HUM  |Humidifier (reserved)|| 
 +|22|MERCURY|Mercury energy meter/RS485 interface|"merc":[22,[<addr>,9600,"8N1",2,[2,2,2,2,2,2],10000]]|
  
  
    
-Address is channel depended. Pin# for relay, DMX address for DMX-512 channel, array for Modbus channel+Address is channel depended. Pin# for relay, DMX address for DMX-512 channel, array for Modbus channel
 +In case of DMX item note that addressees are continuous numbering between decoders and start address of each decoders configurable by jumpers. E.g. if you have two 24-ch decoders and want to control all 48 channels then you must set address "1" on the first decoder and "25" on the second.
  
 <code>  <code> 
Строка 106: Строка 111:
         "h_entr" :[5,35,32],         "h_entr" :[5,35,32],
         "h_balk1":[5,25,28],         "h_balk1":[5,25,28],
-        "h_balk2":[5,27,28],+        "h_balk2":["THERMO",27,28],
 // Examples of relay items [type, pin, preset, default command] // Examples of relay items [type, pin, preset, default command]
         "h_boil1":[6,23],             // simple relay on pin 23         "h_boil1":[6,23],             // simple relay on pin 23
-        "h_boil2":[6,28,1,1],         // relay, turned on by default (after reboot)+        "h_boil2":["RELAY",28,1,1],         // relay, turned on by default (after reboot)
         "h_polotenc":[6,26,1,1],         "h_polotenc":[6,26,1,1],
         "spots_en":[6,22,1,1],         "spots_en":[6,22,1,1],
Строка 117: Строка 122:
 </code> </code>
  
-===== Inputs configuration chapter =====+===== конфигурирование входов =====
  
 <code> <code>
Строка 155: Строка 160:
 </code> </code>
  
-==== Modbus channel ====+==== Modbus channel v1 ====
  
-CurrentlyLighthub working with Vacom 10 frequency driver (from Danfos) via Modbus RTU and allows control frequency (item type 9)  and  internal PID controller  (item type used for Temperature control) + 
-Additionally, performing polling parameters from Vacom and publishing in JSON format to status MQTT Topic+данный тип канала устарелдрайвер modbus v2 дает существенно бОльшую гибкость, см [[настройка_modbus]]  
 +Тем не. менее, этот тип канала может использоваться для простых применений, когда надо сделать простой проброс канала в регистр устройства Modbus с линейным пересчетом значения. 
 + 
 +===настройка канала типа №4 Modbus Dimmer===
  
 If you just need to write some Modbus register on MQTT command & poll it back with simple scaling  - you can use item type #4 (Modbus dimmer) If you just need to write some Modbus register on MQTT command & poll it back with simple scaling  - you can use item type #4 (Modbus dimmer)
Строка 176: Строка 184:
  
 Item notation:  Item notation: 
- * 4 - Modbus dimmer item type +  * 4 - Modbus dimmer item type 
- +  * Param1: = 96 - Decimal address of modbus device 
- * Param1: = 96 - Decimal address of modbus device +  * Param2: = 0 - Modbus register to write (and read while polling) 
- * Param2: = 0 - Modbus register to write (and read while polling) +  * Param3: = 0 - mask (optional. Default value “-1”  - see below for explanations) 
- * Param3: = 0 - mask (optional. Default value “-1”  - see below for explanations) +  * Param4:= 255 - Maximum Value for scaling MQTT input value = 100  to register value  (Optional. Default MaxValue 0x3f. It is equivalent of “100" on input.  If value == 0 - no scaling)
- * Param4:= 255 - Maximum Value for scaling MQTT input value = 100  to register value  (Optional. Default MaxValue 0x3f. It is equivalent of “100" on input.  If value == 0 - no scaling)+
  
 Mask: Mask:
Строка 189: Строка 196:
 if mask == -1 (or parameter omitted) - no register polling  if mask == -1 (or parameter omitted) - no register polling 
      
-Note: Serial line parameters for itemtype 4 is 9600:8N1 (look for “dimPar" and “MODBUS_SERIAL_BAUD” definitions  in  config.h if you need to change it) +Note: Serial line parameters for itemtype 4 is 9600:8N1 (look for “dimPar" and “MODBUS_SERIAL_BAUD” definitions  in  compilation options if you need to change it)  
 + 
 +=== Vacom 10 frequency driver=== 
 +См. также два устаревших типа Modbus каналов: 
 + 
 +Vacom 10 frequency driver (from Danfos) via Modbus RTU and allows control frequency (item type = 9)  and  Vacom internal PID controller  (item type = 8 - used for Temperature control) 
 +Additionally, performing polling parameters from Vacom and publishing in JSON format to status MQTT Topic
конфигурирование.1631236341.txt.gz · Последнее изменение: 2021/09/10 04:12 — 194.209.25.110