forked from dico/fuTelldus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cron_temp_log.php
114 lines (64 loc) · 3.28 KB
/
cron_temp_log.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
ob_start();
session_start();
/* Connect to database
--------------------------------------------------------------------------- */
require("lib/config.inc.php");
// Create DB-instance
$mysqli = new Mysqli($host, $username, $password, $db_name);
// Check for connection errors
if ($mysqli->connect_errno) {
die('Connect Error: ' . $mysqli->connect_errno);
}
// Set DB charset
mysqli_set_charset($mysqli, "utf8");
/* Get oAuth class
--------------------------------------------------------------------------- */
require_once 'HTTP/OAuth/Consumer.php';
/* ##################################################################################################################### */
/* ######################################## SCRIPT RUNS BELOW THIS LINE ################################################ */
/* ##################################################################################################################### */
/* Find users
--------------------------------------------------------------------------- */
$query = "SELECT * FROM ".$db_prefix."users";
$result = $mysqli->query($query);
while ($row = $result->fetch_array()) {
/* Connect to telldus
--------------------------------------------------------------------------- */
$query2 = "SELECT * FROM ".$db_prefix."users_telldus_config WHERE user_id='{$row['user_id']}'";
$result2 = $mysqli->query($query2);
$telldusConf = $result2->fetch_array();
// Define variables for oAuth
define('URL', 'http://api.telldus.com'); //https should be used in production!
define('REQUEST_TOKEN', constant('URL').'/oauth/requestToken');
define('AUTHORIZE_TOKEN', constant('URL').'/oauth/authorize');
define('ACCESS_TOKEN', constant('URL').'/oauth/accessToken');
define('REQUEST_URI', constant('URL').'/xml');
define('BASE_URL', 'http://'.$_SERVER["SERVER_NAME"].dirname($_SERVER['REQUEST_URI']));
/* Get sensors for user that should me monitored
--------------------------------------------------------------------------- */
$query2 = "SELECT * FROM ".$db_prefix."sensors WHERE user_id='{$row['user_id']}' AND monitoring='1'";
$result2 = $mysqli->query($query2);
while ($sensor = $result2->fetch_array()) {
/* Get sensordata
--------------------------------------------------------------------------- */
$consumer = new HTTP_OAuth_Consumer($telldusConf['public_key'], $telldusConf['private_key'], $telldusConf['token'], $telldusConf['token_secret']);
$params = array('id'=> $sensor['sensor_id']);
$response = $consumer->sendRequest(constant('REQUEST_URI').'/sensor/info', $params, 'GET');
// Get XML and create array with SimpleXMLElement
$xmlData = $response->getBody();
$xml = new SimpleXMLElement($xmlData);
// Trim values
$lastUpdated = trim($xml->lastUpdated);
$tempValue = trim($xml->data[0]['value']);
$humidityValue = trim($xml->data[1]['value']);
// Add values to DB
$queryInsert = "REPLACE INTO ".$db_prefix."sensors_log SET
sensor_id='". $sensor['sensor_id'] ."',
time_updated='". $lastUpdated ."',
temp_value='". $tempValue ."',
humidity_value='". $humidityValue ."'";
$resultInsert = $mysqli->query($queryInsert);
} //end-sensorlist
} //end-while-users
?>