Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
конфигурирование [2019/01/09 02:37] farlake создано |
конфигурирование [2023/10/22 01:27] Admin [Настройка объектов (items)] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | # Boot sequence: | + | ==== Основные разделы конфигурационного файла ==== |
- | * 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 | + | |
- | * 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 | + | Подробности тут [[как_lighthub_работает_с_файлом_конфигурации]] |
- | 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 CLI commands: | + | Конфигурационный файл имеет формат JSON. На первом уровне файла конфигурации задаются следующие объекты: |
- | * 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) | + | |
- | 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: | ||
- | ``` | + | ^имя ^ назначений ^ параметры ^ пример ^ |
+ | |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|Основной раздел конфигурации. Задает список обьектов, | ||
+ | |||
+ | |||
+ | ====Что такое {execObj}==== | ||
+ | Прежде чем далее описывать структуру файла настройки, | ||
+ | Это JSON объект, | ||
+ | * Выдавать в MQTT на один или несколько топиков | ||
+ | * Передавать на вход другим объектам контроллера | ||
+ | * Передавать по шине CAN (скоро) | ||
+ | |||
+ | параметры: | ||
+ | |||
+ | * emit - MQTT топик в который отправить значение из параметра ecmd (если в параметре отсутствует / он будет дополнен слева префиксом статусного топика) | ||
+ | * item - имя локального устройства из items (может содержать суффикс для указания того, какое именно свойство объекта надо изменить. Например: | ||
+ | |||
+ | Примеры: | ||
+ | < | ||
+ | {" | ||
+ | [{" | ||
+ | </ | ||
+ | |||
+ | ====Настройка температурных датчиков 1-wire==== | ||
+ | формат: | ||
+ | |||
+ | Ниже пример конфигурации (в реальном файле конфигурации комментарии не допускаются) | ||
+ | < | ||
{ | { | ||
" | " | ||
Строка 38: | Строка 52: | ||
}, | }, | ||
- | ``` | + | </ |
+ | В данном примере определены два термодатчика. Температура первого будет передаваться в статусный топик myhome/ | ||
- | // Every Lighthub' | + | ====Настройка объектов (items)==== |
- | // item is accessible via mqtt bus as / | + | Каждый объект lightHub описывается в разделе items конфигурационного файла в виде JSON массива |
+ | |||
+ | < | ||
+ | " | ||
+ | </code> | ||
+ | |||
+ | Только первые два элемента массива - тип и конфигурация, | ||
+ | |||
+ | ^номер элемента массива ^назначение^ | ||
+ | |1|тип обьекта. Это может быть как число из таблицы ниже так и строка, | ||
+ | |2|конфигурация объекта. В зависимости от его типа это может быть как число так и массив параметров (pins, address etc)| | ||
+ | |3|текущая уставка (int or array of presets)| | ||
+ | |4|текущая команда| | ||
+ | |||
+ | |||
+ | ^# типа ^ аббревиатура типа ^ описание ^ конфигурация объекта ^ | ||
+ | |0| DMX|DMX out 1-5 ch|стартовый номер DMX канала или массив каналов| | ||
+ | |1| DMXRGBW | ||
+ | |2| DMXRGB | ||
+ | |3| PWM |PWM output 1-5 каналов|номер пина или массив пинов| | ||
+ | |4| MBUSDIM|Modbus AC Dimmer (legacy)|| | ||
+ | |5| THERMO|Simple ON/OFF thermostat|номер пина| | ||
+ | |6| RELAY |ON_OFF relay output|номер пина| | ||
+ | |7| GROUP |Group pseudochannel|массив строк с названиями каналов в группе| | ||
+ | |8| VCTEMP|Vacom PID thermo - regulator (Ventilation set)|"fm_t":[8," | ||
+ | |9| MBUSVC | ||
+ | |10|ACHAIER|Air Conditioner Haier|" | ||
+ | |11|SPILED | SPI LED strip|| | ||
+ | |12|MOTOR |Motorized air gateway with feedback resistor|" | ||
+ | |13|PID | ||
+ | |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|" | ||
- | ``` | ||
- | #define I_TYPE 0 //Type of item | ||
- | #define I_ARG 1 // | ||
- | #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: | ||
- | ``` | ||
- | #define CH_DIMMER 0 //DMX out 1 ch | ||
- | #define CH_RGBW | ||
- | #define CH_RGB | ||
- | #define CH_PWM | ||
- | #define CH_MODBUS | ||
- | #define CH_THERMO | ||
- | #define CH_RELAY | ||
- | #define CH_GROUP | ||
- | #define CH_VCTEMP | ||
- | #define CH_VC 9 //Vacom modbus motor regulator | ||
- | ``` | ||
- | 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 | ||
" | " | ||
Строка 79: | Строка 111: | ||
" | " | ||
" | " | ||
- | " | + | " |
// Examples of relay items [type, pin, preset, default command] | // Examples of relay items [type, pin, preset, default command] | ||
" | " | ||
- | " | + | " |
" | " | ||
" | " | ||
Строка 88: | Строка 120: | ||
" | " | ||
}, | }, | ||
- | ``` | + | </ |
- | # Inputs configuration chapter | + | ===== конфигурирование входов ===== |
- | ``` | + | < |
// " | // " | ||
// " | // " | ||
Строка 126: | Строка 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:// | ||
- | ``` | + | < |
{ | { | ||
" | " | ||
Строка 143: | Строка 178: | ||
" | " | ||
} | } | ||
- | ``` | + | </ |
Note: this config example available at URL http:// | Note: this config example available at URL http:// | ||
Строка 149: | Строка 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: | ||
Строка 162: | Строка 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, |