Node-RED:Руководство пользователя/Настройки
Настройки[1]
В этой статье будет рассказываться о свойствах для настройки Node-RED.
Если Node-RED запускается в виде независимого приложения, то эти свойства будут считываться из файла «settings.js». Поиск этого файла советуем вести следующем порядке:
- Его месторасположение задано с помощью аргумента командной строки «--settings|-s»
- Он находится в директории пользователя, если его месторасположение было задано с помощью аргумента командной строки «--userDir|-u»
- Он в директории пользователя, используемой по умолчанию: «$HOME/.node-red/settings.js»
- Он в директории, куда был установлен Node-RED
Вместе с Node-RED по умолчанию идет файл «settings.js», который будет использоваться, если пользователь не предоставит Node-RED файл с собственными настройками. Этот исходный файл (вот ссылка на него на GitHub) можно использовать в качестве отправной точки для создания собственного файла настроек.
Если Node-RED встроен в другое приложение, настройки задаются с помощью RED.init(). Однако во встроенном режиме некоторые свойства игнорируются, т.к. вместо них используются свойства приложения, в которое Node-RED был встроен.
Настройки среды выполнения
- «flowFile»
- Файл, используемый для хранения потоков. По умолчанию: «flows_<название_хоста>.json»
- «userDir»
- Директория для хранения всех пользовательских данных вроде потока, учетных данных и всех библиотечных данных. По умолчанию: «$HOME/.node-red»
- «nodesDir»
- Директория для поиска дополнительно установленных нод. По умолчанию: «$HOME/.node-red/nodes», но в этом свойстве можно задать поиск в дополнительной директории, благодаря чему ноды можно установить вне места установки Node-RED
- «uiHost»
- «uiPort»
- «httpAdminRoot»
- «httpAdminAuth»
- Устарело (см. «adminAuth»).
- Активирует базовую HTTP-аутентификацию UI редактора Node-RED:
httpAdminAuth: {user:"nol", pass:"5f4dcc3b5aa765d61d8327deb882cf99"}
- Свойство «pass» – это MD5-хэш пароля. Чтобы сгенерировать кэш, можно воспользоваться командой ниже:
node -e "console.log(require('crypto').createHash('md5').update('YOUR PASSWORD HERE','utf8').digest('hex'))"
- Только для работы в независимом режиме.
- «httpNodeRoot»
- «httpNodeAuth»
- Активирует базовую HTTP-аутентификацию. Формат см. в «httpAdminAuth».
- «httpRoot»
- «https»
- Только для работы Node-RED в независимом режиме.
- «disableEditor»
- «httpStatic»
- Только для работы Node-RED в независимом режиме.
- «httpStaticAuth»
- Активирует базовую HTTP-аутентификацию для статического веб-контента. Формат см. в «httpAdminAuth».
- «httpNodeCors»
- «httpNodeMiddleware»
- Здесь задается HTTP-функция промежуточной обработки, добавляемая ко всем нодам «http in». Позволяет задать любой код, необходимый этим нодам (например, аутентификацию). Формат для функции промежуточной обработки см. тут.
httpNodeMiddleware: function(req,res,next) { // Здесь пишем код, выполняемый при запросе. // Если запрос идет к релевантной ноде «http in», // обязательно вызываем функцию next(). }
- «logging»
- В данный момент поддерживается только логирование в консоль. В этом свойстве можно задать разные уровни логирования:
- «fatal» – сообщения только о тех ошибках, из-за которых приложением становится невозможно пользоваться
- «error» – сообщения об ошибках, считающихся фатальными при определенных запросах + сообщения «fatal»
- «warn» – сообщения о не фатальных ошибках + сообщения «error» и «fatal»
- «info» – общие данные о работе приложения + сообщения «warn», «error» и «fatal»
- «debug» – данные о работе приложения, но подробнее, чем в «info» + сообщения «info», «warn», «error» и «fatal»
- «trace» – очень подробная информация о работе приложения + сообщения «debug», «info», «warn», «error» и «fatal»
- В данный момент поддерживается только логирование в консоль. В этом свойстве можно задать разные уровни логирования:
- По умолчанию в этом свойстве стоит значение «info». Для встраиваемых устройств, имеющих небольшое количество flash-памяти, имеет смысл задать здесь настройку «fatal», чтобы минимизировать количество данных, записываемых на «диск».
Настройки редактора
- «adminAuth»
- Активирует защиту паролем для админского API и API редактора Node-RED. Более подробно читайте по этой ссылке.
- «paletteCategories»
- Задает порядок категорий в «палитре» Node-RED. Если какой-то категории в этом списке не будет, она будет добавлена в конце «палитры». Если в этом свойстве не будет задано ничего, будет задан порядок ниже, используемый по умолчанию:
['subflows', 'input', 'output', 'function', 'social', 'storage', 'analysis', 'advanced'],
Внешний вид редактора
В свойстве «editorTheme» можно изменить внешний вид редактора Node-RED. Все его подсвойства опциональны.
editorTheme: {
page: {
title: "Node-RED",
favicon: "/absolute/path/to/theme/icon",
css: "/absolute/path/to/custom/css/file"
},
header: {
title: "Node-RED",
// Чтобы удалить изображение, задайте здесь «null»:
image: "/absolute/path/to/header/image",
url: "http://nodered.org" // опциональный URL, к которому
// будет вести текст/картинка
// в «шапке» редактора Node-RED
},
deployButton: {
type:"simple",
label:"Save",
// Чтобы удалить изображение, задайте здесь «null»:
icon: "/absolute/path/to/deploy/button/image"
},
menu: { // Здесь можно скрыть ненужные меню, используя их ID.
// Полный список см. в «editor/js/main.js:loadEditor»:
"menu-item-import-library": false,
"menu-item-export-library": false,
"menu-item-keyboard-shortcuts": false,
"menu-item-help": {
label: "Alternative Help Link Text",
url: "http://example.com"
}
},
userMenu: false, // Скрыть меню пользователя,
// даже если включена настройка «adminAuth»:
login: {
// Изображение размером 256x256:
image: "/absolute/path/to/login/page/big/image"
}
},
Панель управления
- «ui»
- Если вы установили опциональные ноды «node-red-dashboard», здесь можно задать путь для них относительно пути, заданном в «httpRoot»:
ui : { path: “mydashboard” },
Настройка нод
В файле «settings.js» также можно задать настройки для разных типов нод:
- «functionGlobalContext»
- Для нод «Function». В этом свойстве можно задать объекты, которые будут доступны функциям нод «Function» в глобальном контексте. Например, если задать здесь:
functionGlobalContext: { osModule:require('os') }
- То затем вы сможете получить доступ к этому модулю в ноде «Function»:
var myos = global.get('osModule');
- Примечание: До выхода версии 0.13 доступ к глобальному контексту осуществлялся при помощи подсвойства «context»:
context.global.foo = "bar"; var osModule = context.global.osModule;
- Этот метод по-прежнему используется, но устарел в пользу функций global.get() и global.set(). Возможно, в будущих релизах Node-RED появится возможность постоянного хранения контекстных данных.
- «debugMaxLength»
- Для нод «Debug». Здесь можно задать максимальный размер (в символах) для любых сообщений, отправляемых на вкладку «Debug» на боковой панели. По умолчанию: «1000».
- «mqttReconnectTime»
- Для нод «MQTT». Здесь можно задать, сколько времени (в миллисекундах) пройдет, прежде чем будет предпринята попытка повторного MQTT-подключения. По умолчанию: «5000».
- «serialReconnectTime»
- Для нод «Serial». Здесь можно задать, сколько времени (в миллисекундах) пройдет, прежде чем будет предпринята попытка повторного подключения к последовательному порту. По умолчанию: «5000».
- «socketReconnectTime»
- Для нод «TCP». Здесь можно задать, сколько времени (в миллисекундах) пройдет, прежде чем будет предпринята попытка повторного подключения. По умолчанию: «10000».
- «socketTimeout»
- Для нод «TCP». Здесь можно задать время таймаута (в миллисекундах) для работы с серверным TCP-сокетом. По умолчанию: «120000».
См.также
Внешние ссылки