Отладка адаптера
Адаптер — это программа на Node.js, поэтому её можно приостанавливать и пошагово выполнять с помощью стандартных инструментов. В Node.js есть встроенный отладчик; вам просто нужно получить к нему доступ.
Три пути, от рекомендуемого до последнего средства:
| Прочь | Когда |
|---|---|
| dev-сервер | В процессе разработки. Отдельная небольшая установка в папке проекта.dev-server debug См. dev-server . |
iobroker debug | Если ошибка возникает только в реальной системе, с её конфигурацией и данными. |
| Запуск вручную | Если вы хотите точно контролировать, как запускается этот процесс. |
Встроенный путь:iobroker debug
iobroker debug sayit
iobroker debug sayit.1
Команда ищет адаптер, запускает его основной файл с помощью инспектора узлов и подключается к нему. Если экземпляр уже запущен, она прерывает выполнение с сообщением: один экземпляр не может быть запущен дважды. Поэтому перед этим...iobroker stop sayit.0 .
| вариант | Эффект |
|---|---|
--wait | Вместо того чтобы позволить адаптеру завершить работу, программа немедленно останавливается на первой строке. Это необходимо, если ошибка возникает при запуске. |
--ip <adresse> | Адрес, по которому инспектор обязан явиться. Без указания конкретного адреса, только...127.0.0.1 . |
--port <nummer> | Инспекторский порт, или 9229. |
Вручную
То же самое, но без команды:
cd /opt/iobroker
iobroker stop sayit
node --inspect node_modules/iobroker.sayit/main.js 0 --debug
Важны две вещи:--inspect Он должен располагаться перед основным файлом; это опция самого Node.js. А адаптеру нужен номер экземпляра и--debug в качестве собственных аргументов, в противном случае он пытается войти в систему контроллера.
--inspect-brk вместо--inspect Оно останавливается на первой строке.
Подключиться через Chrome
В Chrome есть встроенный отладчик. В адресной строке:
chrome://inspect
Запущенный адаптер отображается в разделе «Удалённая цель» ; нажатие кнопки «Проверить» открывает инструменты разработчика. При этом отображаются точки останова и условия их установки.watch Доступны трассировка стека вызовов, отображение переменных и консоль, так что всё, что вам известно при отладке в браузере, доступно.
Если ioBroker запущен на другом компьютере, его адрес необходимо ввести один раз в разделе «Настройка» , используя тот же порт, что и при запуске.
Использование Visual Studio Code
Откройте папку адаптера и в.vscode/launch.json Создайте две конфигурации:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Adapter starten",
"program": "${workspaceFolder}/main.js",
"args": ["0", "--debug"]
},
{
"type": "node",
"request": "attach",
"name": "An laufenden Adapter anhängen",
"address": "127.0.0.1",
"port": 9229
}
]
}
Запуск адаптера приводит к его выполнению из VS Code. Для этого необходимо остановить экземпляр адаптера.iobroker stop <name>.0 ).

Подключение к работающему адаптеру означает подключение к уже подключенному адаптеру.--inspect Это также работает на другом компьютере. В этом случае вместо IP-адреса компьютера, на котором работает ioBroker, отображается именно он.127.0.0.1 .

С помощью WebStorg
Для работы WebStorm требуется конфигурация выполнения Node.js. Инструкции по ее настройке можно найти в разделе WebStorm .
Отладка по сети
Для подключения другого компьютера инспектор должен прослушивать доступный адрес:
node --inspect-brk=0.0.0.0:9229 node_modules/iobroker.sayit/main.js 0 --debug
Инспектор — это не интерфейс отладки, а открытая дверь. Любой, кто к нему подключится, сможет выполнить произвольный код на компьютере. Нет ни входа в систему, ни пароля.0.0.0.0 Поэтому его следует использовать только в доверенной сети, никогда не перенаправлять на маршрутизатор, а после этого адаптер следует перезагрузить в обычном режиме. Всем, кому необходимо использовать незащищенную сеть, следует перенаправить порт через SSH.ssh -L 9229:127.0.0.1:9229 benutzer@iobroker-rechner Затем инспектор остается на целевом компьютере.127.0.0.1 граница.