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:

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

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

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

      Это делает либо 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

                          963
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

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