Abfrage von Spezialschaltern (außer per IPS_GetSnapshot)

Hallo.

Ich würde gerne eine Liste der gesetzen Spezialschalter auslesen.
Momentan mache ich es über folgenden Weg:

$tmp = json_decode(utf8_encode(IPS_GetSnapshot()), true);
$erg = $tmp['options'];

Leider führt das bei größeren Installationen zu einer Fehlermeldung, dass das erlaubte Memory-Limit überschritten wurde.

Gibt es eine PHP Funktion um die Spezialschalter inkl. gesetzter Werte abzufragen?

Gruß
Thorsten

Ja, es gibt IPS_GetOption und IPS_SetOption.
Ist aber imho einer der undokumentierten Befehle.
Michael

Danke für den Tipp :).
Das sieht gut aus. Man muss halt dann jeden Parameter einzeln abfragen (und ihn dazu kennen).

Die Methode via IPS_GetSnapshot hat den Vorteil, dass immer alle Parameter angezeigt werden die die Symcon Version kennt. Aber deine Methode funktioniert halt auch in großen Installationen :D.

Gruß
Thorsten

Da sich die Spezialschalter nicht ändern wenn IPS läuft, kannst du auch einfach die settings.json lesend öffnen.
Muss dann auch nicht das ganze File einlesen, reicht ja die Stelle der Options zu finden.
Edit:… Mist, es gibt wirklich keine Suchfunktion in einem File für PHP. Und alles einlesen sprengt ja auch das PHP RAM Limit.
Michael

Zu IP-Symcon 5.1 kommt eine ebenfalls undokumentierte Funktion IPS_GetOptionList :wink:

paresyx

N’Abend.

Sorry für die späte Rückmeldung.
Ich habe die Funktion gerade in eine neue Version vom SymDoc Modul (noch in Entwicklung) eingebaut und funktioniert wunderbar :).

Gruß
Thorsten