NEWS
Вопросы по написанию скриптов
-
так как? вариантов больше нет? `
Скрипт не работает пока нет изменений на 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 сек
-
Может так. А код для включения от выключателя существует? Примерно, как вторая часть у моего скрипта?
var timer; on({id: "megad.1.p1_Движение_гостинная"/*Движение_гостинная*/, change: 'ne'}, function (obj) { if (!obj.state.ack) return; // this shoould not happen var svetOn = parseInt(getState('svetOn').val) || 0; var onSensor = parseInt(getState('onSensor').val) || 0; var isMotion = obj.newState.val === 'true' || obj.newState.val === true || obj.newState.val === '1' || obj.newState.val === 1; log('svetOn: ' + svetOn + ', p1_Движение_гостинная: ' + isMotion + '[ack: ' + obj.state.ack + '], onSensor: ' + onSensor); // svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1 // if motion and sensor enabled and light is OFF or switched on by motion detector if (isMotion && onSensor === 1 && (svetOn === 0 || svetOn === 3)) { // Output of brightness in kitchen. Just for debug log(getState('megad.1.p10_Свет_гостинная'/*Свет_гостинная*/).val); // if light was off => we switch the light on because of motion detector. Start timer setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 255); setState('svetOn', 3); log("Включен свет по движению"); // start timer for 5 seconds to switch the light off log('запускаем таймер отключения на 30000\. старый стираем'); if (timer) clearTimeout(timer); timer = setTimeout(function() { timer = null; setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 0); setState('svetOn', 0); log("выкл свет по таймеру"); }, 5000); } }); on({id: "megad.1.px_выключатель света", change: 'ne'}, function (obj) { // manual mode => ignore motion timer if (timer) clearTimeout(timer); timer = null; var obj.state.val = obj.newState.val === 'true' || obj.newState.val === true || obj.newState.val === '1' || obj.newState.val === 1; if (obj.state.val) { // somebody pressed on button => switch the light on setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 255); setState('svetOn', 1); } else { // somebody pressed off button => switch the light off setState("megad.1.p10_Свет_гостинная"/*Свет_гостинная*/, 0); setState('svetOn', 0); } }); -
Вс равно блин каждые 30 сек зажигается свет:
16:02:24.820 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1 16:02:24.820 [info] javascript.0 script.js.common.test_on: 0 16:02:24.820 [info] javascript.0 script.js.common.test_on: Включен свет по движению 16:02:24.820 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем 16:02:24.926 [info] javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1 16:02:29.821 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру 16:02:54.836 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1 16:02:54.836 [info] javascript.0 script.js.common.test_on: 0 16:02:54.836 [info] javascript.0 script.js.common.test_on: Включен свет по движению 16:02:54.836 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем 16:02:54.922 [info] javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1 16:02:59.843 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру -
У тебя p1_Движение_гостинная каждые 30 сек присылает true.
` > 16:02:24.820 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1
16:02:54.836 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1 `
И скрипт отрабатывает всё правильно.
Что выдаёт скрипт в течении 3 минут?
on({id: "megad.1.p1_Движение_гостинная"/*Движение_гостинная*/, change: 'any'}, function (obj) { console.log(JSON.stringify(obj.state)); }); -
Вс равно блин каждые 30 сек зажигается свет:
16:02:24.820 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1 16:02:24.820 [info] javascript.0 script.js.common.test_on: 0 16:02:24.820 [info] javascript.0 script.js.common.test_on: Включен свет по движению 16:02:24.820 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем 16:02:24.926 [info] javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1 16:02:29.821 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру 16:02:54.836 [info] javascript.0 script.js.common.test_on: svetOn: 0, p1_Движение_гостинная: true[ack: true], onSensor: 1 16:02:54.836 [info] javascript.0 script.js.common.test_on: 0 16:02:54.836 [info] javascript.0 script.js.common.test_on: Включен свет по движению 16:02:54.836 [info] javascript.0 script.js.common.test_on: запускаем таймер отключения на 30000\. старый стираем 16:02:54.922 [info] javascript.0 script.js.common.test_on: svetOn: 3, p1_Движение_гостинная: false[ack: true], onSensor: 1 16:02:59.843 [info] javascript.0 script.js.common.test_on: выкл свет по таймеру ```` `Отключил объемник
-
Готово
!
20:35:34.143 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:35:34.143 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479334138,"ack":true,"lc":1474479334138,"from":"system.adapter.megad.1"} 20:35:34.244 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:35:34.244 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479334239,"ack":true,"lc":1474479334239,"from":"system.adapter.megad.1"} 20:35:37.399 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:35:37.399 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479337396,"ack":true,"lc":1474479337396,"from":"system.adapter.megad.1"} 20:35:37.500 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:35:37.501 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479337497,"ack":true,"lc":1474479337497,"from":"system.adapter.megad.1"} 20:35:49.257 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:35:49.257 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479349252,"ack":true,"lc":1474479349252,"from":"system.adapter.megad.1"} 20:35:49.355 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:35:49.356 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479349352,"ack":true,"lc":1474479349352,"from":"system.adapter.megad.1"} 20:36:04.770 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:04.770 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479364766,"ack":true,"lc":1474479364766,"from":"system.adapter.megad.1"} 20:36:04.872 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:04.872 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479364867,"ack":true,"lc":1474479364867,"from":"system.adapter.megad.1"} 20:36:07.400 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:07.401 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479367397,"ack":true,"lc":1474479367397,"from":"system.adapter.megad.1"} 20:36:07.503 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:07.503 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479367499,"ack":true,"lc":1474479367499,"from":"system.adapter.megad.1"} 20:36:21.801 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:21.801 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479381790,"ack":true,"lc":1474479381790,"from":"system.adapter.megad.1"} 20:36:21.892 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:21.893 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479381889,"ack":true,"lc":1474479381889,"from":"system.adapter.megad.1"} 20:36:29.213 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:29.214 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479389208,"ack":true,"lc":1474479389208,"from":"system.adapter.megad.1"} 20:36:29.312 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:29.313 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479389309,"ack":true,"lc":1474479389309,"from":"system.adapter.megad.1"} 20:36:31.897 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:31.898 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479391893,"ack":true,"lc":1474479391893,"from":"system.adapter.megad.1"} 20:36:32.008 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:32.009 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479391997,"ack":true,"lc":1474479391997,"from":"system.adapter.megad.1"} 20:36:34.856 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:34.857 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479394853,"ack":true,"lc":1474479394853,"from":"system.adapter.megad.1"} 20:36:34.958 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:34.959 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479394953,"ack":true,"lc":1474479394953,"from":"system.adapter.megad.1"} 20:36:37.411 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:37.412 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479397405,"ack":true,"lc":1474479397405,"from":"system.adapter.megad.1"} 20:36:37.501 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:37.502 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479397498,"ack":true,"lc":1474479397498,"from":"system.adapter.megad.1"} 20:36:41.742 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:36:41.742 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479401732,"ack":true,"lc":1474479401732,"from":"system.adapter.megad.1"} 20:36:41.841 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:36:41.841 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479401833,"ack":true,"lc":1474479401833,"from":"system.adapter.megad.1"} 20:37:02.262 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:02.264 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479422255,"ack":true,"lc":1474479422255,"from":"system.adapter.megad.1"} 20:37:02.361 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:02.362 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479422355,"ack":true,"lc":1474479422355,"from":"system.adapter.megad.1"} 20:37:07.409 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:07.410 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479427405,"ack":true,"lc":1474479427405,"from":"system.adapter.megad.1"} 20:37:07.512 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:07.513 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479427509,"ack":true,"lc":1474479427509,"from":"system.adapter.megad.1"} 20:37:07.942 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:07.944 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479427935,"ack":true,"lc":1474479427935,"from":"system.adapter.megad.1"} 20:37:08.039 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:08.042 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479428035,"ack":true,"lc":1474479428035,"from":"system.adapter.megad.1"} 20:37:10.819 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:10.820 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479430810,"ack":true,"lc":1474479430810,"from":"system.adapter.megad.1"} 20:37:10.919 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:10.920 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479430913,"ack":true,"lc":1474479430913,"from":"system.adapter.megad.1"} 20:37:14.094 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:14.095 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479434089,"ack":true,"lc":1474479434089,"from":"system.adapter.megad.1"} 20:37:14.191 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:14.192 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479434188,"ack":true,"lc":1474479434188,"from":"system.adapter.megad.1"} 20:37:16.631 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:16.631 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479436625,"ack":true,"lc":1474479436625,"from":"system.adapter.megad.1"} 20:37:16.738 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:16.738 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479436732,"ack":true,"lc":1474479436732,"from":"system.adapter.megad.1"} 20:37:20.461 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:20.463 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479440454,"ack":true,"lc":1474479440454,"from":"system.adapter.megad.1"} 20:37:20.562 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:20.563 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479440556,"ack":true,"lc":1474479440556,"from":"system.adapter.megad.1"} 20:37:24.479 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: true[ack: true], onSensor: 0 20:37:24.480 [info] javascript.0 script.js.common.test_on: {"val":true,"ts":1474479444473,"ack":true,"lc":1474479444473,"from":"system.adapter.megad.1"} 20:37:24.581 [info] javascript.0 script.js.common.test_on: svetOn: 1, p1_Движение_гостинная: false[ack: true], onSensor: 0 20:37:24.583 [info] javascript.0 script.js.common.test_on: {"val":false,"ts":1474479444575,"ack":true,"lc":1474479444575,"from":"system.adapter.megad.1"} ! -
Да у меня блин стоит в настройке "при размыкании" вот и шлёт постоянно true, а false при сработке ( `
Посади порт на землю, тоже самое? -
Добавил ещё один драйвер javascript.
Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.
Хочу чтобы часть скриптов (потенциально опасных) работало под одним,
Другая часть - отлаженных и отвечающих за безопасность дома под другим.
Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.
Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах.
-
Добавил ещё один драйвер javascript.
Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.
Хочу чтобы часть скриптов (потенциально опасных) работало под одним,
Другая часть - отлаженных и отвечающих за безопасность дома под другим.
Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.
Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах. `
В вкладке скрипты возле названия скрипта у тебя "0" поменяй ” на "1"
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login