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, либо операционка…
-
@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 нормально работают, а эта вот...
Интересно, у ТС решилась ли проблема?
-
К сожалению, у меня проблема так и не решилась.
Я настраиваю систему в загородном доме, находящемся в процессе практически замороженной отделки, поэтому приезжаю туда не каждую неделю и не надолго…
При каждом приезде лампы сразу не зажигаются. После нескольких нажатий зажигаются и дальше работают до отъезда нормально. Потом все снова повторяется.
При этом по таймеру другие функции работают нормально.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden