# Module
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/
_Benötigt Symcon >= 4.0_
### Beschreibung
Ein Modul besteht grundlegend aus 2 Dateien. Der module.php und module.json.
Optional kann eine Konfigurationsseite (form.json) bereitgestellt werden.
### form.json
Weitere Informationen zur Konfigurationsseite können unter [Konfigurationsformulare](configuration-forms.md) nachgeschlagen werden.
### locale.json
Weitere Informationen zur Übersetzung der Konfigurationsseite können unter [Lokalisierungen](../sdk-php.md) nachgeschlagen werden.
### module.json
Diese Datei beinhaltet Rahmeninformation, die unabdingbar sind, damit das Modul identifizierbar ist und korrekt eingebunden werden kann.
| Parameter | Datentyp | Beschreibung |
| ------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | string | Einmalige [GUID](../../../concepts.md) zur eindeutigen Identifikation. [GUID Generator](../../sdk-tools.md) |
| name | string | Der Name des Moduls. (A-Z, a-z, 0-9, Leerzeichen, Unterstrich sind erlaubte Zeichen. Leerzeichen und Unterstriche dürfen dabei jedoch nicht am Anfang oder Ende sein. Ein leerer Name ist ebenfalls nicht gültig.) |
| type | integer | Type des Moduls (0: Kern, 1: I/O, 2: Splitter, 3: Gerät, 4: Konfigurator, 5: Discovery) |
| vendor | string | Herstellername und der Name des Menüpunkts unter dem das Gerät in "Instanz hinzufügen" gefunden werden kann. Wenn nichts angegeben wird, wird das Gerät unter "(Sonstige)" eingetragen. |
| aliases | array [string] | Zusätzliche Gerätenamen/-varianten |
| url | string | URL zur Dokumentationnsseite des Moduls (Muss mit http:// oder https:// beginnen. Darf Alternativ auch "" (leer) sein) |
| parentRequirements | array [string] | Datenfluss [GUIDs](../../../concepts.md), wodurch kompatible übergeordnete Instanzen ermittelt werden. Die übergeordnete Instanz muss mindestens eine dieser Datenfluss GUIDs als Implemented führen, um kompatibel zu sein |
| childRequirements | array [string] | Datenfluss [GUIDs](../../../concepts.md), wodurch kompatible untergeordnete Instanzen ermittelt werden. Die untergeordnete Instanz muss mindestens eine dieser Datenfluss GUIDs als Implemented führen, um kompatibel zu sein |
| implemented | array [string] | Unterstützte Datafluss GUIDs müssen in den jeweiligen ReceiveData/ForwardData Funktionen korrekt ausgewertet und unterstützt werden, sofern diese hier aufgelistet werden |
| prefix | string | Prefix, welcher den Funktionen vorausgeschrieben wird. Darf nur Zahlen und Buchstaben enthalten. |
```php
{
"id": "{E5AA629B-75BD-45C0-9BCB-845C102B0411}",
"name": "ModulnameXYZ",
"type": 3,
"vendor": "",
"aliases":
[
"Name1UnterstütztesGerät",
"Name2UnterstütztesGerät"
],
"url": "https://www.symcon.de",
"parentRequirements": [],
"childRequirements": [],
"implemented": [],
"prefix": "ABC"
}
```
### module.php
Dies ist die eigentliche Klassendatei, welche die Funktionen beinhaltet die hinterher Daten verarbeiten und weiterleiten.
> **Hinweis:** Der Klassenname muss identisch zum "name" Parameter sein, welcher in der module.json definiert wurde. Einziger erlaubter Unterschied sind Leerzeichen. Diese müssen im Klassennamen innerhalb der module.php entfernt werden.
> **Achtung:** Funktionsnamen dürfen nur aus folgenden Zeichen bestehen: "a..z","A..Z","0..9". Des weiteren darf "$InstanceID" nicht als Parametername verwendet werden.
Seit IP-Symcon 8.1 gibt es die verbesserte Basisklasse IPSModuleStrict.
IPSModule ist weiter verfügbar, sollte jedoch für neue Module nicht mehr verwendet werden.
Die Folgende Tabelle zeigt die Unterschiede auf:
| Merkmal | IPSModule | IPSModuleStrict |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Type Hints | Optional für public Funktionen | Immer erforderlich |
| Fehlermeldungen bei fehlenden Type Hints in public Funktionen | Nur Warnungen | Führt zu Fehlern |
| Unterstützung veralteter Typen | Integer/Boolean erlaubt | Bitte int/bool benutzen |
| Rückgabe von `RegisterVariable*` | Aktuelle Variablen-ID as int | boolean, ob Variable erstellt wurde, um ggf. Startwert zu setzen) |
| Schreibzugriff auf erstellte Variablen | Immer, auch Kundenseitig per SetValue | Nur über `$this->SetValue` (Variablen sind über ReadOnly gesichert) |
| Datenfluss Verbindungen | Komplex über ConnectParent/RequireParent/ForceParent | Automatisch über die Kompatibilität und [GetCompatibleParents()](module.md) |
| Datenfluss Kodierung | UTF-8 (utf8_encode/utf8_decode), Problematisch ab PHP 9.0 | HEX-kodiert (bin2hex/hex2bin) und einfacher erkennbar wann eine Kodierung erforderlich ist |
| Hook/WebHook | Workaround über [WebHookModule](https://github.com/symcon/SymconTest/blob/master/libs/WebHookModule.php) Basisklasse | Native Unterstützung via [RegisterHook](module.md), [ProcessHookData](module.md) und [UnregisterHook](module.md) |
| OAuth | Workaround über [WebOAuthModule](https://github.com/symcon/SymconTest/blob/master/libs/WebOAuthModule.php) Basisklasse | Native Unterstützung via [RegisterOAuth](module.md), [ProcessOAuthData](module.md) und [UnregisterOAuth](module.md) |
#### Vorlage minimal
```php
// Klassendefinition
class ModulnameXYZ extends IPSModuleStrict {
/**
* Die folgenden Funktionen stehen automatisch zur Verfügung, wenn das Modul über das "Module Control" eingefügt wurden.
* Die Funktionen werden, mit dem selbst eingerichteten Prefix, in PHP und JSON-RPC wie folgt zur Verfügung gestellt:
*
* ABC_MeineErsteEigeneFunktion($id);
*
*/
public function MeineErsteEigeneFunktion(): void {
echo $this->InstanceID;
}
}
```
#### Vorlage klassisch
```php
// Klassendefinition
class ModulnameXYZ extends IPSModuleStrict {
// Überschreibt die interne IPS_Create($id) Funktion
public function Create(): void {
// Diese Zeile nicht löschen.
parent::Create();
}
// Überschreibt die interne IPS_ApplyChanges($id) Funktion
public function ApplyChanges(): void {
// Diese Zeile nicht löschen
parent::ApplyChanges();
}
/**
* Die folgenden Funktionen stehen automatisch zur Verfügung, wenn das Modul über die "Module Control" eingefügt wurden.
* Die Funktionen werden, mit dem selbst eingerichteten Prefix, in PHP und JSON-RPC wie folgt zur Verfügung gestellt:
*
* ABC_MeineErsteEigeneFunktion($id);
*
*/
public function MeineErsteEigeneFunktion(): void {
// Selbsterstellter Code
}
}
```
## __construct
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/construct/
`void __construct(string $InstanzID)`
_Benötigt Symcon >= 4.0_
Funktion, welche bei jeder Anfrage an das Modul aufgerufen wird
**Parameter**
- `$InstanzID` (string): ID dieser Instanz
**Rückgabewert** (void): Keine Rückgabe
ID dieser Instanz
**Beispiel**
```php
// Diese Funktion muss normalerweise nicht überschrieben werden.
```
## ApplyChanges
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/applychanges/
`void ApplyChanges()`
_Benötigt Symcon >= 4.0_
Funktion, welche beim Übernehmen der Konfiguration ausgeführt wird
**Rückgabewert** (void): Keine Rückgabe
Wird ausgeführt, wenn auf der Konfigurationsseite "Übernehmen" gedrückt wird und nach dem unittelbaren Erstellen der Instanz.
> **Hinweis:** Die ApplyChanges Funktion wird von IP-Symcon aufgerufen. Sie muss somit von der Basisklasse überschrieben werden, um eigene Erweiterungen hinzuzufügen
**Beispiel**
```php
// IPSModuleStrict
public function ApplyChanges(): void {
// Diese Zeile nicht löschen
parent::ApplyChanges();
// ConnectParent/RequireParent/ForceParent ist nicht verfügbar - kann aber durch die neue Funktion "GetCompatibleParents()" ersetzt werden.
}
// IPSModule
public function ApplyChanges() {
// Diese Zeile nicht löschen
parent::ApplyChanges();
// Wenn keine übergeordenete Instanz vorhanden ist, erstelle eine neue eigene VirtualIO Instanz
$this->RequireParent("{6179ED6A-FC31-413C-BB8E-1204150CF376}");
}
```
## ConnectParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/connectparent/
`bool ConnectParent(string $ÜbergeordneteGUID)`
_Benötigt Symcon >= 4.0_
Verbindet eine Instanz mit einer übergeordneten Instanz
**Parameter**
- `$ÜbergeordneteGUID` (string): [GUID](../../../concepts.md)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
[GUID](../../../concepts.md)
**Beispiel**
```php
// IPSModuleStrict
ConnectParent/RequireParent/ForceParent ist nicht verfügbar,
kann aber durch die neue Funktion "GetCompatibleParents()" ersetzt werden.
// IPSModule
public function Create() {
// Die Zeile niemals entfernen!
parent::Create();
// Verbinde mit vorhandenem Splitter oder erstelle gegebenfalls einen neuen
$this->ConnectParent("{46C969BF-3465-4E3E-B2A5-E404FB969735}");
}
```
## Create
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/create/
`void Create()`
_Benötigt Symcon >= 4.0_
Funktion, welche einmalig beim Erstellung der Instanz aufgerufen wird
**Rückgabewert** (void): Keine Rückgabe
Im Gegensatz zu [Construct](module.md) wird diese Funktion nur einmalig beim Erstellen der Instanz und Start von IP-Symcon aufgerufen. Deshalb sollten hier Statusvariablen und Modul-Eigenschaften erstellt werden, die das Modul dauerhaft braucht.
Häufig genutzte Funktionen:
[RegisterPropertyString](module.md)
[RegisterPropertyInteger](module.md)
[RegisterPropertyFloat](module.md)
[RegisterPropertyBoolean](module.md)
> **Hinweis:** Die Create Funktion wird von IP-Symcon aufgerufen. Sie muss somit von der Basisklasse überschrieben werden, um eigene Erweiterungen hinzuzufügen
**Beispiel**
```php
// IPSModuleStrict
public function Create(): void {
// Diese Zeile nicht entfernen
parent::Create();
// Modul-Eigenschaftserstellung
$this->RegisterPropertyString("Benutzername", "MaxMustermann");
$this->RegisterPropertyInteger("Zahl", 123);
$this->RegisterPropertyFloat("Faktor", 0.5);
$this->RegisterPropertyBoolean("Geöffnet", true);
}
// IPSModule
public function Create() {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## Destroy
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/destroy/
`void Destroy()`
_Benötigt Symcon >= 4.1_
Funktion, welche beim Löschen der Instanz oder Update des Moduls aufgerufen wird
**Rückgabewert** (void): Keine Rückgabe
Diese Funktion wird beim Löschen der Instanz im laufenden Betrieb und bei Update via "Module Control" aufgerufen. Die Funktion wird nicht beim Beenden von IP-Symcon aufgerufen.
> **Hinweis:** Die Destroy Funktion wird von IP-Symcon aufgerufen. Sie muss somit von der Basisklasse überschrieben werden, um eigene Erweiterungen hinzuzufügen
**Beispiel**
```php
// IPSModuleStrict
public function Destroy(): void {
// Diese Zeile nicht entfernen
parent::Destroy();
}
// IPSModule
public function Destroy() {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## DisableAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/disableaction/
`bool DisableAction(string $Ident)`
_Benötigt Symcon >= 4.0_
**Parameter**
- `$Ident` (string): Ident der Variable
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Ident der Variable
**Beispiel**
```php
// Deaktiviert die Standardaktion der Statusvariable
$this->DisableAction("Status");
```
## EnableAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/enableaction/
`bool EnableAction(string $Ident)`
_Benötigt Symcon >= 4.0_
**Parameter**
- `$Ident` (string): Ident der Variable
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Ident der Variable
**Beispiel**
```php
// Aktiviert die Standardaktion der Statusvariable
$this->EnableAction("Status");
```
## ForceParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/forceparent/
`bool ForceParent(string $ModulID)`
_Benötigt Symcon >= 4.0_
Verbindet eine Instanz mit einer übergeordneten Instanz
**Parameter**
- `$ModulID` (string): [GUID](../../../concepts.md)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
[GUID](../../../concepts.md)
**Beispiel**
```php
// IPSModuleStrict
ConnectParent/RequireParent/ForceParent ist nicht verfügbar,
kann aber durch die neue Funktion "GetCompatibleParents()" ersetzt werden.
// IPSModule
public function ApplyChanges() {
// Die Zeile niemals entfernen!
parent::ApplyChanges();
// Je nach Konfiguration unterschiedliche I/O Instanzen erstellen
switch($this->ReadPropertyInteger("GatewayMode")) {
case 0: //ClientSocket bei Modus 0 erstellen
$this->ForceParent("{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}");
break;
case 1: //SerialPort bei Modus 1 erstellen
$this->ForceParent("{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}");
break;
}
}
```
## ForwardData
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/forwarddata/
`string ForwardData(string $JSONString)`
_Benötigt Symcon >= 4.0_
Funktion, welche beim Empfang von Daten von einer untergeordneten Instanz (z.B. Device) aufgerufen wird
**Parameter**
- `$JSONString` (string): Datenpaket im JSON Format
**Rückgabewert** (string): Resultat der Funktion, welches an die aufrufendene untergeordnete Instanz zurückgegeben wird
Datenpaket im JSON Format
**Beispiel**
```php
// IPSModuleStrict
public function ForwardData(string $JSONString): string {
// Beispiel innerhalb einer Gateway/Splitter Instanz
// Empfangene Daten von der Device Instanz
$data = json_decode($JSONString);
IPS_LogMessage("ForwardData", utf8_decode($data->Buffer));
// Hier würde man den Buffer im Normalfall verarbeiten
// z.B. CRC prüfen, in Einzelteile zerlegen
// Weiterleiten zur I/O Instanz
$resultat = $this->SendDataToParent(json_encode(Array("DataID" => "{79827379-F36E-4ADA-8A95-5F8D1DC92FA9}", "Buffer" => $data->Buffer)));
// Weiterverarbeiten und durchreichen
return $resultat;
}
// IPSModule
public function ForwardData($JSONString) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## GetBuffer
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getbuffer/
`string GetBuffer(string $Name)`
_Benötigt Symcon >= 4.1_
Liefert den Inhalt eines Buffers
**Parameter**
- `$Name` (string): Der Name des Buffers
**Rückgabewert** (string): Der Inhalt des Buffers
Der Name des Buffers
**Beispiel**
```php
// Gibt den Inhalt des Buffers "Databuffer" wieder
$Bufferdata = $this->GetBuffer("DataBuffer");
```
## GetBufferList
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getbufferlist/
`array GetBufferList()`
_Benötigt Symcon >= 5.0_
Liefert ein Array mit den Namen aller Buffer
**Rückgabewert** (array): Namensliste aller Buffer
Diese Funktion liefert ein Array mit den Namen aller Buffer.
**Beispiel**
```php
// Gibt das Array der Buffernamen wieder
$BufferList = $this->GetBufferList();
```
## GetCompatibleParents
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getcompatibleparents/
`string GetCompatibleParents()`
_Benötigt Symcon >= 8.2_
Überschreibare Funktion, welche die kompatiblen physikalisch übergeordneten Instanzen beschreibt
**Rückgabewert** (string): Benötigter Verbindungstyp und Beschreibung kompatibler Instanzen
Die Funktion gibt ein JSON-codiertes Objekt zurück, welches kompatible physikalisch übergeordnete Instanzen beschreibt. Die Verwaltungskonsole verwendet diese Information um bei Erstellung oder Anpassung der Instanz die passenden übergeordneten Instanzen vorzuschlagen.
Ist die Funktion nicht implementiert, so werden alle Modulen zurückgegeben, welche entsprechend des Datenflusses kompatibel sind. Für den Modultyp Splitter, Discovery und Konfiguratoren wird dabei eine neue Instanz oder eine Instanz ohne Verbindungen benötigt (type = require), beim Modultyp Gerät werden auch existierende Instanzen mit anderen Verbindungen vorgeschlagen (type = connect). Alle anderen Modultypen fordern keine weitere Verbindung. In den meisten Fällen ist diese Heuristik ausreichend. Falls sie aber nicht ausreicht, kann die Funktion überschrieben werden.
### Parameter
| Name | Beschreibung |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| type | Falls "require" werden nur neu erstellte Instanzen, sowie Instanzen ohne andere physikalisch untergeordnete Instanzen angeboten. Bei "connect" werden neu erstellte Instanzen und alle existierenden kompatiblen Instanzen vorgeschlagen. |
| moduleIDs | Eine Liste von ModulIDs von kompatiblen übergeordneten Instanzen. Wird moduleIDs verwendet, so können keine erweiterten Parameter genutzt werden. Es muss moduleIDs oder modules gesetzt werden, aber nicht beide. |
| modules | Eine Beschreibung möglicher kompatibler übergeordneter Instanzen. Für die möglichen Parameter, siehe modules. Es muss moduleIDs oder modules gesetzt werden, aber nicht beide. |
#### modules
| Name | Beschreibung |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| moduleID | Die ModulID von Instanzen, welche kompatibel sind |
| configuration (optional) | (**default**: {}) Ein Objekt, welches die benötigte Konfiguration der Instanz beschreibt. Existierende Instanzen, welche nicht die genannte Konfiguration haben, werden nicht als kompatibel angezeigt. Wird eine neue Instanz erstellt, wird diese Konfiguration erzwungen und kann nicht durch den Benutzer geändert werden. |
| initial (optional) | (**default**: {}) Ein Objekt, welches vorgeschlagene Konfigurationsparameter enthält. Wird eine neue Instanz erstellt, so werden diese Parameter initial ausgefüllt, können aber durch den Benutzer angepasst werden. Das Objekt hat keine Auswirkung auf bereits existierende Instanzen. |
| formOverride (optional) | (**default**: {}) Ein Objekt, welches Anpassungen am Konfigurationsformular der neuen Instanz beschreibt, welche ähnlich wie [UpdateFormField](module.md) angewandt werden. Die Schlüssel des Objekts sind die Namen der Konfigurationselemente. Die Werte sind wiederum Objekte, welche als Schlüssel die Namen der Felder und als Werte den aktualisierten Parameter beinhalten. Das Objekt hat keine Auswirkung auf bereits existierende Instanzen. |
**Beispiel**
```php
// Benötige eine neue Instanz und zwar einen Serial Port
public function GetCompatibleParents() {
return '{"type": "require", "moduleIDs": ["{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}"]}';
}
// Benötige einen MQTT Client mit einer spezifischen Client ID
// Falls ein neues Gateway erstellt wird, wird entgegen des üblichen Initialwerts ein KeepAlive Intervall von 10 Sekunden eingetragen, kann aber angepasst werden.
public function GetCompatibleParents() {
return '{"type": "connect", "modules": [{
"moduleID": "{F7A0DD2E-7684-95C0-64C2-D2A9DC47577B}",
"configuration": {
"ClientID": "b10c75459d64cafb5d78"
},
"initial": {
"KeepAliveInterval": 10
}
}]}';
}
// Benötige eine neue Instanz und zwar einen Serial Port mit Baudrate 2400 oder 9600
public function GetCompatibleParents() {
return '{"type": "require", "modules": [{
"moduleID": "{6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}",
"formOverride": {
"Baudrate": {
"options": [
{
"value": "2400",
"caption": "2400"
},
{
"value": "9600",
"caption": "9600"
}
]
}
}
}]}';
}
```
## GetConfigurationForm
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getconfigurationform/
`string GetConfigurationForm()`
_Benötigt Symcon >= 4.1_
Überschreibare Funktion, welche den Inhalt der Konfigurationsseite liefert
**Rückgabewert** (string): Inhalt der Konfigurationsseite
Der Inhalt kann überschrieben werden um so eine selbsterstellte Konfigurationsseite zu übergeben. So können dynamisch Inhalte wiedergespiegelt werden. Die "form.json" auf dem Dateisystem wird dabei vollkommen ignoriert.
> **Hinweis:** Wird diese Funktion nicht im eigenen Modul definiert, so wird standarmässig der Inhalt der form.json weitergegeben.
**Beispiel**
```php
// IPSModuleStrict
public function GetConfigurationForm(): string {
return '{ "actions": [ { "type": "Label", "label": "The current time is '.date("d.m.y H:i").'" } ] }';
}
// IPSModule
public function GetConfigurationForm() {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## GetConfigurationForParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getconfigurationforparent/
`string GetConfigurationForParent()`
_Benötigt Symcon >= 4.2_
Überschreibare Funktion, welche die Konfiguration der Parent-Instanz teils oder ganz fest setzt
**Rückgabewert** (string): Inhalt der Konfiguration der übergeordenten Instanz
Der Konfiguration-String wird der übergeordeneten Instanz übergeben. Diese liest den String aus und setzt die eingetragenen Werte. Über diese Funktion eingelesene Werte können über die Konfigurationsseite nicht mehr verändert werden.
> **Hinweis:** Wird diese Funktion nicht im eigenen Modul definiert, so wird standarmässig nichts verändert und die übergeordenete Instanz bleibt frei konfigurierbar.
**Beispiel**
```php
// IPSModuleStrict
public function GetConfigurationForParent(): string {
// Übergeordnete Instanz ist ein "SerialPort"
return "{\"BaudRate\": \"57600\", \"StopBits\": \"1\", \"DataBits\": \"8\", \"Parity\": \"None\"}";
}
// IPSModule
public function GetConfigurationForParent() {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## GetIDForIdent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getidforident/
`mixed GetIDForIdent(string $Ident)`
_Benötigt Symcon >= 4.0_
Sucht die Objekt ID für ein Objekt via Objektident
**Parameter**
- `$Ident` (string): Ident des Objekts nach dem gesucht werden soll.
**Rückgabewert** (mixed): ID des gefundenen Objekts, sonst FALSE
Ident des Objekts nach dem gesucht werden soll.
**Beispiel**
```php
// Pfad der Statusvariable mit dem Ident "Status" ausgeben
echo IPS_GetLocation($this->GetIDForIdent("Status"));
```
## GetMessageList
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getmessagelist/
`array GetMessageList()`
_Benötigt Symcon >= 5.0_
Liefert ein Array aller registrierten Nachrichten
**Rückgabewert** (array): Array aller aktiven Nachrichten
Diese Funktion liefert ein Array mit allen aktiven Nachrichten, welche über [RegisterMessage](module.md) registriert wurden.
Eine Liste der NachrichtIDs befindet sich hier: [Nachrichten](../sdk-php.md)
> **Hinweis:** Um ein eine Registrierung aufzuheben kann [UnregisterMessage](module.md) genutzt werden.
**Beispiel**
```php
// Gibt ein Array der aktiven registrierten Messages wieder
print_r($this->GetMessageList());
// Beispielausgabe
array(1) {
[12345]=> //ID der Instanz
array(1) {
[0]=>
int(10505) //NachrichtenID => IM_CHANGESTATUS
}
}
```
## GetReferenceList
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getreferencelist/
`array GetReferenceList()`
_Benötigt Symcon >= 5.1_
Liefert ein Array mit den IDs aller Referenzen
**Rückgabewert** (array): Array mit Integer-Werten der IDs aller Referenzen
Diese Funktion liefert ein Array mit den IDs aller Referenzen.
**Beispiel**
```php
$ReferenceList = $this->GetReferenceList();
```
## GetStatus
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getstatus/
`int GetStatus()`
_Benötigt Symcon >= 5.1_
Liefert den aktuellen Status der Instanz
**Rückgabewert** (int): Aktueller Status
Diese Funktion liefert den aktuellen Status der Instanz.
_Tabelle: Status der Instanz_
| Wert | Status |
| ----- | ---------------------------- |
| 101 | Instanz wird erstellt |
| 102 | Instanz ist aktiv |
| 103 | Instanz wird gelöscht |
| 104 | Instanz ist inaktiv |
| 105 | Instanz wurde nicht erstellt |
| 106 | Instanz ist im Standby |
| >=200 | Instanz ist fehlerhaft |
Für weitere Informationen zu Status Codes, siehe [Nachrichten](../sdk-php.md)
**Beispiel**
```php
// Fragt den aktuellen Status der Instanz ab
$currentStatus = $this->GetStatus();
```
## GetTimerInterval
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/gettimerinterval/
`int GetTimerInterval(string $Name)`
_Benötigt Symcon >= 5.2_
Fragt den Intervall eines Timers ab
**Parameter**
- `$Name` (string): Der Name des Timers dessen Intervall abgefragt werden soll.
**Rückgabewert** (int): Aktuell eingestelltes Intervall in Millisekunden
Der Name des Timers dessen Intervall abgefragt werden soll.
**Beispiel**
```php
// Fragt den Intervall des Timers "Update" ab
echo $this->GetTimerInterval("Update");
```
## GetValue
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getvalue/
`mixed GetValue(string $Ident)`
_Benötigt Symcon >= 5.0_
Liefert den Wert einer Statusvariable
**Parameter**
- `$Ident` (string): Ident der Statusvariable
**Rückgabewert** (mixed): Der Inhalt der Statusvariable
Ident der Statusvariable
**Beispiel**
```php
// Gibt den Wert der Statusvariable "Statusvariable1" zurück
$StatusvariableValue = $this->GetValue("Statusvariable1");
```
## GetVisualizationTile
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/getvisualizationtile/
`string GetVisualizationTile()`
_Benötigt Symcon >= 7.1_
Gibt die individuelle Darstellung via HTML-SDK zurück
**Rückgabewert** (string): Initiale Darstellung einer Darstellung via HTML-SDK
Soll das [HTML-SDK](../sdk-php.md) verwendet werden, so muss diese Funktion überschrieben werden, um den HTML-Inhalt zurückzugeben.
> **Hinweis:** Zur einfacheren Bearbeitung lohnt es sich meist den konstanten Teil der Darstellung in einer HTML-Datei zu definieren anstatt es in dieser Funktion komplett auszuschreiben
**Beispiel**
```r
// IPSModuleStrict
public function GetVisualizationTile(): string {
// Gebe direkt den Inhalt der module.html im gleichen Verzeichnis zurück
return file_get_contents('./module.html');
}
// IPSModule
public function GetVisualizationTile() {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## HasActiveParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/hasactiveparent/
`bool HasActiveParent()`
_Benötigt Symcon >= 5.1_
Prüft ob alle physikalisch übergeordneten Instanzen aktiv sind
**Rückgabewert** (bool): __TRUE__, falls alle physikalisch übergeordneten Instanzen aktiv sind, andernfalls __FALSE__
Diese Funktion prüft, ob alle physikalisch übergeordneten Instanzen aktiv sind. Ist in der Kette mindestens eine Instanz nicht aktiv, so gibt die Funktion __FALSE__ zurück. Sind alle Instanzen aktiv, so gibt die Funktion __TRUE__ zurück.
> **Hinweis:** Sollte kein Parent vorhanden sein, liefert die Funktion ebenfalls __FALSE__ zurück.
**Beispiel**
```php
// Breche mit Fehlermeldung ab, falls Splitter oder I/O nicht bereit sind
if (!$this->HasActiveParent()) {
echo "Fehler: Übergeordnete Instanzen sind nicht aktiv";
return;
}
```
## LogMessage
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/logmessage/
`bool LogMessage(string $Nachricht, int $Typ)`
_Benötigt Symcon >= 5.0_
Sendet eine Nachricht mit Typkodierung
**Parameter**
- `$Nachricht` (string): Inhalt der Nachricht
- `$Typ` (int)
| Typ | Wert | Beschreibung |
| ---------- | ----- | ---------------------- |
| KL_DEBUG | 10206 | Eine Debugmeldung |
| KL_ERROR | 10205 | Eine Fehlermeldung |
| KL_MESSAGE | 10201 | Eine Standardnachricht |
| KL_NOTIFY | 10203 | Eine Benachrichtigung |
| KL_WARNING | 10204 | Eine Warnungsmeldung |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Typ | Wert | Beschreibung |
| ---------- | ----- | ---------------------- |
| KL_DEBUG | 10206 | Eine Debugmeldung |
| KL_ERROR | 10205 | Eine Fehlermeldung |
| KL_MESSAGE | 10201 | Eine Standardnachricht |
| KL_NOTIFY | 10203 | Eine Benachrichtigung |
| KL_WARNING | 10204 | Eine Warnungsmeldung |
**Beispiel**
```php
// Senden einer Warnungsmeldung im Meldungsfenster
$this->LogMessage("Dies ist eine Warnung", KL_WARNING);
```
## MaintainAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/maintainaction/
`bool MaintainAction(string $Ident, bool $AktionAktivieren)`
_Benötigt Symcon >= 4.0_
Aktiviert/Deaktiviert die Standardaktion je nach Parameter
**Parameter**
- `$Ident` (string): Ident der Variable
- `$AktionAktivieren` (bool): Enable wenn __True__, Disable wenn __False__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Enable wenn __True__, Disable wenn __False__
**Beispiel**
```php
// Wir haben eine Aktion nur, wenn der Gerätetyp == 5 ist
$this->MaintainAction("SpecialData", $this->ReadPropertyInteger("DeviceType") == 5);
```
## MaintainVariable
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/maintainvariable/
`mixed MaintainVariable(string $Ident, string $Name, int $Typ, mixed $ProfilOderDarstellung, int $Position, bool $Beibehalten)`
_Benötigt Symcon >= 4.0_
Erstellt/Löscht die Statusvariable je nach Parameter
**Parameter**
- `$Ident` (string): Ident der Statusvariable
- `$Name` (string): Name der Statusvariable
- `$Typ` (int): Typ der Statusvariable
- `$ProfilOderDarstellung` (mixed): Name des Variablenprofils oder Konfiguration der [Darstellung](../sdk-php.md) welche verwendet werden soll
- `$Position` (int): Postion im Objektbaum und somit auch im WebFront
- `$Beibehalten` (bool): Register wenn __True__, Unregister wenn __False__
**Rückgabewert** (mixed): | Klasse | Typ | Beschreibung |
| --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| IPSModuleStrict | boolean | Gibt zurück, ob die Variable erstellt wurde. Der Rückgabewert kann genutzt werden, um z\.B\. einen Initialwert zu setzen |
| IPSModule | integer | VariablenID der erstellten Statusvariable |
Register wenn __True__, Unregister wenn __False__
**Beispiel**
```php
// Wir haben diese Statusvariable nur, wenn der Gerätetyp == 5 ist
// IPSModuleStrict
$erstellt = $this->MaintainVariable("Status", "Status des Device", 3, "MeinVariablenProfilfuerStatus", 0, $this->ReadPropertyInteger("DeviceType") == 5);
if ($erstellt) {
// Initialer Wert soll true sein
$this-SetValue("Status", true);
}
// IPSModule
$variablenID = $this->MaintainVariable("Status", "Status des Device", 3, "MeinVariablenProfilfuerStatus", 0, $this->ReadPropertyInteger("DeviceType") == 5);
```
## MessageSink
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/messagesink/
`void MessageSink(int $Zeitstempel, int $SenderID, int $NachrichtID, array $Daten)`
_Benötigt Symcon >= 4.1_
Überschreibare Funktion, welche registrierte Nachrichten verarbeitet
**Parameter**
- `$Zeitstempel` (int): Fortlaufender Zähler Zeitstempel
- `$SenderID` (int): ID des Senders
- `$NachrichtID` (int): ID der Nachricht
- `$Daten` (array): Daten der Nachricht
**Rückgabewert** (void): Keine Rückgabe
Daten der Nachricht
**Beispiel**
```php
// IPSModuleStrict
public function MessageSink(int $TimeStamp, int $SenderID, int $Message, array $Data) {
IPS_LogMessage("MessageSink", "Message from SenderID ".$SenderID." with Message ".$Message."\r\n Data: ".print_r($Data, true));
}
// IPSModule
public function MessageSink($TimeStamp, $SenderID, $Message, $Data) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## Migrate
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/migrate/
`string Migrate(string $JSONData)`
_Benötigt Symcon >= 7.0_
Funktion, welche einmalig nach der Erstellung der Instanz aufgerufen wird
**Parameter**
- `$JSONData` (string): Persistenz (Konfiguration, Attribute) der Instanz
**Rückgabewert** (string): JSON-kodiertes Objekt mit der neuen Konfiguration/Attributen.
Leerer String, sofern keine Änderungen notwendig sind.
Persistenz (Konfiguration, Attribute) der Instanz
**Beispiel**
```php
// IPSModuleStrict
public function Migrate(string $JSONData): string {
// Diese Zeile nicht entfernen
parent::Migrate($JSONData);
// Beispielinhalt von JSONData
/*
{
"attributes": {
"MeinAttribut": "MeinWert"
},
"configuration": {
"MeineKonfiguration": "MeinWert"
}
}
*/
// Eigenschaften/Attribute migrieren
$j = json_decode($JSONString);
$j->attributes->NeuesAttribut = $j->attributes->MeinAttribut;
$j->configuration->NeueKonfiguration = $j->configuration->MeineKonfiguration;
return json_encode($j);
}
// IPSModule
public function Migrate($JSONData) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## ProcessHookData
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/processhookdata/
`void ProcessHookData()`
_Benötigt Symcon >= 4.0_
Funktion, welche beim Aufrufen des vorher registrierten Webhooks aufgerufen wird
**Rückgabewert** (void): Keine Rückgabe
Wird der durch die Funktion [RegisterHook](module.md) im [WebHook Control](../../../modules/webhook-control.md) registrierte WebHook von außen aufgerufen, so wird diese Funktion ausgeführt. Die Ausgabe (z.B. über echo) wird als Antwort dem Aufrufendem angezeigt. Über entsprechende PHP-Funktionen kann auch der Header der Antwort angepasst werden.
**Beispiel**
```php
// IPSModuleStrict
protected function ProcessHookData(): void {
// Empfangene Daten
$data = json_decode(file_get_contents('php://input'), true);
$this->LogMessage('Remote Method', utf8_decode($data['method']), KL_MESSAGE);
if ($data['method'] == 'get_version') {
header('Content-Type: application/json');
echo json_encode([
'result' => IPS_GetKernelVersion(),
'jsonrpc' => '2.0',
'id' => $request['id']
]);
}
}
// IPSModule
protected function ProcessHookData($JSONString) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## ProcessOAuthData
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/processoauthdata/
`void ProcessOAuthData()`
_Benötigt Symcon >= 4.1_
Funktion, welche beim Abschluss des OAuth-Prozesses aufgerufen wird
**Rückgabewert** (void): Keine Rückgabe
Wird der durch die Funktion [RegisterOAuth](module.md) registrierte OAuth-Handler aufgerufen, so wird diese Funktion ausgeführt. Die empfangenen OAuth-Zugangsdaten können z.B. über entsprechende PHP-Eingabe-Streams gelesen werden.
**Beispiel**
```php
// IPSModuleStrict
protected function ProcessOAuthData(): void {
// OAuth-Zugangsdaten aus dem Request
$token = file_get_contents('php://input');
$this->LogMessage('OAuth Token erhalten', KL_MESSAGE);
// Token speichern
$this->WriteAttributeString('OAuthToken', $token);
}
// IPSModule
protected function ProcessOAuthData($Token) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## ReadAttributeBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readattributeboolean/
`bool ReadAttributeBoolean(string $Name)`
_Benötigt Symcon >= 5.1_
Liest ein Attribut vom Typ Boolean aus
**Parameter**
- `$Name` (string): Name des Attributs
**Rückgabewert** (bool): Der Wert des Attributs
Name des Attributs
**Beispiel**
```php
$this->ReadAttributeBoolean("CurrentState");
```
## ReadAttributeFloat
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readattributefloat/
`float ReadAttributeFloat(string $Name)`
_Benötigt Symcon >= 5.1_
Liest ein Attribut vom Typ Float aus
**Parameter**
- `$Name` (string): Name des Attributs
**Rückgabewert** (float): Der Wert des Attributs
Name des Attributs
**Beispiel**
```php
$this->ReadAttributeFloat("Median");
```
## ReadAttributeInteger
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readattributeinteger/
`int ReadAttributeInteger(string $Name)`
_Benötigt Symcon >= 5.1_
Liest ein Attribut vom Typ Integer aus
**Parameter**
- `$Name` (string): Name des Attributs
**Rückgabewert** (int): Der Wert des Attributs
Name des Attributs
**Beispiel**
```php
$this->ReadAttributeInteger("SequenceCounter")
```
## ReadAttributeString
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readattributestring/
`string ReadAttributeString(string $Name)`
_Benötigt Symcon >= 5.1_
Liest ein Attribut vom Typ String aus
**Parameter**
- `$Name` (string): Name des Attributs
**Rückgabewert** (string): Der Wert des Attributs
Name des Attributs
**Beispiel**
```php
$this->ReadAttributeString("Token");
```
## ReadPropertyBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readpropertyboolean/
`bool ReadPropertyBoolean(string $Name)`
_Benötigt Symcon >= 4.0_
Liest eine Eigenschaft vom Typ Boolean aus
**Parameter**
- `$Name` (string): Name der Eigenschaft
**Rückgabewert** (bool): Der Wert der Eigenschaft
Name der Eigenschaft
**Beispiel**
```php
$this->ReadPropertyBoolean("EmulateStatus");
```
## ReadPropertyFloat
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readpropertyfloat/
`float ReadPropertyFloat(string $Name)`
_Benötigt Symcon >= 4.0_
Liest eine Eigenschaft vom Typ Float aus
**Parameter**
- `$Name` (string): Name der Eigenschaft
**Rückgabewert** (float): Der Wert der Eigenschaft
Name der Eigenschaft
**Beispiel**
```php
$this->ReadPropertyFloat("Faktor");
```
## ReadPropertyInteger
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readpropertyinteger/
`int ReadPropertyInteger(string $Name)`
_Benötigt Symcon >= 4.0_
Liest eine Eigenschaft vom Typ Integer aus
**Parameter**
- `$Name` (string): Name der Eigenschaft
**Rückgabewert** (int): Der Wert der Eigenschaft
Name der Eigenschaft
**Beispiel**
```php
$this->ReadPropertyInteger("GatewayMode");
```
## ReadPropertyString
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/readpropertystring/
`string ReadPropertyString(string $Name)`
_Benötigt Symcon >= 4.0_
Liest eine Eigenschaft vom Typ String aus
**Parameter**
- `$Name` (string): Name der Eigenschaft
**Rückgabewert** (string): Der Wert der Eigenschaft
Name der Eigenschaft
**Beispiel**
```php
$this->ReadPropertyString("Benutzername");
```
## ReceiveData
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/receivedata/
`string ReceiveData(string $JSONString)`
_Benötigt Symcon >= 4.0_
Funktion, welche beim Empfang von Daten von einer übergeordneten Instanz (z.B. I/O, Splitter) aufgerufen wird
**Parameter**
- `$JSONString` (string): Datenpaket im JSON Format
**Rückgabewert** (string): optionale Antwort an die übergordnete Instanz
Datenpaket im JSON Format
**Beispiel**
```php
// IPSModuleStrict
public function ReceiveData(string $JSONString): string {
// Beispiel innerhalb einer Gateway/Splitter Instanz
// Empfangene Daten vom I/O
$data = json_decode($JSONString);
IPS_LogMessage("ReceiveData", utf8_decode($data->Buffer));
// Hier werden die Daten verarbeitet
// Weiterleitung zu allen Gerät-/Device-Instanzen
$resultate = $this->SendDataToChildren(json_encode(Array("DataID" => "{66164EB8-3439-4599-B937-A365D7A68567}", "Buffer" => $data->Buffer)));
//Wenn eine untergeordnete Instanz ein Resultat liefert, kann dieses genutzt werden.
foreach($resultate as $resultat) {
IPS_LogMessage("IOSplitter RECV-RES", $resultat);
}
}
// Beispiel innerhalb einer Geräte/Device Instanz
public function ReceiveData(string $JSONString): string {
// Empfangene Daten vom Gateway/Splitter
$data = json_decode($JSONString);
IPS_LogMessage("ReceiveData", utf8_decode($data->Buffer));
// Datenverarbeitung und schreiben der Werte in die Statusvariablen
SetValue($this->GetIDForIdent("Value"), $data->Buffer);
// Sende Resultat zurück an das/den Gateway/Splitter
return "OK von " . $this->InstanceID;
}
// IPSModule
public function ReceiveData($JSONString) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## RegisterAttributeBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerattributeboolean/
`bool RegisterAttributeBoolean(string $Name, bool $Standardwert)`
_Benötigt Symcon >= 5.1_
Erstellt ein Attribut vom Typ Boolean
**Parameter**
- `$Name` (string): Name des Attributs
- `$Standardwert` (bool): Standardwert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert des Attributs
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterAttributeBoolean("CurrentState", true);
}
```
## RegisterAttributeFloat
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerattributefloat/
`bool RegisterAttributeFloat(string $Name, float $Standardwert)`
_Benötigt Symcon >= 5.1_
Erstellt ein Attribut vom Typ Float
**Parameter**
- `$Name` (string): Name des Attributs
- `$Standardwert` (float): Standardwert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert des Attributs
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterAttributeFloat("Median", 0.5);
}
```
## RegisterAttributeInteger
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerattributeinteger/
`bool RegisterAttributeInteger(string $Name, int $Standardwert)`
_Benötigt Symcon >= 5.1_
Erstellt ein Attribut vom Typ Integer
**Parameter**
- `$Name` (string): Name des Attributs
- `$Standardwert` (int): Standardwert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert des Attributs
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterAttributeInteger("SequenceCounter", 0);
}
```
## RegisterAttributeString
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerattributestring/
`bool RegisterAttributeString(string $Name, string $Standardwert)`
_Benötigt Symcon >= 5.1_
Erstellt ein Attribut vom Typ String
**Parameter**
- `$Name` (string): Name des Attributs
- `$Standardwert` (string): Standardwert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert des Attributs
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterAttributeString("Token", "");
}
```
## RegisterHook
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerhook/
`bool RegisterHook(string $Adresse)`
_Benötigt Symcon >= 8.1_
Registriert einen WebHook mit der angegebenen Adresse
**Parameter**
- `$Adresse` (string): Adresse des Hooks
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Adresse des Hooks
**Beispiel**
```php
// IPSModuleStrict
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterHook('my-module');
}
// IPSModule
// Diese Funktion kann für IPSModule nativ nicht verwendet werden
// Die Verwendung der WebHookModule Basisklasse ermöglicht eine
// vergleichbare Verwendung in IPSModule
```
## RegisterMessage
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registermessage/
`bool RegisterMessage(int $SenderID, int $NachrichtID)`
_Benötigt Symcon >= 4.1_
Registriert eine Nachricht für eine SenderID
**Parameter**
- `$SenderID` (int): ID des Senders
- `$NachrichtID` (int): ID der Nachricht
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Nachricht
**Beispiel**
```php
$this->RegisterMessage(12345 /* InstanzID */, 10505 /* IM_CHANGESTATUS */);
```
## RegisterOAuth
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registeroauth/
`bool RegisterOAuth(string $Identifikator)`
_Benötigt Symcon >= 8.1_
Registriert einen OAuth-Handler mit dem angegebenen Identifikator
**Parameter**
- `$Identifikator` (string): Identifikator des OAuth-Handlers
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Identifikator des OAuth-Handlers
**Beispiel**
```php
// IPSModuleStrict
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterOAuth('my-module');
}
// IPSModule
// Diese Funktion kann für IPSModule nativ nicht verwendet werden
// Die Verwendung der WebOAuthModule Basisklasse ermöglicht eine
// vergleichbare Verwendung in IPSModule
```
## RegisterOnceTimer
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registeroncetimer/
`bool RegisterOnceTimer(string $Name, string $Skriptinhalt)`
_Benötigt Symcon >= 5.5_
Erstellt einen einmaligen Timer
**Parameter**
- `$Name` (string): Name des Timers
- `$Skriptinhalt` (string): PHP Skript ohne PHP Tags (RegisterOnceTimer("Update", "echo 'Hallo Welt';");
```
## RegisterPropertyBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerpropertyboolean/
`bool RegisterPropertyBoolean(string $Name, bool $Standardwert)`
_Benötigt Symcon >= 4.0_
Erstellt eine Eigenschaft vom Typ Boolean
**Parameter**
- `$Name` (string): Name der Eigenschaft
- `$Standardwert` (bool): Standardwert der Eigenschaft
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert der Eigenschaft
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterPropertyBoolean("EmulateStatus", true);
}
```
## RegisterPropertyFloat
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerpropertyfloat/
`bool RegisterPropertyFloat(string $Name, float $Standardwert)`
_Benötigt Symcon >= 4.0_
Erstellt eine Eigenschaft vom Typ Float
**Parameter**
- `$Name` (string): Name der Eigenschaft
- `$Standardwert` (float): Standardwert der Eigenschaft
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert der Eigenschaft
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterPropertyFloat("Faktor", 0.5);
}
```
## RegisterPropertyInteger
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerpropertyinteger/
`bool RegisterPropertyInteger(string $Name, int $Standardwert)`
_Benötigt Symcon >= 4.0_
Erstellt eine Eigenschaft vom Typ Integer
**Parameter**
- `$Name` (string): Name der Eigenschaft
- `$Standardwert` (int): Standardwert der Eigenschaft
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert der Eigenschaft
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterPropertyInteger("GatewayMode", 0);
}
```
## RegisterPropertyString
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerpropertystring/
`bool RegisterPropertyString(string $Name, string $Standardwert)`
_Benötigt Symcon >= 4.0_
Erstellt eine Eigenschaft vom Typ String
**Parameter**
- `$Name` (string): Name der Eigenschaft
- `$Standardwert` (string): Standardwert der Eigenschaft
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standardwert der Eigenschaft
**Beispiel**
```php
public function Create(): void {
// Diese Zeile nicht löschen oder ändern.
parent::Create();
$this->RegisterPropertyString("Benutzername", "MaxMustermann");
}
```
## RegisterReference
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerreference/
`bool RegisterReference(int $ID)`
_Benötigt Symcon >= 5.1_
Registriert eine ID als referenziert
**Parameter**
- `$ID` (int): ID des Objekts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Objekts
**Beispiel**
```php
$this->RegisterReference(10505 /* ObjektID */);
```
## RegisterScript
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registerscript/
`mixed RegisterScript(string $Ident, string $Name, string $Inhalt, int $Position)`
_Benötigt Symcon >= 4.0_
Erstellt ein Skript falls noch nicht vorhanden
**Parameter**
- `$Ident` (string): Ident des Skripts
- `$Name` (string): Name des Skripts
- `$Inhalt` (string)
Inhalt, welcher in das Skript eingetragen werden soll.
__Default__ == "<?php
//Autogenerated script"
- `$Position` (int): Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Rückgabewert** (mixed): | Klasse | Typ | Beschreibung |
| --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| IPSModule | integer | Gibt die ObjektID des erstellten oder bereits vorhandenen Skripts zurück. |
| IPSModuleStrict | boolean | Gibt zurück, ob das Script erstellt wurde. Der Rückgabewert kann genutzt werden, um z.B. initiale Konfigurationen vorzunehmen. |
Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Beispiel**
```php
// IPSModuleStrict
$erstellt = $this->RegisterScript("TestSkript", "Mein TestSkript");
if ($erstellt) {
// Dinge tun, wenn Skript frisch erstellt wurde
}
// IPSModule
$skriptID = $this->RegisterScript("TestSkript", "Mein TestSkript");
```
## RegisterTimer
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registertimer/
`bool RegisterTimer(string $Name, int $Intervall, string $Skriptinhalt)`
_Benötigt Symcon >= 4.0_
Erstellt einen Timer
**Parameter**
- `$Name` (string): Name des Timers
- `$Intervall` (int): Intervall in Millisekunden mit dem der Timer erstellt werden soll. 0 = Niemals
- `$Skriptinhalt` (string): PHP Skript ohne PHP Tags (RegisterTimer("Update", 5000, "echo 'Hallo Welt';");
```
## RegisterVariableBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registervariableboolean/
`mixed RegisterVariableBoolean(string $Ident, string $Name, array $Darstellung, int $Position)`
_Benötigt Symcon >= 4.0_
Erstellt eine Statusvariable vom Typ Boolean
**Parameter**
- `$Ident` (string): Ident der Statusvariable
- `$Name` (string): Name der Statusvariable
- `$Darstellung` (array): Die Konfiguration der Darstellung als Array. Ein Profil kann über das [Legacy Profil](../sdk-php.md) gesetzt werden.
__Default__ == ""
- `$Position` (int): Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Rückgabewert** (mixed): | Klasse | Typ | Beschreibung |
| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
| IPSModuleStrict | boolean | Gibt zurück, ob die Variable erstellt wurde. Der Rückgabewert kann genutzt werden, um z.B. einen initialen Wert zu setzen. |
| IPSModule | integer | VariablenID der erstellten Statusvariable. |
Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Beispiel**
```php
// IPSModuleStrict
$erstellt = $this->RegisterVariableBoolean("Schalter", "Lichtschalter", ["PRESENTATION" => VARIABLE_PRESENTATION_SWITCH]);
if ($erstellt) {
// Initialen Wert setzen
$this->SetValue("Schalter", true);
}
// IPSModule
$variablenID = $this->RegisterVariableBoolean("Schalter", "Lichtschalter", ["PRESENTATION" => VARIABLE_PRESENTATION_SWITCH]);
```
## RegisterVariableFloat
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registervariablefloat/
`mixed RegisterVariableFloat(string $Ident, string $Name, array $Darstellung, int $Position)`
_Benötigt Symcon >= 4.0_
Erstellt eine Statusvariable vom Typ Float
**Parameter**
- `$Ident` (string): Ident der Statusvariable
- `$Name` (string): Name der Statusvariable
- `$Darstellung` (array): Die Konfiguration der Darstellung als Array. Ein Profil kann über das [Legacy Profil](../sdk-php.md) gesetzt werden.
__Default__ == ""
- `$Position` (int): Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Rückgabewert** (mixed): | Klasse | Typ | Beschreibung |
| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
| IPSModuleStrict | boolean | Gibt zurück, ob die Variable erstellt wurde. Der Rückgabewert kann genutzt werden, um z.B. einen initialen Wert zu setzen. |
| IPSModule | integer | VariablenID der erstellten Statusvariable. |
Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Beispiel**
```php
// IPSModuleStrict
$erstellt = $this->RegisterVariableFloat("Faktor", "Zoom Faktor Wandanzeige", ["PRESENTATION"=> VARIABLE_PRESENTATION_SLIDER, 'SUFFIX' => ' %']);
if ($erstellt) {
// Initialen Wert setzen
$this->SetValue("Faktor", 5.8);
}
// IPSModule
$variablenID = $this->RegisterVariableFloat("Faktor", "Zoom Faktor Wandanzeige", ["PRESENTATION"=> VARIABLE_PRESENTATION_SLIDER, 'SUFFIX' => ' %']);
```
## RegisterVariableInteger
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registervariableinteger/
`mixed RegisterVariableInteger(string $Ident, string $Name, array $Darstellung, int $Position)`
_Benötigt Symcon >= 4.0_
Erstellt eine Statusvariable vom Typ Integer
**Parameter**
- `$Ident` (string): Ident der Statusvariable
- `$Name` (string): Name der Statusvariable
- `$Darstellung` (array): Die Konfiguration der Darstellung als Array. Ein Profil kann über das [Legacy Profil](../sdk-php.md) gesetzt werden.
__Default__ == ""
- `$Position` (int): Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Rückgabewert** (mixed): | Klasse | Typ | Beschreibung |
| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
| IPSModuleStrict | boolean | Gibt zurück, ob die Variable erstellt wurde. Der Rückgabewert kann genutzt werden, um z.B. einen initialen Wert zu setzen. |
| IPSModule | integer | VariablenID der erstellten Statusvariable. |
Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Beispiel**
```php
// IPSModuleStrict
$erstellt = $this->RegisterVariableInteger("Helligkeit", "Helligkeit der Lampe", ["PRESENTATION"=> VARIABLE_PRESENTATION_SLIDER, 'SUFFIX' => ' lx']);
if ($erstellt) {
// Initialen Wert setzen
$this->SetValue("Helligkeit", 50);
}
// IPSModule
$variablenID = $this->RegisterVariableInteger("Helligkeit", "Helligkeit der Lampe", ["PRESENTATION"=> VARIABLE_PRESENTATION_SLIDER, 'SUFFIX' => ' lx']);
```
## RegisterVariableString
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/registervariablestring/
`mixed RegisterVariableString(string $Ident, string $Name, array $Darstellung, int $Position)`
_Benötigt Symcon >= 4.0_
Erstellt eine Statusvariable vom Typ String
**Parameter**
- `$Ident` (string): Ident der Statusvariable
- `$Name` (string): Name der Statusvariable
- `$Darstellung` (array): Die Konfiguration der Darstellung als Array. Ein Profil kann über das [Legacy Profil](../sdk-php.md) gesetzt werden.
__Default__ == ""
- `$Position` (int): Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Rückgabewert** (mixed): | Klasse | Typ | Beschreibung |
| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
| IPSModuleStrict | boolean | Gibt zurück, ob die Variable erstellt wurde. Der Rückgabewert kann genutzt werden, um z.B. einen initialen Wert zu setzen. |
| IPSModule | integer | VariablenID der erstellten Statusvariable. |
Position im Objektbaum und somit auch in der Visualisierung.
__Default__ == 0
**Beispiel**
```php
// IPSModuleStrict
$erstellt = $this->RegisterVariableString("Name", "Mein Name", ["PRESENTATION"=> VARIABLE_PRESENTATION_VALUE_INPUT]);
if ($erstellt) {
// Initialen Wert setzen
$this->SetValue("Name", "Peter");
}
// IPSModule
$variablenID = $this->RegisterVariableString("Name", "Mein Name", ["PRESENTATION"=> VARIABLE_PRESENTATION_VALUE_INPUT]);
```
## ReloadForm
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/reloadform/
`bool ReloadForm()`
_Benötigt Symcon >= 5.2_
Lade die Instanzkonfiguration neu
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Diese Funktion lädt das Formular der Instanzkonfiguration in jeder offenen Instanzkonfiguration neu. Aktuelle Eingaben gehen dabei verloren.
**Beispiel**
```php
// Lade das Formular neu
$this->ReloadForm();
```
## RequestAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/requestaction/
`void RequestAction(string $Ident, mixed $Wert)`
Funktion, welche bei einer Anfrage der Visualisierung zur Wertänderung aufgerufen wird
**Parameter**
- `$Ident` (string): Ident der Variable
- `$Wert` (mixed): Der Wert, welcher gesetzt werden soll
**Rückgabewert** (void): Keine Rückgabe
Der Wert, welcher gesetzt werden soll
**Beispiel**
```php
// IPSModuleStrict
public function RequestAction(string $Ident, mixed $Value): void {
switch($Ident) {
case "TestVariable":
//Hier würde normalerweise eine Aktion z.B. das Schalten ausgeführt werden
//Ausgaben über 'echo' werden an die Visualisierung zurückgeleitet
//Neuen Wert in die Statusvariable schreiben
SetValue($this->GetIDForIdent($Ident), $Value);
break;
default:
throw new Exception("Invalid Ident");
}
}
// IPSModule
public function RequestAction($Ident, $Value) {
// Beispiel identisch. Bitte die geänderte Funktionssignatur beachten.
}
```
## RequireParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/requireparent/
`bool RequireParent(string $ÜbergordneteGUID)`
_Benötigt Symcon >= 4.0_
Verbindet eine Instanz mit einer übergeordneten Instanz
**Parameter**
- `$ÜbergordneteGUID` (string): [GUID](../../../concepts.md)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
[GUID](../../../concepts.md)
**Beispiel**
```php
// IPSModuleStrict
ConnectParent/RequireParent/ForceParent ist nicht verfügbar,
kann aber durch die neue Funktion "GetCompatibleParents()" ersetzt werden.
// IPSModule
public function Create() {
// Die Zeile niemals entfernen!
parent::Create();
// Verbinde mit neu erstellten Splitter, falls noch keine Verbindung besteht
$this->RequireParent("{46C969BF-3465-4E3E-B2A5-E404FB969735}");
}
```
## SendDataToChildren
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/senddatatochildren/
`array SendDataToChildren(string $Daten)`
_Benötigt Symcon >= 4.0_
Sendet Daten zu allen untergeordneten Instanzen
**Parameter**
- `$Daten` (string): JSON kodierter String
**Rückgabewert** (array): Ergebnisse, welches [ReceiveData](module.md) von den übergeordneten Instanzen liefert
JSON kodierter String
**Beispiel**
```php
// Beispiel ist bei ReceiveData zu finden
```
## SendDataToParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/senddatatoparent/
`string SendDataToParent(string $Daten)`
_Benötigt Symcon >= 4.0_
Sendet Daten zu einer übergeordneten Instanz
**Parameter**
- `$Daten` (string): JSON kodierter String
**Rückgabewert** (string): Ergebnis, welches [ForwardData](module.md) von der übergeordneten Instanz liefert
JSON kodierter String
**Beispiel**
```php
// Beispiel ist bei ForwardData zu finden
```
## SendDebug
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/senddebug/
`bool SendDebug(string $Meldungsname, string $Daten, int $Format)`
_Benötigt Symcon >= 4.0_
Sendet eine Meldung an die Debugausgabe
**Parameter**
- `$Meldungsname` (string): Name/Titel der Debugausgabe
- `$Daten` (string): Inhalt der Debugmeldung
- `$Format` (int): Voreinstellung für automatische Formationsauswahl (0 = Text, 1 = Hex)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Voreinstellung für automatische Formationsauswahl (0 = Text, 1 = Hex)
**Beispiel**
```php
// Beispiel aus der Anwesenheitssimulation
$this->SendDebug("Fetch", "Fetched day -".$day." with ".sizeof($data['Data'])." valid device(s)", 0);
// Beispielausgabe automatisch als Textausgabe im Debugfenster konfiguriert
"Fetch" - "Fetched day -28 with 2 valid device(s)"
```
## SetBuffer
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setbuffer/
`bool SetBuffer(string $Name, string $Daten)`
_Benötigt Symcon >= 4.1_
Setzt den Inhalt eines Buffers
**Parameter**
- `$Name` (string): Name des Buffers
- `$Daten` (string): Daten welche in den Buffer gepackt werden sollen.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Daten welche in den Buffer gepackt werden sollen.
**Beispiel**
```php
// Schreibt "Hallo Welt" in den Buffer "Databuffer"
$this->SetBuffer("DataBuffer", "Hallo Welt");
```
## SetForwardDataFilter
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setforwarddatafilter/
`bool SetForwardDataFilter(string $ErforderlicheRegexRegel)`
_Benötigt Symcon >= 4.1_
Setzt einen "Regular Expression"-Filter für die Funktion ForwardData
**Parameter**
- `$ErforderlicheRegexRegel` (string): Regexregel welche als Filter angewendet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Regexregel welche als Filter angewendet werden soll
**Beispiel**
```php
// Filter für ForwardData hinzufügen
public function ApplyChanges(): void {
[...]
$this->SetForwardDataFilter(".*Hallo.*");
[...]
}
// Wird nur aufgerufen, wenn "Hallo" im $JSONString gefunden wird
public function ForwardData(string $JSONString): string {
return "OK";
}
```
## SetReceiveDataFilter
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setreceivedatafilter/
`bool SetReceiveDataFilter(string $ErforderlicheRegexRegel)`
_Benötigt Symcon >= 4.1_
Setzt einen "Regular Expression"-Filter für die Funktion RecieveData
**Parameter**
- `$ErforderlicheRegexRegel` (string): Regexregel welche als Filter angewendet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Regexregel welche als Filter angewendet werden soll
**Beispiel**
```php
// Filter für ReceiveData hinzufügen
public function ApplyChanges(): void {
[...]
$this->SetReceiveDataFilter(".*Hallo.*");
[...]
}
// Wird nur aufgerufen, wenn "Hallo" im $JSONString gefunden wird
public function ReceiveData(string $JSONString): string {
return "";
}
```
## SetStatus
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setstatus/
`bool SetStatus(int $Statuswert)`
_Benötigt Symcon >= 4.0_
Setzt den Status einer Instanz
**Parameter**
- `$Statuswert` (int): Der Statuswert auf den die Instanz gesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Der Statuswert auf den die Instanz gesetzt werden soll.
**Beispiel**
```php
// Setzt des Status auf "inaktiv"
$this->SetStatus(104);
```
## SetSummary
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setsummary/
`bool SetSummary(string $Kurzinfo)`
_Benötigt Symcon >= 4.1_
Setzt die Kurzinformation eines Objekts
**Parameter**
- `$Kurzinfo` (string): Inhalt der gesetzt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Inhalt der gesetzt werden soll
**Beispiel**
```php
// Setzt eine mögliche IP-Adresse in die Kurzbeschreibung um eine schnelle Wiedererkennbarkeit zu gewährleisten.
$this->SetSummary($this->ReadPropertyString("IPAddress"));
```
## SetTimerInterval
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/settimerinterval/
`bool SetTimerInterval(string $Name, int $Intervall)`
_Benötigt Symcon >= 4.0_
Setzt den Intervall eines Timers
**Parameter**
- `$Name` (string): Der Name des Timers dessen Intervall gesetzt werden soll.
- `$Intervall` (int): Der Intervall in Millisekunden auf den der Timer gesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Der Intervall in Millisekunden auf den der Timer gesetzt werden soll.
**Beispiel**
```php
// Setzt den Intervall des Timers "Update" auf 5 Sekunden
$this->SetTimerInterval("Update", 5000);
```
## SetValue
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setvalue/
`bool SetValue(string $Ident, mixed $Wert)`
_Benötigt Symcon >= 5.0_
Setzt den Wert einer Statusvariable
**Parameter**
- `$Ident` (string): Ident der Statusvariable
- `$Wert` (mixed): Wert, welcher in die Statusvariable geschrieben werden sollen.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert, welcher in die Statusvariable geschrieben werden sollen.
**Beispiel**
```php
// Schreibt 123 in die Statusvariable "Statusvariable1"
$this->SetValue("Statusvariable1", 123);
```
## SetVisualizationType
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/setvisualizationtype/
`SetVisualizationType(int $VisualisierungsTyp)`
_Benötigt Symcon >= 7.1_
Setzt den Visualisierungstyp für die Instanz
**Parameter**
- `$VisualisierungsTyp` (int): Visualisierungstyp für individuelle Visualisierung
__0__: keine individuelle Visualisierung
__1__: Visualisierung via HTML-SDK
__2__: Visualisierung via HTML-SDK bei normaler Kachel und im Vollbild (seit 9.1)
[Konstanten](../sdk-php.md)
**Rückgabewert** (): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Visualisierungstyp für individuelle Visualisierung
__0__: keine individuelle Visualisierung
__1__: Visualisierung via HTML-SDK
__2__: Visualisierung via HTML-SDK bei normaler Kachel und im Vollbild (seit 9.1)
[Konstanten](../sdk-php.md)
**Beispiel**
```text
// Aktiviere HTML-SDK
$this->SetVisualizationType(INSTANCE_VISUALIZATION_TYPE_HTML);
```
## Translate
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/translate/
`string Translate(string $Text)`
_Benötigt Symcon >= 4.3_
Übersetzt einen Textabschnitt
**Parameter**
- `$Text` (string): Zu übersetzender Text
**Rückgabewert** (string): Übersetzter Text
Zu übersetzender Text
**Beispiel**
```php
// module.php
$label = sprintf($this->Translate("The current time is %s"), date("d.m.y H:i"));
// locale.json
{
"translations": {
"de": {
"The current time is %s": "Die aktuelle Zeit ist %s"
}
}
}
```
## UnregisterHook
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/unregisterhook/
`bool UnregisterHook(string $Adresse)`
_Benötigt Symcon >= 8.2_
Unregistriert einen WebHook mit der angegebenen Adresse
**Parameter**
- `$Adresse` (string): Adresse des Hooks
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Adresse des Hooks
**Beispiel**
```php
// IPSModuleStrict
public function ApplyChanges(): void {
...
$this->UnregisterHook('my-module');
...
}
```
## UnregisterMessage
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/unregistermessage/
`bool UnregisterMessage(int $SenderID, int $NachrichtID)`
_Benötigt Symcon >= 4.1_
Deaktiviert eine Nachricht für eine SenderID
**Parameter**
- `$SenderID` (int): ID des Senders
- `$NachrichtID` (int): ID der Nachricht
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Nachricht
**Beispiel**
```php
// Das Modul "horcht" nicht mehr auf Nachrichten der Instanz 12345 mit der NachrichtID 10505
$this->UnregisterMessage(12345 /* InstanzID */, 10505 /* IM_CHANGESTATUS */);
// Alle Nachrichten des Modules sollen gelöscht werden
foreach ($this->GetMessageList() as $senderID => $messages) {
foreach ($messages as $message) {
$this->UnregisterMessage($senderID, $message);
}
}
```
## UnregisterOAuth
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/unregisteroauth/
`bool UnregisterOAuth(string $Identifikator)`
_Benötigt Symcon >= 8.2_
Unregistriert einen OAuth-Handler mit dem angegebenen Identifikator
**Parameter**
- `$Identifikator` (string): Identifikator des OAuth-Handlers
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Identifikator des OAuth-Handlers
**Beispiel**
```php
// IPSModuleStrict
public function ApplyChanges(): void {
...
$this->UnregisterOAuth('my-module');
...
}
```
## UnregisterReference
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/unregisterreference/
`bool UnregisterReference(int $ID)`
_Benötigt Symcon >= 5.1_
Entfernt eine ID als referenziert
**Parameter**
- `$ID` (int): ID des Objekts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Objekts
**Beispiel**
```php
$this->UnregisterReference(10505 /* ObjektID */);
```
## UnregisterVariable
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/unregistervariable/
`bool UnregisterVariable(string $Ident)`
_Benötigt Symcon >= 4.0_
Löscht eine Statusvariable
**Parameter**
- `$Ident` (string): Ident der Statusvariable
**Rückgabewert** (bool): | Klasse | Typ | Beschreibung |
| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| IPSModuleStrict | boolean | Gibt zurück, ob die Variable entfernt wurde. Der Rückgabewert kann genutzt werden, um z.B. weitere Dinge aufzuräumen. |
| IPSModule | boolean | Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**. |
Ident der Statusvariable
**Beispiel**
```php
$this->UnregisterVariable("Temperatur");
```
## UpdateFormField
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/updateformfield/
`bool UpdateFormField(string $Feld, string $Parameter, mixed $Wert)`
_Benötigt Symcon >= 5.2_
Verändert den Parameter eines Formularfeldes
**Parameter**
- `$Feld` (string): Name des zu ändernden Formularfeldes
- `$Parameter` (string): Name des zu ändernden Parameters
- `$Wert` (mixed): Neuer Wert des Parameters
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Wert des Parameters
**Beispiel**
```php
// Verstecke den Button
$this->UpdateFormField("MyButton", "visible", false);
```
## UpdateVisualizationValue
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/updatevisualizationvalue/
`bool UpdateVisualizationValue(mixed $Daten)`
_Benötigt Symcon >= 7.1_
Schickt bei Verwendung des HTML-SDK eine Nachricht an die Visualisierung
**Parameter**
- `$Daten` (mixed): beliebige Daten, welche an die Visualisierung geschickt werden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
beliebige Daten, welche an die Visualisierung geschickt werden
**Beispiel**
```text
// In diesem Beispiel wird eine einfache Zahl als Zählerstand übergeben
$this->UpdateVisualizationValue(5);
```
## WriteAttributeBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/writeattributeboolean/
`bool WriteAttributeBoolean(string $Name, bool $Wert)`
_Benötigt Symcon >= 5.1_
Schreibt ein Attribut vom Typ Boolean
**Parameter**
- `$Name` (string): Name des Attributs
- `$Wert` (bool): Wert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Attributs
**Beispiel**
```php
$this->WriteAttributeBoolean("CurrentState", false);
```
## WriteAttributeFloat
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/writeattributefloat/
`bool WriteAttributeFloat(string $Name, float $Wert)`
_Benötigt Symcon >= 5.1_
Schreibt ein Attribut vom Typ Float
**Parameter**
- `$Name` (string): Name des Attributs
- `$Wert` (float): Wert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Attributs
**Beispiel**
```php
$this->WriteAttributeFloat("Median", 5.5);
```
## WriteAttributeInteger
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/writeattributeinteger/
`bool WriteAttributeInteger(string $Name, int $Wert)`
_Benötigt Symcon >= 5.1_
Schreibt ein Attribut vom Typ Integer
**Parameter**
- `$Name` (string): Name des Attributs
- `$Wert` (int): Wert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Attributs
**Beispiel**
```php
$this->WriteAttributeInteger("SequenceCounter", 4);
```
## WriteAttributeString
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/module/writeattributestring/
`bool WriteAttributeString(string $Name, string $Wert)`
_Benötigt Symcon >= 5.1_
Schreibt ein Attribut vom Typ String
**Parameter**
- `$Name` (string): Name des Attributs
- `$Wert` (string): Wert des Attributs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Attributs
**Beispiel**
```php
$this->WriteAttributeString("Token", "08da50bd109c7fb1bec49d15ae86e55f");
```