Ich lese die Daten von der Netatmo Station wie folgt aus:
1 | <?php
|
2 |
|
3 | $intext=$_GET['intext'];
|
4 | $password="XXXXXX";
|
5 | $username="XXXXXX";
|
6 |
|
7 |
|
8 | $app_id = "XXXXXX";
|
9 | $app_secret = "XXXXXX";
|
10 |
|
11 | $token_url = "https://api.netatmo.net/oauth2/token";
|
12 | $postdata = http_build_query(
|
13 | array(
|
14 | 'grant_type' => "password",
|
15 | 'client_id' => $app_id,
|
16 | 'client_secret' => $app_secret,
|
17 | 'username' => $username,
|
18 | 'password' => $password
|
19 | )
|
20 | );
|
21 |
|
22 | $opts = array('http' =>
|
23 | array(
|
24 | 'method' => 'POST',
|
25 | 'header' => 'Content-type: application/x-www-form-urlencoded',
|
26 | 'content' => $postdata
|
27 | )
|
28 | );
|
29 |
|
30 | $context = stream_context_create($opts);
|
31 | $response = file_get_contents($token_url, false, $context);
|
32 |
|
33 | $params = null;
|
34 | $params = json_decode($response, true);
|
35 | $api_url = "https://api.netatmo.net/api/getuser?access_token=" . $params['access_token'];
|
36 | $requete = file_get_contents($api_url);
|
37 |
|
38 | $url_devices = "https://api.netatmo.net/api/devicelist?access_token=" . $params['access_token'];
|
39 | $resulat_device = file_get_contents($url_devices);
|
40 | $json_devices = json_decode($resulat_device,true);
|
41 | $module_interne = $json_devices["body"]["devices"][0]["_id"];
|
42 | $module_externe = $json_devices["body"]["modules"][1]["_id"];
|
43 | $module_weitere = $json_devices["body"]["modules"][2]["_id"];
|
44 |
|
45 |
|
46 | $url_mesuresrainHour = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_weitere . "&scale=1hour&type=sum_rain&date_end=last";
|
47 | $mesuresrainHour = file_get_contents($url_mesuresrainHour);
|
48 |
|
49 |
|
50 | if ($intext == "rainHour")
|
51 | echo $mesuresrainHour ;
|
52 |
|
53 | ?>
|
Nun möchte ich gerne eine Modifikation mache, um die Werte der letzten
Stunde auszulesen, ohne dass bei der vollen Stunde auf 0 gesetzt wird.
Das sollte so funktionieren:
1 | var d = new Date();
|
2 | var t = 1000 * 60 * 60
|
3 | t = d.getTime() - t;
|
4 | d = new Date(t);
|
5 | httpmesures = getResponse("https://api.netatmo.net/api/getmeasure","access_token="+token+"&device_id="+int_id+"&module_id="+rain_id+"&scale=1day&type=sum_rain&date_begin="+d.toUTCString())
|
6 | data = JSON.parse(httpmesures)
|
7 | for (var i in data.body[0].value) {
|
8 | rain_week = rain_week + data.body[0].value[i][0]
|
9 | }
|
10 | rain_week = rain_week.toFixed(2)
|
Wenn ich nun aber den Teil einfüge, dann funktioniert das Skript nicht
mehr. Was mache ich falsch?
NEU EINGEFüGT
1 | <?php
|
2 | var d = new Date();
|
3 | var t = 1000 * 60 * 60
|
4 | t = d.getTime() - t;
|
5 | d = new Date(t);
|
GEÄNDERT
1 | ...
|
2 | "&scale=1hour&type=sum_rain&date_begin="+d.toUTCString();
|
3 | ...
|