Neue Koubachi Labs (beta) API, komme nicht weiter :-(

Hi ich würde gerne meinen Pflanzensensor auslesen, aber leider funktioniert die alte API, für die es hier im Forum ein Script gibt nicht mehr :frowning:

Also wolle ich die neue API Version benutzt, aber habe keine Idee wie ich das hinbekomme :frowning:

Koubachi Labs is the developer program of Koubachi that gives you access to our API. You can find further information about the available API calls under „Documentation“.
Please note that the API is in beta and therefore not stable yet. The API can change any time!

To access API calls you require an app_key and your user_credentials which you can find below.
Keep your user_credentials and app_key secure!

Authentication
API calls require authentication. It has to contain the user’s secret credential and the app_key, i.e., the request URL must contain the ‚user_credentials‘ property with the single access token as value. For example:
https://api.koubachi.com/v2/plants.json?user_credentials=<KEY eintragen>&app_key=<KEY eintragen>

Response Format
Each request has to explicitly define its desired response format. Currently we support JSON and XML, where the preference should be given to JSON (XML might be deprecated in the future). Specifying the response format is supported in two different ways:

HTTP Accept Header (preferred): set your HTTP Accept header to application/json

URL Extension: extend the resource by the requested format type. For example:

https://api.koubachi.com/v2/plants.json?user_credentials=<KEY eintragen>&app_key=<KEY eintragen>

Return Values & Error Messages

We use the mapping of HTTP error codes to Rails error codes as defined here. In addition to the status code, the server MAY also send a error messages with a detailed description of the error or exception. The format of this error messages depend on the requested Content-Type. For example, if the Content-Type is set to ‚application/xml‘, an error message might look like this:

<?xml version=„1.0“ encoding=„UTF-8“?>
<errors>
<error>Login has already been taken</error>
<error>Email can’t be blank</error>
</errors>

und wenn ich die URL im Browser ausführe kommt auch schön diese Antwort:

[{„plant“:{„created_at“:„2015-11-27T07:19:22+01:00“,„display_position“:6,„fertilizer_id“:null,„fertilizer_type“:null,„id“:299602,„last_fertilizer_at“:null,„last_mist_at“:null,„last_water_at“:null,„name“:„Pflanzi“,„next_fertilizer_at“:„2015-12-11T07:19:22+01:00“,„next_mist_at“:null,„next_water_at“:null,„note“:null,„plant_type_family_id“:911,„pot_color“:-1,„pot_shape“:2,„size“:2,„space“:0,„updated_at“:„2015-11-27T07:21:28+01:00“,„user_id“:173853,„wcd_calibration_checked_at“:null,„wcd_calibration_ended_at“:null,„wcd_calibration_started_at“:null,„zone_id“:null,„location“:„Ka“,„vdm_calibration_start_pending“:false,„vdm_calibration_check_pending“:false,„vdm_next_calibration_check_at“:null,„vdm_last_calibration_check_at“:null,„vdm_calibration_in_progress“:false,„vdm_last_water_source“:null,„vdm_water_pending“:false,„vdm_water_level“:0.48306169044852404,„vdm_precalibrated“:false,„vdm_water_cycle“:0.0,„vdm_water_instruction“:„Use lime-deficient (downcooled boiled) water. Water moderately to moisten the substrate. As soon as the first drops of water pour out of the drainage hole, stop watering and remove the excess water from the saucer.“,„vdm_water_analyzing_until“:„2015-11-29T11:56:15+00:00“,„vdm_mist_pending“:false,„vdm_mist_level“:0.0,„vdm_mist_instruction“:„This plant does not require misting.“,„vdm_fertilizer_pending“:false,„vdm_fertilizer_level“:0.9052283948977975,„vdm_fertilizer_instruction“:„Use Flower fertilizer (e.g. N8-P12-K6). Follow the instructions on the bottle. Water as usual.“,„vdm_temperature_pending“:false,„vdm_temperature_advice“:null,„vdm_temperature_level“:0.5686857111394735,„vdm_temperature_instruction“:null,„vdm_temperature_hint“:„Koubachi is analyzing the temperature.“,„vdm_temperature_analyzing_until“:„2015-12-01T10:51:09+00:00“,„vdm_light_pending“:false,„vdm_light_advice“:null,„vdm_light_level“:0.22249500151252474,„vdm_light_instruction“:null,„vdm_light_hint“:„Koubachi is analyzing the lighting conditions.“,„vdm_light_analyzing_until“:„2015-12-05T10:51:09+00:00“,„pot_color_hex“:„ffffff“,„has_smart_device_associated“:true,„plant_photos“:}}]

Wäre schön wenn mir jemand helfen könnte :rolleyes:

Wer suchet der findet :slight_smile: Thema > JSON

IP-Symcon - Wie kann ich… 2.0

$content = Sys_GetURLContent("https://api.koubachi.com/v2/plants.json?user_credentials=<KEY eintragen>&app_key=<KEY eintragen>");
$json = json_decode($content);
print_r($json);

Wenn es mit Sys_GetURLContent nicht klappt, dann mit cURL machen und die Header wie von denen gewünscht setzen.

Grüße,
Chris

Danke !!! Klappt super !

Hier ein Auszug was er dann ausspuckt:

Array
(
    [0] => stdClass Object
        (
            [plant] => stdClass Object
                (
                    [created_at] => 2015-11-27T07:19:22+01:00
                    [display_position] => 6

wie könnte ich nun z.B. den Wert [display_position] rausfiltern ?

Siehe mein Link, da gibt es einige Beispiele :wink:

stdClass Object wird mit „->“ angesprochen und ein Array Wert mit z.B. „[1]“

-Chris-

10000x mal danke hab es nun hinbekommen :smiley:

Aber weis jemand was das für Einheiten sind ? In der App steht :

Wasser: 85%,
Temperatur: 26,2°C
Licht 0.0lx

Array
(
    [0] => stdClass Object
        (
            [plant] => stdClass Object
                (
                    [created_at] => 2015-11-27T07:19:22+01:00
                    [display_position] => 6
                    [fertilizer_id] => 
                    [fertilizer_type] => 
                    [id] => 299602
                    [last_fertilizer_at] => 
                    [last_mist_at] => 
                    [last_water_at] => 
                    [name] => Pflanzi
                    [next_fertilizer_at] => 2015-12-11T07:19:22+01:00
                    [next_mist_at] => 
                    [next_water_at] => 
                    [note] => 
                    [plant_type_family_id] => 911
                    [pot_color] => -1
                    [pot_shape] => 2
                    [size] => 2
                    [space] => 0
                    [updated_at] => 2015-11-27T07:21:28+01:00
                    [user_id] => 173853
                    [wcd_calibration_checked_at] => 
                    [wcd_calibration_ended_at] => 
                    [wcd_calibration_started_at] => 
                    [zone_id] => 
                    [location] => Ka
                    [vdm_calibration_start_pending] => 
                    [vdm_calibration_check_pending] => 
                    [vdm_next_calibration_check_at] => 
                    [vdm_last_calibration_check_at] => 
                    [vdm_calibration_in_progress] => 
                    [vdm_last_water_source] => 
                    [vdm_water_pending] => 
                    [vdm_water_level] => 0.48306169044852
                    [vdm_precalibrated] => 
                    [vdm_water_cycle] => 0
                    [vdm_water_instruction] => Use lime-deficient (downcooled boiled) water. Water moderately to moisten the substrate. As soon as the first drops of water pour out of the drainage hole, stop watering and remove the excess water from the saucer.
                    [vdm_water_analyzing_until] => 2015-11-29T11:56:15+00:00
                    [vdm_mist_pending] => 
                    [vdm_mist_level] => 0
                    [vdm_mist_instruction] => This plant does not require misting.
                    [vdm_fertilizer_pending] => 
                    [vdm_fertilizer_level] => 0.9052283948978
                    [vdm_fertilizer_instruction] => Use Flower fertilizer (e.g. N8-P12-K6). Follow the instructions on the bottle. Water as usual.
                    [vdm_temperature_pending] => 
                    [vdm_temperature_advice] => 
                    [vdm_temperature_level] => 0.56868571113947
                    [vdm_temperature_instruction] => 
                    [vdm_temperature_hint] => Koubachi is analyzing the temperature.
                    [vdm_temperature_analyzing_until] => 2015-12-01T10:51:09+00:00
                    [vdm_light_pending] => 
                    [vdm_light_advice] => 
                    [vdm_light_level] => 0.22638638153542
                    [vdm_light_instruction] => 
                    [vdm_light_hint] => Koubachi is analyzing the lighting conditions.
                    [vdm_light_analyzing_until] => 2015-12-05T10:51:09Z
                    [pot_color_hex] => ffffff
                    [has_smart_device_associated] => 1
                    [plant_photos] => Array
                        (
                        )

                )

        )

)

Erneut…wer suchet der findet :stuck_out_tongue: :wink:

Koubachi Binding · openhab/openhab Wiki · GitHub (unten bei „Examples“ stehen ein paar Infos zu den Werten)
Bewässerung Gardena Wunderground Regen/Wetterprognose E-Mail • HomeMatic-Forum / FHZ-Forum (auch hier gibt es die passenden Infos)

Grüße,
Chris

HI danke das bezieht sich auf die alte Api und da haben die andere Einheiten gehabt :frowning:

Das hatte ich auch gefunden, aber leider passt das nicht zur neuen API :frowning:

Hier mein Script, ich weis aber nicht, ob meine Umrechnung richtig sind, und warum es kein Batterielevel zum auslesen gibt:

<?

$datenid=59255 /*[The Project\Pfanzensensor\Daten]*/ ;
$batterieid=57147 /*[The Project\Pfanzensensor\Batterie]*/ ;
$bodenfeuchteid=33608 /*[The Project\Pfanzensensor\Bodenfeuchte 2]*/ ;
$lichtstaerkeid=34355 /*[The Project\Pfanzensensor\Lichtstärke]*/ ;
$temperaturid=57197 /*[The Project\Pfanzensensor\Temperatur]*/ ;
$LetzteDatenVon=getvalue($datenid);


$user_credentials='    ';
$app_key='      ';

//************ Ab hier nichts mehr ändern ******************************************************

$url="https://api.koubachi.com/v2/plants.json?user_credentials=".$user_credentials."&app_key=".$app_key;



$content = Sys_GetURLContent("$url");
$json = json_decode($content);


$name=$json[0]->plant->name;
//$batterie=$json[0]->plant-> *100,2);
$duengerlevel=$json[0]->plant->vdm_fertilizer_level;
$temperatur=$json[0]->plant->vdm_temperature_level;
$temperatur=$temperatur * 44.4885454;


$licht=$json[0]->plant->vdm_light_level;
//$licht=log10($licht);

$wasser=$json[0]->plant->vdm_water_level;
$wasser=($wasser* 170.989362);


$LastTransmissionTime =$json[0]->plant->updated_at;
$LetzteUebertragungszeit = date("d.m.Y H:i", strtotime($LastTransmissionTime))." Uhr";
print $LetzteUebertragungszeit;
If ($LetzteUebertragungszeit != $LetzteDatenVon) {
    echo " Daten geändert!";
    SetValue($datenid,$LetzteUebertragungszeit);

   
    //SetValue($batterieid,$Batteriestatus);

    
    SetValue($bodenfeuchteid,$wasser );

 
    SetValue($temperaturid,$temperatur);

    
    SetValue($lichtstaerkeid,$licht);
}
else {
    echo " Daten nicht geändert...";
}
?>

Danke fürs veröffentlichen :slight_smile:

Ob die Werte stimmen, müsstest du doch anhand der App oder den Daten online vergleichen können?! Je nachdem was es da so gibt. Vielleicht findet sich als eingeloggter User auch noch irgendwo eine Doku zur API? Oder noch mehr Werte über einen anderen Link?

Grüße,
Chris

Ja das komische ist, das über die Api, die Werte alle 12-24h aktualisiert werden, ist das nicht toll zum vergleichen ;-(

Hi,

was muss ich an dem Script ändern, wenn ich mehrere Koubachi-Sensoren im Einsatz habe?

Wenn ich das Script ausführe, kommt als Resultat immer „Daten nicht geändert“.

Wenn ich die Variable „content“ auslese, erhalte ich nur Daten zu der ersten Pflanze.

Gruß

Jimmy

Vergiss das Skript, es ist eh bald damit vorbei, und zur Zeit kann ich die Sensoren auch nur auslesen, mit extremen Versatz von manchmal drei Tagen

Gesendet von iPhone mit Tapatalk

Erfolgreiche Cloud-Dienste werden gerne mal von großen Konzernen gekauft und dann dicht gemacht. Koubachi spricht demnächst Gardena. Bleibt zu hoffen, dass es für die alten Geräte ein Update bekommen. Sonst ist das nur noch Elektronikschrott. Das Gesetz der Cloud. :rolleyes: