Страница 2 из 2

Re: активация сценария с использования двойного нажатия

Добавлено: Ср фев 22, 2017 2:48 pm
directman66
кстати тут нашел образы firmware для заливки в соноф тач. Получается, что он сделан на базе Generic ESP8285 Module

https://github.com/KmanOz/Sonoff-HomeAs ... er/arduino

Re: активация сценария с использования двойного нажатия

Добавлено: Ср фев 22, 2017 3:06 pm
DimSun75
8285 это тот же 8266, только с флешкой внутри. Так что не принципиально

Re: активация сценария с использования двойного нажатия

Добавлено: Ср фев 22, 2017 3:45 pm
Chainik
Тут добрый человек сделал видео о том, как чисто программно можно реализовать различную реакцию на одинарное и двойное нажатие
https://www.youtube.com/watch?v=ghi6KyTTDcE

Re: активация сценария с использования двойного нажатия

Добавлено: Вс апр 16, 2017 9:19 am
directman66
В общем попробовал вариант, предложенный в предыдущем сообщении, работает как то не стабильно. Вариант с таймером более удобный и настраиваемый.

Вызов метода выключателя sonoff touch с прошивкой wifi-iot через встроенный плагин MD. Чтобы отделить мух от котлет, удаленное включение через mqtt через пост на сервер /sontouch/output12 команды 1. Таким образом мы можем вызывать нужный на метод и удаленно управлять самим выключателем.

метод timer
SPOILERSPOILER_SHOW
//Say('нажата кнопка');
$delay=gg('touchtimer.delay');

If (gg('touchtimer.enable')==1) {
$count=gg('touchtimer.counter');
$count++;
Sg('touchtimer.counter',$count);
// Say('таймер работает '.$count);


} else{
Sg('touchtimer.enable',1);
//Say('запущен таймер');
SetTimeOut("touchtimer","Runscript('touchtimer');",$delay);
}
сценарий touchtimer
SPOILERSPOILER_SHOW
$lightoff=gg('touchtimer.lightoff');
$lighton=gg('touchtimer.lighton');
$count=gg('touchtimer.counter');

say('Количество нажатий '.$count,2);


If ($count==$lightoff) {
say('Запускаю сценарий выключения света в квартире',2);
Runscript('lightoff');}

If ($count==$lighton) {
say('Запускаю сценарий включения света в квартире',2);
Runscript('light_on');}

Sg('touchtimer.enable',0);
Sg('touchtimer.counter',0);

Работает как часы, можно повесить хоть 100 команд на разное количество нажатий. Непонятно только как отслеживать долгое нажатие.