Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. развитие
  5. ioBroker разработка
  6. vscode и wsl: работа с кодом и отладка адаптера

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

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

Scheduled Pinned Locked Moved ioBroker разработка
2 Posts 1 Posters 711 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    PeterVoronov
    wrote on last edited by PeterVoronov
    #1

    Всем привет.
    Хочу поделиться полученными знаниями.
    Сразу спасибо Илье Кирову за наводку.
    Далее - за основу брал этот топик - 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
    1
    • P 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 Offline
      P Offline
      PeterVoronov
      wrote on last edited by
      #2

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

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      596

      Online

      32.4k

      Users

      81.4k

      Topics

      1.3m

      Posts
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      ioBroker Community 2014-2025
      logo
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Recent
      • Tags
      • Unread 0
      • Categories
      • Unreplied
      • Popular
      • GitHub
      • Docu
      • Hilfe