Страница 103 из 124
Re: Простые устройства / Simple Devices
Добавлено: Чт дек 19, 2019 4:29 pm
timurufa86
а так будет работать
echo "start metod\n";
if ($this->getProperty('status') == 1){
//$w1 =
new EvTimer(2, 0, function () {
echo "2 секунды прошло\n";
if ($this->getProperty('status') == 1){
$this->setProperty('Mstatus',1);
}
});
}else{
echo "mstatus=0\n";
$this->setProperty('Mstatus',0);}
Re: Простые устройства / Simple Devices
Добавлено: Чт дек 19, 2019 4:35 pm
timurufa86
и что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
Re: Простые устройства / Simple Devices
Добавлено: Чт дек 19, 2019 5:08 pm
timurufa86
все вроде дошло буду при смене статуса 1 или 0
1 засекать время в unix time
2 при смене статуса на 0 буду в методе от нынешнего времени вычитать засеченное время
3 если разнице меньше 2 секунд то значит движения не было если больше то значит было и включаем свет
что скажете такое будет работать??) конечно это все с большой погрешностью..((
Re: Простые устройства / Simple Devices
Добавлено: Чт дек 19, 2019 5:10 pm
freesh
timurufa86 писал(а): Чт дек 19, 2019 4:35 pm
и что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
У тебя включение света в методе StatusUpdated (или какой он там, MotionDetected?)
Ну вариант сохранять ещё в какое-то свойсво timestamp и проверять разницу во времени между сработками, это будет тоже самое истечение опеределенного времени.
Re: Простые устройства / Simple Devices
Добавлено: Чт дек 19, 2019 6:47 pm
timurufa86
freesh писал(а):timurufa86 писал(а): Чт дек 19, 2019 4:35 pm
и что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
У тебя включение света в методе StatusUpdated (или какой он там, MotionDetected?)
Ну вариант сохранять ещё в какое-то свойсво timestamp и проверять разницу во времени между сработками, это будет тоже самое истечение опеределенного времени.
Я про это какраз и написал выше
Отправлено с моего iPhone используя Tapatalk
Re: Простые устройства / Simple Devices
Добавлено: Чт дек 19, 2019 6:53 pm
timurufa86
freesh писал(а):timurufa86 писал(а): Чт дек 19, 2019 4:35 pm
и что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
У тебя включение света в методе StatusUpdated (или какой он там, MotionDetected?)
Ну вариант сохранять ещё в какое-то свойсво timestamp и проверять разницу во времени между сработками, это будет тоже самое истечение опеределенного времени.
Я про это какраз и написал выше
Отправлено с моего iPhone используя Tapatalk
Re: Простые устройства / Simple Devices
Добавлено: Пт дек 20, 2019 6:52 am
nick7zmail
timurufa86 писал(а): Чт дек 19, 2019 10:07 am
Привет всем! возникла проблема иногда срабатывает датчик движения в комнате и ночью включается свет и мешает спать..)) кто как реализовал блокировку датчика движения? именно интересует логика . Я пока сделал по времени, что со столькито ночи до столькито не давать датчику срабатывать , но это очень тупо (((
Ну как бы работает - значит правильно сделали =D. На самом деле так и пишется...если время попадает в интервал (функция timeBetween), то включаем свет, иначе ничего не делаем... Вот такая логика.
Re: Простые устройства / Simple Devices
Добавлено: Пт дек 20, 2019 6:53 pm
xor
timurufa86 писал(а): Чт дек 19, 2019 10:07 am
Привет всем! возникла проблема иногда срабатывает датчик движения в комнате и ночью включается свет и мешает спать..)) кто как реализовал блокировку датчика движения? именно интересует логика . Я пока сделал по времени, что со столькито ночи до столькито не давать датчику срабатывать , но это очень тупо (((
если хотите не тупо, можете кроме времени учитывать всё, что есть в системе -
режим Темно, ВсеСпят(естественно, если этот режим не сбрасывается этим датчиком движения), и т.д.
Вот у меня один дд включает свет с учётом тёмного времени суток с поправкой на облачность, временем сработки будильника, контролем состояния лампы и тупым заданием времени:
Код: Выделить всё
$withClouds = timeConvert(gg('weather_my.SunRise')) + gg('weather_my.clouds')*60*0.3 + 600;// учтём облачность при рассвете
if((gg('DarknessMode.active') || time()<$withClouds) && gg('noorelay6.status') == 0 && $params['NEW_VALUE']){
if(!timebetween("01:00",gg("AlarmWork.start"))){//не включать ночью до будильника
cm('noorelay6.turnOn');
}
setTimeOut('noorelay6_auto',"cm('noorelay6.turnOff');",10*60);
}
if($params['NEW_VALUE'] == 0 ){
cm('noorelay6.turnOff');
}
Re: Простые устройства / Simple Devices
Добавлено: Пт дек 20, 2019 11:29 pm
Nilov
Имеется датчик наличия сетевого напряжения 220в, опрос по MQTT каждые 20 секунд. Сеть есть имеем 0, сеть пропала имеем 1.
Пытаюсь настроить в методах чтобы в Телеграм приходило сообщение - Пропало напряжение/Восстановлено напряжение.
Пару лет назад настраивал (делал через Blockly) подобное и всё работало, сейчас не получается. Итог: статус в телеграмм приходит, но каждые 20 секунд - Восстановлено напряжение...
Искал по форуму, нашел код, и комментарий к нему -
эти параметры передаются при вызове связанного метода и по ним можно определить действительно ли изменялось значение. если не изменялось, то ничего не делаем и выходим из метода. Но у меня из этого ничего не получилось((
Код: Выделить всё
if ($params['NEW_VALUE']==$params['OLD_VALUE']) return;
В простых устройствах создал датчик состояния, в методах следующий код:
Код: Выделить всё
if ($params['NEW_VALUE']==$params['OLD_VALUE']) return;
if (getGlobal('Sensor_state01'.'.'.'value') == 0) {
say('Восстановлено напряжение', 10);
}
if (getGlobal('Sensor_state01'.'.'.'value') == 1) {
say('Пропало напряжение', 10);
}
Может кто подскажет или направит в нужном направлении?
Re: Простые устройства / Simple Devices
Добавлено: Пт дек 20, 2019 11:33 pm
freesh
Nilov писал(а): Пт дек 20, 2019 11:29 pm
Имеется датчик наличия сетевого напряжения 220в, опрос по MQTT каждые 20 секунд. Сеть есть имеем 0, сеть пропала имеем 1.
Пытаюсь настроить в методах чтобы в Телеграм приходило сообщение - Пропало напряжение/Восстановлено напряжение.
Пару лет назад настраивал (делал через Blockly) подобное и всё работало, сейчас не получается. Итог: статус в телеграмм приходит, но каждые 20 секунд - Восстановлено напряжение...
Искал по форуму, нашел код, и комментарий к нему -
эти параметры передаются при вызове связанного метода и по ним можно определить действительно ли изменялось значение. если не изменялось, то ничего не делаем и выходим из метода. Но у меня из этого ничего не получилось((
Код: Выделить всё
if ($params['NEW_VALUE']==$params['OLD_VALUE']) return;
В простых устройствах создал датчик состояния, в методах следующий код:
Код: Выделить всё
if ($params['NEW_VALUE']==$params['OLD_VALUE']) return;
if (getGlobal('Sensor_state01'.'.'.'value') == 0) {
say('Восстановлено напряжение', 10);
}
if (getGlobal('Sensor_state01'.'.'.'value') == 1) {
say('Пропало напряжение', 10);
}
Может кто подскажет или направит в нужном направлении?
Я бы сделал без return а :
Код: Выделить всё
if ($params['NEW_VALUE']!=$params['OLD_VALUE']) {
if (getGlobal('Sensor_state01'.'.'.'value') == 0) {
say('Восстановлено напряжение', 10);
}
if (getGlobal('Sensor_state01'.'.'.'value') == 1) {
say('Пропало напряжение', 10);
}
}