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

                            805
                            Online

                            31.8k
                            Users

                            80.0k
                            Topics

                            1.3m
                            Posts

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