-
Notifications
You must be signed in to change notification settings - Fork 0
/
process_sensors.php
66 lines (54 loc) · 1.84 KB
/
process_sensors.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
include_once 'core.php';
if(@$_GET['key'] != $_key)
{
header('Location: https://ifttt.com');
}
if(isset($_GET['sensor']))
{
// фиксируем время
$unixtime = time();
$strtime = date('d.m.Y H:i:s', $unixtime);
// проверяем наличие сенсора в бд
$sensor = mysql_real_escape_string($_GET['sensor']);
$q = mysql_query("SELECT * FROM `ewelink_sensors` WHERE `short_name` = '".$sensor."'");
if(mysql_num_rows($q) < 1)
{
die(json_encode(array('error' => 'No such device')));
}
$_SENSOR = mysql_fetch_assoc($q);
// пишем лог
$log_string = $strtime.'/'.$unixtime.',,'.$sensor.PHP_EOL;
$f = fopen('actions.log', 'a+');
flock($f, LOCK_EX);
fputs($f, $log_string);
flock($f, LOCK_UN);
fclose($f);
// определяем комнату
$_ROOM = mysql_fetch_assoc(mysql_query("SELECT * FROM `rooms` WHERE `id` = ".$_SENSOR['id_room']));
// записываем в бд событие
if(mysql_query("INSERT INTO `ewelink_sensors_events`(`id_sensor`, `time`) VALUES (".$_SENSOR['id'].", ".$unixtime.")"))
{
// событие успешно записано, определяем, нужно ли нам слать уведомление
if($_SENSOR['notify'] == 1)
{
$_notify = true;
$_message = '<b>'.$_SENSOR['full_name'].'</b> | '.$_ROOM['name'].' <i>('.$strtime.')</i>'.PHP_EOL;
$_message .= 'Сработал датчик';
}
else
{
$_notify = false;
}
}
else
{
$_notify = true;
$_message = '(!!!) Сработал датчик <b>'.$_SENSOR['name'].'</b> | '.$_ROOM['name'].' <i>('.$strtime.')</i>'.PHP_EOL;
$_message .= mysql_error();
}
if($_notify)
{
sendMessage($_CHAT['id'], $_message, 'HTML');
}
}