Ich habe mich seit einiger Zeit gewundert, warum der Text aus einem Profil nicht richtig angezeigt wird.
Folgender Code bekommt einen Wert übergeben, bis 12 funktioniert das, darüber nicht mehr. Warum ist mit vorhin aufgefallen.
$code = $_IPS['VALUE'];
$name = IPS_GetVariableProfile("Status.WRX")['Associations'][$code]['Name'];
SetStatusMeldungen(StatusGartenRobi, "GartenRobi, Status ".$code, $name);
Ich bekomme Value und nicht die ID vom Array :eek:.
Notice: Undefined offset: 30 in /var/lib/symcon/scripts/37360.ips.php on line 12
--
(
[ProfileName] => Status.WRX
[ProfileType] => 1
[Icon] =>
[Prefix] =>
[Suffix] =>
[MinValue] => 0
[MaxValue] => 0
[StepSize] => 0
[Digits] => 0
[Associations] => Array
(
[0] => Array
(
[Value] => 0
[Name] => Pause
[Icon] =>
[Color] => -1
)
[...]
[12] => Array
(
[Value] => 12
[Name] => Fernsteuerung
[Icon] =>
[Color] => -1
)
[13] => Array
(
[Value] => 30
[Name] => Rückfahrt
[Icon] =>
[Color] => -1
)
[14] => Array
(
[Value] => 31
[Name] => Zonentraining
[Icon] =>
[Color] => -1
)
[15] => Array
(
[Value] => 32
[Name] => Kantenschnitt
[Icon] =>
[Color] => -1
)
[16] => Array
(
[Value] => 33
[Name] => fährt Zone an
[Icon] =>
[Color] => -1
)
[17] => Array
(
[Value] => 34
[Name] => Pause
[Icon] =>
[Color] => -1
)
)
[IsReadOnly] =>
)
Und da es Lücken gibt, stimmen die Array-ID und Value leider nicht überein.
Alle meine bisherigen Versuche klappen nicht, mit array_search, Funktionen zum SUchen in nested Arrays, …
Wie komme ich an Name von Values größer 12?