Moin…
… ich hab da mal was vorbereitet. wuppi83 hatte mich gebeten mir mal die Api anzuschauen. Nach 3 Stunden google und weiteren 3 Stunden probieren habe ich es geschaft an die Daten zu kommen.
Alles nicht besonders schön… aber ein Anfang. Ich bin kein Fachmann… vielleicht gehts es einfacher und besser.
Das Skript kann gerne erweitert, verbessert etc. werden. Ich möchte aber bitten dieses dann mit allen Usern hier im Forum zu teilen.
Ich mach den Anfang. Jetzt seid ihr dran!
Viel Spaß und erfolg damit.
Gruß,
Peter
Skript v.0.1 (08.07.2014) => 1. Entwurf
Skript v.0.2 (09.07.2014) => Abfrage „Obtain garden location statuses“ Mehr Daten zur Auswahl. Link zum parrot Flower Power Wiki
<?
/*
Ersteller: peterchrisben
Forum-Link: http://www.ip-symcon.de/forum/threads/25035-parrot-flower-power-pflanzensensor
Datum: 09.07.2014
Version: 0.2
*/
// First we set our credentials
$username = 'HIER DEINEN USERNAMEN EINTRAGEN';
$password = 'HIER DEIN PASSWORD EINTRAGEN';
// Get your client credentials here: https://apiflowerpower.parrot.com/api_access/signup
// Anmelden, danach erhälst Du beides per email.
$client_id = 'HIER DEINE CLIENT-ID EINTRAGEN';
$client_secret = 'HIER DEINEN CLIENT-SECRET-KEY EINTRAGEN';
$clienttoken_post = array(
"username" => $username,
"password" => $password,
"client_id" => $client_id,
"client_secret" => $client_secret,
"grant_type" => 'password'
);
// access_token holen
$curl = curl_init( 'https://apiflowerpower.parrot.com/user/v1/authenticate' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$json_response = curl_exec($curl);
curl_close($curl);
$authObj = json_decode($json_response);
$access_key = $authObj->access_token;
//print_r($authObj); // debug : zeigt access token etc. an.
// Sensor übersicht abholen
$curl = curl_init( 'https://apiflowerpower.parrot.com/sensor_data/v3/sync' );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $access_key ) );
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response_sensors = curl_exec( $curl );
curl_close($curl);
$response_sensors = json_decode($response_sensors);
$response_sensors = $response_sensors ->{'locations'};
print_r($response_sensors); // debug : Zeigt eine Liste der Sensoren an.
// Sensor Nummer 1
$sensor1 = $response_sensors['0']->{'location_identifier'};
//$sensor2 = $response_sensors['1']->{'location_identifier'};
// Sensor Daten holen ( hier als Beispiel von Sensor #1 )
$curl = curl_init( 'https://apiflowerpower.parrot.com/sensor_data/v2/sample/location/'.$sensor1.'' );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $access_key ) );
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response_data = curl_exec( $curl );
curl_close($curl);
$response_data = json_decode($response_data);
$response_data = $response_data ->{'samples'};
$response_data = array_reverse($response_data); // Dreht das array um und liefer die aktuellsten Werte zuerst.
$response_data = array_slice($response_data, 0, 10); // Holt die letzten 10 Werte ab.
//print_r($response_data); // debug : zeigt die letzten 10 Datensätze an.
// Ausgabe in Variablen
//SetValue(10824 /*[TEST\FLOWER POWER\Capture Time]*/, ($response_data['0']->{'capture_ts'})); // String Variable mit Capture Time
//SetValue(29396 /*[TEST\FLOWER POWER\Temperature]*/, round(($response_data['0']->{'air_temperature_celsius'}),1)); // Float Variable mit Air Temp.
//SetValue(30565 /*[TEST\FLOWER POWER\VWC Percent]*/, round(($response_data['0']->{'vwc_percent'}),2)); // Float Variable mit vwc_percent
//SetValue(48408 /*[TEST\FLOWER POWER\par_umole_m2s]*/, round(($response_data['0']->{'par_umole_m2s'}),5)); // Float Variable mit par_umole_m2s
// NEU v.0.2
// Obtain garden location statuses
$curl = curl_init( 'https://apiflowerpower.parrot.com/sensor_data/v3/garden_locations_status' );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $access_key ) );
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response_gardenstatus = curl_exec( $curl );
curl_close($curl);
$response_gardenstatus = json_decode($response_gardenstatus);
print_r($response_gardenstatus); // debug : Zeigt "garden location statuses" an.
?>