Ich habe einen String Variable mit Werten im Json Format. Ich würde gerne diese Liste als Auswahlmöglichkeit für eine andere Variable verwenden. Ich könnte ein Profil/Darstellung anlegen, aber die Liste ist dynamisch.
Hat jemand Vorschläge?
Ich habe einen String Variable mit Werten im Json Format. Ich würde gerne diese Liste als Auswahlmöglichkeit für eine andere Variable verwenden. Ich könnte ein Profil/Darstellung anlegen, aber die Liste ist dynamisch.
Hat jemand Vorschläge?
Gut, mit IPS_GetVariablePresentation bekomme ich das, wo ich sehe um was es geht.
array(5) {
["DISPLAY"]=>
int(0)
["OPTIONS"]=>
string(286) "[{"Value": "cool", "Caption": "Kühlen", "IconValue": "", "IconActive": false, "Color": 3442154}, {"Value": "heat", "Caption": "Heizen", "IconValue": "", "IconActive": false, "Color": 16026947}, {"Value": "auto", "Caption": "Auto", "IconValue": "", "IconActive": false, "Color": 52651}]"
["ICON"]=>
string(0) ""
["LAYOUT"]=>
int(0)
["PRESENTATION"]=>
string(38) "{52D9E126-D7D2-2CBB-5E62-4CF7BA7C5D82}"
}
Mit IPS_SetVariableCustomPresentation sollte es doch möglich sein, diese Options zuerst zu löschen und dann neu anzulegen oder sie überhaupt mit neuen Werten zu ersetzen. Aber wie genau?
So gehts
$json = getvalue(40523);
$effects = is_string($json) ? json_decode($json, true) : $json;
$options = [];
foreach ($effects as $effect) {
$options[] = [
"Value" => $effect,
"Caption" => $effect,
"IconValue" => "",
"IconActive" => false,
"Color" => -1
];
}
IPS_SetVariableCustomPresentation(53267, [
"DISPLAY" => 0,
"OPTIONS" => json_encode($options),
"ICON" => "",
"LAYOUT" => 0,
"PRESENTATION" => "{52D9E126-D7D2-2CBB-5E62-4CF7BA7C5D82}"
])
Die Variable hat ein Aktionsskript und Darstellung ist Aufzählung.