/** * @param array $device * @param NAWSApiClient $client * @return array $report : array with device or module ids as keys, and their data of the month as values * @brief retrieve month data for a device and its modules */ function getMonthReport($device, $client) { $report = array(); //step between two measurements $scale = '1month'; //type of measures wanted $type = "Temperature,CO2,Humidity,Pressure,Noise,max_temp,date_max_temp,min_temp,date_min_temp,max_hum,date_max_hum,min_hum,date_min_hum,max_pressure,date_max_pressure,min_pressure,date_min_pressure,max_noise,date_max_noise,min_noise,date_min_noise,max_co2,date_max_co2,min_co2,date_min_co2"; // main device try { $measure = $client->getMeasure($device['_id'], NULL, $scale, $type, NULL, "last", NULL, FALSE, FALSE); $measure = addMeasureKeys($measure, $type); $report[$device['_id']] = $measure; } catch (Netatmo\Exceptions\NAClientException $ex) { $report[$device['_id']] = "Error retrieving measure for " . $device['_id'] . ": " . $ex->getMessage(); } foreach ($device['modules'] as $module) { switch ($module['type']) { //Outdoor case "NAModule1": $type = "temperature,humidity"; break; //Wind Sensor //Wind Sensor case "NAModule2": $type = "WindStrength,WindAngle,GustStrength,GustAngle,date_max_gust"; break; //Rain Gauge //Rain Gauge case "NAModule3": $type = "sum_rain"; break; // Indoor // Indoor case "NAModule4": $type = "temperature,Co2,humidity,noise,pressure"; break; } try { $measure = $client->getMeasure($device['_id'], $module['_id'], $scale, $type, NULL, "last", NULL, FALSE, FALSE); $measure = addMeasureKeys($measure, $type); $report[$module['_id']] = $measure; } catch (Netatmo\Exceptions\NAClientException $ex) { $report[$module['_id']] = "Error retrieving measure for " . $module['_id'] . ": " . $ex->getMessage(); } } return $report; }
if (isset($device['read_only']) && $device['read_only']) { $friends[] = $device; } else { $users[] = $device; } } } //print first User's device Then friends, then favorite printDevices($users, "User's weather stations"); printDevices($friends, "User's friends weather stations"); printDevices($fav, "User's favorite weather stations"); // now get some daily measurements for the last 30 days $type = "temperature,Co2,humidity,noise,pressure"; //first for the main device try { $measure = $client->getMeasure($device['_id'], NULL, "1day", $type, time() - 24 * 3600 * 30, time(), 30, FALSE, FALSE); printMeasure($measure, $type, $tz, $device['_id'] . "'s daily measurements of the last 30 days"); } catch (NAClientException $ex) { handleError("An error occured while retrieving main device's daily measurements: " . $ex->getMessage() . "\n"); } //Then for its modules foreach ($device['modules'] as $module) { //requested data type depends on the module's type switch ($module['type']) { case "NAModule3": $type = "sum_rain"; break; case "NAModule2": $type = "WindStrength,WindAngle,GustStrength,GustAngle,date_max_gust"; break; case "NAModule1":