Hallo
ich arbeitet zur Zeit an Daten in JSON Format von einen externen Gateway aus. Das klapt alles auch so weit, solange sich die Strucktur auf der Gegenseite nicht ändern.
Hier einmal die Ausgabe in JSON
Array
(
[1] => stdClass Object
(
[id] => 14
[properties] => stdClass Object
(
[batteryLevel] => 81
[value] => false
)
)
[2] => stdClass Object
(
[id] => 26
[properties] => stdClass Object
(
[energy] => 0.14
[power] => 0.00
[value] => false
)
)
[3] => stdClass Object
(
[id] => 27
[properties] => stdClass Object
(
[energy] => 1.35
[power] => 0.00
[userDescription] =>
[value] => false
)
)
[4] => stdClass Object
(
[id] => 29
[properties] => stdClass Object
(
[energy] => 0.00
[power] => 0.56
[value] => true
)
)
)
Die Aufbereitung der Daten mache ich aktuell so:
//Schalter Licht ID26
$status = ($result[2]->properties->value);
$verbrauch = ($result[2]->properties->energy);
$leistung = ($result[2]->properties->power);
SetValue ($ID_213a,$status);
SetValue ($ID_213b,$verbrauch);
SetValue ($ID_213c,$leistung);
//Schalter Lüfter ID27
$status = ($result[3]->properties->value);
$verbrauch = ($result[3]->properties->energy);
$leistung = ($result[3]->properties->power);
SetValue ($ID_214a,$status);
SetValue ($ID_214b,$verbrauch);
SetValue ($ID_214c,$leistung);
//Sensor Treppenhaus unten ID14,ID42,ID43
$status = ($result[1]->properties->value);
$battery = ($result[1]->properties->batteryLevel);
$temperature = ($result[7]->properties->value);
$brightness = ($result[8]->properties->value);
SetValue ($ID_301a,$status);
SetValue ($ID_301b,$battery);
SetValue ($ID_301c,$temperature);
SetValue ($ID_301d,$brightness);
Das klappt auch alles.
Mein Problem ist jetzt, wenn sich die Strucktur auf den Gateway ändert dann ändert sich auch teilweise die Reihefolge im Array
Die ID ist immer eindeutig im Zusammenhang mit den Daten.
z.B Ausgabe 1 | Ausgabe 2 | Ausgabe 3
$result[2] -> id26 | $result[1] -> id26 | $result[2] -> id26
$result[3] -> id27 | $result[2] -> id27 | $result[4] -> id27
$result[1] -> id14 | $result[9] -> id14 | $result[8] -> id14
Wie kann man in einer Schleife den Index [i] entsprechend auswerten. Die Werte zu den id sind immer korrekt.
Wer kan mir helfen
Thomas