[Сценарий] Когда было последнее движение.

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Ответить
PAV
Сообщения: 970
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва

[Сценарий] Когда было последнее движение.

Сообщение PAV »

У меня при срабатывании любого датчика движения в доме обновляются свойства суммарного датчика движения
Следующий код в OnNewMinute позволяет куда угодно вывести информацию, когда последний раз было движение в доме.
Очень удобно для мобильных устройств, быстро посмотреть не было ли движения.

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

$ttiimmee=time();
$sensmov=gg("sensorMovementSUM.updated");
$senstime=$ttiimmee-$sensmov;
$movhour = ( $senstime / 3600 ) % 24;
$movmin = ( $senstime / 60 ) % 60;
$timmm=($movhour.":".$movmin);
if ($senstime>86400) $timmm="Больше суток";
sg("sensorMovementSUM.lastmove", $timmm);
 
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm

Re: Когда было последнее движение

Сообщение xor »

Как вариант, у меня в родительском классе датчиков движения при сработке любого обновляется системный ивент

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

    registerEvent('inhouseMovement', $details=gg($linked_room.'.title'),$expire_in=1);
В него записывается адрес и время последней сработки датчиков движения

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

EVENT              DETAILS                 ADDED
inhouseMovement     Кухня     2017-11-29 17:38:21
получим время отформатированное

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

date('Y-m-d H:i:s',registeredEventTime('inhouseMovement'))
получим детали

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

registeredEventDetails('inhouseMovement')
У кого нет последней функции

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

// Получить детали события по его имени
function registeredEventDetails($eventName) {
 $even=SQLSelectOne("SELECT * FROM events WHERE EVENT_NAME='".$eventName."'"); 
 if (is_array ($even )) {
  return $even['DETAILS'];
 } else {
  return false;
 }
}
Ответить