Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. развитие
    5. ioBroker разработка
    6. vscode и wsl: работа с кодом и отладка адаптера

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    vscode и wsl: работа с кодом и отладка адаптера

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      PeterVoronov last edited by PeterVoronov

      Всем привет.
      Хочу поделиться полученными знаниями.
      Сразу спасибо Илье Кирову за наводку.
      Далее - за основу брал этот топик - Adapter debuggen mit VSCode.

      Итак - идея - в wsl поставить линукс, в него иоброкер, но среду разработки и отладки использовать родную виндовую - vscode.

      Теперь опишу по порядку:

      • Ставим wsl на Windows 10. Важно - ставим wsl 2, ибо рекомендуется vscode, да и некоторые фичи, как я понимаю именно версии 2 - необходимы.

      • В процессе - ставите нужный дистрибутив линукса. Я брал Дебиан, но не важно.

      • Теперь важно - необходимо доработать дистрибутив напильником - а именно нам надо настроить wsl.conf.

        • Оттуда нам важно как минимум:
          options = "metadata,umask=22,fmask=11"
          
          но и остальное не помешает.
          Напомню, надо делать от рута.
          По умолчанию
          sudo su -
          
          для вашего пользователя работает.
        • Далее - апдейтим пакеты, и ставим node & iobroker.
        • Что сделал дальше, для удобства - добавляем вашего основного пользователя в группу iobroker:
          sudo usermod -a -G iobroker имя_пользователя
          
        • Сделал автостарт ssh и iobrokera, плюс маппинг портов в ссш, брокер, и на будущее - в отладку.
          • Для этого создал файл start_ssh_mapports.ps1
            wsl.exe -u root /etc/init.d/ssh start       
            wsl.exe -u root /etc/init.d/iobroker.sh start
            $wsl_ip = (wsl hostname -I).trim()        
            Write-Host "WSL Machine IP: ""$wsl_ip"""         
            netsh interface portproxy add v4tov4 listenport=22 connectport=22 connectaddress=$wsl_ip         
            netsh interface portproxy add v4tov4 listenport=8081 connectport=8081 connectaddress=$wsl_ip         
            netsh interface portproxy add v4tov4 listenport=9929 connectport=9929 connectaddress=$wsl_ip       
            
          • И добавил его "Планировщик заданий", условием старта после моего логина.
        • Теперь ssh и iobroker вам доступны по вашим сетевым интерфейсам в винде. Я использую 127.0.0.0:22 http://127.0.0.1:8081/ соответственно.
      • Теперь устанавливаем vscode.

        • Запускаем - и устанавливаем в нем ms-vscode-remote.remote-wsl, можно прямо по ссылке, или локально через View -> Extensions
        • Теперь коннектимся к своему wsl через Подключаем wsl.
        • Там выбираем New Windows using Distro, см. Выбираем дистрибутив, и потом - ваш дистрибутив. В этот момент в вашу домашнем каталоге в линуксе будут сделаны нужные настройки.
      • Вы уже готовы работать со кодом в wsl.

      • Но пока не готовы к отладке. Так как отладка ходит по "дереву" иоброкера, то я сразу решил кодить в самой инсталляции брокера, т.е. в /opt/iobroker/node_modules.

        • Для этого поставил через интерфейс иоброкера нужный адаптер.
        • Потом под своим пользователем удалил его папку (предварительно остановив брокер), и , с гита, стащил код, находясь прямо в node_modules:
          git clone ...
          
        • Дополнительно настроим sudoers, то есть /etc/sudoers/имя_вашего_пользователя
          имя_вашего_пользователя ALL = (root) NOPASSWD: /bin/su - iobroker
          имя_вашего_пользователя ALL = (iobroker) NOPASSWD: ALL
          
        • Теперь в консоли линукса (опять же через vscode - справа, внизу, закладка Terminal
          cd /opt/iobroker/
          node --inspect-brk --inspect=0.0.0.0:9229 node_modules/ваш_модуль/main.js --force --logs
          
        • Можно начинать удаленно отлаживать, но для этого надо сделать еще кое-что - настроить подключение к удаленной отладке в vscode:
          • Идем в Run -> Add Configuration, делаем файл такого вида:
            {        
                // Use IntelliSense to learn about possible attributes.        
                // Hover to view descriptions of existing attributes.        
                // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387        
                "version": "0.2.0",        
                        {        
                         "type":   "node",        
                         "request":   "attach",        
                         "name":   "Attach to the process",        
                         "address":   "127.0.0.1",        
                         "port":   9229         
                    }        
                ]        
            }
            
        • Теперь мы готовы стартануть отладку:
          Attach to remote debug
      • Собственно все.

      Оригинал лежит здесь.

      P 1 Reply Last reply Reply Quote 1
      • P
        PeterVoronov @PeterVoronov last edited by

        @petervoronov Чуть исправил некоторые неточности и убрал лишний блок в конфигурации отладки

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        563
        Online

        31.6k
        Users

        79.5k
        Topics

        1.3m
        Posts

        1
        2
        530
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo