Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
конфигурирование [2021/05/06 22:26] 95.221.162.48 [Item types:] |
конфигурирование [2023/10/22 01:27] (текущий) Admin [Настройка объектов (items)] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | # Boot sequence: | + | ==== Основные разделы конфигурационного файла ==== |
+ | Конфигурационный файл позволяет настроить контроллер lighthub конкретно для выполнения Вашей задачи. Может быть загружен в контроллер разными способами - портал lazyhome.ru/ | ||
- | * 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 " | + | |
- | * 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 " | + | |
- | * Connecting to MQTT server according stored or retrieved config. | + | |
- | * Subscribing to OUTTOPIC (/ | + | |
- | * Unsubscribe from OUTTOPIC, Subscribe for INTOPIC (/ | + | |
- | # Operation | + | Конфигурационный файл имеет формат JSON. На первом уровне файла конфигурации задаются следующие объекты: |
- | During normal operation, controller: | + | |
- | * Accepting incoming MQTT message flow and retrieving item name from topic name. For example, / | ||
- | * 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 " | ||
- | * Polling: Normally, Modbus devices and 1-wire thermometers are polled with reasonable interval. Retrieved values are publishing to OUTTOPIC | ||
- | # Useful | + | ^имя ^ назначений ^ параметры ^ пример ^ |
+ | |mqtt| настройка параметров MQTT|[имя_контроллера, | ||
+ | |ow| настройка сенсоров 1-wire|в качестве параметра - JSON объект, | ||
+ | |syslog|Настройка логгирования контроллера через UDP syslog на сторонний сервер|первый элемент массива - ip адрес сервера логгирования, | ||
+ | |dmx|Настройка DMX выхода|[кол-во каналов], | ||
+ | |dmxin|настройка входа DMX|масссив названий каналов типа DMXRGBW|" | ||
+ | |artnet|Настройка Artnet шлюза|[начальный DMX канал (соответствует 1-му каналу artnet), | ||
+ | |topics|задает настройки топиков MQTT.|root: корневой топик (myhome по умолчанию), | ||
+ | |modbus|Задает справочник обьектов modbus|описание тут|[[настройка_modbus]]| | ||
+ | |in|задает настройку входов контроллера|описание тут|[[аналоговые_входы]] [[несколько_кнопок_на_одном_входе]]| | ||
+ | |items|Основной раздел конфигурации. Задает список обьектов, | ||
- | * mac 11: | ||
- | * save - writing currently loaded config from RAM to NVRAM | ||
- | * get < | ||
- | * 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 bits, no parity bit, 1 stop bit. | + | ====Что такое {execObj}==== |
+ | Прежде чем далее описывать структуру файла настройки, необходимо определить такое понятие как {execObj}, которое довольно часто будет использоваться далее. | ||
+ | Это JSON объект, | ||
+ | * Выдавать в MQTT на один или несколько топиков | ||
+ | * Передавать на вход другим объектам контроллера | ||
+ | * Передавать по шине CAN (скоро) | ||
- | Example via shell: | + | параметры: |
- | ``` | + | |
- | > stty -f / | + | |
- | > echo " | + | |
- | > cat / | + | |
- | ``` | + | |
- | Same can be done via GUI e.g. from Arduino IDE (serial monitor). Serial port must be configured (MacOSX config file ~/Library/Arduino15/ | + | * emit - MQTT топик в который отправить значение из параметра ecmd (если в параметре отсутствует / он будет дополнен слева префиксом статусного топика) |
- | ``` | + | * item - имя локального устройства из items (может содержать суффикс для указания того, какое именно свойство объекта надо изменить. Например: |
- | serial.databits=8 | + | |
- | serial.stopbits=1 | + | |
- | serial.parity=N | + | |
- | serial.debug_rate=115200 | + | |
- | serial.line_ending=1 | + | |
- | ``` | + | |
- | The example of config files you can find in config folder | + | Примеры: |
- | Note: in real configs comments are not allowed | + | < |
- | Below is brief explanation of basic configuration values: | + | {" |
+ | [{" | ||
+ | </ | ||
- | ``` | + | ====Настройка температурных датчиков 1-wire==== |
+ | формат: | ||
+ | |||
+ | Ниже пример конфигурации (в реальном файле конфигурации комментарии не допускаются) | ||
+ | < | ||
{ | { | ||
" | " | ||
Строка 59: | Строка 52: | ||
}, | }, | ||
- | ``` | + | </ |
+ | В данном примере определены два термодатчика. Температура первого будет передаваться в статусный топик myhome/ | ||
- | // Every Lighthub' | + | ====Настройка объектов (items)==== |
- | // item is accessible via mqtt bus as / | + | Каждый объект lightHub описывается в разделе items конфигурационного файла в виде JSON массива |
- | ``` | + | < |
- | #define I_TYPE 0 //Type of item | + | " |
- | #define I_ARG 1 //Chanel-type depended argument or array of arguments (pin, address etc) | + | </code> |
- | #define I_VAL 2 //Latest preset (int or array of presets) | + | |
- | #define I_CMD 3 //Latest CMD received | + | |
- | #define I_EXT 4 // | + | |
- | ``` | + | |
- | 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| CH_DIMMER|DMX out 1 ch|| | + | ^номер элемента массива ^назначение^ |
- | |1| CH_RGBW | + | |1|тип обьекта. Это может быть как число из таблицы ниже так и строка, |
- | |2| CH_RGB | + | |2|конфигурация объекта. В зависимости от его типа это может быть как число так и массив параметров (pins, address etc)| |
- | |3| CH_PWM | + | |3|текущая уставка (int or array of presets)| |
- | |4| CH_MODBUS|Modbus AC Dimmer|| | + | |4|текущая команда| |
- | |5| CH_THERMO|Simple ON/OFF thermostat|| | + | |
- | |6| CH_RELAY | + | |
- | |7| CH_GROUP | + | ^# типа |
- | |8| CH_VCTEMP|Vacom PID thermo - regulator (Ventilation set)|| | + | |0| DMX|DMX out 1-5 ch|стартовый номер DMX канала или массив каналов| |
- | |9| CH_VC | + | |1| DMXRGBW |
- | |10| CH_AC 10|Air Conditioner Haier|| | + | |2| DMXRGB |
- | |11| CH_SPILED | + | |3| PWM |PWM output |
- | |12| CH_MOTOR | + | |4| MBUSDIM|Modbus AC Dimmer |
- | |13| CH_PID | + | |5| THERMO|Simple ON/OFF thermostat|номер пина| |
- | |14| CH_MBUS | + | |6| RELAY |ON_OFF relay output|номер пина| |
- | |18| CH_MULTIVENT | + | |7| GROUP |Group pseudochannel|массив строк с названиями каналов в группе| |
+ | |8| VCTEMP|Vacom PID thermo - regulator (Ventilation set)|" | ||
+ | |9| MBUSVC | ||
+ | |10|ACHAIER|Air Conditioner Haier|" | ||
+ | |11|SPILED | ||
+ | |12|MOTOR |Motorized air gateway | ||
+ | |13|PID |PID regulator|[ [P, | ||
+ | |14|MBUS | ||
+ | |15|UARTBRDG |Bridge between 2 UARTS with reporting PDUs to Wireshark via UDP|| | ||
+ | |16|RELAYPWM | ||
+ | |17|DMXRGBWW | ||
+ | |18|VENTS |Multiroom ventilation set|| | ||
+ | |19|ELEVATOR |Reserved|| | ||
+ | |20|COUNTER | ||
+ | |21|HUM | ||
+ | |22|MERCURY|Mercury energy meter/RS485 interface|" | ||
- | 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 " | ||
- | ``` | + | < |
- | " | + | " |
// Example of array | // Example of array | ||
" | " | ||
Строка 107: | Строка 111: | ||
" | " | ||
" | " | ||
- | " | + | " |
// Examples of relay items [type, pin, preset, default command] | // Examples of relay items [type, pin, preset, default command] | ||
" | " | ||
- | " | + | " |
" | " | ||
" | " | ||
Строка 116: | Строка 120: | ||
" | " | ||
}, | }, | ||
- | ``` | + | </ |
- | # Inputs configuration chapter | + | ===== конфигурирование входов ===== |
- | ``` | + | < |
// " | // " | ||
// " | // " | ||
Строка 154: | Строка 158: | ||
} | } | ||
} | } | ||
- | ``` | + | </ |
- | # Modbus channel | + | ==== Modbus channel |
- | Currently, Lighthub working with Vacom 10 frequency driver (from Danfos) via Modbus | + | |
- | Additionally, | + | данный тип канала устарел, драйвер modbus v2 дает существенно бОльшую гибкость, |
+ | Тем не. менее, этот тип канала может использоваться для простых применений, | ||
+ | |||
+ | ===настройка канала типа №4 - Modbus Dimmer=== | ||
If you just need to write some Modbus register on MQTT command & poll it back with simple scaling | If you just need to write some Modbus register on MQTT command & poll it back with simple scaling | ||
Config example (refer https:// | Config example (refer https:// | ||
- | ``` | + | < |
{ | { | ||
" | " | ||
Строка 171: | Строка 178: | ||
" | " | ||
} | } | ||
- | ``` | + | </ |
Note: this config example available at URL http:// | Note: this config example available at URL http:// | ||
Строка 177: | Строка 184: | ||
Item notation: | Item notation: | ||
- | * 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” |
- | * Param3: = 0 - mask (optional. Default value “-1” | + | * Param4:= 255 - Maximum Value for scaling MQTT input value = 100 to register value (Optional. Default MaxValue 0x3f. It is equivalent of “100" |
- | * Param4:= 255 - Maximum Value for scaling MQTT input value = 100 to register value (Optional. Default MaxValue 0x3f. It is equivalent of “100" | + | |
Mask: | Mask: | ||
Строка 190: | Строка 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" | + | Note: Serial line parameters for itemtype 4 is 9600:8N1 (look for “dimPar" |
+ | |||
+ | === 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 | ||
+ | Additionally, |