Автоматизация на основе датчика открытия двери
решил поделиться своими наработками по увеличению уровню дзен по автоматизации двери:
Дано:
1)Замок обычный, механический )
2) На двери датчик открытия двери aqura, подключенный к шлюзу через плагин Xiaomi Home.
3) Объект простые устройтсва OpenClose1
4) IP-видеокамера, установленная напротив двери.
5) Выключатель света Sonoff touch с прошивкой wifi-iot
Задачи:
1) Отправка сообщения об открытии и закрытии двери в телеграмм
2) Включение света при открытии двери и выключение через 5 минут
3) Уведомление о необходимости закрыть входную дверь.
Решение:
сценарий dvertelega:
$image_url="http://192.168.1.32/webcapture.jpg?command=snap&channel=0";
$result=getURL($image_url,0);
$save_to="./cached/cam1.jpg"; // куда сохранять
SaveFile($save_to, $result);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
echo gg("Openclose01.status");
$open=gg("Openclose01.status");
echo $open;
if ($open==1)
{$text="Входная дверь закрыта!!!$dver";
//cm('Relay12.turnOff');
SetTimeOut("Relay12OffTimer","callMethod('Relay12.turnOff');",300);
} else
{$text="Входная дверь открыта!!!$dver";
SetTimeOut("dveropen","rs('dvertimer');",180);
cm('Relay12.turnOn');}
//$telegram_module->sendMessageToAll($text);
$telegram_module->sendImageToAll($save_to,$text);
Сценарий dvertimer:
$image_url="http://192.168.1.32/webcapture.jpg?command=snap&channel=0";
$result=getURL($image_url,0);
$save_to="./cached/cam1.jpg"; // куда сохранять
SaveFile($save_to, $result);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$open=gg("Openclose01.status");
echo $open;
if ($open==0)
{$text="Внимание, вы забыли закрыть входную дверь!!!";
$telegram_module->sendImageToAll($save_to,$text);
say ($text,3);
SetTimeOut("dveropensay","rs(saygoogle, array('text' =>$text)); m. ",10);
SetTimeOut("dveropen","rs('dvertimer');",180);
}
Метод change объекта OpenClose1
rs("dvertelega");
В плагине XiaomiHome устройство Magnet 2017-08-20 привязано к нашему объекту.
no_close: 300; status: 1 (Openclose01.status); voltage: 3035 (Openclose01.voltage);
Екатеринбург, Россия
На форуме: directman66