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.
    • 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

                              901
                              Online

                              31.8k
                              Users

                              80.0k
                              Topics

                              1.3m
                              Posts

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