Daten in Variable Setzen-wie?

Guten Morgen,

ich hole mir mit folgendem Script die Daten aus einer API ab.
Sprich mit dem print_r($Daten) sehe ich welche Daten zur Verfügung stehen.

Wie kann ich jetzt bestimmtze Daten in eine Variable setzen?

Anbei das Auslesescript:

$status_id = 27268;

// Befehl zusammenstellen und per CURL absetzen

$Header = array(

'Authorization: Bearer ’ . $Access_Token,

‚Content-Type: application/json‘,

‚Accept: application/json‘,

);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $URL);

curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);

//curl_setopt($ch, CURLOPT_POSTFIELDS, $Command);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‚GET‘);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADER, true);

$response = curl_exec($ch);

curl_close($ch);

$data = explode(„\r\n\r\n“, $response); // Header abtrennen

$daten = json_decode($data[1], true); // Array erstellen

$status = $daten[‚components‘][‚hca.main‘][‚hca.washerMode‘][‚supportedModes‘][‚value‘];

SetValueString($status_id, $status);

print_r($daten)

In eine Variable möchte ich folgenden Wewert setzen um zu sehen welches Waschprogramm aktiv ist:

Auslesen möchte ich Folgende Position:

(
[components] => Array
(
[hca.main] => Array
(
[hca.washerMode] => Array
(
[mode] => Array
(
[value] => others
[timestamp] => 2023-09-17T11:27:46.435Z
)

                        [supportedModes] => Array
                            (
                                [value] => Array
                                    (
                                        [0] => normal
                                        [1] => quickWash
                                        [2] => eco
                                        [3] => mix
                                        [4] => spinOnly

Bin auch kein Profi aber du hast gar keine Variable angegeben, welche du befüllen willst.
Erstell mal eine String-Variable (im Beispiel die Nummer 12345)
Dann änderst du

SetValueString($status_id, $status);

in

SetValueString(12345, $status);

Und was sollte diese Variable denn liefern?
So kommt nichts, wenn dann so…

$status_id = getValue(27268);

Und wenn du diesen Wert dann ebenfalls in der Ausgabe willst

SetValueString(12345, "$status_id, $status");

Doch hat er, 1. Zeile.
Somit sind deine beiden Beiträge leider falsch.

Was auf jeden Fall nicht passt sind die falschen Hochkomma bzw. Anführungszeichen.
Diese müssen immer so aussenden
'einfach' "doppelt"
Sehen bei @michl aber so aus:

Michael

Hallo, danke für die Infos.
Ich habe jetzt die Hochkomma und Anführungszeichen geändert.

$supportedModes_id		= 16144;

// Befehl zusammenstellen und per CURL absetzen

$Header = array(
	'Authorization: Bearer ' . $Access_Token,
    'Content-Type: application/json',
	'Accept: application/json',
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $Command);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
curl_close($ch);

$data		= explode("\r\n\r\n", $response);	// Header abtrennen
$daten		= json_decode($data[1], true);		// Array erstellen

$status	= $daten['components']['hca.main']['hca.washerMode']['supportedModes']['value'];
SetValueInteger($supportedModes_id, $value);

print_r($daten);

Hab aber immer noch das Problem das die Variable nicht befüllt wir??
Folgende Fehlermeldung:

Notice: Undefined variable: value in /mnt/data/symcon/scripts/21137.ips.php on line 37

Anstatt $value willst Du wahrscheinlich $status schreiben, oder?

Die Fehlermeldung sagt doch klar das es $value nicht gibt!!?!?

Gruß Heiko

Hallo Pitti,

das Versteh ich jetzt nicht ganz da ich ja gerne Wert"Value" auslesen und Setzen möchte?
Value ist doch der Wert 0 bis 4 ?

(
[components] => Array
(
[hca.main] => Array
(
[hca.washerMode] => Array
(
[mode] => Array
(
[value] => others
[timestamp] => 2023-09-17T11:27:46.435Z
)

                        [supportedModes] => Array
                            (
                                [value] => Array
                                    (
                                        [0] => normal
                                        [1] => quickWash
                                        [2] => eco
                                        [3] => mix
                                        [4] => spinOnly

Vielleicht hilft dir das :sweat_smile:

2 „Gefällt mir“

Du bist so ein Fuchs :+1:

Nicht so schlau, aber riecht so…
Schnell duschen :rofl:

1 „Gefällt mir“

Ich komm leider nicht drauf wo der Fehler ist.

$status	= $daten['components']['hca.main']['hca.washerMode']['supportedModes']['value'];
SetValueInteger($supportedModes_id, $status);

Mode ist der IST Wert, nicht supportedModes.

$status	= $daten['components']['hca.main']['hca.washerMode']['mode']['value'];

Michael

Ich bedanke mich :slight_smile:

Wie schaffe ich es, das ich Werte über die API an die Waschmaschine senden kann?

Keine Ahnung… viel zu wenig Infos dazu von dir.
Und mit dem Thema wie man eine Variable beschreibt hat das auch nix mehr zu tun :sweat_smile:
Michael

1 „Gefällt mir“