Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Скрипт для Wake-on-LAN

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Скрипт для Wake-on-LAN

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

      Всем привет.

      Javascript начал осваивать совсем недавно, так что я только учусь, буду стараться в примерах и скриптах оставлять подробные комментарии, что бы другие далекие от javascript-a люди, как и я, понимали, что происходит в том или ином строчки коде.

      Что бы хоть чуть-чуть начать разбираться пришлось перечитать весь форум несколько раз, а потом еще и вытаскивать куски кода из разных примеров.

      Поправляете меня если есть какие замечания или я в чем-то ошибаюсь.

      К делу.

      Появилась задача запускать компьютер, nas и т.д в определенное время или через web интерфейс iobrokera, по сети с помощью Wake-on-LAN.

      Для node.js нашел пакет. wake_on_lan

      https://github.com/agnat/node_wake_on_lan

      Добавляем его в javascrit, сохраняем и перезапускаем.

      ! 380_1.jpg

      Пример скрипта на запуск в определенное время. (8-00 каждого дня)

      schedule("0 8 * * *", function () {   // Устанавливаем время на запуск скрипта в 8-00 каждого дня.
          var wol = require('wake_on_lan');
          wol.wake('00:90:FB:31:17:B1'); // Указываем наш мак адрес устройства '00:90:FB:31:17:B1'
          log("Запуск NAS" );  // Выводил в лог.
      });
      
      

      Для того чтобы мы могли запускать наш NAS по сети HTTP Get запросом или через Web ionrokera.

      Устанавливаем simple-api драйвер.

      Создадим другой скрипт.

      createState('WoL.PC', ''); //Создаем переменную в iobrokere   
      on({id: "javascript.0.WoL.PC"/*WoL.PC*/, change: 'any'}, function (obj) {   // подписываемся на любое извинение переменной "javascript.0.WoL.PC"/*WoL.PC*/
          var wolval = obj.newState.val; // создаем и присваиваем переменой wolval значение переменной  obj.newState.val
             var wol = require('wake_on_lan');  
             wol.wake(wolval);  // отправляем наш mac-адрес из переменной "wolval" пакету wake_on_lan
          });
      

      Теперь можем запускать наши домашние устройства с помощью Get запросов указывая их mac адрес.

      http://IP:8087/set/ID?value=MAC

      Где IP адрес нашего сервера, ID наша переменная которую мы создали в javascripte?

      MAC - это наш mac адрес устройства.

      Фортам mac адреса может быть такой;

      00:90:FB:31:17:B1

      0090FB3117B1

      00:90:fb:31:17:b1

      Пример:

      • http://192.168.1.51:8087/set/javascript … B:31:17:B1
      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        @bondrogeen:

        Всем привет.

        Javascript начал осваивать совсем недавно, так что я только учусь, буду стараться в примерах и скриптах оставлять подробные комментарии, что бы другие далекие от javascript-a люди, как и я, понимали, что происходит в том или ином строчки коде. `
        Видимо не весь форум прочитал)

        wake_on_lan уже есть в iobroker.

        Это есть и в описании драйвера javascript

        ! Following functions can be used in scripts:
        ! require - load some module
        ! var mod = require('module_name');
        ! Following modules are pre-loaded: fs, crypto, wake_on_lan, request, suncalc, util, path, os, net, events, dns.
        ! To use other modules go to iobroker/adapter/javascript folder and run in console npm install . After npm successfully finished it can be used in script engine.

        var wol = require('wake_on_lan');
        
        on({id: 'javascript.0.GetAdmin.WOL', change: 'any'}, function (obj) {
            if(obj.newState.val !== ''){
                wol.wake(obj.newState.val);
                log(obj.newState.val); //00:1B:FC:9A:8B:05
                //var magic_packet = wol.createMagicPacket('00:1B:FC:9A:8B:10');
            }
        });
        
        
        setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC');
        
        1 Reply Last reply Reply Quote 0
        • B
          bondrogeen last edited by

          Видима не весь. 😄

          Но для меня главное, что сам додумался.

          Да и на форуме тему эту не обсуждали.

          1 Reply Last reply Reply Quote 0
          • I
            instalator last edited by

            @bondrogeen:

            Видима не весь. 😄

            Но для меня главное, что сам додумался.

            Да и на форуме тему эту не обсуждали. `
            http://forum.iobroker.net/viewtopic.php … ake#p15307

            😉

            1 Reply Last reply Reply Quote 0
            • B
              bondrogeen last edited by

              😄

              Кстати хотел спросить может кто знает программку для андройда чтобы get запросы принимать типа Home24-MediaPlayer.

              Нужно текст на синтезатор отправлять.

              Home24-MediaPlayer не умеет принимать латиницу

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                @bondrogeen:

                😄

                Кстати хотел спросить может кто знает программку для андройда чтобы get запросы принимать типа Home24-MediaPlayer.

                Нужно текст на синтезатор отправлять.

                Home24-MediaPlayer не умеет принимать латиницу `
                латиницу или кириллицу?

                1 Reply Last reply Reply Quote 0
                • B
                  bondrogeen last edited by

                  @Bluefox:

                  @bondrogeen:

                  😄

                  Кстати хотел спросить может кто знает программку для андройда чтобы get запросы принимать типа Home24-MediaPlayer.

                  Нужно текст на синтезатор отправлять.

                  Home24-MediaPlayer не умеет принимать латиницу латиницу или кириллицу?

                  Сори ошибся

                  кириллицу

                  Я как-то давно подымал эту тему еще на CCU.IO

                  Как вариант нашел плагин для таскера, но он как то не стабильно работает, часто отваливается.

                  RESTask for Tasker

                  https://play.google.com/store/apps/deta … ha.restask

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  880
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  2910
                  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