Простые устройства / Simple Devices
Модератор: immortal
-
- Сообщения: 65
- Зарегистрирован: Вт фев 17, 2015 8:40 pm
- Благодарил (а): 19 раз
- Поблагодарили: 2 раза
Re: Простые устройства / Simple Devices
а так будет работать
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);}
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);}
-
- Сообщения: 65
- Зарегистрирован: Вт фев 17, 2015 8:40 pm
- Благодарил (а): 19 раз
- Поблагодарили: 2 раза
Re: Простые устройства / Simple Devices
и что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)tarasfrompir писал(а): ↑Чт дек 19, 2019 3:54 pmтак есть вот такое - https://mdminfo.ru/wiki/%D0%9A%D0%B0%D1 ... 1%8B%D0%B5timurufa86 писал(а): ↑Чт дек 19, 2019 3:49 pmможете мне подсказать как в методе сделать таймер на 2-3 секунды
берем переменную
ждем 2-3 секунды
опять берем переменную
сравниваем ее с предыдущим значением
выполняем что либо по условию
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
-
- Сообщения: 65
- Зарегистрирован: Вт фев 17, 2015 8:40 pm
- Благодарил (а): 19 раз
- Поблагодарили: 2 раза
Re: Простые устройства / Simple Devices
все вроде дошло буду при смене статуса 1 или 0
1 засекать время в unix time
2 при смене статуса на 0 буду в методе от нынешнего времени вычитать засеченное время
3 если разнице меньше 2 секунд то значит движения не было если больше то значит было и включаем свет
что скажете такое будет работать??) конечно это все с большой погрешностью..((
1 засекать время в unix time
2 при смене статуса на 0 буду в методе от нынешнего времени вычитать засеченное время
3 если разнице меньше 2 секунд то значит движения не было если больше то значит было и включаем свет
что скажете такое будет работать??) конечно это все с большой погрешностью..((
-
- Сообщения: 189
- Зарегистрирован: Сб окт 12, 2019 2:10 pm
- Благодарил (а): 6 раз
- Поблагодарили: 30 раз
Re: Простые устройства / Simple Devices
У тебя включение света в методе StatusUpdated (или какой он там, MotionDetected?)timurufa86 писал(а): ↑Чт дек 19, 2019 4:35 pmи что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)tarasfrompir писал(а): ↑Чт дек 19, 2019 3:54 pmтак есть вот такое - https://mdminfo.ru/wiki/%D0%9A%D0%B0%D1 ... 1%8B%D0%B5timurufa86 писал(а): ↑Чт дек 19, 2019 3:49 pmможете мне подсказать как в методе сделать таймер на 2-3 секунды
берем переменную
ждем 2-3 секунды
опять берем переменную
сравниваем ее с предыдущим значением
выполняем что либо по условию
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
Ну вариант сохранять ещё в какое-то свойсво timestamp и проверять разницу во времени между сработками, это будет тоже самое истечение опеределенного времени.
- За это сообщение автора freesh поблагодарил:
- timurufa86 (Чт дек 19, 2019 6:47 pm)
- Рейтинг: 1.16%
Raspberry pi3, xiaomi, sonoff rf.
-
- Сообщения: 65
- Зарегистрирован: Вт фев 17, 2015 8:40 pm
- Благодарил (а): 19 раз
- Поблагодарили: 2 раза
Re: Простые устройства / Simple Devices
Я про это какраз и написал вышеfreesh писал(а):У тебя включение света в методе StatusUpdated (или какой он там, MotionDetected?)timurufa86 писал(а): ↑Чт дек 19, 2019 4:35 pmи что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)tarasfrompir писал(а): ↑Чт дек 19, 2019 3:54 pmтак есть вот такое - https://mdminfo.ru/wiki/%D0%9A%D0%B0%D1 ... 1%8B%D0%B5timurufa86 писал(а): ↑Чт дек 19, 2019 3:49 pmможете мне подсказать как в методе сделать таймер на 2-3 секунды
берем переменную
ждем 2-3 секунды
опять берем переменную
сравниваем ее с предыдущим значением
выполняем что либо по условию
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
Ну вариант сохранять ещё в какое-то свойсво timestamp и проверять разницу во времени между сработками, это будет тоже самое истечение опеределенного времени.
Отправлено с моего iPhone используя Tapatalk
-
- Сообщения: 65
- Зарегистрирован: Вт фев 17, 2015 8:40 pm
- Благодарил (а): 19 раз
- Поблагодарили: 2 раза
Re: Простые устройства / Simple Devices
Я про это какраз и написал вышеfreesh писал(а):У тебя включение света в методе StatusUpdated (или какой он там, MotionDetected?)timurufa86 писал(а): ↑Чт дек 19, 2019 4:35 pmи что эти данные дадут ?? мне нужно не сравнивать два значения на смену а проверять значение по ИСТЕЧЕНИИ ОПРЕДЕЛЕННОГО ВРЕМЕНИ в одном методе (за один запуск метода)tarasfrompir писал(а): ↑Чт дек 19, 2019 3:54 pmтак есть вот такое - https://mdminfo.ru/wiki/%D0%9A%D0%B0%D1 ... 1%8B%D0%B5timurufa86 писал(а): ↑Чт дек 19, 2019 3:49 pmможете мне подсказать как в методе сделать таймер на 2-3 секунды
берем переменную
ждем 2-3 секунды
опять берем переменную
сравниваем ее с предыдущим значением
выполняем что либо по условию
а эти олд и нью тут не прокатят ну можно их приминить но мне все равно нужен отчет времени
Ну вариант сохранять ещё в какое-то свойсво timestamp и проверять разницу во времени между сработками, это будет тоже самое истечение опеределенного времени.
Отправлено с моего iPhone используя Tapatalk
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Простые устройства / Simple Devices
Ну как бы работает - значит правильно сделали =D. На самом деле так и пишется...если время попадает в интервал (функция timeBetween), то включаем свет, иначе ничего не делаем... Вот такая логика.timurufa86 писал(а): ↑Чт дек 19, 2019 10:07 amПривет всем! возникла проблема иногда срабатывает датчик движения в комнате и ночью включается свет и мешает спать..)) кто как реализовал блокировку датчика движения? именно интересует логика . Я пока сделал по времени, что со столькито ночи до столькито не давать датчику срабатывать , но это очень тупо (((
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Простые устройства / Simple Devices
если хотите не тупо, можете кроме времени учитывать всё, что есть в системе -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');
}
win10 connect https://connect.smartliving.ru/profile/303
Re: Простые устройства / Simple Devices
Имеется датчик наличия сетевого напряжения 220в, опрос по MQTT каждые 20 секунд. Сеть есть имеем 0, сеть пропала имеем 1.
Пытаюсь настроить в методах чтобы в Телеграм приходило сообщение - Пропало напряжение/Восстановлено напряжение.
Пару лет назад настраивал (делал через Blockly) подобное и всё работало, сейчас не получается. Итог: статус в телеграмм приходит, но каждые 20 секунд - Восстановлено напряжение...
Искал по форуму, нашел код, и комментарий к нему - эти параметры передаются при вызове связанного метода и по ним можно определить действительно ли изменялось значение. если не изменялось, то ничего не делаем и выходим из метода. Но у меня из этого ничего не получилось((
В простых устройствах создал датчик состояния, в методах следующий код:
Может кто подскажет или направит в нужном направлении?
Пытаюсь настроить в методах чтобы в Телеграм приходило сообщение - Пропало напряжение/Восстановлено напряжение.
Пару лет назад настраивал (делал через 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);
}
-
- Сообщения: 189
- Зарегистрирован: Сб окт 12, 2019 2:10 pm
- Благодарил (а): 6 раз
- Поблагодарили: 30 раз
Re: Простые устройства / Simple Devices
Я бы сделал без return а :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); }
Код: Выделить всё
if ($params['NEW_VALUE']!=$params['OLD_VALUE']) {
if (getGlobal('Sensor_state01'.'.'.'value') == 0) {
say('Восстановлено напряжение', 10);
}
if (getGlobal('Sensor_state01'.'.'.'value') == 1) {
say('Пропало напряжение', 10);
}
}
Raspberry pi3, xiaomi, sonoff rf.