# 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"); ```