Was können wir verbessern?

Dokumentation

Datenverwaltung

Benötigt: IP-Symcon >= 4.0

Beschreibung

Ein Modul hat grundlegend vier verschiedene Formen Daten zu verwalten. Dies sind Eigenschaften, Attribute, Buffer und Statusvariablen. Diese Unterscheiden sich in Aufgabe, Zugriffsmöglichkeiten und Persistenz.

Eigenschaften
Attribute
Buffer
Statusvariablen

Eigenschaften

Eigenschaften sind persistente Daten eines Moduls, welche vom Benutzer konfiguriert werden sollen/müssen. Diese Daten werden erst bei "Übernehmen" gespeichert. Eigenschaften sind zum Beispiel benötigte Logindaten, Geräte-ID oder Intervall zur Abfrage von Sensorwerten. Dies geschieht im Regelfall über die Konfigurationsseite, welche über die form.json definiert wird.

Funktionsname Kurzbeschreibung
ReadPropertyBoolean Liefert den Wert einer Boolean Eigenschaft
ReadPropertyFloat Liefert den Wert einer Float Eigenschaft
ReadPropertyInteger Liefert den Wert einer Integer Eigenschaft
ReadPropertyString Liefert den Wert einer String Eigenschaft
RegisterPropertyBoolean Erstellt eine Boolean Eigenschaft
RegisterPropertyFloat Erstellt eine Float Eigenschaft
RegisterPropertyInteger Erstellt eine Integer Eigenschaft
RegisterPropertyString Erstellt eine String Eigenschaft
public function Create() {
    //Never delete this line!
    parent::Create();
 
    $this->RegisterPropertyBoolean("EmulateStatus", true);
    $this->RegisterPropertyFloat("Faktor", 0.5);
    $this->RegisterPropertyInteger("DeviceID", 0);
    $this->RegisterPropertyString("Text", "");
}

Attribute

Attribute sind persistente Daten eines Moduls, welche einzig vom Modul selbst gesetzt und sofort gespeichert werden. Dies sind zum Beispiel Tokens bei verschlüsselten Verbindungen oder gespeicherte Werte einer Szenensteuerung.

Funktionsname Kurzbeschreibung
ReadAttributeBoolean Liefert den Wert eines Boolean Attributs
ReadAttributeFloat Liefert den Wert eines Float Attributs
ReadAttributeInteger Liefert den Wert eines Integer Attributs
ReadAttributeString Liefert den Wert eines String Attributs
RegisterAttributeBoolean Erstellt ein Boolean Attribut
RegisterAttributeFloat Erstellt ein Float Attribut
RegisterAttributeInteger Erstellt ein Integer Attribut
RegisterAttributeString Erstellt ein String Attribut
WriteAttributeBoolean Schreibt in ein Boolean Attribut
WriteAttributeFloat Schreibt in ein Float Attribut
WriteAttributeInteger Schreibt in ein Integer Attribut
WriteAttributeString Schreibt in ein String Attribut

Beispiel

public function Create() {
    //Never delete this line!
    parent::Create();
 
    $this->RegisterAttributeBoolean("BoolAttr", true);
    $this->RegisterAttributeInteger("IntAttr", 5);
    $this->RegisterAttributeFloat("FloatAttr", 3.7);
    $this->RegisterAttributeString("StrAttr", "lalala");
}
 
public function BumpAndShow() {
 
    var_dump($this->ReadAttributeBoolean("BoolAttr"));
    var_dump($this->ReadAttributeInteger("IntAttr"));
    var_dump($this->ReadAttributeFloat("FloatAttr"));
    var_dump($this->ReadAttributeString("StrAttr"));
 
    $this->WriteAttributeBoolean("BoolAttr", !$this->ReadAttributeBoolean("BoolAttr"));
    $this->WriteAttributeInteger("IntAttr", $this->ReadAttributeInteger("IntAttr")*2);
    $this->WriteAttributeFloat("FloatAttr", $this->ReadAttributeFloat("FloatAttr")+0.1);
    $this->WriteAttributeString("StrAttr", $this->ReadAttributeString("StrAttr") . "öäü");
}

Buffer

Buffer sind nicht persistente Daten eines Moduls, welche einzig vom Modul selbst verwaltet werden sollen. Dies sind zum Beispiel eingehende Datensätze, welche nicht in einem übermittelt werden, sondern nach und nach eintreffen und somit zusammengesetzt werden müssen. Erst bei einem vollständigem Datensatz werden diese vom Buffer genommen und vom Modul verarbeitet.

Funktionsname Kurzbeschreibung
GetBuffer Liefert den Inhalt eines Buffers
GetBufferList Liefert ein Array aller Buffer
SetBuffer Erstellt einen Buffer

Beispiel

public function ReceiveData($JSONString) {
    //Decode JSONString
    $data = json_decode($JSONString);
 
    //Parse and write values to our buffer
    $this->SetBuffer("Test", utf8_decode($data->Buffer));
 
    //Print buffer
    IPS_LogMessage("IOTest", $this->GetBuffer("Test"));
}

Statusvariablen

Statusvariablen sind persistente Daten eines Moduls, welche vom Modul jederzeit verändert werden können. Diese sind im Objektbaum sichtbar und stehen zur weiteren Verarbeitung und Darstellung in den Visualisierungen zur Verfügung. Statusvariablen sind zum Beispiel Sensorwerte, im WebFront darzustellende Aktorenwerte und Statuswerte zur Weiterverarbeitung.

Funktionsname Kurzbeschreibung
DisableAction Deaktiviert die Standardaktion
EnableAction Aktiviert die Standardaktion
GetValue Liefert den Wert einer Variable
SetValue Setzt den Wert einer Variable
MaintainAction Ruft DisableAction oder EnableAction auf
MaintainVariable Konfiguriert eine Statusvariable
RegisterVariableBoolean Erstellt eine Boolean Statusvariable
RegisterVariableFloat Erstellt eine Boolean Statusvariable
RegisterVariableInteger Erstellt eine Boolean Statusvariable
RegisterVariableString Erstellt eine Boolean Statusvariable
RequestAction Setzt den Wert einer Statusvariable
UnregisterVariable Löscht eine Statusvariable

Beispiel

public function Create() {
    //Never delete this line!
    parent::Create();
 
    //Variables
    $this->RegisterVariableString("TextData", "TextData", "");
    IPS_SetHidden($this->GetIDForIdent("TextData"), true);
    $this->RegisterVariableString("SimulationView", "Simulationsvorschau", "~HTMLBox");
    $this->RegisterVariableInteger("SimulationCounter", "Simulationszähler" , "");
    $this->RegisterVariableFloat("Faktor", "Zoom Faktor Wandanzeige", "Faktor.Anzeige");
    $this->RegisterVariableBoolean("Active", "Simulation aktiv", "~Switch");
    $this->EnableAction("Active");
}
Zum Warenkorb
Haben Sie noch Fragen?