Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Почему скрипты "засыпают"?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Почему скрипты "засыпают"?

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

      @Ho Hum:

      Уменя наблюдается странная ситуация - скрипты реакции на клавиши включения света "засыпают".

      Управление светом реализовано через Мегу. Если долго не был в доме, при нажатиина кнопку видно, что на Меге лампочка мигнула, но свет включается с большой задержкой, от 30 сек до минуты. После этого уже включение/выключение работает нормально, но только для этой клавиши. Первое нажатие на другую клавишу опять отрабатывает с задержкой.

      Другие скрипты, работающие по расписанию, работают нормально.

      В чем может быть проблема? Как предотвратить засыпание скриптов?

      Пример скрипта:

      var Button = "megad.7.p0_S-3";
      var Light  = "megad.7.p7_L-3";
      
      on(Button, function (obj) {
          if (obj.newState.val === true && getState(Light).val === false) {
              setState (Light, true);
              log('Включено');
          }else if(obj.newState.val === true && getState(Light).val === true){
              setState (Light, false);
              log('Выключено');
          }
      });
      
      ```` `  
      

      Наврятли это проблема скрипта.

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

        @Ho Hum:

        Уменя наблюдается странная ситуация - скрипты реакции на клавиши включения света "засыпают".

        Управление светом реализовано через Мегу. Если долго не был в доме, при нажатиина кнопку видно, что на Меге лампочка мигнула, но свет включается с большой задержкой, от 30 сек до минуты. После этого уже включение/выключение работает нормально, но только для этой клавиши. Первое нажатие на другую клавишу опять отрабатывает с задержкой.

        Другие скрипты, работающие по расписанию, работают нормально.

        В чем может быть проблема? Как предотвратить засыпание скриптов?

        Пример скрипта:

        var Button = "megad.7.p0_S-3";
        var Light  = "megad.7.p7_L-3";
        
        on(Button, function (obj) {
            if (obj.newState.val === true && getState(Light).val === false) {
                setState (Light, true);
                log('Включено');
            }else if(obj.newState.val === true && getState(Light).val === true){
                setState (Light, false);
                log('Выключено');
            }
        });
        
        ```` `  
        

        А что видно в логе при нажатии?

        1 Reply Last reply Reply Quote 0
        • H
          Ho Hum last edited by

          Я тоже думаю, что это не проблема скрипта.

          В логе после задержки появляется сообщение из скрипта и стандартная запись о том, что была попытка изменить состояние объекта.

          Как я понимаю, каждый скрипт - это отдельный процесс. И, как мне кажется, долго неактивные процессы засыпают.

          Это делает либо ioBroker, либо операционка…

          1 Reply Last reply Reply Quote 0
          • K
            kozlov_ao last edited by

            У меня аналогичная ситуация. В качестве железа - MegaD, скрипт - JS.

            Что нужно, что бы отследить проблему?

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

              @Ho Hum:

              Я тоже думаю, что это не проблема скрипта.

              В логе после задержки появляется сообщение из скрипта и стандартная запись о том, что была попытка изменить состояние объекта.

              Как я понимаю, каждый скрипт - это отдельный процесс. И, как мне кажется, долго неактивные процессы засыпают.

              Это делает либо ioBroker, либо операционка… `
              Ни у кого не засыпают….

              Ну хотелось бы видеть собственно сам скрипт.

              1 Reply Last reply Reply Quote 0
              • K
                kozlov_ao last edited by

                "Засыпает" собственно вот этот огрызок:

                // Реакция на нажатия выключателей
                $('megad.*_кнопка').on(function (e) {
                    if (e.newState.val === true){
                        var port = getIdByName(e.common.name.split('_')[0]);
                
                        setState(port, !getState(port).val);
                    }
                });
                

                При этом действия, выполняемые по крону - работают нормально (в этом же скрипте)

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

                  @kozlov_ao:

                  "Засыпает" собственно вот этот огрызок:

                  // Реакция на нажатия выключателей
                  $('megad.*_кнопка').on(function (e) {
                      if (e.newState.val === true){
                          var port = getIdByName(e.common.name.split('_')[0]);
                          
                          setState(port, !getState(port).val);
                      }
                  });
                  

                  При этом действия, выполняемые по крону - работают нормально (в этом же скрипте) `
                  Давай тестить, в лог пишет при изменениях?

                  ! ````
                  on({id: 'megad._кнопка', change: 'any'}, function (obj) {
                  log('megad.
                  кнопка.val = ' + obj.newState.val);
                  if (obj.newState.val === true || obj.newState.val === 'true'){
                  var port = getIdByName(obj.common.name.split('
                  ')[0]);
                  log('var port = ' + port);
                  setState(port, !getState(port).val);
                  }
                  });

                  1 Reply Last reply Reply Quote 0
                  • K
                    kozlov_ao last edited by

                    Есть ли принципиальная разница для эксперимента между

                    $('megad.*_кнопка').on(function (e) {});
                    

                    и

                    on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});
                    

                    Спрашиваю, потому что со вторым вариантом - подписка на события не произошла…

                    Несколько изменил свой кусок.. посмотрю что будет происодить.

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

                      @kozlov_ao:

                      Есть ли принципиальная разница для эксперимента между

                      $('megad.*_кнопка').on(function (e) {});
                      

                      и

                      on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});
                      

                      Спрашиваю, потому что со вторым вариантом - подписка на события не произошла…

                      Несколько изменил свой кусок.. посмотрю что будет происодить. `
                      А это где? $('megad.*_кнопка'. Это в jquery чтоли? В визе?

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

                        @kozlov_ao:

                        Есть ли принципиальная разница для эксперимента между

                        $('megad.*_кнопка').on(function (e) {});
                        

                        и

                        on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});
                        

                        Спрашиваю, потому что со вторым вариантом - подписка на события не произошла…

                        Несколько изменил свой кусок.. посмотрю что будет происодить. `

                        $('megad.*_кнопка')
                        ````изначально заточен на то, что бы поддерживать несколько устройств.
                        
                        

                        on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});

                        Может обслуживать только одно устройство и ожидает точное имя.
                        
                        

                        on({id: /^megad..*_кнопка$/, change: 'any'}, function (obj) {});

                        Будет уже обрабатывать несколько устройств.
                        1 Reply Last reply Reply Quote 0
                        • I
                          instalator last edited by

                          @Bluefox:

                          @kozlov_ao:

                          Есть ли принципиальная разница для эксперимента между

                          $('megad.*_кнопка').on(function (e) {});
                          

                          и

                          on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});
                          

                          Спрашиваю, потому что со вторым вариантом - подписка на события не произошла…

                          Несколько изменил свой кусок.. посмотрю что будет происодить. `

                          $('megad.*_кнопка')
                          ````изначально заточен на то, что бы поддерживать несколько устройств.
                          
                          

                          on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});

                          Может обслуживать только одно устройство и ожидает точное имя.
                          
                          

                          on({id: /^megad..*_кнопка$/, change: 'any'}, function (obj) {});

                          Будет уже обрабатывать несколько устройств. `  это а виз только работает?
                          1 Reply Last reply Reply Quote 0
                          • Bluefox
                            Bluefox last edited by

                            @instalator:

                            это а виз только работает? `
                            Речь идёт о javascript драйвере.

                            https://github.com/ioBroker/ioBroker.ja ... --selector

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

                              @Bluefox:

                              @instalator:

                              это а виз только работает? `
                              Речь идёт о javascript драйвере.

                              https://github.com/ioBroker/ioBroker.ja ... --selector `
                              Чо то я сразу не догнал когда с телефона читал, лучше молчать буду)

                              1 Reply Last reply Reply Quote 0
                              • K
                                kozlov_ao last edited by

                                > лучше молчать буду)
                                ненене ))

                                В общем снова проглючило.

                                Было 2 нажатия.. зарегистрировалось только одно и то с задержкой:

                                javascript.0	2016-12-15 12:05:15.771	info	script.js.common.LightControl: megad.1.p0_Свет:_Кладовка_кнопка=false
                                megad.1	2016-12-15 12:05:15.684	info	try to control megad.1.p7_Свет:_Кладовка with true
                                javascript.0	2016-12-15 12:05:15.680	info	script.js.common.LightControl: var port = megad.1.p7_Свет:_Кладовка
                                javascript.0	2016-12-15 12:05:15.674	info	script.js.common.LightControl: megad.1.p0_Свет:_Кладовка_кнопка=true
                                

                                Хоть дамп трафика снимай 😞

                                Вот думаю, не глючит ли мега…. хотя они все из одной партии. 3 нормально работают, а эта вот...

                                Интересно, у ТС решилась ли проблема?

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Ho Hum last edited by

                                  К сожалению, у меня проблема так и не решилась.

                                  Я настраиваю систему в загородном доме, находящемся в процессе практически замороженной отделки, поэтому приезжаю туда не каждую неделю и не надолго…

                                  При каждом приезде лампы сразу не зажигаются. После нескольких нажатий зажигаются и дальше работают до отъезда нормально. Потом все снова повторяется.

                                  При этом по таймеру другие функции работают нормально.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  895
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  16
                                  3881
                                  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