Страница 11 из 14

Re: Включение света по датчику движения

Добавлено: Пт мар 01, 2019 9:08 pm
fandaymon
samolet писал(а):
Пт мар 01, 2019 7:24 pm

прописал вот этот код

Код: Выделить всё

if (gg('MotionSensorTualet.status')==0)
$objects=array('Tualetvv');
foreach($objects as $o) {
clearTimeOut("lightOffTimer");
SetTimeOut("lightOffTimer","callMethod($o.'.turnoff');",60*25);
}
Ммм.. А зачем так СТРАННО делать?! В чём смысл делать массив из одного элемента и считывать его в цикле? Ну и вишенка на торте - первый if вообще ничего не делает

Почему бы просто не написать

Код: Выделить всё

if (gg('MotionSensorTualet.status')==0) {
 SetTimeOut("lightOffTimer","callMethod('Tualetvv.turnoff');",60*25);
}
Этот код на форуме встречается с десяток раз...

Re: Включение света по датчику движения

Добавлено: Пт мар 01, 2019 9:39 pm
samolet
:roll: поменял код, не выключается теперь :? поставил свой код выключается я х.з. почему. для проверки ставил 1 минуту

Re: Включение света по датчику движения

Добавлено: Пт мар 01, 2019 9:59 pm
fandaymon
samolet писал(а):
Пт мар 01, 2019 9:39 pm
:roll: поменял код, не выключается теперь :? поставил свой код выключается я х.з. почему. для проверки ставил 1 минуту
Ну значит первый иф вообще не нужен. Просто пишем так

Код: Выделить всё

 SetTimeOut("lightOffTimer","callMethod('Tualetvv.turnoff');",60*25);

Re: Включение света по датчику движения

Добавлено: Пт мар 01, 2019 10:20 pm
samolet
fandaymon писал(а):
Пт мар 01, 2019 9:59 pm
samolet писал(а):
Пт мар 01, 2019 9:39 pm
:roll: поменял код, не выключается теперь :? поставил свой код выключается я х.з. почему. для проверки ставил 1 минуту
Ну значит первый иф вообще не нужен. Просто пишем так

Код: Выделить всё

 SetTimeOut("lightOffTimer","callMethod('Tualetvv.turnoff');",60*25);
ВСЕ, сделал по таймеру с условием теперь работает отлично, в коде поставил на 25 мин.

Код: Выделить всё

if (gg('MotionSensorTualet.status')==0){
$objects=array('Tualetvv');
foreach($objects as $o) {
clearTimeOut("lightOffTimer");
SetTimeOut("lightOffTimer","callMethod($o.'.turnoff');",60*25);
}}
Без массива почему то не работает, ( ну так на всякий,,,,, выключатель соноф с родной прошивкой)

Re: Включение света по датчику движения

Добавлено: Сб мар 02, 2019 2:13 am
xor
clearTimeOut("lightOffTimer"); // не нужно, в следующей строке он, если и был перепишется

Re: Включение света по датчику движения

Добавлено: Сб мар 02, 2019 11:10 am
samolet
вечером попробую

Re: Включение света по датчику движения

Добавлено: Чт мар 12, 2020 10:20 pm
zeleneew
В простых устройствах настроил (добавил) датчик движения. привязал свойства к объекту. при обнаружении движения датчиком на простом устройстве происходит соответствующая индикация. Через закладку "связанные устройства" настроил действие "Включить на время (Включить другое устройство на некоторое время по событию)" включение освещения на 15 сек.
по факту движения освещение включается. если движений не обнаруживается, что через 15 сек освещение отключается и тут же включается снова на 15 сек.

Как изменить настройки, чтоб включение происходило только если произошло изменение свойств Motion01.status в значение = 1 и не происходило повторного включения после истечения заданных 15 сек.

Как я понял (может я не прав) первое включение происходит т.к. произошло изменение свойств Motion01.status в значение = 1. а повторное включение происходит из за изменения свойств Motion01.status в значение = 0 (или любое другое, отличное от предыдущего).

Re: Включение света по датчику движения

Добавлено: Чт мар 12, 2020 11:00 pm
zeleneew
zeleneew писал(а):
Чт мар 12, 2020 10:20 pm
В простых устройствах настроил (добавил) датчик движения. привязал свойства к объекту. при обнаружении движения датчиком на простом устройстве происходит соответствующая индикация. Через закладку "связанные устройства" настроил действие "Включить на время (Включить другое устройство на некоторое время по событию)" включение освещения на 15 сек.
по факту движения освещение включается. если движений не обнаруживается, что через 15 сек освещение отключается и тут же включается снова на 15 сек.

Как изменить настройки, чтоб включение происходило только если произошло изменение свойств Motion01.status в значение = 1 и не происходило повторного включения после истечения заданных 15 сек.

Как я понял (может я не прав) первое включение происходит т.к. произошло изменение свойств Motion01.status в значение = 1. а повторное включение происходит из за изменения свойств Motion01.status в значение = 0 (или любое другое, отличное от предыдущего).
Не уверен, но предварительно помогает решение по замене в SMotions в методе motionDetected кода:

Код: Выделить всё

require(DIR_MODULES.'devices/SMotions_motionDetected.php');
на код:

Код: Выделить всё

if ($params['NEW_VALUE'] == "1") {
require(DIR_MODULES.'devices/SMotions_motionDetected.php');
}
Неужели нет более элегантного решения?

Re: Включение света по датчику движения

Добавлено: Пт мар 13, 2020 9:05 am
Nail
zeleneew писал(а):
Чт мар 12, 2020 10:20 pm
В простых устройствах ....... включение освещения на 15 сек.
по факту движения освещение включается. если движений не обнаруживается, что через 15 сек освещение отключается и тут же включается снова на 15 сек.
У меня несколько таких ПУ связанных с датчиками движения , но впервые с таким сталкиваюсь. У меня все работает четко вкл и выкл. по таймеру(от 60 сек до 90 сек.) без повторных включений. Попробуйте протестируйте со временем более 15 сек.- ну хотя бы 30 сек. и более? Или ПУ криво стоит :D.
У меня такая беда в ПУ второй раз Термостат не управляет тенами на температуру включения и выключения , т.е. теряет связь со связанными устройствами , помогает только новое создание с нуля УД. :lol: (так как я не знаю где и как копать)

Re: Включение света по датчику движения

Добавлено: Пт мар 13, 2020 9:43 am
lihodeev
еслм я правильно понял задачу - то у меня работает следующий код в датчик движения- действия -мотиондетектед

Код: Выделить всё

//если стоит статус 1 в обьекте (управления светом при движении )
//то включим свет если солнце село и время до 23,30
if ((timeBetween((gg('ThisComputer.SunSetTime')),'23:30')){ 
 callMethod('contKUH.turnon');
}
//запустим таймер (15 мин), по истечении которого свет будет выключен

clearTimeOut("lightOffTimerbig");
SetTimeOut("lightOffTimerbig","callMethod('contKUH.turnOff');",60*15);

как то так