+ Antworten
Ergebnis 1 bis 9 von 9
  1. #1
    Registriert seit
    Apr 2019
    Ort
    Schweiz
    Beiträge
    7

    Standard API Abfrage. Einzelne Werte auswerten.

    Hallo zusammen,
    ich möchte über API gewisse Sensorwert auslesen und diese dann in eine Variable Schrieben.
    Die API Abfrage geht ohne Probleme. Es wird alles angezeigt.

    Nur krieg ich es nicht hin einzelne Werte weiterzuverarbeiten.

    PHP-Code:
    $cont file_get_contents("http://192.168.75.171/api/circuit/all?apiKey={fdd12b52-8c7a-4b17-928c-4b7a5ab9c2a5}");
    $info_con json_decode($cont);

    echo 
    "\n";

    //var_dump($info_con);


    $content Sys_GetURLContent("http://192.168.75.171/api/circuit/all?apiKey={fdd12b52-8c7a-4b17-928c-4b7a5ab9c2a5}");
    $json json_decode($content);
    //echo "wert".$json->id->parmams; // Geht nicht --> Notice:  Trying to get property 'parmams' of non-object in /var/lib/symcon/scripts/40281.ips.php on line 41
    echo "wert".$json->id;  // Geht -- > Output: Wert0
    echo "\n";

    print_r($json); //Es wird alles angezeigt 
    Ich würde gern mal folgenden Wert dann in eine Variable schreiben.
    Krieg es aber nicht hin diesen anzuzeigen.
    [type] => moisture
    [value] => 59

    Der ganze Output liegt als Datei bei, da dieser doch einige Zeilen hat.
    API_01.txt ist komplett und wurde mit file_get_contents ausgelesen.
    API_02.txt ist nur der Anfang und wurde mit Sys_GetURLContent ausgelesen.

    Wie im Script erläutert.
    //echo "wert".$json->id->parmams; // Geht nicht --> Notice: Trying to get property 'parmams' of non-object in /var/lib/symcon/scripts/40281.ips.php on line 41

    echo "wert".$json->id; // Geht -- > Output: Wert0

    Weiter komme ich nicht.
    Hat jemand eine Idee wie ich das genau machen müsste.

    Danke
    Roland
    Angehängte Dateien Angehängte Dateien
    IPS 5.2 (Docker) , IPS Z-Wave Gateway, Sonos, Netatmo,

  2. #2
    Registriert seit
    Aug 2016
    Beiträge
    2,373

    Hab mir das jetzt nicht genau angeguckt, aber steht da nicht "params"?
    Du schreibst "parmams"

    Grüße,
    Kai
    IPS 5.1 Ninja, auf Tinkerboard und RPI, piVCCU, Homematic & Homematic IP, diverse Tasmota Geräte, Shelly, GHoma, LG HomBot, Sonos, Tvheadend, HomeKit, AppleTV

  3. #3
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,111

    Wenn man Dir bei so großen JSON helfen soll dann am besten
    PHP-Code:
    var_export($data); 
    nutzen, und die Ausgabe in ein txt posten. Ansonsten sieht man zwar die Struktur, kann aber nicht einfach mit den Daten arbeiten um das zu testen.

  4. #4
    Registriert seit
    Apr 2011
    Beiträge
    1,997

    der Tippfehler sollte schon einiges an Erhellung liefern
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  5. #5
    Registriert seit
    Apr 2019
    Ort
    Schweiz
    Beiträge
    7

    Am Tipfehler lag es leider nicht.

    echo "wert".$json->id->params;

    Fehlermeldung
    Notice: Trying to get property 'params' of non-object in /var/lib/symcon/scripts/40281.ips.php on line 41
    Meldung hilft mit jetzt gerade nicht viel.

    Anbei noch der var_export

    Ich denke irgendwie muss ich von oben nach unten in der Struktur damit ich den Wert auslesen kann.
    Hab schon einiges versucht. Geht aber nicht.
    Angehängte Dateien Angehängte Dateien
    IPS 5.2 (Docker) , IPS Z-Wave Gateway, Sonos, Netatmo,

  6. #6
    Registriert seit
    May 2019
    Beiträge
    4

    Nach meinem Verständnis beim schnellen Überfliegen müsstest Du über

    PHP-Code:
    $json->params 
    oder

    PHP-Code:
    $json['params'
    auf die Werte zugreifen können, je nachdem wie das gecastet ist.

  7. #7
    Registriert seit
    Apr 2011
    Beiträge
    1,997

    Stimmt, er hat ja ID noch in der Abfrage mit drin, aber die liegt auf der selben Ebene wie params
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  8. #8
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,111

    Zitat Zitat von Nightman Beitrag anzeigen
    Ich würde gern mal folgenden Wert dann in eine Variable schreiben.
    Krieg es aber nicht hin diesen anzuzeigen.
    [type] => moisture
    [value] => 59
    PHP-Code:
    $json file_get_contents("http://192.168.75.171/api/circuit/all?apiKey={fdd12b52-8c7a-4b17-928c-4b7a5ab9c2a5}"); 
    $data json_decode($jsontrue);
    $moisture $data['params']['circuits']['{7dbf7a96-2d89a8c59b5c}']['sensorData']['stateTypes'][0]['value'];
    var_dump($moisture); 
    SetValue(12345$moisture); // write to variable with Object ID 12345 

  9. #9
    Registriert seit
    Apr 2019
    Ort
    Schweiz
    Beiträge
    7

    @Fonzo: Danke. Funktioniert.
    Ich kann den Wert nun in eine Variable schreiben.
    Auch verstehe langsam wir ich solch Abfragen erstellen muss.
    Wieder was gelernt.
    IPS 5.2 (Docker) , IPS Z-Wave Gateway, Sonos, Netatmo,

Ähnliche Themen

  1. Worx Landroid CSV wie Werte in einzelne Variablen schreiben
    Von Maeffjus im Forum Skripte, PHP, SQL
    Antworten: 20
    Letzter Beitrag: 05.05.19, 15:35
  2. Einzelne Werte aus einem Array einer Variable zuordnen
    Von GEMAG im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 17.12.17, 18:31
  3. Abfrage einer Api mit +-Zeichen
    Von SmartHomeSchweiz im Forum Skripte, PHP, SQL
    Antworten: 3
    Letzter Beitrag: 27.04.16, 17:34
  4. Abfrage der geloggten Werte
    Von DeejayT im Forum Skripte, PHP, SQL
    Antworten: 1
    Letzter Beitrag: 27.11.13, 11:11
  5. WFC_Reload und einzelne Seiten
    Von mäc im Forum WebFront
    Antworten: 0
    Letzter Beitrag: 31.10.10, 10:15