Api auslesen

Kraxelpaul

Grünschnabel
Hallo zusammen,
ich möchte meine eigene Api auslesen und bestimmte Werte weiterverarbeiten.
Die Api liefert folgendes:

{"esp8266id": "2984517", "software_version": "NRZ-2020-129", "sensordatavalues":[{"value_type":"SDS_P1","value":"1.80"},{"value_type":"SDS_P2","value":"1.70"},{"value_type":"temperature","value":"22.20"},{"value_type":"humidity","value":"99.90"},{"value_type":"samples","value":"4378289"},{"value_type":"min_micro","value":"32"},{"value_type":"max_micro","value":"20325"},{"value_type":"signal","value":"-48"}]}

Ich möchte den ersten value (momentan 1.80) und den zweiten value (momentan 1.70) auslesen.
Mein Code sieht so aus:

PHP:
$json = file_get_contents('http://www.zschorlau-xxxxx/yyyy/xxx.log');   //<--- Hier deine Sensor ID eintragen
$json_ergebnis=json_decode($json, true);
 
$PM10=$json_ergebnis[0]->sensordatavalues[0]->value;
$PM25=$json_ergebnis[0]->sensordatavalues[1]->value;

if (($PM10 <= "0")or($PM10 <= "")){ 
$PM10 = "3.26";
}
else {
$PM10 = $PM10;
}
if (($PM25 <= "0")or($PM25 <= "")){ 
$PM25 = "1.89";
}
else {
$PM25 = $PM25;
}
?>

Die Variablen PM10 und PM 25 bringe ich dann an anderer Stelle zur Anzeige.

Leider funktioniert es so nicht, die Testseite gibt immer nur den Default-Wert an (3.26 und 1.89).

Wer hat einen Tip für mich?

Danke schon mal vorab.
 

basti1012

Erfahrenes Mitglied
So bekomme ich
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);


$json = file_get_contents('gg.log');
$json_ergebnis=json_decode($json, true);

$PM10=$json_ergebnis['sensordatavalues'];
 
echo $PM10[0]['value'];
echo "<br>";
echo $PM10[1]['value'];
?>

die ausgabe
1.80 1.70
 

Kraxelpaul

Grünschnabel
Danke, funzt jetzt.
Habe das Script noch etwas angepasst, damit Default-Werte eingetragen werden, falls mal keine Meßwerte an die Api gehen.
 

Neue Beiträge