NEWS
Вопросы по написанию скриптов
-
> Не, остановка не помогает.
Это не скрипт. Ищи ошибку в другом месте -
Это конечно прикольно, но я не далекий от написания кода. Каждые 30 сек срабатывает подписка на событие датчика движения. но сам датчик молчит.более я не знаю откуда еще он может вызываться
Где еще можно посмотреть?
-
А ты можешь встроить вот такой лог?
log('svetOn: ' + getState('svetOn').val + ', p1_Движение_гостинная: ' + obj.state.val + '[ack: ' + obj.state.ack + '], onSensor: ' + getState('onSensor').val);
-
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 при сработке (
-
Да у меня блин стоит в настройке "при размыкании" вот и шлёт постоянно true, а false при сработке ( `
А почему каждые 5 секунд? Может выключение света вызывать срабатывание движения? -
Да у меня блин стоит в настройке "при размыкании" вот и шлёт постоянно true, а false при сработке ( `
Посади порт на землю, тоже самое? -
Добавил ещё один драйвер javascript.
Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.
Хочу чтобы часть скриптов (потенциально опасных) работало под одним,
Другая часть - отлаженных и отвечающих за безопасность дома под другим.
Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.
Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах.
-
Добавил ещё один драйвер javascript.
Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.
Хочу чтобы часть скриптов (потенциально опасных) работало под одним,
Другая часть - отлаженных и отвечающих за безопасность дома под другим.
Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.
Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах. `
В вкладке скрипты возле названия скрипта у тебя "0" поменяй ” на "1" -
Добавил ещё один драйвер javascript.
Как создавать и переносить скрипты в новый драйвер js? Не могу найти переключение в админке.
Хочу чтобы часть скриптов (потенциально опасных) работало под одним,
Другая часть - отлаженных и отвечающих за безопасность дома под другим.
Так как уже неоднократно ошибки в скриптах "ложили" драйвер со всеми другими скриптами.
Надеюсь что при этом глобальные переменные останутся доступны в обоих драйверах.
В вкладке скрипты возле названия скрипта у тебя "0" поменяй ” на "1"
Понял, спасибо.