NEWS
Вопросы по написанию скриптов
-
Вариант с заменой === на == не помог. Все равно самопроизвольно через каждые 30 сек свет зажигается. Какие есть ещё варианты? `
Самопроизвольно он включается потому что объект обновляется каждые 30 секунд -
Вариант с заменой === на == не помог. Все равно самопроизвольно через каждые 30 сек свет зажигается. Какие есть ещё варианты? `
Значит ты шлёшь каждые 30 секунд "1".Так чего же удивляться?
Выведи значение в лог
console.log(typeof getState('onSensor').val + ' - ' + getState('onSensor').val);
-
Так он и должен срабатывать, я тогда не пойму почему если я подписался на событие датчика движения
on({id: "megad.1.p1_Движение_гостинная"/*Движение_гостинная*/, change: 'ne'}, function (obj) {почему он вызывается каждые 30 сек даже когда не приходит ни какого события от самого датчика (когда событие приходит срабатывает как нужно)
-
Так он и должен срабатывать, я тогда не пойму почему если я подписался на событие датчика движения
on({id: "megad.1.p1_Движение_гостинная"/*Движение_гостинная*/, change: 'ne'}, function (obj) {почему он вызывается каждые 30 сек даже когда не приходит ни какого события от самого датчика (когда событие приходит срабатывает как нужно) ` значит прилетают разные состояния, выведи в лог и помониторь
-
так как? вариантов больше нет? `
Скрипт не работает пока нет изменений на megad.1.p1_Движение_гостинная,так что самопроизвольно он мигает видимо по другой причине. Попробуй останови скрипт.
-
Написал на Blockly программу, первая строка кода:
on({id: 'javascript\\.0\\.gsm7_1_статус', change: "any"}, function (obj) {Этот код не срабатывает, наверно из-за неверного экранирования точек.
На js программа работает с таким кодом:
on({id: "javascript.0.gsm7_1_статус", change: "any"}, function (obj) { -
Написал на Blockly программу, первая строка кода:
on({id: 'javascript\\.0\\.gsm7_1_статус', change: "any"}, function (obj) {Этот код не срабатывает, наверно из-за неверного экранирования точек.
На js программа работает с таким кодом:
on({id: "javascript.0.gsm7_1_статус", change: "any"}, function (obj) { ```` `На гите поправлено. Сегодня вечером будет исправление. Думаю.
-
так как? вариантов больше нет? `
Скрипт не работает пока нет изменений на megad.1.p1_Движение_гостинная,так что самопроизвольно он мигает видимо по другой причине. Попробуй останови скрипт. `
Не, остановка не помогает. И мигает он четко каждые 30 сек:
! ` > 22:10:37.074 [info] javascript.0 script.js.common.test_on: 0
22:10:37.074 [info] javascript.0 script.js.common.test_on: 0
22:10:37.074 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000
22:10:37.074 [info] javascript.0 script.js.common.test_on: вкл свет
22:10:42.066 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру
22:11:07.067 [info] javascript.0 script.js.common.test_on: 0
22:11:07.067 [info] javascript.0 script.js.common.test_on: 0
22:11:07.067 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000
22:11:07.067 [info] javascript.0 script.js.common.test_on: вкл свет
22:11:12.068 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру
22:11:37.058 [info] javascript.0 script.js.common.test_on: 0
22:11:37.059 [info] javascript.0 script.js.common.test_on: 0
22:11:37.059 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000
22:11:37.059 [info] javascript.0 script.js.common.test_on: вкл свет
22:11:42.058 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру
22:12:07.063 [info] javascript.0 script.js.common.test_on: 0
22:12:07.063 [info] javascript.0 script.js.common.test_on: 0
22:12:07.063 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000
22:12:07.063 [info] javascript.0 script.js.common.test_on: вкл свет
22:12:12.059 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру
22:12:37.060 [info] javascript.0 script.js.common.test_on: 0
22:12:37.060 [info] javascript.0 script.js.common.test_on: 0
22:12:37.060 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000
22:12:37.060 [info] javascript.0 script.js.common.test_on: вкл свет
22:12:42.059 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру `
Еще раз код:
Переменные
svetOn (1 = если свет был включен с кнопки)
onSensor (1 = если включено использование датчика движения)
! ````
var timer;
var flag_motion_kitchen = false;
on({id: "megad.1.p1_Движение_гостинная"/Движение_гостинная/, change: 'ne'}, function (obj) {
//if (obj.state.ack) return;
if (getState('onSensor').val == 1 && getState('svetOn').val === 0){
log(getState('svetOn').val);
clearTimeout(timer);
var lux_kitchen = getState("megad.1.p10_Свет_гостинная"/Свет_гостинная/).val;
log(lux_kitchen);
if (getState('svetOn').val == "0"){flag_motion_kitchen = true;}
if (flag_motion_kitchen === true){
log('запускаем таймер отключения на 30000');
timer = setTimeout(function() {
setState("megad.1.p10_Свет_гостинная"/Свет_гостинная/, 0);
flag_motion_kitchen = false;
setState('svetOn',0);
log("выкл свет по таймеру");
},
5000
);}
if (obj.newState.val === true && flag_motion_kitchen){
setState("megad.1.p10_Свет_гостинная"/Свет_гостинная/, 255);
setState('svetOn',3);
log("вкл свет хуй знает");
}
}
}); -
megad-1 2016-09-20 23:48:16.125 info try to control megad.1.p10_Свет_гостинная with 0 javascript-0 2016-09-20 23:48:11.215 info script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1 megad-1 2016-09-20 23:48:11.134 info try to control megad.1.p10_Свет_гостинная with 255 -
Не, остановка не помогает. И мигает он четко каждые 30 сек:
Т.е проблема не в скрипта
-
ну как же проблема не в скрипте когда срабатывает конкретная секция, о чем пишет в лог? может и не в скрипте проблема, может глубже. но я не понимаю куда дальше смотреть `
Так я понимаю что скрипт стопали, а свет все равно мигал? Причем тут скрипт тогда? И как он выдает данные в лог если он остановлен? -
Совершенно на оборот. если остановить скрипт то ничего не включается.
Речь то о том, что срабатывает событие на которое я подписался каждые 30 сек (ну и когда фактически есть само событие движения тоже срабатывает)
Два сообщения вверх есть лог сработки каждые 30 сек
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