JSON Daten weiter verarbeiten und in Variablen schreiben

Hi,
ich möchte gerne von einem Shelly weitere Daten in Variablen schreiben und bräuchte dazu Hilfe.

Habe jetzt folgende Skripte angelegt:

Hiermit rufe ich die JSON Daten ab von der URL und schreibe sie in eine String Variable:

<?php

$data = file_get_contents('http://192.168.20.27/settings/');

SetValue(34810, $data); //String Value Variable

$s = GetValue(34810); // String Value Variable
//print_r($s);

$a = json_decode($s, true); //oder $array_var = json_decode($s, true);

print_r($a)

Als Ergebnis bekomme ich das Array angezeigt.

Dann habe ich mir noch ein Skript angelegt um die Variablen zu beschreiben und da ist der Fehler:

<?php

if($_IPS['SENDER'] == 'Variable') {
	
	// Daten verarbeiten
	$a = json_decode($_IPS['VALUE'], true);
	
	// Verzweigung anhand der auslösenden Variablen
	switch ($_IPS['VARIABLE']) {
		// Status Value Variable
		case 34810:
		    SetStatusValues($a);
			break;
            					
			
		default:
            IPS_LogMessage("PLUG SCRIPT", $_IPS['VARIABLE'] . ': ' .  $_IPS['VALUE']);
			
	}
}	

function SetStatusValues($array_var)
{
	// Instanz Status Informationen // ID's eintragen der einzelnen Variablen innerhalb der angegebenen Instanz
    setvalue (37940, $a['device']['hostname']);//String Variable 
}

Was für einen Fehler bekommst du?

Grüße,
Kai

Die Variable wird nicht beschrieben mit dem Hostname.

Habe aber jetzt mal einen anderen Ansatz verfolgt

<?php

$url = "Http://192.168.20.27/settings";
$data = file_get_contents($url);
$data = json_decode($data,true);

print_r($data); 

setvalue (37940, $data['device']['hostname']);

Und dann noch ein Zyklisches Ereignis hinterlegt. Das scheint soweit zu funktionieren oder gibt es noch einen besseren Ansatz?

Das sieht so ganz gut aus.
Ich kann mal schauen, ob ich die Daten auch per MQTT bekomme, wenn ja dann baue ich das irgendwann mal ein.

Grüße,
Kai

Danke noch für deinen Tipp im Vorfeld mit file_get_Contents.

Ich werde auch noch zum Skriptprofi :roll_eyes: :sunglasses:…ne Spaß