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 Float Statusvariable |
RegisterVariableInteger | Erstellt eine Integer Statusvariable |
RegisterVariableString | Erstellt eine String 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"); }