NEWS
Почему скрипты "засыпают"?
- 
					
					
					
					
 @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('Выключено'); } }); ```` `Наврятли это проблема скрипта. 
- 
					
					
					
					
 @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('Выключено'); } }); ```` `А что видно в логе при нажатии? 
- 
					
					
					
					
 Я тоже думаю, что это не проблема скрипта. В логе после задержки появляется сообщение из скрипта и стандартная запись о том, что была попытка изменить состояние объекта. Как я понимаю, каждый скрипт - это отдельный процесс. И, как мне кажется, долго неактивные процессы засыпают. Это делает либо ioBroker, либо операционка… 
- 
					
					
					
					
 У меня аналогичная ситуация. В качестве железа - MegaD, скрипт - JS. Что нужно, что бы отследить проблему? 
- 
					
					
					
					
 @Ho Hum:Я тоже думаю, что это не проблема скрипта. В логе после задержки появляется сообщение из скрипта и стандартная запись о том, что была попытка изменить состояние объекта. Как я понимаю, каждый скрипт - это отдельный процесс. И, как мне кажется, долго неактивные процессы засыпают. Это делает либо ioBroker, либо операционка… ` 
 Ни у кого не засыпают….Ну хотелось бы видеть собственно сам скрипт. 
- 
					
					
					
					
 "Засыпает" собственно вот этот огрызок: // Реакция на нажатия выключателей $('megad.*_кнопка').on(function (e) { if (e.newState.val === true){ var port = getIdByName(e.common.name.split('_')[0]); setState(port, !getState(port).val); } });При этом действия, выполняемые по крону - работают нормально (в этом же скрипте) 
- 
					
					
					
					
 "Засыпает" собственно вот этот огрызок: // Реакция на нажатия выключателей $('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);
 }
 });
- 
					
					
					
					
 Есть ли принципиальная разница для эксперимента между $('megad.*_кнопка').on(function (e) {});и on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});Спрашиваю, потому что со вторым вариантом - подписка на события не произошла… Несколько изменил свой кусок.. посмотрю что будет происодить. 
- 
					
					
					
					
 Есть ли принципиальная разница для эксперимента между $('megad.*_кнопка').on(function (e) {});и on({id: 'megad.*_кнопка', change: 'any'}, function (obj) {});Спрашиваю, потому что со вторым вариантом - подписка на события не произошла… Несколько изменил свой кусок.. посмотрю что будет происодить. ` 
 А это где? $('megad.*_кнопка'. Это в jquery чтоли? В визе?
- 
					
					
					
					
 Есть ли принципиальная разница для эксперимента между $('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) {}); Будет уже обрабатывать несколько устройств.
- 
					
					
					
					
 Есть ли принципиальная разница для эксперимента между $('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) {}); Будет уже обрабатывать несколько устройств. ` это а виз только работает?
- 
					
					
					
					
 это а виз только работает? ` 
 Речь идёт о javascript драйвере.
- 
					
					
					
					
 это а виз только работает? ` 
 Речь идёт о javascript драйвере.https://github.com/ioBroker/ioBroker.ja ... --selector ` 
 Чо то я сразу не догнал когда с телефона читал, лучше молчать буду)
- 
					
					
					
					
 > лучше молчать буду)
 ненене ))В общем снова проглючило. Было 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 нормально работают, а эта вот... Интересно, у ТС решилась ли проблема? 
- 
					
					
					
					
 К сожалению, у меня проблема так и не решилась. Я настраиваю систему в загородном доме, находящемся в процессе практически замороженной отделки, поэтому приезжаю туда не каждую неделю и не надолго… При каждом приезде лампы сразу не зажигаются. После нескольких нажатий зажигаются и дальше работают до отъезда нормально. Потом все снова повторяется. При этом по таймеру другие функции работают нормально. 
 
		
	