« Zurück zu Produkt

Dokumentation

IPS_GetSnapshot

 string IPS_GetSnapshot ()

Rückgabewert

Der Snapshot als JSON-kodierter String. Über die JSON-RPC Schnittstelle wird er direkt als Objekt geliefert.

Beschreibung

Warning

Diese Funktion ist nur für den internen Gebrauch vorgesehen und kann sich jederzeit ohne Ankündigung ändern oder entfallen.

Warning

Der Aufbau des Snapshots kann sich zwischen den Versionen von IP-Symcon ändern.

Die Funktion liefert den vollständigen aktuellen Zustand von IP-Symcon, den sogenannten Snapshot. Er basiert auf den gespeicherten Einstellungen (settings.json) und wird um Laufzeitinformationen ergänzt. Clients initialisieren sich damit und verfolgen anschließend die Änderungen über Nachrichten.

Der Snapshot enthält unter anderem folgende Einträge:

Schlüssel Beschreibung
timestamp Nummer der letzten Nachricht, die im Snapshot berücksichtigt ist. Ab dieser Nummer können die folgenden Änderungen mit IPS_GetSnapshotChanges abgerufen werden
timezone Zeitzone des Servers im IANA-Format (z.B. "Europe/Berlin"). Damit können Clients z.B. Graphen in der Zeitzone des Servers darstellen
language Systemsprache von IP-Symcon (z.B. "de-DE")
server Informationen zum Server: version, revision, platform, architecture, date und starttime
license Informationen zur Lizenz: licensee, edition, limits (demo, variables, webfront, server, features) und expiration (demo, subscription)
options Alle Spezialschalter mit ihrem aktuellen (current), ausstehenden (pending) und Standardwert (default)
compatibility Version und Datum des Servers (version, date). Nur aus Kompatibilitätsgründen vorhanden
objects Alle Objekte. Der Schlüssel ist "ID" gefolgt von der ObjektID (z.B. "ID12345"). Die typspezifischen Daten stehen unter data
profiles Alle Variablenprofile. readOnly ist bei Systemprofilen (Name beginnt mit "~") TRUE
templates Alle Vorlagen für Darstellungen

Weitere Einträge der gespeicherten Einstellungen, z.B. sync oder permissions, werden unverändert übernommen.

Jedes Objekt unter objects enthält seine allgemeinen Eigenschaften (z.B. name, ident, parentID, position, type) sowie die Zusammenfassung (summary). Unter data werden je nach Objekttyp Laufzeitinformationen ergänzt: bei Instanzen status und visualizationType, bei Variablen isLocked, profile und customProfile, bei Skripten crc und size, bei Ereignissen nextRun und bei Medien crc, size und isAvailable.

Der Snapshot wird unkomprimiert als JSON geliefert. Über HTTP wird die Antwort mit gzip komprimiert, sofern der Client dies im Header "Accept-Encoding" angibt.

Ist der Spezialschalter "DebugDisableSnapshot" aktiv, schlägt die Funktion mit "This function is disabled for debugging purposes!" fehl.

Beispiel

// Snapshot abrufen und einige Informationen ausgeben
$snapshot = json_decode(IPS_GetSnapshot(), true);
echo "Letzte Nachricht: " . $snapshot['timestamp'] . "\n";
echo "Zeitzone: " . $snapshot['timezone'] . "\n";
echo "Objekte: " . count($snapshot['objects']) . "\n";
echo "Profile: " . count($snapshot['profiles']) . "\n";

// Objekte sind unter "ID" gefolgt von der ObjektID abgelegt
print_r($snapshot['objects']['ID12345']);

/* liefert z.B.:
Letzte Nachricht: 990
Zeitzone: Europe/Berlin
Objekte: 166
Profile: 111
Array
(
    [data] => Array
        (
            [action] => 54227
            [customAction] => 0
            [customPresentation] => Array
                (
                )

            [customProfile] =>
            [isLocked] =>
            [lastChange] => 1789241479
            [lastUpdate] => 1790080547
            [presentation] => Array
                (
                    [MAX] => 254
                    [MIN] => 1
                    [PERCENTAGE] => 1
                    [PRESENTATION] => {6B9CAEEC-5958-C223-30F7-BD36569FC57A}
                    [SUFFIX] =>  %
                    [USAGE_TYPE] => 2
                )

            [profile] =>
            [type] => 1
            [value] => 254
        )

    [disabled] =>
    [hidden] =>
    [hiddenMaximize] =>
    [hiddenTitle] =>
    [icon] =>
    [ident] => Brightness
    [info] =>
    [name] => Helligkeit
    [parentID] => 23456
    [position] => 0
    [readOnly] =>
    [summary] =>
    [type] => 2
)
*/
Haben Sie noch Fragen?