# Erste Schritte
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
## Einführung
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/
Dies ist die Dokumentation zu IP-Symcon.
Ziel ist es, sowohl technische Hintergründe, Basiswissen, Funktionsweisen, als auch die Entwicklung eigener Skripte und Automatisierung zu unterstützen. Beispiele werden hierbei verwendet um die Anschaulichkeit zu erhöhen.
Die gesamte Dokumentation steht jederzeit online, als auch offline zur Verfügung.
Was IP-Symcon ist, wird auf der [Produktseite](https://www.symcon.de/de/produkt/) beschrieben.
### Wie funktioniert IP-Symcon
#### Herstellerunabhängigkeit
IP-Symcon verknüpft verschiedenste Geräte von verschiedenen Herstellern unter einem Dach. Ein einheitliches Schema macht diese innerhalb der Software zugänglich.

#### Anbindung
IP-Symcon nutzt dazu eigene Konfiguratoren, die Hersteller eigenen Protokolle und stellt über ein einfachen modularen Aufbau eine Verbindung zu den Geräten her. Dabei ist es egal, ob das Herstellersystem Funk- oder Kabelgebunden ist. Die Software interpretiert die Verbindung immer nach dem gleichen Schema: Geräteinstanz -> Gateway -> I/O

#### Gerätestatus
Wenn die Verbindung steht, können Variablen und Zustände der Geräte von IP-Symcon ausgelesen und gesetzt werden. Das Gerät steht zur Steuerung bereit.

#### Verwaltung
Die Verwaltungskonsole ist das technische Nervenzentrum. Über diese können die an den Server angeschlossenen und eingerichteten Geräte angesteuert werden. Hier wird auch die Intelligenz und tatsächliche Automatisierung via Skripten eingerichtet und verwirklicht.

#### Visualisierung
IP-Symcon stellt anschließend die Visualisierung der eingerichteten Geräte zur Verfügung und über das WebFront werden Funktionen und Daten anschaulich zur Verfügung gestellt. Auch ist ein Steuern über die Visualisierung kein Problem.

#### Erste Schritte
Über den [Schnelleinstieg](https://www.symcon.de/de/llms/getting-started.md) werden viele Grundlagen erklärt.
## Vertragsbestimmungen
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/vertragsbestimmungen/
> **Achtung:** Unsere "Allgemeinen Vertragsbestimmungen des Software-Kaufvertrags" kann jederzeit herunterladen werden: [Download](https://www.symcon.de/assets/files/legal/EULA.pdf)
> **Hinweis:** Eine ausführliche Erklärung der Nutzungsrechte befindet sich hier: [Nutzungsrechte](https://www.symcon.de/de/llms/getting-started.md).
## Nutzungsrechte
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/nutzungsrechte/
> **Hinweis:** Die rechtsverbindlichen, allgemeinen Vertragsbestimmungen des Software-Kaufvertrags befinden sich zum Download unter [Vertragsbestimmungen](https://www.symcon.de/de/llms/getting-started.md)
> **Achtung:** Eine IP-Symcon Lizenz berechtigt, IP-Symcon beliebig oft in einem Privathaushalt zu installieren. Für gewerbliche Installationen wird für jeden im Betrieb befindlichen Server/Rechner eine separate IP-Symcon Lizenz benötigt. Es kann zu jeder Zeit nur eine produktive Installation pro Lizenz in Betrieb sein, die mit dem Server für Push-Benachrichtigungen oder dem Connect-Dienst kommuniziert. Jegliche weitere Installationen ist somit nur für Programmier- und Testzwecke verwendbar. Eine IP-Symcon Lizenz gilt für alle Endgeräte (Betriebssysteme), auf denen IP-Symcon verfügbar ist. Für eine Online-Installation wird eine gültige [Subskription](https://www.symcon.de/de/llms/getting-started.md) benötigt. Falls eine Installation von IP-Symcon nach Ablauf der Subskription gewollt ist, wird ein selbsterstelltes Backup benötigt.
> **Hinweis:** Die IP-Symcon Pro Konsole kann ohne IP-Symcon lizenzfrei vom IP-Symcon Server [heruntergeladen](https://www.symcon.de/de/downloads/) und automatisch durch die integrierte Updatefunktion aktualisiert werden.
## Subskription
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/subskription/
Eine Subskription stellt in seiner Laufzeit die aufgeführten Dienste zur Verfügung. Diese werden von manchen Modulen zum Betrieb benötigt (z.B. Connect Dienst für Alexa Smart Home Skill)
### Dienste
Folgende Dienste brauchen eine aktive Subskription.
#### Installation/Update
Bei Neuinstallation und Updates von IP-Symcon wird eine aktive Subskription benötigt.
#### Push Notification
Über unseren Server werden Push Notifications auf die mobilen Apps gesendet.
#### Connect Dienst
Es wird ein verschlüsselter Zugriff via unseren Connect-Dienst Server zur Verfügung gestellt, um von überall sicher auf das System zugreifen zu können.
### Laufzeit
Die Laufzeit (Gültigkeit) der Subskription kann über eines der drei folgenden Punkte festgestellt werden:
* in der letzten Mail einer Lizenz bzw. Subskription Bestellung: "... ist gültig bis: TT.MM.JJ"
* in unserem Forum unter "Lizenzverwaltung". Hierzu muss man sich dort registrieren.
* per Mail oder über das Kontaktformular anfragen
* ein Monat vor Ablauf der Subskription wird eine Mail mit dem Hinweis des baldigen Ablaufens verschickt
> **Hinweis:** Bei einer Subskription handelt es sich __nicht__ um ein Abonnement.
> Bei Ablauf der Subskription kann diese im [IP-Symcon Shop](https://www.symcon.de/de/shop/) neu erworben/verlängert werden.
> Einen Monat vor Ablauf wird automatisch eine Hinweis-Mail von unserem System versendet.
> Bei einer Bestellung wird das Zeitkontingent einer eventuellen Restlaufzeit hinzuaddiert (ähnlich einer Prepaid-Karte).
Weitere Informationen über die verwendete Lizenz gibt es in der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) über das Informationsicon oben rechts.
## Schnelleinstieg
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/schnelleinstieg/
### Symcon
Symcon ist eine Serversoftware, welche es als Ziel hat verschiedene Automationssysteme in einem Server zu vereinen, verknüpfen und automatisieren. Dies bedeutet, dass Systeme, welche nicht miteinander kommunizieren können, in eine einheitliche übersichtliche Konfiguration zusammgeführt werden. Auch bietet Symcon eine einheitliche [Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) und Steuerung, sowohl für den Browser als auch via [Mobile-Apps](https://www.symcon.de/de/llms/components/tile-visualization.md) für iOS und Android. Eine umfassende Beschreibung kann auf der [Produktseite](https://www.symcon.de/de/produkt/) nachgelesen werden.
### Unterstützte Systeme
Symcon unterstützt eine große Vielfalt an namhaften Herstellern und Protokollen. Eine Übersicht der nativen Systeme kann in der [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) nachgeschlagen werden. Zusätzlich wird der [Module Store](https://www.symcon.de/de/llms/components/management-console.md) angeboten. Dieser ist eine Platform bei dem Module von der Community eingereicht, qualitativ kontrolliert und kostenfrei dem Nutzer zur Verfügung gestellt werden.
### Symcon Editionen
Es gibt sechs verschiedene Editionen: Community, Professional, Expert, Basic, Industrial und Enterprise. Diese sind zeitlich unbegrenzt gültig und bieten die gleichen Systemunterstützungen. Die Editionen unterscheiden sich bei Anzahl der Variablen, Visualisierungen und den beinhalteten [Erweiterungen](https://www.symcon.de/de/produkt/erweiterungen/). Eine genaue Auflistung aller Funktionen befindet sich in der [Funktionsübersicht](https://www.symcon.de/de/produkt/editionen/) . Es kann jederzeit eine bestehende Lizenz zu einer höheren Version upgegradet werden. Eine [Übersicht der Upgrades](https://www.symcon.de/de/shop/symcon/bundle-ips-upgrade/) kann im Shop eingesehen werden.
#### Subskription
Mit der [Subskription](https://www.symcon.de/de/llms/getting-started.md) werden Features, welche unser Server bietet, aktiviert. Darunter fallen z.B. Push Notification, Updates, [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) (insbesondere wichtig für [Amazon Alexa](https://www.symcon.de/de/llms/modules/amazon-alexa.md) und [Google Assistant](https://www.symcon.de/de/llms/modules/google-assistant.md) ). Eine ausgelaufene Subskription beinträchtigt nicht den laufenden Server, es werden einzig die mit der Subskription verbundene Features deaktiviert. Eine Subskription kann jederzeit über den [Shop](https://www.symcon.de/de/shop/symcon/ips-subscription/) verlängert werden.
### Kostenlose Version
Es ist möglich eine [kostenlose Lizenz anzufordern](https://www.symcon.de/de/downloads/anfordern/). Für den persönlichen nicht-kommerziellen gebrauch gibt es die dauerhaft kostenlose Community Edition. Um den Umfang einer Professional oder Enterprise Editionen zu testen gibt es auf einen Monat begrenzte Demo Versionen.
### Hardwarevoraussetzungen
Der Symcon Server muss dauerhaft laufen. Dafür ist ein [SymBox](https://www.symcon.de/de/shop/symbox/bundle-symbox/) , Windows, MacOS, Linux Ubuntu, Raspberry Pi oder Docker (auch QNAP, Synology) System nötig. Welche Version des jeweiligen Betriebssystems nötig ist, kann unter der [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md) im Bereich [Systemvorraussetzungen](https://www.symcon.de/de/llms/getting-started/system-requirements.md) nachgeschlagen werden. Des Weiteren werden für die verbauten Systeme sogenannte Gateways als Schnittstelle benötigt. Welche Gateways unterstützt werden, kann in der jeweiligen [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) und deren Geräteliste nachgeschlagen werden. Einige Gateways werden im [Shop](https://www.symcon.de/de/shop/gateways/) oder sogar als [SymBox-Erweiterung](https://www.symcon.de/de/shop/symbox/bundle-symbox/) angeboten.
#### SymBox Funktionalitäten
Die [SymBox](https://www.symcon.de/de/shop/symbox/bundle-symbox/) ist der hauseigene Server. Dieser kann in einem Hutschienengehäuse für den Schaltschrank oder in einem Aluminiumgehäuse gekauft werden. Neben dem sehr geringen Stromverbrauch (max. 3W) bietet die SymBox mit dem SymOS ein speziell angepasstes Betriebssystem und zugeschnittene Weboberfläche für Symcon. Neben Updates und Einstellungen kann auf diesem bequem die [Datensicherung](https://www.symcon.de/de/llms/getting-started.md) verwaltet werden. Sollte eine Symbox im Einsatz sein, kann das SymOS im lokalen Netzwerk über "[symbox.local](symbox.local:3777) " erreicht werden.
### Installation von Symcon
Die Installation ist für das jeweilige System unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben. Nach einer erfolgreichen Installation startet der Symcon [Dienst](https://www.symcon.de/de/llms/components/service.md) automatisch und ist bereit zur Konfiguration.
### Tray Funktionalitäten
Nach der Installation steht unter Windows und MacOS nun die [Tray-Anwendung](https://www.symcon.de/de/llms/components/tray.md) zur Verfügung. Die Tray-Anwendung befindet sich abhängig vom Betriebssystem als Symcon Symbol im jeweiligen System-Tray. Über die Anwendung kann der Dienst gestartet, gestoppt und aktualisiert werden. Unter "Information" befindet sich die Möglichkeit einen [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) einzurichten.
### Konfiguration
Zur Konfiguration wird [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) genutzt. Diese ist von überall aus dem Netzwerk via Browser aufrufbar. Um diese zu öffnen muss lediglich "[IPServer]:3777/console/" in die Adresszeile eingetragen werden. Sollte eine SymBox im Einsatz sein ist dies "[symbox.local:3777/console/](http://symbox.local:3777/console/) ".
### Grundlagen
Im Bereich [Grundlagen](https://www.symcon.de/de/llms/concepts.md) werden die wesentlichen Grundbegriffe und deren Handhabung beschrieben. Der nächste Schritt sind die [Komponenten](https://www.symcon.de/de/llms/components/index.md), welche Funktionalitäten zur Steuerung, Automatisierung und Visualisierung erklären.
### Visualisierung und Steuerung
Die Visualisierung [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) der eingerichteten Instanzen wird automatisch erstellt und kann den persönlichen Bedürfnissen weiter angepasst werden. Eine Steuerung findet über die Visualisierung statt. Eine weitere Möglichkeit sind die [kostenlosen mobilen Apps](https://www.symcon.de/de/llms/components/tile-visualization.md) für iOS und Android.
Unter [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) sind alle nötigen Informationen zu finden.
### Sicherheit
Um den wichtigen Aspekt Sicherheit in der Hausautomation abzudecken ist in den Werkseinstellungen ein Zugriff von außen nicht möglich. Weitere Informationen zu allen Sicherheitsaspekten können im Abschnitt [Sicherheit](https://www.symcon.de/de/llms/getting-started.md) nachgeschlagen werden. Zusätzlich prüft ein Sicherheits-Widget die Konfiguration und weist mit einer Übersicht auf gegebenfalls zu setzende Kennwörter hin.
### Datensicherung
Zur [Datensicherung](https://www.symcon.de/de/llms/getting-started.md) kann ein [Backup erstellt](https://www.symcon.de/de/llms/getting-started.md) werden. Dieses kann dann auf einem anderen oder neuen System installiert werden. Genaue Schritte dafür können unter [Backup einspielen](https://www.symcon.de/de/llms/getting-started.md) gefunden werden. Ein solches Backup ist auch bei einem [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md) vollständig kompatibel.
### Connect Control
Das [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) dient zur verschlüsselten Kommunikation nach Außen. Es ermöglicht die gesicherte Steuerung und [Visualisierung](https://www.symcon.de/de/llms/components/webfront-visualization.md) außerhalb ihres lokalen Netzwerks. Bestimmte Funktionen und Module (z.B. [Amazon Alexa](https://www.symcon.de/de/llms/modules/amazon-alexa.md), [Push Notifications](https://www.symcon.de/de/llms/modules/notification-control.md)) benötigen eine dauerhafte Internetverbindung. Diese wird ebenfalls durch das verschlüsselte Connect Control gewährleistet.
### Fernzugriff
Der [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) bietet die Möglichkeit Symcon von außen zu konfigurieren. Erst bei Vergabe eines Passworts wird der Zugang nach außen über das lokales Netzwerk hinweg aktiviert. So ist es möglich eine vollumfängliche Fernwartung durchzuführen. Dazu wird das [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) benötigt.
### Weitere Informationen und Videos
Fortführende Informationen und Beispiele befinden sich auf dem [Symcon YouTube Kanal](https://www.youtube.com/c/symcongmbh) und unter [Vorgehensweisen](https://www.symcon.de/de/llms/how-to.md). Neben der [Dokumentation](https://www.symcon.de/de/llms/getting-started.md) bietet auch das [Forum](https://community.symcon.de/) eine große Menge an Informationen, Skriptsammlungen und Ideen, sowie eine breite Basis von Profis und Neueinsteigern.
## Video-Tutorials
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/video-tutorial/
Für den schnellen Einstieg in IP-Symcon sind hier einige nützliche Video-Anleitungen:
> **Hinweis:** [Alle Videos befinden sich auf unserem YouTube-Kanal.](https://www.youtube.com/symcongmbh)
- [Unsere SymBox](https://www.youtube.com/playlist?list=PLFfIoKt1k0PUFjmnPsa-KxIR0XT0pO9j4)
- [Teil 1 - Zahlen, Daten, Fakten](https://youtu.be/bNt-C2f_gNk)
- [Teil 2: Inbetriebnahme + Recovery Tool](https://youtu.be/4MMVfNy2txM)
- [Teil 3: KNX Demo & Pro Konsole](https://youtu.be/l8GI3wxGHqc)
- [Teil 4: Tailscale VPN (Modul)](https://youtu.be/nOiR9pN83RQ)
- [Grundlagen](https://www.youtube.com/playlist?list=PLFfIoKt1k0PXuCWFio7PMbeMKyFM_zqXP)
- [Teil 1: Grundlagen](https://youtu.be/0nuUJ8YhY0k)
- [Teil 2: Installationen auf Windows & Raspberry Pi](https://youtu.be/ba-h_CFgg_I)
- [Teil 3: Symcon mit Docker](https://youtu.be/Ei_OoIpmnQE)
- [Teil 4: macOS & Synology Installation](https://youtu.be/lJhDhYrHyR0)
- [Teil 5: Update mit Portainer](https://youtu.be/io_6Cgtji14)
- [Teil 6: Geräte einbinden & konfigurieren](https://youtu.be/c6329rIbeRQ)
- [Teil 7: Benutzeroberfläche & Navigation](https://youtu.be/PgD8mOFHGws)
- [Teil 8: Variablendarstellung](https://youtu.be/mqIl7_FUKyM)
- [Teil 9: Location Control Modul](https://youtu.be/oTsHg3Mr-JA)
- [Logikpläne](https://www.youtube.com/playlist?list=PLFfIoKt1k0PWWtvdDoVemqsNQPZD7I0K0)
- [Teil 1: Einführung und Grundlagen](https://youtu.be/BAK1sXK4FdY)
- [Teil 2: Sublogikpläne](https://youtu.be/0mTDruQ7l0Q)
- [Teil 3: Ausschaltverzögerung - Sublogikplan](https://youtu.be/NaTMManlVf0)
- [Teil 4: Watchdog - Sublogikplan](https://youtu.be/yOcRwvYLGlw)
- [Teil 5: Türklingel-Trigger - Sublogikplan](https://youtu.be/P7GBz3RR9vk)
- [Teil 6: min/max Werte Loggen - Sublogikplan](https://youtu.be/tRUXIyFtkkQ)
- [Visualisierung](https://www.youtube.com/playlist?list=PLFfIoKt1k0PXwU3-PCik9MJZqa58BRNEO)
- [WebFront Funktionen und der WYSIWYG-Editor](https://www.youtube.com/watch?v=523XW-o7d1k)
- [Symcon Connect- Die sichere Verbindung zu IP-Symcon und Webfront](https://www.youtube.com/watch?v=nOB0TtsLt68)
- [IP-Symcon Webinar: Preview zur Visualisierung](https://www.youtube.com/watch?v=nOB0TtsLt68)
- [IP-Symcon Webinar: Öffentliche Beta der neuen Visualisierung](https://www.youtube.com/watch?v=XmctZRAYeqA)
- [Entwickler-Webinare](https://www.youtube.com/watch?v=7TH6SzA39vs&list=PLFfIoKt1k0PUcBtQMjtIG8aF5BOG-mykB)
- [Einstieg für Entwickler](https://www.youtube.com/live/c1c0eSEud5U?si=mlWJYPq07J8qi4MI)
- [Dynamische Module](https://www.youtube.com/live/7TH6SzA39vs?si=NdcMX_Yy8QL2GOS0)
- [Automatisch Testen](https://www.youtube.com/live/kTcuTO50Jzw?si=9M0uu7vM1acMNQcp)
- [Konfigurationsformulare und deren Elemente](https://www.youtube.com/live/kYiiNurOD0o?si=EB6clhC8LSaeWHoN)
- [Konfigurator Element und Datenfluss](https://www.youtube.com/live/6dcsSfqIlnA?si=UOleUUAWbJV8w8YT)
- [Aktionen erstellen](https://www.youtube.com/live/QskfaDICPWs?si=pc0B7DPdeIP5DhFV)
- [Git Basics](https://www.youtube.com/live/iwKZJGTTb48?si=NH0voV3FrDOoiI8G)
- [Änderungen am PHP-SDK zur 7.0](https://www.youtube.com/live/ASh-bt55VAw?si=k0MY0FZYJ9szMU6b)
- [IP-Symcon Entwickler Webinar: HTML-SDK](https://www.youtube.com/live/-dIHZRYbqpA?si=HiS0qolTk8ixePbb)
- [Darstellung in Modulen](https://www.youtube.com/live/c-QxdRlgS_c?si=XRd9TxaiECZxp1ZQ)
- [Grundlagen - Webinare](https://www.youtube.com/playlist?list=PLFfIoKt1k0PUAuuzxXcdNn4WYEgGlry8b)
- [IP-Symcon Grundlagen Webinar](https://www.youtube.com/watch?v=6G-OCdxt4co)
- [IP-Smcon Grundlagen Webinar - Teil 2](https://www.youtube.com/watch?v=kTcuTO50Jzw)
- [IP-Symcon Entwickler Webinar: Module automatisiert testen](https://www.youtube.com/watch?v=kTcuTO50Jzw)
- [IP-Symcon Webinar Grundlagen Visualisierung](https://www.youtube.com/watch?v=Iny7lJrqDvo)
- [IP-Symcon Webinar: Tabs & Widgets](https://www.youtube.com/watch?v=COg81XzSDOE)
- [Releases](https://www.youtube.com/playlist?list=PLFfIoKt1k0PWx3KRFqxhivVVw5f31HPeV)
- [Version 8.0 Preview](https://youtube.com/live/uxR4R7sgLSI)
- [Version 7.2](https://youtube.com/live/S70oZf_UnEM)
- [Version 7.1](https://youtube.com/live/GCPXUTM8dyE)
- [Version 7.0](https://www.youtube.com/watch?v=hbIEWVhO5cM)
- [Version 6.4](https://www.youtube.com/watch?v=PWMtBzJmap8)
- [IPSView & IPSWorkflows](https://www.youtube.com/watch?v=aToRyiR4J5M)
- [Energie Management mit IP-Symcon](https://www.youtube.com/watch?v=44nygGzHE-Q)
- [Version 6.3](https://www.youtube.com/watch?v=kkVA_tpMBrk)
- [Version 6.2](https://www.youtube.com/watch?v=f-CPFL5I8hc)
- [Version 6.1](https://www.youtube.com/watch?v=sW35lmKgGJ8)
- [Version 6.0](https://www.youtube.com/watch?v=T7XVOTLowT4)
- [Version 5.5](https://www.youtube.com/watch?v=t274wQCMC18)
- [Version 5.4](https://www.youtube.com/watch?v=Y9K2CvwiAsk)
> **Hinweis:** Event verpasst? [Schau sie gerne nach!](https://www.symcon.de/de/events/)
- [System einrichten](https://www.youtube.com/playlist?list=PLFfIoKt1k0PWOzjdFWn1_Hwq6pQYGAAJM)
- [KNX Geräte einrichten inkl. Rückmeldeadressen](https://www.youtube.com/watch?v=hDwXGSwMjvc)
- [SymBox Pro mit KNX Data Secure einrichten](https://www.youtube.com/watch?v=aA8mcKEyHOY)
- [KNX: IP-Secure einrichten](https://www.youtube.com/watch?v=AZo_TwAyn-U&t=17s)
- [xComfort](https://www.youtube.com/watch?v=VC8fYf9LB-g)
- [dS-Einrichten](https://www.youtube.com/watch?v=mnR2ab6IMlQ)
- [Simens OZW einrichten](https://www.youtube.com/watch?v=2VoOVEPpbY0)
- [XML-Export mithilfe der ETS6](https://www.youtube.com/watch?v=-hdo5nrTr3Y)
- [In IP-Symcon ein BACnet Gerät einrichten](https://www.youtube.com/watch?v=T6NsoRShn2o)
- [In IP-Symcon einen MQTT-Client einrichten](https://www.youtube.com/watch?v=dVMgHm5LeX0)
- [In IP-Symcon einen MQTT-Server einrichten](https://www.youtube.com/watch?v=5msmo1JSxSo)
- [In IP-Symcon ein KNX System mit Konfigurator einrichten](https://www.youtube.com/watch?v=hgz7nv0SC-Q)
- [XML-Export mithilfe der ETS](https://www.youtube.com/watch?v=DeGCLestF_I)
- [In IP-Symcon ein Z-Wave System einrichten](https://www.youtube.com/watch?v=7jFMxEpCGxU)
- [In IP-Symcon ein LCN System einrichten](https://www.youtube.com/watch?v=tZMETUfw-_M)
- [Symbox - Erste Einrichtung der IP-Symcon Zentrale](https://www.youtube.com/watch?v=S9yKoKmow2s)
- [OPC- EXport mithilfe der ETS(ab v5.6.5)](https://www.youtube.com/watch?v=lDebGVTDUnw)
- [In IP-Symcon eine Alexa Steuerung in unter 10 Minuten einrichten](https://www.youtube.com/watch?v=AbvauPdbLa8)
- [In IP-Symcon ein HomeMatic System einrichten](https://www.youtube.com/watch?v=uDd-jdKm0CE)
- [HomeMatic Firewalleinstellungen für einen funktionalen Rückkanal](https://www.youtube.com/watch?v=sahJdNXUZZs)
- [In IP-Symcon ein 1-wire System einrichten](https://www.youtube.com/watch?v=JbIdm5x0uxY)
- [IP-Adresse in der ETS herausfinden](https://www.youtube.com/watch?v=0nEpt1Y_2nc)
- [In IP-Symcon ein KNX System einrichten](https://www.youtube.com/watch?v=kfv0HSX9PVM)
- [OPC-Export mithilfe der ETS(bis v 5.6.4)](https://www.youtube.com/watch?v=WnJ3qRI0qVE)
## Installation
Quelle: https://www.symcon.de/de/service/dokumentation/installation/
[Installation für Windows](https://www.symcon.de/de/llms/getting-started.md)
[Installation für MacOS](https://www.symcon.de/de/llms/getting-started.md)
[Installation für Linux](https://www.symcon.de/de/llms/getting-started.md)
[Installation für Raspberry Pi](https://www.symcon.de/de/llms/getting-started.md)
[Installation für Docker](https://www.symcon.de/de/llms/getting-started.md)
[Installation für QNAP](https://www.symcon.de/de/llms/getting-started.md)
[Installation für Synology](https://www.symcon.de/de/llms/getting-started.md)
[Installation für SymBox](https://www.symcon.de/de/llms/getting-started.md)
[Installation für Catan](https://www.symcon.de/de/llms/getting-started.md)
### Installation
Das erstmalige Installieren und Inbetriebnehmen auf den verschiedenen Plattformen. Dazu nutzt IP-Symcon einen auf das jeweilige System bzw. Plattform angepassten Installationsweg.
Ausführliche Informationen kann unter dem jeweiligen System nachgelesen werden.
> **Hinweis:** Um IP-Symcon den Zugriff auf bestimmte Funktionen (z.B. Updates) außerhalb zu gewähren ist es gegebenenfalls nötig diese in der Firewall einzurichten. Weitere Informationen können unter [Firewall](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.
### Update
IP-Symcon kann bei gültiger Subskription aktualisiert werden.
Wie ein Update initiert wird kann unter dem jeweiligen System nachgelesen werden.
Für ein Update muss der IP-Symcon Server kontaktiert werden, um die neusten Pakete anzufordern. Sollte dies fehlschlagen, so gibt es mehrere mögliche Ursachen:
* Die Subskription ist abgelaufen. Es sollte eine neue im Shop erworben werden.
* Die Proxyeinstellungen sind falsch.
* Die Internet-Verbindung ist nicht aufgebaut.
### Datensicherung/Backup
Um Datenverlust zu vermeiden gibt es verschiedene Wege IP-Symcon-Daten zu sichern.
Diese sind unter [Datensicherung](https://www.symcon.de/de/llms/getting-started.md) beschrieben.
### Plattformwechsel
IP-Symcon kann von einer Plattform auf eine Andere umziehen ohne eine Neueinrichtung vorzunehmen.
Das Verfahren ist unter [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md) erklärt.
### Deinstallation
Wie IP-Symcon deinstalliert wird kann unter dem jeweiligen System nachgelesen werden.
### Lizenz ändern
Sollte sich die Lizenz ändern, kann diese innerhalb von IP-Symcon über die [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) ausgetauscht werden.
Die nötigen Schritte können unter [Lizenz ändern](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.
### Migration
Eine Migration von einer alten Version auf eine neue Version ist ohne Datenverlust möglich.
Im linksseitigen Menü können alle bisherigen Migrationen gefunden werden.
Es sollten von Version zu Version die einzelnen Migrationen durchgeführt werden.
## Windows
Quelle: https://www.symcon.de/de/service/dokumentation/installation/windows/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich. Dennoch kann ohne gültige Subskription eine vorhandene Datensicherung der Software wieder eingespielt werden. Siehe: [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md)
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation
#### Versionsvoraussetzung
Welche Version von IP-Symcon mit welcher Windowsversion funktioniert, kann der [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md) entnommen werden.
#### Installation
__Download:__ [Setupdatei (64-Bit)](https://download.symcon.de/stable/symcon/win/amd64)
IP-Symcon ist eines der wenigen Programme, das sich sehr sauber installieren und auch wieder rückstandsfrei deinstallieren lässt, da es keine Unmenge von Einträgen in der Windows-Registry vornimmt. Letztendlich wird nur der Lizenzkey gespeichert.
#### Hinweise
> **Achtung:** Um IP-Symcon installieren zu können, wird eine Internetverbindung benötigt. Falls auf dem Ziel-Rechner keine Verbindung vorhanden sein sollte, muss IP-Symcon auf einem anderen Rechner installiert und hinterher auf den Ziel-Rechner kopiert werden.
#### Setup
Nach dem Start des Setups und Auswahl der Sprache sollte folgendes Fenster erscheinen:

Zum nächsten Schritt kann der Dialog mit "Weiter" bestätigt werden.
#### Lizenzdaten angeben
Es kann eine Demo Version oder, durch Angabe des Benutzernamens und der Lizenzdatei, eine vollwertige Lizenz genutzt werden. Anschließend kann der Dialog mit "Weiter" beendet werden.
> **Hinweis:** Der Benutzername entspricht normalerweise der E-Mail-Adresse, die beim Bestellvorgang angegeben wurde.

Die Subskription wird nun überprüft.
Nur mit einer gültigen Subskription oder als Demo-Edition kann IP-Symcon installiert werden.
* Falls die Subskription abgelaufen ist, kann eine Verlängerung im Shop bestellt werden: [Shop](https://www.symcon.de/de/shop/)
* Falls keine Verbindung zum Server hergestellt werden kann, ist eine Kontrolle der Internetverbindung oder der Proxyeinstellungen nötig.
Nach dem Akzeptieren der Lizenzbedingungen muss ein geeigneter Pfad ausgewählt (z.B. C:\IP-Symcon) und mit "Weiter" bestätigt werden.
> **Hinweis:** Bei der Installation wird automatisch der Ordner C:\ProgramData\Symcon\ angelegt. In diesem befinden sich alle Serverdaten, also die individuellen Daten der lokalen Installation. Wenn der Ordner für die Serverdaten verlegt werden soll ist dies ab Version 6.0 möglich. Serverdaten verlegen
Mit dem Button "Installieren" beginnt das Kopieren der Daten.
Nach einem Klick auf OK ist die Installation auf dem System fertiggestellt. Abhängig davon, welche der Optionen aktiviert sind, wird der IP-Symcon Dienst und die IP-Symcon Tray-Anwendung automatisch gestartet.
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
#### Wo finde ich was?
* C:\ProgramData\Symcon\ (Settings, Skripte, Medien...)
* C:\ProgramData\Symcon\logs\ (Logfiles...)
#### Fernzugriff Kennwort setzen
Über [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) kann nachgeschlagen werden, wie der Fernzugriff eingerichtet wird.
### Update
Über das Tray Icon kann via "Rechtslick -> Auf Updates prüfen -> Herunterladen" die neuste Versionen heruntergeladen und installiert werden. Der Dienst muss während der Aktualisierung einmal beendet werden und wird im Anschluss automatisch wieder neugestartet.

### Deinstallation
Vor der Deinstallation von IP-Symcon, muss der Dienst angehalten werden.
#### Dienst Stoppen
Über das Kontextmenü der Tray-Anwendung kann über den Menüpunkt “Dienst anhalten” der Dienst gestoppt werden.

#### Dienst/Server deinstallieren
Über das Kontextmenü des Trayicons kann der Dialog "Information" geöffnet werden. Folgendes sollte zu sehen sein:

“Deinstallieren“ entfernt den Dienst von dem System.
#### IP-Symcon löschen
Um die Deinstallation zu beenden, muss der komplette IP-Symcon Ordner gelöscht oder in den Papierkorb verschoben werden.
### Serverdaten verlegen
> **Achtung:** Es ist davon abzusehen den Standardordner zu verlegen. In gewissen Konstellationen kann dies aber nützlich sein, z.B. für automatisierte Backups.
Folgende Schritte sind erst ab Version 6.0 möglich.
- Den IP-Symcon Dienst beenden
- Im Startmenü "regedit" eingeben und den Registrierungs-Editor starten
- Zu dem Pfad HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IP-Symcon gehen
- In diesem eine neue Zeichenfolge erstellen und "DataPath" nennen
- In die Zeichenfolge "DataPath" den neuen vollständigen Pfad angeben.
- Die Daten von C:\ProgramData\Symcon an den neuen Order verschieben
- Überprüfen, dass der C:\ProgramData\Symcon Order leer ist oder nicht mehr existiert
- Den IP-Symcon Dienst starten
Ab diesem Zeitpunkt startet IP-Symcon aus diesem Pfad.
> **Achtung:** Extrem wichtig: Der C:\ProgramData\Symcon Pfad muss entweder nicht existieren oder komplett leer sein.
## MacOS
Quelle: https://www.symcon.de/de/service/dokumentation/installation/macos/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich. Dennoch kann ohne gültige Subskription eine vorhandene Datensicherung der Software wieder einspielt werden. Siehe: [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md)
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation
#### Versionsvoraussetzung
Welche Version von IP-Symcon mit welchem MacOS funktioniert, kann der [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md) entnommen werden.
#### Installation
__Download:__ [Setupdatei](https://download.symcon.de/stable/symcon/mac/i386)
ZIP entpacken und in den Programme Ordner kopieren.
Programm starten. Dienst entsprechend installieren und starten.
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
#### Wo finde ich was?
* /Library/Application Support/Symcon/ (Settings, Skripte, Medien...)
* /Library/Logs/Symcon/ (Logfiles...)
#### Fernzugriff Kennwort setzen
Über [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) kann nachgeschlagen werden, wie der Fernzugriff eingerichtet wird.
### Update
Über das Tray Icon kann via "Klick -> Auf Updates prüfen -> Installieren" die neuste Version heruntergeladen und isntalliert werden. Nach erfolgreicher Installation muss der der Dienst einmal über das Tray Icon beendet und wieder gestartet werden.

### Deinstallation
Vor der Deinstallation von IP-Symcon, muss der Dienst angehalten werden.
#### Dienst Stoppen
Über das Kontextmenü der Tray-Anwendung kann über den Menüpunkt “Dienst anhalten” der Dienst gestoppt werden.

#### Dienst/Server deinstallieren
Über den Dialog "Information" kann das Kontextmenü geöffnet werden. Folgendes sollte zu sehen sein:
__MacOS__

“Deinstallieren“ entfernt den Dienst von dem System.
#### IP-Symcon löschen
Um die Deinstallation zu beenden, muss der komplette IP-Symcon Ordner gelöscht oder in den Papierkorb verschoben werden.
## Linux
Quelle: https://www.symcon.de/de/service/dokumentation/installation/linux/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich. Dennoch kann ohne gültige Subskription eine vorhandene Datensicherung der Software wieder einspielt werden. Siehe: [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md)
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation
#### Versionsvoraussetzung
Welche Version von IP-Symcon mit welchem Ubuntu funktioniert, kann der [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md) entnommen werden.
#### Vorbereitung
Zuerst folgenden Befehl ausführen und überprüfen, ob die vollständig Zeit korrekt ist, oder evtl. die Zeitzone noch eingestellt werden muss
```php
date
```
ggf. zum Einstellen der Zeitzone
```php
sudo dpkg-reconfigure tzdata
```
#### Installation
```php
wget -qO- https://apt.symcon.de/install.sh | bash /dev/stdin
```
Folgende Befehle ausführen:
```php
sudo apt-get update
sudo apt-get install symcon
```
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
#### Wie starte und stoppe ich den IP-Symcon-Dienst?
```php
sudo /etc/init.d/symcon start
sudo /etc/init.d/symcon stop
sudo /etc/init.d/symcon restart
```
#### Wo finde ich was?
* /usr/bin/symcon - Executable
* /usr/share/symcon/ - Static Data (IP-Symcon Installation)
* /var/lib/symcon/ - Variable Data (Settings, Skripte, Medien...)
* /var/log/symcon/ - Log Files (Logfiles...)
#### Wie kann ich schauen, ob der Dienst korrekt läuft?
```php
sudo ps x | grep symcon
```
#### Wie kann ich das Logfile ansehen/verfolgen?
```php
tail -f /var/log/symcon/logfile.log
```
#### Fernzugriff Kennwort setzen
Über [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) kann nachgeschlagen werden, wie der Fernzugriff eingerichtet wird.
### Update
Über das Terminal müssen folgende Befehle genutzt werden, um IP-Symcon auf den aktuellsten Stand zu bringen.
```php
sudo apt-get update
sudo apt-get upgrade
```
> **Hinweis:** Sofern beim Upgrade das "symcon" Paket zurückgehalten wird, ist folgender Befehl erforderlich:
> sudo apt-get dist-upgrade
> **Hinweis:** Beim Aktualisieren von einer Version vor 9.0 muss einmalig der neue Signierungsschlüssel heruntergeladen werden:
> wget -qO- https://apt.symcon.de/symcon.key | gpg --dearmor | sudo tee /usr/share/keyrings/symcon.gpg > /dev/null sudo chmod 644 /usr/share/keyrings/symcon.gpg
Der Dienst wird automatisch beendet und im Anschluss neugestartet.
### Deinstallation
Vor der Deinstallation von IP-Symcon, muss der Dienst angehalten werden.
#### Dienst Stoppen
Über die Konsole muss der Befehl eingegeben werden, welcher den IP-Symcon Server stoppt. Dieser ist für Linux und Raspberry Pi identisch.
```php
sudo /etc/init.d/symcon stop
```

#### Dienst/Server deinstallieren
Über die Konsole muss der Befehl eingegeben werden, welcher IP-Symcon deinstalliert. Dieser ist für Linux und Raspberry Pi identisch.
```php
sudo apt-get purge symcon
```

#### IP-Symcon löschen
Um die Deinstallation zu beenden, muss der komplette IP-Symcon-Daten (/var/lib/symcon) Ordner gelöscht oder in den Papierkorb verschoben werden.
## Raspberry Pi
Quelle: https://www.symcon.de/de/service/dokumentation/installation/raspberry-pi/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich. Dennoch kann ohne gültige Subskription eine vorhandene Datensicherung der Software wieder einspielt werden. Siehe: [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md)
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation
#### Versionsvoraussetzung
Welche Version von IP-Symcon mit welchem Betriebssystem funktioniert, kann der [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md) entnommen werden.
#### Vorbereitung
Zuerst folgenden Befehl ausführen und überprüfen, ob die vollständig Zeit korrekt ist, oder evtl. die Zeitzone noch eingestellt werden muss
```php
date
```
ggf. zum Einstellen der Zeitzone
```php
sudo raspi-config
```
#### Installation
```php
wget -qO- https://apt.symcon.de/install.sh | bash /dev/stdin
```
Auf der Shell jetzt folgende Befehle ausführen
```php
sudo apt-get update
sudo apt-get install symcon
```
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
#### Wie starte und stoppe ich den IP-Symcon-Dienst?
```php
sudo /etc/init.d/symcon start
sudo /etc/init.d/symcon stop
sudo /etc/init.d/symcon restart
```
#### Wo finde ich was?
* /usr/bin/symcon - Executable
* /usr/share/symcon/ - Static Data (IP-Symcon Installation)
* /var/lib/symcon/ - Variable Data (Settings, Skripte, Medien...)
* /var/log/symcon/ - Log Files (Logfiles...)
#### Wie kann ich schauen, ob der Dienst korrekt läuft?
```php
sudo ps x | grep symcon
```
#### Wie kann ich das Logfile ansehen/verfolgen?
```php
tail -f /var/log/symcon/logfile.log
```
#### Fernzugriff Kennwort setzen
Über [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) kann nachgeschlagen werden, wie der Fernzugriff eingerichtet wird.
### Update
Über das Terminal müssen folgende Befehle genutzt werden, um IP-Symcon auf den aktuellsten Stand zu bringen.
```php
sudo apt-get update
sudo apt-get upgrade
```
> **Hinweis:** Sofern beim Upgrade das "symcon" Paket zurückgehalten wird, ist folgender Befehl erforderlich:
> sudo apt-get dist-upgrade
> **Hinweis:** Beim Aktualisieren von einer Version vor 9.0 muss einmalig der neue Signierungsschlüssel heruntergeladen werden:
> wget -qO- https://apt.symcon.de/symcon.key | gpg --dearmor | sudo tee /usr/share/keyrings/symcon.gpg > /dev/null sudo chmod 644 /usr/share/keyrings/symcon.gpg
Der Dienst wird automatisch beendet und im Anschluss neugestartet.
### Deinstallation
Vor der Deinstallation von IP-Symcon, muss der Dienst angehalten werden.
#### Dienst Stoppen
Über die Konsole muss der Befehl eingegeben werden, welcher den IP-Symcon Server stoppt. Dieser ist für Linux und Raspberry Pi identisch.
```php
sudo /etc/init.d/symcon stop
```

#### Dienst/Server deinstallieren
Über die Konsole muss der Befehl eingegeben werden, welcher IP-Symcon deinstalliert. Dieser ist für Linux und Raspberry Pi identisch.
```php
sudo apt-get purge symcon
```

#### IP-Symcon löschen
Um die Deinstallation zu beenden, muss der komplette IP-Symcon Daten-Ordner (/var/lib/symcon) gelöscht oder in den Papierkorb verschoben werden.
## Docker
Quelle: https://www.symcon.de/de/service/dokumentation/installation/docker/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich.
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
> **Hinweis:** Es gibt seperate Installationsanleitungen für [QNAP](https://www.symcon.de/de/llms/getting-started.md) und [Synology](https://www.symcon.de/de/llms/getting-started.md)
### Installation
#### Voraussetzung
* Intel/AMD 64-Bit, ARM7, ARM64 CPU
* [Docker](https://www.docker.com/)
> **Hinweis:** Da Container im Docker Kontext nicht "aktualisiert" werden können, müssen diese gelöscht und in der neuen Version neu erstellt werden. Dies ist auch problemlos möglich, da sich alle Daten außerhalb des Containers befinden.
#### Limitationen
* Bisher ist die Sprache auf de_DE gesetzt
* Bisher ist die Zeitzone auf Europe/Berlin gesetzt
* Wenn der Container nicht interaktiv, sondern losgelöst laufen soll, muss das Flag -d angegeben werden
* Bisher ist nur Port 3777 gemappt. Werden weitere Ports benötigt, müssen diese ebenfalls angegeben werden!
#### Installieren
```php
docker pull symcon/symcon:stable
```
#### Starten
```php
docker run --rm \
--name symcon \
--hostname symcon \
-p 3777:3777 \
-v /opt/symcon/data:/var/lib/symcon \
-v /opt/symcon/log:/var/log/symcon \
-v /opt/symcon:/root \
symcon/symcon:stable
```
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
### Update
1. Installieren erneut ausführen
2. Starten erneut ausführen
* Dadurch wird der Container entfernt und neu erstellt.
* Die Daten befinden sich außerhalb des Containers und bleiben erhalten.
### Komfortablere Updates mit Portainer
Das Tool "Portainer" hilft bei der Aktualisierung von Docker Containern, sodass dies über einen Knopfdruck passieren kann. Das webbasierte Tool steht kostenlos zur Verfügung und kann ebenfalls als Docker Container installiert werden.
#### Installieren
```php
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
```
> **Hinweis:** Es kann erforderlich sein den "docker run" Befehl als "sudo docker run" zu starten
Nach der Installation steht die Oberfläche unter http://127.0.0.1:9000/ zur Verfügung. Gegebenfalls muss die IP-Adresse noch angepasst werden. Bei der ersten Einrichtung muss ein Kennwort vergeben werden und außerdem im nächsten Schritt noch eine Verbindung zum lokalen Server hergestellt werden. Nach erforgreicher Installation sollte das Interface wie folgt aussehen.

Im Reiter "Containers" kann dann der "symcon" Container ausgewählt werden. Über die Option "Recreate" ist eine komfortable Aktualisierung möglich. Der Container wird dabei gelöscht, das neue Image heruntergeladen und anschließend mit den selben Einstellungen neu erstellt. Dies kann je nach Internet-Verbindung einige Minuten dauern.

Wichtig ist, dass im Abfrage-Dialog die Option "Pull latest image" aktiviert ist.

Nach dem Aktualisieren wird kurzzeitig folgende Meldung angezeigt.

### Hinweise
#### NATSupport für KNX und HomeMatic
Aufgrund der Containerstruktur wird bei KNX- und HomeMatic-Nachrichten standardmäßig eine nur intern verwendete IP-Adresse als Antwortadresse mitgeteilt, so dass die Antworten des Systems nicht korrekt empfangen werden können. Um diese Nachrichten korrekt zu empfangen muss der NATSupport eingerichtet werden.
1. Der [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) "NATSupport" muss aktiviert werden und danach IP-Symcon neu gestartet werden.
2. Für den Container muss der Port des entsprechenden Systems gemappt werden. Bei KNX ist dies standardmäßig 52000 und bei HomeMatic 5544. So müsste beispielsweise bei KNX der Port 52000 auf 52000 gemappt werden.
3. In der betroffenen I/O- oder Splitter-Instanz erscheint nun ein neues Feld "PublicIP". Hier muss die IP eingetragen werden unter welcher Docker von aussen erreichbar ist. Für KNX muss diese im Splitter "EIB Gateway" eingetragen werden und für HomeMatic im I/O "HomeMatic Socket".
## QNAP
Quelle: https://www.symcon.de/de/service/dokumentation/installation/qnap/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich.
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation
#### Voraussetzung
* NAS mit Container Station Unterstützung
#### Installieren
* Container Station öffnen
* Nach symcon/symcon im Docker Hub suchen und das Abbild installieren/erstellen (Beim Tag z.B. stable auswählen)

* Namen vergeben und die Erweiterten Einstellungen öffnen

* Freigabe Einstellungen anpassen (/root, /var/lib/symcon, /var/log/symcon müssen angegeben werden!)

* Netzwerk Einstellungen anpassen (3777 auf 3777 TCP)

* Mit Erstellen bestätigen um den Container zu erstellen und zu starten
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
#### Fernzugriff Kennwort setzen
Über [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) kann nachgeschlagen werden, wie der Fernzugriff eingerichtet wird.
### Update
Zum Update ist es erforderlich den Container zu entfernen und dann neu zu erstellen, wie unter "Installieren" beschrieben ist. Über das Zusatztool "Portainer" kann das Aktualisieren wesentlich vereinfacht werden. Eine Anleitung dazu befindet sich im [Docker Bereich](https://www.symcon.de/de/llms/getting-started.md) .
### Deinstallation
Für die Deinstallation kann der Container gestoppt und danach entfernt werden. Die verknüpften Verzeichnisse für die Daten müssen manuell entfernt werden.
### Hinweise
#### NATSupport für KNX und HomeMatic
Aufgrund der Containerstruktur wird bei KNX- und HomeMatic-Nachrichten standardmäßig eine nur intern verwendete IP-Adresse als Antwortadresse mitgeteilt, so dass die Antworten des Systems nicht korrekt empfangen werden können. Um diese Nachrichten korrekt zu empfangen muss der NATSupport eingerichtet werden.
1. Der [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) "NATSupport" muss aktiviert werden und danach IP-Symcon neu gestartet werden.
2. Für den Container muss der Port des entsprechenden Systems gemappt werden. Bei KNX ist dies standardmäßig 52000 und bei HomeMatic 5544. So müsste beispielsweise bei KNX der Port 52000 auf 52000 gemappt werden.
3. In der betroffenen I/O- oder Splitter-Instanz erscheint nun ein neues Feld "PublicIP". Hier muss die IP eingetragen werden unter welcher Docker von aussen erreichbar ist. Für KNX muss diese im Splitter "EIB Gateway" eingetragen werden und für HomeMatic im I/O "HomeMatic Socket".
## Synology
Quelle: https://www.symcon.de/de/service/dokumentation/installation/synology/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich.
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation
#### Voraussetzung
* NAS mit Container Manager Unterstützung
#### Installieren
* Nach Symcon in der Registrierung suchen und das Abbild herunterladen (Beim Tag z.B. latest auswählen)

* Unter Abbild das neue Abbild auswählen und auf Start klicken
* Namen vergeben

* Volume Einstellungen anpassen (/root, /var/lib/symcon, /var/log/symcon müssen angegeben werden!)

* Port Einstellungen anpassen (3777 auf 3777)

* Mit OK bestätigen, auf Weiter klicken und mit Übernehmen den Container starten
Das IP-Symcon WebFront sollte nun auf http://ipadresse:3777/ erreichbar sein.
Die IP-Symcon webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über http://ipadresse:3777/console/ aufgerufen werden. Alternativ kann die [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) verwendet werden.
### Update
Es wird empfohlen über das Zusatztool "Portainer" zu Aktualisieren. Eine Anleitung dazu befindet sich im [Docker Bereich](https://www.symcon.de/de/llms/getting-started.md) .
Alternativ kann auch wiefolgt der Container aktualisiert werden:
* Docker-Abbild neu herunterladen (Registrierung - Suche "symcon" - Download)
* Warten bis das neue Image heruntergeladen ist (bei Abbild verschwindet die Zahl)
* Symcon Container stoppen
* Symcon Container leeren (Aktion - Inhalt löschen)
* Symcon Container wieder starten
### Deinstallation
Für die Deinstallation kann der Container gestoppt und danach entfernt werden. Die verknüpften Verzeichnisse für die Daten müssen manuell entfernt werden.
### Hinweise
#### NATSupport für KNX und HomeMatic
Aufgrund der Containerstruktur wird bei KNX- und HomeMatic-Nachrichten standardmäßig eine nur intern verwendete IP-Adresse als Antwortadresse mitgeteilt, so dass die Antworten des Systems nicht korrekt empfangen werden können. Um diese Nachrichten korrekt zu empfangen muss der NATSupport eingerichtet werden.
1. Der [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) "NATSupport" muss aktiviert werden und danach IP-Symcon neu gestartet werden.
2. Für den Container muss der Port des entsprechenden Systems gemappt werden. Bei KNX ist dies standardmäßig 52000 und bei HomeMatic 5544. So müsste beispielsweise bei KNX der Port 52000 auf 52000 gemappt werden.
3. In der betroffenen I/O- oder Splitter-Instanz erscheint nun ein neues Feld "PublicIP". Hier muss die IP eingetragen werden unter welcher Docker von aussen erreichbar ist. Für KNX muss diese im Splitter "EIB Gateway" eingetragen werden und für HomeMatic im I/O "HomeMatic Socket".
## SymBox
Quelle: https://www.symcon.de/de/service/dokumentation/installation/symbox/
> **Achtung:** Die Installation ist nur mit einer gültigen Subskription möglich. Dennoch kann ohne gültige Subskription eine vorhandene Datensicherung der Software wieder einspielt werden. Siehe: [Plattformwechsel](https://www.symcon.de/de/llms/getting-started.md)
> **Achtung:** Es wird eine regelmäßige Datensicherungen empfohlen, damit bei einem technischen Defekt das System auf dem möglichst aktuellen Stand bleibt. Zumal eine aktive Subskription gebraucht wird, um bei vollständigen Verlust eine IP-Symcon Version erneut downloaden zu können.
### Installation/Update/Werkseinstellungen
Für weitere Informationen siehe [Installationsanleitung](https://www.symcon.de/assets/files/product/symbox.pdf) .
## Catan
Quelle: https://www.symcon.de/de/service/dokumentation/installation/catan/
Wichtige Hinweise zur Installation
Das WBM wird am einfachsten erreicht, indem der Catan C1 per USB mit dem PC verbunden und anschließend über https://169.254.252.10/ aufgerufen wird.
Der Catan C1 unterstützt derzeit kein DHCP. IP-Adresse und Gateway müssen daher manuell gesetzt werden. Empfohlen wird die Verwendung des Netzwerks von LAN1/LAN2 (obere Buchsen). Das Gateway liegt üblicherweise auf der .1 — bei der IP-Adresse 192.168.178.250 lautet das Gateway entsprechend 192.168.178.1.
Vor der Installation der Symcon App ist zwingend die aktuelle Firmware (Version 2026.0.3 LTS) zu installieren. Diese steht auf der Seite von Phoenix Contact (Controller Catan C1) im Bereich Firmware zum Download bereit. Die Installation erfolgt im WBM unter "System -> Update".
Voraussetzung für die Installation der Symcon App ist, dass unter "App Management -> Configuration -> Allow only signed apps" der Schalter deaktiviert wird, da die Symcon App noch über keine Signatur verfügt.
Nach der Installation der Symcon App wird eine Konfiguration der Firewall unter "Security -> Firewall" empfohlen, um die Funktion nach dem PLCnext Update auf 2026.6 sicherzustellen, mit dem die Firewall standardmäßig aktiviert wird. Dazu ist unter den "IP Input Rules" eine neue Regel anzulegen, bei der "To Port" auf "3777" gesetzt wird, mit dem Kommentar "Symcon". Je nach eingesetztem System sind weitere Ports zusätzlich freizugeben. Alternativ kann die Firewall nach dem PLCnext Update auf 2026.6 deaktiviert werden.
Erscheint beim Setzen der Lizenz ein "Timeout"-Fehler, ist mit hoher Wahrscheinlichkeit das Gateway nicht korrekt gesetzt oder die Anfrage ins Internet wird durch die Unternehmens-Firewall blockiert.
Erscheint beim Setzen der Lizenz die Meldung "SSL peer certificate or SSH remote key was not OK: SSL certificate problem: certificate is not yet valid", ist die Systemzeit nicht korrekt. In diesem Fall ist im WBM unter "Configuration -> Date&Time" zu prüfen, ob mindestens ein NTP-Server eingetragen und auf Active gesetzt ist. Datum und Uhrzeit werden auf derselben Seite oben angezeigt und sollten aktuell sein. Ist kein NTP-Server hinterlegt oder nicht aktiv, kann ein neuer Server, beispielsweise "pool.ntp.org", angelegt werden. Die Aktivierung ist aufgrund eines Fehlers im WBM derzeit nur über Firefox möglich.
Bei Problemen während der Installation unterstützt der Support jederzeit auch bei der initialen Einrichtung.
### Installation
> **Hinweis:** Symcon kann auch über den [PLCnext Store](https://plcnextstore.com) erworben und installiert werden.
__Download:__ [Appdatei (64-Bit)](https://download.symcon.de/stable/symcon/catan/arm64)
Symcon wird als PLCnext Technology App installiert. Die Installation wird im WBM unter Einstellungen -> App-Management vorgenommen. Unter Konfiguration muss zuvor die Option "Nur signierte Apps zulassen" deaktiviert werden. Nun kann die Symcon Appdatei über das mit der entsprechenden Schaltfläche installiert werden.
Nachdem der Vorgang abgeschlossen ist, kann die webbasierte [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) über http://ipadresse:3777/console/ aufgerufen werden. Dort kann im Informationsmenü oben rechts die [Lizenz geändert](https://www.symcon.de/de/service/dokumentation/installation/lizenz-aendern/#Lizenz_ändern) werden.

Beschreibung der speziellen Funktionen sind [hier](https://www.symcon.de/de/llms/modules/catan.md) zu finden.
### Update
__Aktuelle Version:__ [Appdatei (64-Bit)](https://download.symcon.de/stable/symcon/catan/arm64)
Um ein Update einzuspielen muss die .app Datei der neusten Version erneut installiert werden. Während der Installation wird Symcon neu gestartet. Alle Daten bleiben erhalten.

### Wo_finde_ich_was
#### Wo finde ich was?
* /opt/plcnext/apps/home/data/60002171301055/data/ - Variable Data (Settings, Skripte, Medien...)
* /tmp/appsdata/60002171301055/logs/ - Log Files (Logfiles...)
### Deinstallation
Symcon kann über das WBM unter Einstellungen -> App-Management deinstalliert werden. Dafür muss die Symcon App ausgewählt werden. Über das Mülleimer Symbol kann die Deinstallation gestartet werden. Beim Deinstallieren gehen alle Daten verloren.

## Firewall
Quelle: https://www.symcon.de/de/service/dokumentation/installation/firewall/
Damit IP-Symcon mit den verschiedenen Diensten aus dem Internet kommunizieren kann, sind folgende Einstellung bei einer Firewall vorzunehmen.
### Empfohlene Einstellungen
| Adresse | Port | Protokoll | Funktion |
| --------------------------------------- | ----- | --------- | ----------------------------------------------------------------------------------- |
| apt.symcon.de | 443 | TCP | Installation, Updates |
| api.symcon.de | 443 | TCP | Module Store, Persönlicher Bereich |
| symcon-store.s3.eu-west-1.amazonaws.com | 443 | TCP | Module Store (Daten) |
| live.symcon.de | 443 | TCP | Installation, Updates, Connect, Push-Nachrichten, Anzeige der Subskriptionslaufzeit |
| zwdb.symcon.de | 443 | TCP | Z-Wave Gerätedatenbank |
| dwd.symcon.de | 443 | TCP | WebFront DWD-Wetter |
| ipmagic.de | 50000 | TCP | IP-Symcon Connect |
| github.com | 443 | TCP | Module Control (sofern genutzt) |
### Einstellungen nur relevant für SymBox
| Adresse | Port | Protokoll | Funktion |
| ---------- | ----- | --------- | ------------------- |
| ipmagic.de | 60000 | TCP | SymOS Connect |
| ipmagic.de | 53671 | TCP | SymOS Connect (KNX) |
| ipmagic.de | 53672 | TCP | SymOS Connect (KNX) |
| ipmagic.de | 54114 | TCP | SymOS Connect (LCN) |
### CloudFront-Edge-Server
Die *.symcon.de Adressen werden über AWS in der EU-West-1 Zone (Irland) abgebildet. Die Endpunkte terminieren auf AWS CloudFront und haben eine TTL von 60 Sekunden. Bei einer dynamischen Auflösung ist somit sicherzustellen, dass die Firewall die aktuell genutzten IP-Adressen oft genug ermittelt.
Aktuelle Listen der genutzten IP-Adressen befinden sich hier: [Standorte und IP-Adressbereiche von CloudFront-Edge-Servern](https://docs.aws.amazon.com/de_de/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html)
## Plattformwechsel
Quelle: https://www.symcon.de/de/service/dokumentation/installation/plattformwechsel/
Ein Plattformwechsel von IP-Symcon ist problemlos möglich. Dies funktioniert ohne jeglichen Verlust von Einstellungen oder Daten.
### Schritte zum Plattformwechsel
Folgende Schritte müssen beachtet werden.
* IP-Symcon auf der Zielplattform installieren.
* IPS-Dienst auf der Start- und Zielplattform beenden.
* [Backup erstellen](https://www.symcon.de/de/llms/getting-started.md) auf der Startplattform.
* Dann via [Backup einspielen](https://www.symcon.de/de/llms/getting-started.md) dieses in die neue Plattform integrieren.
* Dienst auf der Zielplattform starten.
> **Achtung:** Es sind immer die Start- und Zielversionen von IP-Symcon zu beachten. Wenn die Version unterschiedlich ist, müssen gegebenfalls die Migrationen beachtet werden. z.B. bei einem Wechsel von 3.4 zu einer höheren Version ist dies unabdingbar.
## Lizenzverwaltung
Quelle: https://www.symcon.de/de/service/dokumentation/installation/lizenz-aendern/
### Lizenzverwaltung
Zur einfachen Handhabung und Übersicht gibt es die Möglichkeit die Lizenzen auf der Homepage in der Lizenzverwaltung zu verwalten.
In der Lizenzverwaltung kann unter anderem die Dauer der Subskription nachgesehen oder die Lizenzdatei erneut verschickt werden.
Die Lizenzverwaltung ist im [Persönlichen Bereich](https://account.symcon.de/) zu finden. Dieser ist über das Personenicon oben rechts auf der Homepage erreichbar. Nach der Anmeldung kann die Lizenzverwaltung geöffnet werden.


> **Achtung:** Die Konten für Forum und Homepage sind momentan noch getrennt. Zukünftig ist allerdings vorgesehen diese zusammenzulegen.
### Lizenz ändern
> **Achtung:** Nach jeglicher Lizenzänderung muss der Dienst von IP-Symcon neugestartet werden
#### Ab Version 5.0
Die Lizenz kann innerhalb der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) im Informationsmenü geändert werden.

#### Ab Version 4.0 bis 4.4
Die Lizenz kann innerhalb der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) unter "Mein IP-Symcon -> Lizenz anzeigen" geändert werden.

#### Bis Version 3.4
Eine neue Lizenz die Aufgrund eines Lizenz-Upgrades erhalten wurde, kann im Kontextmenü der Tray-Anwendung unter den Menüpunkt “Information” eingetragen werden. Das Kontextmenü kann mit einem "Rechtsklick" auf die Tray-Anwendung geöffnet werden.

Über den Button “Lizenz ändern” kann der Dialog geöffnet werden. In diesem kann der Benutzername angegeben und die neue Lizenzdatei auswählt werden. Nach dem Bestätigen wird die neue Lizenz gespeichert. Zur Aktivierung der neuen Lizenz muss der IP-Symcon Dienst einmal neugestartet werden.
## Sicherheit
Quelle: https://www.symcon.de/de/service/dokumentation/sicherheit/
Es gibt verschiedene Sicherheitsaspekte in IP-Symcon, bei denen ein Passwort oder ein spezieller Dienst für die verschiedenen Abschnitte gesetzt werden kann. Dieser Artikel sollte genau gelesen werden, um etwaigen unerlaubten Zugriff von Außen zu verhindern.
> **Hinweis:** Die Werkseinstellugen sind nur sicher, solange IP-Symcon nicht von extern erreichbar ist. Sollte IP-Symcon von extern erreichbar sein, müssen einige der Einstellungen entsprechend verändert werden!
### Fernzugriff (Passwort)
__Werkseinstellung:__ _deaktiviert_ (sicher)
Der Fernzugriff gestattet den Zugriff auf die Verwaltung von IP-Symcon über die Verwaltungskonsole. Wenn kein Passwort gesetzt ist, ist kein direkter Zugriff außerhalb des lokalen Netzwerks möglich.
Weitere Informationen: [Fernzugriff festlegen](https://www.symcon.de/de/llms/components/remote-access.md)
### Connect Dienst
__Werkseinstellung:__ _aktiviert_ (sicher)
Bei aktiver Subskription kann der Connect-Dienst via [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) genutzt werden, um bequem von extern auf die Verwaltungskonsole als auch die Visualisierungen zugreifen zu können.
Ein Zugriff auf das die Visualisierung ist nur Möglich, wenn vorher ein Passwort vergeben wurde, oder die Visualisierung explizit als öffentlich definiert wurde.
Ein Zugriff auf die Konfiguration mithilfe der Verwaltungskonsole ist nur möglich, wenn ein [Fernzugriffspasswort](https://www.symcon.de/de/llms/components/remote-access.md) festgelegt wurde.
Weitere Informationen: [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md)
### Visualisierung (Passwort)
__Werkseinstellung:__ _nicht gesetzt_ (sicher)
Die Visualisierungen (Kachel-/WebFront-Visualisierung) sind in der Werkseinstellung im lokalen Netzwerk ohne Passwort zugänglich. Wird ein Passwort gesetzt, so ist sind die webbasierte Visualisierung und die mobilen Apps durch dieses Passwort geschützt. Sofern die Visualisierung über den Connect-Dienst oder von extern erreichbar sein soll, muss ein Passwort oder explizit ein Zugriff ohne Passwort konfiguriert worden sein.
Weitere Informationen: [Kachel-Visualisierung Sicherheit](https://www.symcon.de/de/llms/components/tile-visualization.md) / [WebFront-Visualisierung Sicherheit](https://www.symcon.de/de/llms/components/webfront-visualization.md)
> **Hinweis:** Anfragen aus folgenden Netzen werden als intern betrachtet ([Private IP Adressen](https://de.wikipedia.org/wiki/Private_IP-Adresse#Adressbereiche)). Diese erfordern somit kein Kennwort, sofern die Option "Erfordere Passwort nur bei externen Zugriff (Internet)" aktiv ist. Wenn jedoch die eingehenden Verbindungen durch einen internen NAT verborgen werden, sollte diese Funktion nicht aktiviert werden.
### User Ordner (Benutzername/Passwort)
__Werkseinstellung:__ _nicht gesetzt_ (unsicher)
Sofern eigene Inhalte in dem User Ordner gelegt wurden, empfiehlt es sich, diese Inhalte zu schützen. Generell sollte die Nutzung vom User Ordner vermieden werden.
Weitere Informationen: ["user"-Ordner Sicherheit](https://www.symcon.de/de/llms/modules/webserver.md)
### SymOS (Passwort)
__Werkseinstellung:__ _nicht gesetzt_ (sicher)
Die SymBox besitzt das eigene Betriebssystem SymOS. Der Zugriff auf dessen Weboberfläche kann via Passwort geschützt werden. Dazu kann in der Weboberfläche des SymOS ein Passwort vergeben. Sofern die SymOS Oberfläche von extern verfügbar ist, sollte dringend ein Passwort eingerichtet werden.
Weitere Informationen: [SymBox Betriebsanleitung PDF - Kapitel 4.4.6. Sicherheit](https://www.symcon.de/assets/files/product/symbox.pdf)
### SymOS Connect
__Werkseinstellung:__ _nicht gesetzt_ (sicher)
Via SymOS Connect kann von außerhalb auf das SymBox Betriebssystem SymOS zugegriffen werden. Der Zugriff von außerhalb ist auch bei aktivierten SymOS Connect nur mit einem gesetzten SymOS Passwort möglich.
> **Hinweis:** Um IP-Symcon den Zugriff auf bestimmte Funktionen außerhalb zu gewähren ist es gegebenenfalls nötig diese in der Firewall einzurichten. Weitere Informationen können unter [Firewall](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.
## Datensicherung
Quelle: https://www.symcon.de/de/service/dokumentation/datensicherung/
Eine Datensicherung gibt es in zwei verschiedenen Formen.
__Backup:__ Ein Backup was alle relevanten Benutzerdaten enthält, sowie auch Mediendateien, Skripte, Datenbank etc.
__settings.json:__ Die Konfigurationsdatei ist das Kernelement einer jeden IP-Symconinstallation. Diese wird automatisch gesichert.
### Backup
Ein Backup ist eine vollständige Datensicherung. Diese wird nicht automatisch vollzogen.
Wie ein Backup erstellt wird und eingespielt wird ist unter [Backup erstellen](https://www.symcon.de/de/llms/getting-started.md) und [Backup einspielen](https://www.symcon.de/de/llms/getting-started.md) nachzulesen.
### Automatische Sicherung der Konfigurationsdatei (settings.json)
In IP-Symcon werden alle wichtigen Einstellungen in der Datei “settings.json” innerhalb vom IP-Symcon Ordner gesichert. Diese Datei ist also das Kernelement der Konfiguration. Damit im Fehlerfall, auf eine Sicherung zurückgegriffen werden kann, speichert IP-Symcon täglich um 00:00 Uhr eine aktuelle Kopie der Einstellungen im Ordner "backup". Die maximale Anzahl von Sicherungen beträgt 25 Stück. Sofern dieses Limit überschritten wird, wird eine alte Sicherung gelöscht.
Die Sicherungen werden automatisch mit dem Namen “settings1234567890.json” abgespeichert, wobei "1234567890" durch die aktuelle Unix-Timestamp ersetzt wird. Die höchste Zahl ist somit die aktuellste Sicherung.
> **Achtung:** Die automatischen Sicherungen der Konfigurationsdatei ersetzt kein regelmäßiges Backup des gesamten Systems. Siehe [Backup erstellen](https://www.symcon.de/de/llms/getting-started.md)
### Konfigurationsdatei (settings.json) im Fehlerfall wiederherstellen
Ein Fehlerfall kann mehrere Ursachen haben z.B.:
* Ungewollte Änderungen (z.B. falsche Instanzen, Variablen gelöscht,...)
* Die Einstellungen sind unerwartet “verschwunden”, “gelöscht” oder “leer”. (Dies bei 99 Prozent der Fälle, auf ein unerwartetes Beenden der Software zurückzuführen, wie z.B. einen Stromausfall.)
Um eine Sicherung der Konfigurationsdatei einzuspielen sind folgende Schritte notwendig:
* Beendigung des IP-Symcon Dienstes
* Kopie einer beliebigen (z.B. die mit der höchsten Zahl im Dateinamen) "settings1234567890.json" aus dem "Backup"-Ordner in den Hauptordner
* Entfernen der aktuellen "settings.json"
* Die kopierte "settings1234567890.json" in "settings.json" umbenennen
* Starten des IP-Symcon Dienstes
> **Hinweis:** Falls die aktuelle Wahl der Konfigurationsdatei-Sicherung nicht korrekt funktioniert, kann eine andere Sicherung probiert werden. Sollte keine der Sicherungen korrekt funktionieren, sollte ein Hilfe-Thema im Forum erstellt werden. Hilfegesuche müssen dabei __mindestens ein Logfile__ im Anhang haben. Anfragen ohne Logfile können nicht bearbeitet werden.
### Wie oft wird was geschrieben?
IP-Symcon besitzt seit Version 4.0 verschiedene Mechanismen um die Schreibzyklen zu minimieren.
Dies ist erforderlich, wenn das IP-Symcon auf Speichermedien betrieben wird, die eine Abnutzung aufweisen.
Dies ist z.B. bei einem Raspberry Pi mit einer SD-Karte der Fall.
#### Medien und settings.json
Generell gilt, dass die settings.json standardmäßig zyklisch alle 10 Minuten (siehe [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md)) und beim Start/Stop des Dienstes gespeichert wird.
Medien Dateien (z.B. vom Image Grabber) sind gecached und werden nur beim Start/Stop geschrieben.
#### Variablen Rohdaten und Aggregation
Variablen-Rohdaten, welche im Archiv gespeichert werden, schreibt IP-Symcon jede Minute auf die Festplatte.
Da dies stetig wachsende Datensätze sind, ist dies auch so gewollt. Wiederrum werden die Aggregationsdaten nur geschrieben, wenn ein Aggregationszeitraum vollständig ist.
Die jeweiligen unvollständigen Aggregationszeiträume werden beim Start aus den Variablen-Rohdaten wiederhergestellt.
Deswegen dauert der Start bei vielen archivierten Variablen auch etwas länger.
#### Logfiles
Logfiles, welche den größten Teil an Schreibzyklen bewirken, werden je nach System anders behandelt.
Normalerweise landen diese auf der Festplatte.
Das SymOS auf der SymBox mappt jedoch /var/log/symcon auf eine RAM-Drive, wodurch das Speichermedium nicht unnötiog abgenutzt wird und die Langlebigkeit erweitert wird.
## Backup einspielen
Quelle: https://www.symcon.de/de/service/dokumentation/datensicherung/backup-einspielen/
Ein Backup kann eingespielt werden, wenn es zu einem nicht reparierbaren Zustand gekommen ist. Ein Backup kann auch genutzt werden, um von einer Plattform auf eine Andere zu wechseln.
### Auf eine andere Plattform wechseln
Bei einem Wechsel auf eine andere Plattform wird die Struktur des Backups genutzt, welches plattformunabhängig für alle gleich ist.
> **Achtung:** Bei einem Wechsel von einer IP-Symcon Version <= 3.4 auf IP-Symcon 4.0 oder höher, muss die Datenbank über den Windows-Installer in das neue CSV Format konvertiert werden. Erst danach kann auf ein anderes System migriert werden.
#### Backup einspielen
SymOS (SymBox)
Windows (Desktop/Server)
MacOS
Linux (Ubuntu)
Raspberry Pi
Docker/Synology/QNAP
Catan C1
##### SymOS - Backup einspielen
Auf der Weboberfläche kann das Backup unter dem Menüpunkt "Einrichten -> Wiederherstellen" ausgewählt werden. Im Anschlusss muss das IP-Symcon (NICHT SymOS) neu gestartet werden.
Weitere Informationen befinden sich in der Anleitung der SymBox unter [4.4.4 Backup](https://www.symcon.de/assets/files/product/symbox.pdf)
##### Windows - Backup einspielen
Sofern die Installation nicht über das Setup durchgeführt wurde, sondern nur auf das System kopiert wurde, ist es möglicherweise notwendig, dass folgende Restributables installiert werden:
* [Visual Studio 2015/2017/2019 C++ Redistributable x64](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) ([Direktdownload](https://download.visualstudio.microsoft.com/download/pr/b929b7fe-5c89-4553-9abe-6324631dcc3a/296F96CD102250636BCD23AB6E6CF70935337B1BBB3507FE8521D8D9CFAA932F/VC_redist.x64.exe) )
* Bonjour64 Installer ([Direktdownload](https://data.symcon.de/Bonjour64.msi) )
Folgende Schritte sind zu beachten:
* Den IP-Symcon Dienst zuerst beenden. (Rechtsklick auf das Tray-Icon -> "Dienst beenden")
* Die backup.zip-Datei in den Ordner C:\ProgramData\Symcon entpacken
* Der Ordner kann am einfachsten über "Rechtsklick auf das Tray-Icon -> Information -> Serverdaten -> Öffnen" geöffnet werden
* Im Anschluss den Dienst wieder starten. (Rechtsklick auf das Tray-Icon -> "Dienst starten")
##### MacOS - Backup einspielen
* Den IP-Symcon Dienst zuerst beenden.
* Die backup.zip-Datei in den Ordner "/Library/Application Support/Symcon" verschieben und via Doppelklicken entpacken.
* Das Archiv löschen und im Anschluss einmal den Dienst neustarten.
##### Linux - Backup einspielen
Den IP-Symcon Dienst zuerst beenden.
```php
sudo /etc/init.d/symcon stop
```
Die im Home-Verzeichnis liegende backup.zip-Datei in den Ordner "/var/lib/symcon/" entpacken.
```php
sudo unzip backup.zip -d /var/lib/symcon/
```
Im Anschluss den Dienst wieder starten.
```php
sudo /etc/init.d/symcon start
```
##### Raspberry Pi - Backup einspielen
Den IP-Symcon Dienst zuerst beenden.
```php
sudo /etc/init.d/symcon stop
```
Die im Home-Verzeichnis liegende backup.zip-Datei in den Ordner "/var/lib/symcon/" entpacken.
```php
sudo unzip backup.zip -d /var/lib/symcon/
```

Im Anschluss den Dienst wieder starten.
```php
sudo /etc/init.d/symcon start
```
##### Docker/Synology/QNAP - Backup einspielen
Der IP-Symcon Container muss zuerst gestoppt werden.
Dieser kann über die Containerverwaltung des jeweiligen Systems gestoppt werden.
Anschließend muss in das gemountete IP-Symcon Verzeichnis gewechselt werden, welches auf den Ordner "/var/lib/symcon/" verweist.
Auf welches Volume der Ordner "gemounted" wurde, kann den Einstellungen des Abbilds entnommen werden. Nach Installationsanleitung ist dies standardmässig im Format "/Symcon/[MeinIPSymcon]/Data".
Den Inhalt des Backups entpacken und in das Verzeichnis kopieren.
Im Anschluss den Container wieder starten.
##### Catan C1 - Backup einspielen
* Die Symcon App stoppen. Die App kann im WBM unter Einstellungen -> App-Management gestoppt werden.
* Sofern eine ZIP-Datei von einem anderen System vorliegt, diese zunächst in einen Ordner entpacken.
* Alle Dateien per [WinSCP](https://winscp.net/eng/download.php) in folgenden Ordner kopieren:
```php
/opt/plcnext/apps/home/data/60002171301055/data/
```
* Sicherstellen, dass die settings.json exakt im data/ Ordner ist und nicht in einem weiteren Unterordner.
* Die Symcon App wieder starten.
#### Tipps
Folgende Dinge sollten hinterher überprüft und ggf. angepasst werden:
* Für Push-Notifications muss der [Server reaktiviert](https://www.symcon.de/de/llms/modules/notification-control.md) werden
* Absolute Pfade bei Skripten und Mediendateien
* Schnittstellenbelegungen (z.B. COM-Ports) auf dem neuen System
* IP-Adressen, wie z.B. ‘Ereignisserver’ bei der HomeMatic CCU oder ‘WebServer’
* Notwendige Zusatzprogramme, Treiber oder Dienste (z.B. _BidCOS_) installieren
## Backup erstellen
Quelle: https://www.symcon.de/de/service/dokumentation/datensicherung/backup-erstellen/
Ein Backup ist eine vollständige Datensicherung aller Benutzerdateien. Dies sollte in regelmässigen Abständen gemacht werden.
### Backup erstellen
SymOS (SymBox)
Windows (Desktop/Server)
MacOS
Linux (Ubuntu)
Raspberry Pi
Docker/Synology/QNAP
Catan C1
#### SymOS - Backup erstellen
Auf der Weboberfläche ist unter dem Menüpunkt "Einstellungen" der Button "Backup". Die Ordnerstruktur wird automatisch erstellt und das backup.zip heruntergeladen.
Weitere Informationen befinden sich in der Anleitung der SymBox unter [4.4.4 Backup](https://www.symcon.de/assets/files/product/symbox.pdf) .
#### Windows - Backup erstellen
Es muss der gesamte Inhalt des Ordners C:\ProgramData\Symcon als backup.zip gepackt werden.
1. Über das Tray Icon den Dienst beenden.
2. Dann den Dataordner über den "Tray Icon -> Information -> Serverdaten öffnen" öffnen und alle Ordner und Dateien markieren.
3. Via "Rechtsklick -> Senden an -> zip-komprimierter Ordner" wird im IP-Symcon Ordner eine .zip Datei erstellt, welche noch korrekt in backup.zip umbenannt werden muss.
4. Diese kann dann zur Sicherung einfach verschoben oder kopiert werden.
5. Über das Tray Icon den Dienst wieder starten.
> **Hinweis:** Sollte es beim Erstellen der Zip-Datei zu der Meldung kommen "Mindestens ein leeres Verzeichnis [...] nicht hinzugefügt werden", kann diese ignoriert werden. Fehlende leere Ordner erstellt IP-Symcon bei Bedarf selbst.

#### MacOS - Backup erstellen
Es muss der gesamte Inhalt des Ordners "/Library/Application Support/Symcon" als backup.zip gepackt werden.
1. Den IP-Symcon Dienst beenden.
2. Dann über "Finder -> Gehe zu -> Gehe zum Verzeichnis" auswählen und den Pfad "/Library/Application Support/Symcon" eintragen.
3. Anschließend in dem geöffneten Ordner alle benötigten Verzeichnisse und Dateien markieren (im Normalfall alle).
4. Über das Menü "Ablage -> X Objekte komprimieren" wird eine Archiv.zip auf den Schreibtisch erstellt.
5. Diese muss noch in backup.zip umbenannt werden.
6. Diese kann dann zur Sicherung einfach verschoben oder kopiert werden.
7. Den IP-Symcon Dienst starten.
#### Linux - Backup erstellen
Es muss der gesamte Inhalt des Ordners "/var/lib/symcon" gezippt werden.
__Falls nötig muss zip installiert werden__
```php
sudo apt-get install zip
```
__Den IP-Symcon Dienst zuerst beenden.__
```php
sudo /etc/init.d/symcon stop
```
__Anschließend muss in das Symcon Verzeichnis gewechselt werden, um zu das Verzeichnis zu packen.__
```php
cd /var/lib/symcon/ //Wechselt in das IP-Symcon Verzeichnis
zip -r ~/backup.zip * //Packt das gesamte Verzeichnis * in die Datei backup.zip.
```
Die backup.zip befindet sich dann im Home-Verzeichnis. Von dort aus kann diese beliebig kopiert oder verschoben werden.
__Den IP-Symcon Dienst wieder starten.__
```php
sudo /etc/init.d/symcon start
```
#### Raspberry Pi - Backup erstellen
Es muss der gesamte Inhalt des Ordners "/var/lib/symcon" als backup.zip gepackt werden.
__Falls nötig muss zip installiert werden__
```php
sudo apt-get install zip
```
__Den IP-Symcon Dienst zuerst beenden.__
```php
sudo /etc/init.d/symcon stop
```
__Anschließend muss in das Symcon Verzeichnis gewechselt werden, um zu das Verzeichnis zu packen.__
```php
cd /var/lib/symcon/ //Wechselt in das IP-Symcon Verzeichnis
zip -r ~/backup.zip * //Packt das gesamte Verzeichnis * in die Datei backup.zip.
```

Die backup.zip befindet sich dann im Home-Verzeichnis. Von dort aus kann sie beliebig kopiert oder verschoben werden.
__Den IP-Symcon Dienst wieder starten.__
```php
sudo /etc/init.d/symcon start
```
#### Docker/Synology/QNAP - Backup erstellen
Es muss der gesamte Inhalt des Ordners "/var/lib/symcon" als .zip gepackt werden.
Als Beispiel dient hier ein Synology System.
__Den Container von IP-Symcon zuerst stoppen.__
Es muss der Container über die Containerverwaltung des jeweiligen Systems gestoppt werden.
__Anschließend muss in das gemountete Symcon Verzeichnis gewechselt werden, um das Verzeichnis zu packen.__
Auf welches Volume der Ordner "gemounted" wurde, kann den Einstellungen des Abbilds entnommen werden. Nach Installationsanleitung ist dies standardmässig im Format "/Symcon/[MeinIPSymcon]/Data".
Anschließend alle Inhalte markieren und via Rechtsklick "Komprimieren".

Die .zip Datei befindet sich dann auf dem Dateisystem und kann einfach heruntergeladen werden.
__Den Container von IP-Symcon wieder starten.__
#### Catan C1 - Backup erstellen
* Die Symcon App stoppen. Die App kann im WBM unter Einstellungen -> App-Management gestoppt werden.
* Alle Dateien per [WinSCP](https://winscp.net/eng/download.php) aus folgendem Ordner sichern:
```php
/opt/plcnext/apps/home/data/60002171301055/data/
```
* Alle Dateien in einer ZIP-Datei komprimieren, um diese auf ein anderes Ziel-System zu überführen.
* Die Symcon App wieder starten.
> **Hinweis:** Der "session" Ordner kann ggf. nicht kopiert werden. Dies kann ohne Bedenken ignoriert werden.
---
# Systemvoraussetzungen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/systemvoraussetzungen/
### Hardware
Für den Betrieb von IP-Symcon ist ein System mit den aufgeführten Betriebssystemen nötig. Ein LAN-Anschluss ist für die meisten gängigen Gateways ebenfalls unabdingbar. Es empfehlen sich stromsparende Komponenten, da das System durchgängig laufen muss. Unsere eigene [SymBox](https://www.symcon.de/de/produkt/symbox/) kann für viele Anwendung ebenfalls hervorragend verwendet werden.
### Software
Auf vielen Betriebssystemen kann IP-Symcon als Server eingerichtet werden. Für die mobilen Betriebssysteme (iOS, Android) steht eine speziell angepasste App zur Verfügung, welche die, vom IP-Symcon Server zur Verfügung gestellte, Visualisierung darstellt.
Eine komplette Liste, welche IP-Symcon Version mit welchem Betriebssystem funktioniert, kann in der [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md) nachgelesen werden.
### Limitationen verschiedener Betriebssysteme
#### Limitationen auf SymBox, Raspberry Pi, Linux, MacOS und NAS-Systemen
* Standardmäßig sind die Kompatibilitätsfunktionen deaktiviert. Siehe [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) zum Reaktivieren. Für Projekte die Kompatibilität zu IP-Symcon 3.4 oder älter benötigen.
* Kein [MediaPlayer](https://www.symcon.de/de/llms/modules/mediaplayer.md) (zur Zeit nur in Windows vorhanden)
* [Text to Speech](https://www.symcon.de/de/llms/modules/text-to-speech.md): Das TTS-Modul kann momentan nur in der Windows Installation gestartet werden. Alternativ kann das "Text to Speech (AWS Polly)" - Modul aus dem Module Store genutzt werden. Dies funktioniert auf allen Betriebsystemen.
* [System Informationen](https://www.symcon.de/de/llms/concepts/automations.md): Die Funktion [Sys_GetSpooler](https://www.symcon.de/de/llms/modules/system-information.md) ist nur unter Windows verfügbar.
## Versionenübersicht
Quelle: https://www.symcon.de/de/service/dokumentation/einfuehrung/systemvoraussetzungen/versionenuebersicht/
* Versionspolitik
* Version 9.0
* Version 8.1
* Version 8.0
* Version 7.2
* Version 7.1
* Version 7.0
* Version 6.4
* Version 6.3
* Version 6.2
* Version 6.1
* Version 6.0
* Version 5.5
* Version 5.4
* Version 5.3
* Version 5.2
* Version 5.1
* Version 5.0
* Version 4.4
* Version 4.3
* Version 4.2
* Version 4.1
* Version 4.0
* Version 3.4
### Versionspolitik
| Betriebssystem | Geplante Unterstützung |
| --------------- | ---------------------------------------------------------------------------- |
| SymOS | immer |
| Windows Desktop | Alle mit der jeweiligen benötigten PHP Unterstützung |
| Windows Server | Alle mit der jeweiligen benötigten PHP Unterstützung |
| MacOS | Die letzten 2 Versionen zum Zeitpunkt des Entwicklungsbeginns |
| Linux (Ubuntu) | Letzte LTS (Long Term Support) Version zum Zeitpunkt des Entwicklungsbeginns |
| Raspberry Pi | Aktuelles Release zum Zeitpunkt des Entwicklungsbeginns |
| Docker | Docker kompatibler Container |
| QNAP | Docker kompatibler Container |
| Synology | Docker kompatibler Container |
### Version 9.0
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 9.0 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 8 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2012 | nur 64bit Version |
| MacOS | ja | ab Version 13 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 24.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bookworm oder neuer) | 32bit/64bit (kein Pi 1, Zero 1) |
| Docker | ja | Intel/AMD 64-Bit, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 13 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 8.1 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 8 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2012 | nur 64bit Version |
| MacOS | ja | ab Version 13 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 24.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bookworm oder neuer) | 32bit/64bit (kein Pi 1, Zero 1) |
| Docker | ja | Intel/AMD 64-Bit, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 13 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 8.0
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 8.0 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 8 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2012 | nur 64bit Version |
| MacOS | ja | ab Version 13 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 24.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit (kein Pi 1, Zero 1) |
| Docker | ja | Intel/AMD 64-Bit, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 12 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 7.2
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 7.2 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 13 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 24.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit (kein Pi 1, Zero 1) |
| Docker | ja | Intel/AMD 64-Bit, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 11 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 7.1
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 7.1 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 12 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 22.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 11 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 7.0
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 7.0 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 12 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 22.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 11 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 6.4
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 6.4 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.15 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 20.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 6.3
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 6.3 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.15 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 20.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 6.2
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 6.2 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.15 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 20.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Bullseye oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 6.1
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| SymOS | ja | 6.1 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.15 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 20.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Buster oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 6.0
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 6.0 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.15 | Intel/Apple M1 |
| Linux (Ubuntu) | ja | Ubuntu 20.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspberry Pi OS (Buster oder neuer) | 32bit/64bit |
| Docker | ja | Intel/AMD 64-Bit, ARM6, ARM7, ARM64 CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 5.5
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 5.5 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.14 |
| Linux (Ubuntu) | ja | Ubuntu 20.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Buster |
| Docker | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 5.4
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 1.8 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.13 |
| Linux (Ubuntu) | ja | Ubuntu 18.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Buster |
| Docker | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 5.3
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 1.7 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.13 |
| Linux (Ubuntu) | ja | Ubuntu 18.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Buster |
| Docker | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 5.2
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 1.6 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.12 |
| Linux (Ubuntu) | ja | Ubuntu 18.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Buster |
| Docker | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 5.1
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 1.5 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.11 |
| Linux (Ubuntu) | ja | Ubuntu 18.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Stretch |
| Docker | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 5.0
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| SymOS | ja | 1.4 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | nur 64bit Version |
| Windows Server | ja | ab Windows Server 2008 R2 | nur 64bit Version |
| MacOS | ja | ab Version 10.11 |
| Linux (Ubuntu) | ja | Ubuntu 18.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Stretch | kein Raspbian Jessie |
| Docker | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Docker](https://www.symcon.de/de/llms/getting-started.md) |
| QNAP | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [QNAP](https://www.symcon.de/de/llms/getting-started.md) |
| Synology | ja | Intel/AMD 64-Bit CPU | bestimmte Prozessorarchitektur nötig; weiteres unter [Synology](https://www.symcon.de/de/llms/getting-started.md) |
| iOS | nur Steuerung | ab iOS 9.3 | Visualisierung via App möglich |
| Android | nur Steuerung | ab Android 5.0 | Visualisierung via App möglich |
### Version 4.4
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------ |
| SymOS | ja | 1.3 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | |
| Windows Server | ja | ab Windows Server 2008 R2 | |
| MacOS | ja | ab Version 10.11 | |
| Linux (Ubuntu) | ja | Ubuntu 16.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Stretch | kein Raspbian Jessie |
| iOS | nur Steuerung | | Visualisierung via App möglich |
| Android | nur Steuerung | | Visualisierung via App möglich |
### Version 4.3
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ------------------------- | ------------------------------ |
| SymOS | ja | 1.2 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows 7 | |
| Windows Server | ja | ab Windows Server 2008 R2 | |
| MacOS | ja | ab Version 10.10 | |
| Linux (Ubuntu) | ja | Ubuntu 16.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Jessie | kein Raspbian Stretch |
| iOS | nur Steuerung | | Visualisierung via App möglich |
| Android | nur Steuerung | | Visualisierung via App möglich |
### Version 4.2
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ---------------------- | ------------------------------ |
| SymOS | ja | 1.1 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows Vista | |
| Windows Server | ja | ab Windows Server 2008 | |
| MacOS | ja | ab Version 10.9 | |
| Linux (Ubuntu) | ja | Ubuntu 16.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Jessie | kein Raspbian Stretch |
| iOS | nur Steuerung | | Visualisierung via App möglich |
| Android | nur Steuerung | | Visualisierung via App möglich |
### Version 4.1
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ---------------------- | ------------------------------ |
| SymOS | ja | 1.1 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows Vista | |
| Windows Server | ja | ab Windows Server 2008 | |
| MacOS | ja | ab Version 10.9 | |
| Linux (Ubuntu) | ja | Ubuntu 16.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Jessie | kein Raspbian Wheezy |
| iOS | nur Steuerung | | Visualisierung via App möglich |
| Android | nur Steuerung | | Visualisierung via App möglich |
### Version 4.0
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ---------------------- | ------------------------------ |
| SymOS | ja | 1.0 | Betriebssystem für die SymBox |
| Windows Desktop | ja | ab Windows Vista | |
| Windows Server | ja | ab Windows Server 2008 | |
| MacOS | ja | ab Version 10.8 | |
| Linux (Ubuntu) | ja | Ubuntu 14.04 | nur 64bit Version |
| Raspberry Pi | ja | Raspbian Wheezy | kein Raspbian Jessie |
| iOS | nur Steuerung | | Visualisierung via App möglich |
| Android | nur Steuerung | | Visualisierung via App möglich |
### Version 3.4
| Betriebssystem | Unterstützt | Version | Anmerkung |
| --------------- | ------------- | ---------------------- | ------------------------------ |
| Windows Desktop | ja | ab Windows 2000 | |
| Windows Server | ja | ab Windows Server 2003 | |
| iOS | nur Steuerung | | Visualisierung via App möglich |
| Android | nur Steuerung | | Visualisierung via App möglich |
---
# Migrationen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/
Die Migrationen erläutern die Features und Fixes der jeweiligen Version.
Ebenso ist eine Beschreibung vorhanden, was bei Versionswechsel bzw. -update zu beachten ist.
| Migration | Veröffentlichung |
| ------------------------------------------------ | ---------------- |
| [V8.1->V9.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2026 |
| [V8.0->V8.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2025 |
| [V7.2->V8.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2025 |
| [V7.1->V7.2](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2024 |
| [V7.0->V7.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2024 |
| [V6.4->V7.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2023 |
| [V6.3->V6.4](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2023 |
| [V6.2->V6.3](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2022 |
| [V6.1->V6.2](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2022 |
| [V6.0->V6.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2022 |
| [V5.5->V6.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2021 |
| [V5.4->V5.5](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2020 |
| [V5.3->V5.4](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2020 |
| [V5.2->V5.3](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2019 |
| [V5.1->V5.2](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2019 |
| [V5.0->V5.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2019 |
| [V4.4->V5.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2018 |
| [V4.3->V4.4](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2017 |
| [V4.2->V4.3](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2017 |
| [V4.1->V4.2](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2017 |
| [V4.0->V4.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2016 |
| [V3.4->V4.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2016 |
| [V3.3->V3.4](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2015 |
| [V3.2->V3.3](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2015 |
| [V3.1->V3.2](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2014 |
| [V3.0->V3.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2014 |
| [V2.7->V3.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2013 |
| [V2.6->V2.7](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2013 |
| [V2.5->V2.6](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2012 |
| [V2.4->V2.5](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q4/2011 |
| [V2.3->V2.4](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q2/2011 |
| [V2.2->V2.3](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2010 |
| [V2.1->V2.2](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2010 |
| [V2.0->V2.1](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q3/2009 |
| [V1.0->V2.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2009 |
| [V0.0->V1.0](https://www.symcon.de/de/llms/getting-started/migrationen.md) | Q1/2005 |
## V8.1->V9.0 (Q1/2026)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v81-v90-q1-2026/
Wesentliche Änderungen
Migration
Breaking Changes
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* Aktualisierte Editionen
* Optimierte Instanzerstellung
* Matter (Beta)
* Verbesserungen an der Visualisierung
#### Aktualisierte Editionen
Die verfügbaren Editionen wurden aktualisiert. Insbesondere neu ist die Community Edition, welche komplett kostenfrei installiert und dauerhaft genutzt werden kann. Aber auch bei den größeren Editionen wurde nachgelegt. Die Expert ist die Wahl für Hausbesitzer die mehr möchten und bietet 3000 Variablen sowie die Erweiterung für Türsprechanlagen. Für noch größere Systeme, insbesondere im professionellen Einsatz kommt die Edition Industrial mit dazu.
Diese Aktualisierung betrifft übrigens nur neu erworbene Editionen. Für bereits erworbene Editionen ändern sich die Bedingungen nicht.
#### Optimierte Instanzerstellung
Der Erstellfluss beim Erstellen von Instanzen wurde komplett überarbeitet und bietet nun mehr Auswahlmöglichkeiten. Beim Anlegen einer Instanz kann nun gewählt werden ob diese beispielsweise mit dem bereits existierenden Gateway verbunden oder doch mit einer neuen Schnittstelle initialisiert werden soll.

#### Matter (Beta)
Matter kommt zu Symcon. Mit der 9.0 können alle Geräte, die zur Zeit erhältlich sind, eingebunden und verwendet werden. Der Anlernprozess funktioniert unkompliziert über die Symcon App oder über das Teilen als Code aus einem bereits bestehenden System heraus.

#### Verbesserungen an der Visualisierung
Natürlich wurde auch die Visualisierung weiter verbessert. So kann nun ein Sprung zu einem beliebigen Objekt per Automation oder Ereignis angestoßen werden. Außerdem haben diverse Darstellungen wie die Wertanzeige oder die Aufzählung neue Parameter und bieten somit noch mehr Freiheiten bei der Visualisierung.

### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Breaking Changes
* Linux: Neuer Key für Debian-Pakete
#### Linux: Neuer Key für Debian-Pakete
Der GPG-Schlüssel für das Symcon APT-Repository wurde erneuert, da der bisherige Schlüssel mit SHA-1 signiert war und von aktuellen Debian/Ubuntu-Versionen nicht mehr akzeptiert wird. Ohne diesen Schritt schlägt das Update mit einem Signaturfehler fehl: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 69FF6261F2D8B290
Bitte vor dem Update folgenden Befehl ausführen:
```php
wget -qO- https://apt.symcon.de/symcon.key | gpg --dearmor | sudo tee /usr/share/keyrings/symcon.gpg > /dev/null
sudo chmod 644 /usr/share/keyrings/symcon.gpg
```
### Liste der Änderungen
#### Allgemein
* Neu: PHP 8.5
* Neu: Datenfluss (Instanzverbindungen) werden ab sofort vollständig über die Verwaltungskonsole gemanaged
* Neu: Spezialschalter ScriptWatch/VariableWatch sind standardmäßig inaktiv bei Neuinstallationen
* Neu: Fehlermeldung verbessert, wenn zu viele Skripte gleichzeitig gestartet werden
* Neu: Heating Control kann per Variablen An/Aus geschaltet werden
* Neu: MQTT Client: Keep Alive Zeit kann eingestellt werden
* Neu: Replication: Bessere und Intuitivere Konfiguration
* Neu: SenderID in IPS_GetScriptThread zur besseren Nachverfolgbarekeit
* Fix: IPS_GetProcessInfo funktioniert korrekt auch bei extrem vielen verfügbaren Prozessen
* Fix: Ereignisse im Zeitraum der Umstellung von Sommer auf Winterzeit werden korrekt ausgeführt
* Fix: Archiv konnte in einem Deadlock stecken bleiben, wenn sehr viele gleichzeitige Anfrage und Schreibvorgänge durchgeführt wurden
* Fix: GridConfiguration wird vor dem Setzen validiert
* Fix: Leere GridConfiguration wirft keinen Fehler mehr
* Fix: Weitere Korrekturen für die bei manchen abstürzenden Streams
* Fix: Beim Erstellen von Links wurde in der Persistent eine 0 statt 1 gespeichert (sofern per Skript erstellt und nie IPS_SetTargetID aufgerufen wurde)
* Fix: Mirroring funktioniert wieder wie vorgesehen
* Fix: UDP Socket konnte „stecken“ bleiben, wenn die BindIP ungültig wurde
* Fix: SyncRemote: In seltenen Fällen konnte die Synchronisation abbrechen
* Fix: Das Event Control konnte sich in einer Schleife verfangen, wenn fehlerhafte Instanzen manuell „repariert“ wurden
#### Geräte
* Neu: Matter Unterstützung (Beta)
* Neu: BACnet: Unterstützung von FDR (Foreign Device Registration)
* Neu: VoIP: Spezialschalter ProxyPort zum Ändern des VoIP Inbound Ports
* Neu: CMI: Freie Konfiguration, welche Daten abgefragt werden sollen
* Neu: KNX: physikalische Adresse wird im Datenfluss mitgesendet
* Neu: Xcomfort: Shutter unterstützt ~ShutterMoveStep Profil
* Neu: Unterstützung für KNX DPT 5.100
* Neu: Unterstützung für KNX DPT 9.009
* Neu: ModBus Geräte: Abfrage über Datenblöcke möglich
* Neu: ModBus Geräte: Schalter zum Deaktivieren von Fehlermeldungen
* Neu: ServerSocket: Schalter zum Deaktivieren von Fehlermeldungen
* Neu: HomeMatic HCU: Maintanance Variablen für alle Geräte und Gruppen
* Neu: HomeMatic HCU: Mehr Variablen mit Darstellungen
* Neu: HomeMatic HCU: Initial werden mehr Werte angezeigt
* Fix: HomeMatic HCU: Wenn Kanäle mehrfach vorhanden sind werden alle erstellt
* Fix: DoorIP: Nutze den Display Name bevorzugt statt dem Account
* Fix: KNX: DPT 1.024 hatte Tag/Nacht im Profil vertauscht
* Fix: KNX: Verbesserte Kompatibilität zu Enertex IP Interface
#### Aktionen
* Neu: Aktion zum Öffnen eines Objekts in der Visualisierung
#### Kachel Visualisierung
* Verbesserte Vorschau Diagramme
* Neu: Position des Wertes kann angepasst werden
* Neu: Vorschau kann deaktiviert werden
* Neu: Wertebereich ist fix auf 24 Stunden
* Verbesserte Diagramme
* Unterstützung für Darstellungen in Multi-Charts
* Stapeln
* de-/aktivierbar
* Gruppierung
* verbesserter Zeitversatz
* Neu: Beim Verschieben oder Hovern des Rollladenreglers wird der aktuelle Wert angezeigt
* Neu: Bilder werden gecached
* Neu: Ein Design kann über die Visualisierung fest vorgegeben werden
* Neu: Zentrierte Login Seite ohne „Ladekreis“
* Neu: Darstellung Aufzählung verbessert:
* Icons können statt oder zusätzlich zum Text angezeigt werden
* Anordnung kann statt Spalte auch Zeile oder Gitter sein
* Neu: Ähnliche Textgrößen der Wertanzeige werden einheitlich dargestellt
* Neu: Hinweis in den Einstellungen, wenn sich App- und Serverversion unterscheiden
* Neu: OpenObject
* Neu: Anzeigemodus Kacheln(Liste) → Instanzkonfiguration
* Neu: Info Dialog für Objekte in Listen
* Beim Klick auf eine Variable in einer Liste wird etwa die letzte Aktualisierung/Änderung angezeigt
* Neu: Keine Limitierung der Anzahl von HTML-Inhalten im Browser (Performance Problem bei 20+ möglich)
* Neu: Höhe vom Gitter wird nie gesenkt während die Höhe oder Position einer Kachel bearbeitet wird, erst danach
* Neu: Zeige den Bearbeiten-Stift für alle Instanzen an (nicht nur für die mit untergeordneten Objekten)
* Neu: Kachel Visualiserung Konfigurator: Begrüßung ist Standardmäßig aus
* Neu: Seitenleiste kann permanent angezeigt werden
* Fix: Suche konnte durcheinander kommen, wenn Server über mehrere IP-Adressen gleichzeitig geantwortet hat
* Fix: Timeout für initiale Anfrage erhöht und Anfragen parallelisiert
* Fix: Aufzählungen werden in kleineren Kacheln besser dargestellt
* Fix: Design Einstellungen sind auf schmalen Bildschirmen besser nutzbar
* Fix: Diagramme bei Übergang von Sommer-/Winterzeit korrigiert
* Fix: Beim Wechseln der Visualisierung konnte der Server falsch erkannt werden, wenn zwei verschiedene Symcon Systeme in unterschiedlichen WLANs die gleiche IP-Adresse hatten
* Fix: Notification Badge aktualisiert sich korrekt automatisch
* Fix: In der MediaPlayer Darstellung wird der Fortschritt korrekt angezeigt
* Fix: Beim Übernehmen von Text Werten, werden diese nicht doppelt übermittelt
* Fix: Unterstützung für Reversed Shutter korrigiert
* Fix: Aufzählungen in der Listenansicht brechen bei bestimmten Breiten nicht mehr um
* Fix: In seltenen Fällen wurden die Hover Effekte nicht mehr korrekt angezeigt
* Fix: Legende der Diagramme werden in der Farbe des Designs angezeigt
#### Darstellungen
* Wertanzeige
* Neu: Es kann entweder nur das Icon oder nur Text angezeigt werden
* Neu: Die Farbe des Icons/Wertes und des Hintergrunds kann einzeln verändert werden
* Inhaltswechsler
* Fix: Voller platz wird genutzt
* Fix: Werte aktualisieren sich nach dem Wechseln
* Fix: Hintergrundfarbe wird aktualisiert
#### WebFront
* Neu: Unterstützung für neue Diagrammeeinstellung: Gestapelte Balken
* Fix: Darstellung von Boolean Variablen verbessert
#### Konsole
* Neu: Neuer Tab zum analysieren der RPC Befehle und verbrauchtem Traffic
* Neu: Diagramm-Dialog an neues Format angepasst, inklusive Konvertierung vom alten Format zum neuen
* Neu: Passe Anzahl Vorlagen pro Zeile im Vorlagenmanager an die Breite des Bildschirms an
* Neu: Hinweise, dass die neue Kachelvisualisierung keine MJPEG Streams unterstützt
* Neu: Vorlagenmanager kann Vorlagen der Legacy Darstellung anzeigen, falls welche existieren
* Neu: Beim Wählen von Farben für Diagramme, wähle aus einem festen Set zufällig aus, statt immer neue Farben zu generieren
* Neu: Instanzen können im Konfigurator direkt umbenannt werden
* Neu: Validiere beim Erstellen von Instanzen ob diese aufgrund des Limits erstellbar sind
* Fix: Neu verbinden via Prüfen-Dialog funktioniert wie vorgesehen
* Fix: Mehrfaches Editieren von Medien ist jetzt korrekt möglich
* Fix: Kennwörter mit gewissen Sonderzeichen wurden nicht korrekt übermittelt
* Fix: Discovery-Instanzen aus dem Module Store bleiben wie vorgesehen bei Anpassung der Systeme bestehen
* Fix: Vermeide kosmetische Fehlermeldung im Objektbaum beim betätigen von Enter ohne ausgewähltes Objekt
#### Pro-Konsole
* Neu: Bibliotheken aktualisiert
#### SymOS
* Neu: Aktualisierung auf Kernel 6.12
#### PHP-SDK
* Neu: Parameter popup.caption für PopupAlert
* Neu: Parameter transparentCaption für SelectColor
* Neu: UnregisterHook / UnregisterOAuth für IPSModuleStrict
* Neu: List und Tree unterstützen nun den Parameter icon mit welchem pro Spalte ein Icon gesetzt werden kann
* Neu: restriction „moduleType“ um eine Aktion auf spezifische Modultypen einzuschränken
* Fix: RegisterHook überschreibt ggf. vorhandene „alte“ Hooks, sodass Modul Hooks immer korrekt registrieren können. (Sollte ein vorhandener Hook überschrieben werden, wird dies passend geloggt)
#### HTML-SDK
* Neu: openObject
### Aktualisierte Module
#### Amazon Alexa
* Fix: Rollladen-Darstellung wird wie vorgesehen unterstützt
* Fix: Korrektes Handling bei der Gerätesuche von Variablen ohne gesetzte Darstellung
#### Dynamische E-Mail
* Neues Modul im Module Store, mit dem dynamisch generierte E-Mails versendet werden können. Der Inhalt und Betreff können basierend auf dem Inhalt beliebiger Variablen gefüllt werden.
#### ekey bionyx
* Neu: Unterstützung für die Notification API (Input)
* Neu: Protokoll Variable, welche granular konfiguriert werden kann
#### Energie Manager
* Neu: Vorlage für Goodwe, go-e, Keba P30 und Foxess ECS 2900
* Fix: Wende Mindestlaufzeit und Nachlaufzeit für günstiges Laden an
* Fix: Verhindere Nebeneffekte, die andere Geräte beim Nachtladen aktivierten
#### Google Assistant
* Neu: Unterstützung für Darstellungen
* Fix: Korrekte Unterstützung von Rollläden
#### OCPP
* Neu: Summiere alle Ladevorgänge je IdTag unter dem OCPP-Splitter
* Neu: Besseres Konfigurationsformular
* Neu: Schönere Darstellung der Variablen
* Neu: Unterstützung von Autorisierung über RFID Karten
#### Strompreis (Vorhersage)
* Neu: Beschaffe EPEX Preise über ENTSO-E anstatt die EPEX Homepage zu parsen
* Neu: 15 Minuten Auflösung für EPEX und Tibber
* Fix: Zeige immer bewegliches Wertefenster an, zeige dabei potentiell noch unbekannte Werte als nicht verfügbar an
#### Szenen-Steuerung
* Neu: Option zur Eingabe einer Schaltverzögerung
#### Tailscale VPN
* Neu: Verbesserte Installationsroutine
* Fix: Hostname wird korrekt gekürzt / Reset Button zum Deinstallieren
## V8.0->V8.1 (Q3/2025)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v80-v81-q3-2025/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* Moderne Diagramme
* Energie Manager
* HomeMatic HCU (Beta)
* Enterprise Features für alle
#### Moderne Diagramme
Diagramme informieren über den Verlauf von Werten und sind somit kaum aus Symcon wegzudenken. Diese Ansicht wurde komplett überarbeitet. Damit sehen die Diagramme nicht nur modern aus, sie bieten auch noch diverse neue Funktionen. Der Bereich der angezeigten Werte kann nun frei ausgewählt und stufenlos angepasst werden. Auch die Auflösung der dargestellten Werte kann nun frei ausgewählt werden. Soll der Verbrauch im Laufe des Tages lieber pro Stunde oder pro 15 Minuten angezeigt werden? All das und noch mehr kann unkompliziert eingestellt und betrachtet werden.

#### Energie Manager
Auch der Energie Manager erstrahlt zur Version 8.1 in neuem Glanze. So werden mit dem Update viel mehr Geräte unterstützt, insbesondere auch Energiespeicher, welche nicht direkt schaltbar sind. Zur Vereinfachung der Konfiguration all dieser Geräte wurden Vorlagen eingeführt. So muss nur noch die passende Vorlage ausgewählt werden und die Konfiguration ist automatisch eingetragen. Und sollte die richtige Vorlage nicht dabei sein, kann die Konfiguration selbstverständlich manuell angepasst werden.
Darüber hinaus wurde die Unterstützung für die rechtlichen Vorgaben aus §9 EEG und §14a EnWG umgesetzt. Schließlich wurde für dynamische Strompreise günstiges Laden implementiert. Hiermit kann ein Energiespeicher oder ein E-Auto automatisch geladen werden, wenn der Strompreis gerade niedrig genug ist. So können die guten Konditionen optimal ausgenutzt werden.

#### HomeMatic HCU (Beta)
Mit der HCU kann nun auch das neueste HomeMatic Gateway in Symcon verwendet werden. Das Gateway bindet sich wie gewohnt nativ in Symcon ein und bietet die bekannten Komfortfeatures. Es wird per Discovery gefunden und die eingebundenen Geräte und Gruppen können direkt per Konfigurator erstellt und sofort genutzt werden.

#### Enterprise Features für alle
Im kleinen Rahmen können ausgewählte Enterprise Features nun ganz ohne kostenpflichtige Erweiterung genutzt werden. Das ermöglicht es zum einen die Features vorab zu testen, natürlich auch im Rahmen einer Demo-Version. Oder vielleicht gibt es einfach einen kleinen Anwendungsfall wie ein einzelnes BACnet-Gerät. Oder der Wohnwagen mit eigenem Symcon soll ins Hauptsystem synchronisiert werden? Das ist jetzt für jeden nutzbar.
| Enterprise Feature | Kostenfreier Nutzungsumfang |
| ------------------ | ------------------------------------------------------------------------------------------ |
| Sync Remote | Ein Remote kann integriert werden |
| BACnet | Bis zu 3 BACnet Datenpunkte können integriert oder als BACnet Server bereitgestellt werden |
| OPC UA | Bis zu 3 OPC UA Knoten können integriert werden |
| Translation | Bis zu 10 Strings können je Sprache übersetzt werden |
| RBAC | Die Verbindung zum eigenen LDAP Server kann vorab getestet werden |
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Standardmäßig werden Objekte mit leerem Namen statt „Unbenanntes Objekt“ erstellt
* Bessere Erkennung von Abbrüchen bei Streams (Upload wurde unnötig zu lange beansprucht wenn die Verbindung über das Relay lief)
* Neu: DoorIP: Neuer Befehl DOORIP_Reject zum Ablehnen von Anrufen
* Neu: Shutter Control: Berechnung von Laufzeiten mit Millisekunden Präzision
* Neu: Spezialschalter ProxySTUN zum Deaktivieren der STUN Anfragen
* Neu: Spezialschalter ProxyTURN zum Deaktivieren des TURN Relays
* Neu: Eltako FHK14 Instanz kann mit einem Thermokon SR0x kombiniert werden zur komfortableren Einzelraumregelung
* Neu: Gitter-Konfiguration einer Visualisierung kann heruntergeladen/hochgeladen werden
* Neu: EnOcean: Timeout zwischen zwei Befehlen kann eingestellt werden
* Neu: Einlern-Wizard für das Shutter Control
* Neu: Wireless M-Bus: Zentrales Schlüssel Management mit Import von diversen CSV Formaten (siehe [Wireless M-Bus](https://www.symcon.de/de/llms/modules/wireless-m-bus.md) )
* Neu: 15 Minuten Aggregation
* Neu: Client Socket unterstützt SSL Verbindungen über Zertifikate
* Neu: WebServer/ServerSocket akzeptiert jetzt Private Keys mit Kennwort
* Neu: Neue XY-Darstellung wird von KNX DPT 242.600 unterstützt
* Neu: Debug Funktion: IPS_DisconnectWebRTCConnections() zum Trennen von Kamera Verbindungen
* Neu: Verbessertes Handling bei überschreiten des Connect Traffic Limits (Liste der Top-Verbraucher wird angezeigt, Automatisches Zurücksetzen nach 24 Stunden)
* Neu: WebServer Instanz wird standardmäßig mit Port 443 und SSL erstellt
* Neu: Links werden initial mit der ID 1 (ungültiges Ziel) erstellt
* Fix: Tailscale Modul (Beta) funktioniert wieder korrekt und vergisst die Einstellungen nicht mehr
* Fix: Archiv: Bei Daten >2GB in der Variable konnten die Statistiken als negative Werte angezeigt werden
* Fix: Wireless M-Bus: WebHook Pfad für WebTech Geräte gekürzt, um Limitation einzuhalten
* Fix: Shutter Control: Problem beim Nachführen der Position gelöst
* Fix: ModBus: Schreiben von Hex-kodierten
* Fix: Energieverteilung: Restriktion auf Int/Float Variablen
* Fix: Berechnung vom Connect Verbrauch bei großen Dateien, die fragmentiert übertragen wurden, konnte ggf. zu hoch sein
* Fix: Client Socket: Prüfung von Zertifikaten gegen offizielle Domains funktioniert korrekt
* Fix: HomeMatic kann nun 0.0.0.0 (Alle) als Ereignisserver auswählen
* Fix: Mirroring: Replikation als Standby legt die I/Os korrekt im Standby Status an
* Fix: Mirroring: Replikation als Standby blockiert die zyklischen Ereignisse korrekt
* Fix: Der Wochenplan konnte in sehr speziellen Fällen einmalig die falsche Aktion ausführen (Danke @bumaas)
* Fix: Streams konnten beim Disconnect den Dienst nach und nach blockieren bis der interne WebServer nicht mehr reagiert hat
* Fix: Streams zeigen eine Fehlermeldung an, wenn diese blockiert sind anstatt den ganzen Server lahm zu legen
* Fix: GetValueFormatted funktioniert für Float-Variablen mit Intervallen
* Fix: Man konnte die Root Kategorie löschen
* Fix: Crashlogs für SymBox/Linux werden wieder korrekt versendet
* Fix: Sporadische Abstürze mit DoorIP korrigiert
* Fix: Inkonsistente Submodule Konfiguration wird wie bei der Git-Cli nicht als relevante Änderung gewertet im Module Control
* Fix: Seltene Probleme mit fehlenden seriellen Ports unter Windows 11 korrigiert
* Fix: Berechtigungen: Das Löschen von Benutzern ist jetzt auch korrekt möglich, wenn man über den Lizenzlimit ist
#### Geräte
Ab sofort sind für BACnet und OPC UA jeweils 3 Instanzen erstellbar (ohne kostenpflichtige Erweiterung) erstellbar. Bei Sync Remote ist 1 Instanz erstellbar. Beim Translation Control können bis zu 10 Strings pro Sprache zum Testen übersetzt werden.
* Neu: KNX: Setzen der physikalischen Adresse der SymBox mit KNX kann direkt im Gateway durchgeführt werden. Optimal in Kombination der ETS Applikation mit Version 1.1 der SymBox
* Neu: LCN UMR wird korrekt im Konfigurator erkannt
* Neu: Wireless M-Bus kann nun mit dem Webtech SWAN Gateway verwendet werden
* Neu: HCU-Integration
* Neu: Discovery Instanz
* Neu: Geräte werden mit Kategorien erstellt
* Neu: Grundlegende Unterstützung für Gruppen
* Neu: Unterstützung für mehr Geräte. Besonders externe
* Neu: Mehr Informationen im Konfigurator
* Neu: Die Gruppen SWITCHING und HEATING werden unterstützt
* Neu: Es werden nur Variablen für Kanäle erstellt, die in Benutzung sind
* Neu: Farbtemperatur für Geräte und Gruppen
* Fix: Korrekte min/max Werte für Temperatur und Farbtemperatur
* Neu: MQTT Client kann den verbesserten Client Socket nutzen, um gesicherte Verbindungen über Zertifikate zu verwenden
* Neu: ModBus: Eigene Faktoren können in der Konfiguration verwendet werden
* Neu: M-Bus: Keep-Alive (alle 3 Minuten) für Gateways
* Neu: wM-Bus: Besseres Caching von Compact Frame Formaten
* Neu: CMI: Nur die aktivierten Abfragen werden auch wirklich angefragt
* Neu: Eltako FUTH
* Neu: DMX (Out) over RS485 (Experimentell)
* Neu: Alle „alten“ HomeMatic Instanzen wurden intern zu HomeMatic CCU umbenannt
* Neu: Eltako FIUS65 wird unterstützt
* Neu: Alle Symcon LAN Gateway’s können aus den jeweiligen Discovery Instanzen neu gestartet und die BaudRate (sofern relevant) konfiguriert werden
* Neu: HomeMatic HCU wird über die IP-Adresse konfiguriert (löst Probleme bei der DNS Auflösung)
* Neu: HomeMatic HCU: Besserer Workflow bei der Einrichtung von Tokens
* Neu: HomeMatic HCU: Geräte ohne „modelType“ werden unterstützt (wie z.B. die Vaillant per EEBUS)
* Neu: HomeMatic HCU: Bessere Unterstützung für Fußbodenheizungscontroller und Wandthermostate
* Neu: Eltako FTKE wird unterstützt
* Fix: BACnet: Einige Geräte (DDC4000 von Kieback&Peter) erlauben nicht, dass der Subscriber Process Identifier gleich der Instance Number ist, wenn man den COV abonnieren möchte.
* Fix: BACnet: PresentValue wurde fälschlicherweise als PresetValue geschrieben
* Fix: Eltako RGBW: Status vom Weiß Kanal wird korrekt gesetzt
* Fix: EnOcean: Fix für EnOcean Shutter Ex Funktionen
* Fix: KNX: Bei der Konfiguration der physikalischen Adresse wird die letzte bekannte angezeigt statt der Standardadresse
* Fix: KNX: Physikalische Adresse der SymBox darf nun auch 0.0.1 sein
* Fix: KNX: Potenzieller Deadlock bei KNX IP-Secure Verbindungen gelöst
* Fix: EnOcean: Wartezeit zwischen Befehlen bei FGW14 Kommunikation auf mind. 100ms erhöht
* Fix: M-Bus: Suffix bei Wasserzählern korrigiert
* Fix: HomeMatic HCU: Rückmeldungen bei unkonfigurierten Kanälen werfen keine Fehler mehr
* Fix: EnOcean: Auswertung bei F6-05-00 und F6-05-02 korrigiert
#### Archiv
* Neu: Spezialschalter ArchiveRecordLimit ist standardmäßig auf 50000 (ist auch der neue Minimalwert)
* Fix: Werte Rohansicht von Zähleraggregation korrekt aus
#### Logikpläne
* Neu: Logikpläne können in einem nicht ausführbaren Zustand gespeichert werden
* Neu: Das Kopieren/Einfügen zwischen mehreren Plänen auf einem System wird unterstützt
* Fix: Copy & Paste für alle Browser
* Fix: Bei Copy&Paste werden die Verbindung korrekt mitkopiert
#### Aktionen
* Neu: Aktionen für Darstellungen angepasst
* Beinhaltet insbesondere eine komplette Überarbeitung der Gruppenschaltung
* Fix: Gruppenschaltung: Fehler bei ungültigen Links gelöst
* Fix: Gruppenschaltung: Standardmäßige Sortierung hinzugefügt
#### Kachel Visualisierung
* Diagramme
* Neu: Zoomen durch klicken. Vgl. alte Charts
* Neu: Freie zeitliche Auflösung
* Neu: Erweitere den Namen von Variablen in Diagrammen um übergeordnete Namen falls sie sonst nicht eindeutig sind
* Neu: Auflösung kann vorausgewählt werden
* Fix: Zoomen kann über Esc unterbrochen werden
* Fix: Label von Boolean Charts werden immer angezeigt
* Fix: Verbesserter Fehler, wenn ein Variable nicht existiert
* Fix: Graphen listen bei Anzeige des Intervalls im Titel das Zieldatum nicht mehr mit an, wenn dies nur als Ziel ist (z.B. bei Anzeige von 1.5. 00:00 bis 1.6. 00:00 wird nur 1.5 im Titel angezeigt)
* Fix: Diverse Performance-Verbesserungen
* Fix: Legende kann nicht mehr aus dem Chart heraus geschoben werden
* Fix: Zeige Rohwerte korrekt an, wenn diese vor dem angezeigten Bereich liegen
* Fix: Verhindere Fehler bei Graphen mit Minimum = Maximum und nicht-dynamischer Anzeige
* Fix: Verbesserte automatisierte Bestimmung von Minimum/Maximum/Schrittweite
* Fix: Verhindere Fehler beim Rauszoomen, falls der Startzeitpunkt sich nicht ändert (z.B. bei Stundenansicht von 0:00 bis 1:00 auf täglich)
* Fix: Reicht der Platz nicht für alle Beschriftungen der X-Achse werden gleichmäßig Beschriftungen ausgeblendet
* Fix: Bei Monats- oder Jahresgraphen bleiben die Beschriftungen nun konstant beim ersten Tag
* Fix: Lade mehr Werte vor, damit die Linie zum nächsten Wert immer sichtbar ist
* Fix: Ermögliche wie vorgesehen die Auswahl der Auflösung bei reinen Balkengraphen
* Fix: Balkengraphen mit einem einzelnen Wert zeigen den Balken nun in korrekter Breite an
* Fix: Ermögliche wie vorgesehen die Auswahl der Auflösung bei reinen Balkengraphen
* Fix: Zeige Gradienten bei Variable mit Hintergrundfarbe und Graphen korrekt an
* Fix: Formatiere unglücklich gerundete Zahlen mit Nachkommastellen korrekt
* Fix: Zeige ersten Wert bei CSV-Ansicht wie vorgesehen mit an
* Fix: Fehler beim Laden von Daten werden korrekt dargestellt
* Neu: Die Farben der Designs können angepasst, hoch- und heruntergeladen werden
* Neu: Energieoptimierer unterstützt Darstellung
* Neu: Darstellungen von Energiespeichern ohne Aktion im Energieverbrauch Optimierer
* Neu: Neue Icons von @da8ter
* Neu: Visualisierung wird standardmäßig über /tile statt /preview geöffnet (/preview leitet weiter auf /tile)
* Neu: Option nur das Icon in der Kategorieleiste anzuzeigen
* Neu: Titel in der Legacy Ansicht und Objekt-Listen werden hervorgehoben und nicht eingerückt
* Neu: xy Farbe kann als kombiniertes Element genutzt werden
* Neu: Text innerhalb von Schiebereglern wird dynamisch skaliert
* Neu: Text von Wertanzeige wird basieren auf festen Stufen skaliert, um Variationen der Größe zu reduzieren
* Neu: Neues Wärmepumpen Icon wird in der Energieverteilung genutzt
* Neu: Batterie-Icon der Energieverteilung unterstützt Darstellungen und mehr Profile
* Neu: Info-Variable in der Energieverteilung wird zusätzlich im Chart dargestellt
* Neu: Strategie der automatischen Titelgröße per Design anpassbar
* Fix: Rollläden und normale Schieberegler funktionieren wie vorgesehen zusammen in einer Liste
* Fix: Diagramm in Energieverteilung mit ungeloggter Infovariable funktioniert wie vorgesehen
* Fix: Skaliere Kachelinhalt korrekt basierend auf skalierter Titelhöhe, auch HTML-Instanzen
* Fix: Erhöhe Anteil der Wertanzeige bei Vorschaudiagramm von 25% auf 50%
* Fix: Verhindere Animation der angepassten Titelgröße beim Kategoriewechsel
* Fix: Unter gewissen Umständen konnte zwischen Hoch- und Querformat das Layout nicht korrekt geladen werden
* Fix: Formatierter Wert von Variablen mit leerer/ungültiger Darstellung wie vorgesehen
* Fix: Rotation von Lautstärkeregler von Mediaplayer angepasst
* Fix: Führende Nullen werden bei der Datumsformatierung berücksichtigt
* Fix: Werte von Textfeldern werden nicht mehr überschrieben, wenn sich ein übergeordnetes Element aktualisiert
* Fix: Die breite des Shutter-Sliders in der Listenansicht wird korrekt berechnet
* Fix: Heruntergeladene Designs werden in den Apps korrekt geöffnet
* Fix: Hintergrundfarbe von Dialogen
* Fix: Letzter Tag bei monatlichen zyklischen Ereignissen wird korrekt angezeigt
* Fix: Längeres Timeout bei Verbindung
* Fix: Schriftarten werden wieder korrekt geladen für HTMLBoxen und HTML Kacheln
* Fix: Neu erstellte Variablen mit Farbdarstellung funktionieren wie vorgesehen
* Fix: Favoriten sind Teil des Browser-Verlaufs
* Fix: Verbesserte Fehlerbehandlung für Anfragen an den Server
* Fix: Doppelte Darstellung von Kategorien beim ändern der Geräte Orientierung
* Fix: Hintergrundbilder von Kategorien, werden nicht mehr angezeigt, nachdem sie verschoben wurden
* Fix: Höhe des Titels wird bei kleineren Kacheln angepasst
* Fix: Aufzählungen mit einem Element in Gitter-Ansicht funktionieren wieder
* Fix: Leere Kacheln auf manchen Android Tablets
* Inhaltswechsler
* Fix: Inhalt nutzt wieder die volle Höhe
* Fix: Werte und Hintergrundfarbe aktualisieren sich korrekt
* Fix: Das Leuchten aktiver Schatten wird nicht mehr abgeschnitten
* Fix: DoorIP schaltet Werte korrekt
* Fix: Handhabung von fehlerhaften Gitterkonfigurationen verbessert
* Fix: Fehlerhafte Anzeige der Darstellung Mediaplayer, wenn sich die Darstellung einer Variable ändert
* Fix: Der Gradient Farbtemperatur kann mit negativen Werten umgehen
* Fix: Fehler beim schnellen Löschen eines Servers behoben
* Fix: Bei Zeitzonen ohne Namen (z.B. Etc/Utc) wird kein grauer Kasten auf der Startseite mehr angezeigt
#### Darstellungen
* Neu: xy Kodierung für die Farbauswahl mit CIE Diagramm zur Auswahl
* Unterstützt eigene Farbräume
* Unterstützt eigene Farbkurven
* Neu: Darstellung Dauer unterstützt Stunden:Minuten
* Neu: Min/Max Feld für absolute Wertanzeigen
#### WebFront
* Fix: Letzter Tag bei monatlichen zyklischen Ereignissen wird korrekt angezeigt
* Fix: Bessere Konvertierung von Darstellungen im WebFront
* Fix: Bei leeren Namen in Links wird der Name korrekt vom Zielobjekt geerbt
#### Konsole
* Neu: Unterstütze mehr Bildformate für Medienobjekte. Insbesondere webm funktioniert nun, es sollten aber alle üblichen Formate funktionieren
* Neu: Import/Export von Ablaufplänen
* Neu: Unterstützung für webp bei der Vorschau von Medien (Bild)
* Neu: wM-Bus: Link Mode kann eingestellt/eingeschränkt werden
* Neu: Das Kopieren/Einfügen zwischen mehreren Objektbäumen auf einem System wird unterstützt
* Fix: Variablen mit der Darstellung Dauer werden korrekt formatiert und zählen bei Bedarf dauerhaft hoch bzw. runter
* Fix: Kleine Performance-Verbesserung bei Aktualisierung von Variablen
* Fix: Korrekte Formatierung von Variablen ohne Darstellung oder mit ungültiger Darstellung
* Fix: Tree’s merken sich beim Aktualisieren wieder die bereits ausgeklappten Knoten
* Fix: M-Bus/wM-Bus: Profile (insbes. Icons) für Wasser Geräte korrigiert
* Fix: Darstellungsmanager funktioniert wieder
* Fix: Beim Versuch die Dauer-Darstellung zu aktualisieren verursachen Links ohne Ziel keine Fehler mehr
* Fix: Zeige die Vorschau von PNG-Bildern wie vorgesehen an
* Fix: Unterstütze Darstellungen im TestCenter
* Fix: Seltene Fehlermeldung beim Wechseln von Darstellungen korrigiert
#### SymOS
* Neu: Reconnect Timer läuft nicht mehr nur alle 30 Minuten, sondern wie das Connect Control in IP-Symcon alle 2^Fehlversuche Minuten und 30% Varianz beim Reconnect. Damit sollten anfängliche Problem mit der Internetverbindung schneller gelöst sein.
* Fix: Zeitzone kann wieder korrekt gesetzt werden
#### PHP-SDK
* Neu: Feld "validPresentations" für SelectVariable zur Einschränkung auf bestimmte Darstellungen
* Neu: [Dokumentation](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) für IPSModuleStrict
* Neu: IPSModuleStrict nutzt jetzt die neue GetCompatibleParent Funktion.
* Neu: IPSModuleStrict wird zu IP-Symcon 8.1 auch im Module Store offiziell unterstützt
* Fix: Sofern keine weitere Property/Attribut hinzugefügt/gelöscht wurde, wurde die Migration in PHP-Modulen nicht korrekt ausgeführt
* Fix: Type Hints für IPSModuleStrict verbessert
* Fix: SelectValue unterstützt nun wie vorgesehen Variablen mit der Darstellung Wertanzeige
### Aktualisierte Module
#### Aktivliste
* Neu: Skript zum Deaktivieren aller aktiven Geräte
* Neu: Buttons für einfacheres Umbenennen
#### Alarmierung
* Neu: Nacht-Alarm
#### Amazon Alexa
* Neu: Beschreibendere Namen in den Tabellen
* Neu: Unterstützung von neuen Darstellungen
* Neu: Zeige mehr Zeilen pro Gerätetyp an
* Fix: Korrektes Handling mit PHP 8.2
#### Backup
* Neu: Bessere Unterstützung für große Backups
#### Benachrichtigung
* Neu: Unterstützung für neue Visualisierung
#### CSV ZIP Export
* Neu: Option zur Auswahl des Dezimaltrennzeichens
#### ekey bionyx
* Neu: Verbesserungen zu den WebHooks
* Neu: Unterstützung für die Notification API
#### Energie Manager
* Neu: Vorlagen für eine einfache Konfiguration
* Neu: Unterstütze Einschränkung der Energieproduktion entsprechend §9 EEG
* Neu: Deaktiviere Geräte, die auch nach mindestens fünf Minuten und zehn Updates nicht reagieren
* Neu: Günstiges Laden/Günstige Laufzeit
* New: Neue Variable über den Betriebsmodus von Energiespeichern (wird von der Visualisierung verwendet)
* Neu: Unterstützung von Statusvariablen für Energiespeicher
* Neu: Unterstützung von zwei Variablen im relativen Modus: Eine für Überschuss und eine für Defizit
* Neu: Unterstütze eine Steuerung der Entladung von Energiespeichern
* Neu: Unterstütze prozentuale Ladeziele für Elektrofahrzeuge
* Neu: Möglichkeit den tatsächlichen Verbrauch für jeden Gerätetyp anzugeben
* Neu: Unterstütze das indirekte Schalten von Energiespeichern ohne Aktion
* Neu: Unterstütze Geräte mit nicht-Legacy Darstellungen
* Neu: Unterstütze Energiespeicher, die eine einzelne Variable für Laden und Entladen verwenden
* Neu: Verbessertes Formular für Energiespeicher
* Neu: Leistung für E-Fahrzeuge kann pro Phase statt insgesamt geschaltet werden
* Neu: Betrachte entladende Batterien als negativen Überschuss
* Neu: Unterstütze Restriktionen nach §14a
* Neu: Betrachte den Verbrauch von manuell gesteuerten Geräten im absoluten Modus
* Neu: Energiepreise sind optional für Nachtladen
* Neu: Optionale Variablen für An/Aus und Phasenwechsel von E-Fahrzeugen
* Neu: Energieeinheit für E-Fahrzeuge auswählbar: Watt oder Ampere
* Neu: Aktiviere Geräte mit niedrigerer Priorität wenn die Energie nicht für höhere Priorität ausreicht
* Neu: Nächtliches Laden/Laufzeit
* Neu: Gerätetyp Energiespeicher
* Neu: Ünterstützung von Mindestlaufzeit und Nachlaufzeit
* Fix: Verhindere ein "Zittern" in bestimmten Konstellationen
* Fix: Aktualisiere Modus, falls sich der Gerätestatus ändert und der Modus nicht automatisch ist
* Fix: Dimme gesperrte Geräte korrekt wenn keine Energie vorhanden ist
* Fix: Nachtladen konnte in manchen Konstellationen die falsche Zeit wählen
* Fix: Funktioniere weiterhin wenn das Format der Variable für Energiepreise ungültig ist
* Fix: "Batterie" zu "Energiespeicher" umbenannt
#### Lingg&Janke KNX quick
* Neu: Verbesserte Darstellung als Liste
#### Szenen-Steuerung
* Neu: Erlaube das Editieren von Werten in der Konsole
#### Treppenhauslichtsteuerung
* Neu: Aktion beim Deaktivieren kann ausgewählt werden
#### Watchdog
* Neu: Spalte zum Aktiv schalten der Aktoren eingefügt
## V7.2->V8.0 (Q1/2025)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v72-v80-q1-2025/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* Darstellungen
* Türsprechanlagen
* Wireless M-Bus
* Benutzerverwaltung
#### Darstellungen
Darstellungen bieten eine neue Dimension bei der Konfiguration von Variablen. Nach der Wahl eines Darstellungstyps wie "Schieberegler", "Farbe" oder "Dauer", kann dieser individuell mit Hilfe von verschiedenen Parametern konfiguriert werden. Diese neue Struktur ermöglicht eine Vielzahl neuer Möglichkeiten für Variablen um diese in der Visualisierung zu verwenden.

#### Türsprechanlagen
Durch die Einbindung von Türsprechanlagen können diese nahtlos in der Visualisierung verwendet werden. Bei einem Klingeln kann direkt in einem Dialog das Bild der Kamera betrachtet und mit dem Besucher geredet werden um schließlich die Tür zu öffnen.


#### Wireless M-Bus
Zusätzlich zu den drahtgebundenen M-Bus-Geräten sind mit der Version 8.0 die kabellosen Geräte von Wireless M-Bus nutzbar. Diese können über die gängigen Gateways von WE und IMST angesteuert werden.

#### Benutzerverwaltung
Für Enterprise-Kunden bietet die neue Version eine Benutzerverwaltung (RBAC). Hier können verschiedene Benutzer angelegt und in beliebige Benutzergruppen kategorisiert werden. Visualisierungen können für Benutzergruppen oder einzelne Benutzer freigegeben werden. Benutzerkonten können entweder direkt in IP-Symcon angelegt werden oder per LDAP importiert werden.


### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Neu: PHP 8.3
* Neu: VoIP: Lokale Nummer, die Angerufen wird in der Connection „Local“
* Neu: Enterprise Funktion für Benutzerverwaltung und LDAP Synchronisation
* Neu: Connect Control: Neue Buttons, um direkt die Visu, Konsole oder SymOS zu öffnen
* Neu: Limit für Anzahl der Aktionen im Wochenplant entfernt
* Neu: Limit für Anzahl von Assoziationen entfernt
* Neu: Schalter in der Instanz der Kachelvisualisierung um die neuen Diagramme zu aktivieren
* Neu: Für Logins über das RBAC/LDAP Feature, kann über den Spezialschalter „ServerTokenExpiration“ die Zeit bis zum Ablaufen des Token und einem erzwingen zum erneuten Login festgelegt werden.
* Neu: GetValueFormatted für Darstellungen
* Neu: ProxyTURN Spezialschalter zum Deaktivieren vom Streams Relay (bei Problemen mit zu hohem Upload)
* Neu: ProxySTUN Spezialschalter, sofern die Streams nur lokal genutzt werden sollen und keine Kommunikation mit unserem STUN Server gewünscht ist.
* Fix: DoorIP - Fehlende Push-Nachrichten
* Fix: Notification Control: Sortierung nach Updated funktioniert nun wie erwartet
* Fix: UDP Socket konnte stecken bleiben wenn der Bind beim Senden einen Fehler geworfen hat
* Fix: Remote Sync: Problem mit Fehlermeldung „Endlosschleife“ korrigiert
* Fix: Wird ein Profil auf einen leeren String gesetzt, wird die dazugehörige Darstellung gelöscht
* Fix: DMX Output zu DMX Kanal umbenannt, da dieser Mittlerweile auch als DMX Input genutzt werden kann
* Fix: Darstellungen mit Intervallen werden im WebFront korrekt angezeigt
* Fix: Sync Remote: Probleme beim Löschen von Variablen gelöst
* Fix: Fehler in Verbindung mit älteren Versionien der Energieverteilung behoben
* Fix: WebSocket: WC_* Funktionen funktionieren korrekt, wenn Leerzeichen/Umlaute im Pfad enthalten sind
* Fix: Neue Icons können für Push Nachrichten korrekt verwendet werden mit längeren Namen
* Fix: Bei neuen SymBox’en wird korrekt die neue Visualisierung als Standard gewählt
* Fix: Sicherheitslücke unter Windows im WebServer (Die Lücke betrifft nur die Windows Version und kann nicht über Symcon Connect ausgenutzt werden. Vielen Dank an @Dustin723 für’s finden und melden!)
* Fix: Sync Remote: AC_* Funktionen konnten vom Master aus zum Remote nicht korrekt in PHP genutzt werden
* Fix: Float-Werte werden in Regeln von Ereignissen korrekt verglichen
* Fix: Rollladensteuerung: Bei manuellem Richtigungswechsel (und Empfang vom STOP) konnte wurde ein interner Stop Timer nicht beendet, wodurch der Rollladen bei der manuellen Fahrt ggf. falsch gestoppt wurde
* Fix: Kalender setzt die Variablen wieder korrekt, wenn der Endzeitpunkt erst am nächsten Tag ist
* Fix: $_IPS[‚TARGET‘] wurde bei TimerEvents nicht mehr korrekt gesetzt (vmtl. bereits seit der 7.0 defekt)
#### Geräte
* Neu: Wireless M-Bus unterstützt IMST iM871A-USB und IMST iM891A-XL/iU891A-XL
* Neu: EnOcean: Neuer RCM100 Modul für Rollladen
* Neu: Wireless M-Bus Unterstützung
* Neu: KNX: Konfigurator erlaubt das Hinzufügen von Keywords, die Entfernt werden sollen
* Neu: KNX: Für die neuen KNX Geräte-Instanzen kann je GA ein optionaler Name vorgegeben werden
* Neu: KNX: Konfigurator erlaubt den Export der genutzten GAs (Kann im „Secure Interface“ der SymBox in der ETS ab der 6.3 eingefügt werden)
* Neu: EnOcean: Für den Modus FGW14 kann die BaseID angegeben werden
* Neu: EnOcean: Beim Eltako Switch kann als Schaltmodus auch A5-38-08 verwendet werden
* Neu: Charts werden jetzt immer im Vollbild angezeigt
* Neu: EnOcean: Wartezeit bis Timeout kann eingestellt werden
* Neu: EnOcean: Neue Instanz für den Eltako FWRB
* Neu: M-Bus: Timeouts können im Gateway eingestellt werden (Sinnvoll z.B. bei 300 Baud)
* Neu: wMBus: Wireless M-Bus Konfigurator zeigt Informationen besser an
* Neu: EnOcean: Option, um beim Eltako Dimmer bei An auf die letzte Dimstufe anzuschalten
* Neu: KNX: Physikalische Adresse der SymBox KNX Schnittstelle kann direkt aus der Splitter Instanz gesetzt werden. (Notwendig für die ETS Applikation 1.1 der SymBox)
* Neu: Eltako FHK14 Instanz kann mit einem Thermokon SR0x kombiniert werden zur komfortableren Einzelraumregelung
* Neu: EnOcean: Timeout zwischen zwei Befehlen kann eingestellt werden
* Fix: Assoziationen mit %f /%d funktionieren wieder wie vorgesehen
* Fix: Skripteditor unter Firefox 131.0.2 geht wieder
* Fix: KNX: Einige TTL Dateien konnte nicht gelesen werden mit mit einem „stoi“ Fehler
* Fix: KNX: Beim TTL Export wurden bereits erkannte Status GA nicht korrekt aus der Liste gefiltert
* Fix: KNX: Beim TTL Export wurde der „unbekannt“ Tag nicht korrekt dargestellt
* Fix: KNX: DPT 1.024 und 1.100 haben jetzt korrekte Profile (waren seit der 7.2 vertauscht)
* Fix: OPCUA: Variablen werden wie vorgesehen nicht entfernt, falls der Datentyp vom Datenpunkt sich ändert
* Fix: HomeMatic: Beim Trennen der Verbindung wurde ein falsches Paket gesendet
* Fix: EnOcean: Korrigiere Profil für D5-00-01 (.Reversed fehlte)
* Fix: OPC UA: Sofern der Server den Wert „Null“ gesendet hat, wurde die Variable gelöscht und dann, beim Empfang des korrekten Werts, mit anderer ID neu erstellt. IP-Symcon verhindert dies nun und loggt das Problem ins Meldungsfenster.
* Fix: KNX: Der SubTag Lamelle wurde nicht korrekt ausgewertet bei neuen KNX Geräten
* Fix: wMBus: Bei Mode 7 mit Informationen in der TPL wurde ggf. nicht korrekt entschlüsselt
* Fix: MQTT Client: Retain Flag wurde nicht korrekt weitergeleitet
* Fix: ModBus: Schreiben von Hex-kodierten Strings korrigiert
* Fix: EnOcean: FHK14 Thermostat Schwellwert verbessert
#### Kachel Visualisierung
* Neu: Neue Graphen können verwendet werden
* Neu: Darstellung von Nachtladen im Energieverbrauchoptimierer
* Neu: Prognose für Energieoptimierer wird unterstützt
* Neu: In den Servereinstellung werden verbundene Server/Visu hervorgehoben
* Neu: Im Server Info Dialog wird der Verbindungstyp angezeigt
* Neu: Annehmen von Anrufen direkt über die DoorIP-Instanz möglich
* Neu: Nächtliches Laden für Batterien im Energieoptimierer
* Neu: Beim Schalten von Variablen wird der neue Wert sofort angewandt und ggfs. nach kurzer Zeit zurückgesetzt, falls er vom Server nicht bestätigt wird. Dadurch fühlen sich diverse Bedienvorgänge flüssiger an.
* Neu: Neue Typen Kälte und Klimaanlage für Energieverteilung
* Neu: Hinweis und korrektes Handling, falls sich der Server in einer anderen Zeitzone befindet
* Neu: Nächtliches Laden für Verbraucher im Energieverbrauch-Optimierer
* Neu: eigenes Format für Uhrzeitdarstellung in der Appbar
* Neu: Energieoptimierer
* Neu: Nicht-stören-Modus für Door IP
* Neu: LDAP: „angemeldet bleiben“ Option im Web
* Neu: Ansicht von Aufzählung als Dropdown, Aufzählung nebeneinander und Wertedarstellung vereinheitlicht
* Neu: Halloween Theme
* Neu: Animation in der Energieverteilung sind wieder da.
* Neu: Dem HTML-SDK und den HTML-Boxen stehen jetzt verschiedene Farben in Form von CSS-Variablen zur Verfügung (–accent-color, --content-color, --card-color). Die Variablen sind einfach über
var(--accent-color) abrufbar.
* Neu: Warnung beim Löschen eines verbundenen Servers
* Neu: Bei neuen Graphen werden wie ursprünglich die Namen der Boolean-Graphen eingeblendet
* Neu: Die neuen Charts aktualisieren sich nach 2 Minuten, wenn der aktuelle Zeitpunkt angezeigt wird
* Neu: Generator Typ für Energieverteilung
* Neu: Einstellbares Format für den angezeigten Namen des Inhaltswechslers
* Neu: Instanzkonfiguration
* Die Kategorieleiste kann in einer Zeile dargestellt werden.
* Option Kategorien nur in der Seitenleiste anzuzeigen
* Neu: In den Apps werden Kacheln im Editiermodus über ein langes drücken verschoben
* Neu: Nutze beim Kopieren der Versionsinformation ein formatiertes Datum anstatt eines Zeitstempels
* Neu: Ladeanzeige beim Laden von neuen Werten für Graphen
* Neu: Option für statische Begrüßung
* Fix: Edit-Button wird auch in der Kachel ausgeblendet, wenn der entsprechende Schalter in der Visualisierungsinstanz deaktiviert wird
* Fix: Löschen eins verbundenen Servers funktioniert wie vorgesehen
* Fix: Der Schieberegler kann bei bestimmten Schrittweiten nicht mehr über seine Grenzwerte hinaus geschoben werden.
* Fix: Sekundäre Variable in der Energieverteilung ist jetzt immer verfügbar
* Fix: Bedienelemente für Aufzählungen überarbeitet
* Fix: Breite von Slidern in Listenansicht vereinheitlicht
* Fix: Komma als Dezimaltrennzeichen für Profile
* Fix: LDAP: Fehler, wenn es nur Visualisierungen gibt, die nur für autorisierte Benutzer angezeigt werden.
* Fix: LDAP: Drawer: Visualisierungen die nur für autorisierte Benutzer sind werden auch nur für diese angezeigt.
* Fix: LDAP: Kein automatisches Öffnen, wenn eine versteckte Visualisierung mit Autorisierung vorhanden ist
* Fix: Stringvariablen werden aktualisiert, wenn das Eingabefeld abgewählt wird
* Fix: Größe von Textfelder in der Listendarstellung verringert, damit es besser in die Zeile passt
* Fix: Fehler in Verbindung mit dem Passwortdialog behoben
* Fix: Endlosschleife beim Verbinden mit einzelnem Server behoben
* Fix: Liste gespeicherter Server wird richtig aktualisiert
* Fix: Nicht-Geräte Instanzen können nur noch über Links angezeigt werden
* Fix: Zuordnung von Fehlermeldungen verbessert
* Fix: Korrigierte Ausrichtung von TextBoxen im Vollbild-Modus
* Fix: Ist eine Visualisierung nur im lokalen Netz verfügbar, wird sie bei einem Zugriff über Connect als gesperrt dargestellt
* Fix: Korrekte Prozentberechnung in der Energieverteilung, bei Prozentprofilen, die nicht von 0 bis 100 laufen
* Fix: Events werden aus Dialogen heraus richtig aktualisiert
* Fix: Erlaube Visu-Wechsel bei gelöschter Hauptkategorie
* Fix: Bei Kategorie Kacheln wird nur ein Icon angezeigt
* Fix: Icons werden beim Konfigurieren von Instanzen korrekt in der Titelzeile angezeigt
* Fix: Größe und Position von Icons der Automationen angepasst
* Fix: Alle Kombinierte Elemente werden als deaktiviert angezeigt, wenn sie deaktiviert sind
* Fix: Objekte werden als deaktiviert angezeigt, wenn übergeordnete Objekte deaktiviert sind
* Fix: Beim Konfigurieren von Instanzen wird die Sichtbarkeit des tatsächlichen Objektes genutzt, nicht die des Ursprungsobjektes
* Fix: Icons dürfen jetzt 64 Zeichen lang sein für Push Nachrichten
* Fix: Wird das Bild einer Kategorie aktualisiert, so wird die Kachel direkt aktualisiert
* Fix: Variablen mit ~UnixTimestamp Profil können wieder verändert werden
* Fix: Lesbarkeit des Zeitauswahldialogs im Darkmode verbessert
* Fix: Graphen können nun aus der Energieverteilung geöffnet werden, falls der Button über HTML-Inhalt schwebt
* Fix: Variablen mit HTML-Inhalt werden auch in der App neu geladen, falls der Variableninhalt aktualisiert, aber nicht geändert wird
* Fix: Gehe in einen Fehlerzustand, wenn die Übergabe zu einer neuen Verbindung nicht funktioniert, anstatt bei „Verbinde…“ festzuhängen
* Fix: Wird ein Reconnect durchgeführt warten Anfragen an den Server bis dieser abgeschlossen ist
* Fix: Versuche bei einer Testnachricht ohne dazugehörige Visualisierung nicht eine nicht-existente Visualisierung zu öffnen
* Fix: Skalierung in HTML-Elementen, die bei einigen mobilen Geräten falsch war, sollte nun korrekt funktionieren
* Fix: Fange seltenen Absturz bei SVG-Graphen ab
* Fix: Ehemalige Heuristik für HTML-Boxen wird weiterhin bei Zugriff auf ältere Symcon-Systeme angewandt
* Fix: Datumsdarstellungen in Listenansicht nutzen wie vorgesehen nur den vorhandenen Platz
* Fix: Lade HTML-Inhalte bei maximierten Kacheln nicht beim Ein- oder Ausblenden einer Tastatur neu
* Fix: Fehler bei maximierter Thermostat Instanz behoben
* Fix: Größe des Popups der Energieverteilung skaliert mit dem Inhalt
* Fix: Die Zeit kann bei einmaligen Ereignissen wie vorgesehen ausgewählt werden
* Fix: Datum/Uhrzeit Dialoge von Ereignissen nutzen den gleichen Stil, wie alle anderen
* Fix: Fehler im HTML-SDK werden an den Benutzer weitergeleitet
* Fix: Zurücksetzten des Kachel-Layouts bei fehlerhafter Gitterkonfiguration
* Fix: Doorip - Dialog wird angezeigt, wenn bei geöffneter App auf eine Push-Benachrichtigung getippt wird
* Fix: Energieoptimierer: Bedingungstext wird bei wenig Platz in eine zweite Zeile geschoben
* Fix: Energieverteilung: geöffnete Dialoge werden nicht mehr am Bildschirmrand abgeschnitten
* Fix: Buttons bei maximiertem Chart werden jetzt immer korrekt dargestellt
* Fix: Chart Daten werden initial besser angezeigt
* Fix: Sehr ähnliche Werte werden im Chart besser dargestellt
* Fix: Slider wird nie ohne Label angezeigt
* Fix: Hintergrund-Gradient wird bei maximierten Charts nicht mehr angezeigt
* Fix: Im Wochenplan können Zeiträume < 30 Minuten ausgewählt werden
* Fix: Rundungsfehler bei negativen Werden bei Schiebereglern
* Fix: Uhrzeit wird bei dem Wert 0 korrekt dargestellt
* Fix: Nicht existierendes Profil bei Variablen ohne Aktion führt nicht mehr zum Absturz
* Fix: Versteckte Visualisierungen konnten IP-Autostart nicht verwenden
* Fix: Geloggte String-Variablen nutzen immer die bestehende Tabellen-Darstellung
* Fix: Die Einstellungen von verlinkten Inhaltswechsler werden wie vorgesehen übernommen
* Fix: HTMLBox’en werden bei Variablenänderung korrekt aktualisiert
* Fix: Overlay der Energieverteilung funktioniert korrekt über HTMLBoxen
* Fix: Nicht existierende Objekte in den Favoriten führen nicht mehr zu Fehlern
* Fix: Das Löschen von leeren Bereichen im Editiermodus funktioniert wie vorgesehen
* Fix: Schieberegler werden hervorgehoben, wenn ihre Farbe dem Hintergrund entspricht
* Fix: Streams verbinden sich nach einem Verbindungsabbruch neu
* Fix: Die Rollladen Darstellung erkennt jetzt die neuen Variablendarstellungen
* Fix: Scrollen in der Ausgabe von Skripten möglich
* Fix: Verbesserte Logik für die Wiederverbindung von Streams
* Fix: Punktbewegung der Energieverteilung aktualisiert sich wieder korrekt
* Fix: URLs von hinzugefügten Servern werden aktualisiert
* Fix: Bei mehreren Werten zum gleichen Zeitpunkt werden diese im neuen Graphen korrekt sortiert
* Fix: Aktualisiere bei Verbindung via URL die Serverinformationen und verhindere so doppelte Einträge in der Serverliste oder unpassende Namen und Versionen
* Fix: Hinweis, wenn die Stream Verbindung über das Relay stattfindet, wird wieder angezeigt
* Fix: Kennwörter, welche UTF-8 Zeichen enthalten funktionieren wieder korrekt
#### Darstellungen
* Neu: Darstellungen sind nun nutzbar.
* Neu: Legacy für die bisherigen Profile
* Neu: Schieberegler
* Tausendertrennzeichen
* Intervalle
* Neu: Shutter
* Zusätzliche Parameter für die Lamellenposition und Sonnenposition
* Neu: Datum/Uhrzeit
* Datum und Uhrzeit können separat angezeigt werden
* Das Darstellungsformat kann angepasst werden
* Neu: Dauer
* Dauer bis/seit einem Zeitpunkt
* Aktuell auf Stunden begrenzt
* Neu: Darstellung Aufzählung
* Verschiedene Anordnungen: Spalte, Reihe, Liste
* Neu: Darstellung Schalter
* Eigene Icons für Werte
* Anpassungen des Leuchtens
* Neu: Werteingabe
* Präfix/Suffix
* Neu: Wertanzeige
* Tausendertrennzeichen
* Intervalle
* Neu: Webinhalt ( ehemals ~HTMLBox)
* Direktes einbinden einer Webseite
* Neu: Farbe
* Verschiedene Kodierungen: RGB, CMYK, HSV, HSL
* Neu: Icons sind bei nicht Legacy-Darstellungen Teil der Darstellung
* Neu: Vorlagen für Wertanzeige uns Schieberegler
#### WebFront
* Neu: Darstellungen werden im WebFront und den mobilen Apps angezeigt
* Fix: Verhindere doppelte Präfix/Suffix in konvertierten Wertanzeigen
#### Konsole
* Neu: Hinweis beim versuch eine Vorlage zu wählen, wenn keine existiert
* Neu: Funktion zum Umwandeln von Profilen in neue Darstellungen
* Neu: Tooltips für zu lange Icon-Namen
* Neu: Vereinheitliche Dialoge für Referenzprüfung, verbessert insbesondere den Referenzdialog im Module Store
* Neu: Bei neu erstellten Variablen wird standardmäßig eine passende Nicht-Legacy-Darstellung ausgewählt
* Neu: Speichern von Vorlagen direkt aus dem Variablen-
* Neu: Passe Anzahl der Elemente pro Zeile bei der Auswahl von Darstellung oder Vorlage an den verfügbaren Platz an
* Fix: Ungültige Vorlagen können gelöscht werden
* Fix: Beim Erstellen von Vorlagen kann, falls benötigt, die passende Gruppe ausgewählt werden
* Fix: Benutzerdefinierte Darstellung von Statusvariablen kann gelöscht werden
* Fix: Benutzerdefinierte Darstellungen wird wie erwartet bevorzugt, wenn vorhanden
* Fix: Archivdialoge können nun auch bei sehr langen Variablennamen problemlos geschlossen werden
* Fix: Größe der Kachel kann im Vollbild der Vorschau der Darstellungen wieder verändert werden
* Fix: kosmetische Fehlermeldung beim öffnen des Variablen bearbeiten Dialogs verhindert
* Fix: Aus dem Meldungsfenster heraus geöffneter Wert bearbeiten Dialog funktioniert wie vorgesehen
* Fix: Mehrfachauswahl in Konfiguratoren funktioniert wieder wie vorgesehen
* Fix: Übersetzung von Icon Namen verbessert
* Fix: Fehler beim öffnen des Profil Dialogs
* Fix: Objektbaum wird nach dem ändern einer Darstellung aktualisiert
* Fix: Verbessertes Bearbeiten der Darstellung von mehreren Variablen
* Fix: Deaktivierte Standardaktionen werden von Darstellungen berücksichtigt
* Fix: Fehlerhafte Ketten Verbindungen
* Fix: Fehlerhafte Erkennung ob eine Variable eine Aktion hat
* Fix: Reaggregations-Dialog wird nur noch angezeigt, wenn benötigt
* Fix: Gruppen von Vorlagen werden korrekt ausgewertet
* Fix: Profile werden beim ändern von Darstellungen aktualisiert
* Fix: Möglichen Fehler beim Speichern/Laden von Vorlagen behoben
* Fix: Wende Konvertierung von Darstellungen bei der Wertdarstellung korrekt an, sodass keine Nachkommastellen bei Integer-Werten angezeigt werden
* Fix: Vorlagenauswahl kann bei unglücklichem Timing nicht mehr die Auswahlkringel verhindern
* Fix: Verhindere Fehler beim Versuch in einem Archiv mit sehr vielen Variablen aufzuräumen
* Fix: Verdichtung kann wieder korrekt konfiguriert werden
* Fix: Variablen mit der Darstellung Dauer werden korrekt formatiert und zählen bei Bedarf dauerhaft hoch bzw. runter
#### SymOS
* Fix: Aktivierung von Lizenzen (über Key) funktioniert über einen neuen Endpunkt ***
#### PHP-SDK
* Neu: Neue Bedingung „hasNoIdent“ für Aktionen um diese nicht anzuzeigen, falls eine Instanz ein untergeordnetes Objekt mit einem bestimmten Ident hat
* Neu: MaintainVariable* Funktion erlaubt jetzt auch die Angabe einer Presentation als Array
* Neu: RegisterVariable* Funktionen erlauben die Angabe einer Presentation als Array
* Fix: Listen sind jetzt in Trees nutzbar
* Fix: IPSList als Type Hint für IPSModule und IPSModuleStrict erlauben
### Aktualisierte Module
#### Telefonkette
* Neu: Hinzufügen einer Ansage via Text To Speech(AWSPOLLY)
## V7.1->V7.2 (Q3/2024)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v71-v72-q3-2024/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* Neue Icons
* KNX: Semantischer Export
* Verbesserte Synchronisation entfernter Systeme
* Stabile Streams in Visualisierung
#### Neue Icons
Der Umfang der Icons wurde um ein vielfaches erhöht. Anstatt vorher 165 Icons kann nun aus den 3787 verschiedenen Icons von Font Awesome Pro für alle möglichen Anlässe ausgewählt werden. Damit bei dieser umfangreichen Iconmenge dennoch das optimale Icon gewählt werden kann, unterstützt die Verwaltungskonsole eine Aufteilung nach Kategorie sowie einen intelligenten Schnellfilter.

#### KNX: Semantischer Export
Im KNX Konfigurator ist nun der semantischen Export (TTL) integriert. So kann die Zeit zur Einrichtung der Visualisierung auf ein Minimum reduziert werden. Seit der ETS 6.1.1 ist der semantische Export verfügbar, der viele weitere Informationen aus dem KNX Projekt exportieren kann. Sofern das KNX Projekt mit der Gebäudestruktur und den Gerätefunktionen projektiert wurde, kann diese Information genutzt werden, um die Visualisierung fast vollständig damit aufzubauen - ein manuell Nacharbeiten oder Zuweisen von Status-Adressen, Namen oder der Gebäudestruktur ist nicht mehr erforderlich.

#### Verbesserte Synchronisation entfernter Systeme
Die Einbindung des Sync Remote für unsere Enterprise-Kunden wurde weiter verbessert. Die Konsole zeigt nun auch Spezialkategorien wie Kern, Discovery, etc. des entfernten Systems an. Auch wird die Darstellung im physikalischen Objektbaum nun nach lokalen und entfernten Systemen aufgeteilt, sodass schnell der physikalische Aufbau eines bestimmten entfernten Systems ausgewertet werden kann.

#### Stabile Streams in Visualisierung
Die Stabilität von Videostreams in der Visualisierung wurde verbessert. Vorher konnte es in manchen Konstellationen dazu kommen, dass Streams abbrechen oder IP-Symcon abstürzt. Die entsprechenden Fehler wurden behoben, sodass Streams nun in allen Fällen wie vorgesehen in der Visualisierung verwendet werden.
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Neu: Logikpläne (ehemals Workflows) sind jetzt nativ integriert. (Das Module Store Modul kann gelöscht werden)
* Neu: Button zum bequemen Erstellen von passenden Zertifikaten für alle SSL Instanzen wie Server Socket, Web Server oder OPC UA Client
* Neu: Connect: Link zum Versenden per E-Mail wieder hinzugefügt
* Neu: Sync Remote: Burst Abfragen nach einem RequestAction (um Traffic zu sparen)
* Neu: Sync Remote: Unterstützung für Diff-Snapshots, um Traffic zu sparen
* Neu: HTTP Client: VerifyHost/VerifyPeer Option
* Neu: HTTP Client: Eigene Header können definiert werden
* Neu: Translate: Anzeige der erkannten Systemsprache
* Fix: Sync Remote: Fehler (Invalid Data Type) mit komplexeren Rückgabetypen gelöst
* Fix: Fehlermeldung bei Aktion „Lese eine Objekteigenschaft aus“ gelöst
#### Geräte
* Neu: KNX: TTL (Semantischer Export) kann im Konfigurator importiert werden
* Neu: KNX: KNX Gerät als Instanz, welches mehrere DPTs unter einer Instanz abbilden kann
* Neu: KNX: Gruppenadresse der Instanz wird in der Info Spalte angezeigt
* Neu: DMX: DMX Input Instanz, um z.B. DMX Fader über einen ArtNET Input empfangen zu können
* Neu: BACnet: Unterstützung für den Typ „Accumulator“
* Neu: ModBus: Fix für Abfrage von Datenblöcken in Kombination mit „Little Endian (Bytes getauscht)“
#### Kachel Visualisierung
* Neu: Font Awesome Pro (Light + Brands) integriert (Insgesamt >3000 Icons)
* Neu: Neue Fehlermeldung, wenn Endgerät keinen h264 Dekoder besitzt
* Neu: Einstellungen für Energieverteilung wurden in die Kachelkonfiguration verschoben (Danke an @yansoph!)
* Neu: Sprachen-Auswahl auf Login-Seite bei Web, sofern das Translation Modul aktiv ist
* Neu: Kategorien die als Kachel dargestellt werden können ihr Icon als Inhalt anzeigen
* Neu: Zeilenhöhe der Listendarstellung angepasst
* Fix: Zustand des Wochenplans wird korrekt synchronisiert
* Fix: Demo funktioniert wieder korrekt
* Fix: Verbesserungen bei parallelen Streams in der Kachel Visualisierung (weniger Abstürze!)
#### WebFront
* Neu: Font Awesome Pro (Light + Brands) integriert (Insgesamt >3000 Icons)
#### Konsole
* Neu: Sync Remote: Darstellung vom spezial Kategorien (z.B. I/O, Splitter…) direkt unterhalb der Sync Remote Instanz
* Neu: Sync Remote: Sync Remote Instanzen werden im physikalischen Objektbaum beachtet
* Neu: Sync Remote: Remote IDs werden im Skript Editor korrekt aufgelöst
* Neu: Auswahl aller neuen Font Awesome Icons inkl. Filterfunktion
* Fix: Z-Wave Assozationen konnten nicht gelöscht werden
#### SymOS
* Neu: Aktuell kann eine /mnt/system/.wireguard erstellt werden, die dann beim Start korrekt geladen wird und den wg0 aktiviert. Wir werden dies noch erweitern, sodass die Config Datei direkt über UI im SymOS geändert werden kann und auch zur Laufzeit übernommen wird.
#### PHP-SDK
* Neu: Font-Awesome Pro Icons (Light/Brands) können direkt verwendet werden
* Fix: SelectValue in Konsole korrigiert
* Fix: CheckBox wird bei disabled = false korrekt dargestellt
### Aktualisierte Module
#### Rechenmodule
* Neu: Modul zum Skalieren zwischen zwei Wertebereichen
#### Report Modul
* Fix: Zeige Verbrauch korrekt an, Lücken beim Multi Report sind nun möglich
#### Snom
* Neu: Unterstützung für Expansion Modul
#### Spotify
* Fix: Korrektes Handling der Wiedergabe von gespeicherten Tracks
#### Tailscale VPN
* Fix: Fehlende Übersetzung und Doku-Link ergänzt
## V7.0->V7.1 (Q1/2024)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v70-v71-q1-2024/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* HTML-SDK
* Logikpläne
* Optimierte Darstellungen
* VPN per SymBox
#### HTML-SDK
Das neue HTML-SDK ermöglicht es Entwicklern individuelle Darstellungen für ihre Module anzubieten. So werden ganz neue Darstellungen wie die Wärmepumpe oder Anwesenheitsanzeige ermöglicht, welche die Kachel Visualisierung noch einmal aufwerten.

#### Logikpläne
Jeder entwickelt seine Automationen anders. Der eine erfreut sich am unkomplizierten Konfigurieren und Analysieren von Ablaufplänen, der andere genießt die Flexibilität von PHP-Skripten. Insbesondere Elektriker denken wiederum in Schaltplänen. Und auch diese Art der Automation wird nun für alle als Logikplan nutzbar.
Die bisherigen IPSWorkflows von IPSView kommen als Logikpläne fest nach IP-Symcon und können uneingeschränkt verwendet werden und bieten so noch mehr Möglichkeiten die optimale Automation zu generieren. Die Dokumentation ist auch bereits migriert: [Logikpläne](https://www.symcon.de/de/llms/concepts/automations.md)

#### Optimierte Darstellungen
Mit der Version 7.1 kommen auch einige neue Möglichkeiten für die Kachel Visualisierung. Nun kann die Darstellung von Kategorien individuell angepasst werden. Damit können beispielweise die Kategorien auf einer Startseite als Kachel mit Bild dargestellt werden, während sie auf Unterseiten als Kategorieleiste genutzt werden. In diesem Rahmen kommen auch die aus dem WebFront bekannten Inhaltswechsler zurück, welche eine neue mögliche Darstellung für Kategorien sind.
Auch die Energieverteilung bietet diverse neue Möglichkeiten. Insbesondere ist es nun möglich mehrere Einträge gruppiert werden, sodass fünf separate Verbraucher platzsparend gestapelt dargestellt werden können. Die individuellen Verbräuche sind weiterhin via Auswahl platzsparend auslesbar.

#### VPN (WireGuard) in der SymBox
Mit dem aktualisierten SymOS kann VPN über WireGuard/TailScale auf der SymBox eingerichtet werden. Damit kann auch aus der Ferne auf das Netzwerk hinter der SymBox zugegriffen werden. Dies ermöglicht eine unkomplizierte Konfiguration der entfernten Geräte, wodurch die Wartung deutlich vereinfacht wird.

### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Neu: Liste in der Connect Control Instanz, um für alle Visualisierungen den QR-Code anzeigen zu lassen oder diese direkt zu öffnen
* Neu: Variablen unterhalb der Energieverteilung können deaktiviert werden
* Neu: In der Kachel-Visualisierung Instanz gibt es einen Button, um diese die Kachel Visualisierung statt dem WebFront als Standard zu setzen. Das WebFront ist dann weiter über /legacy/ verfügbar.
* Neu: Spezialschalter „ArchiveRecordLimitBool“ entfernt. Es gilt immer „ArchiveRecordLimit“.
* Fix: Bei AC_FetchChartData* werden beim Erreichen der Limits die Fehler korrekt geworfen
* Fix: Laden der php.ini robuster gemacht bei fehlerhaften Einträgen
* Fix: $_IPS[‚CONFIGURATOR‘] wieder verfügbar, wenn auf dem WebFront eine Variablenaktion ausgeführt wurde
* Fix: Doku Link für Kachel-Visualisierung korrigiert
* Fix: Einige undokumentierte WFC_* Funktionen wie Visibility funktionierten nicht mehr korrekt seit einigen Versionen
* Fix: Rate Limit für Google Assistant Status Reports erhöht
* Fix: WebHook/OAuth Registrierung robuster gestaltet
#### Geräte
* Neu: MQTT Konfiguratoren ermitteln den Datentyp so gut es geht automatisch für die Erstellung der Geräte-Instanzen
* Neu: M-Bus: Neue MBUS_UpdateValuesEx Funktion zum Abfragen spezieller Daten
* Neu: CMI: Für UVR610 wird der DL-Bus ebenfalls abgefragt
* Neu: OPCUA: Konfigurator stark verbessert
* Neu: OPCUA: RequestedMaxReferencesPerNode auf 100 gesetzt, da einige Geräte mit 0 (=Ohne Limit) nicht korrekt umgehen
* Neu: LCN Shutter: Bei Relais Ansteuerung wird nur noch 1 Kommando statt 2 gesendet
* Neu: Unterstützung für neues eHZ LAN Gateway (für Lastgangzähler nach IEC 62056), welches wir auf der Light+Building zeigen werden
* Neu: ModBus: TimeoutTime Property auf Gateway Ebene, um die Wartezeit in Sekunden anzugeben (Aktuell nur über IPS_SetProperty verfügbar)
* Fix: KNX: Sporadische Probleme bei KNX/IP (TCP/Secure) Verbindungen gelöst
* Fix: EnOcean: Power/Energy Measurement für D2-01-0E korrigiert
* Fix: ModBus: VALUES bei virtuellen Adressen enthalten jetzt die Ergebnisse der vorherigen virtuellen Lesevorgänge
* Fix: KNX: Disconnect Request wurde nicht korrekt beantwortet, sondern eine Fehlermeldung im Meldungsfenster geloggt
* Fix: Sync Remote: Fehlermeldungen beim Schalten über die Visualisierung gelöst
* Fix: Sync Remote: Fehlermeldungen beim CSV Export gelöst
* Fix: Sync Remote: Medien (Bilder) werden jetzt korrekt übertragen
#### Kachel Visualisierung
* Neu: Gruppieren in der Energieverteilung muss explizit aktiviert werden
* Neu: Bessere Performance beim Rendern von Kachelansichten
* Neu: Im Navigationsmenü kann zwischen den Visualisierungen des aktuellen Servers gewechselt werden
* Neu: Darstellung des Wochenplans in einzelner Kachel optimiert
* Neu: Visualisierungen eines Servers müssen nicht mehr explizit eingerichtet werden (App)
* Neu: Name der Visualisierung wird im Tab-Titel angezeigt (Web)
* Neu: Checkboxen in Chart Legende zusammengefasst
* Neu: Minimale Laufzeit für Skript-Buttons
* Neu: ‚Z2M.occupied_heating_setpoint‘ Profil funktioniert für Heizungskacheln Temperatur
* Neu: IPSView nimmt die ganze Kachel ein (Benötigt noch Anpassungen von @Brownson)
* Neu: ‚Lamella/Shutter.Reversed‘ wird unterstützt
* Neu: Werte der Energieverteilung werden jetzt nach Typ gruppiert
* Neu: Bunte Emojies
* Neu: Energieverteilung bietet mehrere Variablen pro Gerät an und ermöglicht die Berechnung für Gruppen anzupassen
* Neu: Neue Logik zur Verbindung zum Server
* Wechseln zwischen Verbindungen verbessert
* Neue Ansicht mit Log bei Neuverbindung
* Verständlichere Fehlermeldungen
* Neu: Farbe des Speichers in der Energieverteilung angepasst (seit 7.1)
* Neu: Höhe des Diagramm-Dialogs angepasst
* Neu: CSV Export
* Neu: Aktualisierungsrate der Begrüßung verbessert
* Neu: Deep-Linking: QR-Codes können von anderen Apps gescannt werden
* Neu: Fehlermeldung beim Schalten werden unten als rote Meldung dargestellt und nicht mehr gestapelt
* Neu: Eine eventuelle Rückgabe von Automationen wird als Dialog angezeigt
* Neu: Zeige mehr Informationen beim Versuch die Verbindung via App herzustellen an
* Neu: Die Darstellung einzelner Kacheln kann aus dem Editier-Modus heraus verändert werden
* Neu: Darstellungen für Kategorien:
* Kategorien können unabhängig voneinander in der Kategorieleiste oder als einzelne Kachel dargestellt werden
* Neu: Inhaltswechsler
* Es kann ausgewählt werden, welche Objekte im Inhaltswechsler angezeigt werden sollen
* Elemente können nach einer festgelegten Zeit automatisch gewechselt werden
* Neu: Für Listendarstellung von Instanzen: Nach Veränderung der aktiven Elemente werden neue Kinder automatisch angezeigt
* Neu: Sollte versucht werden mehr HTML-Inhalte anzuzeigen als technisch Möglich, wird ein passender Fehler angezeigt.
* Neu: Leistungsmodus der Energieverteilung wird gespeichert und wurde um statische Pfeile ergänzt
* Neu: Aus dem Popup der Energieverteilung können Charts geöffnet werden
* Neu: Wenn keine automatische Verbindung möglich ist, wird ein Button zum Neuverbinden angeboten
* Neu: Energieverteilung
* Netz: Überschuss wird mit Verbrauch verrechnet
* Hat ein Gerät mehrere Variablen werden beide im Popup angezeigt
* Fix: Chart-Buttons werden nicht mehr hinter Instanzen angezeigt
* Fix: Anpassung der Skalierung des Logos in der Energieverteilung
* Fix: Änderungen an Kategorien werden in der Kategorieleiste richtig angezeigt
* Fix: Schieberegler stellen sich nun korrekt zurück, falls die Schaltoperation fehlschlägt
* Fix: Namen einzelner Geräte werden in der Energieverteilung korrekt angezeigt
* Fix: Schieberegler dürfen eine Schrittweite von 0 haben
* Fix: Nicht-Geräte-Instanzen können verlinkt werden
* Fix: Schnellwechsel nur für mehrere Visualisierungen verfügbar. Deaktivierte Visualisierungen sind deaktiviert
* Fix: Autofill für Passwortdialog (Web-Only)
* Fix: Fehler bei der Darstellung einer bei der Variablen gelöscht wurden
* Fix: Einstellungen verlinkter Charts werden korrekt gespeichert
* Fix: initial Anzeigen bei Charts wird berücksichtigt
* Fix: Fehler wird angezeigt, wenn die aktuelle Kategorie gelöscht wurde
* Fix: Minimaler Größenunterschiede der Kacheln behoben
* Fix: Link zur Doku führt zur Doku und nicht in Forum
* Fix: Fehlermeldung bei fehlenden Variablen im Chart
* Fix: Uhrzeit in der Appbar aktualisiert sich sekündlich
* Fix: Fehler bei automatischer Kachelauswahl
* Fix: Präziser Farbwahl-Dialog funktioniert jetzt korrekt
* Fix: Fehler in Verbindung mit dem ‚~Temperature.Difference‘ und ‚~Temperature.Fahrenheit‘ Profilen behoben
* Fix: Slider ohne Schrittweite
* Fix: Konfiguration Synchronisation auf mehreren Geräten
* Fix: Charts mit widersprüchlichen Einstellungen in der Instanzkonfiguration
* Fix: Fehler beim verschieben von Kacheln
* Fix: Seitenübergangsanimationen reduziert (Web)
* Fix: String-Eingabe zeigt die Korrekte Tastatur auf Samsung Geräten an (App)
* Fix: Breitenabschätzung von Aufzählungen in Listen korrigiert
* Fix: Auf älteren Geräten, die kein WebAssembly unterstützen, wird eine passende Fehlermeldung angezeigt, dass die
* Visualisierung auf diesen Geräten nicht unterstützt wird
* Fix: Bei Diagrammen in den Apps mit Legenden in der Seitenleiste heben beim Hovern den korrekten Bereich hervor
* Fix: Bei Visualisierungen mit langem Namen wird dieser im Navigationsmenü passend gekürzt
* Fix: Höhe des Headers des Navigationsmenüs wird in den Apps korrekt dargestellt
* Fix: Sehr lange Strings werden in der Darstellung gekürzt, können in TextBoxen aber komplett geladen werden
* Fix: Stream Kachel zeigt Fehlermeldung, wenn Stream kein RTSP/RTSPS ist
* Fix: Schieberegler in Dialogen aktualisiert springe nicht mehr zurück
* Fix: Fehler behoben, der beim Löschen von Benachrichtigungen auftreten konnte
* Fix: Schließe Verbindungen zum Server, wenn Visualisierung nicht geladen werden kann
* Fix: Instanzen deren Darstellungstyp geändert wurde aktualisieren sich korrekt
* Fix: Bei Verbindung zum lokalen Netzwerk und späterem Wechsel auf Connect wird das gespeicherte Kennwort verwendet
* Fix: Korrektes Handling bei der initialen Erstellung eines Links in der Hauptkategorie
* Fix: HTML-Boxen aktualisieren sich auch bei Variablenaktualisierung
* Fix: Verhindere einige Verbindungsabbrüche
* Fix: Inhaltswechsler
* Hintergrundfarbe wird von Variablen übernommen
* Titelgröße wird für jedes Objekt berechnet
* Fix: Legenden werden nach Instanz-Einstellungen geladen
* Fix: Fehler behoben, wenn Variablen in der Diagramm-Legende gefiltert und ausgewählt werden
* Fix: Multigraphen werden korrekt in Inhaltswechslern angezeigt
* Fix: Authentifizierung für HTML-Boxen in Apps hinzugefügt
* Fix: Button zum neu verbinden funktioniert wie vorgesehen
* Fix: Links auf die Hauptkategorie werden angezeigt
* Fix: Neue Visualisierungen mit Passwörtern können wieder geöffnet werden
* Fix: Neu hinzugefügte Server werden korrekt gespeichert
* Fix: Füge Timeouts bei Verbindungsversuchen hinzu, damit diese nicht hängen bleiben
* Fix: Verbesserte Performance bei Graphen mit sehr vielen Variablen
* Fix: Stelle Zeiten im CSV-Dialog wie vorgesehen in der Zeitzone des Servers dar
* Fix: Direkte Links auf passwortgeschützte Visualisierungen funktionieren wieder
* Fix: String Variablen werden in den Zusatzinformationen der Energieverteilung korrekt angezeigt
* Fix: Ungültige Variable in Begrüßungszeile wird korrekt abgefangen
* Fix: Performance von Charts mit vielen Variablen verbessert
* Fix: Darstellung der Zeit im CSV-Dialog korrigiert
* Fix: Darstellung von Enumerationen in Listen verbessert
#### WebFront
* Fix: Assoziationen mit Platzhaltern und Aktion zeigen immer den korrekten Variablenwert an (konsistent zur neuen Visualisierung)
* Fix: IPSView Views konnten nicht geöffnet werden, wenn /legacy/ verwendet wurde
#### Konsole
* Neu: Zeige beim Speichern der Debug-Ausgaben in eine Datei den Ort dieser Datei an
* Neu: Kopieren/Ausschneiden/Einfügen/Verlinken via Kontextmenü funktioniert nun analog zu Strg + C/X/V/L
* Neu: Dokumentation „Button“ in der Konsole öffnet die Dokumentation automatisch in der korrekten Sprache
* Neu: Zeige Logikpläne als Automation immer an und installiere bei Bedarf die benötigten Module aus dem Module Store
* Neu: Konfiguration der Spalten bei PHP-Information wird gespeichert
* Fix: Zeige korrekten Titel im Dialog beim erstellen von Kategorien via Alt + 0
* Fix: Seltenen Fehler korrigiert, der beim Einklappen von unsichtbaren Knoten auftreten konnte
* Fix: Beim Abdocken von IPSView kommt immer der Hinweis, wenn es ungespeicherte Änderungen gibt
* Fix: Neu hinzugefügte Visualisierungen werden im Visualisierung-Widget korrekt hinzugefügt
* Fix: String-Variablen können nun aus der Konsole reaggregiert werden (auch wenn dies lediglich die Rahmendaten wie Start- und Endzeit neu berechnet)
* Fix: Im Module Store konnte bei Modulen aus der Vorschau fälschlicherweise ein Update angezeigt werden wenn auf dem eigenen System eine Beta- oder Testversion installiert ist, dies wurde behoben
* Fix: Bei Sortierung nach Namen in der Timer Information wird nun primär nach Namen und nicht mehr nach Pfad sortiert
* Fix: IPSView Updates können nur installiert werden, wenn eine gültige IPSView Subskription vorhanden ist
* Fix: Verdichtung für String Variablen korrekterweise deaktiviert (Nur für Bool/Int/Float verfügbar)
* Fix: Behebe Typo beim sicheren Löschen
* Fix: Korrigiere Meldung, wenn ein Logikplan erstellt wird, das benötigte Modul aber noch nicht installiert ist
* Fix: Wird die Prüfung beim sicheren Löschen abgebrochen wird wie vorgesehen der gesamte Löschvorgang abgebrochen
* Fix: Korrigiere Validierung, ob das Modul zu einer Instanz existiert
* Fix: Verhindere Fehler beim Bearbeiten von mehreren Ereignissen mit unterschiedlichen Aktionen
* Fix: Springe wie vorgesehen zur letzten Position bei Objektauswahlen, wenn das aktuell ausgewählte Objekt nicht (mehr) existiert
* Fix: Cache LocationControl ID im Location Widget (Verbessert die Performance massiv auf Systemen mit sehr viel Variablenänderungen)
#### Pro Konsole
* Neu: Bibliotheken auf die neuste Version aktualisiert (Es wird mind. Windows 8 und Windows Server 2012 benötigt)
* Neu: Beim Hinzufügen von Servern kann das System mit angegeben werden
* Neu: SymOS Connect für KNX für SymBox’en direkt integriert
* Neu: SymOS Connect für LCN für SymBox’en direkt integriert
#### SymOS
* Neu: WireGuard im Kernel aktiviert (wg utility ist auch verfügbar)
* Neu: Kernel auf 6.1.61 aktualisiert
* Neu: SymOS Connect für KNX ist offiziell verfügbar
* Neu: SymOS Connect für LCN ist offiziell verfügbar
* Neu: VPN über Tailscale Modul verfügbar
* Fix: In manchen Situationen wurde der verfügbare Speicherplatz nicht korrekt ermittelt
#### PHP-SDK
* Neu: HTML-SDK für die Kachel Visualisierung
* Neu: Copy & Paste innerhalb von List und Tree via Strg + C/Strg + V möglich
* Neu: Configurator unterstützt nun align und sortColumn analog zu List/Tree
* Neu: link/download darf auch in Listen auf Column Ebene gesetzt werden
* Neu: SelectCondition unterstützt die Eigenschaft „caption“
* Neu: SelectAction verbessert mit Auswahl zwischen generellen Aktionen und Aktionen mit Ziel
* Neu: Analog zu SelectCondition unterstützt nun auch SelectAction das Feld „caption“
* Fix: description bei QrCode funktioniert jetzt wie vorgesehen
* Fix: onClick wird nun wirklich nur bei angezeigtem leeren Text und nicht bei einem „falsey“ deaktiviert
* Fix: Bei on-Skripten und einer Liste ohne ausgewählte Zeile und add-Werte wird die aktuelle Zeile nun wie vorgesehen mit null initialisiert
* Fix: Verhindere Fehler, wenn in einem Konfigurator die Sortierung deaktiviert wird
* Fix: SelectAction verwendet wieder wie vorgesehen die gesamte verfügbare Breite
### Neue Module
#### ekey bionyx
* Integration von ekey bionyx Geräten direkt in IP-Symcon
* IP-Symcon empfängt die Aktivitäten des Fingerscanners über Webhooks
#### Snom
* Integration von Snom Geräten direkt in IP-Symcon
### Aktualisierte Module
#### Amazon Alexa
* Fix: Korrektes Handling mit PHP 8.2
#### Anwesenheits-Simulation
* Fix: Anpassungen für IP-Symcon 7.0
#### Benachrichtigung
* Fix: Einige kleinere Fehler behoben
#### Energieverbrauch Optimierer
* Neu: Unterstützung für E-Autos
#### GARDENA smart system
* Fix: Intervall für die Gerätesuche erhöht
#### Google Assistant
* Fix: Korrektes Handling von PHP 8.2
#### Spotify
* Neu: Profile angepasst, damit sie mit dem Mediaplayer der neuen Visualisierung kompatibel sind
#### Text to Speech (AWS Polly)
* Fix: Unterstützung für IP-Symcon 7.x
## V6.4->V7.0 (Q4/2023)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v64-v70-q4-2023/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* Neue Visualisierung
* Integriertes Energie-Management
* SymBox Pro mit KNX Data Secure
* Stark verbesserte ModBus Anbindung
#### Neue Visualisierung
Die neue, moderne Visualisierung im Kachel-Design ist ab sofort verfügbar. Mit hellem und dunklem Design, Drag&Drop Editor zum Positionieren der Kacheln und vielen spezialisierten Kacheln für die relevantesten Anwendungszwecke. Verfügbar für Web, iOS und Android bietet es eine plattformübergreifende, konsistente Darstellung. Eine Demo ist unter https://demo.symcon.de verfügbar!
Um die neue Visualisierung nutzen zu können, muss einfach eine neue Instanz vom Typ "Kachel Visualisierung" erstellt werden.
Download für iOS: https://apps.apple.com/de/app/symcon-visualization/id1566124129
Download für Android: https://play.google.com/store/apps/details?id=de.symcon.visualization

#### Integriertes Energie-Management
PV-Überschuss Optimierung mit wenig Aufwand! Der neue [Energieverbrauch-Optimierer](https://www.symcon.de/de/llms/modules/energy-manager.md) und die Energieverteilung in der neuen Visualisierung helfen die vorhandene Energie optimal zu verbrauchen. Die neue Darstellung gibt dabei immer den Überblick über alle Werte. Vorlagen für ModBus machen die mehrfache Einrichtung zum Kinderspiel.

#### SymBox Pro mit KNX Data Secure
Die SymBox Pro ist ab sofort offiziell von der KNX Association zertifiziert und ist im Produktkatalog der ETS auffindbar. Dadurch können Gruppenadressen direkt auf den Tunnel der SymBox Pro gezogen werden, womit sich Filtertabellen und die KNX Data Secure Verknüpfungen vollständig automatisch konfigurieren. Ein Video zur Einrichtung ist auf unserem YouTube Kanal zu finden: https://www.youtube.com/watch?v=aA8mcKEyHOY&t=1s

#### Stark verbesserte ModBus Anbindung
Die ModBus Anbindung wurde überarbeitet, sodass direkt alle Adressen eines Geräts in einer Liste eingetragen werden können inklusive aller Namen, Parameter und Übersetzungen der Namen. Zusätzlich kann die Gerätekonfiguration jederzeit Exportiert und Importiert werden, wodurch die Einrichtung mehrerer Geräte ein Kinderspiel wird und die Vorlagen auch in unserer Community geteilt werden können. Wir haben im ersten Schritt Vorlagen für die Wallboxen/Ladesäulen von [Mennekes](https://www.symcon.de/de/llms/modules/alfen.md), ABL, KEBA und ALFEN erstellt, welche in der Dokumentation heruntergeladen werden können. Die bereits geteilten Vorlagen aus der Community sind hier zu finden: https://community.symcon.de/c/86

### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
- PHP wurde von 7.4 auf 8.2 aktualisiert. Insbesondere Nutzer der IPSLibrary/IPSLogger sollten VOR dem Update auf IP-Symcon 7.0 diese aktualisieren. Notfalls können die notwendigen Änderungen manuell nachgepflegt werden [(Details)](https://community.symcon.de/t/ips-7-0-und-ipslibrary/133455/2). Die meisten PHP-Module wurden bereits aktualisiert, sodass diese bereits mit IP-Symcon 7.0 kompatibel sind.
- Unter Windows wurden einige selten verwendete PHP-Extensions entfernt, sodass aktuell nur noch IMAP, OCI, PGSQL und SNMP optional installiert werden können. Die meisten anderen PHP-Extensions sind bereits standardmäßig auf allen Plattformen inkludiert [(Details)](https://community.symcon.de/t/php-8-4-extensions-windows/134669).
- Die Pfade zum /user/ und /skins/ Ordner werden beim Upgrade verändert, sodass diese auf der Hauptebene und nicht mehr im /webfront/ liegen. Ggf. müssen PHP-Skripte angepasst werden, die auf diese Ordner hart kodiert zugreifen.
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Neu: Neue Visualisierung verfügbar (Siehe: https://community.symcon.de/t/133822)
* Neu: Neue Streams-Integration in der neuen Visualisierung inkl. 4K Support (Siehe: https://community.symcon.de/t/134356)
* Neu: PHP 8.2
* Neu: Einige selten genutzte PHP-Erweiterungen unter Windows entfernt
* Neu: Einige Profile für Rollladen/Lamellen verbessert, sodass direkt die neue Kachel in der Visu verwendet wird
* Neu: Spezialschalter "DefaultVisualization", mit der man einstellen kann, welche Visualisierung standardmäßig geöffnet wird (0 = WebFront, 1 = Tile)
* Neu: Spezialschalter "CompatibilityDeprecations", um auch die Deprecations wie utf8_* von PHP 8.2 zu aktivieren
* Neu: Spezialschalter "DisableLogfile", um das Logfile fast komplett zu deaktivieren
* Neu: Alle Bibliotheken aktualisiert. (z.B. auch OpenSSL auf 3.0)
* Neu: Fehlende Icons für UnixTimestamp*, HexColor, TWColor ergänzt
* Neu: Konstante SCRIPTTYPE_IPSWORKFLOW hinzugefügt
* Neu: Konstante MEDIATYPE_IPSVIEW hinzugefügt (ersetzt MEDIATYPE_FORM)
* Neu: Bei (z.B. UTF-8) Fehlern im Datenfluss wird die Meldung nur einmal für alle verbundenen Instanzen geloggt und zusätzlich mit mehr Informationen ausgegeben
* Neu: Das Neuverbinden von fehlerhaften Instanzen verbessert und konfigurierbar gemacht
* Neu: Weitere Modulnamen werden jetzt übersetzt (z.B. Energieverteilung)
* Neu: ModBus ASCII wird unterstützt (für z.B. ABL eMH1)
* Neu: KNX: DPT 14.080
* Neu: KNX: DPT 21.1002, 21.1200, 21.1201
* Neu: KNX: DPT 205.103
* Neu: KNX: DPT 275.100
* Neu: KNX: Passwort für Secure Schlüsselbund wird überprüft (und ggf. fehlerhaft gemeldet)
* Neu: DMX: Option zum Dauerhaften senden von Paketen hinzugefügt
* Neu: Bibliothek für VideoStreams+VoIP aktualisiert (Löst hoffentlich die Abstürze bei den Streams)
* Neu: Farbtemperatur und Temperatur Regler werden auch in Listen eingefärbt
* Neu: Bei Auswahl der Demo kann die Visualisierung gewählt werden
* Neu: Unterstütze Übersetzung der Visualisierungsnamen (Enterprise)
* Neu: Verbesserter Precheck für veraltete IPSLibrary/IPSLogger in der autoload.php
* Neu: ModBus: Neuer STRING (HEX) Datentyp, um Binärdaten auszulesen
* Neu: ModBus: Virtuelle Adressen werden nach den normalen Adressen positioniert
* Neu: ModBus: „null“ Werte bei virtuellen Adressen werden als fehlender Wert interpretiert
* Neu: ModBus: Beim Schreiben in virtuellen Adressen ist nun $VALUES verfügbar mit den aktuellen Werten
* Fix: ModBus: Manuell erstellte Variablen unterhalb der Geräte-Instanz werfen keine Fehler mehr
* Fix: ModBus: Leere „Leseaktion“ bei virtuellen Adressen funktioniert wie erwartet
* Fix: Workaround für defekte php.ini nach Upgrade unter Windows
* Fix: Sofern NATSupport in den Spezialschaltern aktiv ist, wird der Spezialschalter NATPublicIP den mobilen Apps ebenfalls mitgeteilt
* Fix: Der Demoserver wird nicht als Server abgespeichert
* Fix: Baumauswahl im Drawer wird erst bei Bedarf geladen und unterstützt so deutlich umfangreichere Bäume
* Fix: Aktualisiere Änderungen an Kategorienamen innerhalb der Kategorieleiste
* Fix: Zeige Legende in Graphen an der Seite korrekt an, falls Bedienungselemente ebenfalls an der Seite sind
* Fix: Datumsauswahldialoge über HTML Boxen funktionieren wie vorgesehen
* Fix: Problem mit HTMLBox über HTMLBox gelöst
* Fix: ModBus: Überspringe Inf/NaN Werte, damit Vorlagen bei diesem nicht kritischen Fehler weiter abfragen. (Der Wert wird nicht in die Variable geschrieben und ein Hinweis ins Debug Log notiert)
* Fix: BACnet: Dekodieren von UCS-2 Zeichenketten korrigiert (Dadurch konnte der Einlesevorgang der Datenpunkte abbrechen/stecken bleiben)
* Fix: Geräte für Benachrichtigungen können in den Visualisierung Instanzen bearbeitet werden
* Fix: KNX: SymBox mit KNX wird in der Discovery Instanz korrekt angezeigt
* Fix: Precheck für autoload.php nach hinten verlegt, sodass alle Kernel Module verfügbar sind
Fix: UVR610 unterstützt ebenfalls M-Bus abfragen
* Fix: Absturz korrigiert, wenn eine Ereignis Bedingung gelöscht wurde, die nicht existierte
* Fix: "cert" Ordner wird nicht mehr erstellt, der seit langem nicht mehr genutzt wurde
* Fix: Löschen von Skripten/Medien bewegt diese wieder in den ‚deleted‘ Order (seit 6.3)
* Fix: __generated.inc.php wird jetzt vorab generiert und dann getauscht und löst dadurch Fehlermeldungen beim ModuleReload
* Fix: Intensity.1 Profile benötigte keine Nachkommastellen
* Fix: Security-Context für Visu’s wurde zu restriktiv berechnet, sodass Objekte unterhalb von Variablen, die mit Ereignissen verknüpft waren, manchmal nicht angezeigt wurden
* Fix: Manuelles Auslesen von Lizenz Informationen im Util Control wieder möglich
* Fix: ModBus Geräte konnte nicht mehr konfiguriert werden, da dynamische Formulare nicht geladen wurden (seit letztem Update)
* Fix: CORS Fehler korrigiert beim Laden von Schriftarten in HTMLBoxen
#### Geräte
* Neu: ModBus: Stark verbesserte Anbindung mit Im/-Export Funktion für Vorlagen
* Neu: ModBus: Byte Order wurde im Splitter entfernt und ist jetzt nur noch in den Geräte/Coil/Adress Instanzen verhanden. Zusätzlich kann in der Geräte Instanz die Byte-Order pro Adresse überschrieben werden
* Neu: ModBus: Byte Order Optionen „Little Endian“ und „Big Endian (Byte Swap)“ hinzugefügt
* Neu: EnOcean: Zusätzliche Werte für STM550 (D2-14-41) verfügbar
* Neu: JSON Dekoder/MQTT Device: Option zum Sperren der Variablen, sodass keine Variablen erstellt/gelöscht werden bei falschen Datenpaketen
* Neu: KNX: Setzen der physikalischen Adresse/programmieren der Applikation verbessert (Nur SymBox)
* Neu: LCN: Sperren für Regler können in der Visu ausgewertet/gesetzt werden
* Neu: SMTP Unterstützt senden von HTML, wenn und im Inhalt gefunden wird
* Neu: WebSocket Client und WebHooks unterstützen den binären Datentransfer
* Fix: SSE Client (z.B. für Philips Hue V2) erkennt Verbindungsabbrüche besser
* Fix: Hinweis im HTTP Client bzgl. Kompatibilität korrigiert
* Fix: M-Bus: Bei Dekodierfehlern einzelner Felder, wird nicht die gesamte Verarbeitung abgebrochen
* Fix: RegVar_SendText in Kombination mit ServerSocket korrigiert
* Fix: Z-Wave: Wenn ein Gateway überlastet ist und Pakete „gedroppt“ hat, breche nach „Retry“ Fehlversuchen ab, anstatt es weiter zu versuchen
* Fix: MQTT: Topics werden korrekt auf UTF-8 Konformität geprüft und mit besserer Fehlermeldung bemängelt
* Fix: DigitalStrom: Einige Binärtypen ergänzt
* Fix: ServerSocket: Timeout beim TLS Handshake implementiert, sodass dieser nicht mehr feststecken kann bei instabilen Verbindungen
* Fix: VoIP: Bei vielen ausgehen Anrufen konnte die ConnectionIDs durcheinander geraten
* Fix: EnOcean: Verbessertes Profil für Backup Battery (D2-14-41)
* Fix: KNX: Absturz korrigiert, sofern fehlerhafte Pakete ohne Daten empfangen wurden
* Fix: KNX: Erkannte Gruppenadressen für Statusrückmeldungen werden nicht doppelt hinzugefügt
#### WebFront
* Neu: DWD kann nun auch Vertikal dargestellt werden (Option verfügbar im Editor)
* Neu: Wenn standardmäßig die neue Visualisierung aktiv ist, kann das WebFront über /legacy/ erreicht werden
* Neu: /webfront/user Ordner wird nach user migriert
* Neu: /webfront/skins Ordner wird nach skins migriert
* Fix: Rote Fehlermeldung, welche beim Start kurz aufflackern konnte, wurde korrigiert
#### Konsole
* Neu: Visualisierungs-Widget unterstützt nun auch die neue Visualisierung
* Neu: IPSWorkflow wird nach der Konvertierung direkt geöffnet
* Neu: Dialoge können nun in der webbasierten Konsole vergrößert werden (bisher nur in der Pro Konsole möglich)
* Neu: Übersetzungen für Modulnamen/-aliasse werden geladen (noch nicht ganz vollständig für interne Module)
* Neu: Moduldaten werden lokal gehändelt, wodurch beispielsweise Konfiguratoren deutlich schneller arbeiten
* Fix: Erkennung von korrekten E-Mail-Adressen für Benutzernamen im Infodialog korrigiert
* Fix: Verhindere eine falsche Ziel-ID beim mehrfachen Öffnen eines Ereignisses
* Fix: Zeige bei Ereignissen beim Öffnen eine Meldung an, falls die aktuelle Aktion nicht zum Zielobjekt passt
* Fix: Update Widget funktioniert nun auch korrekt für Docker armhf/arm64
* Fix: Verhindere Fehler im Auswahlbaum, wenn ein Schnellfilter gesetzt ist und neue Objekte hinzugefügt werden
* Fix: Vorschau von Bildern funktioniert nun auch bei Bildern mit Großbuchstaben in der Dateiendung
* Fix: SelectCondition wird nun insbesondere in Listen korrekt dargestellt, wenn die betroffene Variable nicht mehr existiert
* Fix: Wird man vom Testing-Kanal wieder ausgeladen, so verhält sich der Module Store so als wenn der Kanal geschlossen wäre
* Fix: Duplizieren oder Verschieben mit aktivem Schnellfilter funktioniert nun wie vorgesehen
* Fix: Keine Fehlermeldungen mehr beim Verschieben des Browserfensters
* Fix: Sortierung auf Spalten wie Editieren/Löschen ist nicht mehr möglich
* Fix: Besserer Fehler, falls Skripte durch Popup-Blocker o.ä. geblockt werden
* Fix: Vorschau von GIFs funktioniert nun
* Fix: Bei fehlerhaft geladenen PHP-Modulen wird jetzt eine bessere Fehlermeldung angezeigt
* Fix: Bei fehlhaften dynamischen Formularen in Listen von PHP-Module wird eine bessere Fehlermeldung angezeigt
* Fix: Beim Öffnen der Konsole werden gemerkte Tabs, die fehlerhaft sind, automatisch geschlossen anstatt irreführende Fehler anzuzeigen
* Fix: Tooltip im Skript Editor funktioniert wieder korrekt
* Fix: Copy&Paste im Skript Editor funktioniert korrekt, wenn in der Pro Konsole mehrere offen sind
#### SymOS
* Neu: IP-Adresse kann ohne vollständiges Recovery geändert werden ([Dokumentation](https://www.symcon.de/assets/files/product/symbox.pdf), Kapitel 5.7)
* Fix: fnmatch Funktion fehlte auf der SymBox
* Fix: Beim Neustart von IP-Symcon konnte fälschlicherweise eine Fehlermeldung auftreten, dass IP-Symcon bereits gestartet sei, obwohl dies nicht der Fall war
* Fix: WebFronts zu Visualisierungen umgenannt
* Fix: Resize der Partition/Dateisystem konnte bei SymBoxen, die in den letzten Wochen verkauft wurden, unvollständig sein. Das SymOS erkennt dieses Problem und fordert zur Korrektur auf. (Die SymBox’en, welche standardmäßig mit einer neueren SymOS Version ausgeliefert werden, kann man gut an dem neuen Sticker mit der Seriennummer/MAC-Adresse auf der Rückseite erkennen)
* Fix: Sofern die Integrator Weiterleitung aktiv war, konnte man sich nicht korrekt über SymOS Connect einloggen
* Fix: SymOS konnte Abstürzen, wenn Subskription über das Jahr 2038 hinaus ging
#### PHP-SDK
* Neu: Preview für IPSModuleStrict verfügbar
* Neu: Parameter "form" für List/Tree ermöglicht individuelle Bearbeiten-Dialoge ([Dokumentation](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md))
* Neu: Neues Element QrCode um QR-Codes darzustellen ([Dokumentation](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md))
* Neu: Ist bei einer List/Tree keine Zeile ausgewählt, werden die add-Werte übergeben
* Neu: IPSModuleStrict bietet RegisterHook und RegisterOAuth (damit entfallen die alten Workarounds mit WebHookModule und WebOAuthModule und Einträge von Modulen werden damit automatisch aufgeräumt)
* Neu: Migrate Funktion zum Migrieren der Persistenz (=Attributen/Properties) ([Dokumentation](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md))
* Neu: Bei Configurator ist eine Kategorie wählbar unter welcher die Objekte erstellt werden sollen
* Neu: Parameter „download“ für Elemente mit on-Callbacks um Downloads zu ermöglichen
* Neu: Modulname und Aliasse werden anhand der locale.json übersetzt
* Fix: visible und enabled funktioniert für SelectCondition nun wie vorgesehen
* Fix: Bei dynamischen Formularen in Listen werden „add“ Werte beim Hinzufügen übernommen auch wenn kein dazugehöriges „edit“ Feld vorhanden ist.
#### Enterprise
* Fix: Sync: Version vom Remote darf älter sein. D.h. der Master in 7.0 kann Remotes in Version 6.4 synchronisieren
* Fix: VHost Enterprise Feature funktionierte ggf. nicht korrekt für die iOS App
### Neue Module
#### OCPP
- Integration von OCPP Geräten direkt in IP-Symcon
- Anzeige des Verbrauchs einzelner Ladepunkte
- Anzeige, ob gerade eine Transaktion läuft bei Ladepunkten
### Aktualisierte Module
#### Anwesenheits-Simulation
- Neu: Verwenden von SelectVariable und Hinzufügen einer Status-Spalte
#### Betriebsstundenzähler
- Neu: Preis für Kosten kann aus einer Variable gelesen werden
#### GARDENA smart system
- Fix: Initiale Verbindung korrigiert
- Fix: Überschreiben der Mähdauer korrigiert
#### Home Connect
- Fix: Endlosschleife bei Wiederverbindung
#### JSON Export
- Neu: CORS Header eingefügt um Integration in Web Anwendungen zu erlauben
#### Szenen-Steuerung
- Fix: Szene wird korrekt aufgerufen, auch wenn ein Gerät innerhalb der Szene fehlen sollte
#### Telefonansage
- Fix: Fehler beim Starten korrigiert
#### Verbrauchsverhalten
- Fix: Bessere Vorhersage (Betrachtet nur positive Werte)
#### WebGraph
- Neu: Benutzeroberfläche optimiert
- Fix: Referenzsuche, Kontinuierliche monatliche Darstellung im März korrigiert
## V6.3->V6.4 (Q2/2023)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v63-v64-q2-2023/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* KNX Secure
* Übersichtlichere Diagramme mit mehreren Variablen
* Automatische Backups via FTP
* OPC UA und mehr für Enterprise
#### KNX Secure
Die Anbindung zu KNX wurde um KNX IP Secure und KNX Data Secure Unterstützung erweitert. So wird die Kommunikation von Visualisierung bis zu den Endgeräten auf IP und TP Ebene verschlüsselt und vor unberechtigtem Zugriff geschützt.

#### Übersichtlichere Diagramme mit mehreren Variablen
Die Graphen wurden insbesondere für Graphen mit sehr vielen (z.B. hunderten) Variablen hin optimiert. Werden Variablen ausgeblendet, passen sich die dargestellten Achsen automatisch an die ausgewählten Variablen an und bieten so deutlich mehr Platz für die Verläufe. Darüber hinaus wird die Legende bei vielen Variablen nun als Extraspalte angzeigt und bietet dort diverse hilfreiche Features wie einen Filter oder Buttons zum Ein- oder Ausblenden aller Variablen, wodurch die optimale Auswahl an Variablen unkompliziert und effizient ausgewählt werden kann.

#### Automatische Backups via FTP
Keine Lust mehr auf manuelle Backups? Dank dem neuen Backup-Modul für FTP/FTPS/SFTP muss gar nicht mehr daran gedacht werden. Das Modul erstellt nach Wunsch vollständige oder inkrementelle Backups und speichert diese typischerweise auf einem NAS-, Cloud- oder externen Speicher, damit es im Falle eines Falles wieder eingespielt werden kann.

#### OPC UA und mehr für Enterprise
Auch für unsere Enterprise-Kunden gibt es einige spannende neue Features. Nun können Sie OPC UA Geräte einbinden. Oder verwenden Sie die Sync-Module, welche das Zusammenführen von vielen IP-Symcon Systemen in ein Master System unterstützen.

> **Hinweis:** Die Enterprise-Module sind kostenpflichtige Erweiterungen, welche zu jeder bestehenden IP-Symcon Lizenz erworben werden kann. Für Details steht unser [Vertrieb](https://www.symcon.de/de/kontakt/#BACnet%20Erweiterung) zur Verfügung.
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Neu: Referenzsuche berücksichtigt IPSView’s
* Neu: Spezialschalter zum Überschreiben der genutzten Sprache (Locale)
* Neu: Funktion zum Migrieren von alten IPSWorkflows
* Neu: VoIP_PlayWave validiert die WAV Datei, ob diese Unterstützt wird
* Neu: Neues Profil ~Lamella
* Fix: VoIP_PlayWave funktioniert wieder korrekt (inkl. PlayFinished Event)
* Fix: StartTime wurde auf der SymBox falsch gesetzt, wenn der NTP Server zu langsam ist
* Fix: Beim Beenden vom IP-Symcon Dienst warten wir maximal 5 Minuten auf das Beenden von PHP Threads
* Fix: Löst das DNS-SD Fehler 87 Problem
* Fix: SSDP: Besser Erkennung von Headern mit falscher Groß-/Kleinschreibung
* Fix: Bessere Sanity Check für Datumsfuntionen
* Fix: Installer überprüft, ob QWave verfügbar ist (Betrifft nur Windows Server 2008/2012)
#### Aktionen
* Neu: Aktionen für Addition/Substraktion bei getriggerten Variablen
#### Geräte
* Neu: KNX IP Secure / KNX Data Secure Unterstützung
* Neu: MQTT: Möglichkeit ein abweichendes Topic für Aktionen zu definieren (z.B. mqtt/device/1234/set)
* Neu: xComfort Jalousieaktor (Neue Generation mit mehr Feedback auf Kanal 0)
* Neu: EnOcean D2-14-41
* Neu: OPC UA Client (nur Enterprise)
* Fix: KNX: In Profilen wurde „pulses“ nicht korrekt nach „Impulse“ übersetzt
* Fix: ModBus: DeviceID ist im Formular auf 255 limitiert
* Fix: SetPoint Berechnung beim Eltako FTR65DS, FTR65HS, FUTH55D, FUTH65D korrigiert
#### WebFront
* Neu: Diagramme laden nur noch die wirklich ausgewählten Charts (Damit können z.B. auch 500 Charts in einem Diagramm drin sein und es werden nur die ausgewählten geladen)
* Neu: Diagramme merken sich im WebFront, welche Auswahl in der Legende getroffen wurde
* Neu: Legenden von Diagrammen enthalten auch Boolean Graphen und können somit ausgeblendet werden
* Neu: Listenbasierte Legende enthält Buttons für Alle ausblenden/Alle einblenden
* Neu: Umschalten zwischen Schwebender/Listenbasierter Legende kann über die WebFront Visualisierung Instanz vorgenommen werden im Bereich Darstellung
* Fix: WebFront startet wieder automatisch korrekt bei Neustarts
* Fix: Bessere Erkennung von einem Verbindungsabbruch (insbesondere auf Safari Mobile)
#### Konsole
* Neu: Bedingungen in Listen werden passend formatiert
* Neu: Ändern sich die Werte in listenartigen Elementen einer Instanzkonfiguration bleibt die aktuelle Scrollposition erhalten
* Neu: Speichere im Statuswidget welche Informationen dargestellt werden
* Neu: Variablen mit nicht mehr existierenden Variablenaktionen werden als fehlerhaft markiert
* Neu: Beim Versuch einen veralteten IPSWorkflow zu öffnen wird eine Migration ins aktuelle Format angeboten
* Fix: Stelle Tooltips von langen Strings im Objektbaum korrekt dar
* Fix: Verwende bei der Konfiguration von Diagrammen für Balkengraphen den korrekten Typ für Profile
* Fix: Seltener Fehler, dass der Snapshot nicht geladen werden konnte (wenn mehrere Konsolen offen waren)
* Fix: Mausklicks im Skripteditor landen wieder an der richtigen Position
#### SymOS
* Neu: NTP Einstellungen verbessert, sodass NTP Server auch per DHCP empfangen werden können
* Neu: Connect: Neuer Spezialschalter CheckInterval zum Ändern des Prüfintervalls
* Neu: Bei Logfiles kann mit „Neuste“ direkt an Ende gesprungen werden
* Neu: Unter „Support → System anzeigen“ wird dargestellt, wenn eine RTC in der SymBox verbaut ist
* Fix: Der Zurück Buttons bei Logfiles funktioniert wieder korrekt
* Fix: KNX/ETS: Programmieren der physikalischen Adresse inkl. Applikation korrigiert
* Fix: SymOS Oberfläche ich nun korrekt über IPv6 erreichbar
* Fix: Interner Server Error beim Download von Logfiles korrigiert
#### PHP-SDK
* Neu: Werden Tree und Configurator als Variable im Konfigurationsformular verwendet, beinhaltet nun jeder Knoten auch die Information „expanded“
* Neu: Der Callback „onExpand“ für Tree und Configurator wird ausgelöst, wenn ein Knoten ausgeklappt wird
* Fix: Ist ein Zahlenfeld im TestCenter leer wird nicht mehr auf einen ungültigen Wert geschaltet
* Fix: Timer Intervall beim PHP SDK wird geprüft, sodass dieser nicht negativ wird
* Fix: Bessere Fehlermeldung, wenn ein Button einen ungültigen Link zurückgibt
* Fix: Bei der Erstellung von Instanzen werden OpenObjectButtons immer deaktiviert, damit die Konfiguration der Kette nicht unterbrochen wird
* Fix: loadValuesFromConfiguration funktioniert wieder wie vorgesehen innerhalb von ExpansionPanels
* Fix: SelectValue verursacht beim Öffnen der Konfiguration keine Fehler mehr und reagiert wie vorgesehen auf Änderungen
#### Enterprise
* Neu: Remote Sync (siehe: https://www.youtube.com/watch?v=njqcztynZjA)
* Neu: Replication Sync (siehe: https://www.youtube.com/watch?v=njqcztynZjA)
* Neu: Translation Modul kann Übersetzung direkt über DeepL vornehmen
* Neu: Je WebFront können ein/mehrere Domains (VHosts) definiert werden, für die das WebFront angezeigt werden soll
### Neue Module
#### Backup (FTP/FTPS/SFTP)
* Vollständige Backups jeden Tag zu einer gewünschten Uhrzeit
* Optional auch Inkrementelle Backups (sodass das Backup immer nur aktualisiert wird)
* Beliebige Ordner können gefiltert werden
* Variable zur Uhrzeit des letzten erfolgreichen Backups
* Variable zur letzten Backupgröße
### Aktualisierte Module
#### Spotify
* Neu: Funktion SPO_MakeAPIRequest um eigene Anfragen an die Spotify-API zu tätigen
* Fix: Verhindere eine fälschliche Annahme, dass die Wiedergabe aktiv ist, sollten die Rückgabewerte der API problematisch sein
#### CSV ZIP Export
* Neu: Besserer Download und Download von Rohdaten
## V6.2->V6.3 (Q4/2022)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v62-v63-q4-2022/
Wesentliche Änderungen
Migration
Liste der Änderungen
Neue und aktualisierte Module
### Wesentliche Änderungen
* Automatisches Verdichten von Archivdaten
* Alle Graphentypen miteinander kombinierbar
* Integration von IPSViewDesigner und IPSWorkflows
* BACnet Server
#### Automatisches Verdichten von Archivdaten
Das Logging von Variablendaten ist wichtig um diverse Rückschlüsse zu ziehen und beispielsweise den Energieverbrauch zu verstehen und dadurch zu optimieren. Diverse Sensoren schicken hierbei hochauflösende Daten, wobei teilweise mehr als ein Datensatz pro Sekunde empfangen und im Archiv geschrieben wird. Dieser hohe Informationsgehalt schlägt sich natürlich im Speicherplatz nieder, obwohl die hohe Auflösung meisten Daten nach einer gewissen Zeit uninteressant werden. So reicht nach einem Jahr vielleicht ein Temperaturwert pro Stunde vollkommen aus und Werte, die älter als zwei Jahre sind, sind komplett uninteressant. Hierbei unterstützt die Verdichtgung, welche nach individuell einstellbaren Zeitabständen die Datensätze auf den gewünschten Detailgrad runterbricht oder auch komplett löscht. Dies kann pro Variable eingestellt werden, wodurch für jeden Fall die optimale Verdichtung gewählt werden kann.

#### Alle Graphentypen miteinander kombinierbar
Wie viel Energie verbraucht die Heizung in Abhängigkeit der Außentemperatur? Dank der neuen Kombination aller Graphentypen miteinander in einem einzelnen Diagramm, kann dies nun optimal zusammengeführt werden. Dabei wird der Zähler der Heizung wie gewohnt als Balkengraph und die Temperatur als Liniengraph dargestellt. In welchen Zimmern sind die Heizkörper aktiv? Erweitern Sie das Diagramm gerne auch noch um Booleangraphen um alle Informationen an einer Stelle zu präsentieren.

#### Integration von IPSViewDesigner und IPSWorkflows
Kein Bedarf mehr für spezielle Anwendungen zu IPSStudio. Seit einiger Zeit können IPSViews bereits im WebFront dargestellt werden. Mit der neuen Version zieht nun auch die Konfiguration in die Konsole ein. So können IPSViews und Workflows plattformunabhängig direkt in der Konsole bearbeitet werden.

> **Hinweis:** Zur Verwendung von IPSStudio in der Konsole ist eine [Professional Lizenz](https://ipsview.brownson.at/?page_id=93) für IPSStudio erforderlich.
#### BACnet Server
IP-Symcon kann nun nicht nur als BACnet Client, sondern auch als BACnet Server agieren. Dadurch kann IP-Symcon als Bridge agieren und Werte anderer Systeme an BACnet weiterleiten oder auch eigene Parameter zur Verfügung stellen. So können beliebige Werte in IP-Symcon anderen BACnet Clients zur Verfügung gestellt werden.
> **Hinweis:** Das BACnet Modul ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden IP-Symcon Lizenz erworben werden kann. Für Details wenden Sie sich bitte an unseren [Vertrieb](https://www.symcon.de/de/kontakt/#BACnet%20Erweiterung).
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
Die aktuellste Version kann wie unter [Installation](https://www.symcon.de/de/llms/getting-started.md) beschrieben installiert werden.
### Liste der Änderungen
#### Allgemein
* Neu: Verbesserte Sicherheit: Auch bei Anmeldungen über Localhost wird ein Kennwort erfordert, sofern der Fernzugriff aktiviert ist. Dies betrifft insbesondere Windows User, die nun ggf. ein Kennwort eingeben müssten.
* Neu: Neue Version der IPSWorkflows wird unterstützt
* Neu: Neue Version vom IPSViewDesigner wird unterstützt
* Neu: Besserer Hinweis, wenn IP-Symcon initial von extern eingerichtet werden soll
* Neu: Intern auf std::filesystem und std::variant (von C++20) umgestellt
* Neu: Windows Installer setzt die IP-Symcon Version in den Datei-Eigenschaften
* Neu: Windows Version kann auch unter Windows 10 (ARM64) installiert werden (ohne Gewähr und Support!)
* Neu: Bibliothek zum Berechnen von Datum/Uhrzeit ausgetauscht
* Neu: Bibliothek zum Lesen/Schreiben der php.ini ausgetauscht
* Neu: Intern wurde alles auf Int64 umgestellt. Dadurch können Int64 Werte (insbesondere KNX DPT 29.x) vollständig dargestellt und archiviert werden. (Benötigt ein 64-Bit System. d.h. nicht für Raspberry Pi 32 Bit verfügbar. Dort ist zumindest PHP weiter auf 32 Bit limitiert)
* Neu: Spezialschalter CompatibilitySloppyUTF8 der standardmäßig an ist, um die Konvertierung von nicht UTF-8 Konformen String wie bisher durchzuführen
* Neu: CC_GetTrafficCounter um den exakten Verbrauch vom Connect Dienst der 24 Stunde Periode zu ermitteln
* Neu: IPS_GetKernelDirSpace, um den freien Speicherplatz vom Datenlaufwerk anzuzeigen
* Neu: Der Docker Tag testing ist ab sofort als Multi-Arch Image für amd64, arm64 und armhf verfügbar
* Neu: GetValueFormatted/GetValueFormattedEx geben den unformatierten Wert auch ohne Profil zurück
* Neu: Das Tray-Icon unter Windows öffnet bei Doppelklick die Pro Konsole. Der Verbindungsassistent ist separat im Kontextmenü verfügbar
* Neu: SSE: Unterstützung für fragmentierte Events
* Neu: IP-Symcon kann mit Einschränkungen auch ohne Root Rechte gestartet werden
* Neu: IPS_ExecuteEx liefert Rückgabewert der Ausführung, wie auch IPS_Execute dies tut
* Fix: Bessere Fehlermeldung im Logfile/Lizenz Ändern Dialog, wenn Subskription aufgrund einer veralteten Lizenz nicht ermittelt werden kann.
* Fix: Bessere SSDP Suche unter Windows mit mehrere Netzwerkadaptern
* Fix: Bessere Fehlermeldung, wenn Icons von defekten Skins nicht geladen werden konnten
* Fix: Das Tray-Icon unter Windows sollte nicht mehr verschwinden
* Fix: UTF-8 Problem im MQTT Konfigurator gelöst
* Fix: UTF-8 Problem im Util Control gelöst
* Fix: UTF-8 Problem mit Skriptausgaben von Ereignissen gelöst
* Fix: Register Variable war ggf. falsche Fehlermeldung aufgrund fehlender Initialisierung einer internen Variable
* Fix: Tray-Icon unter Windows prüft, ob der Dienst korrekt läuft, bevor er die Pro Konsole öffnet
* Fix: Include-Pfad wurde unter Windows nicht korrekt gesetzt für Ereignisse mit ScriptText
* Fix: Veraltete Spezialschalter werden nicht mehr angezeigt
* Fix: Weiteres UTF-8 Problem im Util Control gelöst
* Fix: IPS_Execute konnte (seit 4.0) keine Argumente mit Zeilenumbrüchen weiterreichen
* Fix: Util Control zeigt die gefundenen Fehlerstellen für Umlaute/ShortTags wieder korrekt an
* Fix: Referenzsuche/Skriptsuche kommt mit ungültigem UTF-8 besser klar
* Fix: Weiteres UTF-8 Problem im MediaPlayer (Windows) korrigiert
* Fix: Weitere UTF-8 Problem bei HID (Windows) korrigiert
* Fix: Boolean (Variable) auf Boolean (Variable) Vergleich in bedingten Ereignissen korrigiert
* Fix: Sicherheitslücke im WebServer korrigiert, welche nur mit direktem Netzwerkzugriff oder einer Port Weiterleitung ins Internet ausgenutzt werden kann
#### Archiv
* Neu: Verdichten der Werte ist verfügbar!
* Fix: Beim Entfernen aller Variablen aus dem Archiv wurde dies nicht korrekt abgespeichert
* Fix: Bei einem Neustart konnten aktuelle Aggregationsdaten von Variablen mit Standardaggregation leicht abweichen. Dies wurde behoben.
* Fix: Alle Archiv-bezogenen Dateioperationen werden mehrmals versucht, um Timing Probleme mit Backup-Software unter Windows zu umgehen.
#### Aktionen
* Neu: Neue Aktion für den Ablaufplan zum Nachführen den Wochenplan-Ereignisses
* Neu: Neue Aktion zum Senden von Push-Nachrichten mit Inhalt aus einer Variable
* Fix: Aktionen mit potentiell nicht gesetzten Objekten, z.B. Push-Nachrichten, werden wieder korrekt formatiert
* Fix: Archiv-Aktion konnte Werte für die Jahresaggregation nicht korrekt abrufen
#### Geräte
* Neu: BACnet Server (Beliebige Variablen können im BACnet zur Verfügung gestellt werden)
* Neu: KNX: DPT 1.024, 8.012, 12.1200, 12.1201, 13.1200, 13.1201, 13.016, 14.1200, 14.1201 hinzugefügt
* Neu: Eltako FWWKW71L
* Neu: Update Button in Konfiguration für OneWire, ModBus/Siemens Instanzen
* Neu: I/O SSE: SSL-Zertifikat Prüfung kann deaktiviert werden
* Neu: LCN Konfigurator zeigt Seriennummer, Firmware und Hardware an
* Neu: LCN Quitterungen werden strikter erwartet/ausgewertet
* Neu: Z-Wave: PHP-Befehle ZW_RequestPriorityGroup, ZW_UpdatePriorityGroup und ZW_UpdatePriorityReturnGroup
* Neu: KNX DPT 9.030
* Neu: MQTT: Neues Format Binär, welches binären Payload als HEX in String-Variablen speichert (Umgeht korrekt Probleme mit nicht validem UTF-8 in Strings)
* Neu: BACnet: Relinquish Present Value Button direkt in der Instanz
* Fix: BACnet: String im UCS-2 Format werden korrekt konvertiert
* Fix: KNX: Einige Profile waren nicht korrekt UTF-8 kodiert
* Fix: HomeMatic: Bessere Fehlermeldung beim Verbindungsaufbau
* Fix: KNX Konfigurator funktioniert korrekt, auch wenn nicht unterstützte DPTs in der XML existieren
* Fix: Kleine Anpassung den WebHooks, sodass diese mit OCPP kompatibel sind
* Fix: SSE: Accept Header wird korrekt auf text/event-stream gesetzt, sodass z.B. die Hue Bridge kein application/json sendet
* Fix: RegisterVariable: Interne Warteschlange wird auf 512kB limitiert
* Fix: OZW: Bei mehreren Geräten konnten die DataPoint Instanzen dem falschen Splitter zugeordnet werden
* Fix: OZW: Setze Wert auf 0, falls ---- empfangen wird (anstatt einer Fehlermeldung im Logfile)
* Fix: ModBus Konfigurator konnte nicht geöffnet werden, wenn „fremde“ Instanzen am Splitter hingen
* Fix: KNX DPT 12.1200, 12.1201, 13.1200, 13.1201 korrigiert
* Fix: EnOcean: Eltako WWLW → Emuliere Status korrigiert
* Fix: BACnet: Fehlermeldung beim Öffnen der Discovery Instanz gelöst (seit letztem Release)
* Fix: BACnet: Nicht unterstützte NSDU Nachrichten werden nur im Debug Log gemeldet
* Fix: MQTT: Ungültiges UTF-8 im Payload wird korrekt an PHP-Module weitergegeben
* Fix: KNX Konfigurator mit mehreren IP-Gateway hat die Instanzen ggf. an das falsche Gateway verbunden
#### WebFront
* Neu: Bar/Line/Bool Graphen können alle in einem Diagramm kombiniert werden
* Neu: Exakte Werte können via Hover auch für HD/RAW Werte abgelesen werden
* Neu: IE11 wird nicht mehr korrekt unterstützt und wird als inkompatibler Browser identifiziert
* Neu: Unterstützung einer listenbasierten Legende inkl. Filter sobald 10 oder mehr Graphen in einem Diagramm sind
* Neu: Unterstützung für den neuen „Initial sichtbar“ Parameter bei Diagrammen
* Fix: Legende vom Graphen mit gleicher MedienID aber anderem Offset werden korrekt getrennt
* Fix: SVG: Werte-Overlays waren für einige Diagramme mit Achse auf der rechten Seite vertauscht
* Fix: ~Door Profil hatte ein vertauschtes Icon
* Fix: Sofern alle WebFronts unsichtbar waren, gab es eine kryptische Fehlermeldung
#### App
* Fix: ~Door Profil hatte ein vertauschtes Icon
#### Konsole
* Neu: Module Store überarbeitet
* Module, die nur in anderer Sprache verfügbar sind, können dargestellt werden
* Zeige Text an, wenn keine Module gefunden wurden
* Neu: IPS-Views und Workflows können direkt in der Konsole erstellt und bearbeitet werden
* Neu: Optimiere Dialog zur Aktionsauswahl
* Neu: Button um Mitteilungen im Status-Tab zurückzusetzen
* Neu: In Objektauswahlfeldern kann bei sicherer Verbindung (HTTPS oder Pro Konsole) via Strg + C eine ObjektID kopiert und via Strg + V eingefügt werden
* Neu: Beim Springen zu einem Objekt wird die Auswahl im Objektbaum nur aktualisiert, falls das Objekt noch nicht ausgewählt wurde. So bleibt eine mögliche Mehrfachauswahl erhalten
* Neu: Scrolle beim „Gateway ändern“-Dialog zum aktuell ausgewählten Gateway
* Neu: „Gateway ändern“-Dialog leicht visuell überarbeitet
* Neu: Erhöhe Performance durch Verwendung von Lizenz- und Serverdaten aus dem Snapshot anstatt immer wieder anzufragen
* Neu: Erhöhe Performance des Status Widget
* Neu: Bessere Fehlermeldung, wenn nach der Lizenzänderung ein erneutes Einloggen notwendig ist
* Neu: Dialog für Spezialschalter verbessert (Zeigt nicht übernommene Änderungen und Standardwerte an)
* Neu: Meldung, falls der Speicherplatz knapp wird
* Neu: Wird mit dem Schnellfilter im „Instanz erstellen“-Dialog nichts gefunden werden, kann direkt der Module Store geöffnet werden
* Neu: Zeige Hinweis, falls einer der DebugDisable* Spezialschalter aktiv ist
* Neu: Bei Diagrammen kann angegeben werden, ob ein Chart standardmäßig aktiv sein soll
* Neu: „Passwort vergessen“-Button beim Login
* Fix: Zeile Zeilenumbrüche in Beschreibungen im Module Store wie vorgesehen an
* Fix: Visualisierungen können im Objektbaum nicht mehr verschoben werden
* Fix: Verhindere, dass Zeilen bei inaktiven Tabs beim Wechsel des Kompaktmodus verschwinden
* Fix: Verbesserte Fehlermeldung bei ungewöhnlichen Fehlern beim Verschieben von Objekten
* Fix: Werden alle Dialoge geschlossen, beispielsweise von einem Konfigurator in einem Popup, so können diese wie vorgesehen danach wieder geöffnet werden
* Fix: Bei Listen in Dialogen wird nun die Scrollposition korrekt initialisiert und es kommt nicht zu „leeren“ Listen
* Fix: Da Firefox die Clipboard-API im Browser nicht vollständig unterstützt, wird dies nun überprüft und die Fehlermeldung entsprechend angepasst
* Fix: Bei langen Strings wird der Variableninhalt im Dialog zum Variable bearbeiten nicht mehr doppelt angezeigt
* Fix: Beim Bewegen eines Elements per Drag & Drop stellt der Zeiger nun korrekt dar, dass es sich um eine Bewegen-Aktion und nicht um eine Kopieren-Aktion handelt
* Fix: Bei einer Anpassung der Graphenreihenfolge in einem Diagramm wird dies korrekt abgespeichert
* Fix: Die Standardaktion wird nicht mehr modifiziert, wenn dies nicht explizit im Dialog getan wird
* Fix: Zeige keine Warnung im Visualisierungs-Widget, falls keine Lizenz gesetzt ist
* Fix: Wird ein Ereignis erstellt, wird wie erwartet im Objektbaum dahin gesprungen
* Fix: Wird eine Liste oder ein Baum erneut geöffnet, wird die aktuelle Scrollposition aktualisiert. Dies verhindert den Fehler, dass die Profilauswahl unter bestimmten Umständen leer war
* Fix: Wird bei zyklischen Ereignissen das Tagesmuster angepasst, so werden auch dazugehörige Änderungen korrekt übernommen, auch wenn die Standardeinstellungen beibehalten werden
* Fix: Fordere nur eine Reaggregation aufgrund von veränderter Ausdünnung, wenn entsprechende Einstellung tatsächlich angepasst wurde
* Fix: Verhindere kosmetische Fehlermeldung im Profildialog
* Fix: Verhindere Fehler, beim duplizieren von Profilen und direktem Löschen von Assoziationen
* Fix: Verhindere Fehler beim initialen Rendern eines Objektbaums unter Firefox
* Fix: Liefert ein Konfigurator oder eine Discovery Instanz bei der Gerätesuche ungültige Werte, löst dies keinen Fehler aus
* Fix: Unter Firefox wurden Listen in seltenen Fällen leer dargestellt und erst beim Scrollen aktualisiert
* Fix: Mehr Informationen, wenn die „Timestamp is missing“ Fehlermeldung kommt
* Fix: Zeige Listen in Dialogen wieder korrekt an, z.B. Ereignisliste von Skripten oder Auswahl der Systeme bei der Gerätesuche
* Fix: Dialog zum prüfen im Konfigurator behoben
#### Pro-Konsole
* Neu: Kleine Anpassungen für den neuen IPSViewDesigner
* Fix: Werden die Skripteinstellungen in einem abgedockten Skripteditor geändert, wird dies für alle Fenster übernommen
* Fix: Kopieren von ObjektIDs aus Auswahlfeldern in der Pro Konsole führte zu einem Fehler
#### SymOS
* Neu: Kernel auf 5.10.110 aktualisiert
* Neu: SymOS: Einrichten der Lizenz speichert das Lizenzdatum und zeit es bei „Lizenz anzeigen“ an
* Neu: Aktuelle IP-Adresse kann über Support → System anzeigen angefragt werden
#### PHP-SDK
* Neu: SelectValue Element ([Dokumentation](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md))
* Neu: Feld „discoveryInterval“ für Configurator ermöglicht eine Einschränkung der automatischen Gerätesuche
* Neu: Standardwert für SelectObject und dessen Derivate ist nun 1, also „Nichts ausgewählt“
* Fix: Existiert das Ziel in einem SelectAction nicht mehr, so wird dies passend dargestellt
* Fix: Zeige SelectColor in List oder Tree über dem Grau der ausgewählten Zeile an
* Fix: Wird ein Icon im SelectIcon ausgewählt, wird wie vorgesehen die „Änderungen übernehmen“-Zeile eingeblendet
* Fix: Bessere Fehlermeldung, wenn eine verschachtelte Liste kein gültiges JSON ist
* Fix: Verschachtelte Listen haben nun in PHP-Funktionen wie vorgesehen Zugriff auf $id
* Fix: Soll ein PopupAlert geöffnet werden während der Tab mit der Instanz nicht aktiv ist, wird das Popup erst geöffnet sobald der Tab wieder aktiv wird
* Fix: Spalten mit SelectDate/SelectTime/SelectDateTime in List und Tree werden korrekt sortiert
### Neue Module
#### SNMP
Offizielles SNMP Modul der Symcon GmbH. Unterstützt SNMP V1/V2/V3 und kann alle OIDs eines Geräts per Walk anzeigen. Per Checkbox können die gewünschten Werte als Variablen in IP-Symcon erstellen werden, welche dann zyklische aktualisiert werden.
### Aktualisierte Module
#### Amazon Alexa
* Fix: Verbesserte Fehlermeldungen
#### Anwesenheitssimulation
* Fix: In seltenen Fällen wurde die Simulation fälschlicherweise gestoppt
#### Benachrichtigung
* Neu: Unterstützung für neues Telegram Bot Modul
#### Google Assistant
* Neu: Link um den Skill bei Google zu bewerten
* Fix: Geräte, die 30 Minuten keine Updates schicken, werden nicht mehr als offline angenommen
#### Rechenmodule
* Fix: Fehlende Konfigurationselement wieder hinzugefügt
#### Report Modul
* Neu: Temperature Variable ist optional
#### SNMP
* Neues Modul im Module Store
#### Spotify
* Fix: Gehe korrekt mit abgelaufenen oder falschen Token um
* Fix: Verhindere Fehler bei deaktivierter Wiedergabe
#### Telefonansage
* Neu: Benutze das neue SelectModule Element
#### Virtuelle Messstelle
* Neu: Verbesserte Berechnung
## V6.1->V6.2 (Q2/2022)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v61-v62-q2-2022/
### Wesentliche Änderungen
* Gleichzeitiges Editieren
* Verbesserter Module Store
* Verbesserte Performance
* Neue Module von der Symcon GmbH
#### Gleichzeitiges Editieren
Mit der neuen Version können in der Konsole beliebig viele Objekte gleichzeitig bearbeitet werden. So kann beispielsweise schnell und unkompliziert das Logging für viele Variablen aktiviert oder die Sichtbarkeit im WebFront für viele Objekte gleichzeitig konfiguriert werden. So gelangt man bei einer großen Menge von Operationen mit viel weniger Klicks ans Ziel.

#### Verbesserter Module Store
Der Module Store wurde an diversen Stellen verbessert und erweitert. So weist der Module Store nun auf den ersten Blick auf das Icon auf verfügbare Updates hin und ermöglicht auch eine direkte Installation aller Updates. Dazu kommt eine Anzeige verschiedener interessanter Modullisten: Welche Module sind angesagt? Welche Module sind ganz neu oder haben gerade erst ein Update erhalten? Schließlich ist nun zusätzlich zum Stable und Beta Kanal auch der Testing Kanal verfügbar. Dieser ermöglicht es Entwicklern gezielt Tester für interne Modultests einzuladen. Dann können nur eingeladene Benutzer über den Module Store die Testing-Version des Moduls installieren.

#### Verbesserte Performance
Zur 6.2 haben wir an diversen Stellen noch weitere Verbesserungen der Performance durchgeführt. Werden Objektbäume mit mehreren Tausend Objekten geöffnet, so geschieht dies nun nahezu sofort. Auch das Ausklappen von Kategorien mit extrem vielen Kindern geht nun noch schneller als jemals zuvor. Auch der Start von IP-Symcon wurde beschleunigt. Werden die Variablen ins Archiv geladen, so werden alle Prozessorkerne parallel ausgenutzt, wodurch IP-Symcon nach einem Start schneller zur Verfügung steht. Schließlich wurde der MQTT Server optimiert und kann nun performant mit viel mehr Geräten gleichzeitig umgehen.
#### Neue Module von der Symcon GmbH
Auch bei der Entwicklung von Modulen hat sich einiges getan. So sind einige neue Module im Module Store zu finden bzw. Erweiterungen zu existierenden Modulen:
* Betriebsstundenzähler ([Dokumentation](https://github.com/symcon/Betriebsstundenzaehler))
* Virtuelle Messstelle ([Dokumentation](https://github.com/symcon/VirtuelleMessstelle))
* CSV Zip Export ([Dokumentation](https://github.com/symcon/CSVZipExport))
* Variablen Vergleich ([Dokumentation](https://github.com/symcon/VariablenVergleich))
* Verbrauchsverhalten ([Dokumentation](https://github.com/symcon/Verbrauchsverhalten))
* Virtueller Zähler ([Dokumentation](https://github.com/symcon/VirtuellerZaehler))
* Symcon Report (Erweitert um den Energie Report, [Dokumentation](https://github.com/symcon/SymconReport/tree/master/PDFReportEnergy) )
* JSON Exporter ([Dokumentation](https://github.com/symcon/JSONExporter))
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
> **Achtung:** Es wird unter Linux mindestens Ubuntu 20.04 erfordert
> Es wird beim Raspberry Pi mindestens Raspbian OS (Bullseye) erfordert
### Liste der Änderungen
### Allgemein
* Neu: MessageQueue wird parallel abgearbeitet und verbessert die Latenz, wenn z.B. PHP Module diese vorher zu lange blockiert hatten
* Neu: Datenfluss für PHP-Module optimiert (sollte CPU-Last leicht senken)
* Neu: Datenfluss-Filter (RegEx) von PCRE zu RE2 gewechselt (wesentlich bessere Performance)
* Neu: Archiv aktualisiert Aggregationen beim Start parallel
* Neu: Beim Ausführen von Skripten werden PHP-Module erkannt und als solche mit SenderID angegeben
* Neu: IP-Symcon prüft, ob die Subskription für die IP-Symcon Version noch gültig ist
* Neu: ServerSocket unterstützt IPv6 sofern verfügbar
* Fix: Wir prüfen jetzt vor dem Installieren, ob die Linux Version aktuell genug ist und brechen ansonsten mit einer passenden Fehlermeldung ab
* Fix: Fehlermeldung beim Verlinken von access_id.log korrigiert
* Fix: Prüfung, ob Raspbian Bullseye / Ubuntu 20.20 oder neuer installiert ist funktioniert wieder korrekt
* Fix: Prüfung der Demo-Lizenz/Subskription war nicht vollständig korrekt
* Fix: Einige veraltete Aktionen wurden unter Windows nicht aufgeräumt
* Fix: Abstürze mit HomeKit auf älteren Macs
* Fix: URL von ip-symcon.de auf symcon.de 1 in den UPNP Anfragen angepasst
* Fix: Speicherleck unter Windows bei SSL-Verbindungen gelöst
* Fix: Seltenes Speicherleck bei RTSP Streams und Verbindungsabbrüchen gelöst
* Fix: Hoher Speicherverbrauch (durch zu viel Caching) bei vielen PHP-Threads und hohen Speicherverbrauch in Skripte (z.B. durch große IPSView Dashboards) gelöst
* Fix: Durch eine Umstellungen von GitHub müssen wir alle git:// Skins/Module zu https:// konvertieren (Betrifft nur Skins und alte Module)
* Fix: Bei zu schnellem Shutdown von IP-Symcon konnte dies am Ende abstürzen
* Fix: Sys_GetCPUInfo lieferte unter Windows 0 beim ersten Aufruf
### Aktionen
* Neu: Mathematische Funktionen können nun sowohl mit einem konstanten als auch dem Wert einer anderen Variable verwendet werden
### Geräte
* Neu: W&T unterstützt CO2 Sensoren
* Neu: BACnet: Datenpunkt to Geräten werden einer gerätespezifischen Kategorie erstellt
* Neu: MQTT: Button in den Konfiguratoren, der erlaubt die Liste zu leeren
* Fix: KNX: Verwerfe Pakete von alten Verbindungen
* Fix: MQTT: Client gibt Hinweis, wenn ein Neu-Verbinden nach einer Änderung erforderlich ist
* Fix: ModBus: String-Werte filtern korrekt Null-Characters am Ende
* Fix: BACnet: Absturz bei einigen Geräten, wenn beim Anfragen der Objektliste nicht wie erwartet die Länge gemeldet wurde
* Fix: BACnet: Lade Objektliste in einem Stück, sofern das Gerät dies unterstützt
* Fix: KNX: Button zum Aktivieren des Programmiermodus auf der SymBox funktioniert wie erwartet
* Fix: Gerätesuche für unsere LAN-Gateway ist schneller
* Fix: IRTrans: Konfigurationsseite konnte bei Fehlerhafter Verbindung nicht geöffnet werden
* Fix: KNX: Problem beim Trennen der Verbindung beim Beenden von IP-Symcon gelöst
* Fix: KNX: DPT 19: Wochentag wurde falsch gesendet, wenn RequestAction genutzt wurde
* Fix: MQTT: Fehlerhafte Verbindungen werden besser/schneller getrennt, damit sich (z.B. die Shelly’s) korrekt neu verbinden können
### Konsole
* Neu: Store wurde überarbeitet
* Module werden nun alphabetisch sortiert
* Eine grüne Zahl am Module Store Icon zeigt an, wenn Updates vorhanden sind
* Button um alle installierten Module gleichzeitig zu aktualisieren
* Spezialkategorien für Top Downloads, Angesagt Module, Neueste Updates und Neueste Module
* Unterstützung der Spezialkategorie für Testing (allerdings kann aktuell noch nicht im persönlichen Bereich eingeladen werden)
* Neu: Mehrfachauswahl wird nun bei allen Operationen im Objektbaum unterstützt, insbesondere auch bei „Objekt bearbeiten“
* Neu: Zeige Dateipfad in PHP Informationen an
* Neu: Verbesserte Performance für alle Arten von Bäumen und Listen in der Konsole
* Neu: Mehrere bewegbare Dialoge werden leicht versetzt geöffnet
* Neu: Doku-Widget bietet nun einen Button, um die Dokumentation direkt zu öffnen
* Neu: Filter im Archiv
* Neu: Aggregationstyp wird im Icon im Archiv angezeigt
* Neu: Zeige Profiltyp im Profil-Manager an
* Fix: Beim Löschen von Variablen aus Diagrammen wird dies korrekt gespeichert
* Fix: In offenen Skripten suchen schlägt nicht mehr fehl, wenn manche der Skripte während der aktuellen Session noch nicht ausgewählt wurden
* Fix: Verhindere fälschliche Anzeige, dass der Browser veraltet ist, falls die Verbindung langsamer ist
* Fix: Lokalisierte Darstellung von Kommazahlen im Archiv und „Variable bearbeiten“-Dialog
* Fix: Das Achievement-Widget (Aprilscherz 2020) verursacht keine Fehler mehr bei neu erstellten Objekten, die direkt wieder gelöscht werden
* Fix: Wird der Name eines Ereignisses geändert, wird dies direkt im Objektbaum dargestellt
* Fix: Verhindere fälschliche geforderte Reaggregation bei neu erstellten Variablen
* Fix: Variablen werden in Dialogen wie dem Auswahlbaum einer auslösenden Variable eines Ereignisses korrekt zentriert dargestellt
* Fix: Kann eine Subskription aufgrund einer fehlenden Internetverbindung nicht geprüft werden, wird dies dem Benutzer mitgeteilt
* Fix: Listen wurden manchmal leer dargestellt und erst beim Scrollen korrekt dargestellt
### Pro-Konsole
_Keine Änderungen_
### SymOS
* Neu: Kernel auf 5.10.92 aktualisiert
* Neu: IPv6 ist verfügbar (noch nicht aus SymOS heraus konfigurierbar)
* Neu: Anzeige der SymBox Version auf der Support Seite mit Speicher/RAM Größe
* Neu: Zeige Compute Module Version auf der Support/System-Seite
* Neu: Backups werden mit dem Format Jahr/Monat/Tag anstatt Tag/Monat/Jahr erstellt für eine bessere Sortierbarkeit
* Neu: „Backup wiederherstellen“ Button direkt auf der Backup-Seite
* Fix: Einspielen von Backups ist auch ohne Internet-Verbindung wieder möglich
* Fix: Beim Zurücksetzen auf Werkseinstellung wird auch der Update-Kanal korrekt zurückgesetzt
* Fix: Logfile-Ansicht funktioniert wieder korrekt, sobald man auf „Mehr“ klickt
* Fix: VoIP auf der SymBox wieder verfügbar
* Fix: Backups über 2GB können korrekt wiederhergestellt werden
* Fix: Backups im Safari werden als zipbackup heruntergeladen, um nicht automatisch entpackt zu werden
### PHP-SDK
* Neu: „Nichts ausgewählt“ entspricht bei SelectObject und dessen Derivaten nun dem Wert 1, wodurch die Hauptkategorie mit der ID 0 bewusst ausgewählt werden kann
* Neu: Flag „deprecated“ für veraltete Aktionen um Sie korrekt in ihre Nachfolger zu konvertieren
* Fix: PHP-Module konnten Abarbeitung von KERNELSTARTED im MessageSink behindern
## V6.0->V6.1 (Q1/2022)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v60-v61-q1-2022/
### Wesentliche Änderungen
* [Mehr Performance](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Objektbaum in Listenansicht](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Gerätesuche in Sprachassistenten](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [SymOS mit 64 Bit](https://www.symcon.de/de/llms/getting-started/migrationen.md)
#### Mehr Performance
Die Performance von allen Baum- und Listendarstellungen in der Konsole wurde noch einmal deutlich verbessert. Werden tausende Objekte gleichzeitig dargestellt oder Kategorien mit mehr als 1000 Unterobjekten geöffnet, läuft dennoch alles flüssig weiter. Und auch wenn sich an allen Stellen im Objektbaum gleichzeitig etwas ändert, stört dies die Nutzung nicht durch Verzögerungen oder Ruckler, es kann einfach flüssig weiter gearbeitet werden.
#### Objektbaum in Listenansicht
In der Listenansicht des Objektbaums können alle Objekte in IP-Symcon gleichzeitig dargestellt werden. Damit kehrt die klassische Ansicht aus der Legacy-Konsole in die aktuelle Konsole zurück und ermöglicht eine Sortierung der Objekte nach beliebigen Spalten. Damit kann schnell gesehen werden, welche Objekte im Baum häufig aktualisiert werden oder welche Instanzen fehlerhaft oder inaktiv sind.

#### Gerätesuche in Sprachassistenten
Alle Sprachassistenten bieten nun eine Gerätesuche. So müssen nicht mehr alle Geräte einzeln eingepflegt werden. Stattdessen wird die Gerätesuche einmal gestartet und entdeckt passende Geräte. In der Auswahl kann dann schnell ausgewählt werden, welche dieser Geräte tatsächlich im Sprachassistenten integriert werden sollen und schon ist der Assistent blitzschnell bereit zur Verwendung.

#### SymOS mit 64 Bit
IP-Symcon und das SymOS nutzen auf der SymBox jetzt das volle Potential der 64-Bit-Architektur. Dadurch läuft IP-Symcon noch performanter und ermöglicht noch größere Projekte auf der SymBox.
#### Webinar zum Thema IP-Symcon 6.1
[Video](https://www.youtube.com/embed/sW35lmKgGJ8?rel=0&cc_load_policy=1)
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
### Liste der Änderungen
### Allgemein
* Neu: access_*.log Dateien vom WebServer werden automatisch rotiert
* Neu: Receive-/Forward-DataFilter in PHP-Modulen können größer als 16kb sein und sollten wesentlich performanter ausgewertet werden
* Neu: Profile Watt und Electricity.Wh
* Neu: IPS_GetSystemLanguage, um die erkannte Systemsprache auszugeben
* Neu: Spezialschalter zum Debuggen (Deaktiviert jeweils GetSnapshot, GetSnapshotChanges, WebSocket Rückkanal, Streams)
* Neu: Spezialschalter, um RTSP Streams über TCP statt UDP zu empfangen
* Neu: Sofern "MessageQueueWatch" aktiv ist, werden Statistiken pro Instanz geführt (IPS_GetInstanceMessageStatistics())
* Neu: Statistiken für Anzahl der Nachrichten im Datenfluss
* Neu: Einige Bibliotheken aktualisiert
* Fix: max_execution_time ebenfalls für ini_set deaktiviert
* Fix: Google Assistant Request Limit wird bei vielen Geräten korrekt erweitert, wenn die GA Instanz erst nach der Connect Control Instanz geladen wurde
* Fix: Notification Control unterstützt Views von IPSView wieder korrekt
* Fix: IP-Symcon wird korrekt gefunden, wenn ein & im Namen der Hauptkategorie stand
* Fix: Ablaufpläne mit Wartezeit blockieren nicht mehr beim Herunterfahren
* Fix: Zeitzone Etc/UTC (Default auf Ubuntu) startet korrekt
* Fix: Beim Start werden unvollständige Objekte aus dem Snapshot entfernt
* Fix: Limitierung bei RTSP/MJPEG Streams greift jetzt korrekt und verhindert massiven Speicherverbrauch, sofern Clients keine Daten mehr abgenommen haben
* Fix: Beim Ändern von „Erweiterten Bedingungen“ mit Variablenvergleichen wurden die neue Werte als 0 statt dem eigentlich Wert in der Settings gespeichert, sodass nach einem Neustart die „Erweiterte Bedingung“ falsch konfiguriert war
* Fix: Dekodieren von Absendern bei POP3 Nachrichten korrigiert (Bei IMAP bereits seit 2016 korrekt)
* Fix: DNS-SD: Unter Windows konnte in seltenen Fällen sehr viele gleiche Fehlermeldungen auftreten
* Fix: Löschen von Skripten/Medien legt diese wieder im „deleted“ Ordner ab
* Fix: WebFront: Sofern Diagramme im WebFront sind und diese Variablen enthalten, welche Unterobjekte besaßen, wurden diese in seltenen Fällen nicht im WebFront angezeigt
* Fix: FlowWatchTxLimit/FlowWatchRxLimit/MessageQueueWatchLimit kann mit 0 deaktiviert werden
### Archiv
* Fix: Falls es Daten aus der Zukunft gibt, üblicherweise durch eine Korrektur der Uhrzeit, so werden diese bei der minütlichen Aggregation einfach nicht angezeigt anstatt Fehler zu verursachen
### Aktionen
* Fix: Ereignisse mit fehlerhafter Aktion werden korrekt im Log protokolliert anstatt die Abarbeitung mit einer Exception zu beenden
### Geräte
* Neu: HomeMatic: Konfigurator zeigt Geräte als Baum an, sodass die Kanäle unterhalb angezeigt werden
* Neu: HomeMatic: Datenfluss unterstützt Komplexe Werte (als JSON-kodiert)
* Neu: HomeMatic: Datenfluss unterstützt Anfrage für HMScript
* Neu: HomeMatic: Konfigurator/Socket kann Gruppen (Port 9292) auslesen
* Neu: HomeMatic: Konfigurator zeigt gute Gerätenamen an
* Neu: Technische Alternative CMI: Vollständige Unterstützung von Protokoll-Version 6.0
* Neu: Eltako: Schalter für Serie 62 werden besser Unterstützt (Eigene Instanz)
* Neu: BACnet: Unterstützung für MultiState
* Neu: BACnet: COV kann ein-/ausgeschaltet werden
* Neu: BACnet: Priorität beim Senden kann eingestellt werden
* Neu: BACnet: BACNET_RelinquishPresentValue zum „Ausnullen“ es vorher gesendeten Wertes
* Neu: BACnet: Strings mit ISO 8859-1 Kodierung werden unterstützt
* Neu: KNX: Status-GA Erkennung kann nun auf verschiedenen Ebnen suchen
* Neu: KNX: Für Weinzierl kBerry und SymBox mit KNX kann der Programmiermodus für die physikalische Adresse aus der Gateway Instanz aktiviert/deaktiviert werden
* Neu: LCN: Warten auf Quittierungen ist möglich und standardmäßig aktiv
* Neu: Z-Wave: Schönere Positionierung von Buttons in Popups der Konfiguration
* Neu: ModBus: Option zum Byteweise verdrehen von Strings
* Neu: ModBus: Optionen werden je nach gewähltem Datentyp angezeigt/versteckt
* Neu: W&T unterstützt CO2 Sensoren
* Fix: KNX: Fehlermeldung vom expliziten Lesen von Werten auf dem Bus, sofern die GA unter „Mehr?“ definiert war
* Fix: BACnet: Priorität wird standardmäßig als 8 (Handbetrieb) gesendet
* Fix: BACnet: Daten vom Typ Enum werden korrekt gesendet
* Fix: BACnet: Fehler im Geräte-Konfigurator sofern keine Objekte verfügbar sind
* Fix: BACnet: Forwarded-NPDUs werden im BVLC Header unterstützt
* Fix: BACnet: Ignoriere WhoHas Service Requests, auf welche wir nicht antworten müssen
* Fix: Elatako FAHB130 sollte Daten korrekt empfangen
* Fix: Z-Wave: NodeID wird bei Nonce Requests angezeigt
* Fix: MQTT: Korrigiert „Packet was not fully consumed“ Fehlermeldungen, welche bei abgebrochenen Verbindungen auftreten konnten
* Fix: digitalStrom: Workaround für Bug in dSS Firmware 1.19.2
* Fix: Z-Wave Konfigurator fragt Node Informationen seltener ab
* Fix: ModBus: Auslesen von Strings wurde Byteweise verdreht
* Fix: BACnet: Unterstützung von Geräte mit UCS-2 Kodierung in Strings
* Fix: JSON Decoder kommt mit Sonderzeichen im Identifikator zurecht
* Fix: KNX: DPT 3.x kann korrekt geschaltet werden
### I/Os
* Neu: WebSocket Client kann benutzerdefinierte Header mitsenden
* Fix: HTTP/WebSocket Bibliothek aktualisiert
### Konsole
* Neu: Performance von Listen/Bäumen mit vielen Elementen drastisch erhöht
* Neu: Objektbaum kann als Listenansicht dargestellt werden
* Neu: Die Gerätesuche informiert auch über deaktivierte/fehlerhafte Konfiguratoren/Discoveries
* Neu: In Bedingungen können Variablen mit Variablen verglichen werden
* Neu: Objekte, die neu erstellt wurden und deren Elternobjekt direkt geändert wird, flackern nicht mehr in der Hauptkategorie
* Neu: Diagramme vom Typ Bool, Standard, Zähler können alle miteinander kombiniert werden
* Neu: Prüfe im Profilmanager, ob die Assoziationswerte von Float-Profilen zu den eingestellten Nachkommastellen passen
* Neu: Logik beim Duplizieren von Aktionen im Ablaufplan optimiert
* Neu: Wird im Eingabefeld der Iconauswahl etwas eingegeben, so öffnet sich eine Autovervollständigung und bietet passende Icons an
* Neu: Das Icon von Variablen mit Aktion wird dunkler dargestellt als von Variablen ohne Aktion
* Fix: Assoziationen von Stringprofilen werden in Erstellungsreihenfolge angezeigt
* Fix: Schöne Fehlermeldung für den „out-of-memory“ Bug von Firefox (Version 92 bis 93)
* Fix: Werden Zeiten im Events- oder Timertab sortiert, kommt „Nie“ unabhängig von der Sortierrichtung immer nach unten
* Fix: Wird ein Objekt unter sich selbst dupliziert, wird eine Endlosschleife verhindert
* Fix: Spezialkategorien werden wie vorgesehen gefiltert
* Fix: Für alle Tastenkombinationen wird das Cmd von Macs als Strg gewertet
* Fix: Aktualisiere verwendete Bibliotheken
* Fix: Kontextmenü kann unter Safari wie vorgesehen mit Strg + Klick geöffnet werden und schließt sich nicht direkt wieder
* Fix: Fehler behoben, wenn die Position mehrerer Objekte gleichzeitig aktualisiert wird (typischerweise ein Objekt und ein Link darauf)
* Fix: Behebe Fehler, wenn bei einer erweiterten Bedingung initial ein String gewählt wird
* Fix: Eingaben für Link-Parameter nutzen die volle verfügbare Breite
* Fix: Bessere Fehlermeldung, wenn die Verbindung abbricht
* Fix: Verhindere Fehler beim Verschieben von Aktionen im Ablaufplan auf die oberste Ebene
* Fix: Typo in „Autor“ im Instanz-Dialog
* Fix: Wird bei der Betrachtung von Archivwerten das Datum manuell eingegeben, wird das Datum erst ausgewertet sobald der Wert gültig ist
* Fix: Beim Hinzufügen von Bedingungen mit prozentualen Variablen wird der neue Wert echt gerundet und so meistens der eingegebene Wert auch angezeigt wird
* Fix: Bei sehr vielen Instanzen kommt es während der Gerätesuche nicht mehr zum Überlauf
### Pro-Konsole
* Neu: Die Breite von Dialogen kann angepasst werden und wird auch gespeichert
* Neu: Upgrade auf neuste Bibliotheken
* Neu: MacOS wird für als Universal App für Intel/Apple Silicon erstellt
* Neu: „Versionsinformationen kopieren“ Button
* Fix: Beim Öffnen der Konsole, öffnet sich diese ohne ein flackerndes Zwischenfenster
### SymOS
* Neu: Wechsel auf 64-Bit für SymOS und IP-Symcon
### PHP-SDK
* Neu: Parameter „color“, „bold“, „underline“ und „italic“ für Label
* Neu: Erweiterte Datenfluss-Funktionen SendDataToParentEx und SendDataToChildrenEx mit der alternative Pakete versendet werden können (wovon die Ziel-Instanz nur das erst-beste Verarbeitet)
* Neu: Parameter poup.closeCaption für PopupButton
* Neu: Parameter popup.buttons für PopupButton und PopupAlert
* Neu: Parameter des Popups von PopupButton und PopupAlert können abgesehen von items dynamisch geändert werden
* Neu: Wird innerhalb von einer Sekunde nach einer Schaltung im TestCenter der neue Wert nicht von der Variable bestätigt, setzt sich der dargestellte Wert zurück
* Neu: Element SelectIcon zur Icon-Auswahl
* Neu: Ist bei einem Image onClick gesetzt, so wird das Mauszeiger über dem Image zum Zeiger
* Fix: Lazy-Container (ExpansionPanel) stellen Ihren Inhalt auch vor dem ersten Ausklappen bereit
* Fix: Hat eine Liste nicht die volle Breite, wird der „Hinzufügen“-Button dennoch rechts unter der Liste angezeigt
* Fix: „Falsey“ Werte für SelectAction werden als „Keine Aktion“ interpretiert
* Fix: SetBuffer bei PHP-Module prüft und limitiert den Speicherverbraucht auf max. 1 MB pro Instanz. Das Limit pro Buffer liegt bei 512kB.
## V5.5->V6.0 (Q3/2021)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v55-v60-q3-2021/
### Wesentliche Änderungen
* Aktionen
* Ablaufpläne
* Gardena Smart System und Home Connect
* Erweiterte Unterstützung von Betriebssystemen
#### Aktionen
Als neuer Baustein zur Automation stehen jetzt [Aktionen](https://www.symcon.de/de/llms/concepts/automations.md) zur Verfügung. Diese ermöglichen die Bedienung und Konfiguration aller Objekttypen. Aktionen werden primär von [Ereignissen](https://www.symcon.de/de/llms/concepts.md) und den neuen Ablaufplänen verwendet. So kann unkompliziert auf die individuellen Funktionen einer Instanz zugegriffen werden, wie das Verschicken von Push Nachrichten über das WebFront oder E-Mails via SMTP. Es können Ereignisse aktiviert oder alle Lampen innerhalb einer Kategorie eingeschaltet werden. Die gewohnte Individualisierbarkeit von IP-Symcon ermöglicht es auch Entwicklern eigene Aktionen zu gestalten, welche zu ihren Modulen passen.

#### Ablaufpläne
Die Version 6.0 führt Ablaufpläne ein, eine neue Art der Automation. Hier können mehrere Aktionen hintereinander ausgeführt werden. Durch "Wenn ..., dann"-Aktionen können Aktionen sogar ineinander verschachtelt werden. Auf diese Weise kann beispielsweise ein Licht unkompliziert angeschaltet und nach 30 Sekunden wieder ausgeschaltet werden. Hilfreiche Analys-Tools finden schnell die Ursache, falls mal etwas nicht so passiert, wie erwartet.

#### Gardena Smart System und Home Connect
Mit der neuen Version kann nun auch der Garten und die Küche automatisiert werden. IP-Symcon ist nun zu [GARDENA smart system](https://www.symcon.de/de/llms/modules/gardena-smart-system.md) bzw. [Home Connect](https://www.symcon.de/de/llms/modules/home-connect.md) kompatibel. Hierfür wurden Module entwickelt, welche über den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) installiert werden können.

#### Erweiterte Unterstützung von Betriebssystemen
IP-Symcon kann bereits auf diversen Betriebssystemen verwendet werden. Mit der Version 6.0 steht IP-Symcon nun zusätzlich als natives Paket für Raspberry Pi OS (64-Bit Beta) und als Docker-Version für Arm64 und Apple Silicon (M1) Geräte zur Verfügung.
#### Webinar zum Thema IP-Symcon 6.0 inkl. Aktionen und Ablaufplan
[Video](https://www.youtube.com/embed/T7XVOTLowT4?rel=0&cc_load_policy=1)
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Die Legacy Konsole ist nicht zu IP-Symcon 6.0 mehr kompatibel und wurde entfernt. Wir empfehlen den Wechsel auf unsere [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md).
* Das WebFront Retro/Retro Mobile ist zu IP-Symcon 6.0 mehr kompatibel und wurde entfernt.
* Zur Verwendung über die mobilen Apps werden diese in der Version 5.5 oder neuer benötigt.
* Zur Verwendung mit IPSStudio wird dies in der Version 5.0 oder neuer benötigt.
* Zur Verwendung mit dem AIO CREATOR NEO von mediola wird dies in der Version vom 2021-07-06 oder neuer benötigt.
* Zur Verwendung mit IPSRCommand ([Download](https://www.tabepa.de/download/IPSRCommand.zip)) wird die Version 1.05 oder neuer benötigt.
* Werden Ereignisse per Skript erstellt, so muss diesen per [IPS_SetEventAction](https://www.symcon.de/de/llms/functions/management-events.md) eine Aktion zugewiesen werden, damit sie fehlerfrei auslösen können
* WebFronts ohne Kennwort sind standardmäßig nicht mehr von extern nutzbar. Ein WebFront ohne Kennwort muss ab IP-Symcon 6.0 explizit im „Sicherheit“ Bereich der WebFront Instanz dafür freigeschaltet werden.
* Sys_GetURLContent hat bisher das SSL Zertifikat nicht korrekt überprüft. Dies wurde korrigiert.
### Liste der Änderungen
### Allgemein
* Neu: PHP auf 7.4.20 aktualisiert
* Neu: Der Ablaufplan wurde als neuer Typ der Automation eingeführt
* Neu: ARM64 (aarch64) Version für Raspberry Pi und Docker (inkl. Apple M1)
* Neu: RTSPS und HTTPS wird bei Streams unterstützt (gültige Zertifikate werden benötigt!)
* Neu: max_execution_time in PHP auf 0 gesetzt, weil es Ursache für viele Abstürze war.
* Neu: set_time_limit darf seit der 6.0 nicht mehr aufgerufen werden. Einige PHP-Module und Skript müssen angepasst werden, sodass diese die Funktion nur auf Versionen kleiner 6.0 aufgerufen wird.
* Neu: Windows Daten Pfad kann nach der Installation verändert werden
* Neu: Notification Control verbessert, sodass es die neuen Möglichkeiten der Liste nutzt
* Neu: Hinweise im Instanz-Debug von I/O, wenn Demo-Version abgelaufen ist
* Neu: WebFront wird ebenfalls deaktiviert, sobald die Demo-Version abläuft
* Neu: Einige der Kern Instanzen (z.B. Archiv) sollten nur einmal erstellt werden dürfen. Wir prüfen dies nun beim Erstellen.
* Neu: Intern werden alle Netzwerkzugriffe über cURL abgebildet (SSL-Zertifikate werden jetzt überall konsistent und korrekt geprüft und es gibt viel bessere Fehlermeldungen bei z.B. Timeouts oder Zertifikatsfehlern)
* Neu: Image Grabber unterstützt jetzt auch Digest Authentication
* Neu: VerifyPeer/VerifyHost kann im HTTP Client, POP3, IMAP, SMTP Modul und HomeMatic Socket aktiviert/deaktiviert werden
* Neu: Docker Builds werden jetzt mit einem (Docker) Suffix markiert, da diese in Zukunft für mehrere Plattformen verfügbar sein können
* Neu: User-Agent wird in allen internen Netzwerkzugriffen und allen PHP Netzwerkzugriffen auf IP-Symcon/Version gesetzt
* Neu: Legacy Konsole/Dashboard wird (da inkompatibel) nicht mehr ausgeliefert (Reduziert das Setup um ~5MB)
* Neu: Verbindungen mit Legacy Konsole/Dashboard werfen eine aussagekräftige Fehlermeldung
* Neu: Neue Profil Millivolt
* Neu: Bessere Absturz-Berichte werden gesendet
* Neu: Google Assistant Request Limit erhöht sich automatisch, wenn viele Variablen eingerichtet sind
* Fix: Absturz bei Fehlerhaften Daten in IPS_SetConfiguration korrigiert
* Fix: DNS-SD: IPv4 Adressen landen nicht mehr im IPv6 Array
* Fix: IP-Symcon bricht Startvorgang ab, sofern Port 3777 nicht verfügbar ist
* Fix: In seltenen Fällen konnte die Konsole den Snapshot nicht laden wenn der interne Timestamp auf 0 stand
* Fix: Kleine Optimierung beim Ausführen von Text-Skripten (+ im Log wird die Größe nach der erfolgreichen Ausführung korrekt angezeigt)
* Fix: Sys_GetMemeryInfo funktioniert unter Linux mit >4 GB RAM
* Fix: WebHooks liefern statt HTTP/1.0 200 X ein HTTP/1.1 200 OK, sofern keine andere Status-Zeile per PHP definiert wurde (HTTP/1.0 200 X ist laut HTTP Specs vollkommen valide, aber z.B. Loxone scheint damit aktuell Probleme zu haben)
* Fix: Notification Control verursacht keine Fehler mehr, wenn kein Gerät ausgewählt ist
* Fix: PHP-Fehler werden als Rohtext dargestellt und nicht mehr als HTML
* Fix: Wochenplanaktionen mit schwarzer Farbe können gelöscht werden
* Fix: Graphen: Nachkommastellen vom Profil werden beachtet sofern möglich
* Fix: Graphen: Am 01. eines kurzen Monats werden Graphen wieder korrekt gerendert
* Fix: Icon-Namen aller Objekte dürfen keine Leerzeichen enthalten. Dies wird korrekt validiert.
* Fix: Das Zurücksetzen von lokalen Änderungen im Module Control konnte in sehr seltenen Fällen fehlschlagen
* Fix: Das Aufräumen der Logdateien konnte bei sehr weniger Speicherplatz fehlschlagen, sodass das Logging deaktiviert wurde (SymBox)
* Fix: Der Update Kanal unter Ubuntu/Rasperry Pi wird korrekt erkannt, wenn https verwendet wird
* Fix: TextParser: Genutzte Variablen werden bei Referenzen einbezogen
* Fix: Bei niedrigem Speicherplatz wurden ggf. zu viele Logfiles gelöscht, wodurch das Aufräumen
* Fix: XDebug Extension wird korrekt als Zend-Extension geladen (Windows)
* Fix: VoIP funktioniert auf der SymBox wieder korrekt (Nur SymBox)
* Fix: Neue Installationen mit dem Windows-Installer verhinderten das korrekte Einrichten von Lizenzen und fielen in den Demo-Modus zurück (Nur Windows)
* Fix: $_IPS['TRIGGER'] Systemvariable fehlte seit dem 6.0 Release
* Fix: Suche/Ersetzt in Dateien funktioniert weiterhin korrekt, wenn eine Skriptdatei fehlt
* Fix: Abarbeitung von EventLimit war um eins versetzt (seit 4.0)
* Fix: Absturz korrigiert, sofern beim Beenden das Schreiben der Settings fehlgeschlagen ist
* Fix: Absturz im WS Client korrigiert, welcher bei ständigem Verbinden/Trennen auftreten konnte
* Fix: Absturz/Speicherleck bei RTSP Streams wenn diese oft und schnell im WebFront hin und her geschalten wurden
* Fix: Speicherleck in Sys_GetNetworkInfo unter Windows korrigiert
* Fix: Link zum alten Community-Dashboard angepasst
### Archiv
* Neu: Spezialschalter „ArchiveWatch“, der einige Debug-Ausgaben vom Archiv aktiviert
* Fix: Bei AC_GetAggregatedValues konnte manchmal die Duration falsch zurückgegeben werden
* Fix: Werte können mit . und , als Dezimaltrennzeichen hinzugefügt werden
* Fix: Beim Reaggregieren konnten ungültige UTF8 Zeichen an die Konsole gesendet werden, die dadurch neu geladen hat
### Aktionen
* Neu: Aktionen wurden eingeführt und ersetzen die Muster aus Ereignissen
* Neu: Aktion um ein Ereignis zu aktivieren/deaktivieren
* Neu: Aktionen um die Rechenarten (Addieren, Subtrahieren, Multiplizieren, Dividieren) mit dem Wert einer anderen Variablen zu verwenden
* Neu: Aktion für Gruppenschaltung aller Variablem mit einem definierten Profil innerhalb einer Kategorie
* Neu: Aktion um eine Push-Nachricht via WebFront zu verschicken
* Neu: Aktionen um Variable auf den Wert einer anderen Variablen zu setzen oder schalten
* Neu: Aktion um eine E-Mail via SMTP-Instanz zu verschicken
* Neu: Neue Aktion zum Warten mit einer Wartezeit, welche per Variable festgelegt wird
* Neu: Neue Aktionen zum Schalten mit einem Invertierten/Multiplizierten/Dividierten Wert
* Neu: Neue Aktion zum Konkatenieren von String-Werten
* Neu: Aktion um aggregierte Werte via Archiv abzufragen, insbesondere auch fließend die letzten 24 Stunden und dergleichen
* Neu: Die Aktion um Instanzfunktionen auszuführen ermöglicht es nun, den Rückgabewert in eine Variable schreiben zu lassen
* Neu: Wenn-Dann Aktion, welche ein Ereignis als Bedingung hat
* Neu: Aktion für „Wenn …, dann“ mit mehrfachen Bedingungen
* Neu: Neue Aktion „Bedingung“, um Ablaufplan bei nicht-erfüllung abzubrechen
### Geräte
* Neu: MQTT Client: Die ClientID kann angepasst werden
* Neu: MQTT: Retained Messages können eingesehen und gelöscht werden
* Neu: MQTT: Retained Messages werden nach 7 Tagen (Einstellbar) aufgeräumt ohne Update
* Neu: MQTT: Retained Messages werden verzögert in die Persistenz übertragen, um die Performance zu verbessern
* Neu: MQTT Geräte Instanzen unterstützen JSON, welches automatisch in Variablen/Instanzen zerlegt wird
* Neu: ModBus: Im ModBus Gateway können ganze Blocke definiert werden, welche am Stück ausgelesen werden sollen. Dadurch kann die Performance wesentlich verbessert werden. Die Timer in den jeweiligen Instanzen sollten dann deaktiviert werden!
* Neu: ModBus: Unterstützung for den Datentyp: String
* Neu: ModBus: Konfigurator, welcher eine Übersicht aller eingerichteten ModBus Instanzen anzeigt (Vorbereitung für einen Export/Import zur einfachen Konfiguration von ModBus Geräten)
* Neu: KNX Discovery erkennt IP-Gateways anhand der gemerkten MAC Adresse, sofern die IP-Adresse sich geändert hat
* Neu: KNX: „Status emulieren“ Eigenschaft
* Neu: KNX: Module von EIB konsistent nach KNX (Legacy) umbenannt
* Neu: KNX: Schlagwörter zum Erkennen von Status-GAs im Konfigurator sind jetzt konfigurierbar
* Neu: KNX: XML-Export ist im Konfigurator standardmäßig ausgewählt
* Neu: KNX: Sofern der OPC-Export ausgewählt wird, gibt es eine Warnmeldung, dass der XML-Export bevorzugt genutzt werden sollte
* Neu: EnOcean: Unterstützung für Rauchmelder D2-14-30
* Neu: EnOcean: Unterstützung für hochauflösende Ansteuerung von Eltako FRGBW71L
* Neu: EnOcean: Unterstützung der Konfiguration von D2-01-* Geräten für Energie-/Leistungsmessung
* Neu: JSON Decoder Modul zum leichten Einlesen von JSON Dateien über den HTTP Client
* Neu: Eltako FABH130
* Neu: LCN Gateway steht standardmäßig auf 200 Dimschritte
* Neu: Z-Wave: Expertenoption zum „Sperren der Variablen“ um das Erstellen von falschen Variablen zu verhindern, sofern Sensoren fehlerhafte Daten senden.
* Neu: Image Grabber/HTTP Client: Auswahl zwischen Basic/Digest Authentifizierung
* Neu: Eltako: FD62NP-230V, FD62NPN-230V, FL62-230V, FL62NP-230V, FR62-230V, FR62NP-230V werden unterstützt
* Neu: KNX: Wenn Fehler beim Verbindungsaufbau auftreten zeigen wir eine bessere Fehlermeldung
* Neu: Eltako: FJ62/12-36V DC, FJ62NP-230V werden unterstützt
* Fix: Eltako FAFT60 Batterie Anzeige wurde nicht korrekt in Volt umgerechnet
* Fix: KNX: „Status emulieren“ ist jetzt auch unter Windows verfügbar
* Fix: EnOcean: Konfigurator zeigt das generische „Geräte hinzufügen“ nicht mehr als neues Gerät an
* Fix: ModBus: Konfigurator zeigt das generische „Geräte hinzufügen“ nicht mehr als neues Gerät an
* Fix: Shutter Control: Bessere Beschreibung der Zeitangaben
* Fix: MQTT: Server Konfiguration konnte manchmal wegen UTF-8 Fehler nicht geöffnet werden
* Fix: HomeMatic Socket blockiert beim Verbinden nicht mehr die MessageSink
* Fix: ModBus Gateway intern umgebaut, sodass der Datenfluss für PHP-Module korrekt funktioniert
* Fix: OneWire Test-Center ist konsistent verfügbar
* Fix: Text Parser / JSON Decoder erstellen standardmäßig einen HTTP Client bei Neu-Erstellung
* Fix: MQTT Client Configurator erstellt Client Devices (und nicht mehr Server Devices)
* Fix: ALL4000 konnte nicht eingerichtet werden
* Fix: KNX: Icon für DPT 14.068 korrigiert
* Fix: HomeMatic: LOW_BAT wird korrekt das Battery Profil zugeordnet
* Fix: EnOcean: General Profile Telegramme werfen keine Fehlermeldung mehr
* Fix: JSON Decoder: Seltene Fehlermeldung beim Schreiben Werten korrigiert
* Fix: EnOcean: D2-01-* Typen laut aktueller EEP Beschreibung angepasst
* Fix: KNX: Erkenne Status-GA durchsucht nun alle Keywords einzeln
### I/Os
* Neu: Neuer Datenfluss für UDP Socket, um Unicast/Broadcast gleichzeitig über einen I/O abbilden zu können
* Neu: Server Socket: Zertifizierungsstelle kann optional angegeben werden
* Neu: SSE Client kann eigene, in der Konfiguration definierte, Header mitsenden
* Neu: SSE Client versendet ein eigenes Datenpaket, welches das SSE Protokoll direkt geparst ausgibt
* Neu: Serial Port erkennt Symlinks welche auf ttyUSB* gehen (Insbesondere nützlich für udev Regeln)
### Konsole
* Neu: Initiales Kopieren/Verlinken/Auslöserauswahl springt zur Position des Zielobjektes
* Neu: Spalte „Geändert“ im Objektbaum
* Neu: Bearbeiten-Dialog im Archiv zeigt nun die gewählte Variable an
* Neu: Verwendete Bibliotheken aktualisiert
* Neu: Schönere Fehlermeldungen, wenn der Login aus unbekannten Gründen fehlschlagt
* Neu: Beim Umbenennen wird der aktuelle Name ausgewählt, sodass er beim Eingeben eines neuen Namens direkt überschrieben wird
* Neu: Der Variable-bearbeiten-Dialog unterstützt nun auch ein Schalten von Variablen
* Neu: Werden Variablen geloggt, kann dies nun am dazugehörigen Icon im Objektbaum erkannt werden
* Neu: Anzeige von einer roten Warnmeldung wenn es starke Verzögerungen auf dem Rückkanal gibt
* Neu: Schnellfilter im Objektbaum filtert auch die Beschreibungsspalte, falls diese sichtbar ist
* Neu: Die Konsole überprüft nun Browserfeatures und nicht die Browserversion um ggfs. eine Warnung anzuzeigen. Dies verhindert insbesondere die Warnung bei aktuellen Edge-Browsern.
* Neu: Im Skripteditor kann nun via Kontextmenü auf die Zwischenablage zugreifen (Kopieren/Ausschneiden/Einfügen)
* Neu: Der Module Store ist nicht mehr Beta
* Neu: Hat eine via Konfigurator gelöschte Instanz physikalisch untergeordnete Instanzen, so wird angeboten auch diese zu löschen
* Neu: Mehrere Zeilen können im Ablaufplan ausgewählt und beispielsweise gleichzeitig dupliziert werden
* Neu: Enter und Entf können als Tastaturkürzel im Ablaufplan verwendet werden
* Neu: Im Info-Dialog wird beim Kopieren die Architektur einbezogen
* Fix: Bei Bedingungen geht beim Wechsel von Variablen mit Assoziationen der Wert nicht verloren
* Fix: Die Konsole generiert beim Speichern eine neue Skriptdatei, sofern die alte gelöscht wurde
* Fix: Bearbeite Wochenpläne wie vorgesehen, wenn nur eine Wochenplanaktion gesetzt ist und diese angeklickt wird
* Fix: Nicht-Gerät-Instanzen können bei der Erstellung nicht (unsichtbar) in eine Kategorie geschoben werden
* Fix: Gebe eine sprechende Fehlermeldung zurück, wenn im Archiv versucht wird ein Wert mit einem neunstelligen Zeitstempel hinzuzufügen
* Fix: Kaputte Module im Module Store konnten unter gewissen Umständen nicht geöffnet werden. Dies ist wieder möglich
* Fix: Verhindere kosmetische Fehlermeldung, welche gelegentlich auftrat, wenn eine Instanz beim Schließen das Tabs gespeichert wurde
* Fix: Bei erweiterten Bedingungen mit Wochentagsregeln, erkennt die Konsole nun korrekt, wenn die Regel per Skript gelöscht wird
* Fix: Verhindere Fehler, wenn der Skripteditor eine Autovervollständigung versucht, während er innerhalb eines String ist
* Fix: Endlosschleife/Defekter Objektbaum bei IPS_GetLocation korrigiert, wenn ein Ereignis mit Auslöser auf eine Variable unterhalb vom selben Ereignis erstellt wurde
* Fix: Defekte Module im Module Store können editiert werden
* Fix: Anzeige einer Warnmeldung, wenn die Demo abgelaufen ist
* Fix: Beim Aktivieren einer Lizenz über das Demo Widget wird korrekt der „Neustart“-Balken angezeigt
* Fix: Module Store: Beim Erstellen von Instanzen wurden benötigte Spliiter + I/O Instanzen erstellen, eine Konfiguration war bisher jedoch nur im Nachhinein möglich. Mit diesem Update können diese Instanz direkt Konfiguriert werden, genau wie im „Instanz erstellen“ Dialog.
* Fix: Behebe Fehler, welcher beim Neu laden zu „Uncaught Cannot find object with Id“ führen konnte
* Fix: Update-Widget funktioniert korrekt für arm64 Versionen
* Fix: Würde der Wert einer Profilassoziation überschrieben werden, erscheint eine Frage, ob dies wirklich passieren soll
* Fix: Seltener Fehler behoben, welcher Emojis als Symbol in einer Liste abgeschnitten hat
* Fix: In seltenen Konstellationen konnte ein Ereignis ein Icon für Erfüllung der erweiterten Bedingungen anzeigen, obwohl keine Bedingungen gesetzt wurden. Dies wurde behoben
* Fix: Icons in Listen und Bäumen sind nicht mehr dragbar
* Fix: Anzeige von Boolean Assoziation „true“ im Profilmanager gefixt
* Fix: Erstellen von Medien (Dokumenten) über das „+“ korrigiert
### Pro-Konsole
* Neu: Links werden im Standardbrowser und nicht mehr innerhalb der Konsole geöffnet
* Fix: Verhindere kosmetische Fehlermeldung, wenn beim Schließen eines Tabs mehrere Tablisten existieren
* Fix: Medien können wie vorgesehen heruntergeladen werden
### WebFront
* Neu: WebFront Retro/Retro Mobile entfernt
* Neu: WebFronts ohne Kennwort sind standardmäßig nicht mehr von extern nutzbar
* Neu: Wird ein Server manuell hinzugefügt, so wird geprüft, ob es sich dabei um eine IP-Symcon handelt
* Fix: Nach einer versuchten (und fehlgeschlagenen) Verbindung zu einem IP-Symcon vor 5.0, ist der Verbindungsassistent weiter verwendbar
* Fix: Charts in Panels werden beim Tab-Wechsel mit korrekter Zeit angezeigt
* Fix: WebFront Visualization Instant hat den SecurityContext zu stark reduziert, wenn in den Standardeinstellungen die Startkategorie der mobilen App verändert wurde
### SymOS
* Neu: KNX/LCN kann über SymOS Connect und ETS/LCN Pro aus der Ferne programmiert werden. Diese Funktion befindet sich in einer internen Beta-Version und eine Freischaltung dafür kann über support@symcon.de angefragt werden.
* Fix: Backups mit der Größe > 2,1GB sind jetzt möglich
* Fix: Beim Booten der SymBox wurde der „IP-Symcon startet“ Dialog manchmal übersprungen
### PHP-SDK
* Neu: SDK für [Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)
* Neu: Neues Element [SelectAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* Neu: Neues Element [ScriptEditor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* Neu: Neues Element [ColumnLayout](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* Neu: Inhalt von [RowLayout](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) und [ColumnLayout](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) kann dynamisch angepasst werden
* Neu: Listen können durch den Benutzer bei gesetztem Parameter „changeOrder“ umsortiert werden
* Neu: Parameter für [SelectVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) um erlaubte Variablen einzuschränken
* Neu: on-Skripte können nun auch als Array eingetragen werden
* Neu: [Image](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) unterstützt nun width und onClick
* Neu: Parameter ‚loadValuesFromConfiguration‘ für [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) und [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* Neu: [Configurator](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) versucht die Spaltenbreite bei Knappheit besser zu verteilen und zeigt ggf. einen Scrollbalken
* Neu: [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) und [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) unterstützen nun „enabled“
* Neu: Parameter „moreDigits“ für NumberSpinner
* Neu: Werden bei einem NumberSpinner ohne „moreDigits“ mehr Nachkommastellen als erlaubt eingegeben, wird dies als Fehler angezeigt
* Fix: Dynamisch gesetzte Spaltennamen von Listen werden übersetzt
* Fix: Werden dynamisch neue Werte für ein Element [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) gesetzt, wird die aktuelle Sortierungsspalte beibehalten
* Fix: Ist beim [Configurator](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) visible auf false gesetzt, so wird das Element nun auch korrekt versteckt
* Fix: Wird der Suffix eines [NumberSpinner](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) dynamisch angepasst, so wird der neue Wert wie vorgesehen übersetzt
## V5.4->V5.5 (Q4/2020)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v54-v55-q4-2020/
### Wesentliche Änderungen
* [Verbesserte Streams](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Mobile Apps überarbeitet](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Optimiertes Archiv](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Neue Geräteanbindungen](https://www.symcon.de/de/llms/getting-started/migrationen.md)
#### Verbesserte Streams
Die Behandlung von Streams wurde optimiert. Egal ob ein Stream als RTSP oder MJPEG vorliegt, dieser ist nun nahezu live in der Visualisierung verfügbar, ganz gleich ob lokal oder per Fernzugriff. Auch können Streams nun unter Android, iOS, WebFront und der Verwaltungskonsole betrachtet werden.

#### Mobile Apps überarbeitet
Die Darstellung des Objektbaums in den Apps und im WebFront wurde gleichgezogen. Dadurch ist nun in den Apps eine tiefere Verschachtelung darstellbar. Um direkt in die richtige Visualisierung zu kommen, kann dies nun in der App voreingestellt werden. Noch mehr Aufwand spart man über die Schnellzugriffsleiste. Hier kann komfortabel auf Graphen, Favoriten und Nachrichten zugegriffen werden. Für die Einstellung der Farbtemperatur von Lampen gibt es nun eine optimierte Darstellung. Die oben beschriebenen Optimierungen der Streams gelten selbstverständlich auch für die Apps.

#### Optimiertes Archiv
Das Archiv wurde grundlegend überarbeitet. Dabei wurde es unter der Haube komplett optimiert, so dass nun beispielsweise Aggregationen deutlich schneller laufen. Gleichzeitig wurde der Speicherverbrauch drastisch gesenkt, da die Aggregationsdaten nun nicht mehr im Speicher gehalten werden. Zusätzlich ist es als neues Feature nun möglich bei einem Zähler Nullen und negative Werte zu ignorieren, welche in manchen Fällen bei Fehlfunktionen gesendet werden.

#### Neue Geräteanbindungen
Mit der neuen Version wurden diverse neue Geräte und Schnittstellen implementiert. So kann IP-Symcon nun auch nativ als MQTT Client verwendet werden und für EnOcean wurden zwölf zusätzliche EEPs eingebunden. Darüber hinaus kann CMI nun auch mit UVR65, UVR67, UVR 610 und CAN-EZ3 verwendet werden. Dazu kommen noch einige Optimierungen für KNX, S7 und eKey.
### Migration
> **Achtung:** Bitte erstellen Sie sicherheitshalber ein [Backup](https://www.symcon.de/de/llms/getting-started.md), sollten wider erwarten Probleme bei der Aktualisierung auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
### Liste der Änderungen
### Allgemein
* Neu: PHP 7.4.11 (Bitte beachten: https://www.php.net/manual/de/migration74.deprecated.php)
* Neu: RTSP Streams werden nach MJPEG umgewandelt
* Bild wird sehr zeitnah und fast live angezeigt
* Nun auch Unterstützung für Safari und iOS verfügbar
* Benötigt die Apps in Version 5.5
* Auflösung, Qualität und Frame-Rate wird beim Connect-Dienst reduziert, um Traffic zu sparen
* Neu: MJPEG Streams werden über IP-Symcon geroutet
* Direkt über den Connect Dienst verfügbar
* Basis Authentifizierung wird über IP-Symcon erledigt und ist somit uneingeschränkt nutzbar
* Benötigt die Apps in Version 5.5
* Neu: Tray Icon für Windows komplett erneuert mit High DPI Support
* Neu: Schalter um "Verschachtelung" zu aktivieren ist standardmäßig an und nur noch auf Legacy-Systemem verfügbar
* Neu: Schalter, um Enums anstatt CheckBox'en in den Apps zu nutzen (benötigt Apps in der Version 5.5)
* Neu: Connect ist für Neuinstallationen automatisch aktiviert
* Neu: Wochenplan kann maximal 32 Aktionen (vorher 8) haben
* Neu: Autostart im WebFront unterstützt die CIDR Notation
* Neu: IP-Autostart mit CIDR 0.0.0.0/0 wird auch über Connect-Dienst ausgewertet
* Neu: Mac Version wird korrekt von Apple Notarisiert, sodass Gatekeeper glücklich ist
* Neu: WebFront ist jetzt vom Typ Visualisierung und nicht mehr Konfigurator
* Neu: WebServer ist sofort beim Start verfügbar (und nicht erst beim Kernel Betriebsbereit)
* Neu: Durch besseres Caching sollte die Konsole ca. 1 - 3 Sekunden schneller Starten
* Neu: GetValueFormattedEx, welches einen weiteren Parameter akzeptiert. (Wert, der zum Formatieren genutzt werden soll)
* Neu: Web Server SSL Konfiguration geschieht jetzt über das Konfigurationsformular (Zertifikate im cert Ordner werden migriert und gelöscht)
* Neu: Web Server nutzt jetzt SSL 1.2 (SSL Labs attestiert IP-Symcon damit wieder die Note A)
* Neu: Settings haben eine Schema-Version um zukünftig inkompatible Downgrades zu verhindern
* Neu: Instanzen werden beim Starten in der Reihenfolge Core, Visualization, Discovery, Configurator, Device, Splitter, I/O erstellt, wodurch Probleme wie z.B. Verbindungsprobleme bei MQTT gelöst werden.
* Neu: WebFront Visualisierung: Hinweis, dass die Standard Graphen Optionen nur für das WebFront gelten
* Neu: OpCache ist jetzt standardmäßig aktiv - kann jedoch in den Spezialschaltern wieder deaktiviert werden
* Neu: max_memory_limit darf nun auf maximal 128MB erhöht werden
* Neu: CC_GetRequestLimitCount und NC_GetRequestLimitCount mit dem die Anzahl der Anfragen, welche gegen das tägliche Limit zählen, abgefragt werden kann
* Neu: NotificationWatch Spezialschalter welcher alle Anfragen an den Push-Nachrichten Server ins Log ausgibt
* Fix: Proxy Stream URLs filtern Benutzername/Passwort aus der Adresse im Logfile
* Fix: Lock Profil nutzt das adaptive Icon
* Fix: Duplizieren von Variable ohne Logging korrigiert
* Fix: Demo-Überprüfung unternimmt nun 5 Versuche á 10 Sekunden (manchmal war nach einem Neustart kein Internet verfügbar und die Demo startete ohne korrekte Endzeit und lief nur 6 Stunden)
* Fix: Duplizieren von Instanzen konnte Fehlschlagen, wenn die Instanzen unterschiedlich verbunden waren und dabei eine Instanz keine Verbindung hatte
* Fix: Attribute werden in der Persistenz direkt beim Register initialisiert
* Fix: In seltenen Fällen konnten Fehler in der Konsole erscheinen, wenn Objekte während des Öffnens gelöscht wurden
* Fix: Sys_GetNetworkInfo liefert nur aktive Netzwerk-Adapter
* Fix: Bei nicht mehr existierenden Variablen wird das Logging auf Inaktiv gestellt
* Fix: PRCE JIT unter MacOS korrigiert
* Fix: Nachrichten werden in korrekter Reihenfolge vor KR_READY verarbeitet, sodass z.B. Siemens Gateway die IS_ACTIVE Nachricht korrekt erhalten und verarbeiten
* Fix: User-Agent wurde bei Anfragen nicht korrekt gesetzt
* Fix: Löst hoffentlich Abstürze in Verbindung mit dem ServerSocket
* Fix: Anzahl der CPU’s konnte auf z.B. Intel NUCs nicht korrekt ermittelt werden
* Fix: MJPEG Streams, welche keine HTTP Ranges unterstützen, konnten nicht genutzt werden
* Fix: Seltene Abstürze beim Beenden, wenn während des Herunterfahrens „die Glocke“ gearbeitet hat
* Fix: Proxy: Im Log werden username, password, user, pw, usr, pwd Werte maskiert
* Fix: Netzwerk Bibliothek auf Stand der 5.4 zurückgesetzt um ggf. Probleme mit der neuen Version auszuschließen
* Fix: MessageQueueWatch Meldungen zu KL_NOTIFY (lila) befördert
* Fix: Notification Control: Beim Versenden von Test-Nachrichten war „Sent!“ nicht übersetzt
* Fix: Datenfluss ignoriert Pakete > 16kb sofern der ReceiveDataFilter/TransmitDataFilter gesetzt ist um Abstürze in der RegEx Engine zu umgehen. Dies wird im Debug Log der betroffenen Instanz geloggt.
* Fix: Fehlerhafte JSON-RPC Requests konnten IP-Symcon zum Absturz bringen
* Fix: WebServer konnte bei starker Nutzung vom IPSView Web-Client abstürzen
* Fix: Abstürze unter Raspberry Pi & SymBox aufgrund von fehlerhafter PCRE/JIT Bibliothek gelöst
* Fix: Endlosschleife/Absturz bei IPS_GetLocation korrigiert, wenn ein Ereignis mit Auslöser auf eine Variable unterhalb vom selben Ereignis erstellt wurde
### Archiv
* Neu: Optimierung des Archivs
* Neu: Archiv nutzt jetzt intern Attribute anstatt Properties. (Die AC_* Funktionen benötigen kein IPS_ApplyChanges mehr!)
* Neu: Bei Zähleraggregationen können Nullen ignoriert werden
* Neu: Aggregationsdaten einer Zählervariable beginnen nun direkt beim ersten Wert, nicht erst beim ersten Delta
* Neu: Wird das Logging einer Variablen erstmalig aktiviert, wird direkt der aktuelle Wert geloggt
* Neu: Erlaube Migration der Daten von Integer Variablen zu Float Variablen
* Neu: Erlaube parallele Aggregation mehrere Variablen
* Neu: Ignoriere Nullen wurde erweitert, sodass es auch negative Werte filtert
* Fix: Die Referenzen des Archivs werden bei Bedarf aufgeräumt. So sollte es nicht mehr möglich sein, dass Variablen als Referenz das Archiv angeben, dort allerdings nicht zu finden sind.
* Fix: Alternative Implementation für die kontinuierliche Aktualisierung der Datengröße, behebt möglicherweise die negativen Größenangaben
* Fix: Bei einer Reaggregation mit vielen CPUs konnte diese evtl. in einem Deadlock enden
* Fix: Problem behoben, wenn es im DB-Ordner Daten gab, aber keinerlei Referenz auf die Variable mehr existierte
* Fix: Problem beim Starten mit der letzten Version korrigiert
* Fix: Statistiken von String-Variablen wurden nicht korrekt berechnet
* Fix: Archiv: In seltenen Fällen konnte ein Endlosschleife entstehen und alles an RAM verbrauchen, sodass IP-Symcon abstürzt
* Fix: Archiv: Seit der Optimierung aus der vorletzten Beta konnten Race-Conditions auftreten und den Dienst zum Absturz bringen
* Fix: Archiv: Viele Graphen bei Systemen ohne SSD konnten das Gesamtsystem verlangsamen
* Fix: Archiv: Beim Duplizieren von Variablen konnte der initiale Wert doppelt geloggt werden
* Fix: AC_AddLoggedValues versucht mehrfach auf die Datei zuzugreifen, sofern diese aktuell „blockiert“ wird
### Geräte
* Neu: CMI: Unterstützung für UVR65, CAN-EZ3, UVR610, UVR67
* Neu: EnOcean: EnOcean Gateway zeigt die EURID an
* Neu: EnOcean: D2-15-00, D2-07-00, D2-03-00, D2-03-0A, D2-03-10, D2-A0-01
* Neu: EnOcean: A5-20-06, A5-10-1E, A5-10-22, A5-10-23
* Neu: EnOcean: F6-01-01 und F6-10-01
* Neu: MQTT Client (inkl. Device, Splitter und Konfigurator)
* Neu: MQTT: Nutzt die Verbesserung vom Server Socket besser, indem er weniger blockiert
* Neu: MQTT: Nachrichten mit Retain Flag werden auch bei IP-Symcon Neustart korrekt retained
* Neu: KNX Shutter unterstützt das prozentgenaue Positionieren von Lamellen
* Neu: eKey: Unterstützung für Rare Net Protokoll
* Neu: ALL3653 zu den unterstützen Geräte hinzugefügt
* Neu: S7 unterstützt nun den Typ "String"
* Neu: HomeMatic IP ist standardmäßig beim Erstellen aktiv
* Neu: Bessere Fehlermeldung, wenn HomeMatic Kanal (z.B. RF) nicht verfügbar ist
* Fix: Min/Max bei DPT9 realistischer gestaltet
* Fix: LCN Module Konfigurator werden korrekt übersetzt
* Fix: VoIP: Manchmal konnte VoIP stecken bleiben, wenn ein Anruf abgelehnt wurde
* Fix: LCN sollte sich beim Start direkt verbinden, ohne das bei KR_READY eine Erneutes verbinden angestoßen wird
* Fix: Die Initialisierung von KNX, FHZ, IRTrans, MQTT Client, Siemens S5/S7/Logo, WMRS200, Z-Wave wird asynchron gemacht und verzögert nicht mehr den Start
* Fix: EnOcean: D2-01-xx Einzelkanal Rollladenaktoren, wie z.B. der OPUS Shutter, können jetzt korrekt angesteuert werden
* Fix: EnOcean: F6-05-00 und F6-05-02 fehlten die Konfigurationsformulare
* Fix: MQTT: Beim Empfang von unvollständigen Datenpaketen, konnten bereits vollständige Datenpakete verworfen werden
* Fix: MQTT: Keep-Alives werden beachtet und Clients nach Timeout Disconnected (+LWT versendet)
* Fix: Web Server: Beim Importieren von Zertifikaten konnten unter Windows diese nicht korrekt aufgeräumt werden
* Fix: MQTT: Wenn die Session Cleanup Zeit versehentlich zu klein Eingestellt wird, werden noch aktive Sessions nicht fälschlicherweise mit aufgeräumt
* Fix: MQTT: Löst hoffentlich ein Problem, wobei Geräte fälschlicherweise das LWT empfangen und dann nicht mehr geschaltet werden können
* Fix: WebServer hat in einigen Fällen nach dem Import die SSL-Zertifikate nicht in die Persistenz geschrieben
* Fix: Z-Wave Geräte nutzen jetzt korrekt das Battery.100 Profil
* Fix: MediaPlayer warf eine Fehlermeldung, wenn ein WAC_Stop direkt nach IP-Symcon start ausgeführt wurde
* Fix: SSDP Suche fand einige Geräte nicht, welche sich zu 100% an die Spezifikation gehalten haben
* Fix: KNX Konfigurator: Wenn ein XML-Export viele GAs hatte, welche keine DPT Zuordnung haben, konnte der Konfigurator ewig laden und IP-Symcon zum Absturz bringen
* Fix: Ausgehende Anrufe per VoIP konnte nicht korrekt abgebrochen werden
* Fix: DNS-SD: Abstürze unter Linux, Ubuntu, RPi wenn gleichzeitig eine Anfrage lief und die Instanz übernommen wurde
* Fix: MQTT: Abstürze bei defekten Paketen korrigiert. (Jetzt kommt eine Fehlermeldung „Consumed Packet is larger than buffer“)
* Fix: MQTT: Abstürze/Unendlich viele Log-Nachrichten mit „Skipping Cleanup“ korrigiert
* Fix: Siemens S7/Logo: Verbinden konnten fehlschlagen, wenn Anfragen bereits vor der erfolgreichen Verbindung per Skript angefordert wurden
* Fix: confirm-Dialoge bei Z-Wave waren nicht übersetzt
* Fix: confirm-Dialog beim Zurücksetzen vom Z-Wave Gateway hinzugefügt
* Fix: Neue TCM515 Revision sendet neue Bestätigungsmeldungen, welche nicht korrekt ausgewertet wurden
* Fix: LCN Shutter hat den Status nicht korrekt nachgeführt, wenn die Invertierung aktiv war
* Fix: Alte EIB RGB/RGBW Instanzen können wieder korrekt Rückmeldungen empfangen
* Fix: EEP A5-14-08 wird jetzt korrekt geladen und ist verfügbar
### I/Os
* Neu: I/O für Server Side Event (SSE Socket)
* Neu: WebSocket Client (inkl. SSL/TLS) [Datenfluss wie bei ClientSocket]
* Neu: WWW Reader zu HTTP Client umbenannt
* Neu: Server Socket unterstützt SSL/TLS
* Neu: ServerSocket bietet die Option zum ignorieren von Verbindungsabbrüchen
* Neu: ServerSocket kann 5 Verbindungen gleichzeitig verarbeiten
* Neu: Client Socket hat SSL/TLS Unterstützung
* Fix: Probleme beim Senden von sehr vielen Paketen über die I/Os (insbesondere Server Socket bei MQTT) gelöst
* Fix: ServerSocket hat Feld für Zertifikate angezeigt, obwohl SSL deaktiviert war
* Fix: Beim gleichzeitigem Öffnen/Schließen von I/Os konnte IP-Symcon abstürzen
### Konsole
* Neu: Medienkategorie entfernt - Medien ohne übergeordnetes Objekt werden nun direkt auf der Hauptebene des Objektbaumes angezeigt
* Neu: Speichere die letzte Spaltenauswahl in Objektbäumen für zukünftige Objektbäume
* Neu: Duplikation eines Objektes in einer Spezialkategorie geschieht direkt vor Ort ohne Positionsauswahl
* Neu: Spezialkategorie "Visualisierungen" beinhaltet WebFronts
* Neu: Konsole wartet bis der Kernel Betriebsbereit ist und zeigt eine Meldung, dass IP-Symcon noch startet
* Neu: Konsole zeigt an, wenn der Server heruntergefahren wird und startet die Konsole neu, sobald IP-Symcon wieder verfügbar ist
* Neu: Per Doppelklick auf einen Stream wird eine passende Vorschau gegeben
* Neu: Permanente Benachrichtigung, sofern die Lizenz/Spezialschalter geändert wurde; der Neustart jedoch nicht durchgeführt wurde
* Neu: Unbehandelte Fehler werden sofort angezeigt, damit diese gemeldet werden können
* Neu: Im Archive Control werden beim Auswählen einer nicht mehr existierenden Variablen nicht verwendbare Aktionen ausgegraut
* Neu: Im Archive Control kann nun auch nach der Statusspalte sortiert werden
* Neu: Werden Variablen mit geloggten Werten gelöscht, so wird gefragt ob die geloggten Werte ebenfalls gelöscht werden sollen
* Neu: Inhalt des Variableneditors (Doppelklick auf Variablenwert) kann markiert und somit auch kopiert werden
* Neu: Grundlegende Eigenschaften von IPS-View-Formularen können nun auch in der Konsole angepasst werden
* Fix: Verwendete Bibliotheken aktualisiert
* Fix: Nach dem Schließen von Dialogen wird der Fokus wie vorgesehen wieder auf den Objektbaum geschoben, damit Tastenkürzel direkt weiter verwendet werden können
* Fix: Spezialkategorien unterstützen kein "ObjektID kopieren" mehr
* Fix: Instanzen, die über einen Konfigurator erstellt wurden, können nun wie vorgesehen andere valide Verbindungen finden obwohl sie sich initial anders verbunden haben
* Fix: Mögliches Problem gefixt, wodurch der gespeicherte Zustand der Konsole beim Start verloren gehen konnte
* Fix: Shortcuts im Skripteditor funktionieren nun auch unter Mac und verwenden auch Cmd statt Strg
* Fix: Verifkation in einer ValidationTextBox wird nicht mehr ein Zeichen zu spät angewandt
* Fix: PopupAlerts konnten zu groß werden
* Fix: Strings bei "Bei bestimmter Wert" werden nicht mehr mit 'null' initialisiert
* Fix: I/Os können in der physikalischen Ansicht korrekt gelöscht werden
* Fix: Wird für eine neue Variable der Aggregationstyp Zähler beim Aktivieren des Loggings ausgewählt, wird dies wie vorgesehen übernommen.
* Fix: Das Schnellausführungswidget wird nicht mehr leer angezeigt, wenn während dessen Ladevorgang auf ein Tab gewechselt wird
* Fix: Bei fehlerhaften Debug-Meldungen werden die problematischen Rohdaten angezeigt
* Fix: Im ArchiveControl wird nicht mehr versucht nicht-Variablen-Objekte mit gelöschten Variablen gleicher ID gleichzusetzen
* Fix: Bei einem Fehler beim Speichern im Profilmanager, wird dieser auch ausgegeben
* Fix: Verhindere Fehler beim Öffnen eines ausgelösten Ereignisses dessen Auslöser nicht mehr existiert
* Fix: Sonderzeichen in Variablenaktionen mit Strings werden korrekt beim Öffnen des Ereignisses wieder dargestellt
* Fix: Instanzaktionen mit Stringparametern können nun auch wie vorgesehen mit Sonderzeichen verwendet werden
* Fix: Autovervollständigung im Skripteditor um mehr Konstanten und Systemvariablen erweitert
* Fix: Werte Auslösungwert in ausgelösten Ereignissen bei "leerem" Wert korrekt aus
* Fix: Drag & Drop im Objektbaum leicht optimiert
* Fix: Sonderzeichen im DebugLog werden nun wie vorgesehen ausgewertet
* Fix: Der Lizenz-Benutzername wird nun einheitlich als solcher bezeichnet
* Fix: Das Schnellausführungswidget zeigt die Objektinformation hinter der ID wie vorgesehen nur mit dem Namen ohne Pfad an
* Fix: Beim Öffnen eines Moduls nach einem Update konnte ein Fehler kommen. Dieser wurde behoben
* Fix: Erkenne bei Tastenkombinationen im Objektbaum wie vorgesehen, wenn kein Objekt ausgewählt ist und tue entsprechend nichts
* Fix: NumberSpinner setzt jetzt die minimum/digits Parameter korrekt um
* Fix: Eingabe von Datum/Uhrzeit im Safari korrigiert bei der manuellen Archiv-Daten Eingabe
* Fix: Sporadische Fehlermeldungen beim Editieren vom Wochenplan korrigiert
* Fix: Wird im Such- oder Filterfeld des Objektbaums etwas per Strg + V eingefügt, wird nicht zusätzlich ein möglicherweise kopiertes Objekt im Objektbaum eingefügt
* Fix: Float-Variablen mit Assoziationsprofilen werden nun wie vorgesehen bei erweiterten Bedingungen eines Ereignisses gehändelt
* Fix: Die Werte von Variablen mit Prozentprofilen werden wie vorgesehen bei erweiterten Bedingungen dargestellt
* Fix: Drücken von STRG+V im Suchfeld fügt keine neuen Instanzen im Objektbaum hinzu
* Fix: In seltenen Konstellationen, könnten Textfelder mit $-Zeichen in der Instanzkonfiguration zu Fehlern führen. Dies wurde behoben
* Fix: Profile konnten nach einem Neustart in der Pro Konsole fehlen
* Fix: Im Snapshot konnte das compatibility Feld doppelt vorhanden sein
* Fix: Bei erweiterten Bedingungen mit Wochentagsregeln, erkennt die Konsole nun korrekt, wenn die Regel per Skript gelöscht wird
* Fix: Wird beim Hinzufügen einer ObjektID im Skripteditor die Auswahl per Enter bestätigt resultiert dies nicht mehr in einem Zeilenumbruch
* Fix: Die ausgewählte Instanz bei einem SelectModule-Feld wird nun wie erwartet angezeigt
* Fix: Verhindere kosmetischen Fehler mit _isPrimaryDialog
* Fix: Defekte Module im Module Store können editiert werden
### Pro-Konsole
* Neu: "Letzte Verbindung" wird kontinuierlich aktualisiert solange ein Fenster offen bleibt
* Neu: Filter-Möglichkeit für Server
* Neu: Bessere Fehlermeldung, wenn selbst-signierte Zertifikate verwendet werden
* Fix: Beim Umdocken einer Instanzkonfiguration konnten Werte in verschachtelten Elementen (z.B. RowLayout) verloren gehen. Dies wurde behoben
* Fix: Bei "Erneut suchen" von Servern wird die Verbindung zum Netzwerk komplett neu aufgebaut. So können Server gefunden werden, obwohl man sich erst nach dem Öffnen des Verbindungsassistenten mit dem Netzwerk verbunden hat
* Fix: Schlägt das Laden von Lizenzen aus der Lizenzverwaltung fehl, z.B. weil kein Internet vorhanden ist, so wird der Benutzer abgemeldet und bleibt nicht bei "Wird eingeloggt..." stehen
* Fix: Unter Linux wird der in der sources.list gewählte Update Kanal korrekt erkannt
* Fix: Unter Linux wird geprüft, ob der update-manager verfügbar ist
* Fix: Sind Tabs mit gleichem Namen in verschiedenen Tablisten offen, so werden sie namentlich differenziert als wären sie in der selben Liste
* Fix: Verwendete Bibliotheken aktualisiert
* Fix: Login zur Lizenzverwaltung funktioniert nach Überarbeitung des persönlichen Bereichs wieder
* Fix: Neue Benutzer oder Benutzer mit geändertem Benutzernamen können sich wieder via E-Mail anmelden
### WebFront
* Neu: Unterstützung für IPSView WebViews (Als Element und direkt als Medien-Objekt)
* Neu: Unterstützung für neue RTSP Streams (werden direkt im Bild und nicht als iFrame dargestellt)
* Neu: Unterstützung für MJPEG Streams, welche direkt über IP-Symcon / Symcon Connect abgerufen werden
* Neu: Streams unterstützen im Inhaltswechsler die Skalieren und Aspect Ratio Einstellung
* Neu: Streams werden, wenn über Connect dargestellt, nach 1 Minute pausiert
* Neu: Aktionen im Wochenplan sind scrollbar und können maximal 32 Aktionen darstellen
* Neu: Dialog für Verbindungsabbrüche überarbeitet
* Fix: Legende mit „großer“ Legende haben das Aktivierungshäkchen falsch skaliert
* Fix: Beim Erstellen von einer Menüleiste direkt gefolgt von einer Kategorie konnte die Startkategorie nicht gewählt werden
* Fix: Ein WFC_SwitchPage wird als Interaktion vom Idle Widget ausgewertet
* Fix: Die Meldung, dass die Zeitzone nicht stimmt, konnte nicht „weggeklickt“ werden
* Fix: Einstellungen aus 3.x und älter mit versteckten Root-Objekte wurde im Editor nicht korrekt übersprungen
* Fix: WebFront läuft bei Verbindungsverlust sofort neu, sofern möglich
* Fix: Wir probieren das Neu-Verbinden jetzt am Anfang schneller und zum Ende hin mindestens alle 10 Sekunden
* Fix: Popup Module laden Streams nicht mehr im Hintergrund, sondern nur, wenn diese wirklich sichtbar offen sind
* Fix: Charts in Panels werden beim Tab-Wechsel mit korrekter Zeit angezeigt
### SymOS
* Neu: Alle SymBox'en die nach August 2019 gekauft wurden, erhalten ~4 GB zusätzlichen Speicher!
* Neu: Benachrichtigung für alle, welche noch ein CM1 in der SymBox nutzen
* Neu: Wechsel von uclibc auf glibc (Wir nutzen glibc auf den anderen Plattformen auch schon)
* Neu: SymOS aktualisiert, sodass es ebenfalls die neusten Bibliothek-Versionen enthält
* Fix: Backups können jetzt mehrere GB groß sein, sofern es genug Speicherplatz auf der SymBox gibt
* Fix: Größe reduziert, sodass die Updates auf der SymBox 1 mit alter/kleiner Systempartition besser funktionieren
### Legacy-Konsole
* Neu: Neuer Typ Visualisierung wird unterstützt
* Neu: Alle Instanzen werden über die webbasierte Konsole konfiguriert
* Neu: Hinweis, dass die Legacy Konsole ab 2021 entfernt wird
### PHP-SDK
* Neu: Parameter "name" im Configurator kann Namen der erstellten Instanzen überschreiben, insbesondere auch für Splitter und I/Os in einer Kette
* Neu: RegisterOnceTimer, um asynchrone Sofort-Aktionen auszuführen
* Neu: Image Element kann jetzt auch Streams per mediaID anzeigen
* Neu: Neues Element: SelectProfile
* Neu: Formularelement "SelectInstance" kann mit "validModules" auf bestimmte Module restriktiert werden
* Neu: Neues Formularelement "SelectModule" um per Dropdown Instanzen eines bestimmten Modultyps auszuwählen
* Fix: Das TestCenter passt sich nun dynamisch an Änderungen der Aktionsvariablen an
* Fix: Die Parameter "info" und "position" werden nun auch wie vorgesehen bei erstellten Verbindungen angewandt
* Fix: Wenn eine Zeile in einer Liste nicht editierbar ist, wird auch die CheckBox ausgegraut
## V5.3->V5.4 (Q2/2020)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v53-v54-q2-2020/
### Wesentliche Änderungen
* [Pro Konsole](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [SymOS Connect](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Hovereffekte bei Graphen](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Verbesserte Geräteunterstützung](https://www.symcon.de/de/llms/getting-started/migrationen.md)
#### Pro Konsole
Eine neue Konsole für die Konfiguration von IP-Symcon wurde eingeführt. Als native Anwendung für Windows, Ubuntu und Mac bietet die Pro Konsole eine deutlich erhöhte Performance. Die neue Konsole bietet nicht nur alle Funktionen der webbasierten Konsole, sondern auch noch einige mehr. So können beispielsweise Tabs ab- und umgedockt werden um optimal mit mehreren Tabs zu arbeiten. Im Verbindungsassistenten können mehrere IP-Symcon Server verwaltet werden. Server im lokalen Netzwerk und entfernte Server aus der Lizenzverwaltung werden automatisch gefunden. Weitere Server können manuell hinzugefügt werden. Zusätzliche Informationen gibt es in der Dokumentation zur [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md).


#### SymOS Connect
Mit SymOS Connect wird ein komfortabler Fernzugriff auf das SymOS der SymBox eingeführt. So kann von überall auf das SymOS zugegriffen, Updates durchgeführt oder IP-Symcon neu gestartet werden. Das SymOS Connect ist unabhängig von der [Subskription](https://www.symcon.de/de/llms/getting-started.md), d.h. ein Zugriff ist immer möglich.
#### Hovereffekte bei Graphen
Die Graphen im WebFront wurden weiter verbessert. Durch ein Hovern mit der Maus über einem Datenpunkt oder einem Balken wird der dazugehörige exakte Wert angezeigt. So bieten die Graphen einen deutlich erhöhten Komfort und können viel präziser ausgewertet werden.

#### Verbesserte Geräteunterstützung
Die native Unterstützung von Geräten wurden an diversen Stellen verbessert. So wurde der KNX Import optimiert, so dass nun beispielsweise auch Teile von Exports eingebunden werden können. Für Z-Wave Geräte werden nun einige weitere Informationen der Geräte ausgelesen und können für vielfältige Anwendungsfälle verwendet werden. Bei xComfort werden nun auch die neuen Fensterkontakte CDWA/* unterstützt.
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 5.3 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 5.4 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Es wird Raspbian Buster für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Es wird Ubuntu 18.04 für Linux 64 Bit erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Für Microsoft Windows steht ausschließlich eine 64-Bit Version zur Verfügung.
### Liste der Änderungen
#### Allgemein
* Neu: PHP auf 7.3.16 aktualisiert
* Neu: Bibliotheken aktualisiert
* Neu: PHP Threads standardmäßig auf 25 erhöht
* Neu: VoIP: Anrufe können gezielt per Skript angenommen/abgelehnt werden
* Neu: DNS-SD: Ex* Varianten der Abfrage Funktionen hinzugefügt um Timeouts selber definieren zu können
* Neu: Profile ~Playback und ~PlaybackPreviousNext zur Steuerung von Medienwiedergabe
* Neu: Snapshot für mobile Apps filtert weniger Objekte (ggf. werden dadurch mehr Objekte in der App angezeigt)
* Neu: Spezialschalter: NATPublicIP (Globale Public IP Option für den NAT-Support)
* Neu: Spezialschalter: LogfileFilter (RegEx zum Filtern von Nachrichten)
* Neu: Reagiere unter Windows auch auf das PRESHUTDOWN Event, wodurch der Dienst mehr Zeit zum Herunterfahren haben sollte
* Neu: Maximale Ausgabegröße kann über ini_set('ips.output_buffer', Größe in Bytes); vergrößert werden.
* Neu: Benachrichtigungen können global im Notification Control deaktiviert werden
* Neu: Limitation für täglich versende Push Nachrichten (250). Per Spezialschalter (NotificationLimit) auf 1000 erhöhbar
* Neu: Limitation für tägliche Reconnect’s zum Connect Dienst (25). Per Spezialschalter (ConnectLimit) auf 100 erhöhbar
* Neu: Google State Report Anfragen auf 1000 pro Tag limitiert
* Fix: Abstürze beim Auflegen von VoIP Verbindung unter Windows gelöst
* Fix: Z-Wave: Fehlende Übersetzungen nachgepflegt
* Fix: Z-Wave: Assoziationen können wieder in Gruppen hinzugefügt werden
* Fix: HomeMatic: AIR_PRESSURE darf auch vom Typ Float sein
* Fix: KNX: XML-Import verbessert, wenn mehrere DPTs/DPSTs genannt werden
* Fix: Seltener Deadlock in Verbindung mit Ereignissen korrigiert
* Fix: ekey: InputID wird nun korrekt auf "nicht definiert" gesetzt
* Fix: Modbus: Problem bei Modbus TCP/IP in Verbindung mit viele Geräte-IDs am selben Strang gelöst
* Fix: Übersetzungen für z.B. Archiv vervollständigt
* Fix: Legacy Heating Control hat das Resend Interval bei Experten-Skripten nicht berücksichtigt
* Fix: IP-Symcon ist abgestürzt wenn eine php.ini von MacOS Systemen unter Windows/Linux verwendet wurde
* Fix: DNS-SD: Modul limitiert die Anzahl der Einträge auf 60.
* Fix: Connect: Unter Linux wurden fälschlicherweise die ssh config Dateien gelesen
* Fix: Connect: "Per E-Mail senden" funktioniert wieder korrekt
#### Geräte
* Neu: Xcomfort: Unterstützung für neue xComfort Fensterkontakte (CDWA/*)
* Neu: xComfort Konfigurator: Unterstützung für Temperatur-Sensoren am RC Touch
* Neu: Z-Wave: RSSI/SecurityKey Information zu ZW_GetInformation hinzugefügt
* Neu: Z-Wave: ZW_GetInformation liefert Zeitstempel, wann Pakete gesendet/empfangen wurden
* Neu: KNX: XML-Import kann nun auch mit Exports von Teilen (z.B. nur ein Zimmer) umgehen
* Neu: KNX: XML-Import ohne zugewiesen DPT bietet beim Erstellen einen Dialog zum auswählen der gewünschten DPT
* Fix: Z-Wave: Erkennung von "fehlerhaften" Knoten verbessert
* Fix: Z-Wave: Abfrage der Manufacturer Specific Klasse reduziert (fast alle Geräte antworten nicht korrekt und wir brauchen die Informationen eigentlich nicht)
* Fix: Z-Wave: Fibaro RGBW (Neue Generation) funktioniert nun korrekt
* Fix: Z-Wave: Fehlermeldungen im Debug bzgl. falscher Länge (sofern Security genutzt wurde) korrigiert
* Fix: Z-Wave: Ignoriere ein weiteres Fibaro-Gerät bei Multilevel-Sensorabfrage
* Fix: KNX: DPT 11 hat beim Senden vom Datum den Tag um 1 versetzt versendet
* Fix: M-Bus: Kleine Wartezeit eingefügt, sofern mehrere Pakete hintereinander abgefragt werden
* Fix: ModBus: Bessere Kompatibilität beim Auslesen von Coils bei Geräte die sich nicht sauber an die Spezifikation halten
* Fix: KNX Discovery konnte Konfigurator nicht erstellen, wenn der IP Interfacename genau 30 Zeichen lang war
* Fix: HomeMatic: Wenn der Socket inaktiv ist, fragt der Konfigurator die Raum-Informationen auch nicht ab
* Fix: UVR1611 setzt den Port korrekt auf 40000
#### PHP-SDK
* Neu: Der Inhalt eines Konfigurators kann wie eine Liste für Aktionen verwendet werden, wird allerdings nicht als Eigenschaft gespeichert
* Neu: Flag noDiscovery im Configurator ermöglicht es Geräte aus der Gerätesuche herauszuhalten, z.B. für ein generisches "Gerät hinzufügen"
* Neu: Flags editable und deletable für List und Tree geben an ob ein einzelnes Element editiert/gelöscht werden darf
* Neu: Datenfluss gibt Rückgabewerte von Children an den Parent weiter (z.B. Device an Splitter)
* Neu: Parameter multiline für ValidationTextBox
* Fix: minimum und maximum vom Numberspinner können wie vorgesehen per Dynamik angepasst werden
* Fix: validate vom ValidationTextBox und PasswordTextBox können wie vorgesehen per Dynamik angepasst werden
#### WebFront
* Neu: Hover-Werte bei Balkengraphen und Linengraphen (Nur normal, nicht bei HD/Raw)
* Neu: Hinweis, wenn die Externe Seite HTTP Seiten laden will, obwohl das WebFront über HTTPS geladen wurde (Moderne Browser blockieren sogenannten Mixed Content)
#### Konsole
* Neu: Performance bei Drag & Drop und Anpassung vieler Baumelemente gleichzeitig, z.B. beim Filtern, optimiert
* Neu: Suchen/Ersetzen-Dialog sortiert die angezeigten Skripte
* Neu: Zeige Pfad zum Objekt als Tooltip des Tabs an
* Neu: Die Variablenaktionen "Addieren" und "Subtrahieren" verwenden für den Summanden/Subtrahenden nun die Nachkommastellen des Profils
* Neu: Wird der Filter im Objektbaum angepasst wird zum aktuell ausgewählten Objekt gescrollt
* Neu: Tabs können via Mittelklick geschlossen werden
* Neu: "Wer benutzt dieses Profil?"-Dialog betrachtet nun auch Charts
* Neu: Button im Debug Log hinzugefügt, um zur dazugehörigen Instanzkonfiguration zu springen
* Neu: Skripteditor intern komplett umgebaut, dadurch sollte der Editor deutlich schneller laden
* Neu: Nachrichtenlänge in Debuglogs auf 255 gekürzt und "Erweitern"-Funktion im Kontextmenü hinzugefügt
* Neu: Frage nach dem Löschen von Instanzen nur einmal nach, ob unbenutzte Elterninstanzen gelöscht werden sollen, nicht nach jeder einzelnen Instanz
* Neu: Kompaktmodus überarbeitet: Keine "Ränder" mehr und ein paar Größen angepasst
* Neu: Dialog um in allen Skripten zu ersetzen fragt vorm Ersetzen, ob ungespeicherte Skripte gespeichert werden sollen
* Neu: Dialog zum Auswählen eines Profils ist nun im klassischen Look von OK/Abbrechen-Dialogen
* Neu: Der Inhalt von Mitteilungs-Popups kann markiert und somit auch kopiert werden
* Neu: Initialer Wert von neuen Assoziationen wird auf Basis der aktuell höchsten Assoziation und Schrittweite vorgeschlagen
* Neu: Bei Klick auf "Neu Laden" nach einem Verbindungsabbruch wird geprüft, ob die Konsole wieder verfügbar ist bevor neu geladen wird
* Neu: Versuche bei mehreren geöffneten Konsolen den Snapshot von einer anderen offenen Konsole abzufragen. So sollte insbesondere das Öffnen von abgedockten Fenstern der Pro Konsole beschleunigt werden
* Neu: Spalten im Objektbaum werden automatisch ausgeblendet, wenn der Platz nicht ausreicht
* Neu: Referenzsuche im Module Store (unter Weitere Optionen für installierte Module)
* Neu: Beim Löschen von Modulen im Module Store wird geprüft, ob dazugehörige Instanzen noch existieren
* Neu: Alle X <Zeiteinheit> im zyklischen Ereignis wird mit 1 initalisiert
* Neu: Filter im Statuswidget werden gespeichert
* Neu: Ist beim Drücken von Strg + O im Skripteditor eine InstanzID ausgewählt, springe direkt zu dieser
* Neu: "Nachfolgende Ereignisse ausführen" wird nun als Dropdown dargestellt
* Neu: Einige Eingaben in Ereignisdialogen sind nun auf voller Breite
* Neu: Die Eingabe von auslösenden Werten in auslösenden Ereignissen ist nun ein Nummernfeld bei numerischen Variablen
* Neu: Im Objektbaum können Objekte nun via Rechtsklick -> Objekt verschieben verschoben werden
* Neu: Formatiere Variablenwerte bei Erweiterten Bedingungen entsprechend des Variablenprofils
* Neu: Markiere Filter im Objektbaum, wenn der Filter aktiv ist
* Neu: Statusdialog ist nun modal und kann auch als Tab geöffnet werden
* Neu: PHP Code der gewählten Aktion kann im "Befehle testen"-Dialog per Strg + C in die Zwischenablage kopiert werden
* Neu: Variablenaktion "Auf auslösenden Wert schalten" kann nun bei prozentualen Variablen den Wert prozentual oder absolut übertragen. (50% von Intensity.255 werden 50% bei Intensity.100)
* Neu: "Zu Objekt springen" kann im Skripteditor bei Auswahl einer ObjektID per Rechtsklick oder das Menü Textbearbeitung ausgeführt werden
* Neu: Im Instanz erstellen/bearbeiten-Dialog passt sich die Ortsanzeige für Modultypen an, welche in eine eigene Sonderkategorie kommen
* Neu: Im Archive Control wurde die Namensspalte auf eine Namens- und eine Ort-Spalte aufgeteilt
* Neu: Wurde ein Log gestoppt, wird dies nicht mehr gespeichert, bei einem Neustart der Konsole läuft das Log also weiter
* Fix: Werden Spalten hinzugefügt oder entfernt, bleiben Sonderaktionen für spaltenspezifische Doppelklicks bei den korrekten Spalten
* Fix: Sortierung der Transferprüfung im Module Control ist nun unabhängig von Groß- und Kleinschreibung
* Fix: Info zur Variablenanzahl im Lizenz-Widget für die Unlimited Edition passend formatiert
* Fix: Schöne Fehlermeldung beim Versuch die Subskriptionsüberprüfung ohne Lizenz zu aktivieren
* Fix: Variableneditor ist nun auf 100 Einträge beschränkt
* Fix: Größe des Wertefensters des Variableneditors korrigiert
* Fix: Icons für den Icon-Auswahl-Dialog laden deutlich schneller
* Fix: Anpassung der Fenstergröße in Safari werden in der Formatierung korrekt umgesetzt
* Fix: Biete im Skripteditor keine Autovervollständigung innerhalb von Strings oder Kommentaren
* Fix: Formulierung bei Nachfolgender Ausführung von ausgelösten Ereignissen optimiert
* Fix: Dialog zur Discovery-Auswahl scrollt nun wie vorgesehen nur den Inhalt des Baumes
* Fix: Aktionsbeschreibung in Ereignisdialogen passt sich auch bei Variablen ohne Aktion korrekt an
* Fix: Die Gerätesuche wertet Konfigurator-Einträge ohne InstanzID wie vorgesehen als nicht erstelltes Gerät aus
* Fix: Bewegbare Dialoge werden korrekt aufgeräumt nachdem sie geschlossen wurden
* Fix: Dropdowns werden wie vorgesehen geschlossen, wenn auf einen bewegbaren Dialog geklickt wird
* Fix: Prüfung ob Von und Bis bei zyklischen Ereignissen korrekt gesetzt sind
* Fix: Einige verwendeten Bibliotheken aktualisiert
* Fix: Ausklappende Kontextmenüs auf kleinen Bildschirmen werden korrekt formatiert
* Fix: Nummern in Listen, z.B. für NumberSpinner, werden korrekt numerisch sortiert
* Fix: Ladenachrichten beim Start der Konsole werden nun wie vorgesehen auf englisch übersetzt
* Fix: Warte mit dem neu laden der Instanzkonfiguration bis die Antwort auf ApplyChanges zurückkommt
* Fix: Debuglog versucht nicht mehr nach Verbindungsabbruch das Debug aktiv zu halten
* Fix: Werden bei einem Löschvorgang ein Objekt und seine Kinder markiert, kommt es nicht mehr zu einer Fehlermeldung
* Fix: Ändert sich ein übergeordnetes Objekt einer auslösenden Variable eines Ereignisses, wird die Bezeichnung des Ereignisses wie vorgesehen aktualisiert
* Fix: Verhindere Verbindungsabbruch bei Konfiguratoren mit sehr vielen Geräten
* Fix: Generierte Aktionsskripte werden übersetzt
* Fix: Formulierung im Lizenz-Widget angepasst, so dass deutlich wird, dass nicht die Lizenz, sondern die Subskription abläuft
* Fix: "Befehl einfügen" formatiert den eingefügten Code auch mehrzeilig wie vorgesehen
* Fix: Prüfe ob der zurückgegebene Link eines Buttons Zeilenumbrüche enthält und gebe ggf. passende Fehlermeldungen
* Fix: Korrekte HEX-Darstellung im Debug-Log - Es wird nicht versucht gelegentlich Zeichen zusammenzuziehen, da diese als UTF-8 interpretiert werden
* Fix: Anzeige vom Teilpfad zur Tabunterscheidung wird auch bei mehreren gleichnamigen Tabs gleichzeitig korrekt ausgewertet
* Fix: Ident wird wie vorgesehen aktualisiert
* Fix: Eigenschaften, die via GetConfigurationForParent gesetzt werden, werden auch übernommen, falls die dazugehörigen Elemente noch inaktiv sind, z.B. in einem eingeklapptem ExpansionPanel
* Fix: Wurde in der HTML-Darstellung der Skriptausgabe auf eine externe Seite gelinkt, kann das Skript wie vorgesehen erneut ausgeführt werden
* Fix: Ausgelöste Ereignisse mit einer Boolean-Variable ohne Profil als Auslöser funktionieren wieder wie vorgesehen
* Fix: Gruppen in Wochenplänen werden nun in korrekter Reihenfolge gespeichert
* Fix: Initialer auslösender fester Wert bei ausgelösten Ereignissen funktioniert bei Boolean-Variablen ohne Profil wie vorgesehen
* Fix: Bei Wechsel der auslösenden Variablen sollte der bisher ausgewählte Wert wie vorgesehen stets passend zur neuen Variable konvertiert werden
* Fix: Ein seltener Fehler beim Ändern eines ausgelösten Ereignisses auf einen anderen Variablentyp gefixt
* Fix: Wird im Skripteditor als Teil der Ereigniskonfiguration Enter gedrückt, wird dies nicht mehr als Bestätigung des Dialogs gewertet
* Fix: Tabs hatten manchmal einen falschen Namen (Name not yet loaded)
### SymOS
* Neu: SymOS Connect. Direkter Zugriff auf SymOS über unsere Cloud*
* Neu: Ohne SymOS Kennwort sind keine Anfragen über SymOS Connect erlaubt
* Neu: SymOS Web-Server komprimiert Daten per GZIP und unterstützt Caching
* Neu: IP-Symcon wird bei einem Crash automatisch neu gestartet
* Neu: Weiterleiten ins WebFront (SymOS wird dabei übersprungen)
* Neu: Integrator Nachricht kann über Einstellungen gesetzt werden
* Neu: Checkbox um #integrator Nachricht zu deaktivieren
* Neu: Unterbau von Polymer 1 auf Polymer 3 migriert (Im Prinzip fast neu geschrieben )
* Neu: Kernel auf 4.14.114 aktualisiert
* Neu: #delete heißt nun #files
* Neu: Splashscreens entfernt
* Fix: Dateien werden nach Datum sortiert
* Fix: Sofern der Speicherplatz gering ist, werden alte IP-Symcon/SymOS Versionen gelöscht
* Fix: Sonderzeichen beim SymOS Kennwort konnten (selten) Probleme beim Einloggen machen
* Fix: Löst hoffentlich das Problem, dass DHCP nach Auslaufen der Lease keine IP-Adresse mehr bezogen hat
* Fix: E-Mail Adresse mit längeren Domain Namen (z.B. swiss) werden akzeptiert
### Pro Konsole
* Neu: Die Pro Konsole wurde veröffentlicht
## V5.2->V5.3 (Q4/2019)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v52-v53-q4-2019/
### Wesentliche Änderungen
* [Gerätesuche](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Verbesserter KNX Import](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Konfigurator für M-Bus](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Komfortverbesserungen in der Verwaltungskonsole](https://www.symcon.de/de/llms/getting-started/migrationen.md)
#### Gerätesuche
Mit der neuen Version sucht IP-Symcon automatisch in regelmäßigen Abständen nach neuen Geräten und zählt diese in der Gerätesuche auf. Nach der Systemauswahl erfolgt die Detektion von Gateway und Geräten durch die Gerätesuche und diverse neue Discovery- und Konfigurator-Instanzen bei den meisten Systemen automatisch und es müssen nur noch die zu erstellenden Geräte ausgewählt werden. Weitere Informationen gibt es in der Dokumenentation zur [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) und in unserem [Grundlagen-Webinar](https://www.youtube.com/watch?v=1H39DfH7_p4) .

#### Verbesserter KNX Import
Die Import-Funktion im KNX-Konfigurator wurde erweitert. Zusätzlich zum OPC Import ist es nun auch möglich die modernen DPTs aus einer generierten XML-Datei zu importieren und danach komfortabel im Konfigurator anzulegen. Es stehen dazu folgende Video Tutorials zur Verfügung: [XML-Export mithilfe der ETS](https://www.youtube.com/watch?v=DeGCLestF_I) , [XML-Export in IP-Symcon verwenden](https://www.youtube.com/watch?v=hgz7nv0SC-Q)

#### Konfigurator für M-Bus
Auch für M-Bus gibt es nun einen Konfigurator. Dieser sucht den gesamten Bereich der Sekundäradressen von M-Bus ab und findet so alle angeschlossenen M-Bus-Geräte, damit diese unkompliziert in IP-Symcon erstellt werden können.

#### Komfortverbesserungen in der Verwaltungskonsole
Diverse kleine Erweiterungen haben den Komfort der Verwaltungskonsole verbessert. So ist es nun möglich die Reihenfolge der Tabs via Drag & Drop anzupassen. Der Browsertitel passt sich an den Namen der Hauptkategorie an. Die Aktionen für Variablen in Ereignissen wurden erweitert. Insbesondere ist es möglich bei ausgelösten Ereignissen den auslösenden Wert direkt weiterzuleiten. So können unkompliziert diverse automatisierte Verhalten implementiert werden.

### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 5.2 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 5.3 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Beim Upgrade in Windows wird die Konfiguration von IP-Symcon analog zu anderen Betriebssystemen in den ProgramData-Ordner verschoben. Dies geschieht automatisch.
* Es wird Raspbian Buster für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Es wird Ubuntu 18.04 für Linux 64 Bit erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Für Microsoft Windows steht ausschließlich eine 64-Bit Version zur Verfügung.
### Liste der Änderungen
#### Allgemein
* Neu: Windows Version speichert alle Daten ab sofort unter C:\ProgramData\Symcon ([Mehr Informationen](https://community.symcon.de/t/neue-windows-version-der-5-3-mit-migration-in-den-program-data-ordner/50593) )
* Neu: Wenn IP-Symcon abstürzt wird unter Ubuntu/RPi/MacOS versucht automatisch ein Stacktrace im /var/lib/symcon/minidump Ordner zu speichern.
* Neu: MiniDumps unter Windows sind jetzt testweise signifikant kleiner
* Neu: HasAction Funktion zum Prüfen, ob Variable eine gültige Aktion besitzt
* Neu: SSDP Control (Beispiel: YC_SearchDevices($id, "upnp:rootdevice"))
* Neu: DNS-SD kann Geräte suchen
* Neu: DNS-SD nutzt unter Linux die native Avahi API
* Neu: UDP Socket unterstützt nun korrekt Broadcasting über alle vorhandenen Interfaces
* Neu: Datenfluss angepasst, sodass mehrere alternative Pakete versendet werden können und nur das "beste" an die Instanz ausgeliefert wird. (Bisher nicht für PHP-Module verfügbar)
* Neu: Update-Kanal wird unter Linux auch unter /etc/apt/sources.list.d/* geprüft
* Neu: WFC_PushMessageEx um eine WebSocket Nachricht an einen bestimmten verbundenen Client via (RemoteIP/RemotePort) zu senden.
* Neu: Die Docker, Ubuntu und Raspberry Pi Versionen nutzen für DNS-SD nun Avahi Core anstatt Avahi vom Betriebssystem. (Dadurch entfällt die letzte große Paket-Abhängigkeit)
* Neu: Ubuntu/Raspberry Pi zeigt nach der Installation den Pfad zur Konsole an
* Neu: MQTT: Retain
* Neu: MQTT: Session Management (Siehe Timeout und Queue Limit Einstellungen im Server)
* Neu: MQTT: Last Will/Testament
* Neu: MQTT: Publish eines Clients wir nur in IP-Symcon ausgewertet und nicht an die anderen Clients weitergeleitet
* Neu: Im Tray unter Windows gibt es einen Button zum Öffnen des ProgramData Pfades
* Fix: Connect Dienst hat ein Timeout von 120 Sekunden anstatt von 10 Sekunden (Das sollte die Abbrüche der Verwaltungskonsole bei langen Operationen lösen)
* Fix: MessageQueue wird beim Beenden vollständig abgearbeitet (Löst Problem mit fehlenden Werten in der settings.json die direkt vor dem Beenden geschrieben wurden)
* Fix: "Enable Broadcast" aus UDP Socket entfernt, das dies nur für den Multicast Socket anwendbar war
* Fix: Bei Modul-Updates wurde der Instanz-Status nicht korrekt zurückgesetzt, sodass diese weiterhin als Aktiv gemeldet wurden, obwohl diese gar nicht verfügbar waren
* Fix: Potenzieller Fix für seltenes Crash-Problem, wenn man oft I/Os schließt/öffnet unter Linux
* Fix: MQTT: Unvollständige/Fehlerhafte Pakete konnten IP-Symcon zum Absturz bringen
* Fix: VoIP: VoIP_SendDTMF erlaubt nun auch * und #
* Fix: IntervalBox'en und 'label' auf NumberSpinner und 'caption' aktualisiert
* Fix: MQTT leitet Nachrichten nicht an den Ursprung weiter um Endlosschleifen zu verhindern
* Fix: Fehlerhafte Module konnten nicht über den Store gelöst werden
* Fix: MQTT: Geräte ohne ClientID bekommen eine passende ClientID zugewiesen
* Fix: MQTT: Last Will mit QoS > 0 wird aktuell mit QoS = 0 versendet
#### Geräte
* Neu: Discovery Instanzen für alle Symcon LAN Gateways (IPS-868, M-Bus, 1-Wire, Z-Wave, EnOcean)
* Neu: HomeMatic Discovery
* Neu: IPS-868 Konfigurator
* Neu: EnOcean D2-11-*
* Neu: EnOcean EEP D2-05-00, EEP D2-05-01, D2-05-02
* Neu: M-Bus Konfigurator, welcher alle angeschlossenen M-Bus Geräte suchen kann
* Neu: M-Bus Geräte können über Sekundär-Adressierung angesprochen werden
* Neu: M-Bus: Anzahl der gelesenen Pakete kann limitiert werden
* Neu: M-Bus Konfigurator: Standard Intervall / Standard Adressierung kann vorgegeben werden
* Neu: KNX Konfigurator kann XML Exports der ETS Gruppenadressen einlesen (Damit werden auch die neuen DPT Instanzen erstellt)
* Neu: KNX Konfigurator in der Legacy Konsole entfernt, da dieser nicht mehr mit IP-Symcon 5.3 kompatibel ist
* Neu: KNX Konfigurator versucht GA's mit dem Status-Suffix automatisch als Rückmelde GA zuzuordnen, sofern gewünscht
* Neu: KNX/DPT Instanzen haben im Namen zusätzlich den generischen Datentyp
* Neu: LCN: Setzen vonn Schwellwerten (1x5 über Register 0, 4x4 über Register 1-4)
* Neu: Z-Wave: Es können benutzerdefinierte Werte bei Parameters aus der ZWDB angegeben werden
* Neu: VoIP: VoIP_SendDTMF zum Senden von DTMF Tönen
* Fix: VoIP: Besserer Fix für das 401 Problem sobald die Session abläuft
* Fix: M-Bus: Position wird über mehrere Pakete hinweg korrekt gesetzt
* Fix: Z-Wave: Öffnen der Z-Wave Instanzen bei vielen angelernten Knoten sollte wesentlich schneller gehen
* Fix: Z-Wave: Problem beim Öffnen von Instanzen mit Zipato RFID/Lock gelöst
* Fix: Z-Wave: Workaround für fehlerhafte Fibaro Geräte, welche eine schlampige Implementation der Multi Channel Association Klasse haben. Wir entfernen diese Klasse entsprechend, sodass IP-Symcon die alten simplen Association verwendet
* Fix: Z-Wave: Option für "Simple Association erzwingen" wird nur noch angezeigt, wenn diese auch sinnvoll ist (Benötigt vorhanden sein der Multi Channel Klasse und die Multi Channel Association Klasse ab Version 3)
* Fix: LCN Display: Anzeigedauer wird nicht in Sekunden angeben, sondern ist von der Modul-Konfiguration abhängig
* Fix: LCN: Ampere-Werte werden nun korrekt in Milliampere dargestellt
* Fix: xComfort 1-Kanal Heizaktor kann nun auch korrekt ausgeschaltet werden
* Fix: xComfort: Router wird vom Konfigurator korrekt erkannt
#### Konsole
* Neu: Die Glocke oben rechts in der Verwaltungskonsole zeigt nun erstellbare Geräte von Discovery und Konfigurator Instanzen an
* Neu: Im Module Control kann die Migration auf den Store für beliebige Module deaktiviert werden
* Neu: Ausgelöste Ereignisse können den Ereignis-Wert direkt an das Ziel-Objekt weiterleiten.
* Neu: Zeige im Skripteditor einen Hinweis, wenn Teile der Skriptausgabe durch den HTML-Filter versteckt werden
* Neu: Wird der Aggregationstyp einer Variablen geändert, dann wird gefragt, ob diese reaggregiert werden soll
* Neu: Das Schnellausführungs-Widget speichert das Skript der letzten Ausführung
* Neu: Browsertitel passt sich an den Namen der Top-Level-Kategorie an
* Neu: Schlägt die Erstellung einer Instanz via Konfigurator fehl, dann räumt der Konfigurator auf
* Neu: Tabs können nun per Drag & Drop neu angeordnet werden
* Neu: Icons im Objektbaum haben wieder einen Bubble-Effekt beim Klicken
* Neu: Lade Konfiguration nicht neu, wenn das Übernehmen der Änderungen fehlschlägt
* Neu: Verwaltungskonsole kann via Browser als "App" installiert werden
* Neu: Beim Hovern über einem Variablenwert und innerhalb des Variable-bearbeiten-Dialogs werden Rohwert und formatierter Wert angezeigt
* Neu: Widget um Absturzberichte zu verschicken
* Neu: Update-Buttons für die verbleibende Subskriptionsdauer im Info-Dialog und im Lizenz-Widget
* Neu: Tabs mit gleichem Namen erhalten Teile des Pfades im Tabnamen, damit die Tabs differenziert werden können
* Neu: Tutorial an neue Gerätesuche Mechanismen angepasst
* Neu: Geräte können in Konfiguratoren als Gesehen/Ungesehen markiert werden
* Neu: Als gesehen markierte Geräte werden in Konfiguratoren initial nicht angezeigt
* Neu: "Springe zum Auslöser" für auslösende Ereignisse per Rechtsklick im Objektbaum
* Fix: In der Legacy Konsole können Wochentage bei monatlichen Ereignissen korrekt gesetzt werden
* Fix: Spalten gehen nicht mehr kaputt, wenn man die Positionsspalte einblendet, im Gegenzug eine andere Spalte ausblendet und dann neu Lädt (Dies ist der Webinar Bug!)
* Fix: Neu angelegte Ereignisse konnten unter bestimmten Bedingungen nicht mehr geöffnet werden
* Fix: Progressbar mit "indeterminate" Zustand wird korrekt angezeigt
* Fix: Übersetze suffix des NumberSpinner wie vorgesehen
* Fix: Lade Konfiguration beim Verwerfen der Änderungen neu und lädt somit auch die Einträge von Feldern ohne Eigenschaft neu
* Fix: Widget für statistische Daten kann sich nicht mehr mehrfach öffnen, wenn noch keine Entscheidung getroffen wurde
* Fix: Korrigiere Dialoge für Microsoft Edge
* Fix: Zoomen sollte auch in iOS 13 wie vorgesehen deaktiviert sein
* Fix: Der mobile Safari von iOS 13 wird nun wie vorgesehen korrekt erkannt
* Fix: In der Timerübersicht werden die Statusicons nun wie vorgesehen eingefärbt
* Fix: In der Timerübersicht werden die Timer wie vorgesehen nach Kategorien gruppiert
* Fix: Blockiere die Auswahl eines Links als Elternobjekt
* Fix: Skripte, die kein Variablentemplate sind, werden nun wie vorgesehen in der Ereignisübersicht einer Instanz angezeigt
* Fix: Wird der Zeitzonen-Hinweis auf Wunsch des Benutzers nicht angzeigt, wird dennoch wie vorgesehen die Zeitzone des Servers eingestellt
* Fix: closeCaption bei Popups wird nun wie vorgesehen übersetzt, dies betrifft insbesondere Z-Wave
* Fix: Der Ausklapp-Button einer eingeklappten Kategorie im Objektbaum verschwindet nun wie vorgesehen wenn das letzte Kind gelöscht wird
* Fix: Bestimmte Benutzername/Passwort Kombinationen führen im Chrome nicht mehr zu einem Login-Fehler
* Fix: Eigenschaften in Expansion Panels werden wie vorgesehen geladen
* Fix: Beim Versuch ein IPSStudio-Formular zu editieren kommt ein Hinweis, dass dies nur mit IPSStudio möglich ist
* Fix: Download-Button im Dokument-Dialog wird nicht mehr unterstrichen
* Fix: Die Beschreibung eines Objektes wird nun einheitlich als Beschreibung bezeichnet, nicht mehr als Info
* Fix: Der Inhalt von Toolbars kann nicht mehr überlaufen. Dies betraf insbesondere die Suchfelder im Kompaktmodus
* Fix: Die caption des Formularelements Label wird nun korrekt aktualisiert, auch wenn im Text Links enthalten waren
* Fix: Jedes SelectDateTime-Feld hat seinen eigenen Wert und stellt nicht mehr die Werte von vorherigen SelectDateTime-Feldern dar
* Fix: Zeige Mehrfachoptionen in einem Konfigurator auch bei mehrfachem Öffnen korrekt an
* Fix: location wird nun auch bei Mehrfachoptionen im Konfigurator wie vorgesehen ausgewertet
* Fix: value kann nun im Formularfeld Select wie vorgesehen verwendet werden
* Fix: SelectColor lädt nun wieder wie vorgesehen Wertevorgaben
* Fix: Nach dem Suchen&Ersetzen lädt die Konsole die betroffenen Skripte neu
* Fix: Beim Schließen eines Tabs wird nun nicht mehr gelegentlich auf den ersten Tab gewechselt
* Fix: SelectLocation überarbeitet, nun verschwindet der Marker nicht mehr nach einem Neuladen und die Bedienung ist flüssiger
* Fix: In Firefox wird die Größe des Editieren-Dialogs von Listen nun korrekt bestimmt
* Fix: Listen mit einer Spalte können wie vorgesehen im elements-Bereich verwendet werden
* Fix: Achte bei der Sortierung in Listen wie vorgesehen nicht auf Groß- und Kleinschreibung
#### WebFront
* Fix: RTSP Streams wurden bei bestimmten WebFront Kennwörtern nicht geladen
* Fix: Dokumente wurden nicht automatisch aktualisiert, sofern diese z.B. über IPS_SetMediaContent verändert wurden
#### PHP-SDK
* Neu: minimum, maximum und onChange sind beim HorizontalSlider nun optional
* Neu: Neuer Parameter stepsize für den HorizontalSlider
* Neu: Im Konfigurator können individuelle Namen für Statusvariablen definiert werden
* Neu: Neues Formularfeld OpenObjectButton
* Neu: Validierung für NumberSpinner, ValidationTextBox und PasswordTextBox
* Neu: ExpansionPanel und PopupButton unterstützen nun onClick
* Neu: List und Tree unterstützen nun onEdit, onDelete und onAdd
* Neu: Skripte in der Instanzkonfiguration können nun die gesamte Elemente vom Typ List oder Tree komplett iterieren und nicht nur auf den aktuell gewählten Wert zugreifen
* Neu: Parameter "link" für Label kann einstellen ob URLs in der Caption als Links dargestellt werden oder nicht
* Neu: Unterstütze die Option width für fast alle Formularfelder
* Fix: Slider, welcher initial per value gesetzt wurde, sendet diesen Wert nicht mehr direkt per onChange wieder raus
#### Änderungen 5.3.x
#### Allgemein
* Neu: KNX DPT 9.029 hinzugefügt
* Neu: SSDP Announce beinhaltet die genutzte Platform
* Neu: Performance vom Datenfluss verbessert
* Neu: HomeMatic: Keep Alive Timeouts können konfiguriert werden (0 = Aus)
* Neu: M-Bus Konfigurator: Standardeinstellung für die Paketlimiterung verfügbar
* Neu: Neue Spezialschalter zum Steuern der WebSocket/RTSP Limitationen (ServerSoftQueueSizeLimit, ServerSoftQueueBytesLimit, ServerSoftQueueTransferTimeout, ServerHardQueueSizeLimit, ServerHardQueueBytesLimit, ServerHardQueueTransferTimeout) *
* Neu: Unterstützung für neue xComfort Fensterkontakte (CDWA/*)
* Fix: PHP zurück auf 7.3.5, um ggf. Abstürze mit PHP 7.3.8 auszuschließen. (Nur Linux, SymBox, Ubuntu, Docker)
* Fix: M-Bus: Sofern zwei Geräte mit der selben Sekundäradresse am Bus waren, konnte IP-Symcon abstürzen
* Fix: SSDP: Auf einigen Systemen konnte die Instanz nicht korrekt erstellt werden
* Fix: LCN: LCN Konfigurator (Module) hat einige Instanzen nicht korrekt erkannt
* Fix: Z-Wave: Dialog für unterstützte Kommando-Klassen hat unterstützte Version falsch angezeigt
* Fix: KNX: Profil bei DPT 1.x korrigiert
* Fix: KNX: Profil bei DPT 9.028 korrigiert
* Fix: MQTT: Problem bei der Kommunikation mit MQTT Client auf ESP Basis korrigiert
* Fix: Discovery Instanzen zeigen nun auch eingerichtete Konfiguratoren (welche in IP-Symcon sind, jedoch nicht im Netzwerk)
* Fix: Reaggregation aller Variablen konnte manchmal zwischendurch abbrechen
* Fix: Z-Wave Geräte, die defekte SerienNummern liefern, sollten die webbasierte Konsole nicht mehr beeinflussen (Neu „Laden“ ist erforderlich)
* Fix: Potenzieller VoIP Crash korrigiert
* Fix: Potenzieller Connect-Dienst (Reconnect) Crash korrigiert
* Fix: KNX Device mit EIS10, 16 Bit, Signed kann wieder eingestellt werden
* Fix: KNX XML Import nutzt nun " Status", "-Status" und ".Status" in den GAs als Trigger für Status GAs
* Fix: Der Windows Installer lässt bei Problemen kein Abbrechen zu und verweist auf unseren Support
* Fix: Der Windows Installer stellt sicher, dass das IP-Symcon Tray und IP-Symcon Verwaltungskonsole vor der Migration beendet wurden
* Fix: Archiv: Bei IP-Symcon Neustarts konnte bei der Rekonstruierung der Zähleraggregation in seltenen Fällen eine fehlerhafte Berechnung auftreten
* Fix: Archiv: Werte, die im selben Zeitstempel passieren wurden nicht korrekt im Minimum/Maximum berücksichtig
* Fix: Z-Wave: "Werte auslesen" Button bei "Benutzerdefinierten Parametern" funktioniert wie vorgesehen
* Fix: Z-Wave: Sporadisch wurde beim Hinzufügen/Entfernen von Geräte nicht angezeigt, dass das Gateway bereit ist
* Fix: Z-Wave: Z-Wave Instanzen, welche nicht mehr auf dem Gateway vorhanden sind, können direkt gelöscht werden (ohne Test-Pakete zu versenden)
* Fix: Der Update-Kanal konnte aus dem sources.list.d Ordner nicht korrekt ermittelt werden
* Fix: Die Migration der Daten unter Windows ignoriert die setup.exe, welche bis IP-Symcon 4.2 erstellt wurde
* Fix: HomeMatic: Wenn eine "fremde" HomeMatic Instanz keine "Protocol" Property besaß konnte der Konfigurator nicht geöffnet werden
* Fix: M-Bus: Suchfunktion im Konfigurator weiter verbessert
* Fix: M-Bus: Der vorgeschlagene Name beinhaltet die Sekundäradresse
* Fix: Z-Wave: Sofern ungültige Secure-Pakete empfangen wurden konnte IP-Symcon abstürzen
* Fix: KNX: ~Switch Profil wird überall konsistent verwendet
* Fix: Fix für die Abstürze in Verbindung mit dem WebSocket Rückkanal / RTSP Streams
* Fix: SSDP: Anfrage auf 5 Sekunden erweitert, da einige Geräte zu langsam antworten
* Fix: DNS-SD: Wartezeit auf 500ms erhöht um Zuverlässigkeit zu verbessern
* Fix: EnOcean EEP D2-01-xx mit Leistungsmessung aber ohne Energieausmessung wird nun korrekt ausgewertet
* Fix: Multicast Socket sollte wieder wie erwartet funktionieren, auch wenn nur ein Interface in der BindIP gewählt ist
* Fix: Query String wird in $_GET Variable korrekt kodiert
* Fix: Connect: Verbindungsabbrüche sollten nun schneller erkannt werden
* Fix: PHP Module: Type Hints zu "array/object" sind erlaubt und werfen keine Warning
* Fix: Sys_GetMemoryInfo unter Linux korrigiert (Available Memory wurde falsch berechnet)
* Fix: M-Bus: Negative Werte werden nun nach ISO EN13757-3 ausgewertet
* Fix: HasAction war nicht korrekt vorhanden
* Fix: KNX: DPT 11 hat beim Senden vom Datum den Tag um 1 versetzt versendet
* Fix: PHP Inkludepfad enthälte immer den Pfad zum "scripts" Ordner, damit auch in Ereignissen Dateien korrekt per include geladen werden können
* Fix: Z-Wave: Empfange von einigen Kommandoklassen (z.B. CRC_16) auch Nachrichten im Untergerät, wenn nur das Hauptgerät diese als unterstützt melden.
* Fix: Z-Wave: Bessere Überprüfung, ob die empfangenen Daten vollständig sind
* Fix: Z-Wave: Erkennung von "fehlerhaften" Knoten verbessert
* Fix: Z-Wave: Abfrage der Manufacturer Specific Klasse reduziert (fast alle Geräte antworten nicht korrekt und wir brauchen die Informationen eigentlich nicht)
* Fix: Z-Wave: Fehlermeldungen im Debug bzgl. falscher Länge (sofern Security genutzt wurde) korrigiert
* Fix: Abstürze bei RTSP Streams über eine SSL Verbindung korrigiert
* Fix: Aktualisierung-Widget zeigt neue Versionen wieder korrekt an
* Fix: DNS-SD Modul limitiert die Anzahl der Einträge auf 60.
#### WebFront
* Fix: WebFront Editor zeigt unsichtbare Elemente an, sodass diese auch wieder sichtbar geschaltet werden können
* Fix: WebFront Editor konnte nicht mehr geöffnet werden
#### Konsole
* Neu: Verbesserte Performance bei vielen Nachrichten in Meldungen oder im Debug Log
* Neu: Google Maps wird erst geladen, wenn erforderlich
* Neu: Fonts werden lokal geladen
* Neu: Im Skript-Editor werden PHP-Schlüsselwörter als Vorschläge für die Autovervollständigung angeboten
* Neu: Suchen/Ersetzen-Dialog sortiert die angezeigten Skripte
* Neu: Dialog um in allen Skripten zu ersetzen fragt vorm Ersetzen, ob ungespeicherte Skripte gespeichert werden sollen
* Neu: Mitteilungen können markiert und somit auch kopiert werden
* Neu: Fortschrittsdialog beim Löschen von Objekten
* Neu: Die Variablenaktionen "Addieren" und "Subtrahieren" verwenden für den Summanden/Subtrahenden nun die Nachkommastellen des Profils
* Fix: Ladenachrichten beim Start der Konsole werden nun wie vorgesehen auf englisch übersetzt
* Fix: Ladeicon ist wieder animiert ohne den Chrome einzufrieren
* Fix: Ladeicon ist nun auch im Firefox durchgängig animiert
* Fix: SVG Animation entfernt - Dies sollte das Einfrieren von Chrome verhindern
* Fix: "Befehle testen"-Dialog gibt nun wie vorgesehen Fehlermeldungen aus
* Fix: Typo im Adventskalender
* Fix: Status Widget war seit der letzten Beta defekt
* Fix: Schnelles Duplizieren von Konsolen (Tabs im Browser) konnte die Verbindung abbrechen lassen
* Fix: Fonts wurden seit der letzten Beta nicht korrekt geladen
* Fix: Speichern von Änderungen in HID und KNX Device (EIS) Instanzen funktioniert wieder
* Fix: Prüfe Kompatibilität bei Upgrade vom Module Control zum Module Store
* Fix: Sortiere Statusdialog wie vorgesehen
* Fix: Speichere Login-Passwort wie vorgesehen
* Fix: Modulbeschreibungen mit langen Wörtern werden umgebrochen und blenden keine Scrollbar mehr ein
* Fix: Prüfe ob der zurückgegebene Link eines Buttons Zeilenumbrüche enthält und gebe ggf. passende Fehlermeldungen
* Fix: Lade Icons für Icon-Auswahl iterativ, dies verhindert mögliche Verbindungsabbrüche beim Laden von sehr vielen Icons
* Fix: Korrekte HEX-Darstellung im Debug-Log - Es wird nicht versucht gelegentlich Zeichen zusammenzuziehen, da diese als UTF-8 interpretiert werden
* Fix: Module Control filtert die installierten SymconMisc-Module wieder wie vorgesehen
* Fix: Wird in einem Konfigurator eine Instanz mit falscher ModulID geprüft kommt wie vorgesehen eine passende Meldung
## V5.1->V5.2 (Q3/2019)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v51-v52-q3-2019/
### Wesentliche Änderungen
* [Voice over IP (VoIP)](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Dynamische Instanzkonfiguration](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Dokumentation direkt öffnen](https://www.symcon.de/de/llms/getting-started/migrationen.md)
* [Performanceverbesserung der Verwaltungskonsole](https://www.symcon.de/de/llms/getting-started/migrationen.md)
#### Voice over IP (VoIP)
Das VoIP Modul kann Telefonverbindungen aufbauen und entgegennehmen. Es können DTMF Signale verarbeitet und Sounds abgespielt werden. So ist es möglich sich beispielsweise in einem Alarmfall automatisch durch einen Telefonanruf informieren zu lassen. Bei einem Anruf können die Zahlentasten ausgewertet und so beispielsweise Geräte geschaltet werden.

#### Dynamische Instanzkonfiguration
Die Konfigurationsseiten von Instanzen können sich nun dynamisch anpassen. So können unter anderem längere Ladezeiten eines Gerätes durch einen Ladebalken dargestellt oder individuell auf diverse Eingaben reagiert werden. Verwendung der Dynamik kann beispielsweise in den Z-Wave-Modulen, dem Notification Control und verschiedenen Konfiguratoren gesehen werden.

All diese Funktionen stehen selbstverständlich auch Modulentwicklern zur Verfügung. Zur dynamischen Anpassung wurden die Funktionen [UpdateFormField](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) und [ReloadForm](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) eingebaut und die möglichen Formularfelder um eine Vielzahl von Parametern erweitert.
#### Dokumentation direkt öffnen
Die Dokumentation eines Moduls kann nun direkt aus der Instanzkonfiguration geöffnet werden. Kommen also während der Konfiguration eines umfangreichen Moduls Fragen auf, so können diese mit einem einzelnen Klick auf den Dokumentations-Button beantwortet werden.

#### Performanceverbesserung der Verwaltungskonsole
Die Performance der webbasierten Verwaltungskonsole wurde weiter verbessert. Durch die Verwendung von WebSockets werden Änderungen an IP-Symcon nun nahezu sofort in der Verwaltungskonsole wiedergespiegelt. Da verschachtelte Inhalte nun erst bei Bedarf geladen werden, ist die initiale Ladezeit der Verwaltungskonsole sowie das Öffnen einer Instanz beschleunigt.
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 5.1 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 5.2 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Es wird Raspbian Buster für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Es wird Ubuntu 18.04 für Linux 64 Bit erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Für Microsoft Windows steht ausschließlich eine 64-Bit Version zur Verfügung.
### Migration (für Entwickler)
* WebSocket Rückkanal von /api/wfc/{5-stellige-ID} zu /wfc/{5-stellige-ID}/api/ geändert
* RTSP Proxy von /proxy/wfc/{5-stellige-ID} zu /wfc/{5-stellige-ID}/proxy/ geändert
### Liste der Änderungen
#### Allgemein
* Neu: PHP 7.3.8 (Löst insbesondere unter Windows 10 (1903) Abstürze beim Starten)
* Neu: VoIP Modul (SIP)
* Neu: EnOcean: Konfigurator für die Geräteübersicht
* Neu: EnOcean: Geräte, die eine eindeutige, verfügbare Geräte-ID zum Anlernen brauchen, können diese direkt per Knopfdruck bestimmen lassen. (Es wird automatisch die nächste freie ID gewählt)
* Neu: Z-Wave: Kommandoklasse BARRIER_OPERATOR
* Neu: Siemens OZW: Laden der verfügbaren Datenpunkte wird im Formular als Fortschrittsbalken angezeigt
* Neu: Siemens SPS: Konfigurator für Siemens Logo 7 / Siemens Logo 8 VM-Adressen
* Neu: LCN: Konfigurator lädt Module und Modulnamen mit einem schicken Fortschirttsbalken
* Neu: LCN: Schwellwerte 4x4 können empfangen werden
* Neu: LCN: Schwellwerte 1x5 und 4x4 können umgerechnet werden (wie bereits von den Variablen 1-12 gekannt)
* Neu: xComfort: Neue Heizungsaktoren werden unterstützt
* Neu: xComfort: Konfigurator unterstützt alle Kanäle vom 12-Kanal Heizungsaktor
* Neu: WebSocket Support für WebHooks (Für Entwickler: WC_PushMessage zum Senden)
* Neu: IRTrans Konfigurationsseite nutzt die neue Dynamik
* Neu: Sys_GetNetworkInfo, Sys_GetBattery, Sys_GetProcessInfo sind jetzt überall verfügbar
* Neu: Dynamik wird im Notification Control und WebFront Konfigurator genutzt
* Fix: LCN: Konfigurator hat erstellte LCN Host-Kommando und Fingerprint Instanzen nicht korrekt erkannt
#### Konsole
* Neu: Performance Verbesserungen bei Instanzseiten. Insbesondere bei z.B. Alexa, HomeKit oder Z-Wave merkbar
* Neu: Das Aktualisierungswidget prüft nun auf neue IP-Symcon-Versionen
* Neu: Dauert das Laden der Parameter eines Musters zur Variablenbearbeitung (in Ereignissen oder "Befehle testen") länger, kommt eine Ladeanimation
* Neu: Gebe eine schöne Meldung aus, wenn in einem Ereignis oder in "Befehle testen" eine Funktion mit Parameter vom Typ Variant oder Array gewählt wird
* Neu: Schöner Beschreibungstext für Aktionen im Ereignisdialog von Instanzen
* Neu: Bei Konfiguratoren kann 'position' und 'info' mit angegeben werden
* Neu: Bei Konfiguratoren wird eine Warnmeldung angezeigt, wenn die 'location' an der falschen Stelle definiert wurde
* Neu: Wochenplan und Ereignisdialog von Instanzen zeigt in den Aktionen eine schönere Beschreibung an, sofern möglich
* Neu: Tabs der letzten Sitzung werden erst bei Bedarf geladen. Dies sollte die initiale Ladezeit, insbesondere bei vielen Tabs, deutlich reduzieren
* Neu: Aktualisierungswidget wurde überarbeitet und prüft nun auch auf Aktualisierungen von IP-Symcon
* Neu: Sind ein oder mehrere Typen im Objektbaum ausgeblendet, so wird der "Typen"-Button eingefärbt
* Neu: Konsole kommuniziert über WebSockets
* Neu: Ist ein Kontextmenü offen wird bei Betätigung von Escape das Menü und nicht zusätzlich der darunterliegende Tab/Dialog geschlossen
* Neu: Enthält ein Modul im Module Store keine Discovery- oder Konfigurator-Instanzen, so biete die Erstellung von Kern-Instanzen an bzw. Geräte-Instanzen, falls auch keine Kern-Instanzen existieren
* Neu: Dialog zum Stream erstellen wurde erweitert. Nun können Benutzername und Passwort in seperaten Feldern eingegeben werden, außerdem kann der Streamtyp (RTSP oder MJPEG) ausgewählt werden
* Neu: Die Position eines Objektes kann im Objektbaum durch einen Doppelklick auf die Positionsspalte bearbeitet werden
* Neu: Dialog zum Instanz erstellen enthält nun die Auswahl "Kein Hersteller" und "(Sonstige)" wurde zu "(Gerät)" umbenannt
* Neu: Verbesserte Performance bei vielen Einträgen pro Sekunde ins Meldungsfenster
* Neu: Instanz Debug kann ins Logfile weitergeleitet werden
* Neu: Im Instanz-Erstellen Dialog gibt es nun eine Auswahl für den Modultyp
* Neu: Die Liste im Status-Widget erlaubt das Expandieren von langen Nachrichten
* Neu: Module-Control schlägt Alexa als Standard-Modul vor
* Neu: In Konfiguratoren können nun mehrere Instanzen zum Erstellen ausgewählt werden
* Neu: Im RowLayout wird ein Zeilenumbruch gemacht, wenn zu viele Elemente enthalten sind
* Fix: Alle erlaubten Dokumenttypen können nun wie vorgesehen im Dokument-Dialog ausgewählt werden
* Fix: Lange Labels mit Links werden nun korrekt formatiert
* Fix: Browsererkennung funktioniert nun auch bei iOS 13
* Fix: Einige verwendete Bibliotheken wurden aktualisiert
* Fix: Im Demo-Widget konnte "Abgelaufen" stehen, obwohl die Demo noch lange gültig ist
* Fix: Konfiguratoren die keine Namensspalte haben funktionieren nun korrekt
* Fix: Warte mit dem Springen zu neu erstellten Objekten bis diese korrekt einsortiert wurden
* Fix: Aufräumen im Archiv erfolgt nun iterativ und nicht für alle Variablen parallel, was bei größeren Archiven zu Problemen führen konnte
* Fix: Kann ein HTML-Link nicht direkt geöffnet werden, so öffne einen Dialog, der dies anbietet
* Fix: Nachrichten vom Typ EM_CHANGESCHEDULEGROUPPOINT werden nun wie vorgesehen ausgewertet
* Fix: Wird im Archiv eine Zeitspanne gelöscht, so erfolgt eine schöne Fehlermeldung, wenn die "Von"-Zeit nach der "Bis"-Zeit liegt
* Fix: Slider in der Instanzkonfiguration als HorizontalSlider oder als Teil des Testcenters skalieren nun in Ihrer Schrittgröße, damit beispielsweise Variablen mit dem Profil ~Intensity.1 gut schaltbar sind
* Fix: Es wird verhindert, dass durch die Verwendung der Browserhistorie Tabs zu entfernten Objekten geöffnet werden
* Fix: Wird ein Skript von ausserhalb des Skripteditors ausgeführt, wird dies wie vorgesehen nicht mehr im Skripteditor angezeigt
* Fix: Bei Konfiguratoren kann die 'location' korrekt auch bei Ketten verwendet werden
* Fix: Ereignisse auf Statusvariablen werden wie vorgesehen erlaubt und nicht mit einer Nachricht kommentiert
* Fix: Lange Beschreibungen von Parametern im Skripteditor können nicht mehr überlaufen
* Fix: Das verwendete Framework Polymer wurde auf die neueste Version aktualisiert
* Fix: Uhrzeiten für Aktionen im Wochenplan werden korrekt ausgewertet
* Fix: Aktualisiere, die Aktionsauswahl, wenn wiederholt das gleiche Ziel für ein Ereignis gewählt wird, da sich die Schaltbarkeit von Variablen ändern könnte
* Fix: Skins über das Aktualisierungswidget zurücksetzen funktioniert nun wie vorgesehen
* Fix: Module aus dem Module Store können wie vorgesehen über das Aktualisierungswidget aktualisiert werden
* Fix: Farbauswahl von Transparent aus funktioniert wieder wie vorgesehen in allen Browsern
* Fix: Kompaktmodus hat den Switch nun links vom Text (wurde manchmal mit aktivierbaren Spezialschaltern verwechselt)
* Fix: Dialoggröße von Auswahlbäumen passt sich dynamisch an die Anzahl dargestellter Objekte an
* Fix: Fehlende Systemvariablen wurden der Autovervollständigung im Skripteditor hinzugefügt
* Fix: Bei Modulen ohne Hersteller wird der Typ im Instanz-erstellen-Dialog wieder wie vorgesehen mit Klammern dargestellt
* Fix: Die Größe von Spalten mit prozentualer Breite, z.B. im Module Control, kann wieder wie vorgesehen angepasst werden
* Fix: Ausklappmenüs im Skripteditor werden wieder wie vorgesehen geschlossen, wenn daneben geklickt wird
#### WebFront
* Neu: Graphen in einem Multi-Chart können aus-/eingeblendet werden
* Neu: Medien vom Typ "Dokument" (z.B. PDFs) können direkt heruntergeladen werden
* Neu: Editor kann nun auch korrekt auf Tablets verwendet werden
* Fix: Sichtbarkeit der einzelnen Elemente konnte nicht verändert werden im Gegensatz zur Legacy Konsole
* Fix: Im WebFront Konfigurator kann HD/Extrema nicht mehr als Standard aktiviert werden, solange Rohdaten aktiv ist
* Fix: Beim Öffnen eines WebFront über den Connect Dienst welcher ein Kennwort benötigt gibt es keine unnötige 10 Sekunden Wartezeit mehr
* Fix: WebFront: Schaltbefehle konnten beim Nutzen von Slidern doppelt versendet werden
* Fix: WebFront: HD/Extrema wurden ggf. aktiviert, obwohl die Rohdaten Ansicht aktiv sein sollte
* Fix: Sortierung wurde für neue Objekte nicht korrekt übernommen
* Fix: Sortierung wurde für neue Kategorien nicht korrekt übernommen
* Fix: Kategorie wurde nicht korrekt abgewählt wenn diese versteckt/gelöscht wurde
#### PHP-SDK
* Neu: Formular-Dynamik
* Neu: In der module.json gibt es ein neues "url" Feld, welches einen String annimmt. Dies kann ein Link direkt zur Moduldokumentation sein und wird in Zukunft in der Instanzkonfiguration verfügbar sein, sofern angegeben.
* Neu: In der library.json im Feld Versionen können nun beliebige Versionen (z.b. 1.0b) angegeben werden
* Neu: Die IPS_GetLibrary Funktion liefert im Feld Version nun einen String anstatt einem Integer Wert
#### Sonstiges
* Neu: Erweiterte Bedingungen unterstützen den Vergleich auf einen Wochentag
* Neu: Im Location Control kann das Interval für Azimuth/Altitude eingestellt werden
* Neu: Im Location Control können für "IstTag" auch die Offsets verwendet werden
* Neu: EnOcean Gateway liest das Chipset aus (z.B. TCM310 oder TCM515)
* Neu: Duplizieren von Objekten übernimmt jetzt Konfiguration der Status-Variablen
* Neu: Web-Server kann nun z.B. aus dem /webfront/user/ Ordner mp4 Dateien korrekt in Safari abspielen
* Neu: IPS_EnableDebugFile($id) aktiviert das Schreiben vom Debug-Logs in eine Datei (z.B. Linux: /var/log/symcon/debug_id.log)
* Neu: DiscoveryServer versendet Connect-Adresse (sofern verfügbar), sodass die Apps direkt den Zugriff über Connect einrichten können *
* Neu: Util Control erlaubt das automatische Konvertieren von PHP Short Tags () in die normalen Tags ( 0 Pakete empfangen werden
"Memory" Option nicht berücksichtigt wurde
* Fix: Z-Wave: Control Klasse "SCENE_ACTIVATION" wird mit zu den unterstützten Klassen gewertet (Löst Probleme mit Scenen Activiation)
* Fix: WebFront: CircleSlider und Farbrad können wieder genutzt werden, wenn vorher Werte gespeichert wurden
* Fix: Konsole: Abstände der Elemente beim Test-Center verbessert
* Fix: Konsole: Module Store überspringt beim Prüfen fehlerhafte alte Module
* Fix: WebFront: IMAP/POP3 Postfächer werden wieder geladen
* Fix: SymconMisc korrekt in "Misc Modules" beim Migrieren umbenannt
* Fix: Skriptausgabe ist im Firefox wieder kopierbar
* Fix: Module Store prüft auf Updates in der korrekten Sprache
* Fix: Konsole: Einige Ereignisse konnte nicht bearbeitet werden
* Fix: Konsole: Im Store kann nach Begriffen mit Leerzeichen gesucht werden
* Fix: WebFront: Wenn ein ReverseProxy verwendet wird, versuchen wir den Pfad in der WebSocket Verbindung korrekt abzubilden
* Fix: location kann nun wie vorgesehen auf für Ketten im Configurator-Element verwendet werden
* Fix: Uhrzeiten für Aktionen im Wochenplan werden korrekt ausgewertet* Fix: Skins über das Aktualisierungswidget zurücksetzen funktioniert nun wie vorgesehen
* Fix: Module aus dem Module Store können wie vorgesehen über das Aktualisierungswidget aktualisiert werden
* Fix: dS Expert Instanz konnte nicht erstellt werden
* Fix: WebFront: RTSP Streams werden zentriert und skaliert
* Fix: WebFront: Skin Builder ignoriert alle @eaDir Verzeichnisse
* Fix: Konsole: Sofern falsche Elemente genutzt werden, wird nun eine bessere Fehlermeldung geworfen
* Fix: Konsole: Hintergrund bei "Befehl ausführen" Dialog wird korrekt vergrößert
* Fix: Konsole: Kontextmenü auf Firefox unter MacOS funktioniert nun korrekt
* Fix: Konsole: Wird ein Skript von ausserhalb des Skripteditors ausgeführt, wird dies wie vorgesehen nicht mehr im Skripteditor angezeigt
* Fix: Abstürze unter Linux/Mac beim Aktualisieren von Modulen über das Module Control/Store gelöst
* Fix: Es wird geprüft, ob eine Datenfluss-Verbindung eine Endlosschleife ergibt. Sollte dies der Fall sein, wird die Verbindung nicht erlaubt.
* Fix: PHP-SDK: HasActiveParent liefert false, wenn es keinen Parent gibt.
* Fix: WebFront Konfigurator zeigt wieder korrekt die Geräte in der Geräteliste an
* Fix: _generated.inc.php sollte beim Aktualisieren von Modulen nicht mehr kaputt gehen
* Fix: Beim Entladen der Module werden die Funktionsverweise auch gelöscht, sodass diese nicht mehr doppelt und dreifach in "Befehle testen" auftauchen
* Fix: Konsole: Revisionsnummer war 11 statt 12 Zeichen lang
* Fix: Konsole: Farbauswahl von Transparent aus funktioniert wieder wie vorgesehen in allen Browsern
* Fix: WebFront: Bessere Fehlermeldung, wenn ein falscher Platzhalter verwendet wird
* Fix: "Gerät reaktivieren" ist für Z-Wave auch in der webbasierten Konsole verfügbar
* Fix: xComfort Konfigurator kann wieder die neuen "Schalter" hinzufügen
* Fix: Z-Wave: Absturz beim Empfang von defekter BATTERY_REPORT Pakete wird abgefangen
* Fix: Legacy Konsole: Öffnen des neuen WebFront Editors ist jetzt auch über Connect Dienst möglich
* Fix: Wenn ein Modul in den "modules" Ordner initial kopiert wurde, konnte es nicht per MC_ReloadModule geladen werden
* Fix: Beim Duplizieren von vielen Objekten über die Verwaltungskonsole konnte IP-Symcon hängen bleiben
* Fix: Unterkanäle von Z-Wave Geräten können in der webbasierten Konsole korrekt bearbeitet werden
* Fix: M-Bus: "stol" Fehler beim Auswerten von M-Bus Zählern korrigiert
* Fix: Legacy Konsole: Der neue Editor kann korrekt geöffnet werden, wenn der Connect Dienst genutzt wird
* Fix: Konsole: Beim Hinzufügen und Bearbeiten von Gruppen im Wochenplan betreffen Änderungen der neuen Gruppe wie vorgesehen keine anderen Gruppen
* Fix: Konsole: Meldungen zu Statusvariablen ohne Aktion bei Ereignissen angepasst
* Fix: Konsole: Wird eine Variable, die nie geändert wurde, im Archiv geöffnet, dann wird eine entsprechende Meldung angezeigt
* Fix: Konsole: Die Bearbeiten-Dialoge im Archiv können nun wie vorgesehen erneut geöffnet werden, nachdem geloggte Werte hinzugefügt wurden
* Fix: Race Condition beim Timer Pool gelöst, welcher ggf. endlose "Warte auf Timer" Fehler auslösen konnte
* Fix: Duplizieren beachtet jetzt auch deaktivierte Standardaktionen
* Fix: Suchen/Einrichten von D2-* EnOcean Geräten wieder möglich
* Fix: MQTT Server (Broker) hat Eingabe für Benutzername/Passwort
* Fix: Z-Wave: Wenn direkt beim Senden ein Fehler aufgetreten ist, wurden die Retries nicht berücksichtigt
* Fix: KNX Shutter: Wenn auf der GA 0/0/0 Pakete gesendet wurde hat der Shutter diese fälschlicherweise ausgewertet
* Neu: Module Store informiert über Module, welche eine neuere IP-Symcon Version erfordern
* Fix: Fehlermeldung beim UDP Socket, sofern der Host leer gelassen wurde
* Fix: Weiteres Absturzproblem bei unvollständigen Z-Wave Battery Nachrichten gelöst
* Fix: Z-Wave: Schalter für "Erzwinge Simple Assoziationen" fehlte in der Legacy Konsole
* Fix: LCN Modul Konfigurator: Instanzen für Fingerprint/Host Kommando werden korrekt erkannt
* Fix: WebFront: Schaltbefehle konnten beim Nutzen von Slidern doppelt versendet werden
* Fix: WebFront: HD/Extrema wurden ggf. aktiviert, obwohl die Rohdaten Ansicht aktiv sein sollte
* Fix: VoIP: Erlaube Anrufer Liste wurde nicht korrekt ausgewertet
* Fix: VoIP: VoIP_Disconnect kann nun "klingelnde" (=nicht angenommene) Anrufe abbrechen
* Fix: Z-Wave: Einige Befehle sollte nicht als gesendete Pakete zählen
* Fix: Z-Wave: Für einige Befehle sollte es keine Retries geben (insbesondere NIF-Anfragen)
* Fix: Konsole: Erweiterte Bedingungen können nicht mehr unbeabsichtigt gelöscht werden
* Fix: Beim Beenden konnte IP-Symcon Abstürzen, sofern OPcache aktiviert war
* Fix: Konsole erkennt Safari auf iOS 13 korrekt und zeigt keinen Warnhinweis mehr an
* Fix: Spalten gehen nicht mehr kaputt, wenn man die Positionsspalte einblendet und dann neu Lädt (Dies ist der Webinar Bug!)
* Fix: Neu angelegte Ereignisse konnten unter bestimmten Bedingungen nicht mehr geöffnet werden
## V5.0->V5.1 (Q2/2019)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v50-v51-q2-2019/
### Wesentliche Änderungen
* Module Store (Beta)
* RTSP-Streams
* Z-Wave überarbeitet
* MQTT (Beta)
* Datenimport im Archiv
* PHP 7.3
* Performance der Konsole
#### Module Store (Beta)
In der webbasierten Konsole kann nun auf den Module Store zugegriffen werden. Hier können angebotene Module von anderen Benutzern komfortabel durchsucht und installiert werden. Aktuell ist der Module Store als Beta verfügbar und wird im Laufe der kommenden Versionen noch um diverse spannende Features erweitert.

#### RTSP Streams
Über RTSP Streams können nahezu alle handelsüblichen Kameras in IP-Symcon eingebunden werden. Da IP-Symcon hier als Verteiler agiert, können auch bei Kameras, die eigentlich nur einen Empfänger zur Zeit unterstützen, mehrere Benutzer gleichzeitig auf den Stream zugreifen.

Aktuell funktionieren die RTSP Streams im Chrome, Firefox, Opera und Android (inkl. Apps ab Version 5.1). Zusätzlich müssen RTSP Streams aktuell mit h264 kodiert werden. Die Anzahl von RTSP Streams, die gleichzeitig angeboten werden können, hängen von der verwendeten Version ab, siehe [Funktionsübersicht](https://www.symcon.de/de/produkt/editionen/) .
#### Z-Wave überarbeitet
Die Unterstützung von Z-Wave wurde komplett überarbeitet. Beim Laden der Gerätekonfiguration werden nun alle Daten des Gerätes eingelesen und stehen direkt zur Verfügung. Zusätzlich kann nun eine noch größere Vielfalt von Z-Wave-Geräten eingebunden werden. Mehr Details zu den unterstützten Geräten finden Sie [hier](https://www.symcon.de/de/llms/modules/z-wave.md) .

#### MQTT (Beta)
MQTT wird nun von IP-Symcon nativ unterstützt. Mit Version 5.1 startet die Open Beta der MQTT Anbindung, welche die grundlegenden Funktionen von MQTT anbietet und damit die meisten MQTT-Geräte unterstützt. Die vollständige Anbindung von MQTT kommt mit Version 5.2.

#### Datenimport im Archiv
Es ist nun möglich, die archivierten Werte einer Variablen im Nachhinein zu erweitern. So können beispielsweise Verbräuche eingetragen werden, welche ermittelt wurden bevor sie als Variable in IP-Symcon verwaltet wurden oder Daten nachgetragen werden, falls die Verbindung zwischen Sensor und IP-Symcon kurzzeitig gestört wurde. Es ist sowohl möglich die neuen Daten als Datei einzulesen als auch die Werte direkt in IP-Symcon einzutragen.

#### PHP 7.3
Die verwendete PHP-Version wurde von 7.2 auf 7.3 aktualisiert. Dies bietet verschiedene neue Funktionen. Details zur neuen Version können [hier](https://www.php.net/releases/7_3_0.php) gefunden werden.
#### Performance der Konsole
Die Performance vom Objektbaum und vergleichbaren Elementen wurde deutlich verbessert. Nun können auch Kategorien mit mehr als 1000 Kindern in weniger als einer Sekunde ausgeklappt werden und auch das wiederholte automatisierte Löschen und Erstellen von Objekten stört nicht beim flüssigen Arbeiten.
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 5.0 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 5.1 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Es wird Raspbian Stretch für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Es wird Ubuntu 18.04 für Linux 64 Bit erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Für Microsoft Windows steht ausschließlich eine 64-Bit Version zur Verfügung.
* Upgrade von PHP 7.2 auf PHP 7.3. ([Upgrade auf 7.3](https://www.php.net/migration73) )
### Migration (für PHP-Modul Entwickler)
* Das WebFront benötigt mindestens iOS 10.x aufgrund der Migration auf Dart 2.
* Mit Version 5.1 werden die neuen Funktionen [GetStatus](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) und [HasActiveParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) angeboten. Hier kann es bei gleichnamigen Funktionen zu Konflikten kommen.
### Liste der Änderungen
#### Allgemein
* Neu: PHP 7.3.0
* Neu: MQTT Server (ehemals Broker genannt) (Beta)
* Neu: RTSP Streams können hinzugefügt werden
* Neu: Z-Wave komplett überarbeitet
* Neu: M-Bus: Es werden viele neue Geräte (insbesondere mit weiteren Telegrammen) unterstützt
* Neu: Archiv kann Daten importieren
* Neu: HomeMatic Konfigurator liest die Gerätenamen / Räume per HomeMatic Script aus (Bitte Firewall in der CCU anpassen!)
* Neu: HomeMatic unterstützt Authentifizierung der CCU3
* Neu: HomeMatic unterstützt Verschlüsselung der CCU3
* Neu: KNX DPT 249.*
* Neu: WebServer unterstützt WebSockets
* Neu: digitalStrom (Expert Modul)
* Neu: Presence Control
* Neu: Connect Dienst Backend von libssh2 auf libssh gewechselt (Mehr Performance, Löst Probleme mit DS-Lite Anschlüssen)
* Neu: Connect Dienst überprüft periodisch, ob das Eigenheim wirklich über ipmagic.de verfügbar ist.
* Neu: Wir kompilieren fast alle Abhängigkeiten direkt in IP-Symcon rein, damit diese von der Versionen für alle IP-Symcon Betriebssysteme gleich sind. Damit sollte übrigens die Installation auf andere Linux-Derivate einfacher werden (auch wenn wir es nicht offiziell unterstützen)
* Neu: Event Control verbindet fehlerhafte Instanzen nicht mehr jede Minute sondern mit Abstand (2^Fehlversuche Minuten). Mindestens jedoch einmal am Tag.
* Neu: Profil für pH Werte
* Neu: Status Code für Instanzen geändert: 201 wurde auf 105 geändert, da der 200+ Raum für benutzerdefinierte Fehler reserviert war
* Neu: .well-known Ordner wird in den beschreibbaren Bereich gemappt (IPS_GetKernelDir())
* Neu: Undokumentierte Funktion IPS_GetOptionList
* Neu: IPS_GetReferenceList für alle Instanzen
* Neu: Spezialschalter für Basis Authentifizierung des WebFront User Ordners, welche auch für den 3777 Server (inkl. Connect) gelten.
* Neu: Skripte haben neue Felder: ScriptUpdated, ScriptCRC, ScriptSize (Neue Nachricht SM_UPDATE)
* Neu: Neue Spezialschalter: ServerMaxPostSize, MaxLoginAttemptsBeforeSlowdown, MaxLoginAttemptsBeforeLockdown, MaxLoginAttemptsSlowdownDuration, MaxLoginAttemptsLockdownDuration, MaxLoginAttemptsSlowdownWaitTime (Doku)
* Neu: Interne Übersetzungen sind nun aufgeteilt in einzelne Dateien im "locales" Ordner
* Neu: LCN Module-Konfigurator legt Instanzen in einer passenden Kategorie an
* Neu: Systemvariablen $_IPS['OLDUPDATED'] / $_IPS['OLDCHANGED'] für Ereignisse hinzugefügt
* Fix: KNX DPT 13.002 korrigiert (verhält sich jetzt wie die ETS)
* Fix: KNX Shutter: Stop konnte nicht immer ausgeführt werden
* Fix: KNX DPT 242: Bad Variant Access korrigiert
* Fix: KNX wirft keine Fehler mehr, wenn "leere" cEMI Pakete empfangen werden
* Fix: DPT_WriteDPT17 lässt IP-Symcon nicht mehr abstürzen
* Fix: Leerzeichen um eingefügte Adressen im Module und Skin Control können keine Fehler mehr verursachen
* Fix: Multicast Modul zeigt direkt nach Erstellen den Wert für 0.0.0.0 zur Auswahl
* Fix: INF/NaN wird bei SetValue* mit Fehlermeldung bemängelt
* Fix: Probleme mit ALL2x Modul korrigiert
* Fix: EIB/KNX-Formulare in der webbasierten Konsole speichern zusätzliche Adressen nun korrekt als Zahlen ab
* Fix: Legacy Konsole zeigt im Location Control korrekt die Offset-Namen an
* Fix: Wenn der Editor aktiviert war, konnte Objekte nicht geschaltet werden
* Fix: Alte XML-Settings Relikte von IP-Symcon 2.5 und älter werden entfernt
* Fix: HomeMatic KeepAlive differenziert je nach Rückkanal und kann somit Abbrüche für jeden Kanal einzeln erkennen
* Fix: HomeMatic Geräte Instanzen speichern nun einige Meta-Daten, um die Aktion einer Variable nach dem Neustart korrekt widerherzustellen
* Fix: Siemens OZW hat bei Datenpunkten mit Schreibmöglichkeit diese nicht korrekt eingerichtet
* Fix: LCN Gateway ist nicht mehr im Fehlerzustand, sofern der I/O geschlossen ist
* Fix: GUIDs werden bei Funktionsaufrufen auf Gültigkeit geprüft
* Fix: GUIDs von KNX RGB/KNX RGBW korrigiert (Es fehlten die {})
* Fix: LibraryID/ModuleID werden automatisch nach "UpperCase" konvertiert. (Wird mit einer netten Warning bestätigt)
* Fix: Noch nicht unterstützte EnOcean Paket Typen werfen keine Fehler mehr, sondern werden im Debug Log protokolliert
* Fix: xComfort: Der Anzeige der Firmware fehlen führende Nullen
#### Konsole
* Neu: Der Module Store (Beta)
* Neu: Umbau des Objektbaums und anderen Listen-/Baumstrukturen für deutlich bessere Performance
* Neu: Im Archive Control können die Einstellungen zu einer Variablen alternativ durch einen Doppelklick geöffnet werden
* Neu: Abbrechbarer Fortschrittsdialog beim Erstellen von allen Instanzen in einem Konfigurator oder beim Reaggregieren aller Variablen
* Neu: Sicheres Löschen (Prüfen von Referenzen vorm Löschen) ist nun auswählbar
* Neu: Variablen mit ungültiger Aggregation werden entsprechend im Archiv markiert
* Neu: Lokale Sprachen wie de_AU werden nun bei der Übersetzung von Modulen beachtet und primär angewandt, falls vorhanden
* Neu: Bessere Fehlermeldungen, wenn es beim Verbinden Probleme gibt, insbesondere bei deaktiviertem Fernzugriff
* Neu: Von der Instanzkonfiguration und dem Skripteditor aus kann das entsprechende Objekt bearbeitet werden
* Neu: Stelle Anzahl an gelöschten Datensätzen nach Löschen einer Zeitspanne im Archiv dar
* Neu: Initialisiere den "In allen Skripten suchen"-Dialog bei Betätigung von Strg+Shift+F mit dem aktuell ausgewählten Text
* Neu: Beim Sprung zum Skript aus dem "In allen Skripten suchen"-Dialog wird der gesuchte Text ausgewählt
* Neu: Mitteilung beim Abschluss des Aufräumens im Archiv
* Neu: Spaltengrößen sind nun auch in der webbasierten Konsole änderbar.
* Neu: "Tab hinzufügen" Button ist jetzt immer sichtbar - auch bei vielen Elementen
* Neu: Zeige SkriptID in PHP Information an
* Neu: Wird im Wochenplan eine Aktion für ein nicht schaltbares Objekt hinzugefügt oder eine mit leerem Skript geöffnet, wird automatisch PHP ausgewählt
* Neu: Wochenpläne wurden umgebaut, so dass beim Hovern die Uhrzeit angezeigt wird und das Verhalten bei Klicks dem WebFront entspricht
* Neu: Ladebildschirme wurden an das neue Homepagedesign angepasst. Es wird nun auch vor dem Login-Dialog ein Ladebildschirm gezeigt
* Neu: Der aktuell ausgewählte Tab wird hervorgehoben
* Neu: Füllen die Tabs die Leiste, so werden sie dünner skaliert. Die Pfeile zum Scrollen erscheinen erst, wenn die Tabs sonst eine gewisse Mindestbreite unterschreiten würden
* Neu: Autovervollständigung im Skripteditor unterstützt nun auch Standard-PHP-Funktionen
* Neu: Enthält eine Variable über ihr Profil Assoziationen, hat aber einen Wert unter allen Assoziationswerten, wird nun als Wert '-' anstatt eines Fehlers angezeigt
* Neu: Links werden (wieder) standardmäßig ohne Namen erstellt, da diese nun in allen Anwendungen mit dem Namen des Ziels dargestellt werden
* Neu: Mittels Shift + Pfeiltasten können mehrere Knoten in Bäumen ausgewählt werden
* Neu: Neues Konfigurationselement "TestCenter" zum Schalten aller Statusvariablen
* Neu: Icon editieren Dialog zeigt Fortschritt beim Laden der Icons und Cached diese.
* Neu: Skripteditor zeigt nach dem Ausführen die Laufzeit an
* Neu: Beim Öffnen des Module Controls wird geprüft, ob installierte Bibliotheken durch Module aus dem Module Store ersetzt werden können
* Neu: Im Demo-Widget wird nun beim Text zwischen Demos mit und ohne Lizenz differenziert
* Fix: Konsole: Im Prüfen-Dialog des Konfiguratorelements wird nicht mehr "undefined" angezeigt
* Fix: Der Tab öffnen Dialog und der Archiv Operations Dialog können per Escape geschlossen werden
* Fix: Fehler in Suchfeldern (beispielsweise ID nicht vorhanden) werden korrekt dargestellt
* Fix: Die Darstellungsoption im Debug Log wurde umgestaltet und sollte die Funktionalität nun besser verdeutlichen
* Fix: Variablen im Archiv werden nun nach Position gruppiert
* Fix: Prüfe ob aktuelle Filter ein Sprungziel bei "Zu Referenz springen" im Referenzdialog oder "Zum Quellobjekt springen" bei Links verbergen und frage, ob diese deaktiviert werden sollen
* Fix: In Zwischenablage kopieren kann auch mit iOS benutzt werden
* Fix: Titelzeile der Instanzkonfiguration auf kleinen Displays optimiert
* Fix: In ausgelösten Ereignissen Instanzaktionen laden funktioniert nun auch mit Strings und wechselt auf PHP Code, sofern die Aktion nicht geparst werden kann
* Fix: Sollte eine Demoversion geöffnet werden, so erscheint das Demowidget nun als letztes, nicht als erstes, Widget
* Fix: Gesperrte Variablen über dem Variablenlimits werden korrekt markiert
* Fix: Benutzernamen mit E-Mails, welche einen Suffix von mehr als 4 Zeichen haben, werden nun korrekt unterstützt
#### WebFront
* Neu: WebFront auf Dart 2 migriert (Entfernt Unterstützung von iOS 9.x)
* Neu: WebFront fügt die IDs im DOM hinzu, sodass Skins gezielter greifen können
* Neu: WebFront nutzt den neuen WebSocket Rückkanal
* Neu: WebFront mit deaktiviertem Editor lädt bei fehlenden Objekten nicht mehr neu, sondern lädt diese passend nach
* Neu: WebFront WYSIWYG Editor kann die in der Basic Version vorhandenen Elemente bearbeiten (wie zur Zeit in der Legacy Konsole möglich)
* Neu: WebFront WYSIWYG Editor kann per Knopfdruck sicher aus der Verwaltungskonsole geöffnet werden
* Neu: UnixTimestamp* Profile können im Info-Widget verwendet werden
* Neu: Button im Konfigurator um WebFronts neu zu laden wurde entfernt. Stattdessen werden die WebFronts bei Änderungen automatisch neu geladen
* Neu: Timeout Parameter für Logout Widget zum Automatischen Logout nach Inaktivität
* Fix: UTF-8 kodierte Zeichen konnten in der WebFront Legende nicht angezeigt werden
* Fix: Wenn RAW bei Graphen aktiviert ist, werden die Zeiten korrekt im Titel angezeigt
* Fix: WebFront kann nun String-CSV Daten anzeigen
* Fix: WFC_OpenCategory funktioniert wieder korrekt
* Fix: Wenn das Laden einer Medien Datei fehlschlägt wird die Ladeanimation korrekt versteckt
* Fix: Der Slider springt auf die alte Position zurück, wenn das Setzten des neuen Wertes fehlschlägt
* Fix: Slider mit % korrigiert, wenn Min > 0 war (Fix für die Apps kommt)
* Fix: WebFront Skin-Builder ignoriert .DS_Store Dateien
* Fix: WebFront Konfigurator nutzt bei Skins den Namen und nicht mehr den Titel
* Fix: Scrollen funktioniert bei vielen Konfiguratoren wieder korrekt
* Fix: Die linken Achsen bei Multigraphen werden genauso sortiert wie die Legende
* Fix: Achsen von Bool Graphen innerhalb von Line Charts werden dargestellt
* Fix: WebFront: Bei UnixTimestampTime konnte exakt 01:00 nicht als Wert angezeigt/ausgewählt werden
#### PHP-SDK
* Neu: Attribute, welche direkt ohne ApplyChanges gespeichert werden
* Neu: Konstanten sind nun definiert
* Neu: Funktionen zum Registrieren der benutzten/referenzierten IDs
* Neu: Parameter "link" für das Konfigurationselement Button ermöglicht die Angabe, ob die Ausgabe als Link interpretiert werden soll oder nicht
* Neu: Das Formularelement "Image" kann durch das Flag "center" nun zentriert werden
* Neu: [GetStatus](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
* Neu: [HasActiveParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
#### Änderungen 5.1.x
* Neu: PHP 7.3.5
* Neu: IPS_ConnectInstance prüft, ob die Verbindung sinn ergibt (z.B. Kern Instanzen haben keinen Datenfluss) und ob die Datenfluss GUIDs passen
* Neu: Konsole: In Ereignissen gibt es ein neues Template zum Umschalten von Boolean Variablen
* Neu: Konsole: Aktualisierungs-Widget berücksichtigt nun auch Skins und den Store
* Neu: Konsole: Falsch konfigurierte Ereignisse werden im Baum markiert
* Neu: WebFront: Per Parameter ?password=xxxx kann ein Kennwort-geschütztes WebFront direkt geöffnet werden
* Neu: WebFront: "Nicht unterstützt" Meldung wird angezeigt, sofern iOS 9.x oder älter verwendet wird
* Neu: WebFront: Reverse-Proxy mit Suffixen im Pfad sollte nun korrekt funktionieren
* Neu: Module Store informiert über Module, welche eine neuere IP-Symcon Version erfordern
* Fix: DBus und Avahi wurden nicht automatisch gestartet, wodurch das HomeKit Modul nicht genutzt werden konnte
* Fix: KNX: Shutter wirft bei aktivierter Lamellensteuerung keine Fehlermeldung, wenn Stop mehrmals betätigt wird
* Fix: KNX: Wenn im Shutter falsche EIS Typen empfangen wurden, wurde eine kryptische Fehlermeldung generiert. Die neue orientiert sich an der EIB Geräte Instanz
* Fix: MQTT Server wirft bessere Fehlermeldung wenn die noch nicht unterstützten QoS > 0 Pakete empfangen werden
"Memory" Option nicht berücksichtigt wurde
* Fix: Z-Wave: Control Klasse "SCENE_ACTIVATION" wird mit zu den unterstützten Klassen gewertet (Löst Probleme mit Scenen Activiation)
* Fix: WebFront: CircleSlider und Farbrad können wieder genutzt werden, wenn vorher Werte gespeichert wurden
* Fix: Konsole: Abstände der Elemente beim Test-Center verbessert
* Fix: Konsole: Module Store überspringt beim Prüfen fehlerhafte alte Module
* Fix: WebFront: IMAP/POP3 Postfächer werden wieder geladen
* Fix: SymconMisc korrekt in "Misc Modules" beim Migrieren umbenannt
* Fix: Skriptausgabe ist im Firefox wieder kopierbar
* Fix: Module Store prüft auf Updates in der korrekten Sprache
* Fix: Konsole: Einige Ereignisse konnte nicht bearbeitet werden
* Fix: Konsole: Im Store kann nach Begriffen mit Leerzeichen gesucht werden
* Fix: WebFront: Wenn ein ReverseProxy verwendet wird, versuchen wir den Pfad in der WebSocket Verbindung korrekt abzubilden
* Fix: location kann nun wie vorgesehen auf für Ketten im Configurator-Element verwendet werden
* Fix: Uhrzeiten für Aktionen im Wochenplan werden korrekt ausgewertet* Fix: Skins über das Aktualisierungswidget zurücksetzen funktioniert nun wie vorgesehen
* Fix: Module aus dem Module Store können wie vorgesehen über das Aktualisierungswidget aktualisiert werden
* Fix: dS Expert Instanz konnte nicht erstellt werden
* Fix: WebFront: RTSP Streams werden zentriert und skaliert
* Fix: WebFront: Skin Builder ignoriert alle @eaDir Verzeichnisse
* Fix: Konsole: Sofern falsche Elemente genutzt werden, wird nun eine bessere Fehlermeldung geworfen
* Fix: Konsole: Hintergrund bei "Befehl ausführen" Dialog wird korrekt vergrößert
* Fix: Konsole: Kontextmenü auf Firefox unter MacOS funktioniert nun korrekt
* Fix: Konsole: Wird ein Skript von ausserhalb des Skripteditors ausgeführt, wird dies wie vorgesehen nicht mehr im Skripteditor angezeigt
* Fix: Abstürze unter Linux/Mac beim Aktualisieren von Modulen über das Module Control/Store gelöst
* Fix: Es wird geprüft, ob eine Datenfluss-Verbindung eine Endlosschleife ergibt. Sollte dies der Fall sein, wird die Verbindung nicht erlaubt.
* Fix: PHP-SDK: HasActiveParent liefert false, wenn es keinen Parent gibt.
* Fix: WebFront Konfigurator zeigt wieder korrekt die Geräte in der Geräteliste an
* Fix: _generated.inc.php sollte beim Aktualisieren von Modulen nicht mehr kaputt gehen
* Fix: Beim Entladen der Module werden die Funktionsverweise auch gelöscht, sodass diese nicht mehr doppelt und dreifach in "Befehle testen" auftauchen
* Fix: Konsole: Revisionsnummer war 11 statt 12 Zeichen lang
* Fix: Konsole: Farbauswahl von Transparent aus funktioniert wieder wie vorgesehen in allen Browsern
* Fix: WebFront: Bessere Fehlermeldung, wenn ein falscher Platzhalter verwendet wird
* Fix: "Gerät reaktivieren" ist für Z-Wave auch in der webbasierten Konsole verfügbar
* Fix: xComfort Konfigurator kann wieder die neuen "Schalter" hinzufügen
* Fix: Z-Wave: Absturz beim Empfang von defekter BATTERY_REPORT Pakete wird abgefangen
* Fix: Legacy Konsole: Öffnen des neuen WebFront Editors ist jetzt auch über Connect Dienst möglich
* Fix: Wenn ein Modul in den "modules" Ordner initial kopiert wurde, konnte es nicht per MC_ReloadModule geladen werden
* Fix: Beim Duplizieren von vielen Objekten über die Verwaltungskonsole konnte IP-Symcon hängen bleiben
* Fix: Unterkanäle von Z-Wave Geräten können in der webbasierten Konsole korrekt bearbeitet werden
* Fix: M-Bus: "stol" Fehler beim Auswerten von M-Bus Zählern korrigiert
* Fix: Legacy Konsole: Der neue Editor kann korrekt geöffnet werden, wenn der Connect Dienst genutzt wird
* Fix: Konsole: Beim Hinzufügen und Bearbeiten von Gruppen im Wochenplan betreffen Änderungen der neuen Gruppe wie vorgesehen keine anderen Gruppen
* Fix: Konsole: Meldungen zu Statusvariablen ohne Aktion bei Ereignissen angepasst
* Fix: Konsole: Wird eine Variable, die nie geändert wurde, im Archiv geöffnet, dann wird eine entsprechende Meldung angezeigt
* Fix: Konsole: Die Bearbeiten-Dialoge im Archiv können nun wie vorgesehen erneut geöffnet werden, nachdem geloggte Werte hinzugefügt wurden
* Fix: Race Condition beim Timer Pool gelöst, welcher ggf. endlose "Warte auf Timer" Fehler auslösen konnte
* Fix: Duplizieren beachtet jetzt auch deaktivierte Standardaktionen
* Fix: Suchen/Einrichten von D2-* EnOcean Geräten wieder möglich
* Fix: MQTT Server (Broker) hat Eingabe für Benutzername/Passwort
* Fix: Z-Wave: Wenn direkt beim Senden ein Fehler aufgetreten ist, wurden die Retries nicht berücksichtigt
* Fix: KNX Shutter: Wenn auf der GA 0/0/0 Pakete gesendet wurde hat der Shutter diese fälschlicherweise ausgewertet
* Fix: Fehlermeldung beim UDP Socket, sofern der Host leer gelassen wurde
* Fix: Weiteres Absturzproblem bei unvollständigen Z-Wave Battery Nachrichten gelöst
* Fix: Z-Wave: Schalter für "Erzwinge Simple Assoziationen" fehlte in der Legacy Konsole
* Fix: LCN Modul Konfigurator: Instanzen für Fingerprint/Host Kommando werden korrekt erkannt
* Fix: WebFront: Schaltbefehle konnten beim Nutzen von Slidern doppelt versendet werden
* Fix: WebFront: HD/Extrema wurden ggf. aktiviert, obwohl die Rohdaten Ansicht aktiv sein sollte
## V4.4->V5.0 (Q3/2018)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v44-v50-q3-2018/
### Wesentliche Änderungen
* Webbasierte Verwaltungskonsole
* Amazon Alexa und Google Home
* WebFront: Neuer Light Skin
* PHP 7.2
* KNX: Erweiterung für alle DPTs
* Hardwareunterstützung für ekey Fingerprint Lösungen
* Docker Support
* Verbesserung der mobilen Apps
* Erweiterung vom Location Control
* Neue Funktionen im WebFront
#### Webbasierte Verwaltungskonsole
Die webbasierte Verwaltungskonsole ersetzt zu IP-Symcon 5.0 standardmäßig die alte Verwaltungskonsole. Sie bietet diverse Vorzüge und macht die Konfiguration von IP-Symcon um einiges komfortabler. Unterstützt werden die Browser Chrome, Opera, Safari, Firefox und Edge.
So bietet die neue Startseite der Verwaltungskonsole diverse individuell einstellbare Widgets, welche die verschiedenen Aspekte des Systems darstellen können.

Die Dialoge zur Erstellung von Objekten wurden komplett überarbeitet und bieten nun alle Einstellungen mit ausklappbaren Reitern auf einer Seite. So ist alles an einem Ort zu finden und bleibt dennoch übersichtlich.

Darüber hinaus ist die Verwaltungskonsole betriebssystemunabhängig. So kann die Konfiguration von IP-Symcon auf jedem üblichen Betriebssystem vorgenommen werden. Zusätzlich muss die Konsole nicht mehr installiert oder heruntergeladen werden, denn sie ist immer Bestandteil von der IP-Symcon Installation. Über Symcon Connect ist die Verwaltungskonsole ebenfalls erreichbar, sodass ein Zugriff jederzeit und von jedem Ort leicht möglich ist.

#### Amazon Alexa und Google Home
Mit IP-Symcon 5.0 kommen zwei neue Module, welche die Sprachsteuerung via Amazon Alexa oder Google Assistant ermöglichen. Wir möchten uns hier noch einmal bei unserem Communitymitglied Dave bedanken, welcher mit uns das Alexa-Modul IQL4SmartHome entwickelt hat. Das neue Alexa-Modul verwendet die Alexa Skill API in der aktuellen Version 3, welche einige neue Features ermöglicht, wie beispielsweise die Szenensteuerung.

#### WebFront: Neuer Light Skin
Ein neuer moderner Skin findet Einzug. Neben dem “Standard” und “DarkSkin” bieten wir zusätzlich den “LightSkin” an. Dieser ist in seinem Aufbau und Optik bewusst modern und hell gehalten um neusten Designs zu entsprechen und stellt ein farbiges Komplement zu den vorhanden Skins dar. Ihr könnt den Light Skin ab sofort auf unserer WebFront Demo ausprobieren: IP-Symcon WebFront. Zur Installation könnt ihr euch die Beispiele im [Skin Control](https://www.symcon.de/de/llms/modules/skin-control.md) ansehen.

#### PHP 7.2
Die verwendete PHP-Version wurde von 5.6 auf 7.2 aktualisiert. Dies bietet verschiedene neue Funktionen und einen spürbaren Performancegewinn. Details können [hier](https://www.php.net/releases/) gefunden werden.
#### KNX: Erweiterung für alle DPTs
Zusätzlich zu den jeher unterstützten 15 EIS Klassen wird mit der Version 5.0 eine Unterstützung von über 370 Datentypen in 77 DPT Klassen integriert. Dadurch wird die Integration von allen KNX Geräten ermöglicht.
#### Hardwareunterstützung für ekey Fingerprint Lösungen
Es wurden neue Module entwickelt, welche nativ die ekey home/multi/net Zutrittslösungen einbinden. Die eingebundenen Geräte stellen die gerätespezifischen Werte in IP-Symcon zur Verfügung. Dazu gehören z.B. die bekannten Fingerscanner.
#### Docker Support
Zusätzlich zu den bisherigen unterstützten Systemen Windows, MacOS, Ubuntu, RaspberryPi und unserer SymBox wird IP-Symcon “Docker” fähig.
Dies bedeutet, dass IP-Symcon auf allen x86 64bit Systemen lauffähig wird, auf denen Docker funktioniert. Dies ist im Rahmen von NAS Systemen wie Qnap und Synology interessant, welche zum Großteil “Docker” unterstützen. Das Docker Image basiert auf der Alpine Distribution und ist somit schlanke 40MB groß.

#### Verbesserung der mobilen Apps
Mit der Version 5.0 von IP-Symcon bekommen auch die mobilen Apps weitere Features. Beim Öffnen von Push-Nachrichten können nun beliebige objektbezogene Funktionalitäten aufgerufen werden. Sei es das Öffnen einer Kategorie, das Anzeigen eines Bildes oder Skripte die gestartet werden sollen. Durch die “Force Touch Geste” (iOS) oder “Long Press” (Android) kann ein Schnellzugriffsmenü geöffnet werden, wodurch ebenfalls Aktions ausgeführt werden können.

#### Erweiterung vom Location Control
Mit der neuen Version des Location Control ist es möglich zu jedem zur Verfügung gestellten Zeitpunkt, sei es Sonnenaufgang, Beginn der Dämmerung, etc., einen Offset in Minuten hinzuzufügen um so individuelle Wünsche und persönliche Vorlieben zu verwirklichen. Somit können z.B. immer 30 Minuten vor Sonnenuntergang die Rollläden heruntergefahren werden

#### Neue Funktionen im WebFront
Das WebFront bekommt einige neue Features.
Die angezeigten Zeiten beziehen sich ab der IP-Symcon Version 5.0 standortunabhängig immer einheitlich auf die Serverzeit. Ist man beispielsweise im Urlaub in New York und möchte schon einmal seinen Wecker für den ersten Arbeitstag nach dem Urlaub einstellen, so kann man sich darauf verlassen, dass man an diesem Tag zur richtigen Zeit geweckt wird und nicht etwa um 8:00 nach der Zeitzone in New York.
Ebenso bekommen Graphen die Möglichkeit Rohdaten anzuzeigen, um eine absolut authentische Darstellung zu verwirklichen. Desweiteren können Multi-Graphen jetzt auch Bool- und Liniengraphen in einem Graphen vereinen und Übersichtlich darstellen.

### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 4.4 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 5.0 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Es wird Raspbian Stretch für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Es wird Ubuntu 18.04 für Linux 64 Bit erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Für Microsoft Windows steht ausschließlich eine 64-Bit Version zur Verfügung.
* Upgrade von PHP 5.6 auf PHP 7.2. ([Upgrade auf 7.0](https://www.php.net/migration70) , [Upgrade auf 7.1](https://www.php.net/migration71) , [Upgrade auf 7.2](https://www.php.net/migration72) )
* Profilnamen sind Case Sensitive. Ggf. müssen Skripte die Profile automatisch zuweisen korrigiert werden.
* Ziele für Links werden beim Setzen auf Vorhandensein geprüft
* Eigene Profile und eigene Aktionen für Variablen werden beim Setzen auf Vorhandensein und Gültigkeit geprüft
* ~String Profil entfernt, da es keinerlei nützliche Funktion hatte. Einfach kein Profil setzen ergibt die selbe Darstellung
* RegisterVariable unterstützt für Server Sockets ein neues TYPE Feld, welches Verbunden/Getrennt Zustände angibt. Diese werden ggf. bei alten Skripten als leere Datenpakete empfangen
* Skins werden aus dem /webfront/ anstatt aus dem /webfront/user/ Ordner geladen. Dies löst ein Problem mit der Basis Authentifizierung bei eigenen WebServern, bei der man denken könnte das WebFront wäre Passwort-Geschützt, obwohl nur der Skin per Passwort gesichert war und dieser die Abfrage bewirkt hat.
* Property im Location Control von "Latitude" und "Longitude" zu einer "Location" Property zusammengefasst.
* Property im WebFront Konfigurator von IPAutoStart zu AutoStart umbenannt und vom Format angepasst, sodass es Kompatibel zum "List" Element ist.
* Property im WebFront Konfigurator von LANPasswordNeeded zu IgnorePasswordOnLAN umbenannt, sodass es passend zur vorhandenen Checkbox genutzt werden kann
* Bei dS Shutter, xComfort Shutter und Z-Wave Shutter wurde das Profil zur Ansteuerung auf ~ShutterMoveStop geändert
* PHP-Funktion [setlocale](https://www.php.net/manual/de/function.setlocale.php) wurde aufgrund von Nebenwirkungen auf das Restsystem (siehe Warnung in PHP-Dokumentation) deaktiviert
### Migration (für PHP-Modul Entwickler)
* In Konfigurationsformularen ist das "label" Feld mit IP-Symcon 5.0 veraltet und sollte für neue Module nicht mehr verwendet werden. Stattdessen gibt es überall das "caption" Feld, welches Konsistent verfügbar ist.
### Liste der Änderungen
#### Allgemein
* Neu: Webbasierte Konsole zur plattformübergreifenden Konfiguration
* Neu: PHP 7.2.5 inkl. GMP und Sodium Erweiterung
* Neu: Zusätzliche Icons: Bath, Bike, Book, Cloudy, Doll, Door, Download, EnergyProduction, EnergySolar, EnergyStorage, Favorite, Fitness, FloorLamp, Gas, Handicap, Heart, Help, Link, Menu, Pants, Party, People, Presence, Raffstore, Remote, Sink, Sleet, Sunny, Teddy, Tee, Thunder, Umbrella ([Übersicht](https://www.symcon.de/de/llms/components/icons.md))
* Neu: Zusätzliche Profile: Euro, Dollar, ShutterMoveStop, ShutterMoveStep
* Neu: Ereignisse mit ungültiger Variable werden mit rotem Ausrufezeichen dargestellt
* Neu: Limit für Profil-Assoziationen auf 128 erhöht
* Neu: Genutzte Zeitzone wird automatisch erkannt und in der php.ini angepasst
* Neu: WebServer leitet Links ohne Slash am Ende automatisch weiter, sofern möglich
* Neu: Skins können nun Titel, Favicon und Geräte Icons (img) Ordner überschreiben
* Neu: Summary bei I/O Instanzen wieder hinzugefügt (Fehlendes Feature von IP-Symcon 3.4)
* Neu: Ereignis Port bei HomeMatic wird automatisch gesetzt (relevant bei mehreren CCUs)
* Neu: Auslesen vom Subskriptionsdatum kann im Utils Control aktiviert werden
* Neu: Multicast Socket kann auf allen Interfaces gleichzeitig lauschen (0.0.0.0)
* Neu: UDP Socket/Multicast Socket können nun über die Server Socket GUIDs beim Datenfluss auf ClientIP/ClientPort lauschen und auf explizite Zieladressen senden.
* Neu: Spezialschalter "ServerLogging", welcher die access.log auch für den internen WebServer (Port 3777) aktiviert
* Neu: access.log zeigt bei Zugriffen über Proxy die Remote-IPs an
* Neu: WebFront Konfigurator liefert bei der Suche nach Referenzen alle genutzten Objekte (z.B. Startkategorien)
* Neu: Windows Installer ist bei Upgrades wesentlich kompakter strukturiert
* Neu: Spezialschalter OPcache wird unterstützt (Experimentell)
#### Systeme & Geräte
* Neu: KNX DPTs für fast alle von der KNX Association definierten Typen
* Neu: Modul für eKey (ASCII Protokolle von Home, Multi, Net)
* Neu: Eltako FHK14 kann die Soll Temperatur direkt übermitteln
* Neu: EnOcean EEP A5-14-07
* Neu: EnOcean EEP A5-14-08
* Neu: EnOcean EEP A5-14-09
* Neu: EnOcean EEP A5-14-0A
* Neu: EnOcean FGW14 kann GeräteIDs bis 255 nutzen
* Neu: xComfort: Unterstützung für xComfort Room Controller Touch (CRCA-00/08, CRCA-00/09, CRCA-00/10, CRCA-00/11)
* Neu: Location Control unterstützt Offsets
* Neu: Location Control hat Variablen für Sonnenhöhe und Sonnenrichtung, die alle 5 Minuten aktualisiert werden
* Neu: Location Control kann mit Längengrad/Breitengrad auf 0 deaktiviert werden, um Variablen zu sparen
* Neu: Neues Shutter Control, welches bei manuellem Fahren die Position nachführen kann
* Neu: Neues Heating Control, welches auch Kühlen kann
* Neu: ALLNET Geräte mit Analogausgang (z.B. RGBW) werden unterstützt
* Neu: DNS-SD Control für Bonjour/Avahi
* Neu: NAT Support (insbesondere für Docker wichtig!)
* Neu: Für Web/Hook/OAuth Requests sind in der $_SERVER Variable alle Header verfügbar
* Neu: Legacy Konsole zeigt Listen in voller Breite an
* Neu: LCN Shutter, EnOcean Shutter, KNX Shutter nutzen die neuen Profile
* Neu: Z-Wave Shutter, dS Shutter, xComfort Shutter an die neuen Profile angepasst
* Neu: digitalStrom: Neue Funktionen DS_ShutterStepDown und DS_ShutterStepUp
#### Mobile App (iOS)
* Neu: Favoriten, welche per 3D-Touch direkt über den Home-Screen geöffnet werden können (ab iPhone 6s, iOS 10)
* Neu: Neue Icons für IP-Symcon 5.0 hinzugefügt
* Neu: Unterstützung für Rohdaten-Darstellung in Graphen
* Neu: Push-Nachrichten können Ziel (TargetID) enthalten
* Fix: Watch App hat beim Betreten von Kategorien Aktionen ausgeführt
#### Mobile App (Android)
* Neu: Bessere Unterstützung für Android Oreo
* Neu: Favoriten, welche direkt über den Home-Screen geöffnet werden können (ab Android 7.1)
* Neu: Neue Icons aus IP-Symcon 5.0 hinzugefügt
* Neu: Unterstützung für Rohdaten-Darstellung in Graphen
* Neu: Push-Nachrichten können Ziel (TargetID) enthalten
#### WebFront
* Neu: Datum/Uhrzeit bei Graphen ist auf der rechten Seite für eine bessere Darstellung bei kleineren Auflösungen
* Neu: Boolean/Integer/Float Variablen ohne Profil, jedoch mit Aktionen können über Freitext verändert werden
* Neu: unterstützt Links ohne Namen, wodurch der Name vom Zielobjekt geerbt wird
* Neu: zeigt in den Ereignis Dialogen den vollständigen Namen an. (Funktioniert nun auch mit verlinkten Ereignissen)
* Neu: erkennt nun eine Abweichung in der Zeitzone (zwischen Browser + Server) und zeigt eine entsprechende Meldung
* Neu: zeigt alle Zeiten und Graphen (inkl. CSV Export) immer in der Server-Zeitzone an
* Neu: Logout Widget (zur Zeit nur über WebFront Editor hinzufügbar)
* Neu: Graphen können in der Aggregationsstufe Raw, also Rohdaten dargestellt werden
* Neu: Idle Widget (Erlaubt das zurückspringen auf eine Seite nach Inaktivität)
#### SymOS
* Neu: Kernel auf 4.9.73 aktualisiert
* Neu: Willkommensseite bietet direkten Link zur neuen webbasierten Verwaltungskonsole an
#### PHP-Module
* Neu: Neue Elemente für Eigenschaftenseiten (ausschließlich für neue webbasierte Verwaltungskonsole)
* [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [Configurator](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [ExpansionPanel](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [Image](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [PopupButton](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [RowLayout](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [SelectTime](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [SelectDate](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* [SelectDateTime](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* Neu: Kernel-Konstanten (Nachrichten) sind nun automatisch definiert
* Neu: FM_CHILDADDED, FM_CHILDREMOVED um zu erkennen, wenn neue "Kinder" am Datenfluss angemeldet wurden
* Neu: SetValue, GetValue Funktion zum einfacheren Lesen/Schreiben von Werten
* Neu: GetMessageList Funktion zum Auslesen der registrierten Nachrichten
* Neu: GetBufferList Funktion zum Auslesen der verfügbaren Buffer
* Neu: ServerSocket unterstütztein neues "Type" Feld mit Wert (0=Data, 1=Connect, 2=Disconnect)
* Neu: LogMessage zum Senden von benutzerdefinierten Nachrichten ins Log
#### Fixes
* Fix: Funktion setlocale ist in PHP komplett deaktiviert
* Fix: ML_LOAD/ML_UNLOAD Nachrichten werden korrekt versendet
* Fix: Sofern in der Demo-Version das WebFront modifiziert wurde, wurden die Basic-Lizenz Restriktionen auf das WebFront nach dem Einspielen der Lizenz nicht korrekt angewandt.
* Fix: Gleichzeitige Updates von Modules über das Module Control könnten einen Deadlock verursachen
* Fix: WebFront: Circle Slider Wert wurde bei kleinen Auflösung nicht korrekt zentriert
* Fix: WebFront: Circle Slider Editier-Animation korrigiert
* Fix: WebFront: Color Wheel wird besser zentriert bei kleinen Auflösungen
* Fix: Beim Duplizieren werden ungültige Inhalte (z.b. ungültiges Profil bei einer Variable) nicht dupliziert
* Fix: Fehlermeldung bei JSON-RPC Anfragen gegen Funktionen von PHP Modulen korrigiert
* Fix: Absturz bei LCN_SetDisplayText mit leerem Inhalt korrigiert
* Fix: DMX: 16-Bit Farbwerte wurden bei 100% im Colorwheel falsch angezeigt
* Fix: DMX Instanzen konnten bei Kanal < 0 abstürze verursachen
* Fix: Dashboard: Einige Speicherlecks korrigiert
* Fix: Legacy Konsole: Einige Speicherlecks korrigiert
* Fix: M-Bus Werte, welche ungültige Werte enthielten konnte weiteres Auslesen verhindern
* Fix: Fernzugriff konnte unter MacOS nicht korrekt gesetzt werden
* Fix: Dashboard konnte in der Demo-Version nicht getestet werden
* Fix: Links auf Links sind nicht möglich und werden nun korrekt verhindert
* Fix: IPS_GetVariableEventList gibt nun die korrekte aktuelle Liste von Ereignissen zurück
* Fix: Wenn die settings.json korrupt war und eine aus dem backup Ordner geladen wurde, wurden die Änderungen in die Backup-Settings gespeichert
* Fix: Wenn bei PHP Module im Destroy eine Fehlermeldung geworfen wurde, konnte sich IP-Symcon aufhängen
* Fix: Skripttext wurde in PHP Informationen ohne Limitierung angezeigt (Nun auf 100 Zeichen beschränkt)
* Fix: MacOS: Fehlende SSL-Zertifikate hinzugefügt für cURL/PHP
* Fix: MacOS: Beim Beenden des Dienste wurde ggf. die Settings nicht korrekt geschrieben
* Fix: S7-Anbindung wertet vorhandene Fehlerinformationen besser aus
* Fix: IMAP/POP3 Mail mit "kaputten" Headern werden besser eingelesen
* Fix: Falsche Größenangaben in Sys_GetHardDiskInfo() korrigiert
* Fix: Legacy Konsole: Standardwert beim Inhaltswechsler für Scaling war falsch
* Fix: SE_EXECUTE Fehlermeldung, wenn ein Ereignis sich selbst gelöscht hat
## V4.3->V4.4 (Q4/2017)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v43-v44-q4-2017/
### Wesentliche Änderungen
__Bedingte Ereignisse__
Ereignisse können noch einfacher mit Bedingungen versehen werden ohne auch nur eine Zeile Code zu schreiben. Soll beim Betreten eines Raumes das Licht angeschaltet werden, aber nur wenn es draußen schon dunkel ist? Oder soll die Heizung automatisch auf den Komfortmodus wechseln, aber nicht wenn Sie im Urlaub sind? Diese Beispiele und mannigfaltige andere Möglichkeiten sind nun durch bedingte Ereignisse komplett ohne Skripte darstellbar.

__Graphen mit mehreren Achsen im WebFront__
Graphen können nun mehreren Achsen dargestellt werden. So können komfortabel Variablen mit verschiedenen Profilen verglichen werden, wie beispielsweise Außentemperatur und gewonnene Solarenergie.

__Graphen-Optionen in den mobilen Apps__
Die mobilen Apps unterstützen ebenfalls die neuen Graphen mit mehreren Achsen. Zusätzlich sind alle Optionen wie dynamische Skalierung, hohe Dichte, Extrema, ect. verfügbar

__Verbesserter Wochenplan in den mobilen Apps__
Die Wochenplandarstellung wurde überarbeitet, sodass die Wochenpläne wie im WebFront intuitiv nutzbar sind. Durch Ziehen und Wischen kann der gewünschte Modus im Handumdrehen angepasst werden.

__Verbesserte Geräteunterstützung__
Verbesserungen bei EnOcean, HomeMatic, KNX, Siemens OZW, Technische Alternative CMI, Siemens S7, Z-Wave
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 4.3 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 4.4 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Es wird Raspbian Stretch für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Die 32-Bit Version für Microsoft Windows ist abgekündigt und wird zu IP-Symcon 5.0, welches 2018 erscheint, nicht mehr angeboten.
* Die 64-Bit Version wird automatisch installiert, sofern möglich.
#### Geänderte Funktionen
* S7_WriteRegisterShortInt umbenannt zu S7_WriteRegisterChar
* S7_WriteRegisterSmallInt umbenannt zu S7_WriteRegisterShort
* ModBus_WriteRegisterShortInt umbenannt zu ModBus_WriteRegisterChar
* ModBus_WriteRegisterSmallInt umbenannt zu ModBus_WriteRegisterShort
* Rückgabeparamteter von AC_DeleteVariableData auf Integer geändert, welcher die Anzahl der betroffenen Datensätze zurückgibt.
* IPS_SetEventTriggerValue validiert den Wert, sodass dieser zur Trigger-Variable passt
### Liste der Änderungen
#### Allgemein
* Neu: PHP 5.6.32
* Neu: Multi-Charts können mehrere Achsen (Links/Rechts) mit verschiedenen Profilen haben
* Neu: Bedingungen (Variable, Datum, Uhrzeit) für ausgelöste Ereignisse
* Neu: Brute-Force Attacken auf den Fernzugriff werden nach 5 Versuchen verlangsamt und nach 15 Versuchen blockiert
* Neu: Raspberry Pi Version benötigt/basiert auf Raspbian Stretch
* Neu: Erstellen-Button beim Erstellen/Editieren von Variablen für einfaches anlegen von Standardaktionsskripten
* Neu: Rekursives duplizieren von Objekten
* Neu: Sollte die settings.json defekt sein, wird nach einer funktionierenden settings.json im Backup Ordner gesucht
* Neu: Standardprofile für Energie, Wasser, Gas haben nun Icons zugewiesen bekommen
* Neu: "Im Lizenz anzeigen" Dialog wird die genutzt Plattform angezeigt
#### Systeme & Geräte
* Neu: HomeMatic Anbindung sollte nun korrekt funktionieren, wenn zwei IP-Symcon auf die selbe CCU zugreifen
* Neu: KNX: Unterstützung für Weinzierl kBerry
* Neu: Siemens Instanzen unterstützt nun Strings (Array of Char)
* Neu: Siemens OZW unterstützt nun Verbindungen per SSL
* Neu: LCN GFPS wird unterstützt
* Neu: LCN: Limit Variable für LCN Shutter Motor
* Neu: EnOcean D2-32-*
* Neu: EnOcean Eltako FGW14 kann bis zu 255 Geräte ansprechen
* Neu: AC_DeleteVariableData liefert als Rückgabe die Anzahl der betroffenen Datensätze
* Neu: Z-Wave: [ZW_DimUp](https://www.symcon.de/de/llms/modules/z-wave.md), [ZW_DimDown](https://www.symcon.de/de/llms/modules/z-wave.md), [ZW_DimSetEx](https://www.symcon.de/de/llms/modules/z-wave.md), [ZW_DimUpEx](https://www.symcon.de/de/llms/modules/z-wave.md), [ZW_DimDownEx](https://www.symcon.de/de/llms/modules/z-wave.md)
* Neu: W&T ThermoHygro unterstützt nun Geräte mit mehr als drei Kanälen
#### PHP-Module
* Neu: PHP Module dürfen nun auch einen "tests" Ordner für automatisierte Tests enthalten.
#### Fixes
* Fix: Unter frischen Windows 10 Systemen konnte ggf. SSL nicht korrekt genutzt werden (insbesondere Push-Nachrichten/Connect ect.)
* Fix: Funktionen in Siemens und ModBus Instanzen umbenannt.* Siehe Migration
* Fix: Die settings.json wird in den Backup Ordner kopiert anstatt verschoben, sodass zu jedem Zeitpunkt garantiert ist, dass eine settings.json vorhanden ist.
* Fix: CSV Export konnte nicht im Firefox korrekt kopiert werden
* Fix: Problem unter MacOS mit Auto-Update gelöst
* Fix: Verwaltungskonsole kann auf dem Mac wieder über CrossOver gestartet werden (über das Menü)
* Fix: Charts werden nun in die Referenzsuche einbezogen
* Fix: Sollte bei einem Multichart die Variable nicht mehr existieren, kann der Chart trotzdem editiert werden
* Fix: CMI Abfrage der Ausgänge konnte nur deaktiviert werden, wenn auch die Eingänge deaktiviert waren
* Fix: CMI Profile hatten kein Leerzeichen bei den Suffxen, wodurch diese "geklebt" haben
* Fix: WebFront: Wochenplan Aktionen konnten nicht direkt von 0:00 bis 0:00 gesetzt werden
* Fix: Access Violation beim Rechtsklick im Message-Log sofern die ObjektID nicht vorhanden ist
* Fix: dSS11 braucht bei größeren Gebäuden mehr Zeit, um die Informationen zu liefern (nun max. 30 Sekunden)
* Fix: Auf der SymBox wurden nicht alle Festplatten für Sys_GetHardDiskInfo angezeigt
* Fix: Heating Control hat Ausgänge von LCN Unit Instanzen nicht korrekt angeschaltet
* Fix: Fehlerhafte fortlaufende Zähleraggregation, wenn Werte nur einmal pro Stunde auf fast genau der vollen Stunde geloggt wurden
## V4.2->V4.3 (Q3/2017)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v42-v43-q3-2017/
### Wesentliche Änderungen
__Graphen im WebFront__
Die Graphen im WebFront wurden komplett überarbeitet, sodass diese direkt vom IP-Symcon Server erzeugt werden. Das WebFront ist dadurch um ~15% kleiner, wodurch es über das Internet schneller lädt. Zusätzlich wurde die Darstellung verbessert, sodass die Graphen weniger S-Kurven-artig aussehen.

__Graphen in den mobilen Apps__
Die mobilen Apps unterstützen alle Optionen für Graphen wie die dynamische Skalierung, hohe Dichte und das Anzeigen von Extrema. Zusätzlich werden auch die Multi-Graphen unterstützt, sodass Auswertungen direkt auf dem mobilen Gerät durchgeführt werden können.

__CSV-Export im WebFront__
Der CSV-Export unterstützt nun Multi-Graphen und zeigt die einzelnen Datenreihen nacheinacher an. Es wird dabei jeweils Name, Datum, Uhrzeit und Aggregationsstufe angezeigt. Die Daten sind in einem Microsoft Excel kompatiblen Format und können direkt kopiert werden.

__Bessere Unterstützung der Geräte__
* Module für EnOcean D2-01-*, D2-06-*
* Module für Eltako FGW14
* Module für LCN Display und LCN RGBW
__Verbesserung für PHP-Module__
* Beliebige Strings können in Modulen übersetzt werden
* Module überprüfen vor dem Update auf Kompatibilität
* Module können lokale Änderungen automatisch entfernen vor einem Update
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Edition nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Edition von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 4.3 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen und dem Symcon Connect Dienst eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 4.2 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 4.3 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Die 32-Bit Version für Microsoft Windows ist abgekündigt und wird zu IP-Symcon 5.0, welches 2018 erscheint, nicht mehr angeboten.
* Die 64-Bit Version wird automatisch installiert, sofern möglich.
### Migration (für PHP-Modul Entwickler)
* Für Übersetzungen sollte ab sofort die neue [Translate](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) Funktion eingesetzt werden.
### Liste der Änderungen
#### Graphen im WebFront
* Neu: WebFront nutzt die neuen Graphen, welche auch die Apps nutzen
* Neu: WebFront ist nun ~100kb kleiner, da die Graphen vom Backend erzeugt werden
* Neu: Splines swingen nicht mehr so sehr (Vermeidet die typischen S-förmigen Kurven)
* Neu: CSV-Export verbessert, sodass die Daten besser kopierbar sind
* Neu: Kontinuierliche Graphen haben im Titel das "bis" wie die mobilen Apps
* Neu: Legende bei Multi-Graphen ist kompakter, sofern kein Offset benutzt wird
#### Graphen in den mobilen Apps
* Neu: Multi-Graphen werden in den mobilen Apps angezeigt
#### Systeme & Geräte
* Neu: Unterstützung für EnOcean Gateway "Eltako FGW14"
* Neu: Unterstützung für EnOcean EEP D2-01-*
* Neu: Unterstützung für EnOcean EEP D2-06-*
* Neu: Technische Alternative CMI Modul unterstützt die Netzwerk Eingänge/Ausgänge
* Neu: LCN_SwitchRelayTimer
* Neu: LCN Display Modul
* Neu: LCN RGBW Modul
* Neu: Z-Wave: Zipato Mini Keypad zeigt nun in einer Variable die ID vom Benutzer an, welcher die Tür zuletzt geöffnet/geschlossen hat
#### PHP-Module
* Neu: Module prüfen die Kompatibilität zur IP-Symcon Version vor einem Update
* Neu: Translate Funktion für Module
* Neu: Sofern das Modul keine HTTP/HTTPS Adresse hat wird gefragt, ob die aktuelle Adresse in die Zwischenablage kopiert werden soll
* Neu: Module können aktualisiert werden, auch wenn lokale Änderungen vorgenommen wurden (Änderungen ggf. werden verworfen)
* Neu: Module unterstützen das Überschreiben von gleichen Funktionen mit dem selben Prefix durch andere Module bei gleichen Parametern
* Fix: Module: Editierbare Listen im Aktionsbereich funktionieren korrekt
* Fix: Modulliste wird nun ohne Beachtung der Groß- und Kleinschreibung sortiert
* Fix: Module: Select* Elemente können im Aktionsbereich ausgewertet werden
* Fix: Wenn bei Listen kein gültiges "values" Array geschickt wurde, gab es eine AccessViolation
* Fix: Fehlende Farben bei Modulen mit Listen, sofern die Liste im "elements" Bereich war und vorhandene Einträge überschrieben hat
* Fix: Module mit sauberem Type Hinting warfen einen Fehler sofern diese aus ProcessHookData genutzt wurden
* Fix: Leere Strings wurden für rowColor nicht korrekt ausgewertet
* Fix: Module: Rot+Blau waren beim Wert für SelectColor vertauscht
* Fix: Module welche beim Erstellen Fehler hatten wurden nicht sauber aufgeräumt wenn bereits Unterobjekt erstellt wurden
* Fix: Module: Access Violation bei einigen Buttons im Aktionsbereich
#### Sonstiges
* Neu: Wir würden gerne eine paar nicht personalisierte Benutzerdaten über Ihr System sammeln ([Details](https://community.symcon.de/t/details-welche-nutzungdaten-uebermittelt-werden-koennen-opt-in/44338) )
* Neu: Neuer Medientyp: Dokument, welcher zur Zeit txt, doc, xml und pdf Uploads erlaubt
* Neu: Bibliothek zum Formatieren von Strings (z.B. %f, %d) wurde gegen eine schnellere getauscht
* Neu: Instanz hinzufügen Dialog zeigt den Author des Moduls an
* Neu: Konsole: WebFront Konfigurator wählt beim Duplizieren das selektierte Element automatisch vor
* Neu: DWD Wetterdaten werden über neues CDN geladen
#### Fixes
* Fix: Z-Wave Multisensor wählt korrekte Profile aus
* Fix: Z-Wave Parameterliste liest "Nur Schreiben" Parameter nicht mehr aus
* Fix: Z-Wave: Besseres Handling von vielen gleichzeitigen verschlüsselten Nachrichten
* Fix: Z-Wave: Konsole: WAKE_UP wurde nicht korrekt erkannt, wenn vorher ein Timeout beim Auslesen eines Parameters passiert ist
* Fix: Z-Wave: Beim Laden von Parametern kann dies korrrekt erneut versucht werden, sofern eine Unterbrechung stattgefunden hat
* Fix: Parameterinformationen für IPSModule Klasse
* Fix: Filter im Instanz-Debug wurde für neue Nachrichten nicht angewendet
* Fix: KNX Konfigurator überprüft ESF Datei auf dreistufige GAs
* Fix: KNX Repeat Flag wird nicht mehr gesetzt
* Fix: Rundungsfehler im WebFront
* Fix: WebFront hat mit einer Fehlermeldung quittiert, sofern ein eingebetteter Graph mit einer nicht existenten Variable vorhanden war
* Fix: Für EnOcean Thanos konnte die Temperatur aus dem WebFront nicht korrekt eingestellt werden
* Fix: Kommentare zu Ereignissen werden im SkriptEditor korrekt erstellt
* Fix: WebFront: CSS Spezialklassen wurden nicht korrekt an verlinkte Objekte angefügt
* Fix: Bei Ereignissen musste ein Ziel angegeben werden, obwohl dies gar nicht notwendig war
* Fix: Objektnamen waren Leer wenn diese per Skript erstellt wurden und kein IPS_SetName folgte
* Fix: Seltenes Problem beim Auslesen von dS Joker Klemmen korrigiert
* Fix: Problem gelöst, wenn Gerätetaster von dS Klemmen im SceneResponder genutzt wurden
* Fix: Für nicht existente Variablen konnte Logging aktiviert werden
* Fix: Multicast Pakete konnten auf Linux, Raspberry Pi und MacOS nicht empfangen werden
* Fix: Berechnung von LCN Motor war noch falsch
* Fix: Ein Problem beim Starten mit der Aggregation gelöst
* Fix: Wir löschen curl.cacert Einträge in der php.ini, wenn diese für die Plattform unnötig sind
* Fix: Die Vorschläge im Circle Slider beachten nun die Schrittweite
* Fix: Beim Öffnen von Variablen im Archiv wurde der Baum neu geladen und die Scrollposition wurde zurückgesetzt
* Fix: LCN_SwitchRelayTimer hat auf dem ersten Kanal falschen Wert gesendet
* Fix: Multicast Socket sendet unter Windows nun korrekt über die ausgewählte Schnittstelle (BindIP)
* Fix: Speicherleck bei PHP-Modulen, welche den Datenfluss verwendet haben
* Fix: Kleines Speicherleck beim Aktualisieren von PHP-Modulen
* Fix: Potentielle Race Condition im Discovery Server
* Fix: Potenzieller Deadlock beim Laden von Modulen
* Fix: Cutter kann HID als I/O auswählen
* Fix: %d funktionierte in GetValueFormatted nicht bei Assoziationen
* Fix: Windows Installer erstellt keine neuen Einträge pro Version
* Fix: Graphen: Bei Graphen, welche Boolean oder HD sind, wird die X-Achsen-Beschriftung korrekt links am Startpunkt gezeichnet
* Fix: Graphen: Boolean-Graphen mit Wert-Wechseln auf der selben Sekunde werden korrekt angezeigt
* Fix: Graphen: Boolean-Graphen bei dem der erste Wert exakt auf den Startwert fiel, werden korrekt angezeigt
* Fix: Graphen: Einzelne Boolean-Graphen haben keinen "hellen" Hintergrund mehr, um den Kontrast zu verbessern
* Fix: WebFront: Internet Explorer 11 funktioniert wieder korrekt
* Fix: WebFront: CSV-Export zeigt bei Boolean Variablen Min/Max nicht mehr
* Fix: LCN RGBW kann über WebFront angesteuert werden
* Fix: LCN Shutter hat bei Ausgängen nicht korrekt geschaltet
* Fix: LCN Shutter Motor verändert nun auch die Aktionsvariable je nach Richtung
* Fix: Konsole: Shortcut (STRG+C) zum Kopieren von Objekt / ObjektID ist nun sichtbar
* Fix: Konsole: Sortierung im Calendar Control korrigiert
* Fix: KNX Group: Checkboxen waren nicht breit genug für deutsche Übersetzung
* Fix: Instanz für eine Test-Modul wird nicht mehr erstellt, wodurch Fehlermeldungen im Log auftraten
* Fix: Archiv war defekt für Zeitzonen westlich vom Nullmeridian
* Fix: Archivgröße wurde bei >2GB Größe als negativ angezeigt
* Fix: Sofern das Archiv defekt ist, wird dies beim Editieren der Variable angezeigt
* Fix: OZW Instanzen konnten nicht korrekt erstellt werden (seit IP-Symcon 4.3 Release)
* Fix: Module mit lokalen Änderungen konnten teilweise nicht zurückgesetzt/aktualisiert werden, obwohl die Sicherheitsabfrage bestätigt wurde
* Fix: Problem mit EnOcean D2 Geräten, welche nur einen Kanal hatten und nicht auf KanalID 0 angesprochen wurden
* Fix: IPS_GetLiveUpdateVersion ist wieder kompatibel zu IP-Symcon 4.0-4.2
* Fix: Möglicher Absturz nach Allnet-Update verhindert und durch entsprechende Fehlermeldung ersetzt, wenn Remote Control nicht aktiviert wurde
* Fix: IPS_Execute hat unter Linux den geforkten Prozess nicht abgebrochen, wenn die neue Applikation nicht gestartet werden konnte
* Fix: EIS5 bei KNX konnte nicht abgefragt werden
* Fix: Viele Fehlermeldungen wenn unter Linux Locales vom Typ de_DE@euro (ohne .utf-8) verwendet wurden
* Fix: Es sollte nun zuverlässig möglich sein mehrere IP-Symcon Systeme an einer CCU anzumelden
* Fix: WebFront: Bei Boolean-Variablen mit Aktion und zu wenig Platz konnte der Button für das List-Popup nicht angeklickt werden
* Fix: WebFront: Bei Variablen mit Aktion und zu wenig Platz wurde manchmal ein Scrollbalken im Element angezeigt
* Fix: Fehlerhafte Daten von der ELV FHZ konnten den Dienst zum Absturz bringen
* Fix: Z-Wave: Zipato Light Bulb funktioniert nun korrekt
* Fix: Z-Wave Regression seit IP-Symcon 4.2 bei der Kommunikation mit FLIRS Geräten (Bitte Instanz nach dem Update neu "Laden", um Problem zu lösen!)
* Fix: Bei 2 Kanal W&T Geräten wurde der Status nicht korrekt aktualisiert
* Fix: Wenn bei HomeMatic Werte ohne Datentyp gesendet werden, loggen wir diese nicht mehr als Fehlerhaft im Log (z.B. SUBMIT)
* Fix: Clickatell SMS funktioniert wieder korrekt
* Fix: Seit dem Clickatell Fix konnte der digitalStrom dSS nicht mehr korrekt angesprochen werden
* Fix: Fehlerhafte FHZ Pakete konnte IP-Symcon zum Absturz bringen
* Fix: CMI Abfrage der Ausgänge konnte nur deaktiviert werden, wenn auch die Eingänge deaktiviert waren
* Fix: CMI Profile hatten kein Leerzeichen bei den Suffxen, wodurch diese "geklebt" haben
## V4.1->V4.2 (Q2/2017)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v41-v42-q2-2017/
### Wesentliche Änderungen
* IP-Symcon 4.2 gibt es für Microsoft Windows zusätzlich als 64-Bit Version. Dadurch können größere Projekte mit mehr Variablen und Archivdaten realisiert werden
* PHP wurde auf die aktuellste Version (5.6.30) aktualisiert
* Neues Modul für das CMI der Technischen Alternative
* Neues Modul für den LCN-BS4 (LCN Shutter Motor)
* Verbesserung vom Eltako Shutter, sodass die Fahrzeiten angegeben werden können
* Viele Verbesserungen beim SDK für PHP Module wie z.B. native Timer, bessere Validierung und GetConfigurationForParent
* Viele Verbesserungen bei den Konfigurationsmöglichkeiten von PHP Modulen wie z.B. [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectColor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectFile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Version nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 4.2 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen und dem Symcon Connect Dienst eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 4.1 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 4.2 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Die 32-Bit Version für Microsoft Windows ist abgekündigt und wird zu IP-Symcon 5.0, welches 2018 erscheint, nicht mehr angeboten.
* Die 64-Bit Version steht nach dem Update auf IP-Symcon 4.2 direkt über "Auf Update suchen..." zur Verfügung.
### Migration (für PHP-Modul Entwickler)
* Es stehen viele neue Funktionen zur Verfügung. z.B. [GetConfigurationForParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md), [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectColor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectFile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
* Die IPSModule Klasse ist jetzt nativ in IP-Symcon implementiert.
* Breaking Change: Es stehen nur bestimmte Unterordner zur freien Verfügung. Siehe: [Struktur](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)
* Breaking Change: Die Datentypen von RegisterProperty* und ReadProperty* müssen übereinstimmen.
### Liste der Änderungen
#### Neue Funktionen
* 64 Bit Version für Microsoft Windows verfügbar!
* PHP 5.6.30
* Modul für das CMI der Technischen Alternative (erfordert Firmware 1.25.1 oder neuer)
* Modul für LCN Shutter (Motor)
* MacOS Tray-Anwendung überprüft korrekt die Subskription beim Updatevorgang
* Eltako Shutter kann direkt die Fahrzeit angeben über [ENO_ShutterMoveUpEx](https://www.symcon.de/de/llms/modules/enocean.md), [ENO_ShutterMoveDownEx](https://www.symcon.de/de/llms/modules/enocean.md)
#### Neue Funktionen (PHP-Module)
* SelectColor in Eigenschaftenseiten für PHP Module ([Doku](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md))
* SelectFile in Eigenschaftenseiten für PHP Module ([Doku](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md))
* List in Eigenschaftenseiten für PHP Module ([Doku](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md))
* GetConfigurationForParent für PHP Module ([Doku](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md))
* Die internen Timer (Millisekundenauflösung) werden in PHP Module genutzt
* Überprüfung, ob bei PHP Modulen die library.json / module.json korrekt vorhanden ist und geparst werden kann (Ausnahme sind die Ordner: docs, libs, imgs)
* Im Modul Control werden fehlerhafte Module markiert
#### Behobene Fehler
* Fix: OS X: Beim Neustart des Rechners wurde ggf. bemängelt, dass IP-Symcon nicht gestartet ist, obwohl es am Starten war
* Fix: Bei PHP Modulen wurden JSON Daten (SendData*) nicht korrekt einbezogen, welche ein Array waren
* Fix: Bei PHP Modulen wird jetzt korrekt das Standardprofil/Standardaktion gesetzt (Löst Problem mit eigenen Actionen/Profilen)
* Fix: Bei PHP Modulen werden alle PHP Magic Funktionen nicht nach IP-Symcon exportiert
* Fix: Bei PHP Modulen kann auf IPS_KERNELSTARTED/IPS_KERNELSHUTDOWN reagiert werden
* Fix: Bei PHP-Modulen kann RegisterTimer nur noch im Create aufgerufen werden
* Fix: Multigraphen welche Graphen ohne Datensätze anzeigen sollten, haben diese gar nicht angezeigt (auch nicht in der Legende)
* Fix: Color-Wheel und Circle-Slider Presets werden nun pro ObjektID gespeichert
* Fix: Lernen Button bei EnOcean Geräten sind nur nach dem Übernehmen anklickbar
* Fix: M-Bus unterstützt korrekt Real32 Werte
* Fix: LCN Module Eigenschaften Seite kann nun auch korrekt Instanzen löschen
* Fix: RegisterVariable konnte hängenbleiben, wenn die Skriptausführung z.B. wegen zu vielen Skriptausführungen abgebrochen wurde
* Fix: DMX_FadeRGBDelayed fadete bei vielen nacheinanderfolgeden Fadings falsch
* Fix: ModBus 64Bit Real schreiben funktioniert nun korrekt
* Fix: Im SkriptEditor wurde von Wochenplänen der Name nicht korrekt als Kommentar eingefügt
* Fix: ALT+R funktionierte im Objektbaum nicht
* Fix: Start-/Enddatum und Start-/Endzeit werden bei zyklischen Ereignissen korrekt überprüft
* Fix: Z-Wave zeigt nun alle unterstützten Klassen an (auch die, die eher kryptisch/lowlevel sind)
* Fix: Beim Ändern der Farbe im Multi-Chart wird die Transparenz automatisch deaktiviert
* Fix: Speichern Button im Skript-Editor wurde beim Ändern einer ObjektID über STRG+O nicht aktiviert
* Fix: Edit-Typen werden korrekt validiert, ob diese erlaubt sind
* Fix: HomeMatic Socket hat KeepAlive durchgeführt, obwohl der Socket Inaktiv war
## V4.0->V4.1 (Q4/2016)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v40-v41-q4-2016/
### Wesentliche Änderungen
* Funktionserweiterung für diverse Hardware-Systeme (Z-Wave, HomeMatic IP, digitalStrom, EnOcean, DMX, ModBus, LCN, Siemens OZW)
* Vollständig überarbeitete Verwaltungskonsole mit verbessertem Skript-Editor und Suche nach Querverweisen für beliebige ObjektIDs
* Viele neue Funktionen für die Entwicklung der beliebten PHP Module
* Neue PHP Module aus der Community u. a. Module von tommi, FireTV, Möhlenhoff Alpha 2, Alarmierung, Anwesenheitssimulation u.v.m. ([Link zur Übersicht](https://community.symcon.de/t/archiv-veraltet-uebersicht-der-php-module/37958) )
* Skins für die Login Seite vom WebFront
* Dialoge für Circle Slider und Auswahllisten im WebFront
* Dialoge für Datum/Uhrzeit im WebFront
* SDKs für [Microsoft Excel](https://www.symcon.de/de/llms/developer/sdk-tools.md) und [WebFront Skins](https://www.symcon.de/de/llms/developer/sdk-tools.md)
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Version nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 4.1 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen und dem Symcon Connect Dienst eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 4.0 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 4.1 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Es wird Raspbian Jessie für Raspberry Pi erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
* Es wird Ubuntu 16.04 für Linux 64 Bit erfordert! (Generelle [Versionenübersicht](https://www.symcon.de/de/llms/getting-started/system-requirements.md))
### Liste der Änderungen
#### Neue Funktionen
* PHP 5.6.26 (löst insbesondere das microtime() Speicherleck und enthält offiziell den cURL Crashfix)
* Z-Wave unterstützt mehr Klassen (SECURITY, [COLOR](https://www.symcon.de/de/llms/modules/z-wave.md) , CENTRAL_SCENE, [DOOR_LOCK](https://www.symcon.de/de/llms/modules/z-wave.md) , USER_CODE, TIME, [SWITCH_ALL](https://www.symcon.de/de/llms/modules/z-wave.md) )
* Z-Wave zeigt List der Geräteparameter an
* Z-Wave hat Möglichkeit die interne WAKE_UP Warteschlange einzusehen
* Z-Wave optimiert jede Nacht alle Nodes automatisch (zur Zeit im 5 Minuten Abstand)
* Z-Wave kann die Erreichbarkeit der (auch batteriebetriebenen) Geräte direkt aus dem Konfigurator prüfen
* Z-Wave Funktion ZW_ConfigurationSetValueEx kann wieder für batteriebetriebene Geräte ausgeführt werden
* HomeMatic IP (Vollständiger Umbau von Bin-RPC auf XML-RPC)
* digitalStrom: Unterstützung für App-Taster über Joker Klemmen
* digitalStrom: Unterstützung für Sensoren an z.B. iSens200
* digitalStrom: Unterstützung für binäre Eingänge an z.B. Automatisierungsklemmen
* KNX-Shutter unterstützt weitere Rückmeldeadressen und Stepping für Lamellen
* KNX-RGB/KNX-RGBW unterstützt weitere Rückmeldeadressen
* DMX unterstützt 16 Bit Adressen
* xComfort Dimmaktoren (Neue Gerätegeneration mit speziellen Rückmeldungen wird unterstützt)
* ModBus Module unterstützt explizite Angabe des Funktionscodes (01, 02, 03, 04, 05, 06, 15, 16)
* ModBus RTU/TCP Gateway-Instanzen synchronisieren sich korrekt, sofern mehrere an einer I/O Instanz dran sind
* Unterstützung weiterer Eltako EnOcean Geräte (FKC, FKF, FRW, FTR65DS, FTR65HS, FUTH65D, FZS)
* Unterstützung von EnOcean EEP F6-10-00
* LCN unterstützt die Einstellung für 200 Dimmschritte
* ServerSocket mit ClientIP/ClientPort Adressierung
* MulticastSocket neu hinzugefügt (erlaubt Empfangen von z.B. UPNP/SSDP)
* Siemens OZW unterstützt den Typ RadioButton
#### Verwaltungskonsole
* Upgrade auf neuste Delphi Version (Mit korrekter Unicode Unterstützung)
* Verbesserter Skripteditor
* Suchen & Ersetzen wird direkt im Editor angezeigt
* Besseres Highlighting bei der Suche
* Code Folding
* Nach Querverweisen suchen (Im Kontextmenü eines Objekts und im Skript-Editor)
* Konsistentere Icon-Auswahl
* Assistent zum Validieren auf UTF-8 Konformität (über Utils Control) (Bitte Settings + Skripte sichern!)
#### WebFront
* Login-Seite kann einen Skin laden (über Skin Control einstellbar) (Beispiel auf [GitHub](https://github.com/symcon/SkinDark/commit/a1c2f1a02c42cc42628cb62760cfab330f38857c) )
* Profile mit Schrittweite werden als Circle Slider (wie in den mobilen Apps) dargestellt
* Profile mit sehr vielen Aufzählungen werden reduziert und können über einen Dialog eingestellt werden
* Dialoge für UnixTimestamp, UnixTimestampDate, UnixTimestampTime, sofern Aktionsskript definiert ist
* [WFC_OpenCategory($id);](https://www.symcon.de/de/llms/modules/webfront-visualization.md)
#### PHP Module
* Auswahl von Branches im Module Control
* Anzeige der Repository URL im Module Control
* [Übersetzung von PHP-Module](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconMisc/blob/master/AnwesenheitsSimulation/locale.json) )
* [Dynamische Konfigurationsformulare](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/DynamicConfigurationForm) )
* [Liste der verfügbaren Nachrichten im MessageSink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)
* [$this->MessageSink($TimeStamp, $SenderID, $Message, $Data);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/MessageSinkTest) )
* [$this->SetSummary($Summary);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
* [$this->RegisterMessage($SenderID, $Message);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/MessageSinkTest) )
* [$this->UnregisterMessage($SenderID, $Message);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/MessageSinkTest) )
* [$this->SetBuffer($Name, $Data);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/IOFilterTest) )
* [$this->GetBuffer($Name);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/IOFilterTest) )
* [$this->SetReceiveDataFilter($RequiredRegexMatch);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) (Beispiel auf [GitHub](https://github.com/symcon/SymconTest/tree/master/IOFilterTest) )
* [$this->SetForwardDataFilter($RequiredRegexMatch);](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
* [$this->Destroy();](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
* MC_ReloadModule($module_control_id, "ModulName"); (Lädt das PHP Modul neu und erstellt auch die Instanzen neu)
#### Changelog
* Neu: OAuth Control für die neue Symcon Connect + OAuth2 Brücke
* Neu: Ein Klick auf die rote "Verbindung verloren" Meldung startet die Konsole neu und verbindet automatisch
* Neu: PHP Module können direkt Hook/OAuth Daten empfangen
* Neu: Konsole maskiert Kennwörter im Module Control
* Neu: Z-Wave unterstützt korrekt NOTIFICATION V4
* Neu: Z-Wave Optimierung kann im Gateway für alle Geräte und zusätzlich für jedes Gerät einzeln konfiguriert werden
* Neu: Z-Wave: Im Konfigurator kann das Einlernen ohne SECURITY erzwungen werden
* Neu: Konsole überprüft, ob mindestens Wine 1.8 genutzt wird
* Neu: Z-Wave Parameterdaten werden online abgefragt, anstatt auf die Offline Daten zuzugreifen. (Dadurch ist die ZWDB täglich aktuell)
* Neu: Clickatell Modul für neue REST API
* Neu: EnOcean EEP A5-04-02
* Neu: EnOcean EEP A5-04-03
* Neu: Mehr Debug Informationen, wenn SendNonce bei Z-Wave fehlgeschlagen ist
* Neu: Profil und Aktion wird für HMIP-eTRV korrekt gesetzt
* Neu: WebServer unterstützt Cookies (z.B. Adminer läuft dadurch im /user/ Ordner korrekt)
* Fix: Sortierung der Info Spalte ist möglich
* Fix: Variable ändern Dialog vergrößert das Eingabefeld mit
* Fix: Korrekte Erkennung von abgesteckten Serial Ports (z.B. USB)
* Fix: Datum wird bei SMTP E-Mail-Versand korrekt mitgesendet
* Fix: Arbeitsverzeichnis ist nun auch bei Skript-Ausführung von Ereignissen korrekt
* Fix: DiscoveryServer sollte nicht mehr die set_option Probleme bemängeln
* Fix: OnClick bei Formularbuttons konnte keine Selects auswerten (Beispiel: GitHub - symcon/SymconLJ: Lingg&Janke KNX quick)
* Fix: Sofern ganz bestimmte ungültige UTF-8 Zeichenketten in String Variablen gespeichert wurden, konnte die Konsole nicht mehr geöffnet werden
* Fix: Sofern beim Starten von IP-Symcon keine Internet Verbindung vorhanden ist, markiert das Connect Control dies korrekt als Fehler und versucht eine neue Verbindung aufzubauen.
* Fix: WebFront zeigt überlange String korrekt mit "..." an
* Fix: WebFront nutzt für Selector/Circle im CSS keine !important Attribute, um besser Skins zu erlauben (Beispiel)
* Fix: Cursor im Editor springt bei Mausklick zum Zeilenende
* Fix: Hohe-CPU-Last der Konsole verbessert (ist noch nicht perfekt!)
* Fix: Wine Version Überprüfung erkennt auch korrekt RC Versionen
* Fix: In Ereignissen können wieder Fließkommawerte bei "Bei Wert" eingestellt werden
* Fix: Für einige Aktionen darf nur ein Element im Baum ausgewählt sein
* Fix: EnOcean TCM120 Gateways wurden seit dem letzten Update nicht korrekt ausgewertet
* Fix: LCN Load/Save Scene Befehle waren seit 4.x defekt
* Fix: Eltako FWS61 Modul berechnet korrekt die Nachkommastellen
* Fix: UnixTimeStampDate/UnixTimeStampTime wird auch in GetValueFormatted unterstützt
* Fix: digitalStrom Module haben sich nicht an Sendelimits gehalten (max 1 Request/Sekunde)
* Fix: UVR1611 hat für einige Sensortypen den Wert falsch berechnet
* Fix: Beim Ausführen von Skripten das Timeout entfernt (wie bei der 3.4/4.0)
* Fix: Beim Ausführen von Skripten den "Es wird ausgeführt" Dialog wiederhergestellt
* Fix: Übersetzungsfehler im Skript-Editor beim Ersetzen korrigiert
* Fix: Vorhandene Enums wurden beim Hinzufügen von Funktionen bei Ereignissen nicht angezeigt
* Fix: Im Meldungsfenster bringt ein Doppelklick auf Einträge von gelöschten Objekte eine korrekte Fehlermeldung
* Fix: Abbrüche beim HomeMatic Rückkanal sollten nun zu 100% erkannt werden (Nur CCU2)
* Fix: Absturz unter nicht Windows-Systemen bei Zeitumstellung korrigiert
* Fix: Absturz beim Setzen von Variablen-Profilen, wenn die Groß-/Kleinschreibung falsch war
* Fix: Verzögerung beim Starten bzgl. DiscoveryServer korrigiert
* Fix: WebFront: Rundungsfehler
* Fix: EnOcean Eltako Dimmer sendet korrektes Lern-Telegramm
* Fix: WebFront Retro/Mobile hat manchmal einen Redeclare Fehler angezeigt
* Fix: AccessViolation in der Konsole, wenn ein Tab ohne Fokus geschlossen wurde und dann wieder geöffnet wurde
* Fix: Importieren von Skripten funktioniert im Editor wieder
* Fix: Editieren durch langsamen Doppelklick geht in der Baumansicht wieder
* Fix: Bei Redo/Undo wurde der Speichern-Button manchmal fälschlicherweise ausgegraut, obwohl Änderungen vorhanden waren
* Fix: Der Z-Wave Testen Dialog hat die WAKE_UP Klasse bei SECURITY Geräten nicht ausgewertet.
* Fix: Das Connect Control hat sich selber zu schnell deaktiviert bei Fehlern
* Fix: Image Grabber konnte Dateityp nicht automatisch erkennen, wenn der Charset mitgesendet wurde
* Fix: Bei einigen falsch kodierten Strings (nicht UTF-8 kompatibel) konnten die Konsole den Snapshot nicht laden
* Fix: Visual Studio 2015 Redistributable wurde nicht in der neusten Version installiert
* Fix: Bei PHP Modulen wurden JSON Daten (SendData*) nicht korrekt einbezogen, welche ein Array waren
* Fix: Anpassung des Working Dir für Ereignisse, sollte nicht bei WebServer-Ausführung greifen
## V3.4->V4.0 (Q1/2016)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v34-v40-q1-2016/
> **Achtung:** Um die Migration auf 4.0 oder neuer durchführen zu können ist ein Upgrade auf die letzte IP-Symcon 3.4 Version (Stand: 17.07.2016) erforderlich. Erst danach kann das Upgrade auf 4.0 oder neuer ausgeführt werden:
Sofern das Setup nicht korrekt installiert werden kann ist es möglich eine vorhandene Installation manuell auf die 3.4 zu aktualisieren. Dazu muss der IP-Symcon Dienst benendet werden und alle Dateien im IP-Symcon Order mit denen aus der ZIP-Datei überschrieben werden.
Jetzt IP-Symcon 3.4 (ZIP) für Windows herunterladen
### Wesentliche Änderungen
Für IP-Symcon 4.0 wurde insbesondere Wert auf die Unterstützung unterschiedlicher Betriebssysteme gelegt. Dadurch steht ab sofort der IP-Symcon Dienst für den Raspberry Pi, Ubuntu, MacOS und Windows zur Verfügung. Der Einstieg in die Gebäudeautomation wird somit effizienter, flexibler und kostengünstiger.
IP-Symcon 4.0 enthält zudem ein [SDK auf PHP](https://www.symcon.de/de/llms/developer/sdk-tools.md) Basis. Dadurch kann die Community plattformunabhängige Module bereitstellen, welche jeder verwenden und einfach in seine Hausautomation installieren kann. Bis heute sind bereits [über 50 PHP-Module](https://community.symcon.de/t/archiv-veraltet-uebersicht-der-php-module/37958) z.B. für die Integration von SONOS, Philips Hue oder Netatmo entstanden.
__Weitere neue Funktionen im Überblick__
* Neues Datenbankformat mit bis zu 70% Platzeinsparung. Dank dem einfachen CSV-Format gibt es bessere Möglichkeiten beim Backup/Restore und Modifikation der geloggten Daten. Ein einfacher Import in Microsoft Excel ist ebenfalls möglich.
* WebFront Visualisierung mit fortlaufenden Graphen, deaktivierbaren Objekten, Popup Instanzen, [neuen Icons](https://www.symcon.de/de/llms/components/icons.md) mit Zuständen uvm.
* Mobile Graphen/Charts in den mobilen Apps
* Verwaltungskonsole wurde [optisch für Windows 10 überarbeitet](https://www.symcon.de/de/llms/components/management-console.md) und mit vielen neuen Details verbessert.
* [Symcon Connect](https://www.symcon.de/de/llms/modules/connect-control.md) erlaubt die kinderleichte Verbindung zwischen IP-Symcon und der mobile App ohne extra den Router zu konfigurieren. Zum Einrichten genügt das Abscannen eines QR-Codes.
* Neue Module für [astronomische Ereignisse](https://www.symcon.de/de/llms/modules/location-control.md) , [Kalendereinträge](https://www.symcon.de/de/llms/modules/calendar-control.md) , [WebHooks](https://www.symcon.de/de/llms/modules/webhook-control.md) , 1-Wire ohne TMEX, RGB/RGBW für KNX, native Anbindung von Siemens S7 Ethernet, verbesserte Zuverlässigkeit und Funktionalität bei Z-Wave, Unterstützung weiterer [EnOcean Eltako Geräte](https://www.symcon.de/de/llms/modules/enocean.md) , uvm.
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Edition nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Edition von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 4.0 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen und dem Symcon Connect Dienst eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_

### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 3.4 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 4.0 auftreten.
> **Hinweis:** Ein direktes Update ist ab Version 3.4 möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Kritisch: PHP nutzt jetzt bei Ausgaben das lokale Dezimaltrennzeichen (Für DE/AT/CH: 3.4 -> Punkt. 4.0 -> Komma)
* Objektnamen (Strings) werden als UTF-8 gespeichert, sodass z.B. Skripte mit Umlauten welche IPS_GetObjectIdByName nutzen ins Leere laufen können. Es wird empfohlen auf die neuere IPS_GetObjectIdByIdent Funktion umzusteigen, die keine Umlaute enthält und besser für den gewünschten Zweck geeignet ist.
* Kleinere Änderung bei IPS_GetVariable (VariableType anstatt VariableValue.ValueType)
* Kleinere Änderung bei IPS_GetScript (ScriptIsBroken anstatt IsBroken, ScriptExecuted anstatt LastExecute)
* Kleinere Änderung bei IPS_GetLink (TargetID anstatt LinkChildID)
* Kleinere Änderung bei IPS_GetMedia (MediaUpdated anstatt LastUpdate, MediaIsAvailable anstatt IsAvailable, IsLinked/SendEvent entfällt)
* Kleinere Änderung bei Sys_GetHardDiskInfo (Indexed Array anstatt HDD0 ... HDDn)
* Kleinere Änderung bei Sys_GetCPUInfo liefert nun die aktuelle Durchschnittlast, nicht den Mittelwert der letzten 60 Sekunden
* SMS-Modul benötigt APIID der HTTP/S API anstatt der SOAP API
* Siemens SPS Module basieren von der Idee auf Snap7 und unterstützt ausschließlich Ethernet basierte PLCs
* FTDI/USBXpress Instanzen werden zu SerialPort Instanzen konvertiert und müssen ggf. neu konfiguriert werden
* Bei FHT_* Befehlen wird eine Fehlermeldung erzeugt, wenn der FHT Buffer im FHZ Splitter aufgebraucht wurde
* SOAP Server nicht vorhanden. Am besten gleich auf JSON-RPC wechseln
* PHP 5.6 unterstützt Windows XP/Windows 2003/Windows Home Server 2007 nicht mehr. IP-Symcon somit auch nicht.
* Image Grabber nutzt die neue Cache Funktion für Medien, und speichert diese nur noch beim Beenden auf die Festplatte/Flash (Dadurch wird die Lebensdauer des Flash-Speichers enorm verbessert!) Ggf. auf IPS_GetMediaContent umstellen.
* WebServer unterstützen keine eigenen Ordner mehr. Es wird nur noch webfront/user Ordner unterstützt.
* Der "media" Ordner wird nicht mehr überwacht. d.h. neu hinzugefügte oder geänderte Dateien werden nicht bemerkt. Sofern neue Medien über IP-Symcon eingelesen/aktualisiert werden, kann IP-Symcon über eine Veränderung mit IPS_SendMediaEvent aufmerksam gemacht werden. Bei zyklischen Abfragen, die nicht über den ImageGrabber von extern erfolgen, kann ein Skript, welches zyklisch aufgerufen wird, ebenfalls die IPS_SendMediaEvent Funktion aufrufen.
* Für Neuinstallationen wird kein WebServer für Port 82 erstellt. Der interne WebServer ist jetzt unter Port 3777 erreichbar!
* Die Datenbank wird während der Installation in ein neues Format konvertiert. Dabei werden die Nachkommastellen mit einer Genauigkeit von 6 Nachkommastellen importiert. Sofern die volle Genauigkeit von 15 Nachkommastellen beim Importieren gewünscht wird (höhere Datenmenge), kann dazu das externe [DBConvert Tool](https://www.symcon.de/assets/files/service/DBConvertTool.zip) genutzt werden.
* Einige Module sind entfallen: ISDN, OneWire DS2490, Siemens S7 MPI/PPI, MF420-IR-CTF Klimawächter, EZControl, RFReader, CGEM24
* Externe Module/Delphi SDK (*.dll) aus IP-Symcon 3.4 sind nicht mehr kompatibel.
* Nach der Installation muss im Archiv unter Kern Instanzen eine Re-Aggregation gestartet werden, damit alle historischen Daten wieder korrekt sichtbar sind.
* Skripte in Wochenplan-Aktionen müssen sauber mit einem Semikolon (;) beendet sein.
### Liste der Änderungen
#### Dienst ist für verschiedene Plattformen verfügbar
* Verfügbar für Windows (ab Vista), RaspberryPi (alle Modelle), Linux (Ubuntu 14.04 x64), MacOS (ab 10.8)
#### WebFront enthält folgende neue Funktionen
* Fortlaufende Graphen ([Link](https://community.symcon.de/t/kontinuierliche-graphen/36765) zum Wunsch)
* Deaktivierbare Objekte ([Link](https://community.symcon.de/t/objekte-im-webfront-inaktiv-schalten/33056) zum Wunsch)
* Öffnen von eingebetteten Graphen im Popup (Wurde auch gewünscht)
* Voreinstellungen für Graphen ([Link](https://community.symcon.de/t/voreinstellung-bei-der-graphenvisualisierung/37032) zum Wunsch)
* Popup-Instanzen ([Link](https://community.symcon.de/t/variablen-im-popup/36276) zum Wunsch)
* Variablenprofil CSS-Hooks zur besseren Individualisierbarkeit über Skins ([Link](https://community.symcon.de/t/featurewunsch-attribut-zur-identifizierung-der-ips-objekt-id-an-den-html-containern/33427) zum Wunsch)
* Vereinfachte Ansicht für ~HexColor Profil ([Link](https://community.symcon.de/t/variablen-profil-hexcolor-im-webfront-nur-als-colorpicker/37176) zum Wunsch)
* Neue Vektorbasierte-Icons für noch bessere Retina Kompatibilität ([RetroSkin](https://github.com/symcon/SkinRetro) für die alten Icons)
* Adaptive Icons (Icons mit Statuszuständen), welche bisher für folgende Icons realisiert wurden: Clock, Garage, Hourglas, Jalousie, Light, Lock, Power, Speaker, Speedo, Temperature, WindSpeed und Window
* WebFront Retro optimiert, sodass Blinde dies über JAWS besser bedienen können
#### Verwaltungskonsole enthält folgende neue Funktionen
* Optisch für das Windows 10 Design überarbeitet
* Beim "Objekte bearbeiten" Dialog ist die Unterstützung für Aktiv/Inaktiv hinzugekommen
* Im WebFront Konfigurator können die Voreinstellungen für Graphdialoge konfiguriert werden
* "Suche ID" im Objektbaum enthält die ID aus der Zwischenablage falls vorhanden
* Im Debug für Instanzen werden Steuerzeichen entsprechend kodiert. z.B.
* Im Debug werden beim Speichern in eine Datei Text und HEX exportiert
* Icons für Skripte, Variablen und Wochenpläne getauscht
* Alle "Vollbild" Dialog haben nun eine obere Toolleiste mit den relevanten Optionen (Mehr Konsistenz in der Bedienung)
* Ereignis/Statusvariablen/Debugfenster werden beim Editieren von Instanzen in eigenen, dockbaren Fenstern geöffnet
* Spezialschalter sind aus der Konsole änderbar
* Sofern keine Lizenz vorhanden ist, wird diese beim Öffnen der Konsole abgefragt
* "Ansicht hinzufügen" ist nun auf der Willkommensseite ganz unten unter "Expertenansichten hinzufügen" platziert
* Dokumentation für ["Symcon Connect"](https://www.symcon.de/de/llms/modules/connect-control.md) und ["Keine Server gefunden"](https://www.symcon.de/de/llms/components/management-console.md) im Verbindungsassistenten verknüpft
* Reaggregation kann im Archiv bequem für mehrere Variablen in Auftrag gegeben werden
#### Performanteres Archiv
* Die Daten im CSV-Format verbrauchen ca 70% weniger Speicherplatz
* Vorteile beim Backup, Restore und Löschen
* Hinzufügen von eigenen Datensätzen ist möglich
* Öffnen der CSV-Dateien mit Microsoft Excel möglich
#### Sonstiges
* [Symcon Connect](https://www.symcon.de/de/llms/modules/connect-control.md) Dienst erspart lästige DynDNS/Routerkonfiguration (benötigt gültige Subskription) und erhöht über die standardmäßig aktivierte SSL-Verschlüsselung die Sicherheit
* Neues Modul für Astronomische Ereignisse
* Neues Modul für Kalendereinträge
* Neues Modul für WebHooks
* Native PHP Erweiterungen ([Übersicht der verfügbaren PHP Module](https://community.symcon.de/t/archiv-veraltet-uebersicht-der-php-module/37958) )
* Native 1-Wire Module (Kein TMEX Treiber wird mehr benötigt)
* 1-Wire DS2490/DS9490R (blauer USB-Stick). Dieser benötigt noch immer die TMEX Treiber.
* KNX RGB/RGBW Modul
* KNX Shutter unterstützt Rückmeldegruppenadressen
* digitalStrom Konfigurator kann komfortabel Räume anlegen
* digitalStrom Klemmen können über DS_RequestStatus nach aktuellem Zustand abgefragt werden
* DMX4ALL Gateway wird nun auch über TCP unterstützt
* PHP 5.6.17
#### Entfallene Module
* ISDN
* Siemens S7 MPI/PPI (Es werden nur noch Ethernet PLCs unterstützt)
* MF420-IR-CTF Klimawächter, EZControl, RFReader, CGEM24 (Nur noch als PHP-Module: symcon/SymconBC · GitHub)
* Alle externen Module der Version 3.x sind nicht mehr mit 4.0 verwendbar. Alternativ gibt es nun die platformunabhängigen PHP-Module.
## V3.3->V3.4 (Q2/2015)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v33-v34-q2-2015/
### Wesentliche Änderungen
__Verbesserte Nutzbarkeit bei batteriebetriebenen Z-Wave-Geräten__
Die Unterstützung von batteriebetriebenen Geräten wurde wesentlich verbessert, sodass die Einrichtung und Veränderung von Einstellungen leichter möglich ist. Intern wurde die Warteschleife für Nachrichten verbessert, sodass keine gleichen, doppelten Anfragen an das Gerät gesendet werden, wodruch die Lebensdauer der Batterie profitiert. Zusätzlich kann das Abfrageintervall in der Instanz definiert werden, wodurch weitere Einsparungen im Batterieverbrauch möglich sind.
__Benutzerdefinierte Sounds können an mobile Apps gesendet werden__
Push-Benachrichtigungen der mobilen Apps können mit einem benutzerdefinierten Sound ausgeben werden. Ein Blick auf das Smartphone kann somit oftmals entfallen. Weitere Informationen zu den Verfügbaren Sounds sind sind in unserer Dokumentation unter [WFC_PushNotification](https://www.symcon.de/de/llms/modules/webfront-visualization.md) zu finden.
__ALLNET Module aktualisiert__
Die ALLNET Module bevorzugen ab IP-Symcon 3.4 die neue JSON Schnittstelle der Geräte, welche ab Firmware 3.0 angeboten wird. Dadurch wird die Anbindung der Geräte nochmals vereinfacht. Eine aktuelle Liste der unterstützten Geräten finden Sie unter [ALLNET](https://www.symcon.de/de/llms/modules/allnet.md) .
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Edition nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Edition von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 3.4 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 3.3 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 3.4 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Sofern batteriebetriebene Z-Wave-Geräte genutzt werden, muss nach dem Update das Abfrageintervall explizit angegeben werden! Andernfalls wird der Status nicht vom Gerät abgefragt, sondern nur die vom Gerät gesendeten Werte aktualisiert.
### Liste der Änderungen
__Neue Funktionen__
-Neu: Verbesserte Nutzbarkeit bei batteriebetriebenen Z-Wave-Geräten
-Neu: Digitale Signaturen (Löst Probleme mit Fehlalarmen in Virenscannern)
-Neu: Im ModBus Modul kann ein Umrechnungsfaktor angegeben werden
-Neu: Im Browser wird der Titel des WebFront in der Titelleiste angezeigt
-Neu: xComfort Konfigurator kann die neuen Geräte verwalten (DeviceID 74)
-Neu: Real64 Datentyp in ModBus hinzugefügt
-Neu: Sound kann an mobile Apps gesendet werden (App-Updates werden benötigt...)
-Neu: Push-Nachrichten können nun 256 Zeichen lang sein (plus zusätzlich 32 Zeichen im Titel) (Erfordert ggf. iOS8)
-Neu: OneWire Module wurden aufgeteilt, um kompatibel zur Linux, RaspberryPi und MacOS Version zu sein
-Neu: Animationen für Graphen können im WebFront über Skins deaktiviert werden
-Neu: ALLUniversal Modul umbenannt zu "alte Firmware 2.x"
-Neu: ALL5000 Modul umbenannt zu ALLUniversal (für Firmware 3.x)
__Behobene Fehler__
-Fix: Beim Wochenplan wurde unter bestimmten Umständen die Eingabe von Quellcode nicht erlaubt
-Fix: Problem mit Zwischenablage beim Kopieren von ObjektIDs
-Fix: JSON-RPC Klasse wirft nun Exceptions, damit diese korrekt abgefangen werden können
-Fix: Fehlende 1-Wire Kompatibilitätsfunktionen ergänzt
-Fix: Geänderte Idents bei den Modulen werden bei IPS_GetStatusVariableID berücksichtigt
-Fix: Link zum Shop springt direkt zu den Subskriptions
-Fix: Datum wird bei Boolean-Graphen jetzt immer korrekt angezeigt
-Fix: Velleman Board Modul sollte mit VM110N laufen
-Fix: Z-Wave Parameter Dialog überarbeitet
-Fix: WinLIRC kommt mit fragmentierten Paketen zurecht
-Fix: LCN Host Kommando wird korrekt ausgewertet
-Fix: Shortcuts gehen im Objektbaum Popup korrekterweise nicht mehr
-Fix: Ereignisse, die per PHP erstellt werden, werden korrekt als einmalige Ereignisse erstellt
-Fix: Vollbild-Boolean-Charts wurden nicht angezeigt, wenn Extrema aktiviert wurden
-Fix: Kleines Usability-Problem beim Erstellen von Wochenplanaktionen im WebFront gelöst
-Fix: Problem mit EventLimit bei Ereignissen gelöst
-Fix: IPS_VariableProfileExists hat sich bei der Prüfung inkonsistent zu IPS_CreateVariableProfile verhalten
-Fix: Problem mit Symcon-Tray nach Windows-Start gelöst
-Fix: Access.log schreibt bei Vorhandensein die X-Forwarded-IP in Logfile
-Fix: Problem mit xComfort Rückmeldungen gelöst
-Fix: Problem mit Setzen von DS2405 Pins über PHP gelöst (TMEX_F05_SetPin)
## V3.2->V3.3 (Q1/2015)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v32-v33-q1-2015/
### Wesentliche Änderungen
__Neuer Graphentyp Bool-Chart für Bool-Variablen__
Auf vielfachen Wunsch und aufgrund hoher Funktionalität ermöglicht IP-Symcon nun die präzise Darstellung von Bool-Variablen innerhalb von Graphen.
Es ist möglich einen [Bool-Chart](https://www.symcon.de/de/llms/concepts.md) sowohl im Einzelgraphen als auch Multigraphen darzustellen. Es werden ausschließlich die Rohdaten genutzt, wodurch eindeutige Flanken in den Graphen dargestellt werden. Dies führt zu einer präzisen Veranschaulichung der aufgenommen Daten. Eine weitere Besonderheit zum bisherigen Linien- oder Bar-Multi-Chart ist die Nutzung des jeweils eigenen Profils der Bool-Variablen innerhalb eines Multi-Charts. Dies führt zu einer hohen Übersichtlichkeit.

__Unterstützung für neue EnOcean Geräte und EnOcean EEPs__
Neben neuen Geräten wie z.B. Eltako FWS61, Eltako FSB14, Eltako FSB61, Eltako FSB71 können nun auch eine Vielzahl von Geräten eingebunden werden, welche die offiziellen "EnOcean Equipment Profiles" (kurz EEPs) unterstützen. Dadurch sind fast alle neuen EnOcean Geräte mit IP-Symcon kompatibel sein. Zusätzlich wurde auch die Unterstützung für BiDirektionale Geräte, wie zum Beispiel Stellantriebe verbessert. Somit können die Geräte SAB02 von "Thermokon", B2 Drive von "alphaEOS" und das MD15 von "Kieback & Peter" nun genutzt werden. Eine vollständige Liste der aktuell unterstützen Geräte und EEPs kann der [EnOcean Geräteliste](https://www.symcon.de/de/llms/modules/enocean.md) entnommen werden.
__Verbesserungen der Verwaltungskonsole__
Zur Einrichtung von IP-Symcon ist die Verwaltungskonsole besonders wichtig. Aus diesem Grund wurde in diesem Update ein besonderes Augenmerk auf dessen Anwenderfreundlichkeit gelegt. Es wurden, um eine Einrichtung und Bedienung zu beschleunigen, viele [Tastenkombinationen](https://www.symcon.de/de/llms/how-to.md) hinzugefügt. Beispielsweise ist nun das Hinzufügen, Duplizieren und Verlinken von Objekten mit einem einfachen Tastendruck möglich. Durch das Update des Schnellfilters ist die integrierte Suche im Objektbaum noch einfacher zu bedienen. Damit die Konsole sich konsistent verhält, lassen sich schnell alle Dialoge per ESC schließen und die Dialogfelder per Tabulator durchschalten.
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Edition nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Edition von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 3.3 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 3.2 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 3.3 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
### Liste der Änderungen
__Neue Funktionen__
-Neu: Boolean-Multigraphen (siehe [Screenshot](https://www.symcon.de/de/llms/concepts.md) )
-Neu: Boolean-Variablen werden in Graphen besser dargestellt
-Neu: EnOcean EEP Module (Nur Empfangen!)
-Neu: Eine Menge Shortcuts für die logische Baumansicht und den Willkommen-Reiter
-Neu: Duplizieren von Objekten (Noch nicht rekursiv!)
-Neu: "Instanz erstellen" Dialog überarbeitet
-Neu: "Variablen erstellen/editieren" Dialog schlanker gestaltet
-Neu: Reaggregieren wird automatisch nach Änderung des Aggregationstyps gestartet
-Neu: "Objekt bearbeiten" Dialog verbessert
-Neu: QuickFilter in der Baumansicht ist nun Case-Insensitive
-Neu: Alle Dialoge sind korrekt mit ESC schließbar
-Neu: Navigieren per Tab wurde überall korrekt korrigiert
-Neu: Alle Zusammenfassungsdialoge (Summary) entfernt
-Neu: Logos angepasst
-Neu: IPS_GetModuleListByType
-Neu: COMPort_* heißt jetzt SPRT_* und WWWReader_* heißt jetzt WWW_*
-Neu: Neue Module für EnOcean Enegergiezähler (EEP A5-12-00, A5-12-01, A5-12-02, A5-12-03)
-Neu: Neues Modul für Eltako FWS61
-Neu: Eltako Shutter Modul für FSB14, FSB61, FSB71
-Neu: Bool-Charts können nun unterschiedliche Profile bei Variablen anzeigen
-Neu: Auswahl für ModBus TCP über UDP
-Neu: EnOcean EEP A5-20-01 für z.B. Thermokon SAB02, alphaEOS B2 Drive oder Kieback&Peter MD15
-Neu: EnOcean Modul für alphaEOS SENSE TF-H
-Neu: Debugging verlängert sich automatisch
-Neu: TextParser, HeatingControl, ShutterControl, EventControl auf IPS_SetProperty/IPS_GetProperty umgestellt
-Neu: Geloggte Strings können über den Graphdialog angezeigt werden
-Neu: Geloggte String Variablen können auch als Vollbild "Graph" angezeigt werden
__Behobene Fehler__
-Fix: Sortierung im WFC "Element hinzufügen" Dialog
-Fix: AccessViolation bei der Timer-Übersicht, wenn InstanzID Null war
-Fix: Probleme mit Eltako FSS12 Modul gelöst
-Fix: Gelöschte, geöffnete Instanzen werden automatisch als Reiter entfernt
-Fix: Neue Konfiguratoren können aus dem "Konfiguratoren verwalten" Dialog erstellt werden
-Fix: QuickFilter merkt sich die letzte Eingabe
-Fix: Bessere Exception bei fehlerhaften JSONRPC Requests
-Fix: Behebt Sicherheitslücke in Verbindung mit Proxies/ReverseProxies
-Fix: Behebt Fehlermeldung bei JSONRPC Klasse
-Fix: Fehlerhafter Punkt bei Float-Werten im WebFront bei englischsprachigen Systemen
-Fix: Probleme mit leeren HD-Graphen
-Fix: Ventilprosition bei FHT wird bei der Entkalkungsfahrt korrekt ausgewertet
-Fix: Z-Wave Protection Klasse wird nun in Version 2 unterstützt
-Fix: Problem mit Z-Wave SensorAlarm Klasse gelöst
-Fix: Profilmanager kann besser mit Pfeiltasten bedient werden
-Fix: Lade-Dialog ist nun mittig positioniert
-Fix: Fehlende $_IPS Variablen im Skript Editor hinzugefügt
-Fix: Problem mit nicht angezeigten, ersten Kategorien im WebFront korrigiert
-Fix: Kleine Usability-Probleme mit Wochenplan korrigiert
-Fix: Namensänderungen werden auch in Reitern berücksichtigt
-Fix: Fehler beim Schalten mit dem Shutter Control korrigiert
__Änderung Dokumentation__
Die Doku befindet sich in einem Status der Generalüberholung und wird stetig aktualisiert.
-Neu: [Schnelleinstieg]
-Neu: [Bool Chart](https://www.symcon.de/de/llms/concepts.md)
-Neu: [Links](https://www.symcon.de/de/llms/concepts.md)
-Neu: Gerätelisten ([1-Wire](https://www.symcon.de/de/llms/modules/1-wire.md) , [ALLNET](https://www.symcon.de/de/llms/modules/allnet.md) , [DMX](https://www.symcon.de/de/llms/modules/dmx-artnet.md) , [Eaton xComfort](https://www.symcon.de/de/llms/modules/xcomfort.md) , [KNX](https://www.symcon.de/de/llms/modules/knx.md) , [EnOcean/EEP](https://www.symcon.de/de/llms/modules/enocean.md) , [Z-Wave](https://www.symcon.de/de/llms/modules/z-wave.md) )
-Neu: Befehlsliste vervollständigt ([Z-Wave](https://www.symcon.de/de/llms/modules/z-wave.md) )
-Update: [Instanzen](https://www.symcon.de/de/llms/concepts.md)
-Update: [Ereignisse](https://www.symcon.de/de/llms/concepts.md)
-Update: [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md)
-Update: [Geräte einbinden](https://www.symcon.de/de/llms/how-to.md)
-Update: [Links verwenden](https://www.symcon.de/de/llms/how-to.md)
-Update: [Email Benachrichtigung](https://www.symcon.de/de/llms/how-to.md)
## V3.1->V3.2 (Q3/2014)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v31-v32-q3-2014/
### Wesentliche Änderungen
__Neuer Ereignistyp: Wochenplan__
Eine der Neuerungen ist der Ereignistyp Wochenplan, mit dem es nun noch schneller möglich ist,
einzelne Zustände z.B. von Licht-Szenarien oder der Heizungssteuerung für jeden Wochentag anzulegen oder zu ändern. Im WebFront werde geplante Zustände durch farbige Balken übersichtlich dargestellt und sind intuitiv anpassbar.

__HD für Multi-Charts__
Die Multi Charts im WebFront bieten die viel gewünschte HD-Funktion an, mit der es nun möglich ist, die einzelnen Graphen detailliert in hoher Dichte anzuzeigen.
__Updates für Systeme__
Neue Module für digitalSTROM erlauben das Setzen von Stimmungen direkt aus dem WebFront heraus und endlich den viel gewünschten Rückkanal, der Änderungen der Raumstimmung in IP-Symcon wiederspiegelt. Zusätzlich wurde die Eaton xComfort Unterstützung überarbeitet, sodass die neuen Geräte mit gerouteten Statusmeldungen eingebunden werden können.
__Skin-Manager in der Verwaltungskonsole__
Der neue Skin-Manager erlaube die bequeme Verwaltung aller Skins und ist nun direkt in der Verwaltungskonsole unter Kern-Instanzen verfügbar.
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Version nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 3.2 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 3.1 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 3.2 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
### Liste der Änderungen
__Neue Funktionen__
* Neu: Wochenplan Ereignisse können erstellt werden
* Neu: IPS_SetEventScheduleAction
* Neu: IPS_SetEventScheduleGroup
* Neu: IPS_SetEventScheduleGroupPoint
* Neu: HD für MultiCharts
* Neu: dSRoom und dSApartment Module für digitalStrom zur Ansteuerung der Stimmungen
* Neu: Skins werden über die Konsole verwaltet
* Neu: ZW_ConfigurationSetValueEx für Z-Wave Parameter mit variabler Größe (IPSD-86)
* Neu: WinLIRC wertet Rückmeldungen aus und wirft somit auch Fehlermeldungen (IPSD-116)
* Neu: WebFront: Inhaltswechsler reagiert auf Änderungen von Links
* Neu: WebFront: Inhaltswechsler reagiert auf Verstecken/Sichtbar machen von Objekten
__Behobene Fehler__
* Fix: Aus aktuellem Anlass (POODLE) wird SSLv3 nicht mehr erlaubt
* Fix: IPS_SetEventCyclicTimeFrom/IPS_SetEventCyclicTimeTo überprüft das angegebene Datum
* Fix: Icons der WebFront Menüleiste wurden unter iOS7 leicht verschoben angezeigt
* Fix: WebFront: CSV auch im FF und IE auswählbar
* Fix: WebFront: CSV mit besserer Formatierung
* Fix: WebFront Retro/Mobile können korrekt separat aktiviert/deaktiviert werden
* Fix: Link zur Doku innerhalb der Konsole korrigiert
* Fix: Probleme mit Ereignissen bei Zeitzonen ohne Sommerzeit korrigiert
* Fix: Reloads im WebFront durch z.B. ungültige Float-Werte von ModBus Instanzen korrigiert
* Fix: OneWire DS2413 überprüft komplementär Bits (IPSD-111)
* Fix: Archivhandler Ansicht Zeitraum Auswahl fehlerhaft (IPSD-38)
* Fix: WebFront-Konfigurator überschreibt existierendes Objekt mit gleichem Namen (IPSD-121)
* Fix: Beim Wechsel der Listenansicht des Objektbaums wird ein gesetzter Filter nicht berücksichtigt (IPSD-123)
* Fix: Unnötige Scrollbar bei Inhaltswechslern ohne Navigationsleiste (WEBFRONT-58)
* Fix: Name beim Duplizieren von Profilen werden auf korrektheit überprüft
* Fix: DMX hat ggf. nach 49,7 Tagen ohne Windows Neustart nicht mehr korrekt funktioniert
* Fix: Kleine Änderung die bei KNX evtl. die "Not connected to interface" Probleme löst
## V3.0->V3.1 (Q2/2014)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v30-v31-q2-2014/
### Wesentliche Änderungen
__Multi-Charts__
Eine der Neuerungen sind die [Multi Charts](https://www.symcon.de/de/llms/concepts.md) , mit denen es nun einfach möglich ist mehrere Graphen in einer Ansicht darzustellen. Es können so z.B. die Verbrauchskosten von dem laufendem Jahr mit dem des Vorjahrs graphisch gegenübergestellt werden, um so schnell Unregelmäßigkeiten zu entdecken. Dabei kann jeweils ein beliebiger Titel, Linien und Füllfarbe ausgewählt werden. Die Charts können nach der Konfiguration direkt im WebFront angesehen oder über das Graph-Element im Vollbild Modus eingebettet werden.
__Fernzugriff auf Konfiguration mit Kennwortschutz__
Eine weitere neue Funktion ist der Fernzugriff. Mit ihm ist es nun leicht möglich die Verwaltungskonsole von einem anderen Rechner aus zu nutzen. So lassen sich von überall Änderungen der Konfiguration zu Hause oder beim Kunden durchführen. Durch den neuen, integrierten Kennwortschutz ist dies auch über das Internet sicher möglich.
__Komfortabler Profilmanager__
Variablenprofile können nun noch schneller und einfacher mit Hilfe des Profil-Manager bearbeitet werden. Dabei ist dieser in einem eigenem Fenster mit viel Platz ausgestattet worden. Änderungen an den Assoziationen sind nun direkt möglich ohne ein zusätzliches Fenster öffnen zu müssen. Die Sortierung nach Variablentyp vereinfacht die Suche nach dem Profil. Zusätzlich können Profile schnell dupliziert und deren Nutzung in den jeweiligen Variablen untersucht werden.
__Updates für Systeme__
Des Weiteren wurde viele Module überarbeitet. So wurden z.B bei LCN neue Umrechnungsfaktoren, die Unterstützung des S0-Counter vom BU4L hinzugefügt oder bei diversen Z-Wave Geräten die Kompatibilität verbessert. Alle Details können der Liste der Änderungen entnommen werden.
_(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Version nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 3.1 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 3.0 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 3.1 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Sofern die Verwaltungskonsole von einem anderen Rechner aus genutzt wird, muss der Fernzugriff aktiviert werden. [Fernzugriff aktivieren](https://www.symcon.de/de/llms/components/remote-access.md)
* Sofern die Verwaltungskonsole von einem anderen Rechner aus genutzt wird, muss diese einmalig erneut aus unserem [Download-Bereich](https://www.symcon.de/de/downloads/) geladen werden
* Die Verwaltungskonsole kommuniziert über den WebFront Port (82) anstatt dem SOAP Port (3773)
* Die JSON-RPC API ist lokal immer aktiv, und ist von extern ausschließlich über das Fernzugriff-Kennwort und eurem Lizenz-Benutzernamen zugreifbar.
* SOAP ist standardmäßig deaktiviert, kann jedoch jederzeit aktiviert werden. [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md)
* Die Felder CyclicDateFrom/CyclicDateTo/CyclicTimeFrom/CyclicTimeTo von [IPS_GetEvent](https://www.symcon.de/de/llms/functions/management-events.md) wurden geändert. Bitte die Dokumentation beachten.
### Liste der Änderungen
__Neue Funktionen__
* Neu: Multi-Charts
* Neu: Profile werden über den neuen Profilmananger bearbeitet
* Neu: Konsole arbeitet über die neue JSON-RPC API (=Fernzugriff, Passwortgeschützt)
* Neu: Konsole benötigt für Fernzugriff einen Benutzernamen/Kennwort
* Neu: Proxy Support für Verwaltungskonsole
* Neu: API-Vorbereitungen für neue App-Versionen
* Neu: Automatische Suche von IP-Symcon Servern via UPNP/SSDP
* Neu: Variablenprofil-Einstellungen aufgeräumt
* Neu: Upgrade auf PHP 5.4.24
* Neu: Unterstützung für Farben bei der Werteauswahl (WebFront)
* Neu: Retina-Support für den Farbauswahl-Dialog
* Neu: Unterstützung für umgerechnete Werte beim W&T Counter Modul
* Neu: Startdatum/Enddatum/Startzeit/Endzeit werden über neue Funktionen gesetzt (Alte Funktionen weiterhin vorhanden)
* Neu: LCN - Neue Umrechnungsfaktoren (wie auch in der LCN Pro vorhanden)
* Neu: LCN - S0-Counter des BU4L werden unterstützt
* Neu: LCN - Unterstützung für Ausgang 4
* Neu: Z-Wave - Profile/Namen werden für METER Klasse besser gesetzt
* Neu: Z-Wave - Battery-Low Anzeige für Z-Wave BATTERY Klasse
* Neu: Z-Wave - Konfigurator kann Untergeräte korrekt einsortieren
* Neu: DMX - RGB Modul für bessere WebFront Integration
* Neu: Module für SERVO-868
* Neu: IsCharging, BatteryRemainingTime, BatteryMaxTime für [Sys_GetBattery](https://www.symcon.de/de/llms/modules/system-information.md)
* Neu: Unterstützung für "letzter Wochentag im Monat und letzter Tag im Monat" bei Ereignissen
* Neu: Graph-Dialog im WebFront zeigt nun nur gültige Variablen/Charts zum auswählen an
* Neu: Sortierung wird im Objektbaum pro Ansicht gespeichert
* Neu: Suchen/Ersetzen in Dateien merkt sich letzte Begriffe
* Neu: Spalten bei Timer Informationen und Ereignis Informationen können sortiert werden
* Neu: Intern alles auf UnixTime umgestellt, anstatt der proprietären TDateTime von Delphi
* Neu: Modul für ALLNET 5000 / ALLNET 3500 (neue 3.x Firmware)
* Neu: Status wird bei ALL3073 ausgelesen
* Neu: Empfang von Push-Nachrichten kann direkt im Konfigurator/Notification-Control aktiviert/deaktiviert werden
* Neu: Transparente Füllfarbe bei Multi-Charts
* Neu: dSS-Splitter kann nun auch mit einem alternativen Port umgehen
* Neu: DMX_SetRGB, um die RGB Instanz per PHP anzusteuern
* Neu: FS20, FS20EX und FHT intern auf IPS_SetProperty/IPS_GetProperty umgestellt
* Neu: HID und MediaPlayer Modul auf IPS_GetProperty/IPS_SetProperty umgebaut-Fix: Update auf OpenSSL 1.0.1g
* Neu: Status von ALL3075V2 wird eingelesen
* Neu: Status von ALL3075 wird eingelesen
* Neu: HTTP_X_FORWARDED_FOR wird ausgewertet
* Neu: Lizenz kann direkt über die Verwaltungskonsole geändert werden
* Neu: DLL vom MediaPlayer aktualisiert
* Neu: ModBus unterstüzt 64bit Werte
* Neu: Konsole kann mit Parameter /locationview gestartet werden und zeigt sofort die logische Baumansicht
* Neu: DMX_FadeRGB und DMX_FadeRGBDelayed (respektive wurde DMX_SetValue zu DMX_SetChannel ect. umbenannt. Die alten Funktion sind weiterhin als Kompatibilitätsfunktionen verfügbar)
* Neu: Basis Authentizifierung greift beim WebFront nur noch für den "user"-Ordner ([Sicherheit](https://www.symcon.de/de/llms/getting-started.md))
* Neu: Mobile/Retro Reiter im WebFront Konfigurator umstrukturiert
* Neu: Sicherheitshinweis beim Deaktivieren des Mobil-Zugriffs
* Neu: Unterstützung für Pool-Sensor bei Oregon Wetterstationen
* Neu: WAC_Reset($id) - Befehl um den MediaPlayer bei einem Ausfall wieder zum Leben zu erwecken. Feedback ist erwünscht!
* Neu: Module werden im "Über" Dialog nach Namen sortiert
__Behobene Fehler__
* Fix: Probleme mit der Berechnung von Ereignissen korrigiert
* Fix: Mehr Abstand beim Speichern Button im Farbkreis
* Fix: EIS8 bei KNX hat nur eine 0 gesendet
* Fix: Probleme mit IPS_RunScriptEx/IPS_RunScriptWaitEx über JSON-RPC gelöst
* Fix: IMAP/POP3 Mails werden korrekt sortiert
* Fix: Probleme mit Schrittweiten < 1 behoben
* Fix: Bei RGB Slidern kann nun auch die Prozentzahl geklickt werden
* Fix: Konsole stürzte ab, wenn Übergeordnete Instanz auf sich selbst gerichtet wurde
* Fix: Übergeordnete Instanz kann nicht mehr auf sich selbst gerichtet werden
* Fix: TextBox zeigte fälschlicherweise HTML an
* Fix: SMTP funktioniert nun korrekt mit iCloud/MobileMe
* Fix: EnOcean Thermokon Instanz kann korrekt konfiguriert werden
* Fix: Problem beim Löschen vieler Objekte
* Fix: Problem beim Löschen von Objekte, wenn Unterobjekte mit ausgewählt wurden
* Fix: Countdown im Skripteditor durch absoluten Zeitpunkt ersetzt.
* Fix: Z-Wave - Problem mit fehlerhaften Fibaro FGR222 umgangen
* Fix: Z-Wave - Probleme mit SENSOR_ALARM Klasse gelöst
* Fix: Z-Wave - Probleme mit SENSOR_MULTILEVEL Klasse gelöst
* Fix: Z-Wave - Probleme mit ALARM Klasse gelöst
* Fix: Z-Wave - Probleme mit Batterieanzeige korrigiert
* Fix: Skalierungsprobleme bei sehr kleinen Graphen gelöst
* Fix: Konfiguratoren können nun korrekt per Tastatur/Pfeiltasten bedient werden (#IPSD-61,IPSD-64)
* Fix: ArtNet sendet eine korrekte Versionsnummer
* Fix: Z-Wave Philio 4-1 Sensor erstellt die Variable nun wirklich korrekt
* Fix: Ersetzen in Dateien funktioniert korrekt
* Fix: EIS5 wird korrekt abgerundet
* Fix: Alle Gruppen Funktionen bei KNX können korrekt ausgewählt werden
* Fix: WebFront zeigte keine Fehlermeldung, wenn Aktionsskript einen Fehler geworfen hat
* Fix: Probleme beim Erstellen von Instanzen mit KNX Konfigurator behoben
* Fix: Skin Manager wird auf dem korrekten Port geöffnet
* Fix: WebFront Editor konnte Kategorie nicht auswählen, wenn diese zwischenzeitlich ungültig geworden ist
* Fix: AccessViolation beim Laden der Geräte im WebFrontConfigurator, wenn Token/Lizenz unpassend war
* Fix: EIS6 wird korrekt gesendet/interpretiert
* Fix: xComfort 12-Kanalaktor wird korrekt unterstützt
* Fix: Stop Kanal für KNX Shutter wird korrekt gesetzt
* Fix: Automatischer Reconnect für Dashboard reagiert nun auch /form Parameter
* Fix: IPS_SetScriptTimer kann wieder korrekt mit Werten >=24h umgehen
* Fix: Sekündliche Fehlermeldung, wenn ArtNet Gateway nicht verbunden war
* Fix: Legende kann nun über den WFC aktiviert/deaktiviert werden
* Fix: Konfiguration von monatlichen Ereignissen korrigiert
* Fix: Z-Wave: Inclusion/Exclusion sollte nun mit Razberry und Z-Wave.ME Stick korrekt funktionieren.
* Fix: StartTime in IPS_GetScriptThread war falsch
* Fix: Problem mit Sommerzeitumstellung korrigiert
* Fix: FS10 kann wieder konfiguriert werden
* Fix: Problem mit OZW Variablenprofilen gelöst
* Fix: Fehler bei ausgelösten Ereignisse, welche Werte vom falschen Variablentyp enthielten
* Fix: Skriptzuweisungen in Instanzkonfigurationen können entfernt werden
* Fix: Bei alten KNX Instanzen konnten zusätzliche GAs nicht gespeichert werden
* Fix: Profilmanager hatte verschobene Buttons
* Fix: ModBus: Int64 sollte nun korrekt kodiert werden
* Fix: Problem mit WAC_* Kompatibilitätsfunktionen
* Fix: Alte iOS App sollte wieder korrekt funktionieren
* Fix: Profilnamen werden korrekt auf Groß/Kleinschreibung geprüft
## V2.7->V3.0 (Q3/2013)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v27-v30-q3-2013/
### Wesentliche Änderungen
**IP-Symcon WebFront inkl. Editor**
Eine besondere neue Funktion ist der WYSIWYG Editor, über den die Einrichtung von komplexen Visualisierungen zu einem Kinderspiel wird. Natürlich ist euer altes WebFront aus IP-Symcon 2.x vollständig dazu kompatibel und kann direkt mit dem neuen Editor bearbeitet werden. Zusätzlich kann das neue WebFront über Skins z.B. farblich umgestaltet werden, welche entweder direkt bei uns im Forum heruntergeladen, oder bei entsprechendem Know-How selbst erstellt werden können. Das neue WebFront bietet außerdem noch Unterstützung für MJPEG-Streams, Audio-Benachrichtigungen, komfortable Konfiguration von zyklischen Ereignissen und einen neuen Farbkreis für RGB-Geräte. Die vollständige Liste mit allen Änderungen ist unterhalb der Migration zu finden.
**Neue unterstütze Geräte und Funktionen**
Im Bereich DMX unterstützt IP-Symcon nun sämtliche Art-Net-Controller mit verschiedenen Universen.
Im Bereich LCN werden die neuen LCN-Module unterstützt, welche bis zu 12 Variablen zur Verfügung stellen.
**Web-Schnittstelle (JSON-RPC)**
Die neue, offzielle JSON-RPC Schnittstelle erlaubt eine einfache Anbindung von Dritthersteller-Software, eigenen mobilen Anwendungen und der einfachen Kommunikation zwischen IP-Symcon Servern. Wer Daten zwischen mehreren IP-Symcon Servern austauschen wollte, kann dies jetzt mit wenigen Handgriffen tun. Die Dokumentation liefert dazu unter dem Punkt [Datenaustausch](https://www.symcon.de/de/llms/developer/data-exchange.md) einige Beispiele.
*(Um den WebFront-Editor nutzen zu können ist mindestens eine IP-Symcon Professional Version nötig. Alle anderen Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 3.0 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) )*
### Video zum WebFront-Editor
[Video](https://www.youtube.com/watch?v=523XW-o7d1k)
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.7 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 3.0 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Benutzerdefinierte Icons werden in IP-Symcon 3.0 über WebFront-Skins eingebunden. ([Dokumentation](https://community.symcon.de/t/neues-webfront-mit-webfront-editor-und-skins/31684) )
* Die Funktion [AC_GetLoggedValues](https://www.symcon.de/de/llms/modules/archive-control.md) ist nun offiziell dokumentiert, hat sich jedoch leicht in der Funktionsweise geändert. Sofern genutzt, kann das in der Dokumentation zur Verfügung gestellt Mini-Skript die alte Funktionsweise vollständig wiederherstellen.
* Der Typ von eigenen Profilen muss für das neue WebFront zum Variablentyp passen. Sofern eigene Profile nur über die Konsole erstellt wurden, ist dieser Hinweis nicht relevant.
* Wenn im WebFront Instanzen unterhalb von Instanzen angezeigt werden sollen, dann muss in jedem Konfigurator die Option "Verschachtelung" aktiviert werden.
* Um das On-Screen-Keyboard im WebFront unter Windows nutzen zu können, kann folgende Extension für Google Chrome installiert werden: Virtual Keyboard
* Für die Graphen im Dashboard gibt es eine Änderung in der Nutzungsweise: [Forum](https://community.symcon.de/t/graphen-im-dashboard-unter-ip-symcon-3-0/31797)
### Liste der Änderungen
* Komplett für HTML5-Browser neu entwickelt
* Der integrierte WebFront-Editor ersetzt den unbequemen WebFront-Konfigurator
* Eigene Skins können mit den Skin-Manager erstellt oder fertige direkt aus der Community heruntergeladen werden!
* RGB-Slider haben nun zusätzlich einen HSL-Farbkreis
* Audio-Notificatations über [WFC_AudioNotification](https://www.symcon.de/de/llms/modules/webfront-visualization.md)
* MJPEG-Stream können über das neuen Stream-Mediaobjekt angezeigt werden. [Medien](https://www.symcon.de/de/llms/concepts.md)
* Graphen-Rohdaten können direkt nach CSV exportieren werden
* Graphen im WebFront können für jede Variable deaktiviert werden (trotz aktiviertem Logging)
* Alle Icons und Grafiken sind für Retina-Displays optimiert.
* Das WebFront sieht nun auf dem iPad3+ und hochauflösenden Display einfach toll aus!
* Lädt schneller - besonders bei langsamen Internetleitungen. Die schicke Ladeanimation versüßt die Wartezeit
* Natives Scrolling auf iOS & Android Geräten
* Zusatz Scrollleisten können für ältere Touchscreens alternativ per Skin aktiviert werden ([Download](https://github.com/symcon/SkinScrollbar) )
* Das Editieren von Text-Boxen nutzt nun das integrierte OSK des Touch-Geräts
* DWD-Wetter benötigt keinen Benutzernamen/Passwort mehr
* Inhaltswechsler kommt nun auch mit sehr vielen Objekten zurecht (z.B. Webcam Archiv Funktion)
* Ereignisse werden nun direkt untereinander inklusive Konfiguration und nächster Ausführung angezeigt
* Die neue JSON-RPC API arbeitet direkt im WebServer ohne kostbare PHP-Threads zu belegen
* Über die neue JSON-RPC API können Sie mit wenigen Handgriffen Daten austauschen. [Datenaustausch](https://www.symcon.de/de/llms/developer/data-exchange.md)
* Für alle Technikbegeisterten: Das neue WebFront ist mit Google Dart erstellt. Kein Dojo mehr.
* MIN/MAX Anzeige bei Graphen
* Farbauswahl mit persönlich anpassbarem Farbspeicher!
* Verbesserungen beim dynamischen Skalieren von Graphen
* Skin-Editor hat Option zum Einfärben der Icons
* Skin-Icons können in der Konsole ausgewählt werden
* Medien (Streams) können editiert werden
* Es wird ein Ladekringel beim Klick auf ein Info-Widget angezeigt (Wenn ein OnKlick Skript definiert wurde) (#WEBFRONT-19)
* Wenn mehrere Popups per WFC_SendPop geöffnet werden, gibt es einen "Alle Popups schließen" Button (#WEBFRONT-2)
* Unterstützung für Datenpunkte vom neuen HomeMatic Stellantrieb
**Neue Systeme/Module**
* Neu: DMX Splitter unterstützt nun ArtNet (Unicast)
* Neu: LCN untersützt die neuen Module mit 12 Variablen
* Neu: Native JSON-RPC Schnittstelle
**Neue Funktionen**
* Neu: GZIP-Komprimierung für den WebServer
* Neu: X-Forwarded-For wird im WebServer ausgewertet und an PHP weitergeleitet
* Neu: Netzwerkbibliothek aktualisiert. Behebt hoffentlich Probleme mit POP3/IMAP
* Neu: Silent-Eigenschaft für TIPSWebBrowser um alle Javascript Fehler und Popups zu unterdrücken
## V2.6->V2.7 (Q1/2013)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v26-v27-q1-2013/
### Wesentliche Änderungen
__Jetzt direkt auf dem Smartphone oder Tablet benachrichtigen lassen!__
Mit der Einführung von IP-Symcon 2.7 und der Apps in der Version 2.0 gibt es endlich die Möglichkeit direkt Push-Benachrichtigungen an Ihre Smartphones und Tablets zu versenden. Lassen Sie sich zum Beispiel bei einer fertigen Waschmaschine, beim Klingen der Tür oder bei Alarmzuständen sofort informieren. Viele weitere Ideen finden Sie auch in unserem [Community-Forum](https://community.symcon.de/)
__Neue unterstütze Geräte und Funktionen__
Zur besseren und komfortableren Einrichtung haben wir die Konfiguratoren überarbeitet, sodass diese die volle Größe der Konsole nutzen können. Dadurch haben Sie bei vielen vorhandenen Geräten oder Adressen einen vollständigen Überblick. Zusätzlich haben wir einen Konfigurator für OneWire integriert und den KNX-Konfigurator so erweitert, dass er die Rückmeldeadresse direkt in IP-Symcon importiert.
Ein neues Modul ist für die TermoJET und LevelJET Systeme der Fa. ProJet verfügbar. Die Geräte können in das IPS-868 Funksystem über ein neues Funkgateway (JKM-868) angebunden werden. Dadurch lassen sich die empfangenen Temperaturen oder Füllstände in IP-Symcon auswerten. Alle Geräte des IPS-868 Funksystems können über den [ProJET Shop](http://www.solajet.de/index.php?k=27) erworben werden.
Im Bereich Z-Wave haben wir die Klasse MULTI_INSTANCE komplett überarbeitet, sodass die neuen Geräte von Fibaro, wie z.B. der 2-fach Aktor oder der vielseitige Binärsensor einfach und mit allen Funktionen genutzt werden können.
Ferner wurden wieder neue Geräte unseres Vertriebspartners ALLNET in IP-Symcon integriert:
* ALL3073WLAN - Netzwerksteckdose zum Schalten über WLAN (16A)
* ALL3075V2 - Netzwerksteckdose zum Schalten über LAN (8A)
* ALL4075 - Netzwerk / WLAN Relais 4-fach 230V/10A
* ALL4076 - IP-Steckdosenleiste 6-fach, schaltbar per Netzwerk (6*10A)
* ALL3418V2 - LAN / WLAN IP Thermometer (ALL3418v2)
_(Alle Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 2.7 updaten. Bitte beachten Sie, dass das Nutzen der Push-Benachrichtigungen eine Verbindung zum Internet und eine gültige Subskription voraussetzt. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.6 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.7 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Falls Sie von Z-Wave einen der Mehrfachaktoren (z.B. Fibaro Dual Switch) verwenden, so müssen Sie die Untergeräte über eigene Instanzen einbinden, da die Unterstützung entsprechend verbessert wurde. Beachten Sie auch, dass die ZW_SwitchModeEx Funktion entfernt wurde, und jedes Untergerät korrekt per [ZW_SwitchMode](https://www.symcon.de/de/llms/modules/z-wave.md) angesprochen wird.
### Liste der Änderungen
__Jetzt direkt in den Mobilanwendungen benachrichtigen lassen!__
* Neu: Push-Benachrichtigungen (Über Kern-Instanzen -> Notification) (Dokumentation [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md))
* Neu: WFC_PushNotification($wfcid, $title, $message, $icon, $targetID); (Dokumentation: [WFC_PushNotification](https://www.symcon.de/de/llms/modules/webfront-visualization.md))
__Neue Systeme/Module__
* Neu: DMX Module komplett erneuert. Es werden intern die nativen IP-Symcon I/O Module genutzt
* Neu: Neue ALLNET Geräte werden unterstützt (ALL3073 WLAN, ALL3075V2, ALL3418V2, ALL4075, ALL4076)
* Neu: KNX-Konfigurator importiert zusätzliche "Empfangs-Gruppenadressen" aus der ESF-Datei
* Neu: OneWire besitzt einen komfortablen Konfigurator. (Dies ersetzt die Suche innerhalb der Instanz!)
* Neu: Z-Wave unterstützt jetzt korrekt Mehrfachgeräte mit der MULTI_INSTANCE Klasse
* Neu: Module für das IPS-868 System (IPS-JKM-868 ThermoJET-, LevelJET-Transmitter)
* Neu: WebFront Konfigurator umgestaltet. Gruppiert. Es gibt jeweils mehr Platz.
* Neu: Alle Konfiguratoren nutzen die komplette Bildschirmgröße
__Neue Funktionen__
* Neu: Fehlerbehandlung der I/Os wird zentral vom Event Control übernommen
* Neu: WWWReader kann deaktiviert werden. (Praktisch für Systeme wie digitalStrom/OZW)
* Neu: Proxy-Support ist nun IPS-Systemweit einheitlich. Übernimmt Konfiguration aus dem LiveUpdate.
* Neu: Module nutzen nun zu 90% die neuen IPS_SetProperty Befehle zur konfiguration. (Dokumentation: [IPS_SetProperty](https://www.symcon.de/de/llms/functions/management-instances.md))
* Neu: Warnung, wenn neues Dashboard-Formular mindestens 10% kleiner ist, als das Original. (Workaround für Teilweise fehlerhafte Uploads)
* Neu: Alte, seit 2010 abgekündigte MBT_* Funktionen entfernt
* Neu: Sortierung der Spalten im ArchiveControl
* Neu: Velleman Board liest die AnalogInputs direkt in Variablen ein
* Neu: M-Bus unterstützt nun weitere Spezialcodierungen für Zählerüberlauf/Zählerunterlauf
* Neu: Unterstützung für 2-fach Bidi-Aktoren von Eltako. (Neue Option im Eltako Switch Modul)
* Neu: Modul für Thermokon Thanos (EnOcean)
__Behobene Fehler__
* Fix: Timeout bei Abfrage einiger M-Bus Geräte
* Fix: WebFront Ladeanimation bleibt hängen
* Fix: Überprüfung der maximalen WebFront Konfigurationen funktioniert nun korrekt
* Fix: Zeitüberschreitungsfehler bei KNX Sendeanfrage
* Fix: Potenzieller Division durch Null bei der Graphengenerierung
* Fix: AccessViolation beim Erstellen des Objektbaumes über Ansicht hinzufügen
* Fix: AccessViolation beim Hochladen von Dashboard-Formularen
* Fix: ALLNET3691 Phasen 4-6 werden korrekt angezeigt
* Fix: Potenzielle Sicherheitslücke im WebFront Retro/Retro-Mobile
* Fix: Cutter mit #0
* Fix: Zeilenumbrüche werden in der Objektbeschreibung korrekt angezeigt
* Fix: KNX: Fehler beim Empfangen von Rückmeldungen beim Siemens N146/02 IP-Gateway
## V2.5->V2.6 (Q3/2012)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v25-v26-q3-2012/
### Wesentliche Änderungen
__IP-Symcon startet, lädt und agiert schneller__
In der Version 2.6 haben wir besonders die Performance verbessert. Die Startzeit des Dienstes konnte minimiert werden, so dass auch bei großen Projekten ein Aktualisieren der Software nur wenige Minuten in Anspruch nimmt. Da die Konsole zusätzlich nahezu komplett überarbeitet wurde, sind auch dort Start- und Ladezeiten minimal. Das WebFront wurde optimiert und den neusten Sicherheitsanforderungen der aktuellen Browser angepasst. Durch die neuen Verbesserungen wird außerdem die CPU weniger belastet, was sich besonders auf älteren Systemen schnell bemerkbar macht. Auch beim WebFront Konfigurator haben wir auf Feedback reagiert und dessen Bedienung verbessert.
__Neue Hardware-Systeme__
Darüber hinaus haben wir neue Systeme und Module integriert. Problemlos können nun in IP-Symcon u.a. das gesamte digitalStrom- und das innovative Siemens-Synco™-living-System eingebunden werden, wodurch unsere breite Palette an unterstützter Hardware perfekt ergänzt wurde. Das macht unsere Hausautomationssoftware noch flexibeler, als sie bereits ist.
__Noch zuverlässiger__
Wir haben zusätzliche die Version unserer integrierten Skriptsprache PHP aktualisiert, um auch in IP-Symcon die neusten Sicherheitspatches, die die PHP-Community veröffentlicht hat, zu nutzen. Wir haben weitere gewünschte Optimierungen vorgenommen, damit IP-Symcon noch besser und leistungsfähiger sein kann. Die vollständige Liste dazu kann unterhalb des Kapitels Migration eingesehen werden.
_(Alle Funktionen sind in der Basic, Professional und Unlimited Version von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die Version 2.6 updaten. ([Shop](https://www.symcon.de/de/shop/) ))_
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.5 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.6 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Sofern der IPSLogger von Brownson verwendet wird, ist ein Update dieser Komponente für den fehlerfreien Betrieb der 2.6 zwingend erforderlich. Bei etwaigen Problemen mit Abstürzen empfiehlt es sich den IPSLogger temporär zu deaktivieren, um dessen Funktion als Fehlerquelle auszuschließen.
* Falls auf Ihrem Windows Server 2008 R2 die Installation des VCRedist 2008 in einer Endlosschleife feststecken sollte, überprüfen Sie bitte, ob Ihr System die korrekte Version vom VCRedist 2008 installiert. Es muss die Version ohne SP1 installiert werden, da nur diese mit PHP korrekt funktioniert!
* Falls Sie die COM/.NET Wrapper Funktionen von PHP nutzen, so ist mit Version 2.6 #2554 (und damit verbunden PHP 5.4.8) eine manuelle Installation der Extension erforderlich, da PHP sich entschieden hat diese auszulagern.
### Liste der Änderungen
__Schneller und besser__
* Neu: Performance verbessert, so dass die CPU weniger belastet wird. IP-Symcon sollte sich auf Low-End Systemen wesentlich agiler anfühlen.
* Neu: Performance verbessert, so dass IP-Symcon viel schneller startet. (Bei sehr vielen Objekten reduziert sich die Ladezeit auf <1% der ursprünglichen Ladezeit)
* Neu: Neues Format zum Speichern der Settings, welches wesentlicher schneller lädt und die sporadisch auftretenden Probleme mit der "settings.xml" lösen soll.
* Neu: Konsole wurde komplett überarbeitet. Sie lädt schneller und reagiert besser.
* Neu: WebFront Konfigurator wurde optimiert
* Neu: Upgrade auf die aktuellste PHP-Version 5.4.4
__Neue Systeme/Module__
* Neu: Module für digitalStrom (Firmware 1.4.0 oder neuer erforderlich)
* Neu: Module für Siemens OZW (OZW Firmware 4.0.4 erforderlich.
* Neu: Z-Wave Klasse: COMMAND_CLASS_SENSOR_ALARM
* Neu: Z-Wave Fibaro Dual Switch
* Neu: Z-Wave Alarm Klasse unterstützt mehr Typen
* Neu: Modul für ALLNET 3691, 4500, 5000
__Neue Funktionen__
* Neu: Spezialoptionen können nun über die Tray-Anwendung eingestellt werden. (Siehe: [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md))
* Neu: Bessere Fehlermeldung bei Ausführungsfehlern von PHP-Code innerhalb von Ereignissen
* Neu: Restlaufzeit-Anzeige bei Ereignissen innerhalb vom Skript-Seitenmenü
* Neu: Alle hauptsächlich genutzten $_IPS[*] [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) werden bei STRG+SPACE angezeigt.
* Neu: SerialPort: DTR/RTS FlowControl Funktionen
* Neu: Das Deaktivieren von Autoscroll gibt einen Hinweis und deaktiviert das Limit der Einträge.
* Neu: PHP Memory-Limit ist jetzt default auf 32MB. Maximal jedoch 64MB. (Siehe php.ini)
* Neu: Maximale PHP-Threadanzahl staffelt sich je nach installiertem RAM (max 40 bei 4GB, 30 bei 3GB, 20 bei 2GB, 10 bei weniger).
* Neu: PHP-Skript Queue meldet sich schon ab zehn Skripten in der Schleife.
__Behobene Fehler__
* Fix: Benutze Standardaktion kann wieder korrekt genutzt werden
* Fix: WebFront: Timing-Problem bei Ausführung vieler gleichzeitiger IPS_SetHidden Befehle behoben
* Fix: WebFront: Lade-Problem mit aktueller Chrome Version bei aktiviertem SSL und externem Zugriff
* Fix: VCRedist2008 wurde auf dem Server2008 R2 inkorrekt als installiert erkannt.
* Fix: Neue $\_IPS Schreibweise in den Ereignis-Templates wird nun genutzt.
* Fix: LCN: Sonderzeichen bei Modulnamen wird korrekt gefiltert.
* Fix: Siemens S5: Verbindungsprobleme gelöst
* Fix: Eaton xComfort: Signalstärke in Verbindung mit dem ECI LAN Gateway
* Fix: Eaton Analogeingang: Fehler beim Auswerten von Prozentwerten
* Fix: Fehler, dass unter Umständen $IPS_* nicht korrekt definiert war
* Fix: WebFront Startkategorie wurden u.U. nicht korrekt übernommen
* Fix: Reihenfolge (Objekt-Position) im ContentChanger wird korrekt ausgewertet.
* Fix: LCN: R2 Regler wurde nicht korrekt ausgelesen.
* Fix: Timing Problem/Umschaltzeiten für LCN Shutter
* Fix: Sporadisch auftretendes Floating-Point Problem bei SetValue
* Fix: Zu viele Datensätze bei einer AC_* Abfrage konnten das System negativ beeinträchtigen. Limitation auf 10000 Datensätze pro Abfrage. (Siehe: [Limitationen](https://www.symcon.de/de/llms/developer/limitations.md))
* Fix: Unendlich viele Fehlermeldungen (z.B. korrupte for-Schleife) konnten den kompletten RAM des Systems aufbrauchen.
* Fix: Widgets konnten in SplitPanes platziert werden.
* Fix: False-Positives bei [Sys_Ping](https://www.symcon.de/de/llms/modules/system-information.md)
* Fix: Problematische Werte bei [Sys_GetCPUInfo](https://www.symcon.de/de/llms/modules/system-information.md)
* Fix: Link unter Link konnte fälschlicherweise erstellt werden.
* Fix: Alle FHZ Module (FS20, HMS, FHT, KS300) werfen nun direkt Fehlermeldungen, wenn die I/O Instanz nicht verfügbar ist
* Fix: OSK übernimmt Zeilensprünge nicht.
__Keine Abwärtskompatibilität für folgende Änderungen:__
* Geändert: [IPS_GetFunctionList](https://www.symcon.de/de/llms/functions/program-information.md) (Gibt nur noch den Namen zurück. Bitte mit [IPS_GetFunction](https://www.symcon.de/de/llms/functions/program-information.md) kombinieren.)
* Entfernt: FHZ_GetQueue, FHZ_GetFHTQueue
* Entfernt: IPS_SendMediaEventEx entfernt
__Vollständige Abwärtskompatibilität für folgende Änderungen:__
* Neu: [IPS_FunctionExists](https://www.symcon.de/de/llms/functions/program-information.md), [IPS_GetFunction](https://www.symcon.de/de/llms/functions/program-information.md) hinzugefügt
* Neu: [IPS_SetLinkChildID](https://www.symcon.de/de/llms/developer/compatibility-functions.md) wurde zu [IPS_SetLinkTargetID](https://www.symcon.de/de/llms/functions/management-links.md) umbenannt. [IPS_SetLinkChildID](https://www.symcon.de/de/llms/developer/compatibility-functions.md) wird zur 3.0 entfernt.
* Neu: [IPS_GetLink](https://www.symcon.de/de/llms/functions/management-links.md) liefert das Feld TargetID, welches identisch zu LinkChildID ist. LinkChildID wird zur 3.0 entfernt.
* Neu: [IPS_HasInstanceParent](https://www.symcon.de/de/llms/developer/compatibility-functions.md), [IPS_GetInstanceParentID](https://www.symcon.de/de/llms/developer/compatibility-functions.md) veraltet. Kann direkt über [IPS_GetInstance](https://www.symcon.de/de/llms/functions/management-instances.md) und ConnectionID abgefragt werden.
* Neu: [IPS_HasInstanceChildren](https://www.symcon.de/de/llms/developer/compatibility-functions.md), [IPS_GetInstanceChildrenIDs](https://www.symcon.de/de/llms/developer/compatibility-functions.md) veraltet. Kann direkt über [IPS_GetInstance](https://www.symcon.de/de/llms/functions/management-instances.md) und ConnectionID abgefragt werden. Ein Beispiel dazu befindet sich auf [IPS_GetInstanceChildrenIDs](https://www.symcon.de/de/llms/developer/compatibility-functions.md)
* Neu: LCN_GetStatus wird nur noch emuliert. Auf GetInstance($id)['InstanceStatus'] ausweichen.
__Folgende Konfigurationsfunktionen werden nur noch emuliert:__
CSCK_SetOpen, CSCK_SetHost, CSCK_SetPort, CSCK_GetOpen, CSCK_GetHost, CSCK_GetPort, SSCK_SetOpen, SSCK_GetOpen, SSCK_SetPort, SSCK_GetPort
## V2.4->V2.5 (Q4/2011)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v24-v25-q4-2011/
### Wesentliche Änderungen
Mit IP-Symcon 2.5 wurde auf die neue PHP 5.4 Version aktualisiert, die viele Verbesserungen bei Skripten und die Sicherheit dieser mitbringt. Desweiteren wurden neue Funktionen für eine Vielzahl von Hardware-Systemen hinzugefügt und bekannte Fehler beseitigt. Ein Auszug der neuen Funktionen:
* Unterstützung der neuen bidirektionalen EnOcean TCM310 Geräte mit dem EnOcean Serial Protocol 3.
* Unterstützung der neuen bidirektionalen EnOcean Aktoren von Eltako
* Unterstützung des neuen Eaton Xcomfort Thermostats
* Unterstützung für das neue Xcomfort LAN-Gateway (ECI) und deren spezielle DPL Datenpunktliste
* Unterstützung vom OneWire Baustein DS2406
* Komfortables LCN Modul für Rollladen/Jalousien bei Ansteuerung über Ausgänge/Relais
* Unterstützung für das neue LAN-868 Gateway für das IPS Funksystem
* Unterstützung für neue Z-Wave Klassen
* COMMAND\_CLASS\_CLOCK
* COMMAND\_CLASS\_PROTECTION
Im Kern wurden die Importier- und Kompatibilitätsfunktionen aus IP-Symcon 1.x entfernt, so dass viele Funktionen schneller und effizienter arbeiten können. Desweiteren wurde eine neue Funktion ([IPS_SetIdent](https://www.symcon.de/de/llms/functions/management-objects.md)) geschaffen, mit der Variablen eindeutig per Name identifiziert werden können. Dadurch können Skripte portabel erstellt und mit Nutzern besser ausgetauscht werden. Ein Beispiel dafür ist das Skript zum Auslesen von Miele@Home Geräten ([Link](https://community.symcon.de/t/miele-home-einbinden-xgw2000/27120) ).
Alle Funktionen sind in der Basic, Professional und Unlimited Edition von IP-Symcon verfügbar und können mit einer gültigen Subskription bezogen werden. Ein spezielles “Upgrade” muss nicht erworben werden. Sofern Ihre Subskription abgelaufen ist, können Sie diese einfach erneuern und direkt ohne zusätzliche Mehrkosten auf die 2.5 updaten. ([Shop](https://www.symcon.de/de/shop/) )
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.4 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.5 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Die "auto\_prepend\_file"-Funktion in der "php.ini" wird von IP-Symcon intern genutzt. Falls eine PHP-Datei automatisch geladen werden soll, so muss diese im Skript Ordner liegen und "__autoload.php" heißen.
* Die Extension "php_http.dll" ist in PHP 5.4 nicht mehr verfügbar. Falls diese genutzt wurde bitte auf die cURL-Extension ausweichen.
* Durch eine Inkompatibilität von PHP 5.4 und OpenSSL 1.0 können über die "file\_get\_contents" (u.ä.) Funktion keine Anfragen per SSL gestellt werden. Die IP-Symcon interne Funktion [Sys_GetURLContent](https://www.symcon.de/de/llms/modules/system-information.md) bietet dort passenden Ersatz.
* Einige spezielle Funktionen zum Handling von StatusVariablen werden zur 3.0 entfernt werden. Sobald Sie auf 2.5 aktualisiert haben, können Sie dieses Skript zur Überprüfung nutzen: [IP-Symcon 2.5 – Hilfsskripte](https://community.symcon.de/t/ip-symcon-2-5-2-6-hilfsskripte/27060)
* Falls Skripte im "webfront/user"-Ordner erstellt und genutzt wurden, müssen in PHP 5.4 alle Parameter per "$_GET[...]" abgefragt werden.
* Kompatibilitätsfunktionen aus alten IP-Symcon 1.0 Zeiten und die Kompatibilität mit Namen statt ID bei alten Funktionen wurde entfernt. Für alle die mit IP-Symcon 2.x angefangen haben, hat dies keine Bedeutung.
### Liste der Änderungen
Neu: PHP 5.4
Neu: PHP Extensions werden per LiveUpdate **aktualisiert** (nur offizielle von PHP. Kein PECL!).
Neu: EnOcean Module können mit dem neuen ESP3 Protokoll umgehen.
Neu: “No configuration” Fehlermeldung verbessert
Neu: Modbus TCP noch robuster gemacht
Neu: xComfort Thermostat
Neu: LCN Shutter Modul
Neu: Neuer Lichtsensor (LCN-LSA) wird unterstützt.
Neu: Typ kann für T, R1, R2 gewählt werden.
Neu: BiDi Auswertung für Eltako Schalter/Dimmer
Neu: Eltako Dimmer kann direkt angesteuert werden. (Muss erneut angelernt werden!)
Neu: xComfort Thermostat kann Variable als Ist-Temperatur verwenden.
Neu: Ports für Wired/RF/Eventkanal können beim HomeMatic Socket eingestellt werden.
Neu: OneWire DS2406
Neu: Z-Wave Rückkanal bei Fibaro Geräten (Über BASIC Kommando Klasse)
Neu: LAN Version vom USBT-868 wird komplett unterstützt.
Neu: $IPS\_* ist nun per $\_IPS[*] verfügbar-Neu: RegisterGlobals ist off. Das bedeutet, dass alle Variablen vom WebServer nur noch per $_GET abrufbar sind. (PHP5.4 erfordert dies!)
Neu: OpenSSL 1.0 wird genutzt. Löst Probleme mit SSL-Zugriff von Mobilgeräten
Neu: Importer für V1 Settings wurden entfernt.
Neu: IPS\_SetValue\*/IPS\_GetValue\*, IPS\_SetScriptTimer, IPS\_GetScriptTimer, IPS_RunScript* akzeptieren keine Strings mehr (V1 Kompatibilität).
Neu: IPS\_GetVariableID, IPS\_GetScriptID entfernt (V1 Kompatibilität). IPS\_GetVariableIDByName/IPS\_GetScriptIDByName als Ersatz nutzen
Neu: IPS\_StatusVariableExists, IPS\_GetStatusVariable, IPS\_GetStatusVariableID, entfernt. Ersatz: IPS\_GetObjectIDByIdent
Neu: IPS\_GetStatusVariableIdents entfernt. Ersatz: IPS\_GetChildrenIDs mit IPS_GetObject (ObjectIdent)
Neu: IPS_SetStatusVariableUseAction entfernt. Ersatz: Noch keiner.
Neu: IPS\_SetIdent. Erlaubt einen internen, auf Kategorieebene eindeutigen, Namen zu vergeben, der dann wieder über IPS\_GetObjectIDByIdent abgefragt werden kann. Dieses Feld kann für universelle Skripte hervorragend genutzt werden, um in Skripten auf Variablen per Name/Identifikator zuzugreifen und dem User trotzdem Änderungen an den Namen zu erlauben.
Neu: Links können über das Kontextmenü schneller erstellt werden. Objekt verlinken anklicken. Ziel auswählen. Fertig. (Die ursprüngliche Idee mit den Standard-Windows-Shortscuts erwies sich als viel zu kompliziert in der Verwendung.)
Neu: Sortieren nach Werten in der Listenansicht möglich
Neu: Unterstützung für neue Z-Wave Klassen
* COMMAND\_CLASS\_CLOCK
* COMMAND\_CLASS\_PROTECTION
Fix: W&T: Teilweise waren Kanäle nicht auslesbar.
Fix: IPS_Semaphore* Fix. Danke an tgusi74 fürs finden!
Fix: HomeMatic Wired Komponenten wurden nicht korrekt automatisch erstellt.
Fix: ALL3690: Auslesen der Summen wartet nun max. 5min auf die Berechnung
Fix: Konsole konnte per Remote nicht aktualisiert werden, wenn auf dem Server (Win7) die Konsole gestartet war.
Fix: Strings wurden in AC_GetLoggedValues nicht zurückgegeben.
Fix: Werte bei % Profilen wurden bei “MinValue < 0″ falsch berechnet
Fix: LCN Modul Konfigurator zeigte TVar/RVars Instanzen nicht korrekt an
Fix: Profil beim KS300 korrigiert
Fix: Installation unter Windows 7 (x86) ist nun im Programme Ordner möglich
Fix: GIF Bilder sollten Dashboard nicht mehr zum Absturz bringen.
Fix: AssertionViolation bei TeamViewer 6 QuickConnect behoben
Fix: FTDI Instanz wurde als fehlerhaft markiert, wenn diese deaktiviert war, aber man schalten wollte.
Fix: Werte bei Boolean Assoziationen können per PHP nur noch modifiziert werden.
Fix: IP-Symcon stürzte ab, wenn der media Ordner nicht existierte.
Fix: Sortieren nach Wert in Listenansicht funktionierte nicht.
Fix: Xcomfort Feuchtigkeit wurde im Sende AN/AUS Modus nicht empfangen.
Fix: DS2438 VAD/VDD wurden unter Umständen nicht korrekt gelesen.
Fix: GetValue versagte nach Aufruf externer Programme oder RRD-Execute.
Fix: LCN Limit auf 5 Telegramme/Sekunde (PCHK 2.1 erfordert dies)
Fix: DS18S20/DS18B20 – Startwert 85 wird nicht mehr gelesen.
Fix: LiveUpdate überprüft, ob CRT Bibliotheken installiert sind.
## V2.3->V2.4 (Q2/2011)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v23-v24-q2-2011/
### Wesentliche Änderungen
Der Fokus von IP-Symcon 2.4 liegt auf unserer bekannten und einzigartigen Visualisierung – dem WebFront. Die neuste Version hat ein neues, frisches Design und wurde "unter der Haube" nahezu komplett neu entwickelt. IP-Symcon verwendet die neusten Web-Technolgien und ist für die kommenden IP-Symcon-Versionen gerüstet. Wer es noch nicht live gesehen hat, kann jederzeit auf [www.webfront.info](https://www.webfront.info/) gehen und sich selbst ein Bild von dem Erscheinungsbild und den neuen Funktionen machen. Einzelne Highlights werden nachfolgend dargestellt.
__Mehrere WebFront-Konfigurationen*__
Wer kennst das Problem nicht? Es soll ein eigenes Panel für das Wohnzimmer, für den Service-Techniker oder für das Kind, welches nicht an allen Knöpfen und Reglern drehen soll, geben. Mit diesem Feature bietet IP-Symcon demnächst die volle Kontrolle für verschiedene Bereiche oder Gruppen. Die Auswahl der Konfiguration geschieht, sofern es mehrere gibt, über einen Login-Dialog. Alternativ kann für festgelegte IP-Adressen eine bestimme Konfiguration automatisch geladen werden. Ohne komplizierte Passwort-Eingabe. Die oft nachgefragte Funktion, im sicheren Heimnetzwerk keine Passwörter eingeben zu müssen, gibt es per Mausklick dazu.
**Farbige Zustände**
Die schaltbaren Rot/Grün-Buttons haben in IP-Symcon 2.4 ausgedient! Stattdessen können für alle Assoziationen benutzerdefinierte Farben angeben werden. IP-Symcon bedient sich dabei standardmäßig bei Grün für alle Geräte, die aktuell Strom verbrauchen, Rot für akute Warnmeldungen und Blau für Geräte, die sich gerade in Aktion befinden. Neutrale Zustände werden gräulich und dadurch unauffällig dargestellt. Selbstverständlich kann auch diese Funktionsweise völlig umgestaltet werden über die altbekannten Variablenprofile.
**Wecker-Funktion**
Alle verfügbaren zyklischen Ereignisse können nun direkt über das WebFront konfiguriert werden. Sei es der Wecker, die Gartenbewässerung oder die zeitabhängige Nachtabsenkung. In IP-Symcon 2.4 kann dies direkt über das Touch-Panel ohne Mehraufwand eingestellt werden.
**Automatische Aktualisierung aller Objekte im WebFront**
WFC_Reload? Nicht mehr notwendig. Alle Objekte im Objektbaum werden vollständig im WebFront aktualisiert. Sei es der Name, der Zustand, das Profil, das Icon oder einfach nur die Sichtbarkeit. Neue Objekte werden selbstverständlich auch hinzugefügt und gelöschte entsprechend entfernt.
__Volle Konfigurationsvielfalt für Unterebenen**__
Dank der neuen TabPanes (Menüleisten mit Reitern und Widgets) lassen sich bequem neue Unterebenen erstellen. In Kombination mit den SplitPanes (ehemals Container) können so eigene Menüleisten (TabPanes) links und rechts erstellt werden, die jeweils auf neue Kategorien, Inhaltwechsler oder Graphen verweisen können. Ein Beispiel dafür ist unsere dreistufige Gebäude-Navigation im SmartHome Paderborn.
**Balkendiagramme**
Für die Darstellung der Zähler-Graphen werden wir in IP-Symcon 2.4 eine Balkenansicht, statt der bekannten Kurven, verwenden, um den Verbrauch besser verständlich darzustellen.
\* Diese Funktion ist nur für IP-Symcon Professional und IP-Symcon Unlimited Kunden verfügbar. In der IP-Symcon Professional Version können maximal fünf (5) WebFront Konfiguratoren erstellt werden. IP-Symcon Unlimited beinhaltet, wie der Name schon sagt, keine Limitierung.
** Diese Funktion ist in IP-Symcon Basic nicht verfügbar.
### Screenshots





### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.3 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.4 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* _Der WebFront-Ordner wird automatisch von unbekannten und veralteten Dateien gereinigt. Alle eigenen Dateien, die nicht gelöscht werden sollen, müssen in den user-Unterordner verschoben werden!_
* Variablen ohne Profil werden angezeigt. Um alle Variablen ohne Profil auszublenden, kann das folgende Skript genutzt werden. ([Link](https://community.symcon.de/t/automatisches-verstecken-aller-im-alten-webfront-nicht-angezeigten-objekte/24741) )
* Das iFront ist auf Version 1.1 zu aktualisieren, um mit IP-Symcon 2.4 kompatibel zu sein.
* Die Module RRDTool ([Link](https://community.symcon.de/t/rrdtool-support-wird-fuer-die-2-4-eingestellt/24843) ) und XBee Device (bereit 2009 abgekündigt) wurden entfernt.
### Liste der Änderungen
Neu: iFront 1.1 wird unterstützt
Neu: Diverse neue Icons
Neu: Module (z.B. Chromoflex) aus IP-Symcon 2.3 können weiterverwendet werden.
Neu: Link auf Ereignis wird erlaubt.
Neu: Sortierung im WebFront Konfigurator / Archiv Modul
Neu: Auswerten von empfangenen Intensity-Werten bei FS20
Neu: Letzter Start von Ereignissen wird gespeichert.
Neu: Entpackvorgang beim LiveUpdate wird angezeigt.
Neu: Dynamische Skalierung bei Graphen jetzt zuschaltbar
Neu: XBee Device Modul entfernt (XBee Splitter als Ersatz verwenden)
Neu: WebFront-Konfigurator mit direkter Konfiguration für Retro, Retro Mobile und iFront
Neu: IPS/ProJet WDT-868 Modul
Neu: ~HM.Motion / ~Presence mit Icon
Neu: Profilliste wird sortiert.
Neu: .Background wird nicht mehr unterstützt.
Neu: Ausklappbare Boxen wurden endgültig entfernt.
Neu: . (Punkt) Notation im WebFront wird nicht mehr unterstützt.
Neu: retro.php/retromobile.php/ifront.php in index.php zusammengeführt
Neu: Parameter für dashboard.php überarbeitet (dynamicScaling=true/false)
Neu: IPS_SetVariableProfileAssociation wurde geändert (neuer Color Parameter).
Neu: Profilassoziationsanzahl auf maximal 32 beschränkt
Neu: KNX: Auslesen von Adressen vom Bus. (EIB_RequestStatus)
Neu: KNX: KNX Geräte können Leseanforderungen an IP-Symcon schicken.
Neu: KNX: FT1.2 kann über TCP/IP getunnelt werden.
Neu: KNX: Spezialmodul für Rollläden/Jalousien
Neu: Eltako FAFH60 (Temp-/Feuchtigkeitssensor)
Neu: Eltako FAH60 (Helligkeitssensor)
Neu: Spezial Eltako Modul für Schalter/Dimmer die Invertiert sind
Neu: ALL3418 wird unterstützt.
Neu: ALL3421 wird unterstützt.
Neu: ALL3690 funktioniert korrekt mit der neuen Firmware 2.0 (Diese wird auch erfordert!).
Neu: Z-Wave: Neue Kommandoklassen werden unterstützt.
* COMMAND\_CLASS\_METER
* COMMAND\_CLASS\_ALARM
* COMMAND\_CLASS\_LOCK
* COMMAND\_CLASS\_THERMOSTAT
Fix: “Jetzt aktualisieren” sperren, wenn Konfiguration geändert wurde (ImageGrabber/WWWReader)
Fix: DWD FTP-URL angepasst (outgoing2)
Fix: ThermoJet wird korrekt bei RF-Übertragung ausgewertet.
Fix: Fehlermeldung, wenn Name verändert wurde (ALL3690)
Fix: %f in Assoziationen wurde falsch ausgewertet
Fix: Assoziationen wurden nicht überall korrekt nach dem Muster Präfix %2B Name %2B Suffix dargestellt.
Fix: KNX Zeitüberschreitungen
Fix: OneWire DS2450, Timing-Problem beim Auslesen behoben
Fix: Flackern des Volume-Sliders im WebFront beim MediaPlayer Modul
Fix: Sys_GetMemoryInfo() Limit von 4GB behoben
## V2.2->V2.3 (Q3/2010)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v22-v23-q3-2010/
### Wesentliche Änderungen
HomeMatic CCU ohne TCPDump Erweiterung
* _Funktioniert auch mit dem LAN Adapter, wenn der BidCos Service installiert ist_.
Container-Modul für das WebFront (Horizontale/Vertikale Aufteilung)
* WebFront Container
Inhaltswechsler für das WebFront
* _Erlaubt die Anzeige von Media Dateien, TextBoxen, HTMLBoxen, die zeitlich umgeschaltet werden können in einem Reiter. (Besonders geeignet für WebCams, die durchgeschaltet werden wollen.) Alle Objekte müssen in einer Kategorie liegen und auf die muss dann die BaseID zeigen._
KNX Konfigurator
* _Bietet das einfache Importieren von Gruppenadressen aus dem ETS Export (*.esf). Über einen Klick werden automatisch alle Gruppenadressen importiert._
iPhone/iPad Verbesserungen für das WebFront
* Splashscreen, Icons fürs iPad, …
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.2 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.3 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Spezielle Änderungen sind nicht erforderlich.
* Falls Sie im WebFront die DWD Seite nutzen, müssen Sie einen Benutzernamen/Kennwort vom DWD anfordern und im Konfigurator angeben.
### Liste der Änderungen
Neu: Container-Modul für das WebFront (Horizontale/Vertikale Aufteilung)
Neu: MediaChanger für das WebFront
Neu: HomeMatic ohne TCPDump
Neu: FS20: Weitere Adresse können angegeben werden. (Gruppen-/Masteradressen)
Neu: ProJet Input Modul
Neu: MediaPlayer Funktion (WAC_SetPosition)
Fix: WebFront DWD (Es muss ein Benutzername/Passwort beim DWD angefordert werden! Dokumentation)
Fix: Mail Modul gibt als Zeitstempel 0 aus, wenn keine Mails vorhanden
Fix: Modbus TCP kann nun auch die DeviceID nutzen.
Fix: Diverse WebFront/iFront fixes
Fix: Assoziationen mit %f funktionieren jetzt korrekt.
Fix: Thermokon: Berechnen der Temperatur war unter Umständen fehlerhaft.
Fix: MediaPlayer: Soundkarten wurden falsch zugeordnet, wenn z.B. ein USB Soundkarte entfernt wurde.
Für Entwickler:
Neu: HTTP Post für PHP/WebServer ($\_POST, $\_FILES)
Neu: Enumerations in der Rückgabe von IPS_GetFunctionList
## V2.1->V2.2 (Q1/2010)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v21-v22-q1-2010/
### Wesentliche Änderungen
In der Version 2.2 von IP-Symcon wurde besonders an der grafischen Darstellung von Daten gearbeitet. So erlaubt das WebFront die Darstellung der in der SQLite-Datenbank aggregierten Daten in einer Stunden-, Tages-, Wochen-, Monats- und Jahresansicht. Eine Live-Demo kann unter [https://www.webfront.info/](https://www.webfront.info/) angesehen werden.
Weitere neue Funktionen sind native Module zum Empfangen von E-Mails über POP3 und IMAP, sowie das Versenden von E-Mails (SMTP) und SMS (Clickatel).
Seit der Version 2.2 ist es möglich, Meldungen (Notifications) an das WebFront zu schicken, um sich über Ereignisse im System, direkt auf der Visualisierung informieren zu lassen. Ein eingebautes On-Screen-Display ermöglicht im WebFront die direkte Eingabe von Textdaten in einer Touchscreen-kompatiblen Art und Weise.
Für eine komplette Auflistung aller neuer und geänderter Funktionen lesen Sie bitte die Liste der Änderungen am Ende des Dokuments.
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.1 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.2 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Bedingt durch den Wechsel von PHP 5.1.6 auf PHP 5.3.1 müssen Sie die ggf. genutzte Extensions aktualisieren. Aktuelle Extension DLLs finden sie in diesem Paket: [PHP 5.3.1 Extensions](https://windows.php.net/downloads/releases/archives/php-5.3.1-Win32-VC6-x86.zip)
* Um Graphen im WebFront sehen zu können, muss eine ‘Graphen Seite’ im WebFront Konfigurator erstellt werden.
### Liste der Änderungen
Neu: Graphen im WebFront (inkl. Archiv Modul auf SQLite Basis)
Neu: Popups/Notifications im WebFront
Neu: Graphen im Dashboard über WebBrowser (http://localhost:82/dashboard.php)
Neu: On-Screen-Keyboard für das Editieren von Strings/TextBoxen
Neu: Schnellerer Rückkanal
Neu: E-Mail versenden (SMTP)
Neu: E-Mail empfangen (POP3&IMAP)
Neu: Image Grabber (Lädt ein Bild direkt in den Medienpool)
Neu: SMS Modul für Clickatel
Neu: M-Bus Modul
Neu: Heating Control Modul
Neu: Ereignisse direkt in der Instanzkonfiguration erstellbar
Neu: Geräte können direkt über Ereignisse angesprochen werden.
Neu: Module für die EKM-868 (Counter) und ViewJet (Display)
Neu: WebFront nativ auf Englisch %2B Deutsche Übersetzung
Neu: ProJet Display (Input Modul)
Neu: Statusveränderungen von I/O’s abfangen (Kern Instanzen->Event Handler)
Neu: FS20 Adresse kann auf doppelte Verwendung geprüft werden
Neu: Filter HTML Checkbox bei Skriptausgabe
Neu: Sys_GetURLContentEx -> Erlaubt Zugriff mit BasicAuthentification/Proxy
Neu: Icons können über ein Auswahlfenster ausgewählt werden.
Neu: Locked Eigenschaft für den TIPSLockButton
Neu: AutoLocked Eigenschaft für den TIPSLockButton
Fix: Dimmer im WebFront bei HomeMatic nicht bedienbar
Fix: 32Bit/Real Werte bei ModBus
Fix: SetTargetValue bei LCN
Fix: n wird bei der TextBox im WebFront erkannt
Fix: Werte/Reaktionsbug im Dashboard
Fix: FHT/HomeMatic FHT im WebFront (haken für “Emulation” aktivieren!)
Fix: Leveljet wieder auslesbar
Fix: LCN_StartFlicker fix
Fix: EnOcean kann mit 32bit unsigned IDs umgehen.
Fix: 1-Wire negative Temperaturen bei manuellem polling falsch
Fix: FHT: Negative Ventilpositionen
## V2.0->V2.1 (Q3/2009)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v20-v21-q3-2009/
### Wesentliche Änderungen
Die neue Version 2.1 von IP-Symcon fügt viele neue Funktion, aber auch Detailverbesserungen, ein, so dass ein Update auf diese Version empfohlen wird. Besonders im Bereich der Visualisierung ist seit der Version 2.0 viel verbessert worden. Aber auch am Kern von IP-Symcon wurde viel Zeit in eine bessere Stabilität und Speichernutzung investiert. Einige besondere Funktionen werden hier vorgestellt:
* Variablenprofile, die eine Variable für die Visualisierung beschreiben, wodurch Sie ohne weiteren Aufwand in der Visualisierung (WebFront) angezeigt werden können. Weiterhin ist es möglich Aktionen zu definieren, um virtuelle Geräte zusammenzustellen. Die Dokumentation der Möglichkeiten finden Sie hier: [Variablenprofile](https://www.symcon.de/de/llms/concepts.md)
* Symbolische Links vereinfachen eine mehrfache Verwendung von Objekten in der Visualisierung. Sie müssen Ihr Panikschalter-Skript nur noch einmal anlegen und können es in beliebig vielen Kategorien verknüpfen.
* Dadurch sind auch Übersichtsseiten möglich, um z.B. alle Stati der Fenster anzuzeigen.
* Die WebFront Konfiguration erspart ihnen eine mühselige Anpassung irgendwelcher Konfigurationsdateien. Fügen Sie der Visualisierung (WebFront) Ihre eigenen Seiten als Reiter hinzu, verändern Sie den Ausgangspunkt Ihrer Visualisierung oder fügen Sie eigene Widgets hinzu, die Ihnen z.B. das Datum der nächsten Müllentsorgung anzeigen. Alles ein paar Mausklicks entfernt. [WebFront konfigurieren](https://www.symcon.de/de/llms/components/webfront-visualization.md)
* Neue Module für:
* den Energiezähler EM24 von Carlo Gavazzi
* generische Module für ModBus TCP und ModBus RTU
* viele neue Funktionen für das Z-Wave System
* Als Vorbereitung für die in der Version 2.2 kommende graphische Darstellung von erfassten Daten können Sie bereits mit dieser Version Daten mitloggen und in einer SQLite-Datenbank abspeichern. Sobald die Version 2.2 verfügbar ist, können Sie ihre Daten sofort graphisch auswerten.
Für eine komplette Auflistung aller neuen und geänderten Funktionen lesen Sie bitte die Liste der Änderungen am Ende des Dokuments.
### Migration
> **Achtung:** Bitte erstellen Sie auf jeden Fall ein Backup Ihres gesamten IP-Symcon Ordners, um auf die Version 2.0 zurück zu wechseln, sollten wider erwarten Probleme mit der Version 2.1 auftreten.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
* Löschen Sie **vor** der Installation alle Module (*.dll) aus dem ‘modules’ Ordner von IP-Symcon, da diese nicht mehr gebraucht werden, oder falls Sie welche von Drittanbietern haben, diese einfach nicht mehr kompatibel sind.
* Falls Sie PHP Extensions nutzen, müssen Sie diese ab der Version 2.1 in den ‘ext’ Ordner von IP-Symcon kopieren. Alle Extensions in diesem Ordner werden automatisch von IP-Symcon geladen. Die "php.ini" muss dazu nicht mehr angepasst werden, sondern wird bei jedem IP-Symcon Start automatisch neu aktualisiert. Ein anderer Ort ist für Extensions nicht mehr möglich.
* __Das Error Reporting ist seit der Version 2.1 standardmäßig auf "E_ALL" gesetzt. Das bedeutet, dass Fehler, wie z.B. nicht definierte Variablen, direkt als Fehler angezeigt werden. Außerdem müssen Arrayindexe als String angesprochen werden. z.B. $a['MeinIndex'] statt $a[meinIndex]. (Auslöser dieser Fehlermeldungen sind meist unsauber programmierte Skripte.) Sie können das Error Reporting in der "php.ini" verändern, wovon wir aber abraten.__
* Fehler können Sie, wie immer, in der Projektverwaltung im IP-Symcon Forum melden.
### Liste der Änderungen
**Kernel**
* Keine Veränderung der PHP Version (5.1.6 wird benutzt)*
* php.ini wird nur noch aus dem IP-Symcon Order geladen
* Alle passenden Extensions werden automatisch aus dem ‘ext’ Ordner geladen.
* Alle Module sind direkt in die ips.exe integriert, wodurch der Speicherbedarf sinkt.
* Eigene Variablen Profile ( [Dokumentation](https://www.symcon.de/de/llms/concepts.md) )
* Objekte können im WebFront versteckt werden ohne dem Punkt (.) Workaround (Objekt bearbeiten -> Optionen).
* Ereignisse können direkt an Variablen/Instanzen erstellt werden.
* Objekte können sortiert/positioniert werden.
* Symbolische Links können für Instanzen, Variablen, Skripte und Medien erstellt werden.
* Neue Funktion GetValueFormatted, die den Variablenwert als formatierten String zurück gibt. Z.B. 17,3°C
* Suche/Ersetze in Dateien implementiert
* Präfixe haben jetzt Leerzeichen, die entsprechend der DIN 5008 erstellt wurden.
_*Ein Wechsel auf 5.2.x oder 5.3.x war geplant, aber aufgrund von Problemen wieder verworfen worden. Fixes für einige relevante PHP-Bugs wurden für PHP 5.3.1 angekündigt, welches für Version 2.2/2.3 erneut getestet wird._
**WebFront**
* file\_get\_contents gegen eine Funktion ausgetauscht (Sys_GetURLContent)
* Wetterseiten werden gecacht, für schnellere Ladezeiten/Ausfallsicherheit
* WebFront mit eigenen Profilen kompatibel
* WebFront zeigt alle Variablen mit Variablenprofil, Skripte und Medien direkt unterhalb von Instanzen an.
* Anzahl der Elemente in einem ‘enum’ / ‘selector’ kann in der Config definiert werden.
* Slider für Prozentwerte (mit Möglichkeit zum Deaktivieren)
* Media-Dateien können ausgeklappt werden.
* Media-Dateien werden bei Aktualisierung automatisch im WebFront aktualisiert.
* WebFront Retro, iFront den Neuerungen entsprechend angepasst
* $REMOTE\_ADDR, $REMOTE\_HOST bei Ausführen einer Aktion verfügbar
**Module**
* Dummy Modul als Platzhalter für eigene Variablen, die im WebFront angezeigt werden können
* Wago: Native Implementation (Wago DLL wird nicht mehr benötigt)
* ModBus: Modbus TCP, Modbus RTU, Modbus RTU over TCP wird unterstützt.
* Carlo Gavazzi: EM24 Modul hinzugefügt
* Virtual I/O Modul zum Testen eigener Device Module (nur für Entwickler interessant!)
* Webserver: OpenSSL Update auf 0.9.8k
* HomeMatic: Standardprofile für die Wetterstation
* Z-Wave
* Weitere Geräteklassen werden unterstützt
* Assoziationen können konfiguriert werden.
* Parameter können an Geräten gesetzt werden.
* Routing Tabelle wird ausgelesen.
* Archiv Modul auf SQLite Basis zum Loggen von Variablenwerten
**Dashboard**
* Wenn der Parameter/cache angegeben wird, dann werden alle Bilder in einem cache-Ordner gespeichert, wodurch das erneute Laden wesentlich beschleunigt wird.
* Neues Control: TIPSSpinEdit für Integer/Float Werte
* Dashboard kann Variablenwerte mit Profilformatierung anzeigen.
* $REMOTE\_ADDR, $REMOTE\_HOST, $IPS_FORM bei Ausführen eines Skriptes verfügbar
**Geänderte Funktionen**
* IPS_SetEventScript (Nimmt nun den auszuführenden Text statt der ID des Skriptes.)
* IPS_GetEvent (Index: TriggerVariable -> TriggerVariableID)
* IPS\_GetStatusVariableIDs -> IPS\_GetStatusVariableIdents
__Änderungen im SDK__
* KERNEL_VERSION = 0x020A
* Konstanten sind jetzt in 100er Schritten definiert.
* Kategoriefunktionen vom ObjectManager in den CategoryManager verschoben
* LinkManager für die symbolischen Links
* Variablenprofile werden über Strings verknüpft und müssen vorher im VariableManager registriert werden.
Mehr Informationen und das neue SDK finde sie im [Entwicklerbereich](https://www.symcon.de/de/llms/developer/index.md)
## V1.0->V2.0 (Q1/2009)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v10-v20-q1-2009/
### Featureänderungen
**Generelle Änderungen**
* Server/Client Design, Windows Dienst + Netzwerkfähige Clientapplikation
* Alle Objekte (Instanzen, Variablen, Skripte, Events, Medien) haben eine eindeutige ID.
* Designer (jetzt Dashboard) direkt in die Clientapplikation eingebettet
**Serverseitige Änderungen**
* Mehr PHP Befehle zum Eingreifen/Konfigurieren von IP-Symcon
* Pro Skript können mehrere Timer (jetzt: Ereignisse) erstellt werden.
* Ereignisse können zu bestimmten Zeitpunkten gestartet werden (Timer Wizard Ersatz!, Kein Importer!).
* SOAP Schnittstelle ([Entwicklerbereich](https://www.symcon.de/de/llms/developer/index.md) )
* Bei Fehlern (IPS Funktionen) werden diese direkt in PHP Fehlermeldungen ausgegeben.
**Clientseitige Änderungen**
* Clientanwendung funktioniert über das Netzwerk/Internet
* Grafische Instanzenansicht durch Baumansicht ersetzt
* Multilingual (Deutsch/Englisch)
* Wizards zum Einrichten der Objekte
* Mehr Drag&Drop Möglichkeiten
* Docking der einzelnen Fenster
* Quickfilter an den meisten Stellen vorhanden
**WebFront**
* WebInterface, welches automatisch vorhandene Geräte visualisiert/schalten lässt
* Eine Variante im iPhone / iTouch Design erlaubt schnellen Zugriff
**Modulspezifische Änderungen**
* Native LCN Module
* HomeMatic Module
* ProJet/LevelJet Module
* SiLabs USBXpress I/O Modul
* Siemens S7 SPS Module
* FS20TX/RX zusammengelegt; Das FS20 Modul kann nun senden/empfangen und die Timer emulieren.
* Aus FS20RX wird FS20EX. Es erlaubt komfortabel eine Mehrkanalfernbedienung einzurichten.
* Alle WAGO Adressen werden als einzelne Instanzen erstellt. Ermöglicht vernünftige Namensvergabe und Anzeige im WebInterface
* I/O Module reconnecten sich automatisch solange, bis Sie eine Verbindunge bekommen.
* WebServer bietet SSL-Verschlüsselung
* MediaPlayer Modul als Ersatz für das WinampControl. Unterstützt mehrere Soundkarten mit direkter Soundkartenauswahl.
* ISDN Modul kann nun mehrere Anrufe gleichzeitig bedienen. Beachten Sie bitte die neue Funktionsweise. (Siehe [ISDN Beispiel](https://community.symcon.de/t/isdn-modul-verwenden/17160) )
* Das FS20MS Modul ist jetzt nicht mehr an FS20 gebunden, sondern kann für fast alle Systeme verwendet werden.
Link: [Shutter Control](https://www.symcon.de/de/llms/modules/shutter-control-legacy.md)
**Wegefallende Module**
* DirectX MediaPlayer (eignes MediaPlayer Modul als Ersatz)
* COM/LAN (SerialPort/ClientSocket als Ersatz)
* memPIO
* M34 USB
* RedLab
* BTKit
* IPPower
**Weggefallende/Geänderte Funktionen** (nur die wichtigesten Funktionen angegben)
* TWZ_ItemExists ( Ersatz: [Ereignissfunktionen](https://www.symcon.de/de/llms/functions/management-events.md) )
* TWZ_DeleteItem ( Ersatz: [Ereignissfunktionen](https://www.symcon.de/de/llms/functions/management-events.md) )
* TWZ_CreateItem ( Ersatz: [Ereignissfunktionen](https://www.symcon.de/de/llms/functions/management-events.md) )
* IPS_UnregisterScript ( Ersatz: [Skriptfunktionen](https://www.symcon.de/de/llms/functions/management-scripts.md) )
* IPS_RegisterScript ( Ersatz: [Skriptfunktionen](https://www.symcon.de/de/llms/functions/management-scripts.md) )
* IPS_ScriptExists ( Ersatz: [Skriptfunktionen](https://www.symcon.de/de/llms/functions/management-scripts.md) )
* IPS_CreateVariable ( Ersatz: [Variablenfunktionen](https://www.symcon.de/de/llms/functions/management-variables.md) )
* IPS_VariableExists ( Ersatz: [Variablenfunktionen](https://www.symcon.de/de/llms/functions/management-variables.md) )
* IPS_GetVariableType ( Ersatz: s.u. )
* IPS_GetVariables ( Ersatz: s.u. )
* LOC_GetLocation_Variable ( Ersatz: s.u. )
* IPS_GetInstanceIDs ( Ersatz: s.u. )
* IPS_GetModuleInstance ( Ersatz: s.u. )
* SYS_Ping (2. Parameter entfällt)
* IMGP_SendEvent ( Ersatz: [IPS_SendMediaEvent](https://www.symcon.de/de/llms/functions/management-media.md) )
* SNDP_SendEvent ( Ersatz: [IPS_SendMediaEvent](https://www.symcon.de/de/llms/functions/management-media.md) )
* TTS_Speak ( Syntaxänderung + Hinweise: [TTS_Speak](https://www.symcon.de/de/llms/modules/text-to-speech.md) )
### Migration
> **Achtung:** Führen Sie bitte ein Backup von Ihrem alten IP-Symcon durch.
> **Hinweis:** Ein direktes Update ist immer möglich. Lesen Sie bitte vorher die passenden [Migrationsanleitungen](https://www.symcon.de/de/llms/getting-started/migrationen.md).
[Installieren](https://www.symcon.de/de/llms/getting-started.md) Sie bitte IP-Symcon 2.0 in einen __neuen__ Ordner.
Stellen Sie sicher, dass der IP-Symcon Dienst beendet ist. Dies können Sie am grauen TrayIcon erkennen. Einen gestarteten Dienst können Sie durch die Funktion „Dienst anhalten“ beenden.

Sobald der Dienst gestoppt ist, müssen folgende Dateien aus Ihrem alten IP-Symcon Ordner in den neuen IP-Symcon Order kopieren.
* scripts*
* web* (für WIIPS)
* web_data* (für WIIPS)
* settings.xml
* bricks*
* php.ini (Pfade anpassen!)
* Alle PHP Extension DLLs, wenn Sie welche installiert haben (z.B. GD2)
Nun können Sie IP-Symcon starten. Alle Variablen, Skripte, Instanzen sollten mit allen Einstellungen importiert werden. Zum Abschluss der Migration sollten Sie Ihre Skripte auf in der neuen Version von IP-Symcon nicht mehr vorhandene Funktionen überprüfen. Ferner müssen Sie alle Zugriffe über Namen durch Zugriffe über IDs ersetzen. Solange Sie aber keine Geräte umbenennen, können Sie diese Aktion auch bei Bedarf durchführen.
### Kompatibilitätsfunktionen
> **Hinweis:** Diese Funktionen sollten nur übergangsweise genutzt werden und so schnell wie möglich gegen die neuen, ID basierten Funktionen ausgetauscht werden, um die neuen Möglichkeiten ausnutzen zu können.
```php
function IPS_GetVariableType( $varid )
{
if(!is_numeric($varid))
$varid = IPS_GetVariableID($varid);
$var = IPS_GetVariable($varid);
switch($varInvalid Link )
{
case :
return "Boolean";
break;
case 1:
return "Integer";
break;
case 2:
return "Float";
break;
case 3:
return "String";
break;
default:
return "Unknown";
break;
}
}
function IPS_GetUpdateTime($id)
{
$v = IPS_GetVariable($id);
return $v['VariableUpdated'];
}
function FS20_SetPosition($id, $pos)
{
SC_Move($id, $pos);
}
function IPS_GetVariables()
{
$result = Array();
$varids = IPS_GetVariableList();
foreach($varids as $varid)
{
$var = IPS_GetVariable($varid);
$obj = IPS_GetObject($varid);
$result[] = Array(
"name" => $obj['ObjectName'],
"type" => IPS_GetVariableType($varid),
"value" => GetValue($varid),
"updated" => (int)$var['VariableUpdated']
); }
return $result;
}
function LOC_GetLocation_Variable($varid)
{
if(!is_numeric($varid))
$varid = IPS_GetVariableID($varid);
return 'IP-SYMCON\\'.IPS_GetLocation($varid);
}
function IPS_GetInstanceIDs()
{
return IPS_GetInstanceList();
}
function IPS_GetModuleInstance($instanceid)
{
$instance = IPS_GetInstance($instanceid);
return Array(
"instanceid" => $instance['InstanceID'],
"instancestatus" => $instance['InstanceStatus'],
"moduleguid" => $instanceInvalid Link ,
"packetsreceived" => ,
"packetstransmitted" => ,
"packetsaccepted" => ,
"packetsdropped" => ,
"packetsbuffered" =>
);
}
function IPS_GetModuleInfo ( $mguid ) {
$marray = IPS_GetModule( $mguid );
$m = Array();
$m['name'] = $marray['ModuleName'];
switch ($marray['ModuleType']) {
case :
$m['type'] = 'Core';
break;
case 1:
$m['type'] = 'I/O';
break;
case 2:
$m['type'] = 'Splitter';
break;
case 3:
$m['type'] = 'Device';
break;
}
$m['guid'] = $mguid;
$larray = IPS_GetLibrary($marray['LibraryID']);
$m['version'] = ($larray['Version'] >> 8) .".". ($larray['Version'] & 0xFF);
return $m;
}
```
## V0.0->V1.0 (Q1/2005)
Quelle: https://www.symcon.de/de/service/dokumentation/installation/migrationen/v00-v10-q1-2005/
Erste Version von IP-Symcon wurde veröffentlicht.
---
# Vorgehensweisen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/
Im folgenden Abschnitt wird anhand von Bespielen erklärt wie man grundlegende oder häufig verwendete Funktionen nutzt.
Ein genereller Einstieg kann unter [Schnelleinstieg](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.
## Objekt hinzufügen
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/objekt-hinzufuegen/
Um ein neues "Objekt hinzufügen", muss auf das "+" unten rechts im Objektbaum geklickt werden. Es erscheint folgender Dialog und Auswahl von verschiedenen Objekten:

Alternativ kann innerhalb des Objektbaums auch die "Rechte Maustaste" mit einem Klick auf die gewünschte Stelle im Baum verwendet werden. Es öffnet sich folgendes Kontextmenü:

## Geräte austauschen
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/geraete-austauschen/
Sollte ein Gerät defekt sein und physikalisch ausgetauscht werden müssen, kann dieses ohne das Anlegen einer neuen Instanz in IP-Symcon verwirklicht werden. Dies hat den Vorteil das sich die ObjektIDs der Instanz und den dazugehörigen Variablen nicht ändern. Dadurch müssen auch ggf. verknüpfte Skripte nicht auf die neuen IDs angepasst werden.
### Gerät innerhalb der Instanz austauschen
Geräte werden in IP-Symcon über sogenannte Instanzen angesprochen und eingebunden.
Auf der Konfigurationsseite der jeweiligen Instanz sind oftmals systemspezifische Adressierungen vorhanden.
Diese kann geändert werden ohne die Objekt-ID zu verändern.
> **Hinweis:** Sofern das genutzte System einen Konfigurator besitzt kann dieser aktualisiert werden und übernimmt ebenfalls die Änderungen
### Beispiele
#### KNX
Zum Austausch muss in IP-Symcon die Konfiguration des defekten Geräts geöffnet und die dreistufige Adresse des alten Geräts gegen die des Neuen ausgetauscht werden. Die Adresse kann im Konfigurator nachgesehen werden.
* KNX Konfigurator öffnen
* "Suchen" aber KEINE Instanz "Erstellen"
* Neue Adresse merken und die Konfiguration des alten Geräts öffnen
* Neue Adresse eintragen (siehe Screenshot) und mit "Übernehmen" speichern
* Zum Konfigurator zurückkehren und via "Suchen" aktualisieren
Die neue Adresse sollte nun eine InstanzID haben.

Die dreistufige Adresse im markierten Bereich muss ausgetauscht und mit "Übernehmen" gespeichert werden.
#### Homematic
Zum Austausch muss in IP-Symcon die Konfiguration des defekten Geräts geöffnet und die Adresse des alten Geräts gegen die des Neuen ausgetauscht werden. Die Adresse steht entweder auf dem Gerät selbst oder kann via "Suchen" ausgewählt werden.

Die Adresse im markierten Bereich muss ausgetauscht und mit "Übernehmen" gespeichert werden.
#### OneWire
Zum Austausch muss in IP-Symcon die Konfiguration des defekten Geräts geöffnet und die 16-stellige Adresse des alten Geräts gegen die des Neuen ausgetauscht werden. Die Adresse kann im Konfigurator nachgesehen werden.
* OneWire Konfigurator öffnen
* "Suchen" aber KEINE Instanz "Erstellen"
* Neue Adresse merken und die Konfiguration des alten Geräts öffnen
* Neue Adresse eintragen (siehe Screenshot) und mit "Übernehmen" speichern
* Zum Konfigurator zurückkehren und via "Suchen" aktualisieren
Die neue Adresse sollte nun eine InstanzID haben.

Die 16-stellige Adresse im markierten Bereich muss ausgetauscht und mit "Übernehmen" gespeichert werden.
#### Z-Wave
Zum Austausch muss in IP-Symcon die Konfiguration des defekten Geräts geöffnet und die NodeID des alten Geräts gegen die des Neuen ausgetauscht werden. Die NodeID kann im Konfigurator nachgesehen werden.
* Z-Wave Konfigurator öffnen
* Gerät anlernen aber KEINE Instanz "Erstellen"
* NodeID merken und die Konfiguration des alten Geräts öffnen
* Neue NodeID eintragen (siehe Screenshot) und mit "Übernehmen" speichern
* Zum Konfigurator zurückkehren und "Aktualisieren"
Die neue NodeID sollte nun eine InstanzID haben.

Die NodeID im markierten Bereich muss ausgetauscht und mit "Übernehmen" gespeichert werden.
## Geräte einbinden
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/geraete-einbinden/
Geräte werden in IP-Symcon über sogenannte Instanzen angesprochen.
> **Hinweis:** Das Prinzip vom Anlegen der Geräte hat sich von Version 1 an grundlegend verändert. I/O Instanzen, Splitter oder Ähnliches müssen nicht mehr erstellt/verbunden werden. IP-Symcon erledigt dies automatisch. IP-Symcon legt auch die Status-Variablen automatisch an.
### Instanz erstellen
Bei folgenden Systemen stehen [Konfiguratoren](https://www.symcon.de/de/llms/concepts.md) für eine komfortablere Konfiguration von Geräten zur Verfügung. Dafür kann innerhalb der webbasierten Verwaltungskonsole über den Knopf "+" den Objektbaum der passende Konfigurator hinzugefügt werden.
* [digitalStrom](https://www.symcon.de/de/llms/modules/digitalstrom.md)
* [Eaton xComfort](https://www.symcon.de/de/llms/modules/xcomfort.md)
* [KNX](https://www.symcon.de/de/llms/modules/knx.md)
* [HomeMatic](https://www.symcon.de/de/llms/modules/homematic.md)
* [LCN](https://www.symcon.de/de/llms/modules/lcn.md)
* [MQTT](https://www.symcon.de/de/llms/modules/mqtt.md)
* [Siemens OZW](https://www.symcon.de/de/llms/modules/siemens-ozw.md)
* [Z-Wave](https://www.symcon.de/de/llms/modules/z-wave.md)
* [1-Wire](https://www.symcon.de/de/llms/modules/1-wire.md)
Bei allen anderen Systemen muss das jeweilige Gerät selbst hinzufügt werden indem eine passende Instanz erstellt wird.
Der Erstellungsdialog kann im Objektbaum über den Button "+" -> "Instanz" erreicht werden.
IP-Symcon kümmert sich darum, dass benötigte Gateways, Splitter und I/O's zu erstellen.
Im Reiter "Meldungen" kann überprüft werden ob eine Instanz einen Fehler hat. Interessant ist eine gelb oder rot unterlegte Meldung. Dies bedeutet es fehlt noch eine Einstellung damit eine Instanz funktioniert. Ein "Doppelklick" auf die jeweilige Meldung führt direkt zu dem Abschnitt von IP-Symcon, bei dem besagte Einstellung noch benötigt wird.
Ein Zugriff auf die zu jedem Gerät gehörigen Gateway und I/O Schnittstellen ist über das Zahnrad "Gateway Konfigurieren" oder "Schnittstelle Konfigurieren" im Geräte-"Konfiguration"-Reiter möglich. Dort können benötigte Einstellungen überprüft und ggf. nachgebessert werden.
Im Bereich "[Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) " befinden sich, beschrieben oder per Video-Tutorial, die Einrichtungsanleitungen der jeweiligen Geräte/Instanzen.
## Geräte suchen
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/geraete-suchen/
IP-Symcon verfügt über eine sehr komfortable Funktion, die es dem Anwender ermöglicht, schnell und einfach neue Geräte dem System hinzuzufügen. Voraussetzung ist, dass die neuen, anzulernenden Geräte von sich aus Meldungen verschicken (z.B. Funk-Temperatur-Fühler). Alternativ kann - oder muss - der Anwender eine "Anlern-Taste" oder ganz einfach einen Knopf auf der Fernbedienung drücken. Bei einigen Systemen, wie z.B. das 1-Wire-System, kann IP-Symcon gezielt nach angeschlossenen, unbekannten Geräten suchen. Nach dem Motto: "Hallo wer ist denn da?". Und die Geräte antworen mit: "Ich bin es, der Helligkeissensor".
> **Hinweis:** Geräte können über die [Konfiguratoren](https://www.symcon.de/de/llms/concepts.md) der jeweiligen Systeme gesucht werden.
### Beispiele
Das folgende Beispiel zeigt die empfangenen Geräte des HomeMatic Systems:

> **Hinweis:** Es kann mehrere Minuten dauern, bis alle Geräte in der Liste erscheinen!
Ein grüner Hintergrund signalisiert ein neues Modul. Durch einen Doppelklick kann es dann ausgewählt werden.
Je nach Eigenschaften des Gerätes legt IP-Symcon automatisch Variablen an, die Funktionalität wiederspiegeln. Die Namen sowie den Ort können Sie jederzeit verändern.
Das folgende Beispiel zeigt die drei Variablen eines Funkschalters bzw. einer Fernbedienung des HomeMatic System:

Beim HomeMatic System muss zusätzlich für die Suche angegeben weden, ob funk- oder kabelgebundene Geräte gesucht werden sollen.
Wenn die BidCoS-Seriennummer bekannt ist, kann diese auch direkt eingegeben werden:

> **Hinweis:** Beachten Sie bitte, dass erst beim zweiten Empfang eines Datensatzes des jeweiligen Gerätes seine Variablen mit Werten gefüllt werden.
## Systeme verbinden über Ereignisse
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/systeme-verbinden-ueber-ereignisse/
IP-Symcon verfügt über eine sehr komfortable Möglichkeit Werte von einem System direkt auf ein anderes zu übertragen. Dazu kann ein [Ereignis](https://www.symcon.de/de/llms/concepts.md) hinzugefügt werden, welches bei Änderung des auslösenden Wertes einen anderen Wert auf den auslösenden Wert setzen kann. Dabei ist es unerheblich, ob die beiden Werte zu verschieden Systemen gehören. Im unten aufgeführten Beispiel wird ein KNX Dimmerwert auf ein Z-Wave Dimmer übertragen.
### Beispiel
Ein KNX Dimmerwert kann an eine Z-Wave Lampe mit Dimmerwert übertragen werden. Dafür wird auf eine Änderung des KNX Wertes reagiert und der neue Wert auf den Dimmwert der Z-Wave Lampe übertragen und diese geschaltet.
Im Objektbaum sind die beiden Geräteinstanzen bereits angelegt und funktionieren für sich einwandfrei. Nun muss ein Ereignis erstellt werden. Dazu kann über das "+" unten Rechts im Objektbaum ein Ereignis hinzugefügt werden.
Das Ereigniss muss wiefolgt konfiguriert werden.
Als auslösende Variable wird der Dimmwert ausgewählt, dessen Wert bei Änderung übertragen werden soll. In diesem Beispiel ist es der Wert der DPT 005.001.
Unter Aktion wird als "Ziel" die Intensität der Z-Wave Lampe mit Dimmer Aktor ausgewählt. Als Aktionstyp muss "Schalte Variable" und als Aktion "Auf auslösenden Wert schalten" ausgewählt werden.
Mit "OK" wird das Ereignis erstellt und die Konfiguration gespeichert.

Ab sofort wird bei jeder Wertänderung des KNX Dimmerwerts die Intensität der Z-Wave Instanz auf den gleichen Wert gedimmt.
Der Objektbaum sollte dann so aussehen.

## Skripte wiederverwenden
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/skripte-wiederverwenden/
> **Hinweis:** Dies ist ein Beispiel, welches sich auch mit Ereignissen abbilden lässt. Dieser Artikel möchte eher die [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) und Wiederverwendbarkeit von Skriptabschnitten näherbringen.
In diesem Beispiel geht es um eine Flurlicht-Steuerung, die auf allen Etagen gleich ist. Diese soll möglichst nicht dreimal programmiert werden.
Ein Möglichkeit wäre es 3 Skripte anzulegen und den Inhalt von einem Skript mit Copy und Paste in die einzelnen Skripte kopieren. Dies ist für eine schnelle Lösung sicherlich Möglich. Dies führt aber auch zu einer gewissen Redundanz und wenn an einer Stelle im Skript etwas verbessert werden soll, muss dies nicht einmal sondern dreimal gemacht werden.
Als Beispiel für Code-Reusing kann zum Beispiel ein Skript mit dem Namen "Lichtsteuerung (xComfort, Flur, Bewegungsmelder, Helligkeitsregelung)" er stellt werden. Der Name sollte sprechend sein und beinhalten welche Systeme, Geräte und Status es verwendet.
Folgender Code könnte der Inhalt sein:
```php
//Wenn keine Bewegung - siehe Dokumentation "Systemvariablen" für die Bedeutung von $_IPS['VALUE']
if(!$_IPS['VALUE']) {
MXC_SwitchMode($lampenID, false);
}
//Wenn Bewegung festgestellt wurde
else {
//Nur nach Sonnenuntergang
if(!GetValueBoolean($istTag)) {
//Wenn es zwischen 22:30 Abends und 06:00 Morgends ist
| if((time() > strtotime("22:30")) || (time() < strtotime("06:00"))) { |
MXC_DimSet($lampenID, 15);
}
else {
MXC_DimSet($lampenID, 50);
}
}
}
```
Dieses Skript muss von einem [Auslösenden Ereignis](https://www.symcon.de/de/llms/concepts.md) aufgerufen werden - hier normalerweise von einem/mehreren Bewegungsmeldern. Das Licht wird dann abhängig von der Tageszeit auf eine unterschiedliche Dimmstufe gestellt. Sobald der Bewegungsmelder keine Bewegung mehr erkennt und den FALSE Impuls sendet, schaltet das Gerät ab.
Die Logik ist somit ausgelagert und es müssen nur noch Skripte erstellt werden, welche die fehlenden Variablen setzen und von einem Ereignis aufgerufen werden. Nachfolgend ein Beispiel:
```php
//Auslösung des Ereignis durch Bewegungsmelder Variable!
//Eindeutige Geräte-ID
$lampenID = 54321 /*[Erdgeschoss\Flur\Deckenlampe]*/;
//Tag/Nacht Variable aus dem Location Control
$istTag = 56789 /*[IstTag]*/;
includeScript(12345 /*[Szenarien\Lichtsteuerung]*/);
//Funktion zum Einfügen des Skriptinhalts
function includeScript($scriptID) {
$s = IPS_GetScript($scriptID);
include($s['ScriptFile']);
}
```
So können "Funktionsvorlagen" erstellt und diese dann mit den nötigen IDs gefüttert werden. In diesen Skripten sind dann die IDs der Geräte/ Variablen, zu denen IP-Symcon vollständige und aussagekräftige Namen erstellt (sofern die Objektbaumstruktur [vernünftig](https://www.symcon.de/de/llms/concepts.md) erstellt wurde).
Bei Bedarf kann das Skript auch für andere Systeme angepasst und dynamisch anhand der [übergebenen InstanzID](https://www.symcon.de/de/llms/functions/management-instances.md) die richtigen Funktion aufgerufen oder die systemspezifischen Änderungen vorgenommen werden.
## Passwort geschützte Kategorie im WebFront
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/passwort-geschuetztes-webfront/
Um bestimmte Kategorien aus dem Objektbaum im WebFront mit Passwort zu schützen, müssen folgende Schritte beachtet werden.
Die Kategorie, welche gesichert werden soll, muss im Objektbaum aus dem restlichen WebFront verschoben werden.
Anschließend muss ein [neues WebFront eingerichtet](https://www.symcon.de/de/llms/components/webfront-visualization.md) werden. Ist dies geschehen, kann ein beliebiges Passwort in der [Sicherheit des WebFronts](https://www.symcon.de/de/llms/components/webfront-visualization.md) eingerichtet werden.
Im zweiten WebFront muss über den [Editor](https://www.symcon.de/de/llms/components/webfront-visualization.md) alles entfernt und die Kategorie, welche den passwortgeschützen Inhalt anzeigen soll, hinzugefügt werden.
Im Anschluss muss im ersten WebFront das zweite WebFront als Externe Seite mit einem Pfad hinzugefügt werden.

Der Aufruf der Externen Seite sieht dann wiefolgt aus.

## Links verwenden
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/links-verwenden/
Im folgenden Beispiel wird dem Prinzip der [Links](https://www.symcon.de/de/llms/concepts.md) nachgegangen. In einem Haus sind zum Beispiel etliche Rauchmelder verbaut und angeschlossen.
Zur Sicherheit sollen nun alle drei Monate die Rauchmelder kontrolliert werden. Eine erste Kontrolle war recht aufwändig. Bei der Strukturierung der Visualisierung wurde der Aufbau sinnvollerweise nach Etage -> Zimmer -> Gerät gestaltet. Bei der Kontrolle muss nun allerdings jedes Zimmer einzeln durchlaufen werden um jeden Rauchmelder zu kontrollieren. Das erscheint recht zu aufwendig.

Nun wird neben den Stockwerken eine Kategorie namens “Rauchmelder” erstellt und alle Rauchmelder werden per “Drag and Drop” in diese Kategorie verschoben.
Dadurch, dass alle Rauchmelder in Symcon einer neuen Kategorie zugeordnet wurden, sind diese in der Visualisierung nun nicht mehr in den einzelnen Räumen sichtbar. Damit fehlen die Rauchmelder aber nun leider in ihren den einzelnen Räumen, in denen sie installiert sind.
Symcon bietet Ihnen die Möglichkeit, Verknüpfungen zu einzelnen Objekten zu erstellen. Um diese Verknüpfungen zu erstellen, muss mit der rechten Maustaste im Objektbaum auf ein ausgewähltes Objekt - in unserem Fall also auf einen Rauchmelder - geklickt werden.

Sobald auf “Objekt verlinken” geklickt wurde ist das Objekt zum Verlinken in der Zwischenablage. An beliebiger Stelle im Objektbaum kann nun per Rechtsklick und “Objekt einfügen” ein Link auf das ursprünglich ausgewählte Objekt erstellt werden. Dies kann mit allen Rauchmeldern wiederholt werden und schon können die Rauchmelder problemlos in der Visualisierung kontrolliert werden, ohne ständig hin und her zu klicken. Dennoch sind sie weiterhin in ihren jeweiligen Zimmern zu finden. Obendrein können Verknüpfungen per Rechtsklick auf “Objekt bearbeiten” einen eigenen Namen und ein eigenes Icon erhalten.
## Push Notification an verschiedene Benutzergruppen senden
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/pushnotification-benutzergruppen/
Im Folgenden wird das Vorgehen zum Versenden von Push-Notifications an verschiedene Benutzergruppen erklärt.
Eine Benutzergruppe besteht in diesem Beispiel aus mehreren an ein WebFront angemeldeten Endgeräten (Smartphones).
### Einrichtung
Benutzergruppen für Push-Notifications werden in IP-Symcon über seperate WebFronts bzw. WebFront Visualisierungen realisiert.
> **Achtung:** Um mehr als ein WebFront einrichten zu können wird eine __IP-Symcon Professional__ oder __IP-Symcon Unlimited__ Version benötigt.
Wie ein weiteres WebFront eingerichtet wird kann unter "[Weiteres WebFront einrichten](https://www.symcon.de/de/llms/components/webfront-visualization.md) " nachgelesen werden.
Diese WebFronts können anschließend nach persönlichen Bedürfnissen seperat eingerichtet werden.
> **Hinweis:** Um gleiche Instanzen in verschiedenen WebFronts nutzen zu können werden [Links](https://www.symcon.de/de/llms/concepts.md) benötigt. Ein Beispiel ist unter "[Links verwenden](https://www.symcon.de/de/llms/how-to.md) " zu finden.
### Anmeldung in den Benutzergruppen
Wie oben beschrieben werden Benutzergruppen über WebFronts verwirklicht. Dabei reicht es aus, sich mit der App auf dem Smartphone, welches angemeldet werden soll, einmalig in dem jeweiligen WebFront anzumelden. Dadurch wird das Gerät automatisch der jeweiligen Benutzergruppe hinzugefügt. Ab diesem Zeitpunkt bekommt die App des Smartphones automatisch jede Push-Notification. Auf diese Weise kann das Smartphone bei beliebig vielen Benutzergruppen angemeldet werden.
> **Achtung:** Ein einloggen in das jeweilige WebFront über den Handy-Browser hat keine Eintragung in die Benutzergruppe zur Folge.
### Abmeldung aus einer Benutzergruppe
__Abmeldung aus einzelner Benutzergruppe:__
In der WebFront Visualisierung können im Reiter "Benachrichtigungen" die angemeldeten Geräte verwaltet werden. Somit kann ein einzelnes Smartphone von einer Benutzergruppe abgemeldet werden.
__Abmeldung aus allen Benutzergruppen:__
Soll ein Smartphone aus sämtlichen Benutzergruppen abgemeldet werden, ist dies über die Kern Instanz "Notification Control" möglich.
Im Konfigurations-Reiter sind alle Mobilgeräte ersichtlich, welche in einem WebFront angemeldet sind. Löscht man hier das Gerät, ist das Smartphone aus allen Benutzergruppen abgemeldet.
### Versenden von Push-Notifications
Eine Push-Notification kann durch [WFC_PushNotification](https://www.symcon.de/de/llms/modules/webfront-visualization.md) erstellt werden. Diese braucht die ObjektID des jeweilgen WebFronts an das die Push-Notification gesendet werden soll. Alle an diesem WebFront angemeldeten Smartphones bekommen dann über die App die Notification.
### Tipps & Tricks
Wenn über den Reiter "Sicherheit" ein Passwort für das jeweilige WebFront eingerichtet wird, ist es leicht zu verhindern, dass man sich für eine Benutzergruppe "versehentlich" anmeldet.
### Anwendungsbeispiele
Ein Haushalt mit mehreren WebFronts.
* __Ein WebFront für Administratoren:__ Nur Administratoren sind in dieser Benutzergruppe und werden über vermeintliche Systemprobleme benachrichtigt.
* __Ein WebFront für einzelnes Familienmitglied:__ Beinhaltet persönliche Interessen und sendet Nachrichten die nur die jeweilige Person interessieren.
* __Ein WebFront für alle Familienmitglieder:__ Der Kühlschrank meldet "Die Milch ist leer, jemand muss einkaufen", Das Wettermodul meldet "Es regnet gleich" oder Einbrecheralarm
## Wie kann ich...?
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/wie-kann-ich/
> **Achtung:** Viele dieser Skripte verwenden spezielle IP-Symcon Funktionen.
> Bitte nutzen Sie die [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md)/[Modulreferenz](https://www.symcon.de/de/llms/modules/index.md), wenn Sie die genaue Funktionsweise verstehen wollen.
[... ein Gerät einschalten und nach 60 Sekunden wieder aussschalten](https://www.symcon.de/de/llms/how-to.md)
[... eine Liste der Modulnamen samt GUID bekommen](https://www.symcon.de/de/llms/how-to.md)
[... eine Instanz aus PHP konfigurieren](https://www.symcon.de/de/llms/how-to.md)
[... die Anzahl der Sekunden herausfinden, die ein ScriptTimer noch abwartet](https://www.symcon.de/de/llms/how-to.md)
[... ein Skript per ID direkt includen](https://www.symcon.de/de/llms/how-to.md)
[... UpdateTime in einer eigenen String Variable ausgeben (1 Skript - n Variablen)](https://www.symcon.de/de/llms/how-to.md)
[... aus PHP einen Timer & Variable anlegen](https://www.symcon.de/de/llms/how-to.md)
[... eine Datei aus dem Internet herunterladen](https://www.symcon.de/de/llms/how-to.md)
[... einen Ordner rekursiv in die MediaPlayer Playlist laden](https://www.symcon.de/de/llms/how-to.md)
[... ein Variablenprofil exportieren](https://www.symcon.de/de/llms/how-to.md)
### ... ein Gerät einschalten und nach 60 Sekunden wieder aussschalten
```php
if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl
...
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
} else {
//An Befehl
...
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 60);
}
```
### ... eine Liste der Modulnamen samt GUID bekommen
```php
foreach(IPS_GetModuleList() as $mid)
{
$m = IPS_GetModule($mid);
echo $mid."=".$m['ModuleName']."\n";
}
```
### ... eine Instanz aus PHP konfigurieren
```php
//Eigenschaft verändern
WWWReader_SetPage($id,"http://www.google.de");
//Änderung abspeichern
IPS_ApplyChanges($id);
//Neue URL abrufen
WWWReader_UpdatePage($id);
```
### ... die Anzahl der Sekunden herausfinden, die ein ScriptTimer noch abwartet
```php
echo GetTimeRemaining($_IPS['SELF']); //Von sich selbst herausfinden
function GetTimeRemaining($id)
{
$eid=@IPS_GetEventIDByName("ScriptTimer", $id);
if($eid === false) {
return -1;
} else {
$e=IPS_GetEvent($eid);
if($e['NextRun'] == 0)
{
return -1;
} else {
return $e['NextRun'] - microtime(true);
}
}
}
```
### ... ein Skript per ID direkt includen
```php
//Skript mit ID 14871 einbinden
include(IPS_GetScriptFile(14871));
```
### ... UpdateTime in einer eigenen String Variable ausgeben (1 Skript - n Variablen)
```php
//Event auswerten
if($_IPS['SENDER'] != "Variable")
return;
SetValue(CreateVariableIDByName($_IPS['VARIABLE'], 'Updated', 3), date("d.m.y H:i:s"));
function CreateVariableIDByName($id, $name, $type)
{
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid===false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "This Variable was created by Script #".$_IPS['SELF']);
}
return $vid;
}
```
### ... aus PHP einen Timer & Variable anlegen
> **Hinweis:** Wenn das Skript ausgeführt wird, legt es einen Timer an der alle sechs Stunden startet und dann eine Variable mit der jeweiligen Tageszeit als Wert zwischen 0-3 in die Variable ablegt.
```php
//HINWEIS:
//~~~~~~~~
//Dieses Script richtet sicht automatisch ein, wenn es ausgeführt wird
//
//- Es wird abhängig von der Tageszeit eine Variable gesetzt (0-3)
// 0 = 0-6
// 1 = 6-12
// 2 = 12-18
// 3 = 19-24
//-----------------------------------------------------------------------------
//Ab diesem Punkt muss nichts verändert werden
//-----------------------------------------------------------------------------
if($_IPS['SENDER'] == "Execute")
{
$eventid = @IPS_GetEventIDByName("Timer", $_IPS['SELF']);
if($eventid === false)
{
$eventid = IPS_CreateEvent(1); //Cyclic
IPS_SetEventActive($eventid, true);
IPS_SetName($eventid, "Timer");
IPS_SetEventScript($eventid, $_IPS['SELF']);
IPS_SetEventCyclic($eventid, 0, 0, 0, 0, 3, 6);
}
$variableid = @IPS_GetVariableIDByName("Daytime", $_IPS['SELF']);
if($variableid === false)
{
$variableid = IPS_CreateVariable(1);
IPS_SetName($variableid, "Daytime");
IPS_SetParent($variableid, $_IPS['SELF']);
}
}
SetValue(IPS_GetVariableIDByName("Daytime", $_IPS['SELF']), floor(date("H") / 6));
```
### ... eine Datei aus dem Internet herunterladen
```php
$remoteImage = "https://www.google.com/images/srpr/logo3w.png";
$localImage = IPS_GetKernelDir()."\\media\\bild.jpg";
//Downloaden
$content = @file_get_contents($remoteImage);
if((strpos($http_response_header[0], "200") === false))
{
return;
}
//Speichern
file_put_contents( $localImage, $content );
```
### ... einen Ordner rekursiv in die MediaPlayer Playlist laden
```php
function WAC_PlayDir($id, $dir)
{
function ReadRecursive($dir, $subdir = "") {
$result = Array();
$files = scandir($dir."/".$subdir);
foreach($files as $file)
{
if(($file != ".") && ($file != "..")) {
if(is_dir($dir."/".$subdir."/".$file)) {
$res = ReadRecursive($dir, $subdir."/".$file);
$result = array_merge($res, $result);
} else {
$filedir = $subdir."/".$file;
$filedir = substr($filedir, 1, strlen($filedir));
$result[] = $filedir;
}
}
}
return $result;
}
$allowed = Array("mp3", "wma");
$files = ReadRecursive($dir);
//Den Zufallsgenerator von PHP verwenden
//shuffle($files);
WAC_ClearPlaylist($id);
foreach($files as $file)
{
$ext = pathinfo($dir."/".$file, PATHINFO_EXTENSION);
if(in_array(strtolower($ext), $allowed))
{
WAC_AddFile($id, $dir."/".$file);
}
}
WAC_Play($id);
}
```
### ... ein Variablenprofil exportieren
```php
getVariableProfileCreationCode("~Temperature.FHT");
getVariableProfileCreationCode("~Temperature.FHT", "TemperatureTest");
// erster Funktionsparameter: Profilname, zweiter Parameter (optional): neuer Profilname
function getVariableProfileCreationCode ($profileName, $newProfileName = "")
{
$profile = IPS_GetVariableProfile($profileName);
if ($profile !== false)
{
$profileName = (strlen($newProfileName) > 0) ? $newProfileName : $profileName;
echo 'IPS_CreateVariableProfile("'.$profileName.'", '.$profile['ProfileType'].');'."\n";
echo 'IPS_SetVariableProfileText("'.$profileName.'", "'.$profile['Prefix'].'", "'.$profile['Suffix'].'");'."\n";
echo 'IPS_SetVariableProfileValues("'.$profileName.'", '.$profile['MinValue'].', '.$profile['MaxValue'].', '.$profile['StepSize'].');'."\n";
echo 'IPS_SetVariableProfileDigits("'.$profileName.'", '.$profile['Digits'].');'."\n";
echo 'IPS_SetVariableProfileIcon("'.$profileName.'", "'.$profile['Icon'].'");'."\n";
foreach ($profile['Associations'] as $association)
{
echo 'IPS_SetVariableProfileAssociation("'.$profileName.'", '.$association['Value'].', "'.$association['Name'].'", "'.$association['Icon'].'", '.$association['Color'].');'."\n";
}
echo "\n";
}
}
```
## Tastenkombinationen
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/tastenkombinationen/
Bezeichnung der Sondertasten auf verschiedensprachigen Tastaturen:
| __Deutsch__ | __Englisch__ |
| ----------- | ------------ |
| Eingabe | Enter |
| Entf | Del |
| Leertaste | Space |
| Strg | Ctrl |
| Umschalt | Shift |
### Tastenkombinationen generell
| __Shortcut__ | __Beschreibung__ |
| ------------ | ----------------------------- |
| Esc | Schließt den aktuellen Reiter |
### Tastenkombinationen im Skripteditor
| __Shortcut__ | __Beschreibung__ |
| ----------------------------- | -------------------------------- |
| F3 | Suche nächsten |
| Umschalt + F3 | Suche vorherigen |
| Strg + A | Alles auswählen |
| Strg + C | Kopiert Text mit Strg + V |
| Strg + E | Ausführen |
| Strg + F | Suchen |
| Strg + H | Ersetzen |
| Strg + O | Objekt auswählen |
| Strg + R | Skript umbenennen |
| Strg + S | Speichern |
| Strg + D | Ereignisse anzeigen |
| Strg + X | Verschiebt Text mit Strg + V |
| Strg + Umschalt + K | Zeile löschen |
| Strg + V | Fügt Text aus Zwischenablage ein |
| Strg + Z | Rückgängig machen |
| Strg + Umschalt + Z, Strg + Y | Wiederholen |
| Strg + Leertaste | Funktionsliste anzeigen |
| Strg + Umschalt + F | In allen Skripten suchen |
| Strg + Umschalt + H | In allen Skripten ersetzen |
### Tastenkombinationen im Objektbaum
| __Shortcut__ | __Beschreibung__ |
| -------------- | ------------------------------------------------------------------------- |
| Eingabe | Öffnet Objekt oder bearbeitet Objekt, falls es nicht geöffnet werden kann |
| Entf | Löscht Objekt |
| Alt + 0 | Kategorie hinzufügen |
| Alt + 1 | Instanz hinzufügen |
| Alt + 2 | Variable hinzufügen |
| Alt + 3 | Skript hinzufügen |
| Alt + 4 | Ereignis hinzufügen |
| Alt + 5 | Medien hinzufügen |
| Alt + 6 | Link hinzufügen |
| Strg + C | Kopiert Objekt mit Strg + V, kopiere ObjektID in Zwischenablage |
| Strg + L | Erstellt Link auf Objekt mit Strg + V |
| Strg + X | Verschiebt Objekt mit Strg + V |
| Strg + V | Kopiert, verlinkt, oder bewegt Objekt |
| Strg + E | Führt Objekt aus |
| Strg + F | Suche ID |
| Strg + R, F2 | Objekt umbenennen |
| Strg + Eingabe | Objekt bearbeiten |
## CSV Daten aus WebFront in Excel speichern
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/
Graphen im WebFront werden über CSV Datensätze dargestellt. Um diese für eine weitere Verwendung in Excel, in ordentlicher und leserlicher Form, zur Verfügung zu stellen gibt es die Funktionalität "Text in Spalten".
Dies funktioniert für jegliche CSV Datensätze. Die so aufgebrochenen CSV Daten können zum Beispiel für Excelgrafiken o. ä. genutzt werden.
### Beispiel
#### Schritt 1 - CSV Export Datensatz kopieren
Innerhalb des WebFronts muss auf das Graphensymbol und anschließend auf den Menüpunkt "CSV" geklickt werden. In dem Popup (siehe Bild) müssen nur die Datensätze markiert und mit "Strg + C" kopiert werden.

#### Schritt 2 - Einfügen
Die Daten in eine leere Tabelle mit "Strg + V" einfügen. Gegebenenfalls die Schriftfarbe auf schwarz ändern, da die weiße Schriftfarbe möglicherweise übernommen wurde.

#### Schritt 3 - Text in Spalten
Um die Datensätze aufzuteilen wird die Funktion "Text in Spalten" genutzt.
Dazu muss der Reiter "Daten" ausgewählt und alle Datensätze markiert werden.
Anschließen auf den Button "Text in Spalten" klicken und es öffnet sich ein Dialog.

#### Schritt 4 - Dialog
Der Dialog verläuft in 3 Schritten.

"Weiter" klicken.

Semikolon auswählen, da die Datensätze durch dieses getrennt werden. "Weiter" klicken.

"Fertig stellen" klicken.
#### Ergebnis
So sollte die Tabelle dann aussehen.

## FTP benutzen
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/ftp-benutzen/
Dateien auf einem FTP Server können via Skript geöffnet werden.
### FTP Server vorbereiten
Falls noch nicht geschehen muss ein FTP Server aufgesetzt und konfiguriert werden. Die Beschreibung basiert auf [FileZilla Server](https://filezilla-project.org/download.php?type=server) . Der Vorgang ist bei anderen FTP Tools ähnlich.
Bereits während der Installation kann der FileZilla Server einen FTP Server auf dem localhost initialisieren.

Nach dem Öffnen des Tools erscheint folgender Dialog. Wenn die Standardeinstellungen bei der Installation genutzt wurden, können folgende Daten genutzt werden: "Host": "localhost", "Port": 14147, und kein Passwort.
> **Hinweis:** In den meisten Fällen muss noch die Firewall so konfiguriert werden, sodass diese den Zugriff auf den FTP erlaubt. [Hier](https://www.windowspro.de/wolfgang-sommergut/windows-firewall-fuer-ftp-konfigurieren) wird die Konfiguration beschrieben
#### Eine Gruppe erstellen
Der nächste Schritt ist das Erstellen einer Benutzergruppe. Benutzergruppen können genutzt werden um verschiedene Rechte und Zugriffsrechte zu vergeben. Es ist auch möglich eine allgemeingültige Benutzergruppe zu erstellen.



Die Benutzergruppeneinstellung kann via "Edit->Groups" verändert werden. Eine neue Benutzergruppe wird via "Add" hinzugefügt. Nach Eingabe eines Namens und Bestätigung ist die neue Benutzergruppe erstellt.


In der Kategorie "Shared folders" kann der Ordner ausgewählt werden auf welchen via FTP zugegriffen werden soll. Mit "Add" und dem darauffolgenden Dialog kann dieser hinzugefügt werden.

Nachdem ein gemeinsamer Ordner ausgewählt wurde können die Zugriffsrechte eingestellt werden. Standardmäßig ist nur Lesen und nicht Schreiben erlaubt.
#### Benutzer anlegen



Die Benutzer können über die Benutzerkonfiguration verwaltet werden. Diese kann via "Edit->Users" aufgerufen werden. Ein neuer Benutzer kann mit "Add" hinzugefügt werden. Im Dialog können dann Benutzername und Benutzergruppe ausgewählt werden. Nach Bestätigung wird der Benutzer erstellt.

Ein Benutzerpasswort kann bei Aktivierung der "Password" Checkbox eingetragen werden.
> **Hinweis:** Wenn nur ein Benutzer existiert kann das Erstellen einer Benutzergruppe übersprungen werden. Stattdessen wird der Benutzer dem gemeinsamen Ordner zugewiesen.
### Dateizugriff auf FTP via Skript
```php
// Inhalt auslesen
$adresse = "ftp://my-user:password@localhost/test.txt";
$inhalt = file_get_contents($adresse);
```
```php
echo $inhalt;
// Inhalt schreiben
$zielAdresse = "ftp://my-user:password@localhost/test.txt";
$neuerInhalt = "Hallo Welt! Dies ist der neue Inhalt.";
file_put_contents($zielAdresse, $neuerInhalt);
```
Eine Datei auf dem FTP Server kann wie eine lokale Datei geöffnet werden. Nur die Adressierung ändert sich. Das Beispiel liest Datei "text.txt" ein und gibt diese aus. Die Adresse ist folgendermaßen strukturiert: "ftp://<Benutzername>(:<Passwort>)@<Servername>/<Dateipfad>".
> **Hinweis:** Es ist auch möglich spezielle PHP Funktionen zu nutzen, welche [hier](https://windows.php.net/download/) beschrieben sind.
## I/O eines Gateways austauschen
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/io-eines-gateways-austauschen/
Manchmal ist es nötig die I/O Instanz eines Gateways auszutauschen.
Dies wäre dann der Fall, wenn z.B. statt einer seriellen, eine TCP basierende Kommunikation verwendet werden soll. Oder ein anderes/neues Gateway zum Einsatz kommt.
> **Hinweis:** Eine Liste der verschiedenen I/O's befindet sich unter [Instanzen -> Verbindungskomponenten](https://www.symcon.de/de/llms/concepts.md) .
Das Gateway zur jeweiligen Geräte-Instanz erreicht man am einfachsten über "Gateway konfigurieren" im oberen Bereich der Instanzkonfiguration.
In der Instanzkonfiguration des Gateways kann nun die übergeordnete Instanz, in diesem Fall die I/O Instanz, über "Schnittstelle ändern" im oberen Bereich angepasst werden.
In dem erscheinenden Dialog kann ein existierender kompatibler I/O ausgewählt oder alternativ per "Neu" ein neuer I/O erstellt werden.


## Email Benachrichtigung
Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/email-benachrichtigung/
IP-Symcon beinhaltet die Möglichkeit E-Mails via [SMTP-Instanz](https://www.symcon.de/de/llms/modules/smtp.md) zu versenden. Dies bietet beispielsweise die Möglichkeit zu informieren, ob im SmartHome die Haustür oder ein Fenster (Sensoren vorausgesetzt) geöffnet wurde, ob eine bestimmte Person anwesend ist (Anwesenheits-Kontroll-Modul vorausgesetzt) oder der allgemeine Status von verschiedensten Daten und Verbräuchen. Dies kann einerseits für eine erhöhte Sicherheit (z.B., wenn sich ein Einbrecher an einem Fenster oder der Tür zu schaffen macht) oder aber andererseits auch für eine Steigerung des Komforts (z.B. allgemeine SmartHome Informationen) sorgen. Auch Benachrichtigungen zu einem bestimmten Zeitpunkt (z.B. als Erinnerung, monatlicher Bericht) kann verwirklicht werden.
### Instanz erstellen
Um eine E-Mail zu einem bestimmten Zeitpunkt zu senden, muss zuerst eine [Instanz](https://www.symcon.de/de/llms/concepts.md) erstellt werden. Instanzen repräsentieren z.B. Geräte, die an IP-Symcon angeschlossen sind. Diese können sowohl konfiguriert werden, als auch Befehle erhalten.
Eine neue SMTP-Instanz kann erstellt werden, indem im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) auf "+" geklickt oder per Kontextmenü der Punkt "Objekt hinzufügen" -> "Instanz" ausgewählt wird. Die zweite Möglichkeit hat den Vorteil, dass die Instanz direkt unterhalb des von ausgewählten Objekts im Objektbaum erstellt wird und nicht hinterher einsortiert werden muss.
Im Menü "Instanz hinzufügen" kann über den Schnellfilter nach "E-Mail" gesucht werden und "E-Mail, Send (SMTP)" hinzugefügt werden.

Innerhalb der Konfigurationsseite "E-Mail, Send (SMTP)" müssen die persönlichen Zugangsdaten eintragen werden.

"Host", "Port" und "Benutze SSL" (Verschlüsselung) müssen konfiguriert werden. Beim jeweiligen Provider kann nach den korrekten Einstellungen (Stichwort: SMTP) gesucht werden.
Unter "Benutze Authentifizierung" müssen Benutzername und Passwort des E-Mail-Postfachs eingetragen werden. Der "Absender-Name" kann frei gewählt werden. Dieser wird später bei Empfängerpostfach als Absender angezeigt.
Bei "Absender-Adresse" und bei "Empfänger" müssen E-Mail-Adressen eingetragen werden.
> **Hinweis:** Bei der "Absender-Adresse" handelt es sich um die Adresse, die später bei E-Mail-Eingang als Absender-Adresse angezeigt wird, während "Empfänger" die Adresse darstellt, an die IP-Symcon eine Nachricht verschickt.
Nachdem alles korrekt ausgefüllt wurde, muss die Konfiguration mit "Übernehmen" gespeichert werden. Nun kann innerhalb der Testumgebung, im unteren Bereich der Konfigurationsseite, eine Testnachricht an die "Empfänger" E-Mail-Adresse geschickt werden.
### Beispiele
#### 1. E-Mail zu einer bestimmten Zeit
In diesem Beispiel soll zu einem bestimmten Zeitpunkt eine E-Mail zur Erinnerung versandt werden.
##### Ereignis erstellen
Es muss ein [zyklisches Ereignis](https://www.symcon.de/de/llms/concepts.md) erstellt werden. Ereignisse können bestimmte Vorgänge bei bestimmten Bedingungen oder Zeitpunkten starten.
Ein neues Ereignis kann erstellt werden, indem im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) auf "+" geklickt oder per Kontextmenü den Punkt "Objekt hinzufügen" -> "Ereignis" -> "Zyklisch" ausgewählt wird. Die zweite Möglichkeit hat den Vorteil, dass die Instanz direkt unterhalb des ausgewählten Objekts im Objektbaum erstellt wird und nicht hinterher einsortiert werden muss.

Nun muss genau eingetragen werden, wann die Erinnerung per E-Mail erfolgen soll. Dies ist sinnvoll, wenn beispielsweise während der Arbeit im Büro (Montag bis Freitag) per E-Mail daran erinnert werden soll, dass nach der Mittagspause (um 14:20 Uhr) ein bestimmtes Medikament eingenommen werden muss.

Es muss bei "Aktion" "Schalte Instanz" und bei "Ziel" die zuvor erstellte SMTP-Instanz ausgewählt werden. Bei "Funktion" muss "SMTP_SendMail" ausgewählt werden, da ansonsten keine E-Mail gesendet wird. Bei Parameter kann nun die Nachricht eingegeben werden, die zum ausgewählten Zeitpunkt per E-Mail verschickt werden soll. Es wird nun von Montag bis Freitag täglich eine E-Mail versendet, die daran erinnert Medikamente einzunehmen.
#### 2. E-Mail bei bestimmtem Ereignis
In diesem Beispiel soll eine E-Mail versendet werden, welche an ein bestimmtes Ereignis geknüpft ist.
Es soll z.B. unterwegs eine E-Mail gesendet werden, wenn unerlaubterweise ein Fenster oder Tür geöffnet wurde und möglicherweise ein Einbrecher am Werk ist.
##### Variable und Ereignis erstellen
Zur Verwirklichung des Beispiels kann ein Ereignis an eine bestehende Statusvariable oder eine selbsterstellte Variable geknüpft werden. [Variablen](https://www.symcon.de/de/llms/concepts.md) sind Datenhalter, die es erst ermöglichen, dass ein An- bzw. Ausschalten (z.B. des Türsensors) funktioniert und im WebFront angezeigt wird.
In diesem Beispiel stellt die selbsterstellte Variable einen imaginären Türsensor dar.
Eine neue Variablen kann angelegt werden, indem im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) auf "+" geklickt oder per Kontextmenü den Punkt "Objekt hinzufügen" -> "Variable" -> “Variable hinzufügen” ausgewählt wird. Die zweite Möglichkeit hat den Vorteil, dass die Variable direkt unterhalb des von ausgewählten Objekts im Objektbaum erstellt wird und nicht hinterher einsortiert werden muss.
Im Menü "Variable hinzufügen" muss bei "Typ" nun "boolean" ausgewählt werden, denn es soll eine E-Mail verschickt werden, wenn der Türsensor aktiviert wird.

Danach kann als "Eigenes Profil" "~Presence" ausgewählt werden, da die Anwesenheit einer Person bzw eine geöffnete Tür im Haus angezeigt werden soll.
Dann muss ein Name für Variable gewählt werden. Es wird empfohlen sprechende Namen zu Wählen (z.B.: "Anwesenheit").
Nun muss anstatt ein "Zyklisches" ein "Ausgelöstes Ereignis" erstellt werden. In der Konfiguration des Ereignisses muss bei "Variable" die erstellte Anwesenheitsvariable ausgewählt werden.

“Auslöser” ist in diesem Beispiel "Bei bestimmtem Wert". Als "Wert" muss "True" (True=Anwesend; False=Abwesend) eingestellt und "Nachfolgende Ereignisse ausführen" aktiviert sein.

Es muss bei "Aktion" "Instanz schalten" und bei "Ziel" die zuvor erstellte SMTP-Instanz ausgewählt werden. Bei "Funktion" muss "SMTP_SendMail" ausgewählt werden, da ansonsten keine E-Mail gesendet wird. Im Parameter muss nun die Nachricht eingegeben werden, die zum ausgewählten Zeitpunkt per E-Mail verschickt werden soll. Nun wird eine Mail geschickt, wenn die Variable auf True gesetzt (imaginäre Tür geöffnet) wird.
---
# Grundlagen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/
### Objekte
Bei IP-Symcon gibt es sieben verschiedene Objektarten.
__Objekte können Kategorien, Instanzen, Variablen, Automationen, Ereignisse, Medien oder Links sein.__
> **Hinweis:** Jedes Objekt besitzt eine feste und nicht änderbare ID (Identifikationsnummer). Dadurch ergeben sich viele Vorteile:
>
> * Jedes Objekt ist einzigartig und eindeutig bestimmbar.
> * Der Name kann jederzeit frei verändert werden.
> * Größere Projekte können schneller abgearbeitet werden.
> * Umfangreiche Funktionen der Objektverwaltung
> * Performante Verknüpfung innerhalb der Software
### Eigenschaften eines Objekts
Die Eigenschaften bzw. Einstellungen eines Objekts können durch einen Doppelklick oder via "Rechtsklick" -> "Objekt bearbeiten" aufgerufen werden.

__ObjektID__
Jedes Objekt bei IP-Symcon besitzt eine Identifikationsnummer (ObjektID), die einmalig und nicht veränderbar ist. Somit ist jedes Objekt eindeutig bestimm- und ansprechbar.

__Name__
Ist der Name des Objekts. Der Name wird auch zur Darstellung in den [Visualisierungen](https://www.symcon.de/de/llms/components/tile-visualization.md) genutzt.
__Ort__
Der Ort ist das übergeordnete Objekt im Objektbaum und bestimmt sowohl die Position im Objektbaum als auch im WebFront.
> **Hinweis:** Bestimmte Instanzen, wie z.B. I/O, Konfiguratoren, werden in den jeweiligen Bereichen I/O Instanzen, Konfigurator Instanzen angelegt. Diese Instanzen können nicht verschoben werden.
#### Visuelle Einstellungen
Diese Einstellungen steuern das Verhalten im WebFront.
__Icon__
Symbol welches in den [Visualisierungen](https://www.symcon.de/de/llms/components/tile-visualization.md) genutzt werden soll. Weitere Informationen sind unter [Icons](https://www.symcon.de/de/llms/components/icons.md) einsehbar.
__Objekt anzeigen__
Regelt ob ein Objekt in den Visualisierungen angezeigt werden soll oder versteckt bleiben soll.
__Titel anzeigen (ab Symcon 9.1)__
Regelt ob bei der Kachel des Objekts in der Visualisierung der Titel angezeigt werden soll oder versteckt wird.
__Maximieren-Button anzeigen (ab Symcon 9.1)__
Regelt ob bei der Kachel des Objekts in der Visualisierung der Maximieren-Button angezeigt werden soll oder versteckt wird.
__Objekt aktivieren__
Diese Einstellung steuert ob ein Objekt überhaupt aktiv ist oder nicht. Ist es deaktiviert, so wird das Objekt in den Visualisierungen ausgegraut und ist nicht steuerbar.
#### Weitere Einstellungen
Zusätzliche Einstellungen, welche optional sind.
__Beschreibung__
Eine Beschreibung des Objekts. Kann genutzt werden um wichtige Notizen zu hinterlassen und somit eine direkte Beschreibung zu liefern. Die Beschreibung kann unter dem Punkt "Weitere Einstellungen" gefunden werden.
__Ident__
Als zusätzlicher Identifikator besitzen Objekte einen Ident. Die Besonderheit des Ident im Gegensatz zum Namen ist, dass innerhalb einer Kategorie in der logischen Baumansicht jeder Ident einmalig ist. Dieser ist z.B. in der Modulentwicklung wichtig.
### Kontextmenü
Das Kontextmenü im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) beinhaltet verschiedene Funktionalitäten.
> **Hinweis:** Jede Objektart hat, zusätzlich zu den beschriebenen Funktionalitäten, typspezifische und erweiternde Optionen. Siehe: [Objektartspezifische Kontexteinträge](https://www.symcon.de/de/llms/concepts.md)
#### Objekt hinzufügen
Fügt ein neues Objekt hinzu. Es öffnet sich ein Dialog bei dem Schrittweise alle wichtigen Einstellungen getätigt werden können.
Weiter Informationen sind auch unter [Objekt hinzufügen](https://www.symcon.de/de/llms/how-to.md) nachzulesen.

#### Objekt öffnen
Sofern das Objekt eine objektspezifische Aktion besitzt, wird diese aufgerufen. Dies bedeutet bei Instanzen wird die Konfiguration geöffnet, bei Skripten der Skripteditor, bei Medien wird eine Vorschau angezeigt. Sollte es keine objektspezifische Aktion geben wird die Option deaktiviert und ausgegraut dargestellt.
> **Hinweis:** Ein Doppelklick auf ein Objekt öffnet den Dialog "Objekt öffnen". Sollte die Option ausgegraut und somit keine objektspezifische Aktion vorhanden sein, öffnet der Doppelklick den Dialog "Objekt bearbeiten".
#### Objekt umbenennen
Ändert den Namen des Objekts. Lässt die ObjektID und den Ident unberührt. Es kann unter allen Objekten mehrfach den gleichen Namen geben.
#### Objekt bearbeiten
Jedes Objekt hat die Option "Objekt bearbeiten". Es öffnet den objektabhängigen Dialog. Hier können verschiedene Informationen entnommen und Einstellungen gemacht werden.

#### Objekt sortieren
Bestimmt die Reihenfolge der Objekte über den Positionswert. Einhergehend wird auch die Position in den Visualisierungen darüber gesteuert.

> **Hinweis:** Über die "Spalten"-Option kann die Positionsspalte dauerhaft eingeblendet werden. Mit dieser können Objekte via Doppelklick auf den Positionswert schneller einsortiert werden, ohne jedesmal den "Objekt sortieren"-Menüpunkt anzuklicken.
#### ObjektID kopieren
Dies kopiert die ObjektID des Objekts in die Zwischenablage. Dies ist nützlich um ID's in Skripten einzufügen. ("Rechtsklick->einfügen" oder "STRG + V" im Editor).
#### Objekt verlinken
Erstellt von dem Objekt eine Verlinkung. Es können mehrere Links auf das selbe Objekt verweisen. Im Dialogfenster kann die Position des Link-Objekts ausgewählt werden.

#### Objekt duplizieren
Erstellt ein identisches Objekt mit eigener einmaligen ObjektID.
#### Objekt verschieben
Öffnet einen Dialog um den Ort des Objekts auszuwählen unter dem es platziert wird.
#### Objekt löschen
Löscht das Objekt und alle seine Unterobjekte, falls vorhanden.
### Objektartspezifische Kontexteinträge
#### Nach Referenz suchen (Alle außer Kategorien)
Öffnet einen Dialog, welcher entweder besagt, dass es keine Referenzen gibt oder alle gegebenen Referenzen auflistet.
Folgende Kriterien werden je nach Objektart durchsucht:
| Objektart | Wo/Was wird nach Referenz/ID gesucht? |
| ---------- | --------------------------------------------------------------------------------- |
| Variable | Es werden die ID's für "VariableAction" und "VariableCustomAction" durchsucht. |
| PHP-Skript | Der Inhalt eines PHP-Skriptes wird nach der ID durchsucht. |
| Ereignis | Der Inhalt und der Auslöser werden nach der ID durchsucht. |
| Link | Die TargetID/Wert wird durchsucht. |
| Instanz | IDs von möglichen Objekten, welche auf der Konfigurationsseite ausgewählt wurden. |
#### Befehle testen (Nur Instanzen)
Öffnet einen Dialog zum Testen der wichtigsten [Aktionen](https://www.symcon.de/de/llms/concepts/automations.md) einer Instanz.
__Für Experten:__ Mit der Tastenkombination Strg+C kann der eingestellte Befehl als PHP-Code kopiert werden und im Skripteditor eingefügt werden.
#### Variable verändern (Nur Variablen)
Öffnet den Dialog zum Setzen eines Variablenwertes.
#### Automation ausführen (nur Automationen)
Führt das Skript aus ohne es zu öffnen.
Mögliche Ausgaben werden in einem Dialog ausgegeben.
#### Zum Quellobjekt springen (nur Links)
Springt innerhalb des Objektbaums zum Ursprungsobjekt des Links.
## Kategorien
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/kategorien/
Um eine einfache Bedienung der verschieden agierenden Geräte zu gewährleisten und um einen Überblick über die Vielzahl der Instanzen zu behalten, bietet IP-Symcon eine Funktion zum einsortieren. Im Objektbaum können die Instanzen der Geräte verschiedenen Kategorien zugeordnet werden.
### Einrichtung
Über das "+" unten Rechts im Objektbaum oder über "Rechtsklick" -> "__Objekt hinzufügen__" und folgend "Kategorie" kann eine Kategorie erstellt werden. Im folgenden Dialog wird die neue Kategorie konfiguriert und unter anderem Name und Ort definiert. Zur Namensgebung eignet sich beispielsweise der Bereich in dem sich einzusortierende Geräte befinden. _In einem Einfamilienhaus bietet sich z.B. die Bezeichnung des Stockwerks an._
> **Achtung:** Es ist unbedingt zu beachten, dass beim Löschen einer Kategorie alle Unterkategorien und alle hier eingeordneten Geräte im Objektbaum ebenfalls gelöscht werden.
### Konfiguration
Die erstellte Kategorie befindet sich jetzt im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md). Auf diese Art und Weise können noch weitere Oberkategorien erstellt werden, z.B. Erdgeschoss, 1. Stock, 2. Stock...
Über einen Rechtsklick im Objektbaum auf eine ausgewählte Oberkategorie und "Objekt hinzufügen -> Kategorie hinzufügen" können Kategorien erstellt werden, bei denen die Oberkategorie standardmäßig als Ort eingestellt ist. Dann kann ein Name (z.B. Wohnzimmer) für die Unterkategorie ausgewählt werden. Dies lässt sich beliebig oft auch für jegliche Unterkategorie wiederholen.
Die Reihenfolge der Kategorien kann durch "Rechtsklick->Objekt sortieren" bestimmt werden.
Die Verschachtelung ineinander ist durch einfaches Drag and Drop möglich.
> **Hinweis:** Es wird empfohlen, die Bezeichnung der __Kategorien/Unterkategorien/Geräte__ wie folgt zu verwenden:
> __Etage / Zimmer / Gerät__
### Tipps & Tricks
Zum Überblick sollte diese Bezeichnungsart von Anfang an genutzt werden, da im Laufe der Zeit immer mehr Geräte hinzukommen.
Jeder Gerätename sollte nur sich selbst erklären und keine Komponenten enthalten, die vorher schon benannt wurden.
Z.B.: Erdgeschoss / Wohnzimmer / Deckenlampe (Nordseite)
### WebFront
Ein weiterer Vorteil an dieser Struktur ist die automatische Eins zu Eins Visualisierung innerhalb des WebFronts.
Sofern die angezeigte Oberkategorie sichtbare Unterkategorien hat, wird automatisch eine Kategorie-Navigationsleiste angezeigt.
Wird über die Navigation eine Unterkategorie ausgewählt, so wird im Objektbereich deren Inhalt dargestellt.
Besitzt eine so angezeigte Kategorie ebenfalls sichtbare Unterkategorien, so wird die Navigation automatisch erweitert.
Per "Link"-Objekt verknüpfte Kategorien werden ebenfalls in der Navigationsleiste angezeigt. Über die Eigenschaft “Zeige Navigation” lässt sich die Kategorieleiste bei Bedarf ausblenden.
## Instanzen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/
Instanzen repräsentieren im Normalfall Geräte, die an IP-Symcon angeschlossen sind. Zusätzlich können Instanzen auch virtuelle Geräte wie z. B. "Text To Speech" oder "Mediaplayer" repräsentieren, welche nicht physikalisch vorhanden sind. Die Zustände von Geräten werden in der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) und im [WebFront](https://www.symcon.de/de/llms/components/webfront-visualization.md) über [Variablen](https://www.symcon.de/de/llms/concepts.md) dargestellt.
### Einbindung
Über den "Instanz hinzufügen" Dialog oder über die Konfiguratoren in der Verwaltungskonsole können neue Geräte hinzugefügt werden. Zusätzlich zu dem vom Benutzer hinzugefügten Gerät erstellt IP-Symcon, falls benötigt, weitere Instanzen, welche die Kommunikation zwischen Gerät und IP-Symcon aufbauen. Diese Instanzen (auch "übergeordnete Instanzen" genannt) sind dabei austauschbar bzw. umkonfigurierbar, ohne dass das Gerät neu eingebunden werden muss. Soll zum Beispiel das Protokoll mit dem kommuniziert wird oder die Anschlussart des Geräts von Funk auf Seriell geändert werden, kann dies in der passenden Gateway- oder I/O-Instanz umgestellt werden. Diese Änderung gilt anschließend für alle an diese Gateway Instanz angeschlossenen Geräte, beinflusst aber in keiner Weise die Zustandsvariablen, eingerichtete Skripte oder die ursprünglich erstellte Instanz des Geräts selbst.
### Übergeordnete Instanzen
Übergordnete Instanzen kennen und nutzen sowohl die benötigten Protokolle als auch Eigenschaften für einen Verbindungsaufbau zwischen Geräten und IP-Symcon. Diese Instanzen können somit nur Gateway- oder I/O-Instanzen sein.
Falls übergeordneten Instanzen zur Verbindung benötigt werden, richtet IP-Symcon diese vollkommen automatisch ein. Gegebenfalls wird noch eine Konfiguration dieser benötigt (z.B. Das Einstellen der IP-Adresse).
Die übergeordnete Instanz für ein Gerät/Instanz ist am schnellsten über das Zahnrad innerhalb des jeweiligen Konfigurationsreiters erreichbar.
Wie unten im Beispiel zu sehen, kommunizieren die beiden Geräte "AKM-868" und "LGS-868" via Funk mit der übergeordneten Instanz "ProJet Gateway". Das Gateway kommuniziert seinerseits mit der übergeordneten I/O Instanz "Client Socket IPS 868" via LAN.
Es wäre nun problemlos möglich die I/O Instanz von einer LAN-basierenden zu einer seriellen Kommunikation umzustellen (dies macht natürlich nur Sinn wenn das neue Gateway über ein serielles Kabel mit IP-Symcon kommuniziert). Dazu wird im "ProJet Gateway" der Modus auf "Connection via: Serial" umgestellt. Automatisch richtet IP-Symcon eine Serial Port Instanz ein, welche mit dem Gateway verknüpft ist. Nun wäre über das Zahnrad auf der Gateway-Konfigurationsseite die übergeordnete Instanz "Serial Port IPS 868" aufruf-/konfigurierbar. Dies beeinflusst in keiner Weise die beiden Geräte AKM und LGS.

### Einbindungsarten
Instanzen werden immer nach einem ähnlichen Schema in IP-Symcon eingebunden.
Es gibt 3 Typen von Einbindungen.
| Typ | Beschreibung | Beispielsysteme |
| ----- | -------------------------------- | ---------------- |
| 1:1:n | 1 I/O - 1 Gateway - n Instanzen | EnOcean |
| 1:m:n | 1 I/O - m Gateways - n Instanzen | LCN |
| 1:n | 1 I/O - n Instanzen | Registervariable |
### Verbindungskomponenten
__I/O:__
I/O beschreibt die Kommunikationsart zwischen dem Gateway und dem Server(IP-Symcon).
| Art | Beschreibung |
| ---------------- | --------------------------------------------------------------------- |
| Client Socket | TCP-Client basierende Kommunikation |
| HID | HID basierende Kommunikation (USB) |
| Multicast Socket | Multicast basierende Kommunikation |
| Serial Port | Seriell basierende Kommunikation |
| Server Socket | TCP Server basierende Kommunikation |
| TMEX | TMEX basierende Kommunikation |
| UDP Socket | UDP-Client basierende Kommunikation |
| Virtual I/O | Emuliert einen Serial Port, einen Client Socket oder einen UDP Socket |
| WWW Reader | HTTP(Get) Anfragen |
__Gateway/Splitter:__
An ein Gateway können ein oder mehrere Geräte/Instanzen angebunden sein. Das Gateway kümmert sich um die Kommunikation zwischen Gerät und I/O.
> **Achtung:** Wenn nicht eine Standardkonfiguration genutzt wird, ist zu kontrollieren ob die angelegte I/O-Instanz der Konfiguration entspricht. (z.B. anstatt LAN wird ein serieller Anschluss genutzt) In diesem Fall muss die I/O Instanz ausgetauscht werden.
### GUID
Jedes Instanz hat eine eindeutige GUID, welche den Typ bestimmt (z.B. Es ist ein AKM-868 oder WDT-868).
Die GUID ist eine UUID und hat das Format 8-4-4-4-12. Die Zahlen geben die Anzahl der Ziffern an. Die Ziffern bestehen aus Zeichen zwischen 0-9 und A-F. Es müssen immer Bindestriche und geschweifte Klammern vorhanden sein und es dürfen nur Großbuchstaben verwendet werden. (Beispiel: {12345678-90AB-CDEF-1234-567890ABCDEF} )
> **Achtung:** Die GUID ist nicht mit der 5-stelligen ObjektID zu verwechseln, welche eindeutig das einzelne Objekt identifiziert, aber nicht dessen Typ.
### Instanz erstellen
Das Erstellen von Instanzen bzw. das Einbinden von Geräten erfolgt wiefolgt:
[Geräte einbinden](https://www.symcon.de/de/llms/how-to.md)
### Beispiel
Hier ein Beispiel anhand der physikalischen Baumansicht.
Geräte-Instanz "PTM200 Button"
-> (übergeordnete) Gateway-Instanz "EnOcean Gateway"
-> (übergeordnete) I/O-Instanz "Client Socket (EnOcean Gateway #36011)"

## Konfiguratoren
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/konfiguratoren/
Konfiguratoren stellen in IP-Symcon eine ganz spezielle Art von Instanzen dar, die, wenn für ein System verfügbar, die Einrichtung in IP-Symcon erheblich erleichtern. Es können für mehrere Stränge/Linien/Gateways jeweils Konfiguratoren erstellt werden. Die Erstellung eines Konfigurators ist im Objektbaum über das hinzufügen einer Instanz möglich.

Zur Zeit sind Konfiguratoren für die folgenden Systeme verfügbar:
* [1-Wire](https://www.symcon.de/de/llms/modules/1-wire.md)
* [digitalStrom](https://www.symcon.de/de/llms/modules/digitalstrom.md)
* [Eaton xComfort](https://www.symcon.de/de/llms/modules/xcomfort.md)
* [KNX](https://www.symcon.de/de/llms/modules/knx.md)
* [EnOcean](https://www.symcon.de/de/llms/modules/enocean.md)
* [HomeMatic](https://www.symcon.de/de/llms/modules/homematic.md)
* [IPS-868](https://www.symcon.de/de/llms/modules/ips-868.md)
* [LCN](https://www.symcon.de/de/llms/modules/lcn.md)
* [M-Bus](https://www.symcon.de/de/llms/modules/mbus.md)
* [MQTT](https://www.symcon.de/de/llms/modules/mqtt.md)
* [Siemens Logo](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md)
* [Siemens OZW](https://www.symcon.de/de/llms/modules/siemens-ozw.md)
* [Z-Wave](https://www.symcon.de/de/llms/modules/z-wave.md)
| Farbe | Bedeutung | Hinweis |
| ----- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| Grün | Neues Gerät, welches noch nicht in IP-Symcon eingerichtet wurde | Gerät kann als Instanz hinzugefügt werden |
| Rot | Gerät nicht mehr vorhanden, aber noch in IP-Symcon eingerichtet | Instanz kann in IP-Symcon gelöscht werden |
| Grau | Die vorhandene Instanz ist anders konfiguriert als empfohlen | Der Erstellen Button ändert sich auf Prüfen um die empfohlenen Einstellungen anzuzeigen |
| Weiß | Gerät vorhanden und in IP-Symcon eingerichtet | Keine Aktion erforderlich |
### Screenshots
#### 1-Wire Konfigurator

#### digitalStrom Konfigurator

#### xComfort Konfigurator

#### KNX Konfigurator

#### EnOcean Konfigurator

#### HomeMatic Konfigurator

#### IPS-868 Konfigurator

#### LCN Konfigurator


#### M-Bus Konfigurator

#### MQTT Konfigurator

#### Siemens Logo

#### Siemens OZW Konfigurator

#### Z-Wave Konfigurator

## Variablen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/variablen/
Eine Variable ist ein Behälter, der einen Wert enthält. Dieser Wert kann ein Boolean, Float, Integer oder String sein. Im Normalfall beinhalten Variablen Statuswerte von Geräten. Zusätzlich können selbsterstellte Variablen genutzt werden um eigene Werte abzuspeichern, welche z.B. ebenfalls in der Visualisierung dargestellt oder in Skripten verarbeitet werden können.
> **Hinweis:** [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) haben im engeren Sinn, nichts mit normalen Variablen zu tun, da diese nur innerhalb von Skripten verfügbar sind.
Zum Austausch und zur Speicherung aller Daten benutzt IP-Symcon diese Variablen. Variablen beinhalten Statuswerte von Geräten, die es erst möglich machen, dass z.B. die Temperatur eines Thermometers in der Visualisierung sichtbar wird oder dass ein An- bzw. Ausschalten der Beleuchtung überhaupt funktioniert.
### Beschreibung
Bei IP-Symcon gibt es zwei Arten von Variablen:
#### Status Variablen
Jede Instanz eines Gerätes kann eine oder mehrere Status-Variablen besitzen, diese werden automatisch erstellt. In diesen Variablen wird der Status des Gerätes gespeichert (z.B. An / Aus oder Temperatur in °C oder zusätzlich noch die Feuchtigkeit und der Zustand der Batterie).
Wann sich der Status bzw. dessen Wert ändert oder aktualisiert wird, hängt von dem jeweiligen System ab. Eine Wetterstation z.B. sendet periodisch die Umweltdaten an IP-Symcon, während bei anderen Systemen aktiv deren Zustand (z.B. ein Fenster- Türkontakt) abgefragt werden muss. Das (Abfrage-)Intervall wird in der Konfiguration der zugehörigen Instanz eingestellt.
Eine wichtige Besonderheit der Status-Variablen ist, dass deren Wert nicht vom Anwender verändert werden darf. Diese Variablen spiegeln nur den Zustand und die Datensätze des Gerätes wieder.
> **Achtung:** Status Variablen dürfen nicht gelöscht werden, da dies zu unvorhersehbarem Verhalten der jeweiligen Instanz führen kann.
__Beispiel 1:__
Um die Soll-Raumtemperatur bei einer Heizungssteuerung zu ändern, wird ein Befehl ausgeführt, welcher den Soll-Wert an das Gerät übermittelt. Es wird nicht die Status-Variable "Temperatur" selbst verändert. Die dazu notwendigen Befehle können in der jeweiligen [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) nachgelesen werden. Alternativ kann auch der Befehl "[RequestAction](https://www.symcon.de/de/llms/functions/access-variables.md) " direkt auf die Variable angewandt werden. IP-Symcon sucht dann den dedizierten Befehl selbst und nutzt diesen.
__Beispiel 2:__
Ein abstrakteres Beispiel in Form eines KFZ: um ein Fahrzeug zu beschleunigen oder abzubremsen, müssen die entsprechenden Fußpedale betätigt werden. Es reicht nicht aus die Tachonadel auf die gewünschte Geschwindigkeit einzustellen.
> **Hinweis:** Fazit: Status Variablen liefern ausschließlich Informationen über das Gerät und sind darum explizit als "Nur Lesen" markiert.
#### Benutzerdefinierte Variablen
Benutzerdefinierte Variablen können selbst erstellt werden und einen von vier Datenypen (siehe Tabelle Variablentypen ) beinhalten. Benutzerdefinierte Variablen können vollständig Manipuliert werden.
__Beispiel 1:__
Soll ein bisher unbekanntes Gerät (z.B. AV-Verstärker) in IP-Symcon integriert oder ein Wert umgerechnet werden, so ist dies mithilfe der "Benutzerdefinierten Variablen" lösbar.
__Beispiel 2:__
Ein weiteres Beispiel wäre die Umrechnung der Außentemperatur zusätzlich in Grad Fahrenheit (°F).
### Variablentypen
| Variablentyp | Beschreibung | Beispiel |
| ------------ | -------------- | ----------------------------- |
| Boolean | True / False | z.B. An oder Aus |
| Float | Gleitkommazahl | z.B. 231,956 |
| Integer | Ganze Zahlen | z-B. -10 … -4 … 0 … 32 … 472 |
| String | Text | “Hallo IP-Symcon. Hallo Welt” |
### Neue Variablen anlegen
[Video](https://youtu.be/wNz7sKdhMKA?rel=0&cc_load_policy=1)
Eine Variable kann im Objektbaum über das "+" oder "Rechtsklick" -> "Objekt hinzufügen" -> "Variable" erstellt werden. Die zweite Variante hat den Vorteil, dass die Variable direkt unterhalb vom ausgewählten Objekt erstellt wird und nicht erst hinterher einsortiert werden muss. Im folgenden Fenster muss ein Variablentyp, [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) und ebenso ob die [Variablenaufzeichnung](https://www.symcon.de/de/llms/modules/archive-control.md) für diese Variable aktiv sein soll ausgewählt werden. Die [Aggregation](https://www.symcon.de/de/llms/modules/archive-control.md) gibt dabei den Typ der Variablenaufzeichnung an.
Bevor die Erstellung mit "OK" bestätigt wird, sollte darauf geachtet werden, dass die neu erstellte Variable einen aussagekräftigen Namen hat. Optional kann noch eine Bemerkung hinzugefügt und ein [Icon](https://www.symcon.de/de/llms/components/icons.md) ausgewählt werden. Der Ort der Variable kann mit dem Dialog "Ort" festlegt oder nachträglich im Objektbaum verschoben werden.

### Variablenvisualisierung
Variablen werden in der Visualisierung standardmäßig angezeigt. Dies kann durch die Visuelle Einstellung ein- oder ausgeschaltet werden.
Um Variablenwerte aufzuzeichnen und einen Graphen in der Visualisierung anzuzeigen, muss das Aufzeichnen von Variablenveränderung ([Archive Control](https://www.symcon.de/de/llms/modules/archive-control.md) ) aktiviert werden.
Variablen die aufgezeichnet und in der Visualisierung angezeigt werden, bieten in der Visualisierung ein Diagramm mit dem Verlauf der Variablenwerte an.
### Variablendarstellung
Die Darstellung der Variablen in der Visualisierung kann angepasst werden, sodass eine Variable beispielsweise als Auswahl oder Schieberegler dargestellt wird. Diese Optionen kann auch nachträglich verändert werden. Eine genauere Beschreibung der Möglichkeiten befindet sich hier: [Variablendarstellungen](https://www.symcon.de/de/llms/concepts.md)
### Variablenwerte bearbeiten
Mit einem Doppelklick auf den Namen der Variablen kann die Darstellung einer Variable verändert oder die Variablenaufzeichnung in die Datenbank aktiviert werden.
Um die Werte einer Variable mitzuschneiden oder zu verändern, kann per Doppelklick auf den Wert der Variable das Fenster für den "Überwachungsmodus" aufgerufen werden. Alternativ kann per Kontextmenü auch der Eintrag “Variable verändern" auswählt werden.
Diese Funktion ist primär für Testzwecke konzipiert, um beispielsweise zu überprüfen, ob bei einer simulierten Temperatur die Heizung eingeschaltet wird. Außerdem ist es möglich die Darstellung in der Visualisierung zu kontrollieren.
Das nachfolgende Bild zeigt das Fenster für den "Überwachungsmodus", in dem fortlaufend die Variablenwerte angezeigt werden und währenddessen modifiziert werden können. Ein Veränderung kann entweder über den Button “Schreiben” oder über die Return-Taste bestätigt werden.

> **Achtung:** Falls die Variable eine Status-Variable ist, kann der Wert modifiziert werden, obwohl dieser als schreibgeschützt markiert ist. Bei einer Wertänderung werden auch alle damit verbundenen [Ereignisse](https://www.symcon.de/de/llms/concepts.md) ausgeführt. Das ist nützlich zum Testen eigener Ereignisse, ändert aber nicht die tatsächlichen Werte auf dem physikalischen Gerät.
### Variablenaktionen
Einer Variable kann via "Eigene Aktion" eine [Variablenaktion](https://www.symcon.de/de/llms/concepts.md) zugewiesen werden. Diese wird aufgerufen, wenn die Variable via Visualisierung geschaltet wird. Darüber hinaus wird die Variablenaktion ausgeführt, wenn die Variable geschaltet wird, beispielsweise über die Funktion [RequestAction](https://www.symcon.de/de/llms/functions/access-variables.md) .
## Variablenaktionen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/variablen/variablenaktionen/
Eine Variablenaktion wird angefordert, wenn eine Variable via Visualierung angeklickt wird.
Das hinterlegte [Aktionsskript](https://www.symcon.de/de/llms/concepts/automations.md) wird ausgeführt und an dieses werden anhand von [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) Daten wie der neue "gewünschte" Wert und ID übergeben.
### Variablenaktion auswählen
Eine Aktion kann im "Variable bearbeiten"-Dialog über "Eigene Aktion" ausgewählt werden. Der Dialog "Variable bearbeiten" ist beim Erstellen einer Variable oder im Nachhinein via "Objektbaum" -> "Doppelklick" oder über "Objektbaum" -> "Rechtsklick" -> "Objekt bearbeiten" erreichbar.
> **Hinweis:** Einige Variablen von hinzugefügten Modulen beinhalten eine "Standardaktion". Diese kann durch eine "Eigene Aktion" überschrieben werden.

Mit dem "+" kann eine Variablenaktion erstellt werden, welche sich nur darum kümmert, das im WebFront die Variable ihren Wert bei einem anklicken auch ändert. Dieses automatisch erstellte Aktionsskript wird mit "(Automatisch erstellt)" angezeigt.

### Variablenaktion erstellen
Eine Variablenaktion ist ein ausgewähltes Aktionsskript.
Nähere Informationen sind unter [PHP-Skripte](https://www.symcon.de/de/llms/concepts/automations.md) und [Aktionsskripte](https://www.symcon.de/de/llms/concepts/automations.md) nachlesbar.
## Variablendarstellung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/variablen/variablendarstellung/
_Benötigt Symcon >= 8.0_
Jede Variable besitzt eine Variablendarstellung. Variablendarstellungen werden genutzt um Variablenwerte wie True, False oder 0, 1, 2, 3 in eine für den Menschen leserliche Form zu bringen und mit den notwendigen Kontextdaten (z.B. °C) zu versehen. Die Variablendarstellung gibt also an, wie eine Variable in der Visualisierung dargestellt wird. Darüber hinaus bestimmt sie das Bedienelement, mit dem der Variablenwert verändert werden kann.
### Darstellung auswählen
Eine Darstellung kann im "Variable bearbeiten"- Dialog in dem Abschnitt "Variablendarstellung" ausgewählt werden. Dieser Dialog ist beim Erstellen einer Variable oder im Nachhinein via "Objektbaum" -> "Doppelklick" oder über "Objektbaum" -> "Rechtsklick" -> "Objekt bearbeiten" erreichbar.
> **Hinweis:** Einige Variablen von hinzugefügten Modulen beinhalten eine "Standarddarstellung". Diese kann durch einen Klick auf die Schaltfläche "Standard überschreiben" überschrieben werden. Der Originalzustand kann daraufhin über die Schaltfläche "Auf Standard zurücksetzten" wiederhergestellt werden.

Über das Auswahl-Icon beim Eintrag "Darstellung" wird der Darstellungsdialog geöffnet, in welchem eine Darstellung ausgewählt werden kann. In dem Darstellungsdialog werden immer alle Darstellungen angezeigt. Wenn die Konfiguration der aktuellen Variable eine Darstellung nicht zulässt, wird diese ausgegraut. Beim Bewegen der Maus über das ausgegraute Element wird ein Text angezeigt, der beschreibt welche Anforderungen erfüllt werden müssen um die Darstellung zu werden.
Jede Darstellung bietet viele verschieden Parameter um sie den Anforderungen entsprechend anzupassen. Die verfügbaren Parameter und ihre Funktion sind unter den jeweiligen Einträgen unter [Objektdarstellung](https://www.symcon.de/de/llms/components/object-presentation.md) näher beschrieben.
### Vorschau
Jede Anpassung kann direkt in der Vorschau neben der Darstellungsauswahl beobachtet werden. Durch Klicken auf das Lupen-Symbol der Vorschau kann diese im Vollbild geöffnet werden. Hier kann, wie in der normalen Visualisierung, über das Stift-Symbol die Größe der Kachel angepasst werden, um zu sehen wie sich die Darstellung in verschiedenen Größen verhält.
### Vorlagen
Wenn die Parameter einer Darstellung verändert werden, gelten diese nur für die aktuell ausgewählte Variable. Wenn mehrere Variablen die gleichen Parameter nutzen sollen, können Vorlagen genutzt werden. Vorlagen können unter dem Feld für Darstellungen ausgewählt werden. Wurde eine Vorlage gewählt, so verwendet die Darstellung die Parameter der Vorlage, auch wenn diese später noch angepasst werden sollte. Dennoch können Parameter im Variablendialog weiterhin verändert werden. Entsprechen die Parameter dadurch nicht mehr den Werten der Vorlage oder der übergeordneten Darstellung wird in dem Feld Vorlage "(Benutzerdefiniert)" angezeigt und die eingestellten Parameter gelten wieder genau für diese Variable. Eigene Vorlagen können im [Vorlagenmanager](https://www.symcon.de/de/llms/concepts.md) erstellt und bearbeitet werden.
## Vorlagenmanager
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/variablen/variablendarstellung/vorlagenmanager/
_Benötigt Symcon >= 8.0_
Der Vorlagenmanager ist kann über das "+" in der Tabliste aufgerufen werden.

### Aufbau
Der Vorlagenmanager besteht aus einem Baum auf der linken Seite, in welchem Vorlagen gruppiert nach Darstellungen ausgewählt werden können und einem zentralen Detailbereich, welcher sich an die aktuelle Auswahl des Baumes anpasst. Ist kein Eintrag ausgewählt, so werden im Detailbereich alle Darstellungen als Vorschau angezeigt. Alternativ zur Auswahl im Baum, kann hier eine spezifische Darstellung per Klick auf das "Öffnen"-Symbol oben rechts in jeder Kachel geöffnet werden. Ist eine Darstellung ausgewählt, so zeigt der Detailbereich für jede Vorlage dieser Darstellung eine Vorschau und ermöglicht auch hier ein direktes Öffnen. Über den Button "Wer nutzt diese Darstellung?" am unteren Ende des Detailbereichs werden alle Variablen angezeigt, welche diese Darstellung verwenden. Ist schließlich eine Vorlage ausgewählt, so erscheint ein dazugehöriges Konfigurationsformular, analog zum zur Variablenkonfiguration, in welchem die Parameter der Vorlage konfiguriert werden können. Zusätzlich kann der Name der Vorlage angepasst werden. Da jede Vorlage im Hintergrund über eine eindeutige ID und nicht den Namen identifiziert wird, kann der Name bedenkenlos angepasst werden. Er dient lediglich des besseren Verständnisses für den Benutzer. Im unteren Bereich kann über "Wer nutzt diese Vorlage?" eine Liste von Variablen, welche diese Vorlage verwenden, ausgegeben werden. Über "Duplizieren" kann eine neue Vorlage erstellt werden, welche initial mit den gleichen Parametern konfiguriert ist.
> **Hinweis:** Informationen über die einzelnen Parameter der Darstellungen können den [Objektdarstellungen](https://www.symcon.de/de/llms/components/object-presentation.md) entnommen werden
### Vorlagen erstellen

Eine Vorlage kann über das "+" in der Liste auf der linken Seite hinzugefügt werden. In einem Dialog wird die gewünschte Darstellung ausgewählt und danach die Vorlage konfiguriert werden. Falls eine Darstellung ausgewählt ist, kann alternativ auf der rechten Seite auf das "+" geklickt werden um direkt eine Vorlage zur ausgewählten Darstellung zu erstellen.
Um auf einer bestehenden Vorlage aufzubauen, kann diese ausgewählt werden und unten auf "Duplizieren" geklickt werden.
### Vorlagen löschen
Benutzerdefinierte Vorlagen können über das Mülleimersymbol neben dem Namen in der Liste auf der linken Seite gelöscht werden. Die von IP-Symcon bereitgestellten Vorlagen können nicht gelöscht werden.
## Variablenprofile
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/variablen/variablenprofile/
> **Achtung:** Variablenprofile werden weiterhin unterstützt. Allerdings gibt es seit der 8.0 [Variablendarstellungen](https://www.symcon.de/de/llms/concepts.md) als modernere und flexiblere Möglichkeit die Darstellung der Variablen anzupassen. Variablenprofile sind dennoch weiterhin über die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md) nutzbar.
Jede Variable kann ein Variablenprofil besitzen. Variablenprofile werden primär dafür genutzt, um Variablenwerte wie True, False oder 0, 1, 2, 3 in eine für den Menschen leserliche Form zu bringen und mit den notwendigen Kontextdaten (z.B. °C) zu versehen. Das Variablenprofil gibt also an, wie eine Variable visualisiert wird.
### Profil auswählen
Ab Version 8.0 erfolgt die Zuweisung eines Variablenprofils über die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md). Der Dialog "Variable bearbeiten" ist beim Erstellen einer Variable oder im Nachhinein via "Objektbaum" -> "Doppelklick" oder über "Objektbaum" -> "Rechtsklick" -> "Objekt bearbeiten" erreichbar.
Im Bereich "Variablendarstellung" muss zunächst die Darstellung "Legacy Profil" ausgewählt werden. Anschließend kann unter "Darstellungsparameter" das gewünschte Profil gewählt werden.

### Profil erstellen
Wenn von den Standardprofilen keins passend für die Variable ist können eigene erstellt werden. Diese können dann für beliebig viele Variablen verwendet werden können.
Um die Variablenprofile zu editieren, muss der Profilmanager geöffnet werden. Dieser kann über "+" -> "Profilmanager" in der Tabliste oder im "Variable bearbeiten"-Dialog über den Fingerbutton bei der Profilauswahl unter "Darstellungsparameter" aufgerufen werden.

Es besteht die Möglichkeit, ein Profil aus den vorgefertigten Profilen auszuwählen, eines zu duplizieren oder ein Eigenes zu erstellen. Um ein eigenes Profil zu erstellen, muss linksseitig auf “+” geklickt, dem Profil ein Namen gegeben und das Profil gespeichert werden.


> **Hinweis:** Obwohl die Variablenprofile nach Typen (Boolean, Integer, Float, String) unterschieden werden, kann ein Profilname jeweils nur einmalig vergeben werden.
> **Hinweis:** Beispiele für verschiedene Darstellungsweisen für Variablenprofile im WebFront sind unter [Objekt-Darstellung](https://www.symcon.de/de/llms/components/webfront-visualization.md) sichtbar
> **Achtung:** Standard-Profile können an der Tilde (~) vor dem Profilnamen erkannt werden. Diese Profile werden vom System erstellt und können nicht editiert werden. Bei eigenen Profilen darf die Tilde nicht im Profilnamen verwendet werden.
Es können folgende Änderungen am Profil vorgenommen werden:
| Parameter | Typ | Beschreibung |
| ------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Alle Typen | Name des Profils |
| Präfix | Alle Typen | String vor dem eigentlichen Wert, wie z.B. feste Beschreibung |
| Suffix | Alle Typen | String nach dem eigentlichen Wert wie z.B. °C; Sonderfall: Beim Wert % wird der Wert mit Hilfe von Min/Max in einen Prozentwert umgerechnet. (Wert = (Wert – Min) * 100 / (Max – Min)) |
| Minimalwert | Integer, Float | Kleinstmöglicher Wert der Variable für die Visualisierung |
| Maximalwert | Integer, Float | Größtmöglicher Wert der Variable für die Visualisierung |
| Schrittweite | Integer, Float | Aus Schrittweite berechnet sich die Anzahl der Felder, die in der Visualisierung zum Anklicken erstellt werden (z.B.: Mininmalwert = 0, Maximalwert = 100). Bei einer Schrittweite von 25 würden die Werte 0, 25, 50, 75, 100 zur Auswahl stehen. Ist die Schrittweite auf 0 gesetzt und sind Assoziationen vorhanden, so werden direkt alle Assoziationstexte nacheinander aufgelistet. Hierbei entfallen die sonst gezeigten Pfeile zum Durchklicken. Dieses Feld wird nur ausgewertet, wenn die zu visualisierende Variable durch Zugehörigkeit zu einer Instanz bereits eine Aktion zugewiesen bekommen hat oder ein Aktionsskript zugewiesen wurde. |
| Stellen | Float | Gibt die Anzahl der angezeigten Nachkommastellen an. |
| Icon | Alle Typen | Falls kein Icon über die Assoziationen vorhanden ist, wird das Standard-Icon verwendet. Sollte diese Feld leer bleiben, wird auf das Objekt Icon zurückgegriffen. Alle vorhandenen Icons können hier gefunden werden: [WebFront Icons](https://www.symcon.de/de/llms/components/icons.md) |
| Assoziationen | Alle Typen | __Boolean:__ Zu jedem der beiden Möglichen Werte (True, False) kann ein Text und ein Icon angegeben werden, welches statt des eigentlichen Wertes angezeigt wird. Es wird nur die Darstellung beeinflusst. Der Wert der Variable bleibt erhalten. __Integer/Float__: 1.Wie bei Boolean ist es möglich, für einen Wert eine Repräsentation über einen Text und ein Icon zu wählen. Dabei muss im einfachsten Fall für jeden Wert ein Text und Icon angegeben werden. 2. Die zweite Möglichkeit besteht darin, Werte auszulassen, um z.B. nur wichtige Positionen, die eine Änderung benötigen, anzuzeigen. So könnten für eine Jalousie z.B. nur die Werte 0, 50, 100 interessant sein, da nur für diese Icons verwendet werden. Die Assoziationen können definiert werden, indem für die Werte 0, 50, 100 einen Eintrag hinzufügt werden. Dabei würden die Einträge für folgende Werte gültig sein: 0 (0-49), 50 (50-99) und 100 (100). 3. Es gibt die Möglichkeit, einen Ausdruck zu generieren, der den aktuellen Wert enthält. Dafür kann ein %d (int) oder %f (float) Platzhalter genutzt werden. So würde ein "Lampenstufe%d" z.B. als "Lampenstufe4" dargestellt werden. __Hinweis:__ Wird eines der beiden Felder (Text / Icon) leer gelassen, so wird der normale Wert oder das Standard Icon verwendet. Für einen leeren Text muss ein Leerzeichen verwendet werden. __String (ab Version 6.0)__: Zu jeden String Wert kann ein Text, Farbe und ein Icon angegeben werden. Die Reihenfolge der Assoziationen richtet sich nach der Erstellreihenfolge. Es gibt keine Sortiermöglichkeit, somit müssen um neue Assoziationen einzusortieren alle darauffolgenden gelöscht und dann sortiert neu angelegt werden. |
> **Achtung:** Profile werden nur für die Visualisierung verwendet. Sobald der Variablenwert außerhalb der angegebenen Minimal-/Maximalwert Grenzen liegt oder außerhalb der spezifizierten Assoziationen, kann eine falsche oder gar keine Ausgabe des jeweiligen Wertes erfolgen.
> **Achtung:** Die maximale Anzahl von gleichzeitiger Assoziationen pro Profil ist 128.
### Beispiel
Wenn im Profil Minimalwert=0 und Maximalwert=20 definiert sind und % als Suffix angegeben wird, aber der Variablenwert 40 ist, so wird in der Visualisierung 200% angezeigt. Die Min/Max Werte limitieren nicht den Variablenwert!
> **Hinweis:** Je nach Variablentyp können als Platzhalter %d und %f genutzt werden. Um die Nachkommastellen zu beeinflussen, kann folgendes Format verwendet werden (%.2f für zwei Nachkommastellen).
> **Hinweis:** Um das Prozentzeichen (%) innerhalb eines Assoziationstextes nutzen zu können, muss ein doppeltes Prozentzeichen (%%) eingegeben werden.
> **Hinweis:** Eine Möglichkeit um die Variablen schon in einer formatierten Weise in Skripten zu nutzen beinhaltet die Funktion [GetValueFormatted](https://www.symcon.de/de/llms/functions/access-variables.md)
## Ereignisse
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/ereignisse/
Ein Ereignis ist eine automatisierte und an eine Bedingung geknüpfte Aktion.
Eintretende Ereignisse modifizieren angebundene Objekte. Die Anbindung geschieht durch das “Unterordnen” innerhalb der IP-Symcon Verwaltungskonsole. ( siehe: [Anbindungsarten](https://www.symcon.de/de/llms/concepts.md))
Ereignisse treten abhängig von ihrem Ereignistyp und eingerichteten Bedingung ein. ( siehe: Ereignistypen)
### Anbindung an Aktionsziel
Das angebundene Objekt wird hierbei als Ziel für eine [Aktion](https://www.symcon.de/de/llms/concepts/automations.md) definiert. Wie bei Aktionen üblich, kann eine zu dem Ziel passende Aktion gewählt und konfiguriert werden.
Die Aktion eines Ereignisses bestimmt was geschehen soll, wenn das Ereignis geschaltet wird. Weitere Informationen gibt es unter [Aktionen](https://www.symcon.de/de/llms/concepts/automations.md) .

### Ereignistypen
Man unterscheidet zwischen drei Ereignistypen.
| Typ | Beschreibung |
| ------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [Zyklisch](https://www.symcon.de/de/llms/concepts.md) | Zu einem bestimmten und einmaligen oder wiederholenden Zeitpunkt eintretendes Ereignis. |
| [Ausgelöst](https://www.symcon.de/de/llms/concepts.md) | An eine bestimmte Variable gebundenes Ereignis. |
| [Wochenplan](https://www.symcon.de/de/llms/concepts.md) | Mit dem Wochenplan im WebFront konfiguriertes Ereignis. |
> **Hinweis:** Zugriff auf Systemvariablen:
> IP-Symcon liefert automatisch grundlegende Variablen, auf welche innerhalb von Skripten zugegriffen werden kann.
> Dies funktioniert allerdings nur sofern das Skript von einem Ereignis aufgerufen wurde.
> Siehe auch:
> [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
### Bedingungen
Bedingungen erweitern Ereignisse um weitere Optionen, die erfüllt sein müssen, damit das Ereigniss eintritt. Somit können Mehrfachbedingungen realisiert werden.
Weitere Bedingungen können im Abschnitt "Weitere Bedingungen" -> "Hinzufügen" hinzugefügt werden.
Als Typ kann Variable, Datum, Wochentag oder Uhrzeit ausgewählt werden. Weitere Regeloptionen sind zum einen der Wert auf den verglichen werden soll und der angewandte Vergleichsoperator (Siehe Tabelle [Vergleichsoperatoren](https://www.symcon.de/de/llms/concepts.md)).
In der Übersicht sind alle Regeln aufgelistet. Ein "Haken" bzw. "Kreuz" zeigt an ob eine Regel momentan erfüllt ist oder nicht. Über das Zahnradsymbol kann die die jeweilige Regel angepasst werden. Das DropDown- Menü "Evaluation" bestimmt, ob alle angegebenen Regeln erfüllt sein müssen oder schon eine erfüllte Regel ausreicht um die Ereignissaktion zu starten.
Der Live Zustand zeigt an ob das Ereignis unter den momentanen Regeln schalten würde oder nicht.
#### Vergleichsoperatoren
Vergleichsoperatoren beschreiben das Verhalten, wann ein Vergleich erfüllt ist oder nicht.
| Operator | Erklärung |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Gleich (=) | Ist erfüllt, wenn der Regelwert genau dem übergebenen Wert entspricht. (Z.B. true = true, 123 = 123) |
| Ungleich (≠) | Ist erfüllt, wenn der Regelwert nicht dem übergeben Wert entspricht. (Z.B. false ≠ true, 123 ≠ 122 od. 124) |
| Größer (>) | Ist erfüllt, wenn der Regelwert echt größer als der übergebene Wert ist. (Z.B. 123 > 122, 09:00 > 08:59) |
| Größer gleich (≥) | Ist erfüllt, wenn der Regelwert größer als oder gleich dem übergebenen Wert ist. (Z.B. 123 ≥ 122 od. 123, 09:00 ≥ 08:59 od. 09:00) |
| Kleiner (<) | Ist erfüllt, wenn der Regelwert echt kleiner als der übergebene Wert ist. (Z.B. 123 < 124, 09:00 < 09:01) |
| Kleiner gleich (≤) | Ist erfüllt, wenn der Regelwert kleiner als oder gleich dem übergebenen Wert ist. (Z.B. 123 ≤ 124 od. 123, 09:00 ≤ 09:01 od. 09:00) |
#### Beispiel
Ein Lampe soll nur angeschaltet werden, wenn der Bewegungsmelder aktiviert wird.
Zusätzlich soll dies aber nur geschehen wenn es zu dunkel (Helligkeitswert unter 500) und es zwischen 09:00 und 17:00 Uhr ist.
Zunächst ein ausgelöstes Ereignis hinzufügen. Dabei den Bewegungsmelder als Auslöser bei "Anwesenheit" und die Lampe als Zielinstanz mit dem Befehl den Wert auf "An" setzen.

Draufhin unter "Weitere Bedingungen" in der Regelübersicht weitere Regeln über "Hinzufügen" erstellen.
Den Lichtwert "Helligkeit" mit der Regel "kleiner" als 500 einrichten.

Die Uhrzeit mit der Regel "größer gleich" 9 Uhr einrichten.

Die Uhrzeit mit der Regel "kleiner gleich" 17 Uhr einrichten.

In der Übersicht sind nun alle drei Regeln aufgeführt und der Live-Zustand gibt an, ob die momentanen Regeln bei einem Auslösen das Schalten zulassen würden.

## Ausgelöst
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/ereignisse/ausgeloest/
Dieser Ereignistyp löst durch Aktualisierung einer angebundenen Variable aus, unabhängig von dem Zeitpunkt der Auslösung.
Dazu stehen 5 Auslöser zur Auswahl.
> **Hinweis:** Skripte, die durch das Variablenereignis ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
### Auslöser

| Art des Auslösers | Beschreibung |
| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Bei Änderung: | Das Ereignis löst bei jeglicher Werteänderung der gewählten Variable aus. |
| Bei Aktualisierung: | Das Ereignis löst bei jedem empfangenen Variablenwert aus. Dies gilt auch wenn der empfangene und der bereits vorhandene Wert identisch sind. |
| Bei Grenz- unter/überschreitung: (Option “Nachfolgende Ereignisse ausführen”) | Das Ereignis löst aus, wenn der Wert der gewählten Variable einen gesetzten Wert über- oder unterschreitet. Der "Wert" setzt den Grenzwert bei dem Auslösung erfolgt. |
| Bei bestimmten Wert: (Option “Nachfolgende Ereignisse ausführen”) | Das Ereignis löst aus, wenn die gewählte Variable genau einen bestimmten Wert erreicht. Der "Wert" setzt den genauen Wert bei dem Auslösung erfolgt. |
### Optionen
#### Nachfolgende Ereignisse ausführen
__Einmalige Auslösung bei wiederholt erfüllter Bedingung:__ Das Ereignis löst einmalig aus. Erst wenn die Bedingung im Auslöser zwischenzeitlich nicht erfüllt war löst ein erneutes über- / unterschreiten der Grenze oder erreichen des bestimmten Wertes das Ereignis wieder aus.
__Mehrmalige Auslösung bei wiederholt erfüllter Bedingung:__ Das Ereignis löst bei jeder Aktualisierung aus, solange die Bedingung erfüllt ist.
## Zyklisch
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/ereignisse/zyklisch/
Dieser Ereignistyp wird zu einem bestimmten Zeitpunkt ausgelöst und kann sich zyklisch wiederholen.
Der Zeitpunkt wird durch die Kombination von “Tagessmuster” und “Zeitmuster” definiert.
> **Hinweis:** Skripte, die durch das zyklische Ereignis ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
#### Tagessmuster
Hat 5 Optionen

| Tagessmuster | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Tagesintervall | Gibt den Tageintervall an (1 = jeden Tag; 2 = jeden zweiten Tag ; …) in denen das Ereignis ausgelöst werden soll. |
| Wochenintervall | Gibt den Wochenintervall an (1 = jede Woche; 2 = jede zweite Woche; …) und an welchen Tagen einer Woche das Ereignis ausgelöst werden soll. |
| Monatsintervall | Gibt den Monatsintervall an (1 = jeden Monat; 2 = jeden zweiten Monat; …) und an welchem Tag im Monat das Ereignis ausgelöst werden soll. |
| Ein Tag im Jahr | Gibt einen bestimmten Tag im Jahr an, an dem das Ereignis ausgelöst werden soll. |
| An bestimmten Tag | Gibt ein bestimmtes Datum an, an dem das Ereignis ausgelöst wird. |
#### Zeitmuster
Hat 4 Optionen

| ZeitMuster | Beschreibung |
| ---------- | ------------------------------------------------------------------------- |
| Einmalig | Gibt eine bestimmte Uhrzeit an dem das Ereignis ausgelöst werden soll. |
| Sekündlich | Gibt den Sekundenintervall an, in dem das Ereignis ausgelöst werden soll. |
| Menütlich | Gibt den Minutenintervall an, in dem das Ereignis ausgelöst werden soll. |
| Stündlich | Gibt den Stundenintervall an, in dem das Ereignis ausgelöst werden soll. |
#### Sonderoptionen
##### Von/Bis
Start und Endzeitpunkt bestimmbar
> **Hinweis:** Der "Bis"-Wert muss größer sein als "Von"-Wert
| Einstellmöglichkeiten | Beschreibung |
| --------------------- | --------------------------------------------------------------------- |
| Bei Tagessmuster | Gibt den Datumszeitraum an in der das Ereignis aktiv ist. |
| Bei Zeitmuster | Gibt den Tageszeitraum an in der das Ereignis aktiv ist. |
| Von | Startzeitpunkt = Gibt an ab wann das Intervall anfängt zu zählen. |
| Bis | Endzeitpunkt = Letzter Zeitpunkt bei dem ein Ereignis auslösen kann. |
| "Ohne Begrenzung" | Kein Endzeitpunkt. Wenn deaktiviert, wird die "Bis" Option angezeigt. |
##### Weitere Bedingungen
Die Funktion der weiteren Bedinungen kann unter [Bedingungen](https://www.symcon.de/de/llms/concepts.md) nachgelesen werden.
### Beispiele
#### Jeden Freitag um 09:00Uhr:
Tagessmuster = Wöchentlich mit Haken bei Freitag
Zeitmuster = einmalig mit 09:00:00
#### Alle 5 Minuten im Zeitraum von 12:02:10 bis 16:00:00 Uhr
Tagessmuster = Täglich mit dem Wert 1
Zeitmuster = Minütlich mit dem Wert 5
Von: 12:02:10 Bis: 16:00:00
Kein Haken bei “Ohne Begrenzung”
Erste Ausführung Freitags um 12:02:10
Zweite Ausführung Freitags um 12:07:10
...
--fortlaufend bis-->
...
Letzte Ausführung Freitags um 15:57:10
#### Täglich und dort minütlich im Zeitraum von 23:00 bis 06:00
Es müssen 2 Timer erstellt werden.
Timer 1:
Tagessmuster = Täglich mit dem Wert 1
Zeitmuster = Minütlich mit dem Wert 1
Kein Haken bei "Ohne Begrenzung"
Von: 00:00:00 Bis: 06:00:00
Timer 2:
Tagessmuster = Täglich mit dem Wert 1
Zeitmuster = Minütlich mit dem Wert 1
Kein Haken bei "Ohne Begrenzung"
Von: 23:00:00 Bis: 23:59:59
## Wochenplan
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/ereignisse/wochenplan/
Der Wochenplan ist ein grafisches Werkzeug zur Konfiguration von wöchentlichen Abläufen.
In der Verwaltungskonsole erstellt man den Wochenplan, den Gruppentyp, die Aktionen und die Anbindungsart.
Innerhalb der Visualisierung "WebFront" und Wochenplankonfiguration können die Aktionen und somit Aktionswechsel definiert werden.
### Gruppentypen
Hat 4 Optionen.

| Typ | Beschreibung |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Eine Gruppe: Gesamte Woche (Mo - So) | Alle Wochentage sind zu einer Gruppe zusammengefasst. |
| Zwei Gruppen: Arbeitstage (Mo - Fr) und Wochenende (Sa + So) | Unterteilt die Woche in zwei Gruppen um somit die Tage Mo-Fr und Sa-So unabhängig voneinander konfigurieren zu können. |
| Sieben Gruppen: Eine Gruppe pro Tag | Jeder Wochentag kann einzeln konfiguriert werden. |
| Erweitert | Die Wochentage können in beliebig kombiniert werden. Jede Kombination wird in einer Gruppe zusammengefasst und konfiguriert werden. |
### Aktionen
Der Wochenplan bietet Aktionen passend zum ausgewählten Ziel.
Es müssen mindestens zwei Wochenplanaktionen hinzugefügt werden.
Als Teil der Wochenplanaktion wird eine [Aktion](https://www.symcon.de/de/llms/concepts/automations.md) für das Ziel definiert.
#### Wochenplanaktion hinzufügen
Um eine Wochenplanaktion hinzuzufügen muss auf "Hinzufügen" geklickt werden.
Es kann der Wochenplanaktion ein Name, eine Farbe und eine [Aktion](https://www.symcon.de/de/llms/concepts/automations.md) zugewiesen werden.

### Konfiguration der Wochenplanaktionen
Die Zeiträume von Aktionen können innerhalb der Verwaltungskonsole und WebFront konfiguriert werden.
Dabei gilt innerhalb der grafischen Darstellung:
__Einfaches Klicken__ bearbeitet einen vorhanden Zustand.
__Klicken & Ziehen__ erstellt einen neuen Zustand.
#### In der Verwaltungskonsole

#### Im WebFront


> **Hinweis:** Nur bei einem Aktionswechsel wird die ausgewählte Aktion ausgeführt.
> **Achtung:** Wichtiger Hinweis:
> Zuvor gesetzte Aktionen werden durch einen Aktionswechsel nicht aufgehoben.
> D.h. Wenn man in einer Aktion das Licht eingeschaltet hat, wird bei einem Wechsel in die nächste Aktion nicht automatisch das Licht ausgeschaltet, außer man beschreibt dies explizit.
#### An Ablaufplan angebunden
Wird auf einem [Ablaufplan](https://www.symcon.de/de/llms/concepts/automations.md) die Aktion "Führe Automation aus" gewählt, so kann über die Aktion "Bei Wochenplanaktion" bei einer bestimmten Wochenplanaktion eine Reihe von Aktionen ausgeführt werden. Wird der erste Wochenplan einem Ablaufplan als Auslöser hinzugefügt, so werden die "Bei Wochenplanaktion"-Aktionen automatisch hinzugefügt.

### Beispiel mit Ablaufplan
Dies ist ein Ablaufplanbeispiel, welches über einen Wochenplan ausgeführt wird.

#### An PHP-Skript angebunden
Wird auf einem [PHP-Skript](https://www.symcon.de/de/llms/concepts/automations.md) die Aktion "Führe Automation aus" gewählt, so steht die ID der Wochenplanaktion als [Systemvariable](https://www.symcon.de/de/llms/concepts/automations.md) $_IPS['ACTION'] zur Verfügung.
### Beispiel mit Skript
Dies ist ein PHP-Skript-Beispiel, welches über einen Wochenplan ausgeführt wird.
```php
//switch über die ID's der Aktionen
switch ($_IPS['ACTION']) {
case 1: //ID 1
SetValueBoolean(39540 /*[Testumgebung\Arbeitstag]*/, true);
echo "Hallo Welt, Unter der Woche";
break;
case 2: //ID 2
SetValueBoolean(39540 /*[Testumgebung\Arbeitstag]*/, false);
echo "Hallo Welt, Yay Wochenende!!";
break;
}
```
#### Tipp für Experten
Um herauszufinden, welche Wochenplanaktion momentan aktiv ist, kann dies über ein Skript abgefragt werden.
```php
$e = IPS_GetEvent($id);
$actionID = false;
//Durch alle Gruppen gehen
foreach($e['ScheduleGroups'] as $g) {
//Überprüfen ob die Gruppe für heute zuständig ist
if($g['Days'] & date("N") > 0) {
//Aktuellen Schaltpunkt suchen. Wir nutzen die Eigenschaft, dass die Schaltpunkte immer aufsteigend sortiert sind.
foreach($g['Points'] as $p) {
if(date("H") * 3600 + date("i") * 60 + date("s") >= $p['Start']['Hour'] * 3600 + $p['Start']['Minute'] * 60 + $p['Start']['Second']) {
$actionID = $p['ActionID'];
} else {
break; //Sobald wir drüber sind, können wir abbrechen.
}
}
break; //Sobald wir unseren Tag gefunden haben, können wir die Schleife abbrechen. Jeder Tag darf nur in genau einer Gruppe sein.
}
}
var_dump($actionID);
```
## Medien
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/medien/
Von IP-Symcon unterstützte Medien sind Bild und Ton-Dateien, Diagramme, Dokumente, Streams sowie Views von IPSStudio.

### Medien hinzufügen
Die Anleitung wie die jeweiligen Medien eingerichtet werden befinden sich in den jeweiligen Unterkategorien.
Es können folgende Medien eingebunden werden.
[Bild und Ton](https://www.symcon.de/de/llms/concepts.md)
[Diagramme](https://www.symcon.de/de/llms/concepts.md)
[Dokumente](https://www.symcon.de/de/llms/concepts.md)
[Streams](https://www.symcon.de/de/llms/concepts.md)
[Views von IPSStudio](https://ipsview.brownson.at/)
## Bild/Ton
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/medien/bild-ton/
### Bild- oder Tondatei hinzufügen
Um eine Bild- oder Ton-Datei dem Media-Pool hinzuzufügen, muss der Dialog "Objekt hinzufügen -> Medien -> Bild oder Ton" genutzt werden.
Es kann eine beliebige Ton- oder Bilddatei von Festplatte, Netzwerk, Internet usw. ausgewählt werden, welche dann von IP-Symcon in den Media-Pool kopiert wird.


Hinzugefügte Bild/Ton-Objekte können im Objektbaum eingesehen werden.
Eine Vorschau kann mit Doppelklick auf das Medienobjekt im Objektbaum angezeigt werden.


#### Erlaubte Dateiendungen
| Endung | ab Version |
| ------ | ---------- |
| .jpg | 3.4 |
| .jpeg | 3.4 |
| .gif | 3.4 |
| .png | 3.4 |
| .ico | 3.4 |
| .webp | 8.1 |
> **Hinweis:** Es können alle Dateien hinzugefügt werden - die korrekte Darstellung in der Kachel Visualisierung wird aber nur für diese Typen garantiert
## Diagramme
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/medien/charts/
In einem Diagramm können ein oder mehrere Variablen als Graphen dargestellt werden. Voraussetzung hierfür ist, dass zuvor bei den betreffenden Variablen das Logging aktiviert wurde. Das Einrichten vom Logging wird im [Archiv Control](https://www.symcon.de/de/llms/modules/archive-control.md) beschrieben.
### Einrichtung in IP-Symcon
Über den Rechtsklick-Dialog "Objekt hinzufügen" -> "Medien" -> "Diagramm" kann ein neues Diagramm an gewünschter Position angelegt werden. Im Folgenden werden die Konfigurationsmöglichkeiten erklärt. Die dort ausgewählten (geloggten) Variablen dienen als Datenquelle für die einzelnen Graphen.
#### Diagramm bearbeiten
Allgemeine Eigenschaften des Diagramms.
| Option | Beschreibung |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Hinzufügen | Hinzufügen der einzelnen Variablen -> Öffnet den "Graph konfigurieren" Dialog. Bei schon verhandenen Graphen wird dieser über das Zahnrad in der Liste aufgerufen |
| Name | Der Name des Diagramm |
| Ort | Auswahl des Speicherorts für das Diagramm |
| Typ | Auswahl der Darstellung als Linien-, Balken- oder Bool-Diagramm |
| Visuelle Einstellungen | Hier könnnen ein Icon ausgewählt, die Anzeige und Aktivierung konfiguriert werden |
| Weitere Einstellungen | Bietet die Möglichkeit eine Beschreibung anzugeben |
#### Graph konfigurieren
Ein Graph repräsentiert ein Datenset für das Diagramm.
| Feld | Beschreibung |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Achsenprofil | Auswahl des Variablenprofils. Die darin angegeben Min- und Max-Werte dienen der Skalierung der Y-Achse. (Auswahlmöglichkeit entfällt bei Bool-Diagramm) |
| Achsenseite | Auswahl ob die Beschriftung für diesen Graphen Links oder Rechts sein soll. (Auswahlmöglichkeit entfällt bei Bool-Diagramm) |
| Füllfarbe | Auswahl der gewünschten Füllfarbe - Transparenz möglich |
| Linienfarbe | Auswahl der gewünschten Linienfarbe |
| Titel | Aussagekräftiger Titel des Graphen, welcher in der Legende dargestellt wird. Bei einem leeren Titel wird der Name der Variable genutzt |
| Variable | Auswahl der darzustellenden Variablen |
| Zeitversatz | Verschiebung der jeweiligen Zeitachse um die eingestellte Zeiteinheit. (Beispiele siehe unten) |
### Darstellung
__Darstellung als Popup Graph__
Um einen Popup Graph anzuzeigen muss das Diagramm einfach in die gewünschte [Kategorie](https://www.symcon.de/de/llms/concepts.md) im Objektbaum verschoben werden.
__Darstellung als Vollbild Graph__
Um einen Vollbild Graphen darzustellen muss das Diagramm im WebFront als [Graphenelement](https://www.symcon.de/de/llms/components/webfront-visualization.md) hinzugefügt werden.
### Darstellungsarten
Aktivierbare Darstellungsarten, welche innerhalb des Graphen geschaltet werden können.
| Abkürzung | Bedeutung | Beschreibung |
| --------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CON | Kontinuierlich | Die X-Achse wird so angepasst, dass der aktuellste Wert an der rechten Graphengrenze dargestellt wird. Dies dient dazu die größtmögliche Menge an aktuellen Daten darzustellen |
| CSV | Datensätze | Zeigt die verwendeten Datensätze und Zeitstempel für die jeweiligen Werte an |
| DYN | Dynamisch | Wenn aktiviert: Wird der dargestellte Ausschnitt an die Mininmal-/Maximalwerte des Graphen auf der Y-Achse angepasst. Wenn deaktiviert: Werden die Grenzen des eingestellten Variablenprofils genutzt |
| HD | Hohe Dichte | Wenn aktiviert: Wird eine höhere Genauigkeit der Durchschnittswerte zur Darstellung des Graphen genutzt. Siehe Tabelle __Durchschnittswertgrundlage__ |
| Legende | Legende | (nur Diagramme) De-/Aktiviert die Darstellung der Legende |
| MIN/MAX | Min/Max | (nur automatische Variablendarstellung) Es werden 2 zusätzliche Graphen mit den Minimal-/Maximalwerten dargestellt |
| RAW | Rohdaten | Wenn aktiviert: Werden die Rohdaten dargestellt. Wenn deaktiviert: Werden die aggregierten Werte genutzt |
__Durchschnittswertgrundlage__
| Zeitraum | Standard | Hohe Dichte (HD) |
| -------- | --------- | ---------------- |
| Dekade | Jahre | Monate |
| Jahr | Monate | Tage |
| Monat | Tage | Stunden |
| Woche | Tage | Stunden |
| Tag | Stunden | 5-Minuten |
| Stunde | 5-Minuten | 1-Minuten |
### Beispiel 1 (Typ: Balken)
Dieses Beispiel zeigt die Gegenüberstellung von Verbrauchswerten einer Steckdose.
Hier wurde zweimal die selbe Variable ausgewählt, wobei eine (hier dunkelgrün) den "Zeitversatz" von -1 hat.
In der Wochen-Darstellung sieht man einen Vergleich zur Vorwoche; in der Jahres-Darstellung wäre demzufolge ein Vergleich zum Vorjahr.


### Beispiel 2 (Typ: Linien)
Dieses Beispiel zeigt den Ertrag einer Solaranlage, sowie ein Summenwert für den aktuellen Verbrauch. Die Werte für diese beiden Graphen sind linksseitig ablesbar.
Zusätzlich wurde noch die Außentemperatur mit integriert, dessen Werte an der rechten Seite abzulesen sind.


### Beispiel 3 (Typ: Bool)
Dieses Beispiel zeigt einen Bool-Diagramm, welches den Zustand von einem Bewegungsmelder im Verlaufe von 4 aufeinanderfolgenden Stunden darstellt.


## Dokumente
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/medien/dokumente/
_Benötigt Symcon >= 4.3_
### Medien-Dokument hinzufügen
Über den Dialog "Objekt hinzufügen -> Medien -> Dokument" kann eine neue Mediendatei vom Typ Dokument hinzugefügt werden.
Es kann eine neue Datei erstellt oder eine vorhande von Festplatte, Netzwerk usw. ausgewählt werden, welche dann von IP-Symcon in den Media-Pool kopiert wird.
Hinzugefügte Dokumente können im Objektbaum unter "Media Dateien" eingesehen und geöffnet werden.

#### Erlaubte Dateiendungen
| Endung | ab Version |
| ------ | ---------- |
| .doc | 4.3 |
| .docx | 5.2 |
| .pdf | 4.3 |
| .txt | 4.3 |
| .xls | 4.3 |
| .xlsx | 5.2 |
> **Hinweis:** Es können alle Dateien hinzugefügt werden, aber ein späterer Support via WebFront wird nur für die angegeben Dateitypen vorhanden sein
## Streams
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/medien/streams/
### Medien-Stream hinzufügen
Über den speziellen Medientyp Stream können MJPEG und RTSP Stream zum WebFront hinzugefügt werden. Weitere Informationen und die Adresse kann der Dokumentation der genutzten Web-Kamera entnommen werden. Die Größe des Streams kann ebenfalls über die Konfiguration der Web-Kamera parametriert werden. Innerhalb des Dialogs von IP-Symcon muss die vollständige Adresse inklusive des Benutzernamen/Passworts eingetragen werden.
> **Achtung:** RTSP Streams können aktuell in Chrome, Firefox, Opera, Edge, Android (inkl. Apps ab Version 5.1), Safari (ab Version 5.5) und iOS (inkl. Apps ab Version 5.5) dargestellt werden.
> **Hinweis:** RTSP Streams müssen H.264 codiert sein. Da IP-Symcon bei RTSP Streams als Verteiler agiert, werden hier Limitierungen in Abhängigkeit der [Edition](https://www.symcon.de/de/produkt/editionen/) angewandt.
> **Hinweis:** Für **Axis** Kameras: Um Streams in der Kachel-Visualisierung verwenden zu können ist es erforderlich in den "Advanced Options" die "Plain Config" zu öffnen und die Einstellung **Image.I0.MPEG.H264.PSEnabled** zu aktivieren. Danach per **Save** speichern und die Kachel-Visualisierung neu laden, um den Stream korrekt laden zu können.

## Links
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/links/
### Beschreibung
Links sind verknüpfte Objekte und dienen dazu, bereits vorhandene Objekte an anderer Stelle im Objektbaum wiederzuspiegeln. Dies geschieht ohne vorhandene Strukturen oder Sortierungen zu ändern.
Es werden alle Eigenschaften des ursprünglichen Objekt wiedergespiegelt.
Einzig folgende Eigenschaften können bei Links geändert werden:
- Name
- [Icon](https://www.symcon.de/de/llms/components/icons.md) für das WebFront
- Sichtbarkeitseinstellung für das WebFront.
Verlinkt werden können alle Objekte aus dem Objektbaum:
- Kategorien
- Instanzen
- Variablen
- Skripte
- Ereignisse
- Medien
> **Achtung:** Links von Links sind nicht möglich. Mehrfache Links von ein und demgleichen Objekt allerdings schon.
### Anwendung
Links dienen primär dazu im WebFront Objekte an der gewollten Stelle positionieren zu können. Das heißt anstatt das Objekt selbst an die Position im WebFront zu setzen, wird ein Link von diesem Objekt an die Position gesetzt.
Eine weitere Anwendungsmöglichkeit wären Links auf "verstreute" Objekte um eine Übersichtsseite zu erstellen, welche zentral alle wichtigen Informationen abbildet.
Ein Objekt kann wiefolgt verlinkt werden: Rechtsklick auf das zu verlinkende Objekt -> "Objekt verlinken" -> Zu verlinkendes Objekt auswählen.
> **Hinweis:** Für die iOS und Android App sind mehrfach Verschachtelung nicht möglich. Per Link können verschachtelte Objekte wieder an die "Oberfläche" geholt und somit auch dargestellt werden.
### Beispiel
Ein mögliches Beispiel befindet sich unter dem Punkt Vorgehensweisen -> [Links verwenden](https://www.symcon.de/de/llms/how-to.md)
---
# Automationen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/
Automationen werden genutzt um individuell angepasstes Verhalten zu definieren. Von IP-Symcon unterstützte Automationen sind Ablaufpläne und PHP-Skripte. Dabei nutzt ein Ablaufplan die integrierten Aktionen, welche einfach zusammenklickbar sind. Ein Skript ist die Expertenoption, welche die Programmiersprache PHP benutzt.
### Automationen hinzufügen
Die Anleitung wie die jeweiligen Automationen eingerichtet werden befinden sich in den jeweiligen Unterkategorien.
Es können folgende Automationen eingebunden werden.
* [Ablaufpläne](https://www.symcon.de/de/llms/concepts/automations.md)
* [PHP-Skripte (für Experten)](https://www.symcon.de/de/llms/concepts/automations.md)
## Ablaufpläne
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/ablaufplaene/
Ein Ablaufplan ist eine Aneinanderreichungen von [Aktionen](https://www.symcon.de/de/llms/concepts/automations.md) . Diese kommen ohne eine Zeile Quellcode aus und sind somit ohne irgendwelche Programmierkenntnisse einfach nutzbar.
### Ablaufplan hinzufügen
Über "+" -> "Automation" -> "Ablaufplan" kann ein neuer Ablaufplan hinzufügt werden. Es wird empfohlen dem Ablaufplan einen aussagekräftigen Namen zu geben.
Der Name ist jederzeit änderbar und der Ablaufplan kann im Objektbaum per Drag & Drop an eine andere Position verschoben werden. Alternativ kann die Erstellung per "Rechtsklick" -> "Objekt hinzufuegen" -> "Automation" -> "Ablaufplan" direkt an der gewünschten Position erfolgen.

### Auslöser hinzufügen
Ein Auslöser ist ein Ereignis und ist ausschlaggebend wann der Ablaufplan gestartet wird. Die genaue Kofiguration kann unter [Ereignisse](https://www.symcon.de/de/llms/concepts.md) nachgeschlagen werden.
| Spalte | Beschreibung |
| ------------------ | -------------------------------------- |
| Name | Der Name des Auslöser im Objektbaum |
| Nächste Ausführung | Wann oder wodurch der Auslöser auslöst |
| Zahnrad | Öffnet die Konfiguration des Auslösers |
| Mülleimer | Löscht den Auslöser |

### Aktion hinzufügen
Eine Aktion ist spezifisch auf das ausgewählte Ziel oder Funktion angepasst. Eine Aktion kann das Zielobjekt oder den Fluss des Ablaufplans auf vielfältige Art modifizieren. So kann eine Aktion beispielsweise ein Schaltbefehl oder eine Bedingung sein. Auch ist es per Aktion möglich für eine bestimmte Zeit zu warten. Somit können komplexe Abläufe zusammengestellt werden ohne eine Zeile Quellcode zu schreiben.
| Spalte | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Schritt | Die Position der Aktion im Ablaufplan. Manche Aktionen nutzen auch Unterschritte |
| Ziel | Gibt an, was das Ziel ist. Dies kann ein Objekt oder eine allgemeine Aktion wie z.B. "Warten" oder eine Bedingung sein |
| Aktion | Eine Beschreibung der Aktion die ausgeführt werden soll |
| Letzte Laufzeit | Gibt an wie lang der Schritt bei der letzten Ausführung gebraucht hat |
| Zahnrad | Öffnet die Konfiguration der Aktion |
| Mülleimer | Löscht die Aktion |


> **Hinweis:** Erscheint ein rotes Ausrufezeichen in der Liste war die letzte Ausführung der Aktion fehlerhaft. Durch ein Klick auf das Ausrufezeichen kann der Inhalt der Fehlermeldung angezeigt werden.
#### Kontextmenü
Mit einem Rechtklicks in die Liste der Aktionen, werden weitere Optionen in einem Kontextmenü angezeigt.
| Liste | Beschreibung |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Aktion davor/danach hinzufügen | Es wird eine Aktion vor oder nach der Zeile, welche angeklickt wurde, hinzugefügt. |
| Duplizieren | Die angeklickte Aktion wird dupliziert, falls vorhanden mitsamt Verschachtelung. Das duplizierte Element wird direkt "danach" einsortiert. |
### Allgemeine Elemente
| Menüpunkt | Beschreibung |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ausführungen Analysieren | Dient zur Analyse von Ausführungen bei denen fehlerhafte, abgebrochene und erfolgreiche Aktionen aufgeführt werden. Siehe unten |
| Einstellungen | Hier kann das Verhalten des Ablaufplans bestimmt werden. ( Siehe: Verhalten bei laufender Ausführung und Verhalten bei Fehler) |
| Speichern | Speichert die aktuelle Konfiguration des Ablaufplans ab |
| Ausführen | Dies speichert den Ablaufplan ab und führt ihn aus |
| Stop | Stoppt die aktuelle Ausführung des Ablaufplans |
#### Ausführung analysieren
Die Ausführung eines Ablaufplans durchläuft verschiedene Status. Diese sind textlich beschrieben, sowie farblich kodiert. Auch können die einzelnen Ausführungen ausgeklappt werden. Dies gibt die Chance einzelne Schritte nachzuvollziehen.
| Status | Beschreibung |
| ---------------------- | ------------------------------------------------------------------------------------------ |
| Eingreiht | Es befindet sich in der Warteschlange (Farbcode: Weiß) |
| Läuft | Die Ausführung des Ablaufplans läuft noch (Farbcode: Weiß) |
| Abgebrochen | Die Ausführung des Ablaufplans wurde abgebrochen (Farbcode: Gelb) |
| Abgeschlossen | Erfolgreich abgeschlossen (Farbcode: Grün) |
| Abgeschlossen (Fehler) | Die Ausführung des Ablaufplans wurde ausgeführt, es kam aber zu Fehler/n (Farbcode: Gelb) |
| Fehler | Die gesamte Ausführung des Ablaufplans hat abgebrochen (Farbcode: Rot) |
| Übersprungen | Wird aufgerufen durch: "Bei Ausführung weitere Ausführung ablehnen" (Farbcode: Gelb) |
#### Verhalten bei laufender Ausführung
Dies beschreibt das Verhalten, sollte die erneute Ausführung des Plans bei bereits laufender Ausführung angestoßen werden.
| Verhalten | Beschreibung |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Bei Ausführung weitere Ausführung ablehnen | Weitere Ausführungen des Ablaufplans werden ignoriert |
| Bei neuer Ausführung laufende Ausführung abbrechen | Die aktuelle Ausführung des Ablaufplans wird abgebrochen und von vorne gestaret |
| Ausführungen in Warteschlange hinzufügen | Bei mehrfachen Aufruf oder Auslösung wird die Ausführung des Ablaufplans einer Warteschlange hinzugefügt und nacheinander aufgerufen. |
#### Verhalten bei Fehler
| Verhalten | Beschreibung |
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Bei Fehler die restliche Ausführung abbrechen | Bei einem Fehler wird die Ausführung des Ablaufplans abgebrochen |
| Bei Fehler die restliche Ausführung fortsetzen | Bei einem Fehler wird dieser protokolliert und es wird der nächste Schritt ausgeführt |
| Bei Fehler den Schritt wiederholen | Bei einem Fehler wird die Ausführung des Ablaufplans wiederholt bis entweder die Ausführung erfolgreich ist oder die Anzahl der eingestellten Wiederholungen erreicht wurde. Die Option "Setze die Ausführung trotz fehlgeschlagener Wiederholungen fort" besagt ob nach erfolglosen Wiederholungen der Schritt übersprungen wird oder die Ausführung des Ablaufplans komplett abgebrochen wird |
## Aktionen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/ablaufplaene/aktionen/
Eine Aktion ist ein Kommando, welches ohne komplexe Programmierung oder Skript auskommt. So werden abhängig vom ausgewählten Ziel verschiedenste Aktionen aufgelistet. Jede Aktion ermöglicht individuelle Einstellmöglichkeiten und Optionen.
### Aktion hinzufügen
Eine Aktion wird im [Ablaufplan](https://www.symcon.de/de/llms/concepts/automations.md), [Ereignis](https://www.symcon.de/de/llms/concepts.md), [Instanzkonfiguration](https://www.symcon.de/de/llms/concepts.md) oder [Befehl testen](https://www.symcon.de/de/llms/concepts.md) genutzt. Wie diese in den jeweiligen Möglichkeiten hinzugefügt werden ist in den jeweiligen Abschnitten beschrieben. Aber bei allen Möglichkeiten werden die Aktionen nach dem gleichen Schema konfiguriert.
* Schritt 1: Auswahl des Ziels - Dadurch werden die möglichen Aktionen geladen und angezeigt
* Schritt 2: Auswahl der Aktion - Die tatsächliche Auswahl einer Aktion (Schnellfiltersuche möglich)
** Die Aktionen sind in verschiedene Kategorien einsortiert und ermöglichen so einen schnellen Zugriff
* Schritt 3: Konfigurieren der Parameter - Hier werden die tatsächlichen Werte eingestellt für die Aktion eingestellt.
## Logikpläne
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/
_Benötigt Symcon >= 7.0_
Logikpläne ist ein Tool, mit dem individuelle Abläufe und Automatisierungen in IP-Symcon erstellen werden können. Typische Anwendungsfälle sind:
- Gruppenschalter für Licht
- Treppenhausautomat
- Sensorauswertung
#### Logikplan hinzufügen
Über "+" -> "Automation" -> "Logikplan" kann ein neuer Logikplan hinzufügt werden. Es wird empfohlen dem Logikplan einen aussagekräftigen Namen zu geben.
Der Name ist jederzeit änderbar und der Logikplan kann im Objektbaum per Drag & Drop an eine andere Position verschoben werden. Alternativ kann die Erstellung per "Rechtsklick" -> "Objekt hinzufuegen" -> "Automation" -> "Logikplan" direkt an der gewünschten Position erfolgen.

### Bestandteile des Editors
Der Logikplan gliedert sich in folgende Bereiche:
| Name | Beschreibung |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Menu | Das Menu stellt zentrale Funktionen wie das Speichern, das Zoomen oder das Ausführen eines Logikplans zur Verfügung. |
| Panels | Der Logikplan stellt 2 Panels zur Verfügung: - Das Repository mit der Liste aller verfügbaren Module - Den PropertyEditor zur Anzeige und zum Editieren von Eigenschaften Verwenden Sie Drag & Drop um die Position der Panels zu verändern, es stehen 4 vordefinierte Positionen zur Verfügung. Wenn Sie mehrere Panels an einer Position platzieren, werden automatisch Tabs gebildet. |
| Zeichenfläche | Die Zeichenfläche ist der zentrale Bestandteil des Editors und ermöglicht das Platzieren und Editieren der einzelnen Module. |
## Menü
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/menue/

Die folgenden Funktionen stehen zur Verfügung:
| Name | Beschreibung |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Administration | Betätigen Sie den Button Administration um die verfügbaren Aktionen für den Logikplan anzuzeigen. Nach der Aktivierung des Buttons wird das Menu für die Administration geöffnet. Folgende Aktionen stehen zur Verfügung: - Logikplan exportieren - Logikplan importieren |
| Zoom | Der Logikplan bietet die Möglichkeit eine View in Schritten von 10% beliebig zu verkleinern und zu vergrößern, Details dazu finden Sie im Bereich Zeichenfläche. |
| Rückgängig und Wiedererstellen | Menügruppe zum Annullieren bzw. Wiederherstellen von Änderungen, Details dazu finden Sie im Bereich Zeichenfläche. |
| Zurück und Vorwärts navigieren | - Menügruppe zum Navigieren in der Historie, diese Steuerelemente sind nur im Modus Historie verfügbar. - Betätigen Sie den Button Zurück um in der Historie zurück zu navigieren. Nach der Betätigung des Buttons werden die nächst älteren Daten der Historie geladen und angezeigt. - Betätigen Sie den Button Vorwärts um in der Historie vorwärts zu navigieren. Nach der Betätigung des Buttons werden die nächst neueren Daten der Historie geladen und angezeigt. |
| Bearbeiten | Betätigen Sie den Button Bearbeiten um den Editier Modus des Logikplan Editors zu aktivieren. Nach der Aktivierung des Buttons kann der Logikplan bearbeitet werden. |
| Live | Betätigen Sie den Button Live um den Live Modus des Logikplan Editors zu aktivieren. Nach der Aktivierung des Buttons werden die aktuellen Werte der Logikplan Ausführung auf der Zeichfäche dargestellt. |
| Historie | Betätigen Sie den Button Historie um den Historie Modus des Logikplan Editors zu aktivieren. Nach der Aktivierung des Buttons können Sie in der Historie der einzelnen Ausführungen navigieren. |
| Ausführen | Betätigen Sie den Button Ausführen um eine manuelle Ausführung des Logikplans zu starten. Nach der Aktivierung des Buttons wird der Automation Logikplan in IP-Symcon ausgeführt und die aktuellen Werte auf der Zeichenfläche angezeigt. |
| Speichern | Betätigen Sie den Button Speichern um Ihre Änderungen am Logikplan zu speichern. Nach der Aktivierung des Buttons wird der Logikplan am IP-Symcon Server gespeichert. Bei Umschaltung in den Live oder Historie Modus, wird der Logikplan automatisch gespeichert. |
| Info | Betätigen Sie den Button Info um die Programminformationen anzuzeigen. Nach der Aktivierung des Buttons wird der Dialog mit den Lizenz- und Programminformationen angezeigt. |
## Property-Editor
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/property-editor/
Das Panel Property-Editor zeigt alle verfügbaren Eigenschaften eines Steuerelements an.

Jede Property besteht aus einer Bezeichnung (linke Spalte) und einem dazugehörenden Wert (Für Techniker: Key-Value-Pair; rechte Spalte).
Wenn Sie ein neues Objekt auf der Zeichenfläche anlegen, werden dessen Properties mit Standardwerten aus IP-Symcon belegt. Um Properties an Ihre Bedürfnisse anzupassen:
1. Klicken Sie in die jeweiligen Wertefelder und ändern Sie die Werte.
2. Speichern Sie Ihre Änderungen von Zeit zu Zeit (dies kann je nach Ihrer Verbindungsgeschwindigkeit einige Sekunden dauern).
### Übersicht
## Ausgänge
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/property-editor/ausgaenge/
Um die Ausgänge eines Mapping Moduls zudefinieren betätigen Sie den Menu Button der Eigenschaft Ausgänge Ihres Mapping Moduls. Die Definition der Eingänge wird geladen und angezeigt:

Um einen Ausgang des Mapping Moduls zu konfigurieren:
1. Fügen Sie mittels + einen neuen Eintrag zur Auswahl hinzu.
2. Wählen Sie nacheinander die Einträge aus und bearbeiten Sie deren Properties (siehe unten).
3. Wenn Sie alle Ausgänge definiert haben, verlassen Sie den Editor mit dem Button Zurück.
### Folgende Optionen stehen zur Verfügung
| Name | Beschreibung |
| -------- | ---------------------------------------------------------------------------------------------------------- |
| Name | Name des Ausgangs |
| Datentyp | Definiert den Datentyp des Ausgangs, folgende Optionen stehen zur Auswahl: Boolean, Integer, Float, String |
## Die Properties
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/property-editor/die-properties/
Die hier beschriebenen Properties sind für Ihre Arbeit mit Logikpläne von Bedeutung.
Eine Beschreibung spezifischer Properites eines Moduls finden Sie auch noch im [Repository](https://www.symcon.de/de/llms/concepts/automations.md) .
### Gruppe: Entity
| Name | Beschreibung |
| ---------- | ----------------------------------- |
| EntityName | Der Name des Objektes im Logikplan. |
### Gruppe: Variable
| Name | Beschreibung |
| ---- | ------------------------------- |
| ID | ID der Variable in IP-Symcon. |
| Name | Name der Variable in IP-Symcon. |
### Gruppe: Instanz
| Name | Beschreibung |
| ---- | ------------------------------ |
| ID | ID der Instanz in IP-Symcon. |
| Name | Name der Instanz in IP-Symcon. |
## Eingänge
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/property-editor/eingaenge/
Um die Eingänge eines Mapping Moduls zudefinieren betätigen Sie den Menu Button der Eigenschaft Eingänge Ihres Mapping Moduls. Die Definition der Eingänge wird geladen und angezeigt:

Um einen Eingang des Mapping Moduls zu konfigurieren:
1. Fügen Sie mittels + einen neuen Eintrag zur Auswahl hinzu.
2. Wählen Sie nacheinander die Einträge aus und bearbeiten Sie deren Properties (siehe unten).
3. Wenn Sie alle Eingänge definiert haben, verlassen Sie den Editor mit dem Button Zurück.
Folgende Optionen stehen zur Verfügung
| Name | Beschreibung |
| -------- | ---------------------------------------------------------------------------------------------------------- |
| Name | Name des Eingangs |
| Datentyp | Definiert den Datentyp des Eingangs, folgende Optionen stehen zur Auswahl: Boolean, Integer, Float, String |
## Mappings
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/property-editor/mappings/
Um die einzelnen Mappings eines Mapping Moduls zudefinieren betätigen Sie den Button Edit Ihres Mapping Moduls. Die Definition der Mappings wird geladen und angezeigt:

Der Editor stellt für jeden Eingang und für jeden Ausgang eine Spalte zur Verfügung, bei der Evaluierung des Moduls wird der erste Eintrag in der Liste verwendet, wo alle Werte am Eingang zusammenpassen.
Um ein Mapping des Mapping Moduls zu konfigurieren:
1. Fügen Sie mittels + einen neuen Eintrag zur Auswahl hinzu.
2. Wählen Sie für jeden Eingang den Wert für das Mapping.
3. Mit "Aktiv" können Sie ein Mapping deaktivieren ohne es sofoft löschen zu müssen.
4. Wählen Sie für jeden Ausgang den gewünschten Wert.
5. Beschreibung ermöglicht eine kurze Dokumentation der aktuellen Mapping Zeile. Dieser Eintrag hat keine Auswirkung auf die eigentliche Ausführung des Moduls.
6. Wenn Sie alle Ausgänge definiert haben, verlassen Sie den Editor mit dem Button Zurück.
## Repository
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/
Das Panel Repository bietet alle verfügbaren Logikplan Module, die man einfach per "Drag and Drop" auf der Zeichenfläche platzieren kann.
Die folgenden Möglichkeiten bietet das Repository um Module zu finden:
### Alphabetische Sortierung
Wählen Sie die Option Alphabetische Sortierung um alle verfügbaren Module im Repository nach der Bezeichnung zu sortieren.

### Gruppiert nach Verwendung
Wählen Sie die Option Gruppiert nach Verwendung () um alle verfügbaren Module im Repository nach ihrer Verwendung zu gruppieren:

### Suche nach ID
Wählen Sie die Option Suche nach ID um alle verfügbaren Module zu suchen die für eine bestimmte ID in IP-Symcon verwendet werden können.

Klicken Sie auf den Button "Suchen" um Module für ein IP-Symcon Objekt zu suchen, Nach Betätigung des Button "Suchen" wird der Dialog zur Suche einer ID geöffnet:

Nach Auswahl einer ID und der Bestätigung durch OK werden alle verfügbaren Module für das gewählte Objekt angezeigt.
### Experten Modus
Wählen Sie die Option Experten Modus () um den "Experten Modus" zu aktivieren, nach dem Aktivieren der Option zeigt das Repository auch selten benötigte Module an.
> **Hinweis:** Einen Überblick über die relevanten IP-Symcon-Properties, unabhängig vom Objekttyp, finden Sie im Abschnitt Die Properties.
### Übersicht der Module
Zur besseren Übersicht wurden die Module des Editors nach ihrer Verwendung gruppiert.
## Aktionen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/
Module der Gruppe "Aktionen" ermöglichen das Ausführen von IP-Symcon Automation Skripte oder diverser anderer IP-Symcon Aktionen.
## Eigene Action
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/eigene-action/
Das Module "Eigene Aktion" bietet die Möglichkeit zum Ausführen von beliebigen PHP Code.

### Properties
| Name | Beschreibung |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Anzahl Eingänge | Anzahl der Eingänge, die das Modul zur Verfügung stellen soll. |
| PHP Code | PHP Code, der ausgeführt werden soll. Die Eingänge können im PHP Code über die Variablen $value1 bis $value8 referenziert werden. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | -------------------------------------------------------------------------------------------- |
| Wert x | Abhängig von der Eigenschaft "Anzahl Eingänge" stehen 1 bis 8 Datenpunkte am Eingang bereit. |
## Funktionsaufruf
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/funktionsaufruf/
Das Module "Funktionsaufruf" bietet die Möglichkeit um eine IP-Symcon Instanzfunktion aufzurufen.

### Properties
| Name | Beschreibung |
| ------------- | ------------------------------------------------------ |
| ID | ID der Instanz wo eine Funktion aufgerufen werden soll |
| Funktionsname | Name der Funktion die aufgerufen werden soll. |
> **Hinweis:** Nach Eingabe einer gültigen ID, stellt die DropDown Funktion bereits alle möglichen Funktionsnamen zur Verfügung.
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------- |
| Parameter | Die Eingänge des Modules variieren je nach gewählter Funktion |
## IRTrans
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/irtrans/
Das Module "IRTrans" bietet die Möglichkeit zum Ansteuern einer IRTrans Instanz. Es können bis zu 3 Buttons angesteuert werden.

### Properties
| Name | Beschreibung |
| ------------- | -------------------------------------------------------------------- |
| Fernbedienung | Fernbedienung, die für das Senden der Buttons verwendet werden soll. |
| Instanz ID | Instanz, die für das Versenden der IR Befehle verwendet werden soll. |
> **Hinweis:** Sollen Befehle zu verschiedenen Geräten versendet werden, müssen mehrere IRTrans Module verwendet werden.
### Datenpunkte Eingang
| Name | Beschreibung |
| -------- | --------------------------------------- |
| Button 1 | 1. IR Befehl, der gesendet werden soll. |
| Button 2 | 2. IR Befehl, der gesendet werden soll. |
| Button 3 | 3. IR Befehl, der gesendet werden soll. |
## Log Meldung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/log-meldung/
Das Module "Log Meldung" bietet die Möglichkeit zum Schreiber einer Meldung in das IP-Symcon Log.

### Properties
| Name | Beschreibung |
| ------ | -------------------------------------------------------------- |
| Sender | Text der im Feld Sender der Log Meldung verwendet werden soll. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Senden | Durch TRUE auf diesem Eingang wird das Versenden der Nachricht ausgelöst. Wird der Eingang nicht verbunden, wird immer ein Mail Versandt ausgelöst. |
| Nachricht | Text für die Log Meldung. |
## Mail Benachrichtigung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/mail-benachrichtigung/
Das Module "Mail versenden" bietet die Möglichkeit zum Versenden von Mail Nachrichten.

### Properties
| Name | Beschreibung |
| -------------- | --------------------------------------------------------------------------- |
| InstanzID Mail | ID der SMTP Instanz, die für das Versenden der Mails verwendet werden soll. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Senden | Durch TRUE auf diesem Eingang wird das Versenden der Nachricht ausgelöst. Wird der Eingang nicht verbunden, wird immer ein Mail Versandt ausgelöst. |
| Betreff | Text der im Betreff der Nachricht verwendet werden soll. |
| Nachricht | Text für die Mail Nachricht. |
## Push Benachrichtigung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/push-benachrichtigung/
Das Module "Push Nachricht" bietet die Möglichkeit zum Versenden einer Push Benachrichtigung auf ein mobiles Gerät.

### Properties
| Name | Beschreibung |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| InstanzID Benachrichtigung | ID der Benachrichtigungs Instanz (Notification Control), die für das Versenden der Push Benachrichtigung verwendet werden soll. |
| ObjektID Benachrichtigungen | ID des Objektes (View oder Visualisierung-Konfigurator) an das die Push Benachrichtigung gesendet werden soll. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Senden | Durch TRUE auf diesem Eingang wird das Versenden der Nachricht ausgelöst. Wird der Eingang nicht verbunden, wird immer eine Benachrichtigung ausgelöst. |
| Betreff | Text der im Betreff der Nachricht verwendet werden soll. |
| Nachricht | Text für die Nachricht. |
## Skript Ausführung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/skript-ausfuehrung/
Das Module "Skript Ausführung" bietet die Möglichkeit zur Einbindung von anderen Skripten bzw. Automations in den Logikplan.

### Properties
| Name | Beschreibung |
| ---------- | -------------------------------------------------------- |
| SkriptID | ID des Skriptes. |
| Sender | Wert für die Variable SENDER beim Aufruf des Skriptes. |
| VariableID | Wert für die Variable VARIABLE beim Aufruf des Skriptes. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ----------------------------------------------------- |
| Wert | Wert für die Variable VALUE beim Aufruf des Skriptes. |
## Variable mit ID
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/aktionen/variable-mit-id/
Das Module "Variable mit ID" bietet die Möglichkeit zum Verändern einer Variable die erst zur Laufzeit des Logikplans über die ID der Variable referenziert wird.

### Datenpunkte Eingang
| Name | Beschreibung |
| -------- | ------------------------------------------- |
| Variable | ID der Variable, die verändert werden soll. |
| Wert | Wert der gesetzt werden soll. |
## Bedingung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/bedingung/
Module der Gruppe "Bedingung" ermöglichen das bedingte Ausführen von Teilen des Logikplans.
## Bedingter Wert
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/bedingung/bedingter-wert/
Das Module "Bedingter Wert" setzt einen Wert nur dann wenn eine Bedingung am Eingang zu TRUE evaluiert wurde.

### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------ |
| Wert | Wert der gesetzt werden soll. |
| Bedingung | Logischer Wert der als Bedingung überprüft wird. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Wert der gesetzt werden soll. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die Bedingung am Eingang zu TRUE evaluiert wurde. |
## Bedingung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/bedingung/bedingung/
Das Module "Bedingung" (Wenn) bietet die Möglichkeit eine bedingte Verzweigung in den Logikplan zu integrieren. Ist die Bedingung am Eingang erfüllt, liefert der Ausgang "Erfüllt" den Wert "True", andernfalls liefert der Ausgang "Nicht erfüllt" den Wert "False".

### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------ |
| Bedingung | Logischer Wert der als Bedingung überprüft wird. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ------------- | -------------------------------------------------------------------------------------- |
| Erfüllt | Der nachfolgende Zweig wird nur ausgeführt wenn die Bedingung zu TRUE evaluiert wird. |
| Nicht erfüllt | Der nachfolgende Zweig wird nur ausgeführt wenn die Bedingung zu FALSE evaluiert wird. |
## Dokumentation: Kommentar
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/dokumentation-kommentar/
Das Module "Kommentar" bietet die Möglichkeit Text zur Kommentierung des Logikplans einzufügen.

### Properties
| Name | Beschreibung |
| ---- | --------------- |
| Text | Kommentar Text. |
## Ereignisse
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/
Module der Gruppe "Ereignisse" ermöglichen das automatische Ausführen des Logikplans wenn sich der Wert einer Variable ändert.
## Bei Änderung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/bei-aenderung/
Das Module "Bei Änderung" ermöglicht das Ausführen des Logikplans wenn eine bestimmte Variable verändert (neuer Wert wird der Variable zugewiesen) wurde.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------ |
| Wert | Datenpunkt der Variable deren Änderung eine Ausführung des Logikplans auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Datenpunkt der Variable. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die zugehörige Variable verändert wurde. |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn die verlinkte Variable verändert wurde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die Variable verändert wurde. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn die verlinkte Variable nicht verändert wurde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die Variable nicht verändert wurde. |
### Anwendungsbeispiel
Gegeben sind 1 Homematic Bewegungsmelder und 1 Homematic Aktor zum Schalten eines Lichtes:

Ansicht der beiden Aktoren im WebFront

Es soll nun ein Logikplan im Logikpläne erstellt werden, der bei einem Auslösen des Bewegungsmelders automatisch ein Licht ein bzw. wieder ausschaltet.
Sie können dieses Verhalten durch die Verwendung eines Bei Änderung realisieren, vordefinierte Instanz Module für das Setzen der Werte finden Sie im Objektbaum des Logikplandesigners.

Im konkreten Fall wird der Logikplan bei jeder Änderung der Statusvariable des Bewegungsmelders aufgerufen und appliziert dessen Status auf das Licht weiter.
## Bei Aktualisierung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/bei-aktualisierung/
Das Module "Bei Aktualisierung" ermöglicht das Ausführen des Logikplans wenn eine bestimmte Variable aktualisiert (selber Wert oder anderer Wert wird der Variable zugewiesen) wurde.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------------ |
| Wert | Datenpunkt der Variable deren Aktualisierung eine Ausführung des Logikplans auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Datenpunkt der Variable. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die zugehörige Variable aktualisiert wurde. |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn die verlinkte Variable aktualisiert wurde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die Variable aktualisiert wurde. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn die verlinkte Variable nicht aktualisiert wurde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn die Variable nicht aktualisiert wurde. |
## Bei bestimmten Wert
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/bei-bestimmten-wert/
Das Module "Bei bestimmten Wert" ermöglicht das Ausführen des Logikplans wenn eine Variable einen bestimmten Wert erreicht.

### Properties
| Name | Beschreibung |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert für Auslösung | Wert, bei dem das Module auslösen soll. |
| Nachfolgende Ereignisse auslösen | Bei Aktivierung dieser Option, löst das Modul bei jeder Aktualisierung der Variable aus, wenn der Wert dem spezifizierten Limit entspricht. Bei Deaktivierung der Option löst das Modul nur einmalig aus, erst bei überschreiten oder unterschreiten und nochmaligen erreichen des Limits löst das Modul wieder aus. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------ |
| Wert | Datenpunkt der Variable deren Änderung eine Ausführung des Logikplans auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Wert | Datenpunkt der Variable. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn auch der Ausgang "Aktualisierung" TRUE liefert. |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn der Wert der verlinkten Variable den spezifizierten Wert erreicht hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Wert erreicht wurde. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn der Wert der verlinkten Variable den spezifizierten Wert nicht erreicht hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Wert nicht erreicht wurde. |
## Bei Überschreitung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/bei-ueberschreitung/
Das Module "Bei Überschreitung" ermöglicht das Ausführen des Logikplans wenn eine Variable einen bestimmten Wert überschreitet.

### Properties
| Name | Beschreibung |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert für Auslösung | Wert, bei dessen Überschreitung das Module auslösen soll. |
| Nachfolgende Ereignisse auslösen | Bei Aktivierung dieser Option, löst das Modul bei jeder Änderung der Variable aus, wenn der Wert über dem spezifizierten Limit liegt. Bei Deaktivierung der Option löst das Modul nur einmalig aus, erst bei unterschreiten und nochmaligen überschreiten des Limits löst das Modul wieder aus. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------------ |
| Wert | Datenpunkt der Variable deren Überschreitung eine Ausführung des Logikplans auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Datenpunkt der Variable. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn auch der Datenpunkt "Aktualisierung" TRUE liefert. |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn der Wert der verlinkten Variable den spezifizierten Wert überschritten hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Wert überschritten wurde. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn der Wert der verlinkten Variable den spezifizierten Wert nicht überschritten hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Wert nicht überschritten wurde. |
## Bei Unterschreitung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/bei-unterschreitung/
Das Module "Bei Limit Unterschreitung" ermöglicht das Ausführen des Logikplans wenn eine Variable einen bestimmten Wert unterschreitet.

### Properties
| Name | Beschreibung |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Wert für Auslösung | Wert, bei dessen Unterschreitung das Module auslösen soll. |
| Nachfolgende Ereignisse auslösen | Bei Aktivierung dieser Option, löst das Modul bei jeder Änderung der Variable aus, wenn der Wert unter dem spezifizierten Limit liegt. Bei Deaktivierung der Option löst das Modul nur einmalig aus, erst bei überschreiten und nochmaligen unterschreiten des Limits löst das Modul wieder aus. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------------- |
| Wert | Datenpunkt der Variable deren Unterschreitung eine Ausführung des Logikplans auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Wert | Datenpunkt der Variable. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn auch der Ausgang "Aktualisierung" TRUE liefert. |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn der Wert der verlinkten Variable den spezifizierten Wert unterschritten hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Wert unterschritten wurde. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn der Wert der verlinkten Variable den spezifizierten Wert nicht unterschritten hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Wert nicht unterschritten wurde. |
## Wochenplan (1 Gruppe)
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/wochenplan-1-gruppe/
Das Module "Wochenplan (1 Gruppe)" bietet die Möglichkeit den Logikplan mit einem IP-Symcon Wochenplan mit 1 Gruppe zu verknüpfen.

### Properties
| Name | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------- |
| Anzahl Aktionen | Anzahl der Aktionen, die für die Konfiguration des Wochenplans in der Visualisierung zur Verfügung stehen. |
| Aktionen | Liste der Wochenplan Aktionen. Jeder Wochenplan Aktion kann ein Name und eine Farbe zugeordnet werden. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktion x | Datenpunkt der jeweiligen Wochenplan Aktion, wenn die entsprechende Aktion auslöst, wird der Datenpunkt zu TRUE evaluiert wird. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn dieser Datenpunkt zu TRUE evaluiert wurde. |
## Wochenplan (2 Gruppen)
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/wochenplan-2-gruppen/
Das Module "Wochenplan (2 Gruppen)" bietet die Möglichkeit den Logikplan mit einem IP-Symcon Wochenplan mit 2 Gruppe zu verknüpfen.

### Properties
| Name | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------- |
| Anzahl Aktionen | Anzahl der Aktionen, die für die Konfiguration des Wochenplans in der Visualisierung zur Verfügung stehen. |
| Aktionen | Liste der Wochenplan Aktionen. Jeder Wochenplan Aktion kann ein Name und eine Farbe zugeordnet werden. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktion x | Datenpunkt der jeweiligen Wochenplan Aktion, wenn die entsprechende Aktion auslöst, wird der Datenpunkt zu TRUE evaluiert wird. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn dieser Datenpunkt zu TRUE evaluiert wurde. |
## Wochenplan (7 Gruppen)
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/ereignisse/wochenplan-7-gruppen/
Das Module "Wochenplan (7 Gruppen)" bietet die Möglichkeit den Logikplan mit einem IP-Symcon Wochenplan mit 7 Gruppen zu verknüpfen.

### Properties
| Name | Beschreibung |
| --------------- | ---------------------------------------------------------------------------------------------------------- |
| Anzahl Aktionen | Anzahl der Aktionen, die für die Konfiguration des Wochenplans in der Visualisierung zur Verfügung stehen. |
| Aktionen | Liste der Wochenplan Aktionen. Jeder Wochenplan Aktion kann ein Name und eine Farbe zugeordnet werden. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktion x | Datenpunkt der jeweiligen Wochenplan Aktion, wenn die entsprechende Aktion auslöst, wird der Datenpunkt zu TRUE evaluiert wird. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn dieser Datenpunkt zu TRUE evaluiert wurde. |
## Informationen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/informationen/
Module der Gruppe "Informationen" ermöglichen die Einbindung von diversen IP-Symcon Informationen in den Logikplan.
## Skript Informationen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/informationen/skript-informationen/
Das Module "SkriptInfo" bietet die Möglichkeit zum Einbinden von Informationen zur aktuellen Skriptausführung.

### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | -------------------------------------------------------------------------------------------------------- |
| Sender | Die Sender Variable der aktuellen Skriptausführung (Wert der IP-Symcon Skript Variable $_IPS['SENDER']). |
| Variable | Die Variable ID der aktuellen Skriptausführung (Wert der IP-Symcon Skript Variable $_IPS['VARIABLE']). |
| Wert | Die Value Variable der aktuellen Skriptausführung (Wert der IP-Symcon Skript Variable $_IPS['VALUE']). |
### Anwendungsbeispiel
Ein typisches Anwendungsbeispiel für das Modul "SkriptInfo" ist die Realisierung eines Aktionsskriptes für eine Variable.
Dabei nimmt der Logikplan den Wert der Visualisierung entgegen und weist in der betreffenden Variable zu.
Weitergehende Informationen zum Thema [Aktionsskript](https://www.symcon.de/de/llms/concepts/automations.md).
Die Zuweisung des Logikplans als Aktionsskript der Variable erfolgt dabei indem man die Variable in den Logikplan einbindet und im Eigenschaft-Editor die Option "Als Aktionsskript" auswählt.
Alternativ kann das Logikplan Skript auch manuell der Variable in der Console zugewiesen werden.
Im vorliegenden Beispiel wird zuerst der Wert der Variable "Entertainment" gesetzt (Bedienung über das WebFront oder IPSView Client) und danach der Wert verwendet um einen Verstärker und einen Sonos Player mittels Automation Skript anzusteuern.

## System Informationen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/informationen/system-informationen/
Das Module "SystemInfo" liefert Informationen zum IP-Symcon System.

### Datenpunkte Ausgang
| Name | Beschreibung |
| ----------- | ---------------------------------------- |
| Zeitstempel | Unix Timestamp der aktuellen Systemzeit. |
## Variablen Inforamtionen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/informationen/variablen-inforamtionen/
Das Module "VariableInfo" liefert Informationen zur einer Variable.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------------------- |
| Wert | Verbindung zum Datenpunkt Wert einer Variable, von der die Informationen angezeigt werden sollen. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------------- | ------------------------------------------------------- |
| Letzte Aktualisierung | Unix Timestamp der letzten Aktualisierung der Variable. |
| Letzte Änderung | Unix Timestamp der letzten Änderung der Variable. |
| ID | ID der Variable. |
## Konstante Werte
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/konstante-werte/
Das Module "Konstante" bietet die Möglichkeit zur Einbindung von fixen Werten in den Logikplan, dem Modul kann in den Properties ein Datentyp, ein Wert und ein Name für die Anzeige zugewiesen werden.

### Properties
| Name | Beschreibung |
| --------- | ------------------------------------------------------ |
| Anzeige | Name der im Diagramm für die Konstante angezeigt wird. |
| Wert | Wert der Konstante als String. |
| Datentype | Datentype der Konstante. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ---------------------- |
| Wert | Der Wert der Konstante |
### Anwendungsbeispiel
Gegeben sind 1 Homematic Aktor zum Schalten eines Lichtes, 1 Homematic Aktor zum Dimmen eines Lichtes und ein IP-Symcon 868 Aktor zum Betrieb eines RGB Strips:

Die Aktoren können über das WebFront getrennt voneinander geschaltet werden:

Es soll nun ein Logikplan im Logikpläne erstellt werden, der ein bestimmtes Lichtszenario einstellt und dabei den einzelnen Beleuchtungskörpern vordefinierte Werte zuweist.
Sie können dieses Werte durch die Verwendung von Konstanten realisieren, vordefinierte Instanz Module für das Setzen der Werte finden Sie im [Objektbaum](https://www.symcon.de/de/llms/concepts/automations.md) des Logikplandesigners.

Im konkreten Fall wird der RGB Leuchte die Farbe Blau zugewiesen, das Wandlicht wird abgeschaltet und der Dimmer auf 50% gesetzt.
## Logik
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/logik/
Module der Gruppe "Logik" ermöglichen das Einbinden von logischen Modulen.
## Nicht
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/logik/nicht/
Das Module "Nicht" bietet die Möglichkeit zur Realisierung eines logischen NICHT im Logikplan.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ---------------------------- |
| Wert | Datenpunkt für Eingangswert. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---------- | -------------------------------------------------------------------------------------------------------------- |
| Invertiert | Liefert TRUE wenn der Wert am Eingang Wert FALSE ist und liefert FALSE wenn der Wert am Eingang Wert TRUE ist. |
## Oder
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/logik/oder/
Das Module "Oder" bietet die Möglichkeit zur Realisierung einer logischen ODER Verknüpfung im Logikplan.

### Properties
| Name | Beschreibung |
| --------------- | ------------------------------------------------- |
| Anzahl Eingänge | Stellt 2 bis 8 Eingänge des Modules zu Verfügung. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | -------------------------------- |
| Wert 1 | Datenpunkt für Vergleichswert 1. |
| Wert 2 | Datenpunkt für Vergleichswert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ---------------------------------------------------- |
| Ergebnis | Liefert TRUE wenn der Wert eines Einganges TRUE ist. |
### Anwendungsbeispiel
Gegeben sind 2 Homematic Aktoren zur Steuerung einer Gartenbewässerung und 1 Homematic Aktor, der als Hauptschalter für die Bewässerung agiert:

Es soll nun ein Logikplan im Logikpläne erstellt werden, der eine automatische Ansteuerung der Gartenpumpe realisiert. Wenn einer der beiden Bewässerungsaktoren aktiviert wird, soll der Hauptschalter ebenfalls aktiviert werden. Sind beide Aktoren aus, soll auch der Hauptschalter deaktiviert werden.
Sie können dieses Verhalten durch ein Oder Modul realisieren, vordefinierte Module für die Instanzen finden Sie im Objektbaum des Logikplan-Editors.

Funktionsweise:
- Eine Änderung an den "STATE" Ausgängen der Beregnungskreis rufen den Logikplan automatisch auf, sobald einer der beiden Bewässerungsaktoren geschaltet wird (egal ob über eine Visualisierung, über einen Wochenplan oder ein anderes Skript).
- Wurde einer der beiden Aktoren aktiviert, liefert das Oder TRUE und aktiviert den Hauptschalter .
- Sind beide Aktoren deaktiviert, liefert das Oder FALSE und deaktiviert den Hauptschalter wieder.
> **Hinweis:** Für eine automatische Ausführung des Logikplans bei einer Änderung der Variable müssen Sie die Eigenschaft "Logikplan Ausführung" des Moduls "Instanz Lesen" auf den Wert "Bei Änderung" setzen.

## Und
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/logik/und/
Das Module "Und" bietet die Möglichkeit zur Realisierung einer logischen UND Verknüpfung im Logikplan.

### Properties
| Name | Beschreibung |
| --------------- | ------------------------------------ |
| Anzahl Eingänge | Stellt 2 bis 8 Eingänge zu Verfügung |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | -------------------------------- |
| Wert 1 | Datenpunkt für Vergleichswert 1. |
| Wert 2 | Datenpunkt für Vergleichswert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ----------------------------------------------------------- |
| Ergebnis | Liefert *TRUE* wenn der Wert an allen Eingängen *TRUE* ist. |
## Mapping
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mapping/
Das Module "Mappingtabelle" bietet die Möglichkeit bis zu 8 Eingänge mit einer komplexen Mapping Logik auf bis zu 8 Ausgänge zu mappen. Sie können für verschiedenste Kombinationen von Werten am Eingänge jeweils die Werte für die jeweiligen Ausgänge definieren.

### Properties
| Name | Beschreibung |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Eingänge | Definition der Eingänge. Es können bis zu 8 Eingänge definiert werden, jedem Eingang muss ein Name und ein Datentyp zugewiesen werden. |
| Ausgänge | Definition der Ausgänge. Es können bis zu 8 Ausgänge definiert werden, jedem Ausgang muss ein Name und ein Datentyp zugewiesen werden. |
| Mappings | Definition der Mappings. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------ |
| Eingang x | Datenpunkte die in der Eigenschaft Eingänge definiert wurden |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------ |
| Ausgang x | Datenpunkte die in der Eigenschaft Ausgänge definiert wurden |
## Mathematik
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/
Module der Gruppe "Mathematik" ermöglichen die Berechnung mathematischer Ausdrücke im Logikplan.
## Addition
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/addition/
Das Module "Addition" bietet die Möglichkeit zum Addieren von 2 Werten.

### Properties
| Name | Beschreibung |
| --------------- | ------------------------------------------------- |
| Anzahl Eingänge | Stellt 2 bis 8 Eingänge des Modules zu Verfügung. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ------------------- |
| Ergebnis | Summe der Eingänge. |
## Division
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/division/
Das Module "Division" bietet die Möglichkeit zur Division von 2 Werten.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ------------------------------------------------ |
| Ergebnis | Ergebnis aus der Berechnung Wert 1 durch Wert 2. |
## Formel
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/formel/
Das Module "Formel" bietet die Möglichkeit zur Berechnung von bis zu 8 Werten auf Basis einer benutzerdefinierten Formel mit bis zu 8 verschiedenen Eingangswerten.

### Properties
| Name | Beschreibung |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Formel | PHP Code der beim Aufruf des Moduls ausgeführt werden soll. Die Werte des Eingangs stehen über die Variablen $value1, $value2, $value3, $value4, $value5, $value6, $value7 und $value8 zur Verfügung. Das Ergebnis kann über die Variable $result1, $result2, $result3, $result4, $result5, $result6, $result7 und $result8 an den Logikplan zurückgegeben werden. |
| Anzahl Ausgänge | Anzahl der Datenpunkte am Ausgang (Wertebereich 1-8) |
| Anzahl Eingänge | Anzahl der Datenpunkte am Eingang (Wertebereich 1-8) |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
| Wert 3 | Datenpunkt für Wert 3. |
| Wert 4 | Datenpunkt für Wert 4. |
| Wert 5 | Datenpunkt für Wert 5. |
| Wert 6 | Datenpunkt für Wert 6. |
| Wert 7 | Datenpunkt für Wert 7. |
| Wert 8 | Datenpunkt für Wert 8. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---------- | ----------------------------------------------------------------- |
| Ergebnis 1 | Ergebnis 1 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 2 | Ergebnis 2 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 3 | Ergebnis 3 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 4 | Ergebnis 4 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 5 | Ergebnis 5 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 6 | Ergebnis 6 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 7 | Ergebnis 7 aus der Berechnung mit der benutzerdefinierten Formel. |
| Ergebnis 8 | Ergebnis 8 aus der Berechnung mit der benutzerdefinierten Formel. |
## Maximum
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/maximum/
Das Module "Maximum" bietet die Möglichkeit zur Berechnung des Maximum aus bis zu 4 verschiedenen Werten.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
| Wert 3 | Datenpunkt für Wert 3. |
| Wert 4 | Datenpunkt für Wert 4. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | -------------------------------------------- |
| Ergebnis | Maximum der Eingangswerte Wert 1 bis Wert 4. |
## Minimum
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/minimum/
Das Module "Minimum" bietet die Möglichkeit zur Berechnung des Minimum aus bis zu 4 verschiedenen Werten.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
| Wert 3 | Datenpunkt für Wert 3. |
| Wert 4 | Datenpunkt für Wert 4. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | -------------------------------------------- |
| Ergebnis | Minimum der Eingangswerte Wert 1 bis Wert 4. |
## Modulo
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/modulo/
Das Module "Modulo" bietet die Möglichkeit zur Berechnung des Modulo von 2 Werten.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ------------------------------------------------- |
| Ergebnis | Ergebnis aus der Berechnung Wert 1 modulo Wert 2. |
## Multiplikation
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/multiplikation/
Das Module "Multiplikation" bietet die Möglichkeit zum multiplizieren von 2 Werten.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ---------------------------------------------- |
| Ergebnis | Ergebnis aus der Berechnung Wert 1 mal Wert 2. |
## Runden
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/runden/
Das Module "Runden" bietet die Möglichkeit zum Runden eines Wertes.

### Properties
| Name | Beschreibung |
| ------- | ------------------------------------------------ |
| Stellen | Anzahl der Stellen auf die gerundet werden soll. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------------- |
| Wert 1 | Datenpunkt für Eingangswert. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ------------------------------------------ |
| Ergebnis | Ergebnis aus der Berechnung Wert gerundet. |
## Subtraktion
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/mathematik/subtraktion/
Das Module "Subtraktion" bietet die Möglichkeit zum Subtrahieren von 2 Werten.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ---------------------- |
| Wert 1 | Datenpunkt für Wert 1. |
| Wert 2 | Datenpunkt für Wert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ------------------------------------------------ |
| Ergebnis | Ergebnis aus der Berechnung Wert 1 minus Wert 2. |
## Sublogikplan
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/sublogikplan/
"Sublogikplan" ermöglichen es, mehrere Module in eine neue Einheit zu Gruppieren und mit Parametern und Datenpunkten zu versehen. Diese Gruppe an Modulen ist dann im "Hauptlogikplan" als eigenständiges Modul anzusprechen, ferner besteht auch die Möglichkeit diese Sublogikplans in ein File zu exportieren bzw. zu importieren.
## Sublogikplan Parameter
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/sublogikplan/parameter/
Das Module "Parameter" bietet die Möglichkeit einen Parameter für einen Sublogikplan zu erstellen. Parameter können in weiterer Folge in den Eigenschaften des Sublogikplan Modules gesetzt werden.

### Properties
| Name | Beschreibung |
| ----------- | --------------------------------------------------------------------------------------------------------------------- |
| Anzeige | Name des Parameters, spezifiziert den Namen des Parameters wie dieser in der Eigenschaftsliste angezeigt werden soll. |
| Datentype | Datentype des Parameters |
| Defaultwert | Default Wert des Parameters, der nach dem initialen Erstellen des Modules zugewiesen werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------------------ |
| Wert | Aktueller Wert des Parameters der in weiterer Folge im Sublogikplan verwendet werden kann. |
## Sublogikplan Ausgang
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/sublogikplan/sublogikplan-ausgang/
Das Module "Ausgang" bietet die Möglichkeit einen Datenpunkt Ausgang für einen Sublogikplan zu erstellen. Ausgänge werden als Datenpunkte des Sublogikplan Modules zur Verfügung gestellt und können dort mit anderen Modulen verbunden werden.

### Properties
| Name | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------------------- |
| Anzeige | Name des Ausgangs, spezifiziert den Namen des Datenpunktes wie dieser im Hauptlogikplan Modul angezeigt werden soll. |
| Datentype | Datentype des Parameters |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | -------------------------------------------------------------------------------- |
| Wert | Wert der dem Hauptlogikplan über den Ausgang zur Verfügung gestellt werden soll. |
## Sublogikplan Eingang
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/sublogikplan/sublogikplan-eingang/
Das Module "Eingang" bietet die Möglichkeit einen Datenpunkt Eingang für einen Sublogikplan zu erstellen. Eingänge werden als Datenpunkte des SubLogikplan Modules zur Verfügung gestellt und können dort mit anderen Modulen verbunden werden.

### Properties
| Name | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------------------- |
| Anzeige | Name des Eingangs, spezifiziert den Namen des Datenpunktes wie dieser im Hauptlogikplan Modul angezeigt werden soll. |
| Datentype | Datentype des Parameters |
| Pflicht | Spezifiziert ob der Eingang zwingend verbunden werden muss. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------------ | ------------------------------------------------------- |
| Default Wert | Default Wert wenn der Datenpunkt nicht verbunden wurde. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ------------------------------------------------------------------------------ |
| Wert | Aktueller Wert der an den Datenpunkt des Sublogikplan Modules übergeben wurde. |
## Sublogikplan Modul
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/sublogikplan/sublogikplan-modul/
Das Module "Sublogikplan" bietet die Möglichkeit mehrere Module zu einer Einheit zusammenzufassen und in Ihren Hauptlogikplan einzufügen.

Die folgenden Funktionen stehen zur Verfügung:
| Name | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Öffnen / Bearbeiten | Klicken Sie auf Öffnen / Bearbeiten, um einen Sublogikplan zur Bearbeitung zu öffnen. Nach Betätigung des Buttons wird der Sublogikplan geöffnet und kann verändert werden. |
| Zurück | Klicken Sie auf Zurück, um den Sublogikplan Editor wieder zu verlassen. Nach Betätigung des Buttons werden die aktuellen Änderungen am Sublogikplan gespeichert und der Hauptlogikplan wieder geladen. |
## Timer
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/
Module der Gruppe "Timer" das automatische Ausführen des Logikplans über einen Timer.
## Einmal am Tag
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/einmal-am-tag/
Das Module "Einmal am Tag" ermöglicht die Realisierung eines Timers, der jeden Tag um eine bestimmte Uhrzeit den Logikplan aufruft.

### Properties
| Name | Beschreibung |
| ------- | ------------------------------------- |
| Uhrzeit | Uhrzeit für die Auslösung des Timers. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktiv | Aktivierung des Timers, bei TRUE wird der Timer aktiviert und löst den Logikplan zu der eingestellten Zeit täglich aus. |
| Stunde | Datenpunkt des Modules der die Stunde der Auslösung steuert. Wenn der Eingang nicht verbunden ist, wird der Wert der Eigenschaft "Uhrzeit" für die Auslösung verwendet. |
| Minute | Datenpunkt des Modules der die Minute der Auslösung steuert. Wenn der Eingang nicht verbunden ist, wird der Wert der Eigenschaft "Uhrzeit" für die Auslösung verwendet. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul ausgelöst hat. Dies erfolgt bei aktiven Timer jede Sekunde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer ausgelöst hat. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul nicht ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer nicht ausgelöst hat. |
## Einmaliger Timer
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/einmaliger-timer/
Das Module "Einmaliger Timer" ermöglicht das zeitversetzte Ausführen von bestimmten Teilen des Logikplans.

### Datenpunkte Eingang
| Name | Beschreibung |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Neustart/Aktiv | Aktivierung des Timers, bei TRUE wird der Timer aktiviert und löst den Logikplan nach einer bestimmten Zeit wieder aus. Sollte der Timer bereits laufen, wird die verbleibende Zeit auf den ursprünglichen Wert zurückgesetzt. |
| Start | Starten des Timers, bei TRUE wird der Timer aktiviert wenn dieser noch nicht aktiv ist und löst den Logikplan nach einer bestimmten Zeit wieder aus. |
| Zeit (Sekunden) | Zeit in Sekunden, nach der Timer auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer ausgelöst hat. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul nicht ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer nicht ausgelöst hat. |
| Timer läuft | Datenpunkt des Modules der TRUE liefert, wenn der Timer gestartet wurde, aber noch nicht ausgelöst hat. |
| Verbleibende Sekunden | Liefert die Anzahl von Sekunden die bis zum Auslösen des Timers noch vergehen müssen. |
### Anwendungsbeispiel
Gegeben sind 1 Homematic Taster und 1 Homematic Aktor zum Schalten eines Lichtes:

Es soll nun ein Logikplan im Logikpläne erstellt werden, der bei einem Auslösen des Tasters ein Licht einschaltet und nach einer Minute wieder abschaltet.
Sie können diese Anforderung durch die Verwendung eines Modules Einmaliger Timer realisieren, vordefinierte Instanz Module für den Taster bzw. das Aktivieren des Lichtes finden Sie im Objektbaum des Logikplandesigners.

Funktionsweise:
- Die Variable PRESS_SHORT eines Homematic Tasters hat immer den Wert TRUE, bei Betätigung des Tasters wird der Wert der Variable aktualisiert und lediglich Datum/Uhrzeit der Variable werden aktualisiert. Diese Aktualisierung kann man mit dem Modul Bei Aktualisierung auswerten und andere Module damit steuern.
- Im aktuellen Beispiel wird bei der Aktualisierung der Variable PRESS_SHORT das Licht eingeschaltet und gleichzeitig durch das Setzen des "Aktiv" Eingangs im Modul Einmaliger Timer ein Timer mit 60 Sekunden ausgelöst.
- Das LogikplanSkript wird durch diesen Timer nach 60 Sekunden ein weiteres mal ausgeführt und schaltet das Licht über das Nicht Modul wieder aus.
## Timer Variable
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/timer-variable/
Das Module "Timer Variable" ermöglicht die Realisierung eines Timers basierend auf einer Variable. Nach dem Aktivieren des Timers wird die Verbleibende Zeit bis zum Auslösen des Timers heruntergezählt.

### Datenpunkte Eingang
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Aktiv | Aktivierung des Timers, bei TRUE wird der Timer aktiviert und löst den Logikplan nach einer bestimmten Zeit wieder aus. |
| Rücksetzen | Deaktivierung des Timers, bei TRUE kann ein aktiver Timer abgebrochen werden. |
| Zeit (Sekunden) | Zeit in Sekunden, nach der Timer auslösen soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Dieser Datenpunkt des Modules muss zu einer Variable vom Type Integer verbunden werden. Die Variable realisiert die Anzeige der verbleibenden Timer Zeit. |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul ausgelöst hat. Dies erfolgt bei aktiven Timer jede Sekunde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer ausgelöst hat. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul nicht ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer nicht ausgelöst hat. |
| Fertig | Datenpunkt des Modules der TRUE liefert, wenn der Timer beendet wurde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer beendet wurde. |
### Anwendungsbeispiel
Gegeben sind 1 Homematic Taster, 1 Homematic Aktor zum Schalten eines Lichtes und eine Variable für die Anzeige der Restlaufzeit eines Treppenhausautomaten (normale Variable vom Typ Integer, die ein Profil mit Suffix "Sec" zugewiesen hat).

Es soll nun ein Logikplan im Logikpläne erstellt werden, der bei einem Auslösen des Tasters ein Licht einschaltet und nach einer Minute wieder abschaltet. Zusätzlich soll auch noch die Restlaufzeit in Sekunden visualisiert werden
Sie können diese Anforderung durch die Verwendung eines Modules Timer Variable realisieren, vordefinierte Instanz Module für den Taster bzw. das Aktivieren des Lichtes finden Sie im Objektbaum des Logikplandesigners.

Funktionsweise:
- Die Variable PRESS_SHORT eines Homematic Tasters hat immer den Wert TRUE, bei Betätigung des Tasters wird der Wert der Variable aktualisiert und lediglich Datum/Uhrzeit der Variable werden aktualisiert. Diese Aktualisierung kann man mit dem Modul Bei Aktualisierung auswerten und andere Module damit steuern.
- Im aktuellen Beispiel wird bei der Aktualisierung der Variable PRESS_SHORT das Licht eingeschaltet und gleichzeitig durch das Setzen des "Aktiv" Eingangs im Modul Timer Variable ein Timer mit 60 Sekunden ausgelöst, der die Variable "Verbleibende Zeit" zum Herunterzählen der Sekunden verwendet.
- Das LogikplanSkript wird durch diesen Timer jede Sekunde ausgeführt und aktualisiert den Wert in der Variable "Verbleibende Zeit".
- Hat der Timer den Wert 0 erreicht, wird die Lampe über den Ausgang "Fertig" und einem Nicht Modul wieder ausgeschaltet.
## Timer Zyklisch Minute
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/timer-zyklisch-minute/
Das Module "Timer Zyklisch Minuten" ermöglicht die Realisierung eines Timers, der den Logikplan zyklisch mit dem eingestellten Intervall aufruft.

### Properties
| Name | Beschreibung |
| --------- | -------------------------------------------------- |
| Intervall | Intervall in Minuten für die Auslösung des Timers. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktiv | Aktivierung des Timers, bei TRUE wird der Timer aktiviert und löst den Logikplan zum vorgegebenen Intervall minütlich aus. |
| Intervall | Datenpunkt des Modules für das Steuern des Intervalls. Wenn der Eingang nicht verbunden ist, wird der Wert der Eigenschaft "Intervall" für die Auslösung verwendet. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul ausgelöst hat. Dies erfolgt bei aktiven Timer jede Sekunde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer ausgelöst hat. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul nicht ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer nicht ausgelöst hat. |
## Timer Zyklisch Sekunde
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/timer-zyklisch-sekunde/
Das Module "Timer Zyklisch Sekunde" ermöglicht die Realisierung eines Timers, der den Logikplan zyklisch mit dem eingestellten Intervall aufruft.

### Properties
| Name | Beschreibung |
| --------- | --------------------------------------------------- |
| Intervall | Intervall in Sekunden für die Auslösung des Timers. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktiv | Aktivierung des Timers, bei TRUE wird der Timer aktiviert und löst den Logikplan zum vorgegebenen Intervall sekündlich aus. |
| Intervall | Datenpunkt des Modules für das Steuern des Intervalls. Wenn der Eingang nicht verbunden ist, wird der Wert der Eigenschaft "Intervall" für die Auslösung verwendet. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul ausgelöst hat. Dies erfolgt bei aktiven Timer jede Sekunde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer ausgelöst hat. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul nicht ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer nicht ausgelöst hat. |
## Timer Zyklisch Stunde
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/timer/timer-zyklisch-stunde/
Das Module "Timer Zyklisch Stunde" ermöglicht die Realisierung eines Timers, der den Logikplan zyklisch mit dem eingestellten Intervall aufruft.

### Properties
| Name | Beschreibung |
| --------- | -------------------------------------------------- |
| Intervall | Intervall in Stunden für die Auslösung des Timers. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktiv | Aktivierung des Timers, bei TRUE wird der Timer aktiviert und löst den Logikplan zum vorgegebenen Intervall stündlich aus. |
| Intervall | Datenpunkt des Modules für das Steuern des Intervalls. Wenn der Eingang nicht verbunden ist, wird der Wert der Eigenschaft "Intervall" für die Auslösung verwendet. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul ausgelöst hat. Dies erfolgt bei aktiven Timer jede Sekunde. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer ausgelöst hat. |
| Keine Auslösung | Datenpunkt des Modules der TRUE liefert, wenn das Modul nicht ausgelöst hat. Der nachfolgende Zweig des Logikplans wird nur ausgeführt wenn der Timer nicht ausgelöst hat. |
## Umwandlung
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/
Module der Gruppe "Umwandlung" ermöglichen das Einbinden von Modulen zum Konvertieren von Daten in ein anderes Format.
## Datum zu String
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/datum-zu-string/
Das Module "Datum zu String" bietet die Möglichkeit um einen Unix Zeitstempel in einen String zu konvertieren.

### Properties
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------------ |
| Datumsformat | Format, das für die Konvertierung in einen String verwendet werden soll. |
> **Hinweis:** Es kann jedes beliebige PHP Format für eine Konvertierung eines Datums eingetragen werden. Details zu den möglichen Formaten findet man in der PHP Dokumentation.
> Einige allgemeine Formatierung sind bereits vordefiniert und können über das DropDown ausgewählt werden.
### Datenpunkte Eingang
| Name | Beschreibung |
| ----------- | ---------------------------------------------- |
| Zeitstempel | Unix Zeitstempel, der konvertiert werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ------------------------------------- |
| Wert | Konvertierter Zeitstempel als String. |
## Datum zu Zeit
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/datum-zu-zeit/
Das Module "Datum zu Zeit" bietet die Möglichkeit um einen Unix Zeitstempel in die einzelnen Zeit Komponenten zu zerlegen.

### Datenpunkte Eingang
| Name | Beschreibung |
| ----------- | ---------------------------------------------- |
| Zeitstempel | Unix Zeitstempel, der konvertiert werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ------- | -------------------------------------- |
| Jahr | Das Jahr aus dem Unix Zeitstempel. |
| Monat | Das Monat aus dem Unix Zeitstempel. |
| Tag | Der Tag aus dem Unix Zeitstempel. |
| Stunde | Die Stunden aus dem Unix Zeitstempel. |
| Minute | Die Minuten aus dem Unix Zeitstempel. |
| Sekunde | Die Sekunden aus dem Unix Zeitstempel. |
## Meldung formatieren
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/meldung-formatieren/
Das Module "Meldung formatieren" bietet die Möglichkeit um einen String mit einem oder mehreren Variablen Werten zusammen zu bauen. Das Modul unterstützt bis zu 8 verschiedene Variablen.

### Properties
| Name | Beschreibung |
| --------------- | -------------------------------------------------------------- |
| Anzahl Eingänge | Anzahl der Eingänge, die das Modul zur Verfügung stellen soll. |
| Format String | PHP Format String zur Formatierung des Strings |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | --------------------------------- |
| Wert 1 | Wert 1 für das Bilden der Meldung |
| Wert 2 | Wert 2 für das Bilden der Meldung |
| Wert 3 | Wert 3 für das Bilden der Meldung |
| Wert 4 | Wert 4 für das Bilden der Meldung |
| Wert 5 | Wert 5 für das Bilden der Meldung |
| Wert 6 | Wert 6 für das Bilden der Meldung |
| Wert 7 | Wert 7 für das Bilden der Meldung |
| Wert 8 | Wert 8 für das Bilden der Meldung |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------- | ------------------------------------------------------------------ |
| Ergebnis | Ergebnis Meldung aus dem Format String und den Eingangs Variablen. |
## Wert inventieren
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/wert-inventieren/
Das Module "Wert inventieren" bietet die Möglichkeit um einen Wert zu invertieren. Das jeweilige Minimum bzw. Maximum kann entweder über die Eigenschaften des Modules konfiguriert werden oder alternativ bietet das Modul auch Eingänge für die Werte an.

### Properties
| Name | Beschreibung |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ausgänge Bereich | Aktiviert die Datenpunkte am Ausgang "In Bereich" und "Nicht in Bereich". Standardmäßig sind diese Datenpunkte nicht aktiviert. |
| Eingänge Limit | Aktiviert die Datenpunkte am Eingang für die Limits ("Minimum Eingang" und "Maximum Eingang"). Standardmäßig sind diese Datenpunkte nicht aktiviert. |
| Maximum Eingang | Spezifiziert das Maximum für die Invertierung des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
| Minimum Eingang | Spezifiziert das Minimum für die Invertierung des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Wert | Wert der invertiert werden soll |
| Minimum Eingang | Minimum Wert für die Invertierung. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Eingänge Limit" aktiviert wurde. |
| Maximum Eingang | Maximum Wert für die Invertierung. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Eingänge Limit" aktiviert wurde. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Konvertierter Wert |
| In Bereich | Liefert __TRUE__ wenn sich der zu invertierende Wert innerhalb von Minimum und Maximum befand. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Ausgänge Bereich" aktiviert wurde. |
| Nicht in Bereich | Liefert __TRUE__ wenn sich der zu invertierende Wert außerhalb von Minimum und Maximum befand. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Ausgänge Bereich" aktiviert wurde. |
## Wert zu Boolean
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/wert-zu-boolean/
Das Module "Wert zu Boolean" bietet die Möglichkeit um einen Wert in einen Boolean zu konvertieren.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | --------------------------------- |
| Wert | Wert der konvertiert werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ------------------------------- |
| Wert | Konvertierter Wert als Boolean. |
## Wert zu Float
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/wert-zu-float/
Das Module "Wert zu Integer" bietet die Möglichkeit um einen Wert in einen Float zu konvertieren.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | --------------------------------- |
| Wert | Wert der konvertiert werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ----------------------------- |
| Wert | Konvertierter Wert als Float. |
## Wert zu Integer
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/wert-zu-integer/
Das Module "Wert zu Integer" bietet die Möglichkeit um einen Wert in einen Integer zu konvertieren.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | --------------------------------- |
| Wert | Wert der konvertiert werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ------------------------------- |
| Wert | Konvertierter Wert als Integer. |
## Wert zu String
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/wert-zu-string/
Das Module "Wert zu String" bietet die Möglichkeit um einen Wert in einen String zu konvertieren.

### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | --------------------------------- |
| Wert | Wert der konvertiert werden soll. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ------------------------------ |
| Wert | Konvertierter Wert als String. |
## Wertebereich konvertieren
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/wertebereich-konvertieren/
Das Module "Konvertiere Bereich" bietet die Möglichkeit um einen Wert von einem Wertebereich in einen anderen Wertebereich zu konvertieren. Beispielsweise ist es mit dem Modul möglich einen Wert der im Bereich 0 bis 1 liegt in den Wertebereich 0 bis 100 zu konvertieren.

### Properties
| Name | Beschreibung |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ausgänge Bereich | Aktiviert die Datenpunkte am Ausgang "In Bereich" und "Nicht in Bereich". Standardmäßig sind diese Datenpunkte nicht aktiviert. |
| Eingänge Limit | Aktiviert die Datenpunkte am Eingang für die Limits ("Minimum Eingang" und "Maximum Eingang"). Standardmäßig sind diese Datenpunkte nicht aktiviert. |
| Maximum Eingang | Spezifiziert das Maximum für den Eingangsbereich des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
| Minimum Eingang | Spezifiziert das Minimum für den Eingangsbereich des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
| Maximum Ausgang | Spezifiziert das Maximum für den Ausgangsbereich des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
| Minimum Ausgang | Spezifiziert das Minimum für den Ausgangsbereich des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
| Rundung auf Stellen | Spezifiziert die Anzahl der Stellen, die für das Runden des konvertierten Wertes verwendet werden soll. |
### Datenpunkte Eingang
| Name | Beschreibung |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Wert der invertiert werden soll |
| Minimum Eingang | Minimum Wert für den Eingangsbereich. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Verbinder für Limits" aktiviert wurde. |
| Maximum Eingang | Maximum Wert für den Eingangsbereich. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Verbinder für Limits" aktiviert wurde. |
| Minimum Ausgang | Minimum Wert für den Ausgangsbereich. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Verbinder für Limits" aktiviert wurde. |
| Maximum Ausgang | Maximum Wert für den Ausgangsbereich. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Verbinder für Limits" aktiviert wurde. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Konvertierter Wert |
| In Bereich | Liefert "true" wenn sich der zu konvertierende Wert innerhalb von Minimum und Maximum befand. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Verbinder für Bereichsüberprüfung" aktiviert wurde. |
| Nicht in Bereich | Liefert "true" wenn sich der zu konvertierende Wert außerhalb von Minimum und Maximum befand. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Verbinder für Bereichsüberprüfung" aktiviert wurde. |
## Zeit zu Datum
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/umwandlung/zeit-zu-datum/
Das Module "Zeit zu Datum" bietet die Möglichkeit um einzelne Zeit Komponenten in einen Unix Zeitstempel umzuwandeln.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------- | --------------------------------------------------------------------------------------------------------- |
| Jahr | Das Jahr für den Unix Zeitstempel (wird kein Wert gesetzt, dann wird das aktuelle Jahr verwendet). |
| Monat | Das Monat für den Unix Zeitstempel (wird kein Wert gesetzt, dann wird das aktuelle Monat verwendet). |
| Tag | Der Tag für den Unix Zeitstempel (wird kein Wert gesetzt, dann wird der aktuelle Tag verwendet). |
| Stunde | Die Stunden für den Unix Zeitstempel (wird kein Wert gesetzt, dann wird die aktuelle Stunde verwendet). |
| Minute | Die Minuten für den Unix Zeitstempel (wird kein Wert gesetzt, dann wird die aktuelle Minute verwendet). |
| Sekunde | Die Sekunden für den Unix Zeitstempel (wird kein Wert gesetzt, dann wird die aktuelle Sekunde verwendet). |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ----------- | ------------------------------------------------------------------------ |
| Zeitstempel | Unix Zeitstempel, der aus den einzelnen Zeit Komponenten gebildet wurde. |
## Variablen lesen/schreiben
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/variablen-lesen-schreiben/
Module der Gruppe "Variable Lesen/Schreiben" ermöglichen das Lesen und Setzen von Variablen bzw. Instanzen in IP-Symcon.
## Instanz Lesen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/variablen-lesen-schreiben/instanz-lesen/
Das Module "Instanz Lesen" bietet die Möglichkeit zur Einbindung von Instanzen als Eingang des Logikplans, Variablen der entsprechenden Instanz können zur Steuerung anderen Module verwendet werden.

### Properties
| Name | Beschreibung |
| -------------------- | ---------------------------------------------------------------------------------------- |
| ID | Die ID der Instanz in IP-Symcon. |
| Logikplan Ausführung | Ermöglicht die automatische Ausführung des Logikplans bei einer Änderung einer Variable. |
Die folgenden Werte stehen bei der Logikplan Ausführung zur Auswahl:
- Nie - keine automatische Ausführung des Logikplans
- Bei Änderung - automatische Ausführung des Logikplans wenn sich der Wert einer verlinkten Variable ändert.
- Bei Aktualisierung - automatische Ausführung des Logikplans wenn der Wert einer verlinkten Variable aktualisiert wird.
- Als Aktionsskript - das Logikplanskript wird als Aktionsskript für jede in der Instanz verlinkte Variable hinterlegt. Bei einer Bedienung in der GUI (WebFront oder IPSView) wird der Logikplan mit dem neuen Wert aufgerufen.
Zusätzliche Informationen zum Thema [Aktionsskript](https://www.symcon.de/de/llms/concepts/automations.md).
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------------------- | ---------------------------------------------------------------------- |
| Wert Instanzvariable | Die Werte aller Instanzvariablen stehen als Datenpunkte zur Verfügung. |
## Instanz Schreiben
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/variablen-lesen-schreiben/instanz-schreiben/
Das Module "Instanz schreiben" bietet die Möglichkeit zur Einbindung von Instanzen als Ausgang des Logikplans.

### Properties
| Name | Beschreibung |
| ---- | -------------------------------- |
| ID | Die ID der Instanz in IP-Symcon. |
### Datenpunkte Eingang
| Name | Beschreibung |
| -------------------- | ----------------------------------------------------------------------------------------------- |
| Wert Instanzvariable | Instanzvariablen, die ein Aktionsskript hinterlegt haben, stehen als Datenpunkte zur Verfügung. |
## Variable Lesen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/variablen-lesen-schreiben/variable-lesen/
Das Module "Variable" bietet die Möglichkeit zur Einbindung von normalen Variablen als Eingang des Logikplans.

### Properties
| Name | Beschreibung |
| -------------------- | -------------------------------------------------------------------------------------- |
| ID | Die ID der Variablen in IP-Symcon. |
| Logikplan Ausführung | Ermöglicht die automatische Ausführung des Logikplans bei einer Änderung der Variable. |
Die folgenden Werte stehen bei Logikplan Ausführung zur Auswahl:
- Nie - keine automatische Ausführung des Logikplans
- Bei Änderung - automatische Ausführung des Logikplans wenn sich der Wert der Variable ändert.
- Bei Aktualisierung - automatische Ausführung des Logikplans wenn der Wert der Variable aktualisiert wird.
- Als Aktionsskript - das Logikplanskript wird als Aktionsskript für die Variable hinterlegt. Bei einer Bedienung in der GUI (WebFront oder IPSView) wird der Logikplan mit dem neuen Wert aufgerufen.
Zusätzliche Informationen zum Thema [Aktionsskript](https://www.symcon.de/de/llms/concepts/automations.md).
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---- | ---------------------- |
| Wert | Der Wert der Variable. |
## Variable Schreiben
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/variablen-lesen-schreiben/variable-schreiben/
Das Module "Variable" bietet die Möglichkeit zur Einbindung von normalen Variablen als Ausgang des Logikplans.

### Properties
| Name | Beschreibung |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ID | Die ID der Variablen in IP-Symcon. |
| Benutze Aktionsskript | Bei TRUE wird das Aktionsskript zum Setzen des Variable-Wertes verwendet. Wenn kein Aktionsskript vorhanden ist, wird der Wert der Variable direkt gesetzt. |
| Sender | Wert für die Variable SENDER beim Aufruf des Aktionsskriptes. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ---------------------- |
| Wert | Der Wert der Variable. |
## Logikplan Variable
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/variablen-lesen-schreiben/workflow-variable/
Das Module "Logikplan Variable" bietet die Möglichkeit eine Variable durch den Logikplan selbst erstellen zu lassen.

### Properties
| Name | Beschreibung |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Datentype | Datentype der Variable |
| Defaultwert | Wert der Variable, der nach dem initialen Erstellen der Variable zugewiesen werden soll. |
| Profilename | Name des Profiles, das der Variable nach dem initialen Erstellen der Variable zugewiesen werden soll. |
| Variablenname | Name der Variable |
| Logikplan als Aktionsskript | Bei Aktivierung dieser Option, wird der Logikplan selbst zum Setzen eines Wertes über eine Visualisierung aufgerufen. In diesem Fall müssen Sie sich im Logikplan um die Zuweisung des neuen Wertes kümmern, ansonsten wird der Wert nicht gesetzt. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ---- | ------------------ |
| Wert | Wert der Variable. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| -------------- | -------------------------------------------------------------- |
| Wert | Aktueller Wert der Variable |
| Aktualisierung | Signalisiert eine Aktualisierung der Variable über den Eingang |
| Veränderung | Signalisiert eine Änderung der Variable über den Eingang |
## Vergleichen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/vergleichen/
Module der Gruppe "Vergleichen" ermöglichen das Vergleichen von Werten im Logikplan.
## Gleich
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/vergleichen/gleich/
Das Module "Gleich" bietet die Möglichkeit zum Vergleich verschiedener Werte auf Gleichheit oder Ungleichheit.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | -------------------------------- |
| Wert 1 | Datenpunkt für Vergleichswert 1. |
| Wert 2 | Datenpunkt für Vergleichswert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------------------------ |
| Gleich | Liefert TRUE wenn der Wert am Eingang Wert 1 gleich dem Wert am Eingang Wert 2 ist. |
| Nicht Gleich | Liefert TRUE wenn der Wert am Eingang Wert 1 ungleich dem Wert am Eingang Wert 2 ist |
## Größer/Kleiner
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/vergleichen/groesser-kleiner/
Das Module "Größer/Kleiner" bietet die Möglichkeit zum Vergleich verschiedener Werte auf Größer, Größergleich, Gleich, Kleinergleich oder Kleiner.

### Datenpunkte Eingang
| Name | Beschreibung |
| ------ | -------------------------------- |
| Wert 1 | Datenpunkt für Vergleichswert 1. |
| Wert 2 | Datenpunkt für Vergleichswert 2. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ------------- | ------------------------------------------------------------------------------------------------ |
| Größer | Liefert TRUE wenn der Wert am Eingang Wert 1 größer dem Wert am Eingang Wert 2 ist. |
| Größergleich | Liefert TRUE wenn der Wert am Eingang Wert 1 größer oder gleich dem Wert am Eingang Wert 2 ist. |
| Gleich | Liefert TRUE wenn der Wert am Eingang Wert 1 gleich dem Wert am Eingang Wert 2 ist. |
| Kleinergleich | Liefert TRUE wenn der Wert am Eingang Wert 1 kleiner oder gleich dem Wert am Eingang Wert 2 ist. |
| Kleiner | Liefert TRUE wenn der Wert am Eingang Wert 1 kleiner dem Wert am Eingang Wert 2 ist. |
## Im Wertebereich
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/repository/vergleichen/im-wertebereich/
Das Module "In Wertebereich" bietet die Möglichkeit zur Überprüfung ob ein Wert innerhalb eines bestimmten Wertebereiches liegt. Die Limits für den Wertebereich können über Eigenschaften definiert werden oder auch über eigene Modul Eingänge.

### Properties
| Name | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Eingänge Limits | Aktiviert die Datenpunkte am Eingang für die Limits ("Unteres Limit" und "Oberes Limit"). Standardmäßig sind diese Datenpunkte nicht aktiviert. |
| Oberes Limit | Spezifiziert das Maximum für den Eingangsbereich des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
| Unteres Limit | Spezifiziert das Minimum für den Eingangsbereich des Wertes, wird nur verwendet wenn die Datenpunkte für die Limits nicht aktiviert sind. |
### Datenpunkte Eingang
| Name | Beschreibung |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Wert | Wert der evaluiert werden soll |
| Unteres Limit | Minimum Wert für den Eingangsbereich. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Eingänge Limits" aktiviert wurde. |
| Oberes Limit | Maximum Wert für den Eingangsbereich. Dieser Datenpunkt ist nur vorhanden wenn die Eigenschaft "Eingänge Limits" aktiviert wurde. |
### Datenpunkte Ausgang
| Name | Beschreibung |
| ---------------- | ------------------------------------------------------------------------------------------------------------ |
| In Bereich | Liefert TRUE wenn sich der zu konvertierende Wert innerhalb von Minimum und Maximum befand. |
| Nicht in Bereich | Liefert TRUE wenn sich der zu konvertierende Wert außerhalb von Minimum und Maximum befand. |
| Limitierter Wert | Wenn der Wert außerhalb des oberen oder unteren Limit ist, wird der Wert auf das jeweilige Limit korrigiert. |
## Zeichenfläche
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/logikplaene/zeichenflaeche/
In der Mitte des Logikpläne Designers befindet sich die Zeichenfläche. Auf dieser können Sie die einzelnen Module zu einem Logikplan zusammensetzen.

Die Zeichenfläche ist intuitiv bedienbar; die Funktionsweise ist anderen Programmen mit grafischen Komponenten sehr ähnlich. In diesem Abschnitt finden Sie eine Übersicht der verfügbaren Funktionen und Aktionen.
### Objekt platzieren
Um ein neues Objekt auf der Zeichenfläche zu platzieren:
1. Wählen Sie das Objekt im Objektbaum oder aus dem Menu Repository aus.
2. Ziehen Sie das gewählte Steuerelement auf die Zeichenfläche (Drag & Drop).
Das Objekt wird mit den Standardwerten aus IP-Symcon (Größe, Farbe …) gezeichnet. Sie müssen es anschließend für Ihre Zwecke anpassen (siehe unten).
### Objekte auswählen / Auswahl aufheben
Um ein einzelnes Objekt auszuwählen:
1. Klicken Sie das Objekt an.
Um mehrere Objekte gleichzeitig auszuwählen:
1. Während des Klicken auf verschiedene Objekte ____ gedrückt halten.
Um alle Objekte auf der Zeichenfläche gleichzeitig auszuwählen:
1. Drücken Sie __+A__.
Ausgewählte Objekte erkennen Sie an den acht Griffpunkten (Kästchen) am Rahmen:

Um die Auswahl wieder aufzuheben:
1. Klicken Sie auf eine leere Stelle der Zeichenfläche.
Die gesamte getätigte Auswahl wird aufgehoben.
### Eigenschaften ändern
Die hinterlegten Werte und Eigenschaften (Properties) des ausgewählten Objekts werden im [Property-Editor](https://www.symcon.de/de/llms/concepts/automations.md) angezeigt. Dort können Sie diese nach Bedarf ändern.
Haben Sie mehrere Objekte gleichzeitig ausgewählt, können Sie jene Properties, die in allen ausgewählten Objekten vorkommen, ändern (Properties, die nur in einzelnen Objekten vorkommen, werden nicht angezeigt). Ihre Änderung wird dann auf alle derzeit ausgewählten Objekte gleichzeitig angewandt.
### Ausschneiden, Kopieren, Einfügen, Löschen
Logikpläne unterstützt die Standardbefehle zum Manipulieren von Objekten und Inhalten:
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------ |
| Ausschneiden | Kontextmenü?Ausschneiden oder die Tastenkombination __+X__. |
| Kopieren | Kontextmenü?Kopieren oder die Tastenkombination __+C__. |
| Einfügen | Kontextmenü?Einfügen oder die Tastenkombination __+V__. |
| Löschen | Kontextmenü?Löschen oder die Taste ____. |
### Rückgängig / Wiederherstellen
Logikpläne unterstützt "Undo / Redo", also das Annullieren bzw. Wiederherstellen von Änderungen:
| Name | Beschreibung |
| ---------------- | -------------------------------------------------------------------------------- |
| Rückgängig | Menü+Rückgängig oder die Tastenkombination __+Z__. |
| Wiederherstellen | Menü+Wiederherstellen oder die Tastenkombination __++Z__. |
### Zoomen eines Logikplans
Der Logikpläne Designer bietet die Möglichkeit eine View in Schritten von 10% beliebig zu verkleinern und zu vergrößern. Dabei wird nur die Anzeige im Designer verändert, eine Veränderung der Darstellung am Client findet dabei nicht statt.
| Name | Beschreibung |
| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Zoom In | Wählen Sie Menü+Zoom In oder drücken Sie die Tastenkombination ++, um die Anzeige um eine Stufe zu vergrößern. |
| Zoom Out | Wählen Sie Menü+Zoom Out oder drücken Sie die Tastenkombination +-, um die Anzeige um eine Stufe zu verkleinern. |
| Zoom | Wählen Sie Menü+Zoom, um die Zoom Funktionalität auf einen bestimmten Wert zu setzen. Nach Betätigung des Buttons wird ein DropDown Fenster angezeigt, das die Auswahl der Zoomstufe erlaubt. |
## PHP-Skripte
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/php-skripte/
Ein PHP-Skript ist eine Aneinanderreihung von mehr oder weniger komplexen Befehlen. IP-Symcon verwendet und unterstützt jegliche Funktionen der Programmiersprache PHP. In unserem Community-Forum oder Internet können zahllose Beispiele und weiterführende Dokumentationen gefunden werden.
### PHP-Skripte hinzufügen
Über "+" -> "Automation" -> "PHP Skript" kann ein neues PHP-Skript hinzufügt werden. Es wird empfohlen dem PHP-Skript einen eindeutigen und aussagekräftigen Namen zu geben.
Der Name ist jederzeit änderbar und das PHP-Skript kann in der Baumansicht per Drag & Drop an eine andere Position verschoben werden. Alternativ kann die Erstellung per "Rechtsklick" -> "Objekt hinzufuegen" -> "Automation" -> "PHP-Skript" direkt an der gewünschten Position erfolgen.

### Skripte editieren & ausführen
Grundsätzlich gilt: Ein PHP-Skript verlangt, dass dieses mit einem PHP-Tag ( **Achtung:** Wird ein externer Editor genutzt muss das Skript in UTF8 ohne BOM abgespeichert werden.

Via "Ausführen" kann das Skript zu Testzwecken manuell gestartet werden.
Dabei wird es automatisch gespeichert und sowohl der Zeitstempel der letzten Ausführung als auch die Länge der Laufzeit aktualisiert. Die Ansicht kann zwischen [Text] und [HTML] umgeschaltet werden.
Fehlerhafte Eingaben können mit „Rückgängig“ oder “Wiederherstellen“ korrigiert werden.
Mit „Nach HTML exportieren“ wird das gesamte Skript im Browser angezeigt.
### Skripte importieren & umbenennen

Wenn bereits ein Skript (z.B. aus dem Forum) heruntergeladen wurde, so kann dieses schnell und unkompliziert über den Menüknopf "Importieren" einfügt werden. Beim Drücken von "Importieren" öffnet sich ein Menü, über welches die gewünschte Datei ausgewählt werden kann. Standardmäßig werden in IP-Symcon alle Skripte mit der ID des Skriptes als Dateiname erstellt. Wenn zur besseren Übersicht ein eigener Dateinamen verwendet werden soll, kann jederzeit über den Menüknopf "Umbenennen" dem Skript ein anderer Name gegeben werden.
### Befehle hinzufügen
Über „Befehl hinzufügen“ können an der Cursor-Position im Skript neue Befehle eingefügt werden.

Um die Vielfalt der Befehle einzugrenzen muss das betreffende Gerät ausgewählt werden.
Hier als Beispiel für eine Statusabfrage bei einem "ModBus Device":

Als Auswahlmöglichkeit werden dann nur die gerätespezifischen Funktionen angezeigt:


Das Ergebnis ist der Befehl mit der passenden ID-Nummer.

Die Dokumentation zu allen Befehlen die zur Auswahl stehen, befindet sich in der [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md) und [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md). Eine andere Möglichkeit bietet die Suche im oberen rechten Bereich der IP-Symcon Internetseite. Diese bietet einen schnellen Weg die Dokumentation und mögliche Beispiele zu einem Befehl zu durchsuchen.
### Befehlsliste anzeigen und nutzen
Um einen beliebigen Befehl direkt eingeben zu können muss die Tastenkombination "Strg + Leertaste" innerhalb eines Skripts gedrückt werden. Die Liste beinhaltet dann alle IP-Symcon-Funktionen. Auch hier kann die Auswahl eingeschränkt werden indem die ersten Buchstaben eines Befehls eingegeben werden. Z.B. zeigt die Eingabe "Modbus" alle Modbus Befehle. Der gewünschte Befehl kann dann per Doppelklick oder per Pfeiltasten + Eingabe-Taste ausgewählt werden.

Wenn der Befehl vollständig ist und die Klammern gesetzt werden, können ebenfalls über "Strg + Leertaste" die benötigten Parameter angezeigt werden.

### Systemvariablen in Skripten
Eine komplette Auflistung kann unter [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) gefunden werden.
### Tipps & Tricks
> **Hinweis:** Eine Auflistung aller [Tastenkombinationen](https://www.symcon.de/de/llms/how-to.md).
## Aktionsskripte
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/php-skripte/aktionsskripte/
Aktionsskripte sind solche Skripte, die bei einer [Variable](https://www.symcon.de/de/llms/concepts.md) via anklicken in einer Visualisierung (z.B. WebFront, Mobile) aufgerufen werden.
Das Aktionsskript muss in der jeweiligen Variable als "Eigene Aktion" verknüpft werden.
Unter [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) können die speziellen Variablen für aufgerufene Skripte eingesehen werden.
Ein Aktionsskript kann von mehreren Variablen genutzt werden. Häufigste Variante siehe unten "Nur Variable setzen".
### Aktionsskript auswählen
Das Auswählen eines Aktionsskript ist dasselbe wie das Auswählen einer [Variablenaktion](https://www.symcon.de/de/llms/concepts.md) .
> **Hinweis:** Einige Variablen von hinzugefügten Modulen beinhalten eine "Standardaktion". Diese kann durch ein "Eigene Aktion" überschrieben werden.

> **Hinweis:** Aus einer Kombination von Dummy Modulen (Instanz), einer Variable mit verknüpften Variablenprofil und einem verknüpften Aktionsskript, kann die Funktion eines nativen IP-Symcon Moduls nachgebildet werden.
### Aktionsskript erstellen
Ein Aktionsskript ist ein normales PHP-Skript. Erst durch das Einbinden in einer Variable wird es zum Aktionsskript.
In einem Aktionsskript sollte zumindest der Schaltvorgang und die Anweisung stehen, welche die Variable auf den angeforderten Zustand setzt:
#### Beispiel 1
Dies ist das Beispiel, welches durch das "+" bei "Eigene Aktion" erstellt wird.
```php
//Nur Variable setzen
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
```

#### Beispiel 2
```php
//Variable nur passend setzen wenn Schaltvorgang erfolgreich
if (FS20_SwitchMode(12345, (boolean)$_IPS['VALUE'])) {
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
```
### Schlechte Aktionsskripte
Es gibt Kriterien, welche unbedingt beim Erstellen eines Aktionsskriptes beachtet werden müssen. Werden diese nicht befolgt, kann es zu unvorhergesehenen Verhalten kommen.
#### Setzen der Variable ohne auf erfolgreiches Schalten zu achten
Die meisten Funktionen geben bei Erfolg ein "True" zurück und auf dies sollte auch geprüft werden.
Wird dies nicht getan ist der Status in IP-Symcon und die des Geräts nicht mehr konsistent zueinander. Somit kann es passieren das die eingerichtete automatische Steuerung nicht korrekt arbeitet.
```php
//Variable wird auf neuen Wert gesetzt, selbst wenn der Schaltvorgang nicht erfolgreich war. Es kann zu Konsistensfehlern kommen.
FS20_SwitchMode(12345, (boolean)$_IPS['VALUE']);
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
```
#### Bei Variablenänderung via Ereignis ein Gerät schalten
Wenn der Wert einer Gerätevariable via Aktionsskript gesetzt wurde und aufgrund der Variablenänderung ein Ereignis versucht das Gerät auf diesen Wert zu setzen.
Durch diese Handhabe hat man keine Möglichkeit etwaige Schaltprobleme des Geräts zu bemerken. Dies bedeutet, dass sowohl Fehlermeldung verdeckt werden, als auch die gesetzte Variable nicht mit dem tatsächlichen Gerätewert übereinstimmt.
Ein Beispiel wäre ein Dimmer der im WebFront von 0% auf 50% gestellt wird.
Die Variable wird sofort auf 50% gesetzt und der Schaltbefehl für den Dimmer wird asynchron über das Ereignis abgearbeitet. Ist dieser Schaltbefehl nicht erfolgreich, wird das nicht im Aktionsskript erkannt und somit bleibt die Variable in IP-Symcon auf 50% eingestellt, obwohl der tatsächliche Wert noch immer 0% ist.

## Systemvariablen
Quelle: https://www.symcon.de/de/service/dokumentation/grundlagen/automationen/php-skripte/systemvariablen/
Systemvariablen sind Variablen, die in jedem PHP-Skript verfügbar sind. Der Benutzer kann diese nutzen um effizient PHP-Skripte erstellen zu können, welche generisch Aufgaben lösen können. Je nach Absender, durch den das PHP-Skript ausgeführt wurde, werden automatisch passende Systemvariablen erstellt und zur Verfügung gestellt. Die nachfolgenden Tabellen geben einen Überblick bei welchem PHP-Skript welche Variablen automatisch zur Verfügung stehen.
> **Achtung:** __Die Groß- und Kleinschreibung der Variablen ist zu beachten (Case-Sensitive)!__
### Generelle Systemvariablen
Folgende Systemvariablen stehen immer zur Verfügung.
| Systemvariable | Beschreibung |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $_IPS['SELF'] | PHP-SkriptID des aktuellen PHP-Skriptes |
| $_IPS['SENDER'] | Auslöser des PHP-Skriptes. Abhängig vom Wert können sich weitere globale Variablen ergeben. Mögliche Werte werden unter [Zusätzliche_Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) genauer beschrieben. |
| $_IPS['THREAD'] | ThreadID des aktuellen PHP-Skriptes |
### Zusätzliche Systemvariablen
Folgende Systemvariablen stehen in Abhängigkeit des $_IPS['SENDER'] zur Verfügung.
* Action
* Execute
* HeatingControl
* RegisterVariable
* RunScript
* Shutdown
* ShutterControl (legacy)
* Startup
* StatusEvent
* TimerEvent
* Variable
* VoIP ( ab Version 5.2 )
* Watchdog
* WebFront
* WebHook ( ab Version 4.0 )
* WebInterface
* WebOAuth ( ab Version 4.0 )
#### Action
Wenn das PHP-Skript durch ein [RequestAction](https://www.symcon.de/de/llms/functions/access-variables.md) ausgeführt wurde.
| Systemvariable | Beschreibung |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| $_IPS['SENDER'] | Standardmäßig ist dieser "Action" kann aber durch [RequestActionEx](https://www.symcon.de/de/llms/functions/access-variables.md) Individuell gesetzt werden |
| $_IPS['VALUE'] | Wert mit dem die Variable aufgerufen wurde |
| $_IPS['VARIABLE'] | ID der Variable, welche geschaltet werden soll |
#### Execute
Wenn das [PHP-Skript](https://www.symcon.de/de/llms/concepts/automations.md) aus der Verwaltungskonsole ausgeführt wurde.
Keine zusätzlichen Systemvariablen.
#### HeatingControl
Wenn das PHP-Skript durch ein Ereignis vom [HeatingControl](https://www.symcon.de/de/llms/modules/heating-control.md) ausgeführt wurde.
| Systemvariable | Beschreibung |
| ------------------ | ---------------------------------------------------------------------- |
| $_IPS['INSTANCES'] | IDs der Sende-Instanzen |
| $_IPS['INVERTS'] | Beinhaltet ob ein Gerät invertiert ist (true/false) |
| $_IPS['VALUE'] | Enthält ob das Gerät heizen soll (true) oder nicht heizen soll (false) |
#### RegisterVariable
Wenn das PHP-Skript durch eine [RegisterVariable](https://www.symcon.de/de/llms/modules/registervariable.md) Instanz ausgeführt wurde.
| Systemvariable | Beschreibung |
| -------------------------------------------------- | ----------------------------------------------------------------- |
| $_IPS['CLIENTIP'](nur bei I/O ServerSocket) | Empfangene IP-Adresse des Clients |
| $_IPS['CLIENTPORT'](nur bei I/O ServerSocket) | Empfangsport des Clients |
| $_IPS['INSTANCE'] | ID der auslösenden RegisterVariable Instanz |
| $_IPS['VALUE'] | Wert des Puffers, der vom Splitter oder I/O Modul empfangen wurde |
| $_IPS['TYPE'] | Status des Empfangsport (0 = Data; 1 = Verbunden; 2 = Getrennt |
#### RunScript
Wenn das PHP-Skript durch eine [IPS_RunScript](https://www.symcon.de/de/llms/functions/process-control.md) Funktionen ausgeführt wurde. Erweiternd kann auch [IPS_RunScriptEx](https://www.symcon.de/de/llms/functions/process-control.md) genutzt werden um zusätzliche Parameter zu übergeben.
Keine zusätzlichen Systemvariablen.
#### Shutdown
Beim IP-Symcon Shutdown (siehe [EventControl](https://www.symcon.de/de/llms/modules/event-control.md)).
Keine zusätzlichen Systemvariablen.
#### ShutterControl
Wenn das PHP-Skript durch ein [ShutterControl Modul (legacy)](https://www.symcon.de/de/produkt/anwendungsbeispiele/rollladensteuerung/) ausgeführt wurde.
| Systemvariable | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------- |
| $_IPS['DIRECTION'] | Zu fahrende Richtung: 0 = Stop 1 = Hoch 2 = Runter |
| $_IPS['DURATION'] | Fahrdauer in Millisekunden |
| $_IPS['INSTANCE'] | InstanzID, die im ShutterControl eingestellt ist |
| $_IPS['INSTANCE2'] | InstanzID #2, die im ShutterControl eingestellt ist |
#### Startup
Beim IP-Symcon Startup (siehe [EventControl](https://www.symcon.de/de/llms/modules/event-control.md)).
Keine zusätzlichen Systemvariablen.
#### StatusEvent
Wenn das PHP-Skript durch eine Statusveränderung einer Instanz ausgeführt wurde.
Nähere Informationen sind unter [EventControl](https://www.symcon.de/de/llms/modules/event-control.md) und [IPS_GetInstance](https://www.symcon.de/de/llms/functions/management-instances.md) zu finden.
| Systemvariable | Beschreibung |
| ------------------- | -------------------------------------------------------------------------------------------------------------- |
| $_IPS['INSTANCE'] | InstanzID zur Statusänderung |
| $_IPS['STATUS'] | Status der Instanz. Eine Auflistung ist hier zu finden: [IPS_GetInstance](https://www.symcon.de/de/llms/functions/management-instances.md) |
| $_IPS['STATUSTEXT'] | Kurztext passend zum Status |
#### TimerEvent
Wenn das PHP-Skript durch ein [zyklisches](https://www.symcon.de/de/llms/concepts.md)- oder [Wochenplan](https://www.symcon.de/de/llms/concepts.md)-Ereignis ausgeführt wurde.
| Systemvariable | Beschreibung |
| --------------- | ----------------------------------------------------- |
| $_IPS['ACTION'] | ID der aufzurufenden Aktion (nur Wochenplan Ereignis) |
| $_IPS['EVENT'] | ID des auslösenden Ereignisses |
| $_IPS['TARGET'] | ID des übergeordneten Objektes |
#### Variable
Wenn das PHP-Skript durch ein [ausgelöstes Ereignis](https://www.symcon.de/de/llms/concepts.md) ausgeführt wurde.
| Systemvariable | Beschreibung |
| --------------------------------------- | ------------------------------------------------------- |
| $_IPS['EVENT'] | ID des auslösenden Ereignisses |
| $_IPS['OLDCHANGED'] (ab Version 5.1) | Zeitstempel der letzten Änderung des alten Wertes |
| $_IPS['OLDVALUE'] | Wert der auslösenden Variable vor Auslösezeitpunkt |
| $_IPS['OLDUPDATED'] (ab Version 5.1) | Zeitstempel der letzten Aktualisierung des alten Wertes |
| $_IPS['TARGET'] | ID des übergeordneten Objektes |
| $_IPS['TRIGGER'] | Typ des auslösenden Ereignisses |
| $_IPS['VALUE'] | Wert der auslösenden Variable zum Auslösezeitpunkt |
| $_IPS['VARIABLE'] | ID der auslösenden Variable |
#### VoIP ( ab Version 5.2 )
Wenn das PHP-Skript durch ein Ereignis vom VoIP-Modul ausgeführt wurde.
| Systemvariable | Beschreibung |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $_IPS['CONNECTION'] | KanalID der Verbindung |
| $_IPS['DATA'] | Die Variable kann folgende Werte je nach $_IPS['EVENT'] beinhalten: Incoming: Rufnummer, von der angerufen wird PlayFinish: Dateiname der abgespielten Datei DTMF: Wert der gedrückten Taste |
| $_IPS['EVENT'] | Die Variable kann folgende Werte beinhalten: Incoming: Bei eingehendem Anruf Connect: Bei aufgebauter Verbindung Disconnect: Bei beendeter Verbindung PlayFinish: Sobald Audiodatei zuende abgespielt wurde DTMF: Sobald ein DTMF Ton empfangen wurde |
| $_IPS['INSTANCE'] (ab Version 5.4) | InstanzID der VoIP-Instanz |
#### Watchdog
Wenn das PHP-Skript durch den [Watchdog](https://www.symcon.de/de/llms/modules/event-control.md) ausgeführt wurde.
| Systemvariable | Beschreibung |
| ------------------- | ----------------------------------------------------- |
| $_IPS['STATUSTEXT'] | Der Statustext der übergeben wird |
| $_IPS['VALUE'] | Wert der Variable, welcher außerhalb der Grenzen ist |
| $_IPS['VARIABLE'] | ID der Variable, welche die Grenzen überschritten hat |
#### WebFront
Wenn das PHP-Skript durch das [WebFront](https://www.symcon.de/de/llms/components/webfront-visualization.md), die [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) oder IPSView ausgeführt wurde.
| Systemvariable | Beschreibung |
| --------------------------------------------- | -------------------------------------------- |
| $_IPS['CONFIGURATOR'] | ID der aktuell genutzten Visualisierung |
| $_IPS['VALUE'](nur bei Aktionsskript) | Neuer Wert der Variable |
| $_IPS['VARIABLE'](nur bei Aktionsskript) | ID der zu ändernden Variable |
#### WebHook ( ab Version 4.0 )
Wenn das PHP-Skript durch einen [WebHook](https://www.symcon.de/de/llms/modules/webhook-control.md) ausgeführt wurde.
| Systemvariable | Beschreibung |
| ---------------- | ------------------------------------------ |
| $_SERVER['HOOK'] | Vollständige URL des aufgerufenen WebHooks |
Zusätzlich stehen beim Typ WebHook auch alle Variablen des WebInterface zur Verfügung.
#### WebOAuth ( ab Version 4.0 )
Wenn das PHP-Skript durch einen OAuth Control ausgeführt wurde.
| Systemvariable | Beschreibung |
| ----------------- | ------------------------------------------ |
| $_SERVER['OAUTH'] | Vollständige URL des aufgerufenen WebOAuth |
Zusätzlich stehen beim Typ WebOAuth auch alle Variablen des WebInterface zur Verfügung.
#### WebInterface
Wenn das PHP-Skript durch den [Webserver](https://www.symcon.de/de/llms/modules/webserver.md) (z.B. im 'user' Ordner) ausgeführt wurde.
| Systemvariable | Beschreibung |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| $_GET | Empfangene Daten über GET |
| $_POST | Empfangene Daten über POST |
| $_SERVER['DOCUMENT_ROOT'] | Enthält das Document Root-Verzeichnis, unter dem das aktuelle PHP-Skript ausgeführt wird, so wie es in der Konfiguration des Servers festgelegt wurde |
| $_SERVER['PHP_AUTH_PW'] | Wenn HTTP authentication verwendet wird, wird diese Variable mit dem vom Benutzer angegebenen Passwort gefüllt |
| $_SERVER['PHP_AUTH_USER'] | Wenn HTTP authentication verwendet wird, wird diese Variable mit dem vom Benutzer angegebenen Usernamen gefüllt |
| $_SERVER['PHP_SELF'] | Datei/Pfad des gestarteten PHP-Skriptes |
| $_SERVER['QUERY_STRING'] | Sofern vorhanden, der Querystring, mittels dessen auf die Seite zugegriffen wurde |
| $_SERVER['REMOTE_ADDR'] | Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht |
| $_SERVER['REMOTE_PORT'] | Der Port, von der aus der Benutzer die aktuelle Seite ansieht |
| $_SERVER['REQUEST_METHOD'] | Enthält die für den Zugriff auf die Seite verwendete Requestmethode, z. B. 'GET', 'HEAD', 'POST' oder 'PUT' |
| $_SERVER['REQUEST_URI'] | Der URI, der angegeben wurde, um auf die aktuelle Seite zuzugreifen, beispielsweise '/index.html' |
| $_SERVER['SCRIPT_NAME'] | Enthält den Pfad zum aktuellen PHP-Skript. Dies ist nützlich für Seiten, die auf sich selbst verweisen sollen |
Zusätzlich werden alle Request Header in Großbuchstaben mit dem HTTP_* Prefix hinzugefügt, wobei ein Minus (-) zu einem Unterstrich (_) geändert wird. z.B. der Header 'User-Agent' wird als $_SERVER['HTTP_USER_AGENT'] kodiert.
---
# Komponenten – Übersicht
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/
IP-Symcon besteht aus mehreren Software-Komponenten, die in den nachfolgenden Unterpunkten genauer erklärt werden.
---
# Fernzugriff
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/fernzugriff/
Standardmäßig ist der Zugriff im lokalen Netzwerk ohne Benutzername/Kennwort möglich. Externe Zugriff (z.B. über Symcon Connect) sind vollständig deaktiviert. Um den Zugriff von extern zu erlauben oder im lokalen Netzwerk per Kennwort zu schützen, kann der Fernzugriff aktiviert werden. Dabei sollte ein sicheres Kennwort (mindestens acht Zeichen mit Sonderzeichen) vergeben werden. Sobald der Fernzugriff aktiviert wurde, kann über die Verwaltungskonsole durch die Eingabe von Benutzernamen (Lizenz-Benutzername) und dem vorher gesetzten Kennwort auf das System zugegriffen werden.
> **Hinweis:** Der hier verwendete Lizenzbenutzername ist nicht identisch mit dem Accountbenutzernamen auf der Homepage. Der hier verlangte Benutzername ist immer die Lizenz-E-Mail-Adresse.
> **Hinweis:** Bei zu vielen fehlerhaften Passworteingaben wird das Prüfen von Kennwörtern erst verlangsamt und später vollkommen deaktiviert.
Um von einem anderen Rechner per Fernzugriff auf IP-Symcon zuzugreifen wird die [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) benötigt. Sobald die Verwaltungskonsole gestartet wurde, erscheint der [Verbindungsassistent](https://www.symcon.de/de/llms/components/management-console.md) der automatisch alle IP-Symcon Server im eigenen Netzwerk findet. Nach der Serverauswahl muss der Benutzername und das Kennwort eingetragen werden, um eine Verbindung aufzubauen.
> **Hinweis:** Für einen Zugriff von außerhalb des eigenen Netzwerkes kann bei aktiver Subskription das [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) genutzt werden. Alternativ kann dies bei ausreichenden Netzwerkkenntnissen über die Konfiguration einer Port-Weiterleitung im Router verwirklicht werden.
### Fernzugriff aktivieren/deaktivieren
Um den Fernzugriff zu aktivieren muss ein Passwort vergeben sein. Soll der Fernzugriff wieder deaktiviert werden, muss das Fernzugriffpasswort einfach "leer" gelassen und gespeichert werden.
[SymOS (SymBox)](https://www.symcon.de/de/llms/components/remote-access.md)
[Windows (Desktop/Server)](https://www.symcon.de/de/llms/components/remote-access.md)
[MacOS](https://www.symcon.de/de/llms/components/remote-access.md)
[Linux (Ubuntu)](https://www.symcon.de/de/llms/components/remote-access.md)
[Raspberry Pi](https://www.symcon.de/de/llms/components/remote-access.md)
[Docker](https://www.symcon.de/de/llms/components/remote-access.md)
[QNAP](https://www.symcon.de/de/llms/components/remote-access.md)
[Synology](https://www.symcon.de/de/llms/components/remote-access.md)
> **Hinweis:** Ab Version 4.4 kann auch innerhalb einer Demo-Lizenz der Fernzugriff aktiviert werden. Bei einem Zugriff in der Demo-Version via IPSStudio oder Mediola muss der Benutzername leer gelassen und nur das Passwort eingetragen werden.
#### SymOS
Über die Weboberfläche kann via "Einstellungen -> Fernzugriff" ein Passwort eingerichtet werden.

#### Windows
Über die Tray-Anwendung kann via "Rechtsklick -> Information" der Dialog aufgerufen werden, bei dem unten der Punkt Fernzugriff anklickbar ist. Dort kann das Passwort gesetzt werden.

#### MacOS
Über die Tray-Anwendung kann via "Klick -> Information" der Dialog aufgerufen werden, bei dem unten der Punkt Fernzugriff anklickbar ist. Dort kann das Passwort gesetzt werden.

#### Linux
Die Lizenz muss in der Verwaltungskonsole korrekt eingerichtet sein. Im Anschluss muss folgender Befehl ausgeführt werden:
```php
sudo nano /root/.symcon
```
Es sollten mehrere Einträge vorhanden sein. In eine neue Zeile muss folgendes eingefügt werden. (Keine Leerzeilen lassen!)
```php
Password=c3ltY29u
```
Danach Speichern und Beenden. Der Dienst muss neugestartet werden.
Das Kennwort c3ltY29u ist "symcon" in Base64 kodiert. Das Kennwort muss Base64 kodiert werden. Dazu kann dieses Tool genutzt werden: [https://www.base64encode.org/](https://www.base64encode.org/)
#### Raspberry Pi
Die Lizenz muss in der Verwaltungskonsole korrekt eingerichtet sein. Im Anschluss muss folgender Befehl ausgeführt werden:
```php
sudo nano /root/.symcon
```
Es sollten mehrere Einträge vorhanden sein. In eine neue Zeile muss folgendes eingefügt werden. (Keine Leerzeilen lassen!)
```php
Password=c3ltY29u
```
Danach Speichern und Beenden. Der Dienst muss neugestartet werden.
Das Kennwort c3ltY29u ist "symcon" in Base64 kodiert. Das Kennwort muss Base64 kodiert werden. Dazu kann dieses Tool genutzt werden: [https://www.base64encode.org/](https://www.base64encode.org/)
#### Docker
Die Lizenz muss in der Verwaltungskonsole korrekt eingerichtet sein. Im Anschluss muss folgender Befehl ausgeführt werden:
```php
sudo nano /opt/symcon/.symcon
```
> **Hinweis:** Der Pfad bezieht sich auf den in der [Installation](https://www.symcon.de/de/llms/getting-started.md) von IP-Symcon angegeben Pfad. Dieser kann abweichen.
Es sollten mehrere Einträge vorhanden sein. In eine neue Zeile muss folgendes eingefügt werden. (Keine Leerzeilen lassen!)
```php
Password=c3ltY29u
```
Danach Speichern und Beenden. Der Dienst muss neugestartet werden.
Das Kennwort c3ltY29u ist "symcon" in Base64 kodiert. Das Kennwort muss Base64 kodiert werden. Dazu kann dieses Tool genutzt werden: [https://www.base64encode.org/](https://www.base64encode.org/)
#### QNAP
Die Lizenz muss in der Verwaltungskonsole korrekt eingerichtet sein. Im Anschluss muss mit einem Editor die .symcon Datei angepasst werden. Diese befindet sich in dem bei der Installation verknüpften Root-Volume.
```php
/Symcon/MeinIPSymcon/.symcon
```
> **Hinweis:** Der Pfad bezieht sich auf den in der [Installation](https://www.symcon.de/de/llms/getting-started.md) von IP-Symcon angegeben Pfad. Dieser kann abweichen.
Es sollten mehrere Einträge vorhanden sein. In eine neue Zeile muss folgendes eingefügt werden. (Keine Leerzeilen lassen!)
```php
Password=c3ltY29u
```
Danach Speichern und Beenden. Der Dienst muss neugestartet werden.
Das Kennwort c3ltY29u ist "symcon" in Base64 kodiert. Das Kennwort muss Base64 kodiert werden. Dazu kann dieses Tool genutzt werden: [https://www.base64encode.org/](https://www.base64encode.org/)
#### Synology
Die Lizenz muss in der Verwaltungskonsole korrekt eingerichtet sein. Im Anschluss muss mit einem Editor die .symcon Datei angepasst werden. Diese befindet sich in dem bei der Installation verknüpften Root-Volume.

> **Hinweis:** Der Pfad bezieht sich auf den in der [Installation](https://www.symcon.de/de/llms/getting-started.md) von IP-Symcon angegeben Pfad. Dieser kann abweichen.
Es sollten mehrere Einträge vorhanden sein. In eine neue Zeile muss folgendes eingefügt werden. (Keine Leerzeilen lassen!)
```php
Password=c3ltY29u
```

Danach Speichern und Beenden. Der Dienst muss neugestartet werden.
Das Kennwort c3ltY29u ist "symcon" in Base64 kodiert. Das Kennwort muss Base64 kodiert werden. Dazu kann dieses Tool genutzt werden: [https://www.base64encode.org/](https://www.base64encode.org/)
---
# Tray
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/tray/
Die IP-Symcon Tray-Anwendung ist die Schnittstelle zum IP-Symcon Dienst, der im Hintergrund läuft. Über das Kontextmenü können bestimmte Einstellungen administriert werden. Dazu gehören z.B. das Starten und Stoppen des Dienstes oder das Öffnen der Verwaltungskonsole.
> **Hinweis:** Der Tray steht nur für MacOS und Windows Betriebssysteme zur Verfügung.
Folgende weitere Einstellungen können über die Tray-Anwendung getätigt werden:
* [Update starten](https://www.symcon.de/de/llms/getting-started.md)
* [Dienst deinstallieren](https://www.symcon.de/de/llms/getting-started.md)
* [Lizenz ändern](https://www.symcon.de/de/llms/getting-started.md)
* [Fernzugriff ändern](https://www.symcon.de/de/llms/components/remote-access.md)
---
# Dienst
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/dienst/
Der Dienst ist das Herzstück von IP-Symcon. Er läuft immer im Hintergrund und wird üblicherweise beim Start des Betriebssystems automatisch mit gestartet. Dadurch muss auch kein Benutzer am Rechner/Server eingeloggt sein, um eine einwandfreie Funktion zu gewährleisten.
### Konfigurationsdatei
Die Konfiguration (settings.json) von IP-Symcon wird alle 10 Minuten oder bei ordnungsgemäßen Herunterfahren gespeichert. Sollte während des Speicherns die Stromversorgung zusammenbrechen, kann es zu einer korrupten bzw. defekten Konfigurationsdatei kommen.
Um dies zu korrigieren, geht IP-Symcon alle im Backup Ordner vorhandenen automatisch generierten Sicherungen der Settings.json durch, bis eine funktionale und nicht defekte gefunden wird. Sollte keine funktionale Konfigurationsdatei gefunden werden, startet der Dienst nicht und gibt eine Fehlermeldung aus.
## PHP
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/dienst/php/
IP-Symcon verwendet als Skriptsprache PHP. Durch die Tatsache, dass PHP komplett integriert ist, können alle Vorteile von PHP genutzt werden. Die Ausführung der Skripte kann dabei parallel erfolgen.
#### Versionsübersicht
| IP-Symcon Version | Integrierte PHP Version |
| ----------------- | ----------------------- |
| ab 1.0 | 5.1.x (x86 Thread Safe) |
| ab 2.2 | 5.3.x (x86 Thread Safe) |
| ab 2.5 | 5.4.x (x86 Thread Safe) |
| ab 4.0 | 5.6.x (x86 Thread Safe) |
| ab 5.0 | 7.2.x (x64 Thread Safe) |
| ab 5.1 | 7.3.x (x64 Thread Safe) |
| ab 5.5 | 7.4.x (x64 Thread Safe) |
| ab 7.0 | 8.2.x (x64 Thread Safe) |
Zusätzlich zu den normalen PHP Funktionen sind spezielle IP-Symcon Funktionen vorhanden, über die auf IP-Symcon-spezifische Einstellungen (siehe [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md)) oder über die in IP-Symcon eingerichteten Geräte zugegriffen werden kann (siehe [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md)).
Die aus PHP bekannte "php.ini" ( [php.net/manual/de/ini.php](https://www.php.net/manual/de/ini.php) ) ist in IP-Symcon ebenfalls vorhanden. IP-Symcon konfiguriert dabei die “extension” Einträge automatisch, anhand der vorhandenen Erweiterungen, die im "IP-Symcon/ext" Ordner abgelegt wurden.
### Globales include
Um Funktionen, Konstanten usw. global über alle Skripte hinweg zur Verfügung zu stellen müssen diese in der Datei "__autoload.php" definiert werden. Diese muss sich im "IP-Symcon/scripts"-Ordner befinden.
Innerhalb der "__autoload.php" können dann weitere Dateien eingelesen werden.
> **Hinweis:** Befehle oder Dateien via "__autoinclude.inc.php" einzulesen funktioniert auch, wird aber jedesmal bei einem Update oder Neuinstallation überschrieben.
> **Achtung:** Die PHP Funktion "auto_prepend_file" ist nicht nutzbar, da diese schon von IP-Symcon aufgerufen und genutzt wird. Diese soll/kann nur einmal Systemweit genutzt werden.
#### Beispiel
```php
__autoload.php
require_once(IPS_GetKernelDir() . "/scripts/globalfunction.ips.php");
```
### Konfigurieren
Mögliche Konfigurationsparameter können dem PHP Handbuch entnommen werden. Eine nützliche Einstellung ist die Verlängerung der maximalen Skriptlaufzeit, falls etwaige Skripte (z.B. ShutterControl) dies notwendig machen sollten. Bei Anpassung dieser Einstellung muss beachtet werden, dass nur eine begrenzte Anzahl von PHP Skripten in IP-Symcon parallel ausgeführt werden können. Wenn durch eine lange Skriptlaufzeit alle Slots besetzt sein sollten, werden andere Skripte in eine Warteschlage abgelegt und erst verzögert aufgerufen. "Sleep"-Anweisungen sollten deshalb immer vermieden und gegen "Timer"-Anweisungen getauscht werden.
> **Achtung:** IP-Symcon muss nach einer Änderung der "php.ini" neu gestartet werden!
#### Beispiel
__Maximale Skriptlaufzeit auf 5 Minuten erhöhen.__
```php
[PHP]
max_execution_time=300
```
## Schnittstellen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/dienst/schnittstellen/
### Hardware Module
sortiert nach Anschlüssen und Alphabet
| Komponenten | Hersteller | Anschlüsse | Unterstützte Geräte |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------- | -------------------------------------------------- |
| [1-Wire](https://www.symcon.de/de/llms/modules/1-wire.md) | Maxim Dallas | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/1-wire.md) |
| [ALLNET](https://www.symcon.de/de/llms/modules/allnet.md) | ALLNET | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/allnet.md) |
| [digitalSTROM](https://www.symcon.de/de/llms/modules/digitalstrom.md) | AIZO | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/digitalstrom.md) |
| [DMX / Artnet](https://www.symcon.de/de/llms/modules/dmx-artnet.md) | u.a. DMX4ALL | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/dmx-artnet.md) |
| [KNX](https://www.symcon.de/de/llms/modules/knx.md) | u.a. Siemens AG, EIBMarkt, Gira, Jung, Merten, Weinzerl | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/knx.md) |
| [eKey](https://www.symcon.de/de/llms/modules/ekey.md) | eKey | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/ekey.md) |
| IR Fernbedienung | u.a. [IRTrans](https://www.symcon.de/de/llms/modules/irtrans.md), [WinLIRC](https://www.symcon.de/de/llms/modules/winlirc.md) | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/irtrans.md) |
| [LCN](https://www.symcon.de/de/llms/modules/lcn.md) | Issendorff | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/lcn.md) |
| [ModBus TCP](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md) , [ModBus RTU](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md) , [ModBus RTU over TCP](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md) | z.B. Wago/Beckhoff SPS | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md) |
| [M-Bus](https://www.symcon.de/de/llms/modules/mbus.md) | z.B. ALLMESS | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/mbus.md) |
| [SPS Siemens Vipa Logo](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md) | Siemens AG | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md) |
| [Siemens OZW](https://www.symcon.de/de/llms/modules/siemens-ozw.md) | Siemens AG | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/siemens-ozw.md) |
| [UVR1611](https://www.symcon.de/de/llms/modules/technische-alternative.md) | Technische Alternative | Kabelgebunden | [Geräteliste](https://www.symcon.de/de/llms/modules/technische-alternative.md) |
| Velleman Board | Velleman | Kabelgebunden | -------------------------------------------------- |
| [WuT](https://www.symcon.de/de/llms/modules/wut.md) | W&T (Wiesemann & Theis) | Kabelgebunden | -------------------------------------------------- |
| [EnOcean](https://www.symcon.de/de/llms/modules/enocean.md) | EnOcean Alliance | Funkbasiert (868Mhz) | [Geräteliste](https://www.symcon.de/de/llms/modules/enocean.md) |
| [FHZ1X00PC](https://www.symcon.de/de/llms/modules/fhz1x00pc.md) (FS20, HMS, FHT, KS300) | ELV | Funkbasiert (868Mhz) | [Geräteliste](https://www.symcon.de/de/llms/modules/fhz1x00pc.md) |
| [HomeMatic](https://www.symcon.de/de/llms/modules/homematic.md) | ELV | Funkbasiert (868Mhz) | [Geräteliste](https://www.symcon.de/de/llms/modules/homematic.md) |
| [IPS-868](https://www.symcon.de/de/llms/modules/ips-868.md) | IP-Symcon/ProJet | Funkbasiert (868Mhz) | [IPS-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| [XBee](https://www.symcon.de/de/llms/modules/xbee.md) | ZigBee | Funkbasiert (868Mhz) | -------------------------------------------------- |
| [xComfort](https://www.symcon.de/de/llms/modules/xcomfort.md) | Eaton | Funkbasiert (868Mhz) | [Geräteliste](https://www.symcon.de/de/llms/modules/xcomfort.md) |
| [Z-Wave](https://www.symcon.de/de/llms/modules/z-wave.md) | u.a. ACT, Popp, Düwi, Merten, Innovus, Fibaro | Funkbasiert (868Mhz) | [Geräteliste](https://www.symcon.de/de/llms/modules/z-wave.md) |
| [FS10 Wetter](https://www.symcon.de/de/llms/modules/fs10-weather.md) | ELV | Funkbasiert (433Mhz) | -------------------------------------------------- |
### Virtuelle Module
sortiert nach Alphabet
| Bezeichnung | Funktionen | Besonderheiten |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [Archive Control](https://www.symcon.de/de/llms/modules/archive-control.md) | Speichert, verwaltet und stellt geloggte Variablen zur Verfügung. | |
| [Calendar Control](https://www.symcon.de/de/llms/modules/calendar-control.md) | Verwaltet geplante An-/Abwesendheit und setzt bereitgestellte Variablen. | |
| [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) | Öffnet einen verschlüsselten Tunnel zum Connect Service, welcher einen gesicherten Fernzugriff erlaubt. | Benötigt eine aktive Subskription |
| [Cutter](https://www.symcon.de/de/llms/modules/cutter.md) | Verarbeitet Binärdaten und zerschneidet/synchronisiert diese. Kann mit den Schnittstellenmodulen verwendet werden. | |
| [DNSSD Control](https://www.symcon.de/de/llms/modules/dns-sd-control.md) | Verwaltet eingerichtete Bonjour Services. | |
| [Event Control](https://www.symcon.de/de/llms/modules/event-control.md) | Reagieren auf spezielle Ereignisse wie Start/Stop des Systems, um spezielle Systemzustände zu speichern/einzulesen | |
| [Heating Control](https://www.symcon.de/de/llms/modules/heating-control.md) | 2-Punkt-Regler, welcher auf Basis von Ist- und Soll-Temperaturen Heizungsaktoren schaltet, um auf voreingestellte Temperaturen zu regeln. | |
| [IMAP](https://www.symcon.de/de/llms/modules/imap.md) | Dient zur IMAP Abfrage von E-Mails. | |
| [Location Control](https://www.symcon.de/de/llms/modules/location-control.md) | Berechnet verschiedene Dämmerungszeitpunkte anhand von Längen- und Breitengrad. | |
| [MediaPlayer](https://www.symcon.de/de/llms/modules/amazon-alexa.md) | WAV, MP3, WMA, Shoutcast, IceCast, WMALive | Mehrere Soundkarten gleichzeitig |
| [Module Control](https://www.symcon.de/de/llms/modules/module-control.md) | Stellt verschiedene Module, eingebunden über ein Git-Repository, zur Verfügung. | |
| [MQTT](https://www.symcon.de/de/llms/modules/mqtt.md) | MQTT ist ein offenes Nachrichtenprotokoll für Machine-to-Machine-Kommunikation (M2M). IP-Symcon agiert in diesem Zusammenhang als Server (Broker). | |
| [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md) | Verwaltet alle für Push-Nachrichten registrierten Geräte. | Push Notifications benötigen eine aktive Subskription |
| [POP3](https://www.symcon.de/de/llms/modules/pop3.md) | Dient zur POP3 Abfrage von E-Mails. | |
| [Presence Control](https://www.symcon.de/de/llms/modules/presence-control.md) | Bietet die Möglichkeitkeit eine Anwesenheit in einem Bereich auszuwerten | |
| [RegisterVariable](https://www.symcon.de/de/llms/modules/registervariable.md) | Stellt eine Datenweiterleitungs- und -verarbeitungsschnittstelle zur Verfügung | |
| [SMTP](https://www.symcon.de/de/llms/modules/smtp.md) | Dient zum Versenden von E-Mails via SMTP. | |
| [SMS](https://www.symcon.de/de/llms/modules/sms.md) | Dient zum Versenden von SMS mithilfe eines externen SMS Anbieters. | |
| [System Informationen](https://www.symcon.de/de/llms/modules/system-information.md) | CPU Last, Festplattenauslastung, Batteriestärke, Druckerwarteschlange | |
| [Shutter Control](https://www.symcon.de/de/produkt/anwendungsbeispiele/rollladensteuerung/) | Positioniert ihre Rollladen auf einen genauen % Wert, auch wenn ihr Modul eigentlich nur Hoch/Runter fahren kann. | Muss einmalig angelernt werden |
| [TextParser](https://www.symcon.de/de/llms/modules/textparser.md) | Extrahiert Daten aus einem Text, der z.B. vom WWW Reader geliefert wurde. | |
| [Text To Speech](https://www.symcon.de/de/llms/modules/text-to-speech.md) | Sprachsynthese für eine direkte Ausgabe auf einen Lautsprecher oder in eine beliebige WAV Datei, mit verschiedenen Formaten/Qualitäten. | benötigt SAPI 5.1 oder höher (XP, W2k3, Vista) |
| [Util Control](https://www.symcon.de/de/llms/modules/util-control.md) | Dieses Modul ist eine Schnittstelle zwischen dem IP-Symcon Dienst und der Verwaltungskonsole. | |
| [WebHook Control](https://www.symcon.de/de/llms/modules/webhook-control.md) | Bietet die Möglichkeit Skripte über den Browser aufzurufen. | In Kombination mit Connect Control auch von außerhalb nutzbar |
| [WebServer](https://www.symcon.de/de/llms/modules/webserver.md) | Stellt einen weiteren Port für das jeweilige WebFront zur Verfügung. | SSL-Verschlüsselung aktivierbar |
### Sprachassistentsysteme
sortiert nach Alphabet
| System | Hersteller | Besonderheiten |
| ------------------------------------------------------- | ---------- | ----------------------- |
| [Amazon Alexa](https://www.symcon.de/de/llms/modules/amazon-alexa.md) | Amazon | Benötigt Symcon Connect |
| [Google Assistant](https://www.symcon.de/de/llms/modules/google-assistant.md) | Google | Benötigt Symcon Connect |
### Visuelle Module
sortiert nach Alphabet
| Bezeichnung | Funktionen |
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| [Dummy Modul](https://www.symcon.de/de/llms/modules/dummy-module.md) | Erstellt optisch eine Instanz im WebFront. |
| [Image Grabber](https://www.symcon.de/de/llms/modules/image-grabber.md) | Erstellt automatisch Webcam-Bilder als Medien-Objekte und stellt diese somit direkt dem WebFront zur Verfügung. |
| [Popup Modul](https://www.symcon.de/de/llms/modules/popup-module.md) | Erstellt ein Popup im WebFront und zeigt verlinkte Objekte an. |
| [Skin Control](https://www.symcon.de/de/llms/modules/skin-control.md) | Dieses Modul verwaltet vorhandene Skins und weißt diese verschiedenen WebFronts zu. |
| [WebFront Visualisierung](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Verwaltet ein WebFront und bietet verschiedene Einstellmöglichkeiten zur Verfügung. |
### Schnittstellen Module
sortiert nach Alphabet
| Bezeichnung | Funktionen | Besonderheiten |
| ------------------------------------------------------- | ------------------------ | ----------------------------------- |
| [Client Socket](https://www.symcon.de/de/llms/modules/clientsocket.md) | ------------------------ | TCP-Client |
| [HID](https://www.symcon.de/de/llms/modules/hid.md) | ------------------------ | ----------------------------------- |
| [HTTPClient](https://www.symcon.de/de/llms/modules/httpclient.md) | Ruft/liest Webseiten aus | Proxy, Basic Authentication Support |
| [Multicast Socket](https://www.symcon.de/de/llms/modules/multicastsocket.md) | ------------------------ | Multicast-Client |
| [Serial Port](https://www.symcon.de/de/llms/modules/serialport.md) | ------------------------ | RS232/RS485 |
| [Server Socket](https://www.symcon.de/de/llms/modules/serversocket.md) | ------------------------ | TCP-Server |
| [UDP Socket](https://www.symcon.de/de/llms/modules/udpsocket.md) | ------------------------ | UDP-Client |
---
# Verwaltungskonsole
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/
Die Verwaltungskonsole ist das Tool zum Einrichten und Konfigurieren der gesamten Logik des IP-Symcon Servers. Die Verwaltungskonsole gibt es in zwei Versionen: Der webbasierten Verwaltungskonsole und der [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md).
### Webbasierte Verwaltungskonsole
ab IP-Symcon 5.0
Die webbasierte Verwaltungskonsole ist Plattform unabhängig und wird über einen Browser aufgerufen. Offiziell empfohlene Browser sind: Google Chrome, Apple Safari und Opera
#### Verbinden mit dem IP-Symcon Server
Die webbasierte Verwaltungskonsole kann via "[ServerIP]:3777/console/" in einem Browser aufgerufen werden.
#### Die Startseite
Auf der Startseite sind die Widgets sichtbar. Diese sind individuell konfigurierbar und bieten einen ersten Überblick über viele Aktivitäten des Systems.

##### Widgets konfigurieren
Auf der Startseite können via dem Zahnrad-Button unten rechts die Widgets ein-/ausgeblendet werden.

##### Ansichtwechsler
Über den Button oben rechts kann schnell zwischen Startseite und Tabliste gewechselt werden.

##### Tabliste
In der Tabliste können diverse Tabs geöffnet werden. Dies beinhaltet unter anderem den [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md), die [Meldungen](https://www.symcon.de/de/llms/components/management-console.md) oder die Konfiguration von [Instanzen](https://www.symcon.de/de/llms/concepts.md) oder [Automationen](https://www.symcon.de/de/llms/concepts/automations.md). Über das Plus-Icon rechts von der Tabliste können neue Tabs geöffnet werden. Sind mehrere Tabs von Objekten mit gleichem Namen geöffnet, so wird zusätzlich der Pfad zu diesen Objekten angezeigt, so dass die Tabs zugewiesen werden können.

##### Visualisierung
Über den Button oben rechts kann direkt das [WebFront](https://www.symcon.de/de/llms/components/webfront-visualization.md) geöffnet werden.

##### Informationen
Über den Informationen-Button können diverse Informationen abgefragt werden.
Dazu zählen Kernel- und Ausstattungsinformationen, sowie einen Button zu den Spezialschaltern.

##### Gerätesuche
Über den Gerätesuche-Button können Discoverys eingerichtet werden.
Diese informieren über neu angeschlossene Geräte und vereinfachen die Einrichtungen neuer Geräte.

##### Module Store
Über den Module Store können neue Module installiert werden. Diese Module erweitern den Funktionsumfang und ermöglichen so die Verwendung von neuen Funktionen oder weiteren Geräten.

## Gerätesuche
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/geraetesuche/
Über den Gerätesuche-Button können Discoverys eingerichtet und Konfiguratoren aufgerufen werden. Diese informieren über neu angeschlossene Geräte und vereinfachen die Einrichtungen neuer Geräte.
### Discovery einrichten
Die Gerätesuche ist über die Glocke oben rechts in der Konsole aufrufbar.
#### Erstmalige Einrichtung

Über das Anhaken am linken Rand werden neue Discoverys eingerichtet.
Ist ein Korb am rechten Rand, so handelt es sich um ein Discovery aus dem [Module Store](https://www.symcon.de/de/llms/components/management-console.md). Diese können durch einen Klick auf den Korb geöffnet werden.
Beim Einrichten eines Discoverys werden automatisch benötige IO-/Splitter-Instanzen erstellt.
#### Zusätzliche Einrichtung

Über "Systeme auswählen" können weitere Discovery Systeme hinzugefügt werden.

Über die eingerichteten Discoverys können Konfiguratoren erstellt und automatisch konfiguriert werden. Erstellte Konfiguratoren werden in der Gerätesuche angezeigt.
Über die Pfeile am rechten Rand kann die Konfiguration zu eingerichteten Discoverys/Konfiguratoren geöffnet werden.
#### Konfigurator erstellen
Im jeweiligen Discovery können systemspezifische [Konfiguratoren](https://www.symcon.de/de/llms/concepts.md) erstellt werden. Dazu muss der passende Eintrag aus der Liste ausgewählt und auf "Erstellen" geklickt werden.
Das Discovery übernimmt automatisch die vollständige Konfiguration des Konfigurators und dieser kann sofort genutzt werden.

### Verschiedene Status
Das Icon der Gerätesuche zeigt direkt an, ob zum Beispiel ein neues Gerät erstellt werden kann.
Dazu gibt es drei Status, welche direkt am Icon innerhalb der Konsole ersichtlich sind.
#### Status unverändert
Sollten keine neuen Geräte erkannt, alle erstellbaren Geräte erstellt oder als "gesehen" markiert worden sein, wird nur das Symbol an sich angezeigt.

#### Kein Discovery eingerichtet
Es wurden noch keine Discovery Instanz eingerichtet.

#### Neue Geräte erstellbar
Wenn neue Geräte erkannt werden, wird dessen Anzahl in einer grünen Markierung erkenntlich gemacht.
Ist keine Einrichtung erwünscht, kann diese Meldung im Gerätesuchefenster mit "Neue Geräte als Gesehen markieren" ausgeblendet werden

## Meldungen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/meldungen/
Im Meldungenfenster können Informationen abgelesen werden, was alles auf dem IP-Symcon Server gerade passiert. Hier werden Änderungen, Aktivitäten und auch Fehlermeldungen gesammelt dargestellt und können auch gefiltert werden.
> **Hinweis:** Durch einen Doppelklick oder “Rechtsklick -> Öffnen” auf eine Variable innerhalb des Meldungsfensters, kann diese verändert werden.
### Einrichtung
Die Meldungen können über das Meldungen Widget oder über das Plus in der Tableiste geöffnet werden.
Hierzu im Widget einfach auf "Öffnen" klicken oder in der Tableiste mit dem Plus die Meldungen öffnen.


### Farbcodes
Im Meldungsfenster werden die unterschiedlichen Meldungen farblich dargestellt.
__Transparenter Hintergrund:__
Eine Standardnachricht. (MESSAGE)
__Grauer Hintergrund:__
Eine benutzerdefinierte Nachricht. (CUSTOM)
__Grüner Hintergrund:__
Eine Erfolgsmeldung. (SUCCESS)
__Lila Hintergrund:__
Eine Benachrichtigung. (NOTIFY)
__Gelber Hintergrund:__
Eine Warnungsmeldung. (WARNING)
__Roter Hintergrund:__
Eine [Fehlermeldung](https://www.symcon.de/de/llms/components/management-console.md). (ERROR)
### Menüpunkte
#### Start/Stop
Startet und stoppt das Aufzeichnen der Meldungen. Somit können die bisherigen Meldungen in Ruhe analysiert werden.
#### Leeren
Löscht alle bisherigen Meldungen.
#### Nachrichten limitieren
Die maximale Anzahl von angezeigten Nachrichten. Wenn das Limit erreicht wird, werden die ältesten Nachrichten entfernt, bevor neue hinzugefügt werden. Dadurch kann die Liste automatisch scrollen, auch wenn die AutoScroll Funktion deaktiviert wurde.
#### AutoScroll
Wenn aktiviert, scrollt das Fenster automatisch mit den aktuellsten Meldungen.
#### Filter
Hier kann ausgewählt werden, welche Art von Datensatz angezeigt werden soll.
#### Schnellfilter
Es wird die Spalte "Absender" und "Nachricht" nach dem, was im Eingabefeld steht, durchsucht. Die Suche aktiviert sich bei Eingabe ins Suchfeld selbst, kann aber durch Klick auf "Schnellfilter" de-/aktiviert werden.
Es ist keine Suche nach mehreren Suchbegriffen möglich.
## Fehlermeldungen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/meldungen/fehlermeldungen/
Eine Fehlermeldung wird entweder direkt oder im Message Log angezeigt. Fehlermeldungen werden im Meldungsfenster rot dargestellt.
Alle Fehlermeldungen, welche ins Message Log kommen, werden auch im Logfile im "logs"-Ordner gespeichert.
> **Hinweis:** Es gilt: Wird eine Fehlermeldung nicht direkt angezeigt, wird diese im Message Log angezeigt.
#### Beispiele für eine direkte Ausgabe der Fehlermeldungen:
* Ausführen im Skript-Editor
* Ausführen im WebFront und der App
* Ausführen einer eigenen Aktion (Skript oder PHP-Modul) per WebFront und App
* Ausführen von Web Hooks und OAuth Hooks
#### Beispiele für Fehlermeldungen im Log:
* Ereignisse (Zyklisch, Ausgelöst)
* Skript Timer
* Timer von Instanzen (inkl. PHP-Module)
* Fehler beim Start- und Stop-Skript im Event Control
* Fehler beim Auswerten einer Register Variable
## Module Store
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/
Über den Module Store können neue Module installiert werden. Diese Module erweitern den Funktionsumfang und ermöglichen so die Verwendung von neuen Funktionen oder weiteren Geräten.
> **Hinweis:** Alle verfügbaren Module im [Module Store](https://www.symcon.de/de/module-store/) im Browser durchsuchen.
### Module Store öffnen
Der Module Store ist über den Korb oben rechts in der Konsole erreichbar.

Initial zeigt der Module Store verschiedene Kategorien in denen Module angeboten werden und bietet eine Suchfunktion an. Wurden bereits Module über den Module Store installiert, so sind diese über eine entsprechende Spezialkategorie erreichbar.

### Module finden
Um ein passendes Modul zu finden, gibt es verschiedene Möglichkeiten. Zum einen kann die Suchfunktion verwendet werden. Hier kann ein Suchbegriff eingegeben werden und durch die Eingabetaste oder das Klicken auf die Lupe bestätigt werden. Daraufhin werden passende Module angezeigt.

Alternativ kann eine Kategorie durch einen Klick ausgewählt werden um die darin enthaltenen Module anzuzeigen. Kategorien können Unterkategorien enthalten, welche dann ebenfalls ausgewählt werden können. Durch einen Klick auf eine vorherige Kategorie in der oberen Leiste kann man dorthin zurückkehren. Ein Klick auf "Module Store" zeigt wieder den Startbildschirm an.

Die beiden Methoden können auch kombiniert werden. So kann in einer bestimmten Kategorie nach einem Begriff gesucht werden oder ein Suchergebnis im Nachhinein durch Kategorien eingeschränkt werden.
> **Hinweis:** Wird ein Suchbegriff verwendet, so werden auch Unterkategorien durchsucht. Ohne Suchbegriff werden nur Module aus der aktuellen Kategorie angezeigt, nicht aber deren Unterkategorien.
### Module installieren
Sollen Module installiert werden, so muss zuerst die dazugehörige Karte angeklickt werden. Daraufhin öffnet sich ein Dialog, welcher die aktuell gewählten Module erörtert.

| Element | Beschreibung |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Autor | Der Autor der Module |
| Kategorien | Die Kategorien in welchen die Module enthalten sind |
| Beschreibung | Die Beschreibung der Module. Zusätzlich ist hier ein Link zur Dokumentation und eine Liste der beinhalteten Module zu finden |
| Versionsinformation | Die aktuelle Versionsnummer und eine Beschreibung, was zu dieser Version neu ist |
| Betaeinstellungen | Falls die Module über eine Beta-Version verfügen, kann hierüber auf die Beta-Version gewechselt werden |
Am unteren Ende des Dialogs befindt sich der Button "Installieren" um die Module zu installieren und "Abbrechen" um den Dialog wieder zu schließen.
Soll eine Beta-Version installiert werden, so können die Betaeinstellungen ausgeklappt werden und auf "Zu Beta wechseln" geklickt werden. Daraufhin werden die Modulinformationen auf die Beta-Version angepasst und diese kann durch einen Klick auf "Installieren" installiert werden.
> **Achtung:** Beta-Versionen werden nicht durch das Symcon-Team geprüft.
### Module aktualisieren und entfernen
Wurden Module installiert, so erscheint im Startbildschirm des Module Stores eine Spezialkategorie "Installiert". Hier werden alle installierten Module aufgelistet. Gibt es für Module neue Versionen, wird dies auch hervorgehoben.

Wird ein installiertes Modul angeklickt, so erscheint wieder der Installationsdialog. Nun hat man zusätzlich die Möglichkeit die Module durch Klick auf "Entfernen" zu löschen.
Gibt es eine neue Version, kann man diese per "Aktualisieren" installieren. Möchte man im Nachhinein den Kanal wechseln, also von der regulären Stable-Version auf Beta oder anders herum, so kann dies über die Betaeinstellungen getan werden und per "Kanal wechseln" bestätigt werden. Ist die aktuelle Version installiert, so kann man diese per "Erneut installieren" noch einmal herunterladen.
## Objektbaum
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/objektbaum/
Der Objektbaum dient zur Übersicht und Verwaltung aller Objekte und Instanzen. Die hier angelegte Struktur wird später auch als Grundlage zur Darstellung für das WebFront genutzt. Das Verschieben von Objekten geschieht via Drag&Drop.
> **Hinweis:** Die Erklärung zum Kontextmenü der verschiedenen Instanzen kann in den [Grundlagen](https://www.symcon.de/de/llms/concepts.md) nachgeschlagen werden.
### Einrichtung
Der Objektbaum kann über das Objektbaum Widget oder über das Plus in der Tableiste geöffnet werden.
Hierzu im Widget einfach auf "Öffnen" klicken oder in der Tableiste mit dem Plus den Objektbaum öffnen.


### Farbcodes
Im Objektbaum wird der Status der Objekte mit Farbcodes dargestellt.
__Schwarze Schrift:__
Alles normal und das Objekt wird im WebFront angezeigt.
__Hellgraue Schrift:__
Alles normal und das Objekt wird nicht im WebFront angezeigt.
__Graues Ausrufezeichen:__
Das Objekt ist inaktiv.
__Hellgraues Ausrufezeichen:__
Eine übergeordnete Instanz des Objekts ist inaktiv.
__Rotes Ausrufezeichen:__
Das Objekt hat einen Fehlerzustand.
__Hellrotes Ausrufezeichen:__
Eine übergeordnete Instanz hat einen Fehlerzustand.
### Weitere Funktionalitäten
Wenn im Objektbaum über eine Uhrzeit oder ein Statusicon gehovert wird, erscheint ein Tooltip, welcher z.B. das gesamte Datum oder die Art der Störung anzeigt.
### Menüpunkte
#### Plus-Knopf
Über den Dialog "+" unten Rechts können neue Objekte erstellt werden. Alternativ kann durch ein Rechtsklick an der gewünschte Position im Objektbaum ein Objekt an dieser Position hinzugefügt werden. Die jeweiligen Objekttypen werden in den [Grundlagen](https://www.symcon.de/de/llms/concepts.md) genauer beschrieben.
#### ID
Mithilfe des Eingabefelds kann eine ObjektID gesucht werden. Bei Fund springt der Objektbaum automatisch zu der gesuchten ID und wählt diese aus.
#### Filter
Bei Eingabe in das Suchfeld wird der Filter automatisch aktiviert. Dieser kann durch Klick auf "Filter" wieder ein- und zugeschaltet werden. Es wird in der Spalte “Name” gesucht. Falls die Spalte "Beschreibung" sichtbar ist, wird auch in dieser gesucht.
#### Typen
Hier kann die Sichtbarkeit bestimmter Objekttypen im Objektbaum, an- und ausgeschaltet werden, um die Übersicht oder den Fokus auf bestimmte Typen zu setzen. Ist etwas ausgeblendet wird dieser Button grau unterlegt.
#### Spalten
Übersichtsfunktionalität, um die angezeigten Spalten zu aktivieren und deaktivieren.
## Objektbaum (Physikalisch)
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/objektbaum-physikalisch/
Die physikalische Ansicht des Objektbaums zeigt auf der obersten Ebene nur unverbundene und I/O Instanzen an. Im I/O Bereich werden die Geräte in der Struktur der tatsächlichen physikalischen Verbindung dargestellt. Die Struktur wird unter Übergeordnete Instanzen veranschaulicht. (I/O -> Gateway ->Gerät). Es werden nur Instanzen angezeigt.
Unverbundene Instanzen beinhaltet solche, welche nicht physisch vorhanden sind.
> **Hinweis:** Die Erklärung zum Kontextmenü der verschiedenen Instanzen kann in den [Grundlagen](https://www.symcon.de/de/llms/concepts.md) nachgeschlagen werden.
### Einrichtung
Der Objektbaum kann über das Plus in der Tableiste geöffnet werden.

### Farbcodes
Im Objektbaum wird der Status der Objekte mit Farbcodes dargestellt.
__Schwarze Schrift:__
Alles normal und das Objekt wird im WebFront angezeigt.
__Hellgraue Schrift:__
Alles normal und das Objekt wird nicht im WebFront angezeigt.
__Graues Ausrufezeichen:__
Das Objekt ist inaktiv.
__Hellgraues Ausrufezeichen:__
Eine übergeordnete Instanz des Objekts ist inaktiv.
__Rotes Ausrufezeichen:__
Das Objekt hat einen Fehlerzustand.
__Hellrotes Ausrufezeichen:__
Eine übergeordnete Instanz hat einen Fehlerzustand.
### Verbindungen anpassen
Durch Drag & Drop kann eine Instanz auf eine andere kompatible Verbindung verschoben werden und wird dann dieser zugewiesen. Sollte die Zielinstanz nicht kompatibel sein, so wird das Verschieben verhindert.
### Weitere Funktionalitäten
Wenn im Objektbaum über eine Uhrzeit oder ein Ausrufezeichen gehovert wird, erscheint ein Tooltip, welcher z.B. das gesamte Datum oder die Art der Störung anzeigt.
### Menüpunkte
#### ID
Mithilfe des Suchdialogs kann eine ObjektID gesucht werden. Bei Fund springt der Objektbaum automatisch zu der gesuchten ID und wählt diese aus.
#### Filter
Bei Eingabe in das Suchfeld wird der Filter automatisch aktiviert. Dieser kann durch Klick auf "Filter" wieder ein- und zugeschaltet werden. Es wird nur in der Spalte “Name” gesucht.
#### Typen
Hier kann die Sichtbarkeit bestimmter Objekte im Objektbaum, an- und ausgeschaltet werden, um die Übersicht oder den Fokus auf bestimmte Typen zu setzen. Ist etwas ausgeblendet wird dieser Button grau unterlegt.
#### Spalten
Übersichtsfunktionalität, um die angezeigten Spalten zu aktivieren und deaktivieren.
## Pro Konsole
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/pro-konsole/
Die Pro Konsole ist das Experten-Tool zum Einrichten und Konfigurieren der gesamten Logik des IP-Symcon Servers. Diese besitzt alle Features, welche auch die [Webbasierte Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) hat, und noch weiterführende Expertenoptionen.
### Installation
Die Pro Konsole kann für Windows, MacOS oder Linux Ubuntu installiert werden.
> **Hinweis:** Die Pro Konsole wurde mit der IP-Symcon Version 5.4 eingeführt, funktioniert aber mit Server Versionen ab 5.0. Bei älteren Versionen stehen allerdings nicht alle Funktionen der Pro Konsole zur Verfügung.
#### Windows
Die aktuelle Pro Konsole für Windows kann über diesen [Downloadlink](https://download.symcon.de/stable/console/win/amd64) heruntergeladen werden.
#### MacOS
Die aktuelle Pro Konsole für MacOS kann über diesen [Downloadlink](https://download.symcon.de/stable/console/mac/amd64) heruntergeladen werden.
#### Ubuntu
Soweit noch nicht erfolgt, muss das Symcon Repo hinzugefügt werden:
```php
wget -qO- https://apt.symcon.de/install.sh | bash /dev/stdin
```
Folgende Befehle ausführen:
```php
sudo apt-get update
sudo apt-get install symcon-console
```
### Verbinden mit dem IP-Symcon Server
Die Pro Konsole nutzt den [Verbindungsassistenten](https://www.symcon.de/de/llms/components/management-console.md). Mit diesem kann ein Server ausgewählt und mit "Verbinden" oder Doppelklick geöffnet werden.

#### An- und Abdocken
In der Pro Konsole können einzelne Tabs beliebig an- und abgedockt werden. So kann ein indivudell angepasstes Arbeitsfeld aufgebaut und alles in einem Blick behalten werden. Zusätzlich können einzelne Tabs mit einem Rechtsklick und dann "In neuem Fenster öffnen" separat angezeigt werden.


### Start mit Parametern
Üblicherweise öffnet die Pro Konsole beim Aufruf direkt den [Verbindungsassistenten](https://www.symcon.de/de/llms/components/management-console.md). Dieses Verhalten kann durch Parameter angepasst werden.
| Parameter | Beschreibung | Beispiel für Windows |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| --server=[Konsole] | Verbindet direkt mit einem Server. Für [Konsole] muss hierbei die Adresse der webbasierten Verwaltungskonsole des Servers verwendet werden. | "IP-Symcon Management Console.exe" --server=http://127.0.0.1:3777/console/ |
## Verbindungsassistent
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/verbindungsassistent/
Der Verbindungsassistent hilft bei der Verbindung der [Pro Konsole](https://www.symcon.de/de/llms/components/management-console.md) zu einem IP-Symcon Server. Die verfügbaren Server werden dabei in einer Liste angezeigt.
### Server
Es werden alle Server, die im lokalen Netzwerk gefunden werden oder in der [Lizenzverwaltung](https://www.symcon.de/de/llms/getting-started.md) eingetragen sind, dargestellt. Für die Anzeige, der in der Lizenzverwaltung eingetragenen Servern muss sich mit dem Symcon Account eingeloggt werden. Die Anmeldung erfolgt über einen Klick auf das Personenicon oben rechts. Dort müssen Benutzername und Kennwort des persönlichen Bereichs der Symcon-Homepage eingegeben werden. Es ist zu beachten, dass dies Konto separat vom Communityforum und dem Fernzugriff ist. Mit "Erneut suchen" kann nach neuen Servern im lokalen Netzwerk gescannt werden.

### Server hinzufügen
Es können auch manuell Server hinzugefügt werden. Dazu muss auf das "+" geklickt werden und Name, Adresse und Port angegeben werden. Dies sollte genutzt werden, wenn zum Beispiel ein DynDNS genutzt wird. Sollte der [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) genutzt werden ist die Verwendung der Lizenzverwaltung empfohlen.
### Keine Server gefunden
Sollten keine Server in der Serverliste sichtbar sein kann dies mehrere Gründe haben.
__IP-Symcon Server aus der Lizenzverwaltung tauchen nicht auf__
Es sollte überprüft werden, ob der korrekte Benutzer eingeloggt ist. Ist ein Benutzer angemeldet, so steht neben dem Personenicon "Eingeloggt als ...". Steht dies nicht dort, so ist kein Benutzer angemeldet und demnach können keine Lizenzen der Lizenzverwaltung angezeigt werden.
__IP-Symcon Server ist nicht eingeschaltet/gestartet__
Bitte IP-Symcon am Server starten. Überprüfen, ob der Server korrekt angeschlossen und gestartet ist.
__IP-Symcon Server ist nicht korrekt mit dem Netzwerk verbunden__
Es sollte überprüft werden, ob eine Netzwerkverbindung zwischen beiden Computern verfügbar ist.
__Firewall Einstellungen nicht korrekt__
Sowohl Client-, als auch Serverseitig muss der Zugriff in der Firewall für Port 1900/UDP erlaubt sein.
Für die Verbindung mit der Verwaltungskonsole muss zusätzlich, im Normalfall, Port 82/TCP bzw. 3777/TCP erlaubt sein.
---
# Kachel Visualisierung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/
_Benötigt Symcon >= 7.0_
Die Kachel-Visualisierung bietet eine Darstellung Ihres Systems, welche den gesamten Objektbaum oder auch nur einen Teil davon visualisiert. Die Visualisierung kann via Browser oder via Apps genutzt werden.
### Verbinden mit der Visualisierung
Das Verbinden ist einer der wenigen Punkte, in denen sich Apps und Browser unterscheiden:
[Verbinden mit Apps](https://www.symcon.de/de/llms/components/tile-visualization.md)
[Verbinden mit Browser](https://www.symcon.de/de/llms/components/tile-visualization.md)
### Hauptansicht
Die Visualisierung stellt Objekte aus IP-Symcon als Kacheln dar und orientiert sich dabei an dem Objektbaum. Eine Seite der Visualisierung entspricht somit dem Inhalt einer Kategorie. Wie die einzelnen Objekttypen angezeigt werden ist in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) beschrieben

### Kacheln
Kacheln haben verschiedene Darstellungsarten.
**Minimierte Ansicht**
Wenn Kacheln unter einer Kategorie neben anderen angezeigt werden, nutzen diese die minimierte Darstellung. Diese sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) näher beschrieben. Die Größe Der Kachel kann ebenfalls einen Einfluss auf den Inhalt der Kachel haben.

**Maximierte Ansicht**
Jede Kachel kann über die zwei Pfeile in der oberen rechten Ecken maximiert werden. Je nach Objekttyp und Konfiguration steht eine erweiterte Darstellung zur Verfügung. Gibt es keine werden das Objekt selbst oder alle untergeordneten Objekte in einer Liste angezeigt. Auch wenn es eine erweiterte Darstellung gibt kann jederzeit über das Listen Icon in der oberen rechten Ecke zur Listendarstellung gewechselt werden.

### Elemente der Visualisierung
Die Visualisierung ist in verschiedene Bereiche unterteilt:

**Appbar**
Am oberen Bereich des Bildschirms befindet sich die Appbar. Auf der linken Seite kann über das Navigationsmenü eine Übersicht der Kategorien aufgerufen werden. Auf der rechten Seite befindet sich standardmäßig die Suche und Schaltflächen für den Editiermodus, Benachrichtigungen, das Teilen der Visualisierung und die Einstellungen. In der [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) können diese Optionen deaktiviert oder noch weitere Darstellungen wie etwa das aktuelle Datum hinzugefügt werden.
**Startbereich**
Unter der Appbar ist der Startbereich. Der Inhalt kann in der [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) angepasst werden. Hier wird standardmäßig ein Begrüßungssatz angezeigt. Zusätzlich können eine Reihe von Automationen und Favoriten hier angezeigt werden. Bei schmaleren Bildschirmen wie etwa Smartphones wird die Darstellung leicht angepasst, um den verfügbaren Platz besser zu nutzen.
**Kategorieleiste**
Die Kategorieleiste fasst alle Kategorien, die sich in der aktuellen Kategorie befinden zusammen. Bei Bedarf bricht die Leiste um, damit alle Kategorien angezeigt werden können. In der [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) kann die Kategorieleiste ausgeblendet werden, wodurch Kategorien mit den anderen Objekten darunter im Objektbereich angezeigt werden.
**Objektbereich**
Hier werden alle Objekte aus IP-Symcon wie etwa Variablen und Instanzen als Kacheln dargestellt. Die Position und Größe dieser kann jederzeit verändert werden. Ebenso kann der Inhalt der einzelnen Kacheln angepasst werden. Diese Informationen werden für verschiedene Bildschirmgrößen in Darstellungprofilen gespeichert. Näheres hierzu ist in Abschnitt [Individualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) beschrieben.
**Seitenleiste**
Die Seitenleiste kann über das Icon in der oberen linken Ecke geöffnet werden. Hier werden alle Kategorien in einer Baumansicht darstellt und können zur Navigation genutzt werden. Neben dem Namen der Visualisierung kann über eine Schaltfläche zwischen den verfügbaren Visualisierungen des Servers gewechselt werden.

### Einrichtung
Um die Kachel Visualisierung einzurichten muss eine Kachel Visualisierung Instanz vorhanden sein. Standardmäßig wird mit der Installation eine Instanz erstellt und befindet sich im Objektbaum unter "Visualisierung Instanzen".

Sollen weitere Kachel Visualisierungen eingerichtet werden, so kann dieses im Objektbaum über das "+" -> "Instanz" -> "Kachel Visualisierung" hinzugefügt werden. Dies erstellt eine neue Kachel Visualisierung, welche komplett unabhängig konfiguriert werden kann.
### Konfiguration
Grundsätzlich läuft die Kachel Visualisierung ohne weitere Konfiguration. Es können allerdings diverse Einstellungen gemacht werden. Informationen über die einzelnen Einstellungen und Konfigurationsmöglichkeiten können unter [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) gefunden werden. Die Konfiguration kann durch einen Doppelklick im Objektbaum auf die Kachel Visualisierung geöffnet werden.
### Mehrere Visualisierungen
In IP-Symcon Basic ist eine Visualisierung verfügbar. In der IP-Symcon Professional Edition können insgesamt bis zu fünf Kachel Visualisierungen erstellt werden, die eigenständig über die Visualisierung Startseite aufgerufen und bei Bedarf mit einem Passwort abgesichert werden können. Eine Visualisierung kann als eigenständige Einheit - für z.B. ein Visualisierungsobjekt - erstellt werden, eine spezielle Ansicht für den Wartungstechniker darstellen oder einfach nur eine sicherheitsspezifische Trennung erzeugen. Pro Visualisierung sind dieselben Optionen verfügbar und können beliebig angepasst werden. In der Unlimited Edition sind beliebig viele Visualisierungen erstellbar.
## Individualisierung
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/individualisierung/
_Benötigt Symcon >= 7.0_
## Layout bearbeiten
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/individualisierung/layout-bearbeiten/
_Benötigt Symcon >= 7.0_
### Standardwerte
Die Position der Kacheln ergibt sich aus der Position der entsprechenden Objekte im Objektbaum. Die Positionierung verläuft von oben link nach rechts und von oben nach unten.
Alle Kacheln haben eine zugewiesene Standardgröße. Die initialen Standardgrößen ergeben sich aus dem ausgewählten [Gitterkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md). Dieses wird basierend auf dem Gerätetyp der Bildschirmgröße und -orientierung gewählt, um die best möglichen Ausgangswerte für die Kacheln zu wählen. Diese Standardgrößen können für jede Darstellungsart einer Kachel in den Einstellungen unter Visualisierung>Gittereinstellungen angepasst werden. Hier kann auch die Auflösung des Gitters, auf dem die Kacheln angeordnet sind, bestimmt werden.
Die Breite des Gitters ist dabei fest. Da vertikal gescrollt werden kann ist das Gitter in der Höhe nicht begrenzt.

### Bearbeitungsmodus
Auf jeder Seite der Visualisierung kann über das Bleistift-Symbol in der Appbar der Bearbeitungsmodus aktiviert werden. Die Position der Kacheln kann mittels Darg & Drop verändert werden. Die Größe kann durch ziehen der Punkte an den Rändern verändert werden. Wenn der Bearbeitungsmodus aktiviert ist, werden in der Appbar drei neue Optionen angeboten. Die Aktuellen Änderungen können gespeichert oder verworfen werden. Außerdem kann das Layout auf die Standardgrößen zurückgesetzt werden. Das Zurücksetzen bezieht sich hierbei nur auf die aktuell bearbeitete Kategorie. Sobald ein Layout gespeichert wurde, kann es sich nicht mehr durch Positionsänderungen in der Konsole verändern. Ein Hinweis darauf erscheint beim erstmaligen anpassen des Layouts. Wenn zwischen den Kachel leerer Raum entsteht, kann dieser über den Papierkorb entfernt werden.

## Kacheln bearbeiten
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/individualisierung/kacheln-bearbeiten/
_Benötigt Symcon >= 7.0_
Die Darstellung der einzelner Objekte ergibt sich grundsätzlich aus dem Objekttyp und bei Variablen etwa noch durch das Variablenprofil. Näheres hierzu ist im Abschnitt [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) beschrieben. Wie Instanzen Dargestellt werden entscheidet sich durch die untergeordneten Variablen. IP-Symcon wählt automatisch das passende Element aus. Um die Darstellung einer Kachel genauer zu konfigurieren muss diese geöffnet und über den Bleistift in den Bearbeitungsmodus gewechselt werden.

## Designs
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/individualisierung/designs/
_Benötigt Symcon >= 7.0_
Über das Zahnrad rechts in der Appbar kann in den Einstellungen unter Visualisierung zwischen verschiedenen Designs gewechselt werden.
> **Hinweis:** Hintergrund und Textfarbe sowie Schriftart der HTMLBox werden durch das Design beeinflusst.

### Designs bearbeiten

Ab der Version 8.1 können die Designs über den Stift in der Ecke der Kacheln bearbeitet werden. Einzelne Farben können beliebig verändert werden und über "Änderungen Speichern" lokal gespeichert werden. Über die entsprechenden Schaltflächen können die Einstellungen als Datei herunter- und in eine andere Visualisierung hochgeladen werden. Einstellungen können jederzeit über das Pfeil-Symbol zurückgesetzt werden.
### Parameter
| Farbe | Beschreibung |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Akzentfarbe | Die Farbe von bedienbaren Elementen (Schieberegler, Buttons) |
| Kachel | Die Farbe der Kacheln |
| Hintergrund | Die Farbe des Hintergrunds auf dem die Kacheln dargestellt werden |
| Inhalt auf Hintergrund | Die Farbe von Text und Icons, die auf dem Hintergrund dargestellt werden |
| Appbar | Die Farbe der Leiste am oberen Ende des Visualisierung |
| Inhalt auf Appbar | Die Farbe von Text und Icons auf der Appbar |
| Automatische Titelgröße | Die Größe der Titel der einzelnen Kacheln (Pro Kachel: Jede Kachel passt ihre Titelgröße optimal an. Pro Kategorie: Innerhalb einer Kategorie sind alle Titelgrößen einheitlich und orientieren sich an dem kleinsten Titel. Feste Größe: Alle Titel haben eine fete Größe) |
| Feste Titelgröße | Sichtbar bei Automatischer Titelgröße "Feste Größe" (Groß, Mittel, Klein) |
| Inhalt auf Akzent | Die Farbe von Text und Icons auf Bedienelementen in der Akzentfarbe |
| Inhalte auf Standard-Kachel | Die Farbe von Icons und Text den normalen Kacheln |
| Inhalt auf dunkler Kachel | Die Farbe von Texten und Icons auf Kacheln, die durch dynamische Hintergrundfarben dunkler als der Standard sind sind |
| Inhalt auf heller Kachel | Die Farbe von Texten und Icons auf Kacheln, die durch dynamische Hintergrundfarben heller als der Standard sind |
| Fehler Farbe | Die Hintergrundfarbe von Fehler-Bannern und fehlerhaften Kacheln |
| Inhalt auf Fehler | Die Farbe von Texten und Icons auf Fehler-Bannern |
| Ecken Radius | Die Größe der Ecken der Kacheln(Von 0 - spitz bis 10 - sehr abgeflacht) |
## Gitterkonfiguration
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/individualisierung/gitterkonfiguration/
_Benötigt Symcon >= 7.0_
Gitterkonfigurationen ermöglichen verschiedene Darstellungskonfigurationen, basierend auf dem Endgerät. Eine Gitterkonfiguration speichert Position und Größe der Kacheln sowie deren Konfiguration. Dies beinhaltet die Kachelauflösung und die Standardgrößen.

Es gibt drei Gitterkonfigurationen, deren Standardgrößen jeweils auf einen Gerätetyp optimiert sind: Rechner, Tablet und Mobiltelefon. Die passende Gitterkonfiguration wird basierend auf dem Betriebssystem und der Bildschirmgröße gewählt. Bei Bedarf kann die Gitterkonfiguration manuell ausgewählt werden.
### Orientierung
Alle Gitterkonfigurationen speichern die Einstellungen in Kombination mit der Orientierung. Somit können für jede Gitterkonfiguration Konfigurationen für die Portrait und Landschaft Ausrichtung vorgenommen werden. In der App wird die passende Gitterkonfiguration für die aktuelle Orientierung ausgewählt. Im Browser ist nur die Orientierung Landschaft verfügbar.
### Gittereinstellungen
In den Gittereinstellungen können die Standardeinstellungen für die aktuell gewählte Gitterkonfiguration angepasst werden. In der App stehen sowohl die Einstellungen für Portrait als auch für Landschaft zur Verfügung, im Browser ist nur die Orientierung Landschaft anpassbar.

Im Dropdown oben kann ausgewählt werden, wofür die Standardgröße konfiguriert werden soll. Hier stehen alle [Objekt-Darstellungen](https://www.symcon.de/de/llms/components/object-presentation.md) zur Auswahl sowie "Alle Kacheln". Bei der Auswahl von "Alle Kacheln" kann durch Anpassung der Größe der dargestellten Kachel, analog zu [Layout bearbeiten](https://www.symcon.de/de/llms/components/tile-visualization.md), die allgemeine Standardgröße für alle Darstellungen konfiguriert werden. Wird eine Objekt-Darstellung gewählt, kann für diese eine individuelle Standardgröße konfiguriert werden. Der Schalter "Verwende für diesen Kacheltyp die allgemeine Standardgröße" deaktiviert die individuelle Standardgröße und verwendet für diese Objekt-Darstellung somit die allgemeine Standardgröße.
Somit ergibt sich für jede Kachel in der Visualisierung folgende Größe:
* Wurde via [Layout bearbeiten](https://www.symcon.de/de/llms/components/tile-visualization.md) eine individuelle Größe für die Kachel definiert, so wird diese verwendet
* Ist "Verwende für diesen Kacheltyp die allgemeine Standardgröße" deaktiviert, so wird die individuelle Standardgröße für diese Objekt-Darstellung verwendet
* Ist "Verwende für diesen Kacheltyp die allgemeine Standardgröße" aktiviert, so wird die allgemeine Standardgröße für diese Objekt-Darstellung verwendet, welche per "Alle Kacheln" konfiguriert wurde.
Mit dem Regler "Gitterauflösung" kann die Auflösung des Gitters definiert werden, auf welchem die Kacheln platziert werden. Eine höhere Auflösung ermöglicht somit eine detailliertere Anpassung von Breite und Höhe.
Durch Betätigen des Buttons "Gittereinstellungen zurücksetzen" werden die Standardgrößen und die Gitterauflösung wieder auf die Standardwerte passend zur aktuellen Gitterkonfiguration und Orientierung zurückgesetzt.
### Synchronisation
Für die Darstellung einer Gitterkonfiguration gibt es eine Konfiguration auf dem Server, welche für alle Geräte identisch ist, sowie eine lokale Konfiguration, die für jedes Gerät individuell ist. Für die einzelnen Parameter, wird primär der Wert aus der lokalen Konfiguration verwendet. Wurde hier nichts definiert, wird stattdessen der Wert der Serverkonfiguration verwendet. Sollte auch hier kein Wert gesetzt sein, wird der Standardwert passend zur aktuellen Gitterkonfiguration und Ausrichtung verwendet.
Je nach Einstellung innerhalb der Visualisierungsinstanz wird die lokale Konfiguration automatisch oder manuell auf den Server hochgeladen oder ist das Hochladen komplett gesperrt, siehe auch [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md).
### Buttons zur Synchronisation
| Button | Beschreibung |
| ----------------------- | ----------------------------------------------------------- |
| Konfiguration hochladen | Lädt die lokale Konfiguration auf den Server hoch |
| Lokal löschen | Löscht die lokale Konfiguration |
| Global löschen | Löscht die lokale Konfiguration und die Serverkonfiguration |
## Instanzkonfiguration
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/instanzkonfiguration/
_Benötigt Symcon >= 7.0_
#### Startkategorie
Die Ausgewählte Kategorie legt fest von wo aus die Visualisierung aus aufgebaut wird.
#### Begrüẞung anzeigen
Die Begrüßung wird im Startbereich der Visualisierung angezeigt und kann über verschiedene Parameter konfiguriert werden.
| Begrüẞung anzeigen | Beschreibung |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| Automatisch | Der Text wird basierend auf der Tageszeit angepasst und kann optional mit einem Namen erweitert werden. |
| Keine | Die Begrüßung wird ausgeblendet. Wenn keine Favoriten oder Automationen vorhanden sind, wird der gesamte Startbereich ausgeblendet. |
| Variable | Der Begrüßungstext wird auf den Wert einer Variable gesetzt. Der Typ ist hierbei nicht relevant. |
#### Anzeigemodus der Visualisierung
| Anzeigemodus | Beschreibung |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Kacheln (Standard) | Alle Objekte werden als Kacheln dargestellt. Wenn möglich werden [Zusammengefasste Darstellungen](https://www.symcon.de/de/llms/components/object-presentation.md) angezeigt. |
| Kacheln (Liste) | Alle Objekte werden als Kacheln dargestellt. Initial werden alle Instanzen als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) angezeigt. |
| Liste (Legacy) | Alle Objekte werden in einer großen Liste ohne Kacheln dargestellt. |

#### Kategorie Darstellung
Diese Einstellung dient als Grundlage und kann für jede Kategorie individuell [überschrieben werden](https://www.symcon.de/de/llms/components/tile-visualization.md).
| Darstellung | Beschreibung |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Kategorieleiste (Einzeilig) | Alle Unterkategorien der aktuellen Kategorie werden am oberen Bildschirmrand in einer Zeile angezeigt. Geht die Anzahl der Kategorien über die breite des Bildschirms hinaus, kann diese horizontal gescrollt werden. |
| Kategorieleiste (Mehrzeilig) | Alle Unterkategorien der aktuellen Kategorie werden am oberen Bildschirmrand in einer Zeile angezeigt. Geht die Anzahl der Kategorien über die breite des Bildschirms hinaus, werden die Kategorien in mehreren Zeilen dargestellt. |
| Kacheln | Kategorien werden wie alle anderen Objekte als Kacheln angezeigt. Somit können Größe und Position frei verändert werden |
| Nur in Seitenleiste | Die Kategorien werden nur in der [Seitenleiste](https://www.symcon.de/de/llms/components/tile-visualization.md) angezeigt |

#### Konfiguration Synchronisierung
Die Funktionsweise der Synchronisierung wird im Bereich [Gitterkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) erläutert.
| Modus | Beschreibung |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Automatisch | Jede Änderung am Layout wird sofort mit dem Server und dadurch mit allen Geräten synchronisiert |
| Manuell | Lokale Änderungen müssen in den Einstellungen hochgeladen werden, damit sie auch mit anderen Geräten synchronisiert werden können |
| Nur-Lesen | Die Konfiguration kann an Endgeräten nur lokal verändert und nicht auf den Server hochgeladen werden |
### Automationen
Hier kann eine Liste an [Automationen](https://www.symcon.de/de/llms/concepts/automations.md) zusammengestellt werde, welche dann in der Startleiste zur Verfügung stehen.
Jede Automation kann mit einem eigenen Namen und Icon versehen werden.

### Favoriten
Als Favoriten können jegliche Objekte hinzugefügt werden. Diese werden im oberen Bereich des Bildschirms als normale Kacheln angezeigt. In der Variante für große Bildschirme kann auf diese via Herz-Button zugegriffen werden.

### Appbar
Falls nicht genug Platz für die konfigurierten Elemente vorhanden ist, werden überzählige Elemente in einem Menü zusammengefasst.

### Diagrammdarstellung

Hier können die Standardeinstellung für Diagramme festgelegt werden.
Was welcher Begriff genau bedeutet kann unter [Darstellungsarten von Charts](https://www.symcon.de/de/llms/concepts.md) nachgelesen werden.
### Weitere Konfiguration
| Seite | Beschreibung |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [Benachrichtigungen](https://www.symcon.de/de/llms/components/tile-visualization.md) | Erlaubt das Versenden von Push-Nachrichten und Verwalten konfigurierter Geräte. |
| [Sicherheit](https://www.symcon.de/de/llms/components/tile-visualization.md) | Ermöglicht die Einstellung eines Passwortes zur Zugriffskontrolle und einer speziellen IP-AutoStart Funktion. |
| [Virtuelle Hosts](https://www.symcon.de/de/llms/components/tile-visualization.md) | Erlaub das Aufteilen von Visualisierungen auf verschiedene virtuelle Hosts |
## Benachrichtigungen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/instanzkonfiguration/benachrichtigungen/
Der Reiter bietet eine Übersicht über die registrierten Geräte. Es kann ausgewählt werden, ob das jeweilige Gerät Meldungen empfängt.
Auch kann eine Testnachricht verschickt werden.

### Registrierung zum Push-Nachrichten Dienst
Sobald ein Mobilgerät sich in einer Visualisierung das erste Mal erfolgreich einloggt, wird dieses Gerät automatisch zum Push-Nachrichten Dienst für diese Instanz hinzugefügt. Wenn keine Push-Nachrichten an dieses Gerät versendet werden sollen, so muss dieses Gerät explizit für den Empfang in der Liste deaktiviert werden. Zu beachten ist, dass die Registrierung zum Push-Nachrichten Dienst unberührt bleibt, falls das Kennwort für die Visualisierung geändert wird. Wird ein Gerät komplett aus der Liste entfernt, so wird es beim nächsten Login wie ein unbekanntes Gerät behandelt und erneut zum Push-Nachrichten Dienst hinzugefügt.
### Notification Control
Die Nachrichten werden via Notification Control versendet.
Weitere Informationen befinden sich unter [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md) .
## Sicherheit
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/instanzkonfiguration/sicherheit/
Der Zugriff auf eine Visualisierung kann auf verschiedene Arten gesichert werden. Weitere Sicherheitsinformationen können unter [Sicherheit](https://www.symcon.de/de/llms/getting-started.md) eingesehen werden.

### Zugriff
Jede der verfügbaren Zugriffsarten bietet verschiedene Einstellungsmöglichkeiten.
##### Mit Passwort (sicher)
Für jede Visualisierungsinstanz kann ein Passwort als Zugriffschutz vergeben werden. Dieses Passwort wird vor dem Zugriff auf die jeweilige Visualisierung über Browser und die mobilen Apps gefordert. Zusätzlich kann die Spezialoption aktiviert werden, dass das Passwort nicht innerhalb des lokalen Netzwerk gefordert wird. Dieses Passwort gilt nur für den Zugriff auf das System und dessen Komponenten. Die Abfrage der verfügbaren Visualisierungen ist jederzeit ohne Passwort möglich.
##### Ohne Passwort (unsicher)
Ohne Passwort wird der Zugriff von extern standardmäßig blockiert. Soll die Visualisierung allerdings bewusst öffentlich zugänglich sein, kann dies mit der Option "Externen Zugriff erlauben, auch wenn kein Kennwort gesetzt ist" deaktiviert werden.
##### Mit Login (sicher)
> **Hinweis:** Der Zugriff mit Login ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden IP-Symcon Lizenz erworben werden kann. Für eine passende Demo-Version wenden Sie sich bitte an unseren [Support](https://www.symcon.de/de/kontakt/#RBAC%20Erweiterung). Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/ips-enterprise-rbac) erworben werden.
Der Zugriff mit Login erlaubt das Öffnen der Visualisierung nur autorisierten Benutzern oder Benutzern mit einer autorisierten Rolle. Die benötigten Berechtigung für Benutzer und Rollen können über die jeweiligen Schaltflächenvergeben werden. Um eine Visualisierung nur für autorisierten Benutzern anzuzeigen, kann die entsprechende Option aktiviert werden. Nutzer und Rollen können über die [Berechtigungsteuerung](https://www.symcon.de/de/llms/modules/permission-control.md) verwaltet werden.
#### Autostart für IP-Adresse
Eine besondere Funktion ist der Auto-Start, welcher einen Visualisierung direkt ohne Passwortabfrage öffnet, wenn die IP-Adresse mit einer der eingetragenen IP-Adressen in dieser Liste übereinstimmt. Über diese Funktion kann z.B. auf einem Touch-Panel eine Visualisierung direkt geöffnet werden, ohne den normalen Auswahldialog angezeigt zu bekommen und ohne die Passwortabfrage beantworten zu müssen. Es ist zu beachten diese Funktion nur innerhalb eines sicheren Netzwerks zu benutzen.
> **Hinweis:** Es wird auch die CIDR Notation unterstützt, sodass z.B. 192.168.1.0/24 alle Adresse von 192.168.1.1 bis 192.168.1.255 enthält.
> **Achtung:** Diese Funktion steht nicht zur Verfügung, sofern Anfragen an IP-Symcon über einen Reverse-Proxy oder über den Connect-Dienst gehen, da der Ursprung dann nicht sicher und zuverlässig verifiziert werden kann. Eine Ausnahme ist der CIDR Wert 0.0.0.0/0, welcher alle Anfragen unabhängig der Herkunft umleitet und somit grundsätzlich unsicher ist. Dieser wird auch für die o.g. Ausnahmen ausgewertet und leitet somit alle Anfragen unabhängig des Ursprungs weiter.
##### Aufruf über URL
Es gibt Situationen (z.B. in Verbindung mit NAT) bei denen die Autostart via IP nicht funktioniert. In diesen Fällen kann eine URL direkt aufgerufen werden.
```php
// Grundgerüst für den URL Aufruf
http://:3777/#
// Beispiel als Start mit dem Chromium Browser
// VisualisierungInstanzID: = 12345
chromium-browser --start-fullscreen 192.168.1.123:3777/#12345
```
## Virtuelle Hosts
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/instanzkonfiguration/virtuelle-hosts/
> **Hinweis:** Virtuelle Hosts ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz erworben werden kann. Für eine passende Demo-Version wenden Sie sich bitte an unseren [Support](https://www.symcon.de/de/kontakt/#BACnet%20Erweiterung). Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/ips-enterprise-vhosts) erworben werden.
Über Virtuelle Hosts kann eine Liste von Hosts definiert werden, welche auf die Visualisierung zugreifen können. Wird die Visualisierung von einem Host aufgerufen, der nicht in der Liste vertreten ist wird die Visualisierung nicht angezeigt. Ist die Liste leer ist die Visualisierung für alle Hosts sichtbar.

Mit der obigen Konfiguration von zwei Visualisierungen werden die Startseiten wie folgt angezeigt.

## Apps
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/apps/
_Benötigt Symcon >= 7.0_
Die Apps können aus dem jeweiligen Appstore heruntergeladen werden (iOS, [Android](https://play.google.com/store/apps/details?id=de.symcon.visualization)). Die Mobilen Apps unterscheiden sich im Funktionsumfang nicht von der Visualisierung im Browser. Lediglich der Einrichtungsprozess ist ein anderer.
### Verbinden mit der Kachel-Visualisierung über die Apps
Um sich mit einer Visualisierung zu verbinden gibt es drei Möglichkeiten. Diese werden im Folgenden erläutert. Außerdem kann die App direkt in einem Demo-Visualisierung geöffnet werden.
#### Automatische Suche
Wenn das Mobilgerät mit dem selben Netzwerk wie der IP-Symcon Server verbunden ist, kann dieser mit der automatischen Suche gefunden werden. Die erste Kachel zeigt die gefundenen IP-Symcon Server an. Diese können angetippt und anschließend die dazugehörige Visualisierung ausgewählt werden. Wenn für die Visualisierung ein Password gesetzt ist, muss dieses nun eingegeben werden. Sollte es im Netzwerk nur einen IP-Symcon Server mit einer Visualisierung geben wird diese direkt geöffnet.

#### QR-Code
Der zum Scannen benötigte QR-Code kann aus dem Visualisierungs-Widget in der Verwaltungskonsole oder aus einer bereits geöffneten Visualisierung erhalten werden. Um den Code zu scannen müssen die erforderlichen Berechtigungen in der App gewährt werden. Nachdem der Code gescannt wurde, kann die gewünschte Visualisierung ausgewählt und das Password eingegeben werden.

#### Manuell hinzufügen
Um einen IP-Symcon Server manuell hinzuzufügen muss lediglich die IP-Adresse und Port des Servers in das Eingabefeld eingetragen werden. Alternativ kann auch die Connect- oder eine eigen DynDNS-Adresse verwendet werden.

### Einstellungen
Alle eingerichteten Server und Visualisierungen werden auf dem Gerät gespeichert. Über das Zahnrad in der Appbar können unter dem Punkt 'Server' neue Server eingerichtet werden. Wird ein Server ausgewählt, können über den Stift in der unteren rechten Ecke die gespeicherten Visualisierungen bearbeitet werden.

## Browser
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/kachel-visualisierung/browser/
_Benötigt Symcon >= 7.0_
### Verbinden mit der Kachel-Visualisierung im Browser
Die Kachel-Visualisierung kann via "[ServerIP]:3777/" in einem Browser aufgerufen werden. Sollte noch die WebFront-Visualisierung als Standard eingestellt sein, so kann die Kachel-Visualisierung über "[ServerIP]:3777/tile/" erreicht werden.
### Visualisierung auswählen

Im Browser erscheint dann eine Liste der auf diesem Server verfügbaren Visualisierungen. Ist eine Visualisierung passwortgeschützt, wird dies mit einem Schloss-Icon symbolisiert. Mit einem Klick kann die zu öffnende Visualisierung ausgewählt werden. Ist die Visualisierung nicht passwortgeschützt, wird sie direkt geöffnet.

Ansonsten erscheint ein Textfeld zur Eingabe des Passwortes. Dort muss das Passwort eingegeben und abschließend mit Enter bestätigt werden. Ist das Passwort korrekt, öffnet sich dann die Visualisierung.
---
# WebFront Visualisierung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/
> **Achtung:** Das WebFront wird weiterhin unterstützt. Allerdings gibt es seit der 7.0 die [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) als modernere Visualisierung. Auch wenn das WebFront immer noch nutzbar ist und bezüglich Fehlern und Kompatibilität weiter gepflegt wird, erhält es keine neuen Features mehr. Es wird empfohlen, die neue Kachel Visualisierung zu verwenden.
> **Hinweis:** Das WebFront muss nicht konfiguriert werden und ist ohne jegliche erweiterte Einstellungen vollständig benutzbar. Alle hier vorgestellten Möglichkeiten sind optional und können von erfahrenen Benutzern verwendet werden, um die Visualisierung noch besser an Ihre Bedürfnisse anzupassen.
Das WebFront bietet eine einfache und ansprechende Möglichkeit, Geräte anzuzeigen und zu schalten, Bilder anzuzeigen und Skripte auszuführen.
### WebFront Versionen
| Version | Beschreibung |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| WebFront | Die HTML5 Version vom WebFront lässt sich mit den aktuellen Versionen der gängigsten Webbrowser aufrufen und bedienen. Dazu gehören: * Google Chrome (64+) [offiziell empfohlen] * Mozilla Firefox (58+) * Apple Safari (OS X 11.1+) * Opera (50+) * Microsoft Edge (42+) * Microsoft Internet Explorer (11+) * Apple iOS (10.0+) * Google Android (6.0+) |
| Mobile (iOS) | IP-Symcon Mobile ist eine native App, die direkt über den AppStore heruntergeladen werden kann. Es werden alle iOS-Geräte unterstützt, die iOS 10.x oder neuer installiert haben. IP-Symcon Mobile für iPhone, iPod touch und iPad im iTunes App Store |
| Mobile (Android) | Das Android Gegenstück zu IP-Symcon Mobile ist auch eine native App, die direkt über Google Play heruntergeladen werden kann. IP-Symcon Mobile für Android Geräte bei Google Play |
### Einrichtung
Um ein WebFront einzurichten muss ein WebFront Konfigurator vorhanden sein. Standardmässig wird mit der Installation ein WebFront erstellt und befindet sich im Objektbaum unter "Visualisierung Instanzen".

Sollen weitere WebFront eingerichtet werden, so kann dieses im Objektbaum über das "+" -> "Instanz" -> "WebFront Visualization" hinzugefügt werden. Dies erstellt eine neue WebFront Visualisierung, welche komplett individuell konfiguriert werden kann.
### Konfiguration
Grundsätzlich läuft das WebFront ohne weitere Konfiguration. Es können allerdings diverse Einstellungen gemacht werden. Die entsprechende Dokumentation kann den Unterseiten von diesem Dokument entnommen werden. Die generelle, versionsübergreifende Konfiguration wird weiter unten beschrieben.
Eine Auswahl von Icons für Objekte im WebFront ist unter WebFront [Icons](https://www.symcon.de/de/llms/components/icons.md) zu finden.
### Konfiguration öffnen
Die Konfiguration kann durch einen Doppelklick im Objektbaum auf die WebFront Visualisierung geöffnet werden.

Informationen über die einzelnen Einstellungen und Konfigurationsmöglichkeiten kann unter [WebFront](https://www.symcon.de/de/llms/components/webfront-visualization.md) gefunden werden.
### Visualisierungen
In IP-Symcon Basic ist eine Visualisierung verfügbar, die jedoch nur sehr eingeschränkt verändert werden kann. In der IP-Symcon Professional Edition können insgesamt bis zu fünf WebFront Visualisierungen erstellt werden, die eigenständig über die WebFront-Startseite aufgerufen und bei Bedarf mit einem Passwort abgesichert werden können. Eine Visualisierung kann als eigenständige Einheit - für z.b. ein Visualisierungsobjekt - erstellt werden, eine spezielle Ansicht für den Wartungstechniker darstellen oder einfach nur eine sicherheitsspezifische Trennung erzeugen. Pro Visualisierung sind dieselben Optionen verfügbar und können beliebig angepasst werden. In der Unlimited Edition sind beliebig viele Visualisierungen erstellbar.
## Web
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/
_Benötigt Symcon >= 3.0_
> **Achtung:** Die Möglichkeit zur Konfiguration des WebFronts benötigt eine __IP-Symcon Professional__ oder __IP-Symcon Unlimited__ Edition
> **Achtung:** Im WebFront können nur Objekte angezeigt und hinzugefügt werden, welche zuvor in der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) erstellt wurden. Der WebFront Editor hat keine Möglichkeit neue Kategorien oder Objekte zu erstellen. Er dient nur dazu vorhandene Objekte nach eigenen Vorstellungen zu arrangieren.
> **Hinweis:** Skripte, die durch das WebFront ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
> **Hinweis:** Es wird empfohlen im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) die Struktur des WebFronts mit Links aufzubauen. Diese können dann via [Kategorie](https://www.symcon.de/de/llms/concepts.md) im [WebFront-Editor](https://www.symcon.de/de/llms/components/webfront-visualization.md) ausgewählt werden.
### Bedienung
Am oberen Bildschirmrand können im WebFront eingerichtete Elemente ausgewählt werden. Dies sind standardmäßig IP-Symcon zur Gebäudesteuerung und Wetter zur Anzeige der aktuellen Wetterdaten und Voraussagen des Deutschen Wetterdienstes. Ein Klick auf einen Modulnamen zeigt dieses im Mittelteil an. Der aktuelle Modulname wird heller hinterlegt. Im Mittelteil werden die Hauptelemente eines Moduls angezeigt. Die weiteren Leisten am oberen Bildschirmrand bieten Steuerungsmöglichkeiten zur aktuell ausgewählten Kategorie.
### WebFront-Editor
[Video](https://www.youtube.com/embed/523XW-o7d1k?rel=0&cc_load_policy=1)
### Konfigurieren
Die Konfiguration ist in mehrere Teile aufgeteilt. In jedem Reiter können verschiedene Einstellungen angepasst werden. In diesem Artikel werden primär die Einstellungsmöglichkeiten für das normale WebFront vorgestellt.
In den einzelnen Reitern können folgende Einstellungen angepasst werden:
| Reiter | Beschreibung |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| [Editor](https://www.symcon.de/de/llms/components/webfront-visualization.md) (ab 5.0) | Startet den WebFront Editor |
| [Darstellung](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Konfiguration von einem Titel und Icon im Login-Birdschirm |
| [Sicherheit](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Ermöglich die Einstellung eines Passwortes zur Zugriffskontrolle und einer speziellen IP-AutoStart Funktion |
| [Benachrichtigungen](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Erlaubt das Versenden von Test-Nachrichten an konfigurierte Geräte und das Löschen. |
| [Struktur](https://www.symcon.de/de/llms/components/webfront-visualization.md) (bis 4.4) | Konfiguration der einzelnen Elemente aus denen ein WebFront besteht |
### Weiteres WebFront einrichten
> **Achtung:** Um mehr als ein WebFront zu nutzen wird eine __IP-Symcon Professional__ oder __IP-Symcon Unlimited__ Edition benötigt.
Im Widget-Bereich "Visualisierung" in der Verwaltungskonsole kann die jeweilige WebFront Visualisierung geöffnet werden.
Um eine neue Visualisierung und somit ein neues WebFront zu erstellen, kann man im Objektbaum auf "+" -> "Instanz" klicken. Der Name der Visualisierungs-Instanz ist auch der Anzeigename des WebFronts im Browser.
## Benachrichtigungen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/benachrichtigungen/
Der Reiter bietet eine Übersicht über die registrierten Geräte. Es kann ausgewählt werden, ob das jeweilige Gerät Meldungen empfängt.
Auch kann eine Testnachricht verschickt werden.

### Registrierung zum Push-Nachrichten Dienst
Sobald ein Mobilgerät sich in einem WebFront das erste Mal erfolgreich einloggt, wird dieses Gerät automatisch zum Push-Nachrichten Dienst für diesen Konfigurator hinzugefügt. Wenn keine Push-Nachrichten an dieses Gerät versendet werden sollen, so muss dieses Gerät explizit für den Empfang im Konfigurator deaktiviert werden. Zu beachten ist, dass die Registrierung zum Push-Nachrichten Dienst unberührt bleibt, falls das Kennwort für den Konfigurator geändert wird oder der Mobilzugriff komplett deaktiviert wird. Wird ein Gerät komplett aus der Liste entfernt, so wird es beim nächsten Login wie ein unbekanntes Gerät behandelt und erneut zum Push-Nachrichten Dienst hinzugefügt.
### Notification Control
Die Nachrichten werden via Notification Control versendet.
Weitere Informationen befinden sich unter [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md) .
## Darstellung
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/darstellung/
### Darstellung
Die Darstellung kümmert sich um das Aussehen und mögliche Standardeinstellungen des WebFronts.

### Name, Icon, Sichtbarkeit
Über "Konfigurieren" können verschiedene Standardeinstellung ausgewählt werden.
### Skin
Ab IP-Symcon 3.0 ist es möglich das WebFront über Skins zu gestalten. Weitere Informationen sind im [Skin Control](https://www.symcon.de/de/llms/modules/skin-control.md).
### Verschachtelung
Diese Option ist seit IP-Symcon 5.5 standardmäßig aktiviert und ermöglicht die Darstellung von Verschachtelung (z.B. Instanzen unterhalb von Instanzen). Die mobilen Apps in der Version 5.5 und neuer unterstützen diese Option ebenfalls. Diese Option kann nach dem Aktivieren nicht mehr deaktiviert werden, da diese langfristig entfernt werden soll.
### Standardeinstellung für Popup-Graphen
Hier kann eine Standardauswahl für Graphen im Popupfenster festgelegt werden.
Was welcher Begriff genau bedeutet kann unter [Darstellungsarten von Charts](https://www.symcon.de/de/llms/concepts.md) nachgelesen werden.
## Editor
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/
Über den Button "WebFront Editor öffnen" unter "Editor" im WebFront Konfigurator kann der Editor gestartet werden.

> **Achtung:** Um den WebFront Editor vollständig nutzen zu können muss mindestens eine Professional Lizenz vorhanden sein. Ansonsten ist der Umfang extrem reduziert.
### Verwendung des Editors

Im Editor wird das [WebFront](https://www.symcon.de/de/llms/components/webfront-visualization.md) wie gewohnt angezeigt und ist um Konfigurationselemente erweitert. So kann durch einen Klick auf das Plus ein weiteres [Element](https://www.symcon.de/de/llms/components/webfront-visualization.md) hinzugefügt werden. Hinzugefügte Elemente können über einen Klick auf den Stift konfiguriert werden. Es öffnet sich ein Dialog, in dem die Parameter des Elements eingestellt werden können. Die einzelnen Parameter der verschiedenen Elemente sind auf den einzelnen Dokumentationsseiten erklärt. Nach einer Anpassung der Parameter werden diese durch einen Klick auf den Haken im Dialog übernommen. Alternativ kann ein Element im Konfigurationsdialog auch durch einen Klick auf den Mülleimer gelöscht werden. Abschließend müssen die Änderungen durch einen Klick auf den grünen Haken oben links bestätigt werden, ansonsten werden sie nicht gespeichert.
### Übersicht der verfügbaren Elemente
| Element | Beschreibung |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Kategorie](https://www.symcon.de/de/llms/concepts.md) | Über dieses Element lässt sich eine Kategorie und all seine Unterobjekte im WebFront anzeigen. Die ID der anzuzeigenden Kategorie kann über den Startkategorie Parameter verändert werden. |
| [Graph](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über dieses Element werden die im Archiv Modul eingestellten Graphen direkt angezeigt. Normalerweise können Graphen über das Icon links vom Wert der Variable aufgerufen werden. Falls Graphen direkt in z.B. [Menüleisten](https://www.symcon.de/de/llms/components/webfront-visualization.md) oder [Seitenteiler](https://www.symcon.de/de/llms/components/webfront-visualization.md) eingebettet werden sollen, kann dies über das Graphen Element geschehen. |
| [Externe Seite](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Dieses Element fügt eine externe Seite in das WebFront über ein IFrame ein. Die Parameter-URL und Intervall sind verfügbar. |
| [Inhaltswechsler](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über den Inhaltswechsler können mehrere [Bilder](https://www.symcon.de/de/llms/concepts.md), [Streams](https://www.symcon.de/de/llms/concepts.md), [HTML-Boxen](https://www.symcon.de/de/llms/components/object-presentation.md), [Text-Boxen](https://www.symcon.de/de/llms/components/object-presentation.md) oder Mail-Instanzen([IMAP](https://www.symcon.de/de/llms/modules/imap.md), [POP3](https://www.symcon.de/de/llms/modules/pop3.md)) innerhalb einer Seite umgeschaltet werden. |
| [Seitenteiler](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über Seitenteiler kann die WebFront-Ansicht in zwei Teile aufgespaltet werden und in jeden Teil ein beliebig anderes Element eingefügt werden. Wenn Seitenteiler in Seitenteiler eingefügt werden, kann somit z.B. ein QuadView nachgebildet werden. |
| [Menüleiste](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über Menüleisten können im oberen Bereich benutzerdefinierte Menüleisten erstellt werden, die auf weitere Elemente verweisen. |
| [Wetter (DWD)](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Zeigt das Wetter des DWD mit der Möglichkeit an, einzelne Bereiche Deutschands genauer auszuwählen und zwischen einem normalen Bild oder einem Radarbild zu wechseln. |
| [Uhrzeit Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Zeigt die aktuelle Uhrzeit an. |
| [Info Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Kann entweder dazu verwendet werden ein statisches Icon anzuzeigen oder verknüpft mit einer Variable deren Inhalt/Icon, welcher/welches je nach Variablenwert unterschiedlich sein kann. |
| [Logout Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Dieses Element fügt ein Widget hinzu, über das man zum Auswahlbildschirm der WebFronts zurückgeleitet wird. |
| [Idle Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Dieses Element fügt ein unsichtbares Widget hinzu, welches nach einer Zeit Untätigkeit auf eine bestimmte Seite wechselt. |
## Externe Seite
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/externe-seite/
Dieses Element ermöglicht die Anzeige externer Webseiten. Es sind sowohl lokal gespeicherte Seiten, als auch externe Internetseiten darstellbar. Auch ist es möglich, die Seite automatisch in einem bestimmten Intervall aktualisieren zu lassen.

### Externe Internetseiten
Externe Internetseiten sind im normalen URL-Format anzugeben, also z.B. [https://www.symcon.de](https://www.symcon.de).
### Eigenschaften
* __Titel:__ Titel für das Element in der Menüleisten-Navigation. Standardmäßig wird “Externe Seite” angezeigt.
* __Icon:__ Icon, das in der Menüleisten-Navigation neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt.
* __URL:__ Hier ist die Adresse der Seite anzugeben, deren Inhalt angezeigt werden soll.
* __Intervall:__ Optional kann hier das automatische Aktualisierungsintervall für die Seite in Sekunden angegeben werden.
* __Sicherheit:__ Optional kann das Sandboxing deaktiviert werden. Dies kann in einigen Fällen dazu führen, dass die externe Seite euer WebFront deaktiviert und sich selbst in voller Größe darstellt.
## Graph
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/graph/
Der Vollbild-Graph wird direkt im WebFront eingerichtet.
Er ermöglicht die Anzeige einer einzelnen geloggten [Variable](https://www.symcon.de/de/llms/concepts.md) oder eines Medienobjekts vom Typ [Chart](https://www.symcon.de/de/llms/concepts.md) .

### Eigenschaften
* __Titel:__ Titel für das Element in der TabPane-Navigation. Wird kein eigener Wert angegeben, so wird automatisch der Objektname der gewählten Variablen angezeigt.
* __Icon:__ Icon, das in der TabPane-Navigation neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt.
* __Zeitspanne:__ Der Anzeigebereich des Graphen kann hier auf Stunde, Tag, Woche, Monat oder Jahr gesetzt werden.
* __Variable:__ Hier ist eine geloggte Variable oder Chart-Mediendatei für die Anzeige auszuwählen.
* __Zeige Extremwerte:__ Gibt an, ob der Graph mit oder ohne Extremwertkurven, falls verfügbar, angezeigt wird.
* __Dynamische Skalierung:__ Wird die dynamische Skalierung aktiviert, so wird der Graph dynamisch entsprechend des minimalen und des maximalen Werts im Zeitbereich skaliert. Andernfalls erfolgt die Skalierung entsprechend des im Variablenprofil der gewählten Variable angegebenen Minimums und Maximums.
* __Hohe Dichte:__ Erhöht die Datenpunktdichte, wodurch der Graph genauer wird. Funktioniert nur mit Line-Charts oder geloggten Variablen auf "Standard"-Logging.
* __Zeige Legende:__ Schaltet die Legende Ein/Aus.
* __Intervall (Sek.):__ Der dargestellte Graph wird automatisch entsprechend dem hier eingestellten Intervall in Sekunden aktualisiert. Standardmäßig geschieht dies alle 300 Sekunden.
## Idle Widget
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/idle-widget/
Das Idle-Widget bietet die Möglichkeit im Widget-Bereich einer Menüleiste einen unsichtbaren Timer zu erstellen. Dieser ist nur im Editormodus sichtbar und wechselt nach einer einstellbaren Zeit Untätigkeit die angezeigte Seite.
> **Achtung:** [Seitenteiler](https://www.symcon.de/de/llms/components/webfront-visualization.md) und die [Menüleisten](https://www.symcon.de/de/llms/components/webfront-visualization.md) selbst können nicht direkt angesprungen werden. Dies sind rein optische Elemente. Elemente innerhalb des [Seitenteiler](https://www.symcon.de/de/llms/components/webfront-visualization.md) oder z.B. hinzugefügte Kategorien in der [Menüleisten](https://www.symcon.de/de/llms/components/webfront-visualization.md) können ausgewählt werden.
### Eigenschaften

* __Timeout (sec):__ Nach welcher Zeit Untätigkeit auf die eingestellte Seite gewechselt werden soll.
* __Page:__ Die Seite auf welche gewechselt werden soll.
## Info Widget
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/info-widget/
Das Info-Widget bietet die Möglichkeit im Widget-Bereich einer Menüleiste, ein festes Icon, ein dynamisches Icon zu einer Variable oder einen textuellen Variablenwert anzuzeigen. Zusätzlich kann ein Skipt ausgewählt werden, das beim Anklicken des Widgets ausgeführt wird.
### Anzeigevarianten
| Icon-Darstellung | Text-Darstellung |
| ------------------------------------ | ------------------------------------ |
|  |  |
* Ein festes Icon kann mit der Eigenschaft Icon zur Anzeige ausgewählt werden. Hierbei ist zu beachten, dass weder Typ noch Variable angegeben werden dürfen.
* Ein dynamisches Icon wird angezeigt, wenn eine Variable angegeben und Typ auf Icon gesetzt ist. Welches Icon angezeigt wird und welche Icons standardmäßig verfügbar sind, ist unter [Icons](https://www.symcon.de/de/llms/components/icons.md) beschrieben. Soll das Icon “Transparent” angezeigt werden, so wird das Widget ausgeblendet. Auf diese Weise lassen sich Informations-Icons dynamisch einblenden, z.B. wenn ein Gerät einen Batteriewechsel benötigt.
* Der aktuelle Variablenwert wird textuell anhand des der Variable zugeordneten [Variablenprofils](https://www.symcon.de/de/llms/concepts.md) formatiert, wenn eine Variable angegeben ist und der Typ auf Text eingestellt ist.
### Eigenschaften
* __Icon:__ Hier kann ein festes Icon zur Darstellung ausgewählt werden.
* __Typ:__ Der Typ bestimmt, ob eine Variable als Text oder als Icon dargestellt werden soll.
* __Variable:__ Hier kann eine Variable ausgewählt werden, die entsprechend des gewählten Typs dargestellt wird.
* __Bei Klick:__ Ein Skript, das bei Klick auf das Widget ausgeführt wird, lässt sich hier einstellen.
## Inhaltswechsler
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/inhaltswechsler/
Der Inhaltswechsler dient zur Anzeige folgender Objekte:
* Email-Instanzen ([IMAP](https://www.symcon.de/de/llms/modules/imap.md), [POP3](https://www.symcon.de/de/llms/modules/pop3.md))
* String-Variablen mit Variablenprofil [~TextBox](https://www.symcon.de/de/llms/components/object-presentation.md) oder [~HTMLBox](https://www.symcon.de/de/llms/components/object-presentation.md)
* Medien-Objekte vom Typ [Bild](https://www.symcon.de/de/llms/concepts.md) oder [Stream](https://www.symcon.de/de/llms/concepts.md)
### Darstellung

Wird ein darstellbares Objekt direkt im Konfigurator als Quellobjekt zur Anzeige ausgewählt, so wird auch nur dieses Objekt angezeigt. Andernfalls werden alle darstellbaren direkten Unterobjekte des ausgewählten Quellobjekts zur Anzeige ausgewählt. Wird dabei mehr als ein darstellbares Unterobjekt gefunden, so wird eine Auswahlleiste zum Umschalten zwischen den Unterobjekten eingeblendet. Bei editierbaren String-Variablen vom Typ ~TextBox erscheint dabei auch ein Button, um das On-Screen-Keyboard zum Bearbeiten des Textes aufzurufen. Das Umschalten zwischen den darzustellenden Objekten kann auch automatisch erfolgen, wenn ein Änderungsintervall angegeben wird.
### Eigenschaften
* __Titel:__ Titel für das Element in der Menüleisten-Navigation. Wird kein eigener Wert angegeben, so wird automatisch der Objektname des gewählten Quellobjekts angezeigt.
* __Icon:__ Icon, das in der Menüleisten-Navigation neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt.
* __Quellobjekt:__ Das Objekt, das direkt angezeigt werden soll oder dessen Unterobjekte angezeigt werden sollen.
* __Änderungsintervall:__ Intervall in Sekunden, in dem automatisch zwischen den darzustellenden Objekten gewechselt wird. Der Standardwert von "0" deaktiviert die Funktion.
* __Hochskalieren:__ Gibt an, ob anzuzeigende Bilder automatisch hochskaliert werden, wenn Platz verfügbar ist. Standardmäßig wird nicht hochskaliert.
* __Runterskalieren:__ Ist diese Option aktiviert, werden Bilder, wenn nicht genügend Platz verfügbar ist, automatisch runterskaliert. Die Option ist standardmäßig aktiviert.
* __Seitenverhältnis beibehalten:__ Sofern Hochskalieren oder Runterskalieren aktiviert ist, ist mit dieser Option einstellbar, ob das Seitenverhältnis der zu skalierenden Bilder beim Skalieren beibehalten wird, oder nicht. Standardmäßig wird das Seitenverhältnis beibehalten.
## Kategorie
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/kategorie/
Das Kategorie-Element ermöglicht die Anzeige der Objekte, die sich in einer Kategorie befinden, sowie die Navigation in Unterkategorien.

### Objektbereich
Im Objektbereich werden die Unterobjekte der zur Ansicht ausgewählten Kategorie dargestellt. Nähere Informationen und mögliche Darstellungsarten, sind im Bereich [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
### Navigationsleiste
Sofern die angezeigte Kategorie sichtbare Unterkategorien hat, wird automatisch eine Kategorie-Navigationsleiste angezeigt. Wird über die Navigation eine Unterkategorie ausgewählt, so wird im Objektbereich deren Inhalt dargestellt. Besitzt eine so angezeigte Kategorie ebenfalls sichtbare Unterkategorien, so wird die Navigation automatisch erweitert. Selbstverständlich werden auch per Link-Objekt verknüpfte Kategorien in der Navigationsleiste angezeigt. Über die Eigenschaft “Zeige Navigation” lässt sich die Kategorieleiste bei Bedarf ausblenden.
### Eigenschaften
* __Titel:__ Titel für das Element in der Menüleisten-Navigation. Wird kein eigener Wert angegeben, so wird automatisch der Objektname der gewählten Startkategorie gesetzt. Wird der Wert gesetzt, aber der Text leer gelassen, so wird der Titel nicht angezeigt.
* __Icon:__ Icon, das in der Menüleisten-Navigation neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt.
* __Startkategorie:__ Kategorie, deren Inhalt vom Element dargestellt wird. Standardmäßig wird die Hauptkategorie mit "ID 0" angezeigt.
* __Zeige Navigation:__ Mit dieser Option lässt sich steuern, ob die Navigationsleiste angezeigt wird, sofern sich unterhalb der Startkategorie Unterkategorien befinden. Standardmäßig wird die Navigationsleiste angezeigt.
### Besonderheiten
* Wird der Titel auf einen leeren Text gesetzt und kein Icon angegeben, so wird das Kategoriemodul in der Navigation nicht angezeigt, bleibt aber über [WFC_SwitchPage](https://www.symcon.de/de/llms/modules/webfront-visualization.md) erreichbar.
* Soll eine Kategorie im WebFront zwar mit Icon aber ohne Titel angezeigt werden, muss ein Leerzeichen im Titel (" ") angegeben werden.
## Logout Widget
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/logout-widget/
Das Logout-Widget bietet die Möglichkeit im Widget-Bereich einer Menüleiste, einen Button anzuzeigen. Bei Benutzung wird man auf den WebFront-Login zurückgebracht.
### Eigenschaften
* __Timeout (Sek.):__ Timeout, welches bei Inaktivität automatisch einen Logout ausführt. Bei Wert = 0 ist dieser ausgeschaltet.
## Menüleiste
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/menueleiste/
Das Menüleiste ist ein Element, das die Navigation zwischen allen anderen Typen von Elementen ermöglicht, sowie Widgets darstellen kann.
### Darstellung

Am oberen Rand der Menüleiste befindet sich eine Navigationsleiste, darunter der Inhaltsbereich. In der Navigationsleiste werden auf der linken Seite zunächst, sofern gewählt, das _“Untericon”_ und der _“Untertitel”_ angezeigt. Rechts daneben folgt der Navigationsbereich, der für alle den Menüleisten untergeordneten Elemente anklickbare Felder mit deren Icon und Titel, sofern eingestellt, anzeigt. Durch Anklicken eines Feldes wird im Inhaltsbereich der Menüleiste der Inhalt des zugeordneten Elements angezeigt. Am linken Rand der Navigationsleiste befindet sich der Widget-Bereich, in dem alle der Menüleiste untergeordneten Widgets angezeigt werden.
Die Menüleiste wird aufgrund der gebotenen Navigationsfähigkeiten in der Regel als das oberste Element einer WebFront-Konfiguration verwendet. Selbstverständlich kann die Menüleiste dabei auch weitere Menüleisten aufnehmen.
Reicht die Bildbreite nicht aus, um alle Navigationsfelder anzuzeigen, so werden automatisch anklickbare Pfeile zum Scrollen des Navigationsbereichs eingeblendet. Die Breite des Navigationsbereichs verkleinert sich dabei bis auf 100 Pixel. Danach wird der Widget-Bereich verkürzt.
### Eigenschaften
* __Titel:__ Titel der Menüleiste in der Navigation einer gegebenenfalls übergeordneten Menüleiste. Standardmäßig wird "Menüleiste" angezeigt.
* __Icon:__ Icon, das in der Navigation einer gegebenenfalls übergeordneten Menüleiste neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt.
* __Untertitel:__ Text, der am linken Rand der Navigationsleiste angezeigt wird. Standardmäßig wird kein Text angezeigt.
* __Untericon:__ Icon, das am linken Rand der Navigationsleiste angezeigt wird. Standardmäßig ist kein Icon ausgewählt.
## Seitenteiler
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/seitenteiler/
Der Seitenteiler ist ein Layout-Element, das zwei Unterelemente horizontal oder vertikal aufgeteilt darstellen kann. Auf diese Weise lassen sich z.B. ein Inhalt-Wechsler für die Kamera-Ansicht neben einer Kategorie anzeigen. Da unterhalb eines Seitenteiler auch weitere Layout-Elemente wie andere seitenteiler und Menüleisten eingefügt werden können, ist eine individuelle Layout-Anpassung des WebFronts möglich.

### Aufteilung der Unterelemente
Mit der Eigenschaft "Aufteilung" lässt sich einstellen, ob die beiden Unterelemente des Seitenteilers übereinander angezeigt werden sollen (horizontale Aufteilung), oder nebeneinander (vertikale Aufteilung). Wie viel Platz die Unterelemente bekommen, wird nun über die Eigenschaften _"Größe"_, _"Größeneinheit"_ und _"Verhältnis Ziel"_ bestimmt. Mit _"Verhältnis Ziel"_ lässt sich bestimmen, ob man sich bei dem über _"Größe"_ und _"Größeneinheit"_ einstellbaren Wert auf das erste oder zweite Unterelement beziehen möchte. Das angezielte Element bekommt dann den Platz zugewiesen, der über die Eigenschaft _"Größe"_ in der eingestellten _"Größeneinheit"_ angegeben ist.
### Beispiel
Es soll ein Bild mit einer Bildbreite von 640 Pixeln rechts neben einer Kategorie angezeigt werden. Hierzu gibt man dem Seitenteiler für die Eigenschaft "Aufteilung" den Wert Vertikal, setzt das _"Verhältnis Ziel"_ auf zweites Element, _"Größe"_ auf 640 und _"Größeneinheit"_ auf Pixel. Nun erstellt man im WebFront-Konfigurator unterhalb des Seitenteilers ein Unterelement vom Typ Kategorie und ein Unterelement vom Typ Inhalt-Wechsler. Bei den Unterelementen ist die Positions so einzustellen, dass die Kategorie Position 0 und der Inhalt-Wechsler Position 1 erhält. Nun können die Unterelemente so konfiguriert werden, dass die gewünschte Kategorie und das gewünschte Bild angezeigt werden.
### Eigenschaften
| Eigenschaft | Beschreibung |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Titel | Der Titel für das Element in der Menüleisten-Navigation. Standardmäßig wird "Seitenteiler" angezeigt. |
| Icon | Das Icon, welches in der Menüleisten-Navigation neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt. |
| Aufteilung | Hier lässt sich auswählen, ob die Trennung der beiden Unterelemente horizontal oder vertikal erfolgen soll. Standardmäßig wird horizontal getrennt. |
| Größe | Die Größe des für die Aufteilung gewählten Unterelements entsprechend der Größeneinheit. Der Standardwert ist 50. |
| Größeneinheit | Hier kann ausgewählt werden, ob sich die Größe auf Prozent oder auf Pixel bezieht. Standardmäßig werden Prozent genommen. |
| Hautpelement | Über diese Eigenschaft lässt sich auswählen, ob das erste oder das zweite Unterelement des Seitenteilers entsprechend der angegebenen Größenangabe angezeigt wird. Standardmäßig ist das erste Element ausgewählt. |
| Rand anzeigen | Mit dieser Eigenschaft lässt sich der standardmäßig zur Trennung der Unterelemente angezeigte Rand ein- oder ausblenden. |
## Uhrzeit Widget
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/uhrzeit-widget/
Das Uhrzeit-Widget ermöglicht die Anzeige des aktuellen Datums und der aktuellen Uhrzeit im Widget-Bereich einer Menüleiste. Sofern kein benutzerdefiniertes Anzeigeformat eingestellt ist, richtet sich die Darstellung nach der im Webbrowser eingestellten Landessprache. Es kann dabei für das Datumsformat und das Zeitformat jeweils zwischen den Standardformatierungen "Versteckt", "Kurz", "Mittel", "Lang" und "Komplett" gewählt werden. Das benutzerdefinierte Format ist bei Bedarf, entsprechend der datePattern-Tabelle unter [dojotoolkit.org/reference-guide/dojo/date/locale/format.html](http://dojotoolkit.org/reference-guide/dojo/date/locale/format.html) einzugeben.

### Eigenschaften
* __Datumsformat:__ Hier kann ein vordefiniertes Muster für die Formatierung des Datums ausgewählt werden.
* __Zeitformat:__ Wie auch beim Datumsformat lässt sich hier ein vordefiniertes Muster für die Formatierung der Uhrzeit auswählen.
* __Benutzerdefiniertes Format:__ Optional kann hier ein benutzerdefiniertes Format angegeben werden.
## Wetter (DWD)
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/editor/wetter-dwd/
Das Wetter-Element ermöglicht die Anzeige der Wettervorhersage des Deutschen Wetterdienstes für Deutschland und die einzelnen Bundesländer in Text und Bild.

### Navigationsleiste
Im oberen Bereich befindet sich die Navigationsleiste. Hier lässt sich, sofern über die Eigenschaft “Region” eingestellt, zwischen dem Wetterbericht für Deutschland und dem gewählten Bundesland wechseln. Zusätzlich lässt sich der Vorhersagezeitraum zwischen Heute, Morgen, 3. Tag und 4. Tag wechseln.
### Vorhersagebereich
Im Vorhersagebereich ist rechts der Vorhersagetext zu lesen und links daneben eine passende Wetterkarte.
### Eigenschaften
* __Titel:__ Titel für das Element in der Menüleisten-Navigation. Standardmäßig wird “Wetter” angezeigt.
* __Icon:__ Icon, das in der Menüleisten-Navigation neben dem Titel angezeigt wird. Standardmäßig wird kein Icon angezeigt.
* __Region:__ Optional kann hier ein Bundesland ausgewählt werden, dessen Wettervorhersage sich anstelle der deutschlandweiten Vorhersage in der Navigationsleiste anzeigen lässt.
## Sicherheit
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/sicherheit/
In diesem Reiter kann eine Passwortabfrage für das WebFront und dessen Editor eingerichtet werden.
Weitere Sicherheitsinformationen können unter [Sicherheit](https://www.symcon.de/de/llms/getting-started.md) eingesehen werden.

### Erfordere Passwort
Für jeden Konfigurator kann ein Passwort als Zugriffschutz vergeben werden. Dieses Passwort wird vor dem Zugriff des jeweiligen Konfigurators gefordert, oder bei der Konfiguration innerhalb der mobilen Apps. Zusätzlich kann die Spezialoption aktiviert werden, dass das Passwort nicht innerhalb des lokalen Netzwerk gefordert wird. Dieses Passwort gilt nur für den Zugriff auf das System und dessen Komponenten. Die Abfrage der verfügbaren Konfiguratoren (Mobile) und der WebFront-Startseite (Übersicht) ist jederzeit ohne Passwort möglich.
### Autostart für IP-Adresse
Eine besondere Funktion ist der Auto-Start, welcher einen Konfigurator direkt ohne Passwortabfrage öffnet, wenn die IP-Adresse mit einer der eingetragenen IP-Adressen in dieser Liste übereinstimmt. Über diese Funktion kann z.B. auf einem Touch-Panel ein WebFront direkt geöffnet werden, ohne den normalen Auswahldialog angezeigt zu bekommen und ohne die Passwortabfrage beantworten zu müssen. Es ist zu beachten diese Funktion nur innerhalb eines sicheren Netzwerks zu benutzen.
> **Hinweis:** Ab IP-Symcon 5.5 wird auch die CIDR Notation unterstützt, sodass z.B. 192.168.1.0/24 alle Adresse von 192.168.1.1 bis 192.168.1.255 enthält.
> **Achtung:** Diese Funktion steht nicht zur Verfügung, sofern Anfragen an IP-Symcon über einen Reverse-Proxy oder über den Connect-Dienst gehen, da der Ursprung dann nicht sicher und zuverlässig verifiziert werden kann. Eine Ausnahme ist der CIDR Wert 0.0.0.0/0, welcher alle Anfragen unabhängig der Herkunft umleitet und somit grundsätzlich unsicher ist. Dieser wird auch für die o.g. Ausnahmen ausgewertet und leitet somit alle Anfragen unabhängig des Ursprungs weiter.
#### Aufruf über URL
Es gibt Situationen (z.B. in Verbindung mit NAT) bei denen die Autostart via IP nicht funktioniert. In diesen Fällen kann eine URL mit dem WebFront-Passwort gestartet werden.
```php
// Grundgerüst für den URL Aufruf
http://:3777/?password=#
// Beispiel als Start mit dem Chromium Browser
// Passwort: "geheim", WebFrontInstanzID: = 12345
chromium-browser --start-fullscreen 192.168.1.123:3777/?password=geheim#12345
```
> **Achtung:** Achtung dies birgt ein Sicherheitsrisiko, da die URL das WebFront Passwort in Klartext überträgt und in der URL sichtbar ist.
## Struktur (veraltet)
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/web/struktur/
> **Achtung:** Diese Funktion ist nur bis Version 4.4 vorhanden und wurde komplett durch den [Editor](https://www.symcon.de/de/llms/components/webfront-visualization.md) abgelöst.
Der Konfigurator kann __Elemente__ enthalten, die in der Visualisierung als Reiter ausgehend vom oberen linken Rand anfangen und zusätzlich __Widgets__ enthalten, die in einem extra Bereich am oberen rechten Rand beginnen. Dieser Bereich ist dem SysTray von Windows ähnlich.
Ein Element oder Widget kann über den __Hinzufügen__ Button eingefügt und entsprechend konfiguriert werden. Ein Element besteht aus einer eindeutigen ID, die automatisch vergeben wird, einer Position und einer dem Element entsprechenden Konfiguration.
Die ID kann vom Benutzer beim Erstellen angegeben werden, um das Element bei Aktionen besser wiedererkennen zu könne. Die ID hat keinen Zusammenhang mit den ObjektIDs der Instanzen oder Variablen.
Die Position gibt jeweils die Position im Reiter oder der Widget-Leiste an und muss einen Wert größer gleich Null erhalten. Wenn zwei Elemente die gleiche Positionsnummer haben, wird die Reihenfolge durch den Titel des Elements definiert.

### Übersicht der verfügbaren Elemente
| Element | Beschreibung |
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Kategorie](https://www.symcon.de/de/llms/concepts.md) | Über dieses Element lässt sich eine Kategorie und all seine Unterobjekte im WebFront anzeigen. Die ID der anzuzeigenden Kategorie kann über den Startkategorie Parameter verändert werden. |
| [Graph](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über dieses Element werden die im Archiv Modul eingestellten Graphen direkt angezeigt. Normalerweise können Graphen über das Icon links vom Wert der Variable aufgerufen werden. Falls Graphen direkt in z.B. Menüleisten oder Seitenteiler eingebettet werden sollen, kann dies über das Graphen Element geschehen. |
| [Externe Seite](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Dieses Element fügt eine externe Seite in das WebFront über ein IFrame ein. Die Parameter-URL und Intervall sind verfügbar. |
| [Inhaltswechsler](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über den Inhaltswechsler können mehrere Mediendateien, Strings, HTMLBoxen, StringBoxen, Mail-Instanzen oder externe Seiten innerhalb einer Seite umgeschaltet werden. |
| [Seitenteiler](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über Seitenteiler (ehemals Container) kann die WebFront-Ansicht in zwei Teile aufgespaltet werden und in jeden Teil ein beliebig anderes Element eingefügt werden. Wenn Seitenteiler in Seitenteiler eingefügt werden, kann somit z.B. ein QuadView nachgebildet werden. |
| [Menüleiste](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Über TabPanes können im oberen Bereich benutzerdefinierte Menüleisten erstellt werden, die auf weitere Elemente verweisen. |
| [Wetter (DWD)](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Zeigt das Wetter des DWD mit der Möglichkeit an, einzelne Bereiche Deutschands genauer auszuwählen und zwischen einem normalen Bild oder einem Radarbild zu wechseln. |
| [Uhrzeit Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Zeigt die aktuelle Uhrzeit an. |
| [Info Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Kann entweder dazu verwendet werden ein statisches Icon anzuzeigen oder verknüpft mit einer Variable deren Inhalt/Icon, welcher/welches je nach Variablenwert unterschiedlich sein kann. |
| [Logout Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Dieses Element fügt ein Widget hinzu, über das man zum Auswahlbildschirm der WebFronts zurückgeleitet wird. |
| [Idle Widget](https://www.symcon.de/de/llms/components/webfront-visualization.md) | Dieses Element fügt ein unsichtbares Widget hinzu, welches nach einer Zeit Untätigkeit auf eine bestimmte Seite wechselt. |
## Mobile
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/mobile/
Die Mobile Visualisierung für Mobile Geräte kann über den jeweiligen AppStore heruntergeladen werden und enthält dort auch die aktuellste Beschreibung der Funktionen der App. ( __Android:__ [IP-Symcon Mobile bei Google Play](https://play.google.com/store/apps/details?id=de.symcon.visualization) / __iOS:__ [Symcon Visualization für iPhone, iPod touch und iPad im iTunes App Store](https://apps.apple.com/de/app/symcon-visualization/id1566124129) )
Diese Seite soll als Beschreibung und Referenz für häufig gestellte Fragen und Funktionen dienen, welche mögliche Unterschiede der Apps zueinander aufführen. Desweiteren stellt keine App Anspruch auf volle Kompatibilität zum WebFront. Diese dienen als Erweiterung zu IP-Symcon, um schnell und unkompliziert auf die Grundfunktionen des Systems zugreifen zu können. Für eine vollständige Visualisierung kann und muss auf das WebFront zurückgegriffen werden. Hier ist auch keine Änderung vorgesehen, da die Mobile Applikationen mit immer mehr werdenden Funktionen langsamer werden würde. Das würde aber mit dem Hauptmerkmal “Geschwindigkeit” kollidieren.
Die Dokumentation der Push-Nachrichten befindet sich im Abschnitt [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md)
> **Achtung:** Es ist zu beachten, dass der Zugriff auf das System über die mobilen Apps standardmäßig deaktiviert ist. Es wird durch die Fehlermeldung "Kein gültiger Konfigurator angegeben!" darauf hingewiesen. Es muss im gewünschten WebFront Konfigurator die mobile Nutzung aktiviert werden.
### Funktionen, die absichtlich nicht verfügbar sind
* Benutzerdefinierte Icons werden nicht geladen, da dies einen beträchtlichen Geschwindkeitsverlust bedeuten würde und außerdem mehrere Icongrößen z.B. für das Retina Display erfordern würde, die die wenigsten der User zur Hand haben.
* Mehrfachverschachtelungen sind nicht verfügbar. So soll auf mobilen Geräten die Displayfläche optimal genutzt werden.
### Funktionen, die sich anders als das WebFront verhalten
* Boolean-Variablen werden standardmäßig als An/Aus (Switch, CheckBox) dargestellt. Dieses Verhalten kann über die WebFront Visualisierung Instanz verändert werden, sodass nur ~Switch Profile diese Darstellung haben.
### WebFront Freigabelink
Über erstellte WebFront Freigabelinks lässt sich die App direkt starten und mit einem WebFront verknüpfen.
Sollte dieses WebFront in der App noch nicht vorhanden sein, wird automatisch ein Konfigurator eingerichtet.
Es gibt 2 Arten von Links:
Für Server ohne SSL: __symcon://www.webfront.info/#98765__
Für Server mit SSL: __symcons://mein.ssl-server.com/#12345__
Sollte der Server/Konfigurator nicht in der App Liste stehen, so wird dieser automatisch hinzugefügt und geöffnet.
Somit kann zum Beispiel, ohne dass manuelle Einstellungen notwendig werden, dem Besuch Zuhause oder gar dem Tagungsteilnehmer ein schneller Zugriff auf das lokale WebFront ermöglicht werden.
### Bekannte Fehler
* Bei aktiviertem SSL können extern geladene Inhalte (z.B. Bilder) nicht geladen werden, wenn das Zertifikat nicht vom Browser akzeptiert wurde.
* Bestimmte Profile und Status-/Variablen (z.B. bei HomeMatic Fensterkontakten oder LCN Relais) können in der Mobile App geschaltet werden. Diese Möglichkeit der Aktion wird im WebFront farbig (grün/rot) dargestellt und bedeutet, dass entweder ein Aktionsskript definiert oder dass eine Standardaktion verfügbar ist. Soll das Verhalten geändert werden, gibt dieses Thema im Forum entsprechende Antwort: [Veränderbarkeit von unveränderlichen Variablen](https://community.symcon.de/t/veraenderbarkeit-von-unveraenderlichen-variablen/24061)
### Tipps & Tricks
* Falls beim Ladevorgang ein JSON-Fehler auftritt, muss überprüft werden, ob mindestens IP-Symcon 3.1 #3367 installiert wurde.
## Legacy-Icons
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/webfront-visualisierung/legacy-icons/
> **Hinweis:** Das WebFront verwendet die Legacy-Icons, nicht die üblichen Icons der Kachelvisualisierung.
### Icontyp
Es wird unterschieden zwischen "normalen" Icons und adaptiven Icons. Normale Icons ändern ihr Aussehen nicht, wobei adaptive Icons sich der gesetzten Variable je nach Wert im Aussehen anpassen.
Adaptive Icons orientieren sich dabei anhand der im Profil eingestellten Min/Max Werte. Diese werden als 0%-100% gehandhabt. Soll es als 100%-0% gehandhabt werden, muss ein ".Reversed" im Profilnamen angegeben werden.
Die einzelnen Adaptiven Icon (z.B. Intensity-25) können auch direkt angegeben werden und werden dann als "normales" Icon eingebunden.
### Benutzerdefinierte Icons einbinden
Ab IP-Symcon 3.0 werden benutzerdefinierte Icons über Skins eingebunden.
Weitere Informationen befinden sich im Entwicklerbereich als SDK: [Skins SDK](https://www.symcon.de/de/llms/developer/sdk-tools.md)
### Auswahl in der Verwaltungskonsole
Die Icon-Auswahl in der Verwaltungskonsole wurde auf die aktuellen Icons hin optimiert. Dennoch können die Legacy-Icons eingestellt werden, indem der Iconname manuell in das entsprechende Feld eingetragen wird.
### Übersicht der Icons
Folgende Icons sind im WebFront enthalten und können an den jeweiligen Stellen in IP-Symcon ausgewählt werden. Ein Sonderfall ist das Icon __Transparent__. Wird dieses Icon ausgewählt, so kann ein anderes Icon, welches niedriger in der Hierarchie ist (s.o.), überschrieben werden, so dass kein Icon angezeigt wird. Dies kann als Stilelement verwendet werden, um z.B. bei verlinken Objektkategorien kein Icon anzuzeigen, obwohl die Kategorie ein Icon zugewiesen hatte.
### Icons
`aircraft`, `alert`, `arrowRight`, `backspace`, `basement`, `bath`, `battery`, `bed`, `bike`, `book`, `bulb`, `calendar`, `camera`, `car`, `caret`, `cat`, `climate`, `clock`, `close`, `closeall`, `cloud`, `cloudy`, `cocktail`, `cross`, `database`, `dining`, `distance`, `doctorBag`, `dog`, `doll`, `dollar`, `door`, `download`, `drops`, `duck`, `edit`, `electricity`, `energyProduction`, `energySolar`, `energyStorage`, `erlenmeyerFlask`, `euro`, `execute`, `eyes`, `factory`, `favorite`, `female`, `fitness`, `flag`, `flame`, `floorLamp`, `flower`, `fog`, `garage`, `gas`, `gauge`, `gear`, `graph`, `groundFloor`, `handicap`, `heart`, `help`, `hollowArrowDown`, `hollowArrowLeft`, `hollowArrowRight`, `hollowArrowUp`, `hollowDoubleArrowDown`, `hollowDoubleArrowLeft`, `hollowDoubleArrowRight`, `hollowDoubleArrowUp`, `hollowLargeArrowDown`, `hollowLargeArrowLeft`, `hollowLargeArrowRight`, `hollowLargeArrowUp`, `hourglass`, `houseRemote`, `image`, `information`, `intensity`, `internet`, `ips`, `jalousie`, `key`, `keyboard`, `kitchen`, `leaf`, `light`, `lightning`, `link`, `lock`, `lockClosed`, `lockOpen`, `macro`, `mail`, `male`, `melody`, `menu`, `minus`, `mobile`, `moon`, `motion`, `move`, `music`, `network`, `notebook`, `ok`, `pacifier`, `paintbrush`, `pants`, `party`, `people`, `plug`, `plus`, `popcorn`, `power`, `presence`, `radiator`, `raffstore`, `rainfall`, `recycling`, `remote`, `repeat`, `return`, `robot`, `rocket`, `script`, `shift`, `shower`, `shuffle`, `shutter`, `sink`, `sleep`, `sleet`, `snow`, `snowflake`, `sofa`, `speaker`, `speedo`, `stars`, `sun`, `sunny`, `tV`, `talk`, `tap`, `teddy`, `tee`, `telephone`, `temperature`, `thunder`, `title`, `topFloor`, `tree`, `turnLeft`, `turnRight`, `umbrella`, `unicorn`, `ventilation`, `wC`, `warning`, `wave`, `wellness`, `windDirection`, `windSpeed`, `window`, `xBMC`
### Adaptive Icons
`aircraft`, `alert`, `arrowRight`, `backspace`, `basement`, `bath`, `battery-0`, `battery-50`, `battery-100`, `battery`, `bed`, `bike`, `book`, `bulb`, `calendar`, `camera`, `car`, `caret`, `cat`, `climate`, `clock`, `close`, `closeall`, `cloud`, `cloudy`, `cocktail`, `cross`, `database`, `dining`, `distance`, `doctorBag`, `dog`, `doll`, `dollar`, `door-0`, `door-100`, `door`, `download`, `drops`, `duck`, `edit`, `electricity`, `energyProduction`, `energySolar`, `energyStorage-0`, `energyStorage-25`, `energyStorage-50`, `energyStorage-75`, `energyStorage-100`, `energyStorage`, `erlenmeyerFlask`, `euro`, `execute`, `eyes-0`, `eyes-100`, `eyes`, `factory`, `favorite`, `female`, `fitness`, `flag`, `flame`, `floorLamp-0`, `floorLamp-100`, `floorLamp`, `flower`, `fog`, `garage-0`, `garage-25`, `garage-100`, `garage`, `gas`, `gauge`, `gear`, `graph`, `groundFloor`, `handicap`, `heart`, `help`, `hollowArrowDown`, `hollowArrowLeft`, `hollowArrowRight`, `hollowArrowUp`, `hollowDoubleArrowDown`, `hollowDoubleArrowLeft`, `hollowDoubleArrowRight`, `hollowDoubleArrowUp`, `hollowLargeArrowDown`, `hollowLargeArrowLeft`, `hollowLargeArrowRight`, `hollowLargeArrowUp`, `hourglass-0`, `hourglass-30`, `hourglass-60`, `hourglass-100`, `hourglass`, `houseRemote`, `image`, `information`, `intensity-0`, `intensity-25`, `intensity-50`, `intensity-75`, `intensity-100`, `intensity`, `internet`, `ips`, `jalousie-0`, `jalousie-50`, `jalousie-100`, `jalousie`, `key`, `keyboard`, `kitchen`, `leaf`, `light-0`, `light-1`, `light-25`, `light-50`, `light-75`, `light-100`, `light`, `lightning`, `link`, `lock-0`, `lock-100`, `lock`, `lockClosed`, `lockOpen`, `macro`, `mail`, `male`, `melody`, `menu`, `minus`, `mobile`, `moon`, `motion`, `move`, `music`, `network`, `notebook`, `ok`, `pacifier`, `paintbrush`, `pants`, `party`, `people`, `plug`, `plus`, `popcorn`, `power`, `presence-0`, `presence-100`, `presence`, `radiator`, `raffstore-0`, `raffstore-50`, `raffstore-100`, `raffstore`, `rainfall`, `recycling`, `remote`, `repeat`, `return`, `robot`, `rocket`, `script`, `shift`, `shower`, `shuffle`, `shutter`, `sink`, `sleep`, `sleet`, `snow`, `snowflake`, `sofa`, `speaker-0`, `speaker-1`, `speaker-25`, `speaker-50`, `speaker-100`, `speaker`, `speedo-0`, `speedo-25`, `speedo-50`, `speedo-75`, `speedo-100`, `speedo`, `stars`, `sun`, `sunny`, `tV`, `talk`, `tap`, `teddy`, `tee`, `telephone`, `temperature-0`, `temperature-25`, `temperature-50`, `temperature-75`, `temperature-100`, `temperature`, `thunder`, `title`, `topFloor`, `tree`, `turnLeft`, `turnRight`, `umbrella`, `unicorn`, `ventilation`, `wC`, `warning`, `wave`, `wellness`, `windDirection`, `windSpeed-0`, `windSpeed-30`, `windSpeed-60`, `windSpeed-100`, `windSpeed`, `window-0`, `window-100`, `window`, `xBMC`
> **Hinweis:** Folgende Icons sind erst ab IP-Symcon 5.0/Symcon Mobile 5.0 verfügbar: Bath, Bike, Book, Cloudy, Doll, Door, Download, EnergyProduction, EnergySolar, EnergyStorage, Favorite, Fitness, FloorLamp, Gas, Handicap, Heart, Help, Link, Menu, Pants, Party, People, Presence, Raffstore, Remote, Sink, Sleet, Sunny, Teddy, Tee, Thunder, Umbrella
---
# Objekt-Darstellung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/
### Aktive Elemente
Einzelne schaltbare Elemente können verschieden dargestellt werden.
### Passive Elemente
Einzelne Elemente, die nicht geschaltet werden können, haben verschiedene Darstellungen.
### Ereignisse
Erlaubt das Ausführen von Logik basierend auf Uhrzeit und Datum oder Veränderungen anderer Objekte.
### Externe Elemente
Externe Dateien wie etwa [Medien](https://www.symcon.de/de/service/dokumentation/grundlagen/medien) können in der Visualisierung angezeigt werden.
### Zusammengefasste Darstellungen
Mehrere Elemente können intelligent in einer Darstellung zusammengefasst werden.
### Legacy-Darstellungen
Dies sind veraltete Darstellungen, welche auf ihre tatsächlichen Darstellungen weiterleiten.
## Aufzählung
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/aufzaehlung/
Eine Aufzählung ist eine Liste von Werten, welche ausgewählt werden können.
### Voraussetzungen
Eine Aufzählung ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Aufzählung. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
#### Parameter
| Parameter | Beschreibung |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Standard Icon | Das [Icon](https://www.symcon.de/de/llms/components/icons.md), welches für die Variable verwendet wird |
| Optionen | Die einzelnen [Optionen](https://www.symcon.de/./#Optionen) der Aufzählung |
| Anordnung | Die Anordnung der Optionen in einer Kachel. Mögliche Anordnungen sind Spalte, Reihe und Gitter. Gitter ist nicht für Variablen vom Typ Boolean verfügbar. Dieser Parameter wird nur bei der [Darstellung als eigene Kachel](https://www.symcon.de/./#Als_eigene_Kachel) ausgewertet, nicht bei der Anzeige in einer Liste. |
| Zeige... | Der angezeigte Inhalt jeder Option. Es kann "Beschriftung", "Icon" und "Beschriftung und Icon" gewählt werden. (ab Symcon 8.2) |
##### Optionen
| Parameter | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Wert | Variablenwert für den diese Option gilt |
| Beschriftung | Text, der für diese Option angezeigt wird |
| Icon überschreiben | Falls gesetzt, wird das Standardicon dieser Darstellung überschrieben, falls die Variable den Wert dieser Option hat |
| Icon | Icon für die Variable, falls die Variable den Wert dieser Option hat (nur verfügbar wenn "Icon überschreiben" gesetzt) |
| Farbe | Farbe mit welcher die Option in der Aufzählung dargestellt wird |
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Aufzählung darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) mit folgenden Parametern:
* Schrittweite auf 0 (nur bei Integer/Float, sonst keine Option für Schrittweite)
* mind. 1 gesetzte Assoziation
* Minimalwert und Maximalwert irrelevant

### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Ausgelöstes Ereignis
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/ausgeloestes-ereignis/
_Benötigt Symcon >= 7.0_
Ein ausgelöstes Ereignis kann in der Visualisierung aktiviert bzw. deaktiviert werden.
#### Voraussetzungen
Ein ausgelöstes Ereignis ist ein [Ereignis](https://www.symcon.de/de/llms/concepts.md) vom Typ [Ausgelöst](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront
Ausgelöste Ereignisse werden im WebFront nicht dargestellt.
## Automation
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/automation/
Automationen können über einen Button ausgeführt werden.
#### Voraussetzungen
Eine eingerichtete [Automation](https://www.symcon.de/de/llms/concepts/automations.md) kann in der Visualisierung ausgeführt werden
> **Hinweis:** In der Darstellung als eigene Kachel richtet sich das Icon des Buttons nach dem [Icon](https://www.symcon.de/de/llms/components/icons.md) der Automation
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Bild
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/bild/
In der Visualisierung können beliebige Bilder eingebunden werden.
#### Voraussetzungen
Ein Bild ist ein [Medium](https://www.symcon.de/de/llms/concepts.md) vom Typ [Bild](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Datum/Uhrzeit
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/datumunduhrzeitanzeige/
_Benötigt Symcon >= 4.1_
Mit Datum/Uhrzeit kann Datum und/oder Uhrzeit von einem spezifischen Zeitpunkt dargestellt und ggfs. angepasst werden.
#### Voraussetzungen
Datum/Uhrzeit ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Datum/Uhrzeit. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Typ Integer
#### Parameter
| Parameter | Beschreibung |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Datumsanzeige | Bestimmt wie das Datum formatiert wird. Möglich sind: "Keine", "Jahr, Monat und Tag", "Monat und Tag", und "Jahr und Monat" |
| Formatiere Monat als | Wenn im Datum der Monat angezeigt werden soll, kann dessen Formatierung angepasst werden. Möglich sind: "Text" und "Zahl" |
| Zeige Wochentag | Legt fest ob der Wochentag im Format mit angezeigt wird |
| Zeitanzeige | Bestimmt wie die Zeit formatiert werden soll. Möglich sind: "Keine", "Stunden und Minuten" und "Stunden, Minuten und Sekunden" |
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Datum/Uhrzeit darstellt, falls sie eines der folgenden [Variablenprofile](https://www.symcon.de/de/llms/concepts.md) ausgewählt ist:
* ~UnixTimestamp
* ~UnixTimestampDate
* ~UnixTimestampTime
Die unterschiedlichen Profile entsprechen festen Parameter Kombinationen.
#### ~UnixTimestamp
- Datumsanzeige: Jahr, Monat und Tag
- Formatiere Monat als: Text
- Zeige Wochentag: Nein
- Zeitanzeige: Stunden und Minuten
#### ~UnixTimestampDate
- Datumsanzeige: Jahr, Monat und Tag
- Formatiere Monat als: Text
- Zeige Wochentag: Nein
- Zeitanzeige: Keine
#### ~UnixTimestampDate
- Datumsanzeige: Keine
- Zeitanzeige: Stunde und Minuten
Falls die Variable eine [Variablenaktion](https://www.symcon.de/de/llms/concepts.md) hat, kann der Zeitpunkt in der Visualisierung angepasst werden
### Aussehen in Kachel Visualisierung
> **Hinweis:** In den Gittereinstellungen können die verschiedenen Darstellungen separat als "Datum", "Uhrzeit" und "Datum und Uhrzeit" konfiguriert werden.
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Dauer
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/dauer/
_Benötigt Symcon >= 8.0_
Mit Dauer kann die Zeit bis/seit einem Zeitpunkt oder ein einfacher Wert als Dauer formatiert werden.
#### Voraussetzungen
Dauer ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Dauer. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Typ Integer oder Float
* keine eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
#### Parameter
| Parameter | Beschreibung |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Darstellungstyp | Legt fest wie der angezeigt Wert zustande kommt. **Wert in Variable:** Die Dauer in Sekunden welche formatiert werden sollen **Dauer bis zum Wert in der Variable:** Die Dauer bis zum als Unix Zeitstempel kodierten Zeitpunkt **Dauer seit Wert in der Variable:** Die Dauer seit dem als Unix Zeitstempel kodierten Zeitpunkt |
| Format | Das Format für in dem die Dauer formatiert wird. Möglich sind: "Nur Sekunden", "Minuten und Sekunden", und "Stunden, Minuten und Sekunden" |
| Zeige Millisekunden | Bestimmt ob Millisekunden zusätzlich angezeigt werden sollen |
> **Hinweis:** Wenn der Darstellungstyp einen Zeitpunkt beinhaltet aktualisiert sich der dargestellt Wert automatisch.
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir der unformatierte Wert der Variable dargestellt.
## Diagramm
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/diagramm/
In einem Diagramm können die Verläufe mehrere Variablen dargestellt werden.
[Video](https://www.youtube.com/embed/W64WqjSUEWA?rel=0&cc_load_policy=1)
#### Voraussetzungen
Ein Diagramm ist ein [Medium](https://www.symcon.de/de/llms/concepts.md) vom Typ [Diagramm](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

> **Hinweis:** Ist eine Kachel ausreichend groß, wird sie stattdessen analog zur Vollbilddarstellung angezeigt.
#### Im Vollbild

#### Innerhalb einer Liste

### Aussehen im WebFront


## Dokument
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/dokument/
Ein Dokument kann per Auswahl des Buttons heruntergeladen werden.
#### Voraussetzungen
Ein Dokument ist ein [Medium](https://www.symcon.de/de/llms/concepts.md) vom Typ [Dokument](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Einzelnes Element
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/einzelnes-element/
_Benötigt Symcon >= 7.0_
Ermöglicht die Darstellung eines Elements aus einer Liste als einzelne Kachel.
#### Voraussetzungen
Jede [Instanz](https://www.symcon.de/de/llms/concepts.md) kann als Einzelnes Element dargestellt werden. Die Darstellung wird automatisch gewählt, wenn eine Instanz nur ein Unterobjekt hat. Alternativ kann sie bei jeder Instanz mit mehreren Objekten über "[Kachel bearbeiten](https://www.symcon.de/de/llms/components/tile-visualization.md)" ausgewählt werden.
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

Wird die Kachel geöffnet, werden alle Objekte der Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir die Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.
## Energie Manager
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/energie-manager/
_Benötigt Symcon >= 7.0_
Der Energie Manager schaltet intelligent Geräte, wenn genug Energie zur Verfügung steht. Diese Darstellung ermöglicht es die Priorität einzelner Geräte Drag & Drop zu verändern oder etwa aus der Berechnung auszuschließen. Darüber hinaus kann die intelligente Optimierung wie Nachtladen oder Günstiges Laden über einen Dialog konfiguriert werden.
#### Voraussetzungen
Der Energie Manager erfordert eine [Instanz](https://www.symcon.de/de/llms/concepts.md) des Moduls [Energie Manager](https://www.symcon.de/de/llms/modules/energy-manager.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Dialog für Intelligente Optimierung

#### Innerhalb einer Liste

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir die Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.
## Energieverteilung
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/energieverteilung/
_Benötigt Symcon >= 7.0_
Die Darstellung Energieverteilung stellt den Fluss von erzeugter und verbrauchter Energie dar.
#### Voraussetzungen
Die Darstellung Energieverteilung erfordert eine [Instanz](https://www.symcon.de/de/llms/concepts.md) des Moduls [Energieverteilung](https://www.symcon.de/de/llms/components/object-presentation.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir die Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.
## Farbe
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/farbe/
Mit einer Farbe kann eine Farbe dargestellt und ggfs. konfiguriert werden.
#### Voraussetzungen
Eine Farbe ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Farbe. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Typ Integer oder String
#### Parameter
| Parameter | Beschreibung |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Kodierung | Verwendete Kodierung der Farbe, nur anpassbar für Variablen vom Typ String |
| Standardwerte | Liste mit Standardwerten, welche in einer Auswahl angeboten werden, nur verfügbar für Variablen mit [Variablenaktion](https://www.symcon.de/de/llms/concepts.md). Nicht verfügbar bei Kodierung 'xy' |
| Farbraum | Der Farbraum aus welchem eine Farbe ausgewählt werden kann. Dieser bestimmt ein Dreieck |
| Benutzerdefinierter Farbraum | Liste in welcher der Rot-, Grün-, Blau-Wert und Weißpunkt eines eigenen Farbraumes definiert werden kann. |
| Farbkurve | Wenn eine Farbkurve ausgewählt ist, wird die Auswahl der Farbe auf diese beschränkt |
| Benutzerdefinierte Farbkurve | Eine List von Koordinaten, die den |
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Farbe darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* ausgewähltes [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) "~HexColor"
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel mit Variablenaktion


> **Hinweis:** Bei Auswahl der Pipette in der Mitte des Kreises öffnet sich ein Dialog um die Farbe alternativ im Detail einzustellen
#### Als eigene Kachel ohne Variablenaktion

#### Innerhalb einer Liste mit Variablenaktion

Bei Auswahl des Stifts öffnet sich ein Dialog, analog zur Darstellung als eigene Kachel.
#### Innerhalb einer Liste ohne Variablenaktion

### Aussehen im WebFront
#### Mit Variablenaktion

Bei Auswahl des Pinsels rechts öffnet sich ein Dialog zur Farbauswahl:

#### Ohne Variablenaktion

## Inhaltswechsler
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/inhaltswechsler/
Ein Inhaltswechsler erlaubt es untergeordnete Objekte innerhalb einer einzelnen Kachel darzustellen. Die einzelnen Objekte können durch ein Klicken oder nach einer gewissen Zeit automatisch durchgewechselt werden.
#### Voraussetzungen
Ein Objekt des Typs [Kategorie](https://www.symcon.de/de/llms/concepts.md) bei welcher in der Visualisierung im [Editiermodus](https://www.symcon.de/de/llms/components/tile-visualization.md) die Darstellung Inhaltswechsler ausgewählt wurde.
### Aussehen in Kachel Visualisierung

### Konfiguration
Wenn ein Inhaltswechsler in der Visualisierung editiert wird, stehen folgende Parameter zur Verfügung.
| Name | Beschreibung |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Aktive Elemente | Hier kann aus allen sichtbaren Elementen der Kategorie ausgewählt werden, welche angezeigt werden sollen. |
| Automatisches Wechseln | Wenn aktiv, springt der Inhaltswechsler nach einer festgelegten Dauer zum nächsten Element. Die Maximale Dauer liegt bei 100 Sekunden |
| Namensformat | Der Name der als Titel der Kachel angezeigt werden soll. (Aktives Objekt, Kategorie, Aktives Objekt und Kategorie) |

### Aussehen im WebFront
Diese Darstellung wird wie eine normale Kategorie angezeigt.

Etwas Vergleichbares kann über den [Inhaltswechsler](https://www.symcon.de/de/llms/components/webfront-visualization.md) im WebFront Editor erreicht werden.
## IPSView
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/ipsview/
IPSViews lassen sich nahtlos in die Visualisierung einbinden.
> **Hinweis:** Die Erweiterung [IPSView](https://ipsview.brownson.at/) muss zur Verwendung separat erworben werden.
#### Voraussetzungen
Eine IPSView ist ein [Medium](https://www.symcon.de/de/llms/concepts.md) vom Typ IPSView.
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Rollladen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/jalousie/
Für einen Rollladen kann der Öffnungsgrad sowie optional der Neigungsgrad der Lamellen eingestellt werden.
### Voraussetzungen
Ein Rollladen kann entweder als [Variable](https://www.symcon.de/de/llms/concepts.md) oder als [Instanz](https://www.symcon.de/de/llms/concepts.md) dargestellt werden.
#### Als Variable
Eine Variable mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Rollladen, muss folgende Voraussetzungen erfüllen:
* Typ Integer
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
#### Parameter
| Parameter | Beschreibung |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verwendungstyp | Bestimmt ob mit dem Schieberegler die Rotation von Lamellen oder der Öffnungsgrad des Rollladen gesteuert wird. Die Der Parameter Verwendungstyp bestimmt welche weitere Parameter zur Verfügung stehen. Die Auswahl bestimmt welche weiteren Parameter zur Verfügung stehen |
| Offen bei | Der Wert bei dem der Rollladen als geöffnet gilt (nur bei Verwendungstyp Öffnung) |
| Geschlossen bei | Der Wert bei dem der Rollladen als geschlossen gilt (nur bei Verwendungstyp Öffnung) |
| Innen bei | Der Wert bei dem die Lamellen als nach innen gedreht gelten (nur bei Verwendungstyp Rotation) |
| Außen bei | Der Wert bei dem die Lamellen als nach außen gedreht gelten (nur bei Verwendungstyp Rotation) |
| Rotation | Die feste rotation der dargestellten Lamellen (nur bei Verwendungstyp Öffnung) |
| Maximale Rotation nach innen | Der maximal Rotationswert der Lamellen nach innen in Grad (nur bei Verwendungstyp Rotation) |
| Maximale Rotation nach außen | Der maximale Rotationswert der Lamellen nach außen in Grad (nur bei Verwendungstyp Rotation) |
| Sonnenposition | Bestimmt ob und wo eine Sonne neben dem Rolladen angezeigt werden soll. Die Höhe der Sonne ist von der Tageszeit abhängig. In der Nacht wird ein Mond angezeigt |
#### Als Instanz
Eine Instanz kann als Rollladen dargestellt werden, wenn folgende untergeordnete Objekte vorhanden sind:
* Position (optional): Variable mit dem Verwendungstyp Öffnung
* Drehgrad (optional): Variable mit dem Verwendungstyp Rotation
Mindestens eine optionale Variable muss existieren.
> **Hinweis:** Die Standardgröße von Rollläden kann in den Gittereinstellungen für Variablen als "Rollladenvariable" und Instanzen als "Rollladen" separat konfiguriert werden
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Rollladen darstellt, falls sie eines der folgenden [Variablenprofile](https://www.symcon.de/de/llms/concepts.md) ausgewählt ist:
* ~Shutter
* ~Lamella
Die unterschiedlichen Profile entsprechen festen Parameter Kombinationen.
#### ~Shutter
* Verwendungstyp: Öffnung
* Offen bei: 0
* Geschlossen bei: 100
* Rotation: -55°
* Sonnenposition: Rechts
#### ~Lamella
* Verwendungstyp: Rotation
* Innen bei: 0
* Außen bei: 100
* Maximale Rotation nach innen: -55°
* Maximale Rotation nach außen: 55°
* Sonnenposition: Rechts
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste
In der Listenansicht fällt die Visualisierung auf die Darstellung [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) zurück.

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen werden Variablen als [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt und Instanzen als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md).
## Kategorie
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/kategorie/
Eine Kategorie kann geöffnet werden um die darin enthaltenen Objekte zu betrachten.
#### Voraussetzungen
Ein Objekt des Typs [Kategorie](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
In der [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) Kann bei 'Standard Kategorie Darstellung' 'Kacheln' ausgewählt werden. Diese Standardeinstellung kann im [Editiermodus](https://www.symcon.de/de/llms/components/tile-visualization.md) in der Visualisierung je Objekt überschrieben werden.

### Konfiguration
Wenn eine Kategorie in der Visualisierung editiert wird, stehen folgende Parameter zur Verfügung.
| Name | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Hintergrund | Ist in der Kategorie ein Bild als [Medienobjekt](https://www.symcon.de/de/llms/concepts.md) vorhanden, kann dieses hier als Hintergrund ausgewählt werden. Das Medienobjekt darf auch über die 'Visuellen Einstellungen' in der Konsole unsichtbar geschaltet sein. |
| Icon als Vollbild | Wenn aktiv wird das [Icon](https://www.symcon.de/de/llms/components/icons.md) des Kategorie-Objekts mittig auf der Kachel dargestellt |

### Aussehen im WebFront

## Kategorieleiste
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/kategorieleiste/
Eine Kategorie kann geöffnet werden um die darin enthaltenen Objekte zu betrachten.
#### Voraussetzungen
Ein Objekt des Typs [Kategorie](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
In der [Instanzkonfiguration](https://www.symcon.de/de/llms/components/tile-visualization.md) Kann bei 'Standard Kategorie Darstellung' als 'Standard Kategorie Darstellung' 'Kategorieleiste (Einzeilig)' oder 'Kategorieleiste (Mehrzeilig)' ausgewählt werden. Diese Standardeinstellung kann im [Editiermodus](https://www.symcon.de/de/llms/components/tile-visualization.md) in der Visualisierung je Objekt überschrieben werden. Neben dem Objektnamen wird auch das [Icon](https://www.symcon.de/de/llms/components/icons.md) der Kategorie angezeigt.

### Aussehen im WebFront

## Legacy Profil
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/legacy-profil/
Diese [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) wertet ein [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) aus und übersetzt es auf die tatsächliche Darstellung.
##### Voraussetzungen
Eine [Variable](https://www.symcon.de/de/llms/concepts.md) verwendet die Variablendarstellung "Legacy Profil". Die Darstellung hat keine weiteren Voraussetzungen.
##### Parameter
| Parameter | Beschreibung |
| --------- | --------------------------------------------------------------------------- |
| Profil | Das zugrunde liegende [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) |
Über Legacy Profile sind folgende Variablendarstellungen realisierbar. Die genauen Anforderungen können den einzelnen Seiten für die entsprechende Darstellung entnommen werden:
- [Aufzählung](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Datum/Uhrzeit](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Farbe](https://www.symcon.de/de/llms/components/object-presentation.md)
- [HTML Box](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Jalousie](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Schalter](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Wertanzeige](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Werteingabe](https://www.symcon.de/de/llms/components/object-presentation.md)
### Konvertieren
In dem "Variable bearbeiten" Dialog kann unter dem Punk Variablendarstellung über die entsprechende Schaltfläche eine Legacy-Darstellung in ihre tatsächliche Darstellung konvertierte werden.

## Licht
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/licht/
_Benötigt Symcon >= 7.0_
In der Darstellung Licht können Status, Helligkeit, Farbtemperatur und Farbe in einer einzelnen Kachel visualisiert werden.
#### Voraussetzungen
Eine [Instanz](https://www.symcon.de/de/llms/concepts.md) kann als Licht dargestellt werden, wenn folgende untergeordnete Objekte vorhanden sind:
* Status:
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schalter](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "An/Aus"
* Helligkeit (optional):
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Intensität"
* Farbtemperatur (optional):
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Farbtemperatur"
* Farbe (optional):
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Farbe](https://www.symcon.de/de/llms/components/object-presentation.md)
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
Mindestens eine optionale Variable muss existieren.
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel


#### Innerhalb einer Liste
In der Listenansicht fällt die Visualisierung auf die Darstellung [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) zurück.

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir die Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.
## Liste
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/liste/
Eine Listendarstellung kann beliebige Objekte untereinander darstellen.
#### Voraussetzungen
Jede [Instanz](https://www.symcon.de/de/llms/concepts.md) kann als Liste dargestellt werden.
> **Hinweis:** Sollen einfach Werte zusammengefasst werden ohne dass es eine passende übergeordnete Instanz gibt, kann ein [Dummy Modul](https://www.symcon.de/de/llms/modules/dummy-module.md) zur Strukturierung verwendet werden
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Media Player
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/media-player/
_Benötigt Symcon >= 7.0_
Ein Media Player kann diverse Parameter zur Medienwiedergabe darstellen und ggfs. schalten lassen:
- Medienwiedergabe abspielen und pausieren
- Medienwiedergabe stoppen (optional)
- Sprung zum nächsten oder vorherigen Element (optional)
- Anzeige und Anpassung des Fortschritts im aktuellen Element (optional)
- Lautstärke einstellen (optional)
- Stumm schalten (optional)
- Wiederholung einstellen (optional)
- Zufallswiedergabe aktivieren (optional)
- Cover anzeigen (optional)
- Interpret anzeigen (optional)
- Titel anzeigen (optional)
- Aktuelle Wiedergabeliste inklusive aktueller Position darstellen und anpassen (optional)
### Voraussetzungen
Ein Media Player kann entweder als [Variable](https://www.symcon.de/de/llms/concepts.md) oder als [Instanz](https://www.symcon.de/de/llms/concepts.md) dargestellt werden.
#### Als Variable
Eine Variable, die als Media Player dargestellt werden soll, muss folgende Voraussetzungen erfüllen:
* Typ Integer
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
* ausgewähltes [Variablenprofil](https://www.symcon.de/de/llms/concepts.md):
* ~PlaybackNoStop: Unterstützt nur abspielen und pausieren
* ~Playback: Unterstützt abspielen, pausieren und stoppen
* ~PlaybackPreviousNextNoStop: Unterstützt abspielen, pausieren und Sprung zum nächsten oder vorherigen Element
* ~PlaybackPreviousNext: Unterstützt abspielen, pausieren, stoppen und Sprung zum nächsten oder vorherigen Element
Alle weiteren Funktionen des Media Players werden bei Darstellung als Variable nicht unterstützt.
#### Als Instanz
Eine Instanz kann als Media Player dargestellt werden, wenn folgende untergeordnete Objekte vorhanden sind:
* Wiedergabe:
* Variable wie oben beschrieben
* Fortschritt (optional):
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Fortschritt"
* Alternativ kann eine Variable des Typs Integer mit der Variablendarstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md) und dem Profil "~Progress" verwendet werden
* Falls die Variable eine Variablenaktion hat, ist die Position anpassbar, ansonsten wird sie lediglich dargestellt
* Lautstärke (optional):
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Lautstärke"
* Stumm (optional):
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schalter](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Stumm schalten"
* Wiederholung (optional):
* [Aufzählung](https://www.symcon.de/de/llms/components/object-presentation.md)
* Variablentyp Integer
* Variablenprofil "~Repeat"
* Zufallswiedergabe (optional):
* [Aufzählung](https://www.symcon.de/de/llms/components/object-presentation.md)
* Variablentyp Boolean
* Variablenprofil "~Shuffle"
* Cover (optional):
* [Bild](https://www.symcon.de/de/llms/components/object-presentation.md)
* Interpret (optional):
* Variable vom Typ String
* Variablenprofil "~Artist"
* Titel (optional):
* Variable vom Typ String
* Variablenprofil "~Song"
* Wiedergabeliste (optional):
* Variable vom Typ String
* Variablenprofil "~Playlist"
* Falls die Variable eine Variablenaktion hat, ist die Position anpassbar, ansonsten wird sie lediglich dargestellt
* Der Wert für die Wiedergabeliste ist ein JSON-codiertes Objekt mit folgenden Parametern:
| Parameter | Typ | Beschreibung |
| ------------------ | ------- | -------------------------------------- |
| entries | Array | Einträge der Wiedergabeliste |
| current (optional) | Integer | Der Index des aktuell aktiven Eintrags |
Darstellung der Einträge
| Parameter | Typ | Beschreibung |
| --------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------- |
| song (optional) | String | Titel des Eintrags |
| artist (optional) | String | Interpret des Eintrags |
| duration (optional) | Integer | Dauer des Eintrags in Sekunden |
| Weitere Einträge (optional) | beliebig | Für die Funktionalität können beliebige weitere Parameter hinzugefügt werden. Diese werden allerdings nicht dargestellt |
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste
In der Listenansicht fällt die Visualisierung auf die Darstellung [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) zurück.

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen werden Variablen als [Aufzählung](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt und Instanzen als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md).
## Mitteilungen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/mitteilungen/
Mitteilungen visualisiert die aktuellen Mitteilungen sowie die Anzahl der ungelesenen.
#### Voraussetzungen
Mitteilungen erfordert eine [Instanz](https://www.symcon.de/de/llms/concepts.md) des Moduls [IMAP](https://www.symcon.de/de/llms/modules/imap.md) oder [POP3](https://www.symcon.de/de/llms/modules/pop3.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste
In der Listenansicht fällt die Visualisierung auf die Darstellung [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) zurück.

### Aussehen im WebFront

## Popup
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/popup/
Mehrere Objekte können gemeinsam in einem Popup dargestellt werden.
#### Voraussetzungen
Ein Popup wird als [Popup-Modul-Instanz](https://www.symcon.de/de/llms/modules/popup-module.md) eingerichtet. Dargestellte Objekte werden unterhalb des Popup Moduls platziert bzw. verlinkt.
### Aussehen in Kachel Visualisierung
Eine Popup-Darstellung in der Kachel Visualisierung folgt in den kommenden Versionen, ist aktuell aber nicht vorhanden.
### Aussehen im WebFront


## Schalter
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/schalter/
_Benötigt Symcon >= 5.0_
Ein Schalter kann An (true) oder Aus (false) geschaltet werden.
#### Voraussetzungen
Ein Schalter ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Schalter. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Typ Boolean
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
#### Parameter
| Parameter | Beschreibung |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Individuelle Icons passend zum Wert | Falls gesetzt, kann für true und false je individuelle Icons gewählt werden. Ansonsten wird ein einzelnes Icon gewählt, welches immer dargestellt wird |
| Icon | Icon welches dauerhaft auf dem Schalter angezeigt wird (nur verfügbar wenn "Individuelle Icons passend zum Wert" nicht gesetzt ist) |
| Icon für true | Icon welches auf dem Schalter angezeigt wird wenn die Variable den Wert true hat (nur verfügbar wenn "Individuelle Icons passend zum Wert" gesetzt ist) |
| Icon für false | Icon welches auf dem Schalter angezeigt wird wenn die Variable den Wert false hat (nur verfügbar wenn "Individuelle Icons passend zum Wert" gesetzt ist) |
| Farbe des Leuchtens wenn aktiv | Konfiguriert die Farbe des Leuchtens um den Schalter, wenn dieser aktiv ist, die Variable also den Wert true hat |
| Intensität des Leuchtens wenn aktiv | Konfiguriert die Intensität des Leuchtens um den Schalter, wenn dieser aktiv ist, die Variable also den Wert true hat |
| Verwendung der Variable | Verwendung der Variable in zusammengefassten Darstellungen. Der Wert wirkt sich nicht direkt auf die Darstellung der Variable auf, sondern nur auf deren Verwendung in zusammengefassten Darstellungen. |
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Schieberegler darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* Kein [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) gesetzt oder Variablenprofil "~Switch" oder "~Mute"
Bei der Verwendung eines Variablenprofils werden einige Parameter des Schiebereglers abgeleitet
#### Verwendung der Variablen
Die Verwendung hängt vom Profilnamen ab.
* An/Aus für Profilnamen
* ~Switch
* Kein Profil
* Stumm schalten für Profilnamen "~Mute"
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront
Falls die Darstellung über ein Legacy-Profil erfolgt, unterscheidet das WebFront ob kein Variablenprofil gesetzt ist oder das Profil "~Switch" und hat für jeden Fall eine eigene Darstellung.
#### Mit Darstellung "Schalter" oder Profil ~Switch

#### Ohne Profil

## Schieberegler
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/schieberegler/
Bei einem Schieberegler kann ein Wert eingestellt werden.
#### Voraussetzungen
Ein Schieberegler ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Schieberegler. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Typ Integer oder Float
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
#### Parameter
| Parameter | Beschreibung |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Minimaler Wert | Minimaler Wert des Schiebereglers |
| Maximaler Wert | Maximaler Wert des Schiebereglers |
| Schrittweite | Größe eines einzelnen Schrittes im Schieberegler. Bei 0 hat der Schieberegler keine feste Schrittweite. |
| Gradient | Definiert die Optik des Gradienten |
| Benutzerdefinierter Gradient | In der Liste können für spezifische Werte Farben ausgewählt werden. Der Gradient des Schiebereglers besteht dann aus einem Verlauf über die definierten Farben. (nur sichtbar und verwendbar falls Gradient = "Benutzerdefiniert") |
| Verwendung der Variable | Verwendung der Variable in zusammengefassten Darstellungen. Der Wert wirkt sich nicht direkt auf die Darstellung der Variable auf, sondern nur auf deren Verwendung in zusammengefassten Darstellungen. |
| Präfix | Wird bei Formatierung vor den Variablenwert geschrieben |
| Suffix | Wird bei Formatierung hinter den Variablenwert geschrieben |
| Anzeigetyp | Bei "Prozentual" werden die Werte prozentual dargestellt. Somit wird der Minimalwert als 0 und der Maximalwert als 100 dargestellt, unabhängig von deren absoluten Werten. Andere Werte werden ebenfalls dementsprechend skaliert. Bei "Absolut" erfolgt keine Umrechnung. |
| Tausendertrennzeichen | Definiert das verwendete Tausendertrennzeichen bei Formatierung des Wertes |
| Nachkommastellen | Die Anzahl der Nachkommastellen, welche bei Formatierung des Wertes dargestellt werden (nur verfügbar für Variablen des Typs Float) |
| Dezimaltrennzeichen | Definiert das verwendete Dezimaltrennzeichen bei Formatierung des Wertes (nur verfügbar für Variablen des Typs Float) |
| Icon | Das [Icon](https://www.symcon.de/de/llms/components/icons.md), welches für die Variable verwendet wird |
| Verwende aktualisierte Parameter für spezifische Intervalle | Aktiviert eine Liste von Intervallen, welche die Formatierung in spezifischen Wertbereichen überschreiben können (nicht verwendbar falls Anzeigetyp = "Prozentual") |
| Intervalle | Eine Liste von Intervallen zum Überschreiben der Formatierung in spezifischen Wertbereichen |
##### Intervalle
| Parameter | Beschreibung |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Anfang des Intervalls | Ab diesem Wert wird das Intervall angewandt |
| Ende des Intervalls | Bis zu diesem Wert wird das Intervall angewandt. Sollte es ein Intervall mit Anfang auf diesem Wert geben, so wird bei dem exakten Wert für Ende das andere Intervall verwendet und das definierte Intervall nur für Werte genutzt, welche kleiner als das Ende sind. |
| Anzeige | Bei "Formatierter Wert" wird der Wert mit angepassten Parametern formatiert, bei "Konstante" wird die Darstellung durch einen konstanten Wert ersetzt |
| Konstante | Definiert den Text, welcher ohne weitere Formatierung für Werte innerhalb dieses Intervalls dargestellt werden soll. (nur verfügbar falls Anzeige = "Konstante") |
| Umrechnungsfaktor | Vor der Formatierung wird der Wert durch den Umrechnungsfaktor geteilt (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Überschreibe Präfix | Ist der Schalter aktiviert wird nicht der Präfix der Hauptkonfiguration verwendet, sondern der im Intervall definierte Präfix (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Präfix | Verwendeter Präfix innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Präfix" aktiv) |
| Überschreibe Suffix | Ist der Schalter aktiviert wird nicht der Suffix der Hauptkonfiguration verwendet, sondern der im Intervall definierte Suffix (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Suffix | Verwendeter Suffix innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Suffix" aktiv) |
| Überschreibe Nachkommastellen | Ist der Schalter aktiviert werden nicht die Nachkommastellen der Hauptkonfiguration verwendet, sondern die im Intervall definierten Nachkommastellen (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Nachkommastellen | Verwendete Nachkommastellen innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Nachkommastellen" aktiv) |
| Überschreibe Icon | Ist der Schalter aktiviert wird nicht das Icon der Hauptkonfiguration verwendet, sondern das im Intervall definierte Icon |
| Icon | Verwendetes Icon innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Icon" aktiv) |
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Schieberegler darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* Erfüllt nicht die Bedingungen von einer der folgenden Darstellungen:
* [Jalousie](https://www.symcon.de/de/llms/components/object-presentation.md)
* [Aufzählung](https://www.symcon.de/de/llms/components/object-presentation.md)
* [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) mit folgenden Parametern:
* Max Wert > Min Wert
* Schrittweite beliebig, hat aber Einfluss auf die Schrittweite des Sliders
Bei der Verwendung eines Variablenprofils werden einige Parameter des Schiebereglers abgeleitet
#### Gradient
Der Gradient hängt vom Profilnamen ab.
* Temparatur für Profilnamen
* ~Temperature
* ~Temperature.Difference
* ~Temperature.Fahrenheit
* ~Temperature.Room
* Farbtemperatur für Profilnamen "~TWColor"
* Standard sonst
#### Verwendung der Variablen
Die Verwendung hängt vom Profilnamen ab.
* Temparatur für Profilnamen
* ~Temperature
* ~Temperature.Difference
* ~Temperature.Fahrenheit
* ~Temperature.Room
* Farbtemperatur für Profilnamen "~TWColor"
* Intensität falls Profilname mit "~Intensity." beginnt
* Lautstärke für Profilnamen "~Volume"
* Fortschritt für Profilnamen "~Progress"
* Keine hiervon sonst
#### Anzeigetyp
"Prozentual" falls Suffix "%", sonst "Absolut"
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront
Das WebFront unterscheidet je nach Anzeigetyp und hat für jeden Fall eine eigene Darstellung:
#### Anzeigetyp "Absolut"

#### Anzeigetyp "Prozentual"

## Stream
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/stream/
Streams stellen die Videoausgabe, beispielsweise von einer Überwachungskamera, dar.
#### Voraussetzungen
Ein Stream ist ein [Medium](https://www.symcon.de/de/llms/concepts.md) vom Typ [Stream](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Szenen
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/szenen/
_Benötigt Symcon >= 7.0_
Verschiedene Geräteeinstellungen können gemeinsam als Szene abgespeichert und wieder aufgerufen werden.
#### Voraussetzungen
Szenen erfordern eine [Instanz](https://www.symcon.de/de/llms/concepts.md) des Moduls [SzenenSteuerung](https://www.symcon.de/de/service/dokumentation/modulreferenz/szenensteuerung).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Im Vollbild

#### Innerhalb einer Liste
In der Listenansicht fällt die Visualisierung auf die Darstellung [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) zurück.

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir die Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.
## Thermostat
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/thermostat/
Ein Thermostat ermöglicht die Einstellung einer gewünschten Temperatur kombiniert mit einer Anzeige der aktuellen Temperatur.
#### Voraussetzungen
Eine [Instanz](https://www.symcon.de/de/llms/concepts.md) kann als Thermostat dargestellt werden, wenn folgende untergeordnete Objekte vorhanden sind:
* Soll Temperatur:
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Temperatur"
* Ist Temperatur:
* Verwendet die [Variablendarstellung](https://www.symcon.de/de/llms/concepts.md) [Wertanzeige](https://www.symcon.de/de/llms/components/object-presentation.md)
* Verwendung der Variablen ist "Temperatur"
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste
In der Listenansicht fällt die Visualisierung auf die Darstellung [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) zurück.

### Aussehen im WebFront
Diese Darstellung wird nicht vom WebFront unterstützt. Stattdessen wir die Instanz als [Liste](https://www.symcon.de/de/llms/components/object-presentation.md) dargestellt.
## Ton
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/ton/
In der Visualisierung können Audiodateien eingebunden und wiedergegeben werden.
#### Voraussetzungen
Ein Ton ist ein [Medium](https://www.symcon.de/de/llms/concepts.md) vom Typ [Ton](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel
Die Fortschrittleiste und der Stop-Button können je nach Größe der Kachel wegfallen.

#### Innerhalb einer Liste

### Aussehen im WebFront
Die Darstellung kann je nach Browser variieren.

## Webinhalt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/webinhalt/
Ein Webinhalt kann beliebige HTML-Inhalte darstellen und bietet somit Experten die Möglichkeit individuelle Elemente darzustellen. Durch CSS wird Text innerhalb der Darstellung analog zum Rest der Visualisierung dargestellt. Außerdem kann die Adresse einer beliebigen Internetseite angegeben werden im sie ein der Visualisierung darzustellen.
#### Voraussetzungen
Ein Webinhalt ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Webinhalt. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* keine eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
* Typ String
### Parameter
| Parameter | Beschreibung |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Darstellungstyp | Bei "HTML Inhalt" wird der Variablenwert als HTML interpretiert und dargestellt. Bei "Webseite" kann die Adresse einer Website angegeben werden, solange diese das Einbetten nicht blockiert. |
| Ränder entfernen | Wenn aktiviert, werden die Ränder der Kachel entfernt. |
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Webinhalt darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* Ausgewähltes [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) ~HTMLBox
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Wertanzeige
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/wertanzeige/
Zeigt einen Wert optional mit Hintergrundfarbe oder Werteverlauf an.
### Voraussetzungen
Eine Wertanzeige ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Wertanzeige. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Keine eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
### Parameter
Je nach Variablentyp (Boolean, Integer, Float, String) stehen verschiedene Parameter zur Verfügung. Die folgenden gelten für alle.
| Parameter | Beschreibung |
| ------------- | ---------------------------------------------------------------------------------------- |
| Standardicon | Das Icon, welches angezeigt wird. Es kann durch weitere Parameter überschrieben werden |
| Standardfarbe | Die Farbe, mit welcher der Wert hinterlegt wird |
| Präfix | Wird bei Formatierung vor den Variablenwert geschrieben (nicht verfügbar für Boolean) |
| Suffix | Wird bei Formatierung hinter den Variablenwert geschrieben (nicht verfügbar für Boolean) |
#### Float und Integer
| Parameter | Beschreibung |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verwendung der Variable | Verwendung der Variable in zusammengefassten Darstellungen. Der Wert wirkt sich nicht direkt auf die Darstellung der Variable auf, sondern nur auf deren Verwendung in zusammengefassten Darstellungen. |
| Anzeigetyp | Bei "Prozentual" werden die Werte prozentual dargestellt. Somit wird der Minimalwert als 0 und der Maximalwert als 100 dargestellt, unabhängig von deren absoluten Werten. Andere Werte werden ebenfalls dementsprechend skaliert. Bei "Absolut" erfolgt keine Umrechnung. |
| Tausendertrennzeichen | Definiert das verwendete Tausendertrennzeichen bei Formatierung des Wertes |
| Minimaler Wert | Minimaler Wert der Variable (nur verwendbar falls Anzeigetyp = "Prozentual") |
| Maximaler Wert | Maximaler Wert der Variable (nur verwendbar falls Anzeigetyp = "Prozentual") |
| Nachkommastellen | Die Anzahl der Nachkommastellen, welche bei Formatierung des Wertes dargestellt werden (nur verfügbar für Variablen des Typs Float) |
| Dezimaltrennzeichen | Definiert das verwendete Dezimaltrennzeichen bei Formatierung des Wertes (nur verfügbar für Variablen des Typs Float) |
| Icon | Das [Icon](https://www.symcon.de/de/llms/components/icons.md), welches für die Variable verwendet wird |
| Verwende aktualisierte Parameter für spezifische Intervalle | Aktiviert eine Liste von Intervallen, welche die Formatierung in spezifischen Wertbereichen überschreiben können (nicht verwendbar falls Anzeigetyp = "Prozentual") |
| Intervalle | Eine Liste von Intervallen zum Überschreiben der Formatierung in spezifischen Wertbereichen |
##### Intervalle
| Parameter | Beschreibung |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Anfang des Intervalls | Ab diesem Wert wird das Intervall angewandt |
| Ende des Intervalls | Bis zu diesem Wert wird das Intervall angewandt. Sollte es ein Intervall mit Anfang auf diesem Wert geben, so wird bei dem exakten Wert für Ende das andere Intervall verwendet und das definierte Intervall nur für Werte genutzt, welche kleiner als das Ende sind. |
| Anzeige | Bei "Formatierter Wert" wird der Wert mit angepassten Parametern formatiert, bei "Konstante" wird die Darstellung durch einen konstanten Wert ersetzt |
| Konstante | Definiert den Text, welcher ohne weitere Formatierung für Werte innerhalb dieses Intervalls dargestellt werden soll. (nur verfügbar falls Anzeige = "Konstante") |
| Umrechnungsfaktor | Vor der Formatierung wird der Wert durch den Umrechnungsfaktor geteilt (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Überschreibe Präfix | Ist der Schalter aktiviert wird nicht der Präfix der Hauptkonfiguration verwendet, sondern der im Intervall definierte Präfix (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Präfix | Verwendeter Präfix innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Präfix" aktiv) |
| Überschreibe Suffix | Ist der Schalter aktiviert wird nicht der Suffix der Hauptkonfiguration verwendet, sondern der im Intervall definierte Suffix (nur verfügbar falls Anzeige = "Formatierter Wert") |
| Suffix | Verwendeter Suffix innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Suffix" aktiv) |
| Überschreibe Nachkommastellen | Ist der Schalter aktiviert werden nicht die Nachkommastellen der Hauptkonfiguration verwendet, sondern die im Intervall definierten Nachkommastellen (nur verfügbar falls Anzeige = "Formatierter Wert" und Variable des Typs Float) |
| Nachkommastellen | Verwendete Nachkommastellen innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Nachkommastellen" aktiv) |
| Überschreibe Icon | Ist der Schalter aktiviert wird nicht das Icon der Hauptkonfiguration verwendet, sondern das im Intervall definierte Icon |
| Icon | Verwendetes Icon innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Icon" aktiv) |
| Überschreibe Farbe | Ist der Schalter aktiviert wird nicht die Farbe der Hauptkonfiguration verwendet, sondern die im Intervall definierte Farbe |
| Farbe | Verwendete Farbe innerhalb des Intervalls (nur verfügbar falls Schalter "Überschreibe Farbe" aktiv) |
#### Boolean und String
| Parameter | Beschreibung |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mehrere Zeilen | (Nur String) Stellt den Variablenwert in mehreren Zeilen dar |
| Optionen | Die einzelnen Optionen der Darstellung, welche es erlauben für verschiedene Variablenwerte bestimmte Texte, Farben und Icons anzugeigen |
##### Optionen
| Parameter | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Wert | Variablenwert für den diese Option gilt |
| Beschriftung | Text, der für diese Option angezeigt wird |
| Überschreibe Icon | Falls gesetzt, wird das Standardicon dieser Darstellung überschrieben, falls die Variable den Wert dieser Option hat |
| Icon | Icon für die Variable, falls die Variable den Wert dieser Option hat (nur verfügbar wenn "Icon überschreiben" gesetzt) |
| Überschreibe Farbe | Falls gesetzt, wird die Standardfarbe dieser Darstellung überschrieben, falls die Variable den Wert dieser Option hat |
| Farbe | Farbe mit welcher die Option in der Aufzählung dargestellt wird |
#### Werteverlauf
Ist das [Logging](https://www.symcon.de/de/llms/modules/archive-control.md) für die Variable aktiviert, wird eine Vorschau des Werteverlaufs angezeigt.
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Wertanzeige darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* Erfüllt nicht die Bedingungen von einer der folgenden Darstellungen:
* [Datum/Uhrzeit](https://www.symcon.de/de/llms/components/object-presentation.md)
* [Farbanzeige](https://www.symcon.de/de/llms/components/object-presentation.md)
* [Mehrzeilige Textbox](https://www.symcon.de/de/llms/components/object-presentation.md)
* [HTML Box](https://www.symcon.de/de/llms/components/object-presentation.md)
Bei der Verwendung eines Variablenprofils werden einige Parameter des Wertanzeige abgeleitet
#### Verwendung der Variablen
Die Verwendung hängt vom Profilnamen ab.
* Temparatur für Profilnamen
* ~Temperature
* ~Temperature.Difference
* ~Temperature.Fahrenheit
* ~Temperature.Room
#### Anzeigetyp
"Prozentual" falls Suffix "%", sonst "Absolut"
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront
Im WebFront wird keine Vorschau des Werteverlaufs angezeigt.

## Werteingabe
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/werteingabe/
_Benötigt Symcon >= 5.0_
Eine Werteingabe ermöglicht das verändern von Werten als Freitext.
### Voraussetzungen
Eine Werteingabe ist eine [Variable](https://www.symcon.de/de/llms/concepts.md) mit der [Darstellung](https://www.symcon.de/de/llms/concepts.md) Werteingabe. Um diese Darstellung zu verwenden muss die Variable folgende Bedingungen erfüllen:
* Eingerichtete [Variablenaktion](https://www.symcon.de/de/llms/concepts.md)
* Variablentyp Integer, Float oder String
#### Parameter
| Parameter | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Präfix | Wird bei Formatierung vor den Variablenwert geschrieben |
| Suffix | Wird bei Formatierung hinter den Variablenwert geschrieben |
| Mehrzeilige Eingabe | Falls aktiv, ist eine Eingabe über mehrere Zeilen möglich, ansonsten ist die Eingabe auf eine einzelne Zeile eingeschränkt (nur verfügbar für Variablen des Typs String) |
> **Hinweis:** Ist die Variable numerisch, werden Eingaben, die keine Zahlen sind, herausgefiltert.
### Darstellung als Legacy-Profil
Verwendet eine Variable die Darstellung [Legacy Profil](https://www.symcon.de/de/llms/components/object-presentation.md), so wird diese als Schieberegler darstellt, falls sie zusätzlich folgende Bedingungen erfüllt:
* kein [Variablenprofil](https://www.symcon.de/de/llms/concepts.md) oder Variablenprofil "~TextBox"
Bei der Verwendung eines Variablenprofils ist der Parameter "Mehrzeilige Eingabe" für das Variablenprofil "~TextBox" aktiviert, ansonsten deaktiviert.
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Wochenplan
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/wochenplan/
Ein Wochenplan kann in der Visualisierung betrachtet und konfiguriert werden.
#### Voraussetzungen
Ein Wochenplan ist ein [Ereignis](https://www.symcon.de/de/llms/concepts.md) vom Typ [Wochenplan](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Innerhalb einer Liste

### Aussehen im WebFront

## Zyklisches Ereignis
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/objekt-darstellung/zyklisches-ereignis/
Ein zyklisches Ereignis kann in der Visualisierung betrachtet und konfiguriert werden.
#### Voraussetzungen
Ein zyklisches Ereignis ist ein [Ereignis](https://www.symcon.de/de/llms/concepts.md) vom Typ [Zyklisch](https://www.symcon.de/de/llms/concepts.md).
### Aussehen in Kachel Visualisierung
#### Als eigene Kachel

#### Im Vollbild

#### Innerhalb einer Liste

### Aussehen im WebFront

---
# Icons
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/komponenten/icons/
Jedes Objekt in Symcon kann ein Icon besitzen. Zusätzlich können Icons innerhalb von [Variablendarstellungen](https://www.symcon.de/de/llms/concepts.md) vorhanden sein oder durch verlinkte Strukturen (siehe [Links](https://www.symcon.de/de/llms/concepts.md)) vererbt werden.
Icons werden nach folgender Reihenfolge priorisiert gesetzt:
1. Das dem Link-Objekt zugewiesene Icon (bei Verlinkung)
2. Das dem (verlinkten) Objekt zugewiesene Icon
3. Objekttypabhängig:
* Bei Automationen: das Icon *caret-right*
* Bei Medien: das Icon *image*
* Bei Variablen: Icon basierend auf der Darstellung
Icons, die anhand der Variablendarstellung gesetzt werden, werden automatisch bei Variablenwertänderung aktualisiert.
Wenn ein vererbtes Icon explizit entfernt werden soll, so kann das [spezielle Icon *Transparent*](https://www.symcon.de/./#Das_Icon_Transparent) ausgewählt werden.
[Video](https://www.youtube.com/embed/G5MLo4PMEpE?rel=0&cc_load_policy=1)
### Übersicht der Icons
In der Kachelvisualisierung können die mehr als 3000 klassischen Icons von Font Awesome verwendet werden: [Verwendbare Icons](https://fontawesome.com/search?f=classic&s=light&o=r). Diese Icons werden im Light-Stil dargestellt. Außerdem sind alle [Brand-Icons](https://fontawesome.com/search?ip=brands&o=r) verwendbar. Schließlich stehen noch eine Reihe von Icons, die speziell für die Verwendung in Symcon erstellt wurden, zur Auswahl:
`heatpump`, `marquee-closed`, `marquee-half`, `marquee-open`, `terrace-door-closed`, `terrace-door-open`, `terrace-door-tilted`, `volant-closed`, `volant-half`, `volant-open`, `window-left-closed-right-closed`, `window-left-closed-right-open`, `window-left-closed-right-tilted`, `window-left-closed`, `window-left-open-right-closed`, `window-left-open-right-open`, `window-left-open-right-tilted`, `window-left-open`, `window-left-tilted-right-closed`, `window-left-tilted-right-open`, `window-left-tilted-right-tilted`, `window-left-tilted`, `window-right-closed`, `window-right-open`, `window-right-tilted`, `window-roof-closed`, `window-roof-open`
Im WebFront können die [Legacy-Icons](https://www.symcon.de/de/llms/components/webfront-visualization.md) verwendet werden.
### Das Icon *Transparent*
Das Icon *Transparent* ist ein Sonderfall. Wird dieses Icon ausgewählt, so kann ein anderes Icon, welches niedriger in der Hierarchie ist (s.o.), überschrieben werden, so dass kein Icon angezeigt wird. Dies kann als Stilelement verwendet werden, um z.B. bei verlinken Objektkategorien kein Icon anzuzeigen, obwohl die Kategorie ein Icon zugewiesen hatte.
---
# Befehlsreferenz – Übersicht
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/
Die Befehlsreferenz beinhaltet die Befehle, welche IP-Symcon zur Verfügung stellt und zur eigenen Verwaltung nutzt.
Hier befindet sich eine Auflistung der IP-Symcon spezifischen Befehle.
> **Hinweis:** __Eine Auflistung der modulspezifischen Befehle kann unter [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) gefunden werden.__
---
# Ablaufsteuerung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/
## IPS_Execute
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-execute/
`bool IPS_Execute(string $Programmpfad, string $Parameter, bool $Dummy, bool $Warten)`
startet ein externes Programm
**Parameter**
- `$Programmpfad` (string): Vollständiger Pfad zum Programm
- `$Parameter` (string): An das Programm zu übergebende Parameter (optional)
- `$Dummy` (bool): Immer true angeben, Parameter wird nicht ausgewertet, dieser wurde nur in Version 1.x genutzt.
- `$Warten` (bool): Gibt an, ob auf das Programmende gewartet werden soll.
**Rückgabewert** (bool): Den Rückgabewert von stderr/stdout, wenn der __Warten__ Parameter auf True ist, sonst ist die Rückgabe ein leerer String.
Gibt an, ob auf das Programmende gewartet werden soll.
**Beispiel**
```php
//Eine Batchdatei starten
IPS_Execute("C:/autoexec.bat", "", false, false);
```
## IPS_ExecuteEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-executeex/
`string IPS_ExecuteEx(string $Programmpfad, string $Parameter, bool $FensterZeigen, bool $Warten, int $SessionID)`
startet ein externes Programm im Userkontext
**Parameter**
- `$Programmpfad` (string): Vollständiger Pfad zum Programm
- `$Parameter` (string): An das Programm zu übergebende Parameter (optional)
- `$FensterZeigen` (bool): __True__, wenn das Fenster angezeigt werden soll; __False__, wenn das Fenster unsichbar bleiben soll
- `$Warten` (bool): Gibt an, ob aus das Programmende gewartet werden soll.
- `$SessionID` (int): Die User Session ID, die genutzt werden soll (Unter XP ab 0, 2003/Vista ab 1), < 0 für automatische Auswahl
**Rückgabewert** (string): Leerstring
Die User Session ID, die genutzt werden soll (Unter XP ab 0, 2003/Vista ab 1), < 0 für automatische Auswahl
**Beispiel**
```php
// Notepad starten
IPS_ExecuteEx("C:\\Windows\\notepad.exe", "", true, false, -1);
```
## IPS_RunAction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runaction/
`bool IPS_RunAction(string $AktionsID, array $AktionsParameter)`
führt eine einzelne Aktion aus
**Parameter**
- `$AktionsID` (string): GUID der auszuführenden Aktion
- `$AktionsParameter` (array): Liste der Parameter der auszuführenden Aktion
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Liste der Parameter der auszuführenden Aktion
**Beispiel**
```php
// Führe Skript mit der ID 12345 aus
IPS_RunAction("{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", ["TARGET" => 12345, "ENVIRONMENT" => "Default", "PARENT" => $_IPS['SELF']]);
// Zeige alle Aktionen und dazugehörigen GUIDs an
foreach(json_decode(IPS_GetActions(), true) as $action) {
echo $action['id'] . " -> " . $action['caption'] . PHP_EOL;
// var_dump($action); <-- Gibt alle Details wie z.B. restrictions aus
}
```
## IPS_RunActionWait
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runactionwait/
`string IPS_RunActionWait(string $AktionsID, array $AktionsParameter)`
führt eine einzelne Aktion aus und wartet auf das Resultat
**Parameter**
- `$AktionsID` (string): ID der auszuführenden Aktion
- `$AktionsParameter` (array): Liste der Parameter der auszuführenden Aktion
**Rückgabewert** (string): Fehlermeldung der Ausführung
Liste der Parameter der auszuführenden Aktion
**Beispiel**
```php
// Führe Skript mit der ID 12345 aus
$error = IPS_RunActionWait("{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", ["TARGET" => 12345, "ENVIRONMENT" => "Default", "PARENT" => $_IPS['SELF']]);
if ($error === "") {
echo "Aktion wurde fehlerfrei ausgeführt";
}
else {
echo "Bei der Ausführung gab es einen Fehler: " . $error;
}
```
## IPS_RunScript
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscript/
`bool IPS_RunScript(int $SkriptID)`
startet ein anderes IP-Symcon Skript
**Parameter**
- `$SkriptID` (int): Eindeutige ID des Skriptes
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Eindeutige ID des Skriptes
**Beispiel**
```php
IPS_RunScript(12345 /*[Gartenbeleuchtung An]*/);
```
## IPS_RunScriptEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscriptex/
`bool IPS_RunScriptEx(int $SkriptID, array $Parameter)`
startet ein anderes IP-Symcon Skript und übergibt Variablen
**Parameter**
- `$SkriptID` (int): Eindeutige ID des Skriptes
- `$Parameter` (array): Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zu gegriffen werden kann.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zu gegriffen werden kann.
**Beispiel**
```php
//Skript, dass ein anderes Skript mit Parameterübergabe starten will
IPS_RunScriptEx(12345 /*[Temp]*/, Array("Titel" => "Temp.", "Tmin" => 10.0));
//Skript, das aufgerufen wurde. Parameter sind als einzelne Variablen in der
//globalen Variablen $_IPS verfügbar. Der Variablenname entspricht dem im Array-Index
//übergebenen Namen.
$Ueberschrift = $_IPS['Titel']. "verlauf"; //Ergibt: Temp.verlauf
$MaxTemp = $_IPS['Tmin'] + 30.0;
```
## IPS_RunScriptText
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscripttext/
`bool IPS_RunScriptText(string $SkriptText)`
startet einen Text als IP-Symcon Skript
**Parameter**
- `$SkriptText` (string): String welcher als Skript aufgerufen werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
String welcher als Skript aufgerufen werden soll.
**Beispiel**
```php
// Gibt "Hallo Welt" im Meldungsfenster zurück
IPS_RunScriptText("echo 'Hallo Welt';");
```
## IPS_RunScriptTextEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscripttextex/
`bool IPS_RunScriptTextEx(string $SkriptText, array $Parameter)`
startet einen Text als IP-Symcon Skript und übergibt Variablen
**Parameter**
- `$SkriptText` (string): String welcher als Skript aufgerufen werden soll.
- `$Parameter` (array): Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zugegriffen werden kann.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zugegriffen werden kann.
**Beispiel**
```php
// Gibt "Hallo Welt" im Meldungsfenster zurück
IPS_RunScriptTextEx('echo $_IPS["Anfang"] . " ". $_IPS["Ende"];', Array("Anfang" => "Hallo", "Ende" => "Welt"));
```
## IPS_RunScriptTextWait
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscripttextwait/
`string IPS_RunScriptTextWait(string $SkriptText)`
startet einen Text als IP-Symcon Skript
**Parameter**
- `$SkriptText` (string): String welcher als Skript aufgerufen werden soll.
**Rückgabewert** (string): Resultat des ausgeführten Skripts
String welcher als Skript aufgerufen werden soll.
**Beispiel**
```php
// Gibt "Hallo Welt" zurück
echo IPS_RunScriptTextWait("echo 'Hallo Welt';");
```
## IPS_RunScriptTextWaitEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscripttextwaitex/
`string IPS_RunScriptTextWaitEx(string $SkriptText, array $Parameter)`
startet einen Text als IP-Symcon Skript und übergibt Variablen
**Parameter**
- `$SkriptText` (string): String welcher als Skript aufgerufen werden soll.
- `$Parameter` (array): Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zugegriffen werden kann.
**Rückgabewert** (string): Resultat des ausgeführten Skripts
Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zugegriffen werden kann.
**Beispiel**
```php
//Skript, dass einen Text als Skript mit Parameterübergabe starten will
echo IPS_RunScriptTextWaitEx('echo $_IPS["Titel"]. "verlauf" . PHP_EOL; echo $_IPS["Tmin"] + 30.0;', Array("Titel" => "Temp.", "Tmin" => 10.0));
```
## IPS_RunScriptWait
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscriptwait/
`string IPS_RunScriptWait(int $SkriptID)`
startet ein anderes IP-Symcon Skript und wartet auf das Resultat
**Parameter**
- `$SkriptID` (int): Eindeutige ID des Skriptes
**Rückgabewert** (string): Resultat des ausgeführten Skripts
Eindeutige ID des Skriptes
**Beispiel**
```php
echo IPS_RunScriptWait(12345 /*[Skript A]*/);
```
## IPS_RunScriptWaitEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-runscriptwaitex/
`string IPS_RunScriptWaitEx(int $SkriptID, array $Parameter)`
startet ein anderes IP-Symcon Skript und übergibt Variablen
**Parameter**
- `$SkriptID` (int): Eindeutige ID des Skriptes
- `$Parameter` (array): Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zugegriffen werden kann.
**Rückgabewert** (string): Resultat des ausgeführten Skripts
Key (string) => Value (variant) Paar auf die im neu ausgeführten Skript zugegriffen werden kann.
**Beispiel**
```php
//Skript, dass ein anderes Skript mit Parameterübergabe starten will
echo IPS_RunScriptWaitEx(12345 /*[Temp]*/, Array("Titel" => "Temp.", "Tmin" => 10.0));
//Skript, das aufgerufen wurde. Parameter sind als einzelne Variablen in der
//globalen Variablen $_IPS verfügbar. Der Variablenname entspricht dem im Array-Index
//übergebenen Namen.
$Ueberschrift = $_IPS['Titel']. "verlauf"; //Ergibt: Temp.verlauf
echo $_IPS['Tmin'] + 30.0;
```
## IPS_SemaphoreEnter
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-semaphoreenter/
`bool IPS_SemaphoreEnter(string $Name, int $Wartezeit)`
erlaubt die Synchronisation mit anderen, gleichzeitig laufenden Skripts
**Parameter**
- `$Name` (string): Name, der die Semaphore beschreibt
- `$Wartezeit` (int): Millisekunden, die gewartet wird, bis die Funktion abbricht
**Rückgabewert** (bool): __TRUE__, wenn die Semaphore betreten wurde. __FALSE__, wenn die Semaphore vor Ablauf der Wartezeit nicht betreten werden konnte
Millisekunden, die gewartet wird, bis die Funktion abbricht
**Beispiel**
```php
if (IPS_SemaphoreEnter("KritischerPunkt", 1000))
{
// ...Kritischer Codeabschnitt
//Semaphore wieder freigeben!
IPS_SemaphoreLeave("KritischerPunkt");
}
else
{
// ...Keine ausführung Möglich. Ein anderes Skript nutzt den "KritischenPunkt"
// für länger als 1 Sekunde, sodass unsere Wartezeit überschritten wird.
}
```
## IPS_SemaphoreLeave
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-semaphoreleave/
`bool IPS_SemaphoreLeave(string $Name)`
erlaubt die Synchronisation mit anderen, gleichzeitig laufenden Skripts
**Parameter**
- `$Name` (string): Name, der die Semaphore beschreibt.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name, der die Semaphore beschreibt.
**Beispiel**
```php
//Siehe IPS_SemaphoreEnter()
```
## IPS_Sleep
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-sleep/
`bool IPS_Sleep(int $Wartezeit)`
verzögert ein Skript um ein bestimme zeit
**Parameter**
- `$Wartezeit` (int): Gibt die Wartezeit in Millisekunden an
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gibt die Wartezeit in Millisekunden an
**Beispiel**
```php
// Daten zeitverzögert an den COM Port ausgeben
COMPort_SendText($id, chr(0x1b)); // ESC an LC-Display senden
IPS_Sleep(200); // 200ms warten
COMPort_SendText($id, "0"); // LC-Display löschen
IPS_Sleep(200); // 200ms warten
COMPort_SendText($id, "Guten Tag!"); // Text ausgeben
// 2 Sekunden warten mit php Alternativen
sleep(2);
IPS_Sleep(2000);
usleep(2000000);
```
---
# Ereignisverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/
## IPS_CreateEvent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-createevent/
`int IPS_CreateEvent(int $EreignisTyp)`
legt ein neues Ereignis an
**Parameter**
- `$EreignisTyp` (int)
| Wert | Beschreibung |
| ---- | -------------------------------------- |
| 0 | Legt ein __“ausgelöstes”__ Ereignis an |
| 1 | Legt ein __“zyklisches”__ Ereignis an |
| 2 | Legt ein __“Wochenplan”__ Ereignis an |
**Rückgabewert** (int): ID des neu erstellten Ereignisses
| Wert | Beschreibung |
| ---- | -------------------------------------- |
| 0 | Legt ein __“ausgelöstes”__ Ereignis an |
| 1 | Legt ein __“zyklisches”__ Ereignis an |
| 2 | Legt ein __“Wochenplan”__ Ereignis an |
**Beispiel**
```php
$eid = IPS_CreateEvent(0); //Ausgelöstes Ereignis
IPS_SetEventTrigger($eid, 1, 15754); //Bei Änderung von Variable mit ID 15754
IPS_SetParent($eid, $_IPS['SELF']); //Ereignis zuordnen
IPS_SetEventActive($eid, true); //Ereignis aktivieren
$eid = IPS_CreateEvent(1); //Zyklisches Ereignis
IPS_SetEventCyclic($eid, 2, 1, 0, 0, 3, 6); //Jeden Tag alle 6 Stunden
IPS_SetEventCyclicDateFrom($eid, 1, 12, date("Y")); //Vom 1.12 diesen Jahres
IPS_SetEventCyclicDateTo($eid, 31, 12, date("Y")); //Bis 31.12 diesen Jahres
IPS_SetEventCyclicTimeFrom($eid, 15, 0, 0); //Von 15:00
IPS_SetEventCyclicTimeTo($eid, 23, 30, 0); //Bis 23:30
IPS_SetParent($eid, $_IPS['SELF']); //Eregnis zuordnen
IPS_SetEventActive($eid, true); //Ereignis aktivieren
// Seit IP-Symcon 6.0 erforderlich, sofern das Ereignis eine Automation ausführen soll (z.B. ein PHP-Skript)
IPS_SetEventAction($eid, '{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}', []);
```
## IPS_DeleteEvent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-deleteevent/
`bool IPS_DeleteEvent(int $EreignisID)`
löscht eine bestehendes Ereignis
**Parameter**
- `$EreignisID` (int): ID des zu löschenden Ereignisses
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu löschenden Ereignisses
**Beispiel**
```php
IPS_DeleteEvent($EreignisID);
```
## IPS_EventExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-eventexists/
`bool IPS_EventExists(int $EreignisID)`
prüft, ob ein Ereignis bereits existiert
**Parameter**
- `$EreignisID` (int): ID des zu prüfenden Ereignisses
**Rückgabewert** (bool): Falls die EreignisID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
ID des zu prüfenden Ereignisses
**Beispiel**
```php
if (IPS_EventExists(34881))
echo "Ein Ereignis mit dieser ID existiert!";
```
## IPS_GetEvent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-getevent/
`array IPS_GetEvent(int $EreignisID)`
_Benötigt Symcon >= 3.1_
liefert umfassende Informationen über ein Ereignis
**Parameter**
- `$EreignisID` (int): Die zu zeigende EreignisID
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Type | Beschreibung |
| ------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| __CyclicDateDay__ | integer | Datumstage. Siehe [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicDateDayValue__ | integer | Datumstagesintervall. Siehe [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicDateFrom__ | array | Startdatum als Array von Tag, Monat, Jahr; 0/0/0 = Immer. Siehe [IPS_SetEventCyclicDateFrom](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicDateTo__ | array | Enddatum als Array von Tag, Monat, Jahr; 0/0/0 = Nie. Siehe [IPS_SetEventCyclicDateTo](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicDateType__ | integer | Datumstyp. Siehe [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicDateValue__ | integer | Datumsintervall. Siehe [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicTimeFrom__ | array | Startzeit als Array von Stunde, Minute, Sekunde; 0/0/0 = Mitternacht. Siehe [IPS_SetEventCyclicTimeFrom](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicTimeTo__ | array | Endzeit als Array von Stunde, Minute, Sekunde; 0/0/0 = Nie. Siehe [IPS_SetEventCyclicTimeTo](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicTimeType__ | integer | Zeittyp. Siehe [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) |
| __CyclicTimeValue__ | integer | Zeitintervall. Siehe [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) |
| __EventActionID__ | string | ID der auszuführenden [Aktion](https://www.symcon.de/de/llms/concepts/automations.md) |
| __EventActionParameters__ | array | Parameter der auszuführenden [Aktion](https://www.symcon.de/de/llms/concepts/automations.md) |
| __EventActive__ | boolean | TRUE, wenn das Ereignis aktiv ist |
| __EventConditions__ | array | Array von Bedingungen. Siehe [IPS_SetEventCondition](https://www.symcon.de/de/llms/functions/management-events.md), [IPS_SetEventConditionDateRule](https://www.symcon.de/de/llms/functions/management-events.md), [IPS_SetEventConditionDayOfTheWeekRule](https://www.symcon.de/de/llms/functions/management-events.md), [IPS_SetEventConditionTimeRule](https://www.symcon.de/de/llms/functions/management-events.md) und [IPS_SetEventConditionVariableRule](https://www.symcon.de/de/llms/functions/management-events.md) |
| __EventID__ | integer | ID des Ereignisses |
| __EventLimit__ | integer | Restliche Anzahl der Ausführungen. 0 = Kein Limit |
| __EventScript__ | string | Immer ein leerer String, da dieses Feld nur noch aus Kompatibilitätsgründen vorhanden ist. Die Ausführung wird immer über die Aktion, welche über [IPS_SetEventScheduleAction](https://www.symcon.de/de/llms/functions/management-events.md) konfiguriert wird, gesteuert. |
| __EventType__ | integer | Ereignis-Typ: (0: Auslöser, 1: Zyklisch, 2: Wochenplan) |
| __LastRun__ | float | Unix Timestamp der letzten Ausführung, 0 = Nie |
| __NextRun__ | float | Unix Timestamp der nächsten Ausführung, 0 = Nie |
| __LastActionID__ | integer | Aktion ID vom Wochenplan der letzten Ausführung, 0 = Keine Aktion wurde ausgeführt |
| __NextActionID__ | integer | Aktion ID vom Wochenplan der nächsten Ausführung, 0 = Keine Aktion wird nächstes mal ausgeführt |
| __ScheduleActions__ | array | Array von Aktionen, welche dem Wochenplan zugehörig sind. Siehe [IPS_SetEventScheduleActionEx](https://www.symcon.de/de/llms/functions/management-events.md) |
| __ScheduleGroups__ | array | Array von Gruppen mit Schaltpunkten, welche dem Wochenplan zugehörig sind. Siehe [IPS_SetEventScheduleGroup](https://www.symcon.de/de/llms/functions/management-events.md) und [IPS_SetEventScheduleGroupPoint](https://www.symcon.de/de/llms/functions/management-events.md) |
| __TriggerSubsequentExecution__ | boolean | Erlaube erneute Ausführung bei Auslösung ohne Wertänderung |
| __TriggerType__ | integer | Wert für den Auslöser-Typ: Siehe [IPS_SetEventTrigger](https://www.symcon.de/de/llms/functions/management-events.md) |
| __TriggerValue__ | variant | Wert, der für die Prüfung je nach Auslösertyp verwendet wird |
| __TriggerVariableID__ | integer | VariablenID, die als Auslöser genutzt werden soll |
Die zu zeigende EreignisID
**Beispiel**
```php
$EreignisID = 46413;
$EreignisInfo = IPS_GetEvent($EreignisID);
print_r($EreignisInfo);
/* liefert z.B.:
Array
(
[EventID] => 41227
[EventType] => 2
[EventActive] => 1
[EventLimit] => 0
[EventConditions] => Array
(
[0] => Array
(
[ID] => 0
[ParentID] => 0
[VariableRules] => Array
(
[0] => Array
(
[ID] => 1
[VariableID] => 29025
[Comparison] => 4
[Value] => 500
)
)
[DateRules] => Array
(
[0] => Array
(
[ID] => 0
[Comparison] => 0
[Value] => Array
(
[Day] => 8
[Month] => 8
[Year] => 2001
)
)
[1] => Array(3)
(
[ID] => 1
[Comparison] => 4
[Value] => Array
(
[Day] => 1
[Month] => 1
[Year] => 2021
)
)
)
[TimeRules] => Array
(
[0] => Array
(
[ID] => 1
[Comparison] => 3
[Value] => Array
(
[Hour] => 9
[Minute] => 0
[Second] => 0
)
)
[1] => Array
(
[ID] => 2
[Comparison] => 5
[Value] => Array
(
[Hour] => 17
[Minute] => 0
[Second] => 0
)
)
)
[DayOfTheWeekRules] => Array
(
[0] => Array
(
[ID] => 0
[Comparison] => 0
[Value] => 3
)
)
[Operation] => 1
)
)
[TriggerType] => 0
[TriggerVariableID] => 0
[TriggerValue] =>
[TriggerSubsequentExecution] =>
[CyclicDateType] => 0
[CyclicDateValue] => 0
[CyclicDateDay] => 0
[CyclicDateDayValue] => 0
[CyclicDateFrom] => Array
(
[Day] => 0
[Month] => 0
[Year] => 0
)
[CyclicDateTo] => Array
(
[Day] => 0
[Month] => 0
[Year] => 0
)
[CyclicTimeType] => 0
[CyclicTimeValue] => 0
[CyclicTimeFrom] => Array
(
[Hour] => 0
[Minute] => 0
[Second] => 0
)
[CyclicTimeTo] => Array
(
[Hour] => 0
[Minute] => 0
[Second] => 0
)
[ScheduleActions] => Array
(
[0] => Array
(
[ID] => 0
[Name] => Kalt
[Color] => 255
[ScriptText] =>
[ActionID] => {3644F802-C152-464A-868A-242C2A3DEC5C}
[ActionParameters] => Array
(
[VALUE] => 2
)
)
[1] => Array
(
[ID] => 1
[Name] => Warm
[Color] => 16711680
[ScriptText] =>
[ActionID] => {3644F802-C152-464A-868A-242C2A3DEC5C}
[ActionParameters] => Array
(
[VALUE] => 0
)
)
)
[ScheduleGroups] => Array
(
[0] => Array
(
[ID] => 0
[Days] => 127
[Points] => Array
(
[0] => Array
(
[ID] => 13
[Start] => Array
(
[Hour] => 0
[Minute] => 0
[Second] => 0
)
[ActionID] => 1
)
[1] => Array
(
[ID] => 14
[Start] => Array
(
[Hour] => 12
[Minute] => 0
[Second] => 0
)
[ActionID] => 0
)
)
)
)
[EventScript] =>
[LastRun] => 0
[NextRun] => 0
[LastActionID] => 0
[NextActionID] => 0
)
*/
```
## IPS_GetEventIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-geteventidbyname/
`int IPS_GetEventIDByName(string $EreignisName, int $ÜbergeordneteID)`
ermittelt die ID eines Ereignisses anhand des Namens
**Parameter**
- `$EreignisName` (string): Zu suchender EreignisName
- `$ÜbergeordneteID` (int): Objekt, in dessen direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID des gefundenen Ereignisses, sonst FALSE
Objekt, in dessen direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$EreignisID = @IPS_GetEventIDByName("TimerABC", $ParentID);
if ($EreignisID === false)
echo "Ereignis nicht gefunden!";
else
echo "Die Ereignis-ID lautet: ". $EreignisID;
```
## IPS_GetEventList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-geteventlist/
`array IPS_GetEventList()`
liefert eine Liste aller existierenden Ereignisse
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Ereignisse in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon registrierten Ereignisse. Die IDs werden in einem Array aufgelistet. Falls kein Ereignis existiert, ist das Array leer.
**Beispiel**
```php
$alleEreignisse = IPS_GetEventList();
print_r($alleEreignisse);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
)
*/
```
## IPS_GetEventListByType
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-geteventlistbytype/
`array IPS_GetEventListByType(int $EreignisTyp)`
liefert eine Liste aller Ereignisse eines bestimmten Typs
**Parameter**
- `$EreignisTyp` (int)
| Wert | Beschreibung |
| ---- | ------------------------ |
| 0 | __Ausgelöstes Ereignis__ |
| 1 | __Zyklisches Ereignis__ |
| 2 | __Wochenplan Ereignis__ |
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Ereignisse vom Typ EreignisTyp in IP-Symcon
| Wert | Beschreibung |
| ---- | ------------------------ |
| 0 | __Ausgelöstes Ereignis__ |
| 1 | __Zyklisches Ereignis__ |
| 2 | __Wochenplan Ereignis__ |
**Beispiel**
```php
$alleEreignisse = IPS_GetEventListByType(1); // nur zyklische Ereignisse auflisten
print_r($alleEreignisse);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. …
)
*/
```
## IPS_IsConditionPassing
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-isconditionpassing/
`bool IPS_IsConditionPassing(string $Bedingung)`
_Benötigt Symcon >= 6.1_
prüft ob eine Bedingung erfüllt ist
**Parameter**
- `$Bedingung` (string): Eine Liste von JSON-codierten Bedingungen im Format von [SelectCondition](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
**Rückgabewert** (bool): __TRUE__, falls die Bedingung erfüllt ist, andernfalls __FALSE__
Eine Liste von JSON-codierten Bedingungen im Format von [SelectCondition](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
**Beispiel**
```php
if (IPS_IsConditionPassing($Bedingung)) {
// Tue etwas nur falls die Bedingung erfüllt ist
};
```
## IPS_SetEventAction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventaction/
`bool IPS_SetEventAction(int $EreignisID, string $AktionsID, array $AktionsParameter)`
_Benötigt Symcon >= 6.0_
setzt die auszuführende Aktion
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$AktionsID` (string): ID der auszuführenden Aktion
- `$AktionsParameter` (array): Liste der Parameter der auszuführenden Aktion
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Liste der Parameter der auszuführenden Aktion
**Beispiel**
```php
// Multipliziere Zielvariable des Ereignisses mit 3
IPS_SetEventAction($EreignisID, "{A3153696-013A-41B1-A001-5E8085D95465}", ["FACTOR" => 3]);
// Führe Zielautomation des Ereignisses aus
IPS_SetEventAction($EreignisID, "{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}", []);
```
## IPS_SetEventActive
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventactive/
`bool IPS_SetEventActive(int $EreignisID, bool $Aktiv)`
aktiviert/deaktiviert ein Ereignis
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Aktiv` (bool): Gibt an, ob das Ereignis aktiviert (__TRUE__) / deaktiviert (__FALSE__) werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gibt an, ob das Ereignis aktiviert (__TRUE__) / deaktiviert (__FALSE__) werden soll.
**Beispiel**
```php
IPS_SetEventActive($EreignisID, true); // Aktivert Ereignis
```
## IPS_SetEventCondition
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcondition/
`bool IPS_SetEventCondition(int $EreignisID, int $BedingungsID, int $ÜbergeordneteID, int $Operation)`
_Benötigt Symcon >= 4.4_
modifiziert die Bedingung eines Ereignisses
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): Eindeutige ID für diese Bedingung. Die Wurzelbedingung hat die ID 0. IDs müssen nur für dieses Ereignis eindeutig sein.
- `$ÜbergeordneteID` (int): ID der übergeordneten Bedingung. Bei der Erstellung der Wurzelbedingung muss dieser Parameter 0 sein.
- `$Operation` (int)
| Wert | Beschreibung |
| ---- | ------------------------------- |
| 0 | AND |
| 1 | OR |
| 2 | NAND (noch nicht implementiert) |
| 3 | NOR (noch nicht implementiert) |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Wert | Beschreibung |
| ---- | ------------------------------- |
| 0 | AND |
| 1 | OR |
| 2 | NAND (noch nicht implementiert) |
| 3 | NOR (noch nicht implementiert) |
**Beispiel**
```php
// Erstelle die Wurzelbedingung mit der Operation OR für das Ereignis mit der ID 12345
IPS_SetEventCondition(12345, 0, 0, 1);
// Erstelle eine untergeordnete Bedingung mit der Operation AND
IPS_SetEventCondition(12345, 1, 0, 0);
// Lösche untergeordnete Bedingung
IPS_SetEventCondition(12345, 1, -1, 0);
```
## IPS_SetEventConditionDateRule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventconditiondaterule/
`bool IPS_SetEventConditionDateRule(int $EreignisID, int $BedingungsID, int $RegelID, int $Vergleich, int $Tag, int $Monat, int $Jahr)`
_Benötigt Symcon >= 4.4_
modifiziert die Regel einer Bedingung eines Ereignisses für Datumsvergleiche
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): ID der Bedingung, welche die Regel beinhaltet
- `$RegelID` (int): Eindeutige ID für diese Regel. IDs müssen nur für dieses Bedingung eindeutig sein.
- `$Vergleich` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | == |
| 1 | != |
| 2 | > |
| 3 | >= |
| 4 | < |
| 5 | <= |
- `$Tag` (int): Tag mit dem das aktuelle Datum verglichen wird
- `$Monat` (int): Monat mit dem das aktuelle Datum verglichen wird
- `$Jahr` (int): Jahr mit dem das aktuelle Datum verglichen wird
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Jahr mit dem das aktuelle Datum verglichen wird
**Beispiel**
```php
//Eine AND Bedingung hinzufügen
IPS_SetEventCondition(12345, 0, 0, 0)
// Fügt hinzu/Modifiziert die Regel mit der ID 2 beim Ereignis mit der ObjektID 12345
// Es ist die erste Jahreshälfte -> aktuelles Datum < 01.07.2018
IPS_SetEventConditionDateRule(12345, 0, 2, 4, 1, 7, 2018);
// Lösche die Regel mit der ID 1
IPS_SetEventConditionDateRule(12345, 0, 1, 0, -1, 0, 0);
```
## IPS_SetEventConditionDayOfTheWeekRule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventconditiondayoftheweekrule/
`bool IPS_SetEventConditionDayOfTheWeekRule(int $EreignisID, int $BedingungsID, int $RegelID, int $Vergleich, int $Wochentag)`
_Benötigt Symcon >= 5.2_
modifiziert die Regel einer Bedingung eines Ereignisses für Wochentagsvergleiche
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): ID der Bedingung, welche die Regel beinhaltet
- `$RegelID` (int): Eindeutige ID für diese Regel. IDs müssen nur für dieses Bedingung eindeutig sein.
- `$Vergleich` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | == |
| 1 | != |
| 2 | > |
| 3 | >= |
| 4 | < |
| 5 | <= |
- `$Wochentag` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | Löschen |
| 1 | Montag |
| 2 | Dienstag |
| 3 | Mittwoch |
| 4 | Donnerstag |
| 5 | Freitag |
| 6 | Samstag |
| 7 | Sonntag |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | Löschen |
| 1 | Montag |
| 2 | Dienstag |
| 3 | Mittwoch |
| 4 | Donnerstag |
| 5 | Freitag |
| 6 | Samstag |
| 7 | Sonntag |
**Beispiel**
```php
//Eine AND Bedingung hinzufügen
IPS_SetEventCondition(12345, 0, 0, 0)
// Fügt hinzu/Modifiziert die Regel mit der ID 2 beim Ereignis mit der ObjektID 12345
// Es ist größer gleich Donnerstag d.h.: Donnerstag bis Sonntag inklusive
IPS_SetEventConditionDayOfTheWeekRule(12345, 0, 2, 3, 4);
// Fügt hinzu/Modifiziert die Regel mit der ID 3 beim Ereignis mit der ObjektID 12345
// Es ist ungleich Sonntag
IPS_SetEventConditionDayOfTheWeekRule(12345, 0, 3, 1, 7);
// Lösche die Regel mit der ID 2
IPS_SetEventConditionDayOfTheWeekRule(12345, 0, 2, 0, 0);
```
## IPS_SetEventConditionTimeRule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventconditiontimerule/
`bool IPS_SetEventConditionTimeRule(int $EreignisID, int $BedingungsID, int $RegelID, int $Vergleich, int $Stunde, int $Minute, int $Sekunde)`
_Benötigt Symcon >= 4.4_
modifiziert die Regel einer Bedingung eines Ereignisses für Uhrzeitvergleiche
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): ID der Bedingung, welche die Regel beinhaltet
- `$RegelID` (int): Eindeutige ID für diese Regel. IDs müssen nur für dieses Bedingung eindeutig sein.
- `$Vergleich` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | == |
| 1 | != |
| 2 | > |
| 3 | >= |
| 4 | < |
| 5 | <= |
- `$Stunde` (int): Stundenwert (0..23) mit dem die aktuelle Zeit verglichen wird
- `$Minute` (int): Minutenwert (0..59) mit dem die aktuelle Zeit verglichen wird
- `$Sekunde` (int): Sekundenwert (0..59) mit dem die aktuelle Zeit verglichen wird
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Sekundenwert (0..59) mit dem die aktuelle Zeit verglichen wird
**Beispiel**
```php
// Erstelle eine Wurzelbedingung
IPS_SetEventCondition(12345, 0, 0, 0);
// Fügt hinzu/Modifiziert die Regel mit der ID 2 beim Ereignis mit der ObjektID 12345
// Es muss genau 22:30 sein damit diese Regel erfüllt ist.
IPS_SetEventConditionTimeRule(12345, 0, 2, 1, 22, 30, 0);
// Lösche die Regel mit der ID 1
IPS_SetEventConditionTimeRule(12345, 0, 1, 0, -1, 0, 0);
```
## IPS_SetEventConditionVariableDynamicRule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventconditionvariabledynamicrule/
`bool IPS_SetEventConditionVariableDynamicRule(int $EreignisID, int $BedingungsID, int $RegelID, int $VariablenID, int $Vergleich, int $VergleichVariablenID)`
_Benötigt Symcon >= 6.1_
modifiziert die Regel einer Bedingung eines Ereignisses für Variablenvergleiche
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): ID der Bedingung welche die Regel beinhaltet
- `$RegelID` (int): Eindeutige ID für diese Regel. IDs müssen nur für dieses Bedingung eindeutig sein.
- `$VariablenID` (int): ID der geprüften Variable
- `$Vergleich` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | == |
| 1 | != |
| 2 | > |
| 3 | >= |
| 4 | < |
| 5 | <= |
- `$VergleichVariablenID` (int): ID der Variablen, mit der der Wert verglichen werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Variablen, mit der der Wert verglichen werden soll
**Beispiel**
```php
// Erstelle eine Wurzelbedingung für das Ereignis mit ID 12345
IPS_SetEventCondition(12345, 0, 0, 0);
// Füge eine Regel mit der ID 2 hinzu: Variable 23456 < Variable 34567
IPS_SetEventConditionVariableDynamicRule(12345, 0, 2, 23456, 4, 34567);
// Lösche die Regel mit der ID 2
IPS_SetEventConditionVariableDynamicRule(12345, 0, 2, 0, 0, 0);
```
## IPS_SetEventConditionVariableRule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventconditionvariablerule/
`bool IPS_SetEventConditionVariableRule(int $EreignisID, int $BedingungsID, int $RegelID, int $VariablenID, int $Vergleich, mixed $Wert)`
_Benötigt Symcon >= 4.4_
modifiziert die Regel einer Bedingung eines Ereignisses für Variablenvergleiche
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): ID der Bedingung welche die Regel beinhaltet
- `$RegelID` (int): Eindeutige ID für diese Regel. IDs müssen nur für dieses Bedingung eindeutig sein.
- `$VariablenID` (int): ID der geprüften Variable
- `$Vergleich` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | == |
| 1 | != |
| 2 | > |
| 3 | >= |
| 4 | < |
| 5 | <= |
- `$Wert` (mixed): Wert mit dem die geprüfte Variable verglichen wird
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert mit dem die geprüfte Variable verglichen wird
**Beispiel**
```php
// Erstelle eine Wurzelbedingung für das Ereignis mit ID 12345
IPS_SetEventCondition(12345, 0, 0, 0);
// Füge eine Regel mit der ID 2 hinzu: Variable 23456 < 75
IPS_SetEventConditionVariableRule(12345, 0, 2, 23456, 4, 75);
// Lösche die Regel mit der ID 2
IPS_SetEventConditionVariableRule(12345, 0, 2, 0, 0, 0);
```
## IPS_SetEventConditionVariableStaticRule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventconditionvariablestaticrule/
`bool IPS_SetEventConditionVariableStaticRule(int $EreignisID, int $BedingungsID, int $RegelID, int $VariablenID, int $Vergleich, mixed $Wert)`
_Benötigt Symcon >= 6.1_
modifiziert die Regel einer Bedingung eines Ereignisses für Variablenvergleiche
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$BedingungsID` (int): ID der Bedingung welche die Regel beinhaltet
- `$RegelID` (int): Eindeutige ID für diese Regel. IDs müssen nur für dieses Bedingung eindeutig sein.
- `$VariablenID` (int): ID der geprüften Variable
- `$Vergleich` (int)
| Wert | Beschreibung |
| ---- | ------------ |
| 0 | == |
| 1 | != |
| 2 | > |
| 3 | >= |
| 4 | < |
| 5 | <= |
- `$Wert` (mixed): Wert mit dem die geprüfte Variable verglichen wird
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert mit dem die geprüfte Variable verglichen wird
**Beispiel**
```php
// Erstelle eine Wurzelbedingung für das Ereignis mit ID 12345
IPS_SetEventCondition(12345, 0, 0, 0);
// Füge eine Regel mit der ID 2 hinzu: Variable 23456 < 75
IPS_SetEventConditionVariableStaticRule(12345, 0, 2, 23456, 4, 75);
// Lösche die Regel mit der ID 2
IPS_SetEventConditionVariableStaticRule(12345, 0, 2, 0, 0, 0);
```
## IPS_SetEventCyclic
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclic/
`bool IPS_SetEventCyclic(int $EreignisID, int $Datumstyp, int $Datumsintervall, int $Datumstage, int $Datumstagesintervall, int $Zeittyp, int $Zeitintervall)`
konfiguriert ein zyklisches Ereignis
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Datumstyp` (int)
| Wert | Beschreibung |
| ---- | ----------------------------------------------------------------------------------------- |
| 0 | Kein Datumstyp. Tägliche Ausführung. |
| 1 | Einmalig. [IPS_SetEventCyclicDateFrom](https://www.symcon.de/de/llms/functions/management-events.md) für Zieldatum |
| 2 | Täglich |
| 3 | Wöchentlich |
| 4 | Monatlich |
| 5 | Jährlich |
- `$Datumsintervall` (int)
| Wert | Beschreibung |
| ---- | -------------------------- |
| 0 | 0 (Keine Auswertung) |
| 1 | 0 (Keine Auswertung) |
| 2 | Alle __X__ Tage |
| 3 | Alle __X__ Wochen |
| 4 | Alle __X__ Monate |
| 5 | 1 = Januar … 12 = Dezember |
- `$Datumstage` (int)
| Wert | Beschreibung |
| ---- | ----------------------------------------------------------------------- |
| 0 | 0 (Keine Auswertung) |
| 1 | 0 (Keine Auswertung) |
| 2 | 0 (Keine Auswertung) |
| 3 | siehe Tabelle: Tageswerte (gewünschte Tageswerte müssen addiert werden) |
| 4 | siehe Tabelle: Tageswerte oder 0 für jeden __X__ Tag im Monat |
| 5 | 0 (Keine Auswertung) |
_Tabelle: Tageswerte_
| Tag | Wert |
| ---------- | ---- |
| Montag | 1 |
| Dienstag | 2 |
| Mittwoch | 4 |
| Donnerstag | 8 |
| Freitag | 16 |
| Samstag | 32 |
| Sonntag | 64 |
- `$Datumstagesintervall` (int)
| Wert | Beschreibung |
| ---- | ------------------------------------------------------------------------------------- |
| 0 | 0 (Keine Auswertung) |
| 1 | 0 (Keine Auswertung) |
| 2 | 0 (Keine Auswertung) |
| 3 | 0 (Keine Auswertung) |
| 4 | Jeden __X Datumstag__ im Monat oder jeden __X__ Tag im Monat, falls __Datumstag__ = 0 |
| 5 | Jeden __X__ Tag im angegebenen Monat |
- `$Zeittyp` (int)
| Wert | Beschreibung |
| ---- | --------------------------------------------------------------------------------------- |
| 0 | Einmalig [IPS_SetEventCyclicTimeFrom](https://www.symcon.de/de/llms/functions/management-events.md) für Zielzeit |
| 1 | Sekündlich |
| 2 | Minütlich |
| 3 | Stündlich |
- `$Zeitintervall` (int)
| Wert | Beschreibung |
| ---- | -------------------- |
| 0 | 0 (Keine Auswertung) |
| 1 | Alle __X__ Sekunden |
| 2 | Alle __X__ Minuten |
| 3 | Alle __X__ Stunden |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Wert | Beschreibung |
| ---- | -------------------- |
| 0 | 0 (Keine Auswertung) |
| 1 | Alle __X__ Sekunden |
| 2 | Alle __X__ Minuten |
| 3 | Alle __X__ Stunden |
**Beispiel**
```php
//Zum aktuellen Zeitpunkt alle 8 Wochen etwas ausführen
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclicTimeFrom($eid, (int)date("H"), (int)date("i"), (int)date("s"));
IPS_SetEventCyclicDateFrom($eid, (int)date("d"), (int)date("m"), (int)date("Y"));
IPS_SetEventCyclic($eid, 2 /* Täglich */ , 8 * 7 /* Alle 8 Wochen */,0,0,0,0);
IPS_SetEventActive($eid, true);
//Jeden Tag alle 6 Stunden ab 0 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 2 /* Täglich */, 1 /* Jeden Tag */, 0, 0, 3 /* Stündlich */, 6 /* Alle 6 Stunden */);
//Alle 2 Minuten ab 0 Uhr bis 12 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 0 /* Keine Datumsüberprüfung */, 0, 0, 2, 2 /* Minütlich */ , 2 /* Alle 2 Minuten */);
IPS_SetEventCyclicTimeTo($eid, 12, 0, 0);
//Alle 2 Minuten zwischen 8 Uhr und 10 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 0 /* Keine Datumsüberprüfung */, 0, 0, 2, 2 /* Minütlich */ , 2 /* Alle 2 Minuten */);
IPS_SetEventCyclicTimeFrom($eid, 8, 0, 0);
IPS_SetEventCyclicTimeTo($eid, 10, 0, 0);
//Alle 2 Wochen am Montag+Mittwoch einmalig um genau 0:00 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 3 /* Wöchentlich */, 2 /* Alle 2 Wochen */, 1+4 /* Montag (1) + Dienstag (4) */, 0, 0, 0);
//Täglich um 15 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclicTimeFrom($eid, 15, 0, 0);
//Am ersten Tag im Monat um 0 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 4 /* Monatlich */, 1 /* Jeden Monat */, 0 /* Egal welcher Tag */, 1 /* Erster Tag im Monat */, 0, 0);
//Am ersten Freitag im Monat um 0 Uhr
$eid = IPS_CreateEvent(1);
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventCyclic($eid, 4 /* Monatlich */, 1 /* Jeden Monat */, 16 /* Am Freitag */, 1 /* Erster Freitag im Monat */, 0, 0);
```
## IPS_SetEventCyclicDateBounds
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclicdatebounds/
`bool IPS_SetEventCyclicDateBounds(int $EreignisID, int $Startdatum, int $Enddatum)`
konfiguriert die Zeitspanne (Datum)
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Startdatum` (int): Datum als Unix Timestamp
- `$Enddatum` (int): Datum als Unix Timestamp
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Datum als Unix Timestamp
**Beispiel**
```php
//Kein Start/Enddatum dem Ereignis zuordnen
IPS_SetEventCyclicDateBounds($EreignisID, 0, 0);
```
## IPS_SetEventCyclicDateFrom
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclicdatefrom/
`bool IPS_SetEventCyclicDateFrom(int $EreignisID, int $Tag, int $Monat, int $Jahr)`
_Benötigt Symcon >= 3.1_
konfiguriert das Startdatum
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Tag` (int): Start-Tag (0, 1..31)
- `$Monat` (int): Start-Monat (0, 1..12)
- `$Jahr` (int): Start-Jahr (0, 1970..2038)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Start-Jahr (0, 1970..2038)
**Beispiel**
```php
//Kein Startdatum dem Ereignis zuordnen
IPS_SetEventCyclicDateFrom($EreignisID, 0, 0, 0);
```
## IPS_SetEventCyclicDateTo
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclicdateto/
`bool IPS_SetEventCyclicDateTo(int $EreignisID, int $Tag, int $Monat, int $Jahr)`
_Benötigt Symcon >= 3.1_
konfiguriert das Enddatum
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Tag` (int): End-Tag (0, 1..31)
- `$Monat` (int): End-Monat (0, 1..12)
- `$Jahr` (int): End-Jahr (0, 1970..2038)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
End-Jahr (0, 1970..2038)
**Beispiel**
```php
//Den 1.2.2020 als Enddatum dem Ereignis zuordnen
IPS_SetEventCyclicDateTo($EreignisID, 1, 2, 2020);
```
## IPS_SetEventCyclicTimeBounds
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclictimebounds/
`bool IPS_SetEventCyclicTimeBounds(int $EreignisID, int $Startuhrzeit, int $Enduhrzeit)`
konfiguriert die Zeitspanne (Zeit)
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Startuhrzeit` (int): Zeit als Unix Timestamp
- `$Enduhrzeit` (int): Zeit als Unix Timestamp
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit als Unix Timestamp
**Beispiel**
```php
//Keine Start/Endzeiten dem Ereignis zuordnen
IPS_SetEventCyclicTimeBounds($EreignisID, 0, 0);
//Ereignis um 7:30 starten
IPS_SetEventCyclicTimeBounds($EreginisID, mktime(7, 30, 0), 0);
```
## IPS_SetEventCyclicTimeFrom
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclictimefrom/
`bool IPS_SetEventCyclicTimeFrom(int $EreignisID, int $Stunde, int $Minute, int $Sekunde)`
_Benötigt Symcon >= 3.1_
konfiguriert die Startzeit
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Stunde` (int): Start-Stunde (0..23)
- `$Minute` (int): Start-Minute (0..59)
- `$Sekunde` (int): Start-Sekunde (0..59)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Start-Sekunde (0..59)
**Beispiel**
```php
//Als Startzeit 7:15 dem Ereignis zuordnen
IPS_SetEventCyclicTimeFrom($EreignisID, 7, 15, 0);
```
## IPS_SetEventCyclicTimeTo
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventcyclictimeto/
`bool IPS_SetEventCyclicTimeTo(int $EreignisID, int $Stunde, int $Minute, int $Sekunde)`
_Benötigt Symcon >= 3.1_
konfiguriert die Endzeit
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Stunde` (int): End-Stunde (0..23)
- `$Minute` (int): End-Minute (0..59)
- `$Sekunde` (int): End-Sekunde (0..59)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
End-Sekunde (0..59)
**Beispiel**
```php
//Keine Endzeit dem Ereignis zuordnen
IPS_SetEventCyclicTimeTo($EreignisID, 0, 0, 0);
```
## IPS_SetEventLimit
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventlimit/
`bool IPS_SetEventLimit(int $EreignisID, int $Anzahl)`
limitiert die Anzahl der Ereignissaufrufe
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Anzahl` (int): Die Anzahl der Ausführung, bevor das Ereignis deaktiviert wird. 0 = Keine Limitierung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die Anzahl der Ausführung, bevor das Ereignis deaktiviert wird. 0 = Keine Limitierung
**Beispiel**
```php
//Keine Limitierung
IPS_SetEventLimit($EreignisID, 0);
```
## IPS_SetEventScheduleAction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventscheduleaction/
`bool IPS_SetEventScheduleAction(int $EreignisID, int $WochenplanAktionsID, string $Name, int $Farbe, string $Skriptinhalt)`
_Benötigt Symcon >= 3.2_
modifiziert die Aktionsstabelle eines Wochenplans und setzt die Aktion dabei auf "Führe PHP Code aus"
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$WochenplanAktionsID` (int): Eindeutige ID für diese Wochenplanaktion. Die Sortierung wird anhand der ID vorgenommen. IDs müssen nur für dieses Ereignis eindeutig sein.
- `$Name` (string): Name zur angegebenen Wochenplanaktion
- `$Farbe` (int): Farbwert im HTML Farbcode (z.b. 0x0000FF für Blau)
- `$Skriptinhalt` (string): PHP Skript ohne PHP Tags ( … ?\>)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
PHP Skript ohne PHP Tags ( … ?\>)
**Beispiel**
```php
//Anlegen von Aktionen
IPS_SetEventScheduleAction($EreignisID, 0, "Warm", 0xFF0000, "FHT_SetTemperature(\$_IPS['TARGET'], 22.5);");
IPS_SetEventScheduleAction($EreignisID, 1, "Kalt", 0x0000FF, "FHT_SetTemperature(\$_IPS['TARGET'], 17);");
IPS_SetEventScheduleAction($EreignisID, 2, "Öko", 0x00FF00, "FHT_SetTemperature(\$_IPS['TARGET'], 20);");
//Aktion mit ID 2 wieder löschen
IPS_SetEventScheduleAction($EreignisID, 2, "", 0, "");
```
## IPS_SetEventScheduleActionEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventscheduleactionex/
`bool IPS_SetEventScheduleActionEx(int $EreignisID, int $WochenplanAktionsID, string $Name, int $Farbe, string $AktionsID, array $AktionsParameter)`
_Benötigt Symcon >= 6.0_
modifiziert die Aktionsstabelle eines Wochenplans
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$WochenplanAktionsID` (int): Eindeutige ID für diese Wochenplanaktion. Die Sortierung wird anhand der ID vorgenommen. IDs müssen nur für dieses Ereignis eindeutig sein.
- `$Name` (string): Name zur angegebenen Wochenplanaktion
- `$Farbe` (int): Farbwert im HTML Farbcode (z.b. 0x0000FF für Blau)
- `$AktionsID` (string): ID der auszuführenden Aktion
- `$AktionsParameter` (array): Liste der Parameter der auszuführenden Aktion
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Liste der Parameter der auszuführenden Aktion
**Beispiel**
```php
//Anlegen von Wochenplanaktionen
IPS_SetEventScheduleActionEx($EreignisID, 0, "Warm", 0xFF0000, "{3644F802-C152-464A-868A-242C2A3DEC5C}", ["VALUE" => 22.5]);
IPS_SetEventScheduleActionEx($EreignisID, 1, "Kalt", 0xFF0000, "{3644F802-C152-464A-868A-242C2A3DEC5C}", ["VALUE" => 17]);
IPS_SetEventScheduleActionEx($EreignisID, 2, "Öko", 0xFF0000, "{3644F802-C152-464A-868A-242C2A3DEC5C}", ["VALUE" => 20]);
//Wochenplanaktion mit ID 2 wieder löschen
IPS_SetEventScheduleAction($EreignisID, 2, "", 0, "", []);
```
## IPS_SetEventScheduleGroup
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventschedulegroup/
`bool IPS_SetEventScheduleGroup(int $EreignisID, int $GruppenID, int $Tage)`
_Benötigt Symcon >= 3.2_
modifiziert die Gruppierung der Tage eines Wochenplans
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$GruppenID` (int): Eindeutige ID für diese Gruppe. Die Sortierung wird anhand der ID vorgenommen. IDs müssen nur für dieses Ereignis eindeutig sein.
- `$Tage` (int): Addition der Tageswerte, die zur Gruppe gehören. Die Tageswerte können der Tabelle bei [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) entnommen werden.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Addition der Tageswerte, die zur Gruppe gehören. Die Tageswerte können der Tabelle bei [IPS_SetEventCyclic](https://www.symcon.de/de/llms/functions/management-events.md) entnommen werden.
**Beispiel**
```php
//Wochenplan Ereignis erstellen
$EreignisID = IPS_CreateEvent(2);
//Anlegen von Gruppen
IPS_SetEventScheduleGroup($EreignisID, 0, 31); //Mo - Fr (1 + 2 + 4 + 8 + 16)
IPS_SetEventScheduleGroup($EreignisID, 1, 96); //Sa + So (32 + 64)
//Gruppe mit ID 1 wieder löschen
IPS_SetEventScheduleGroup($EreignisID, 1, 0);
```
## IPS_SetEventScheduleGroupPoint
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventschedulegrouppoint/
`bool IPS_SetEventScheduleGroupPoint(int $EreignisID, int $GruppenID, int $SchaltpunktID, int $StartStunde, int $StartMinute, int $StartSekunde, int $AktionsID)`
_Benötigt Symcon >= 3.2_
modifiziert einen Schaltpunkt der Gruppe eines Wochenplans
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$GruppenID` (int): Eindeutige ID für diese Gruppe. Die Sortierung wird anhand der ID vorgenommen. IDs müssen nur für dieses Ereignis eindeutig sein.
- `$SchaltpunktID` (int): Eindeutige ID für diesen Schaltpunkt. IDs müssen nur für diese Gruppe eindeutig sein.
- `$StartStunde` (int): Start-Stunde (0..23)
- `$StartMinute` (int): Start-Minute (0..59)
- `$StartSekunde` (int): Start-Sekunde (0..59)
- `$AktionsID` (int): ID der Aktion, welche zum Zeitpunkt ausgeführt werden soll. Die ID muss gültig sein.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Aktion, welche zum Zeitpunkt ausgeführt werden soll. Die ID muss gültig sein.
**Beispiel**
```php
//Anlegen von Schaltpunkten für Gruppe mit ID = 0 (=Mo-Fr)
IPS_SetEventScheduleGroupPoint($id, 0, 0, 8, 0, 0, 0); //Um 8:00 Aktion mit ID 0 (=Warm) aufrufen
IPS_SetEventScheduleGroupPoint($id, 0, 1, 22, 30, 0, 2); //Um 22:30 Aktion mit ID 2 (=Öko) aufrufen
//Schaltpunkten mit ID 1 für Gruppe mit ID = 0 (=Mo-Fr) wieder löschen
IPS_SetEventScheduleGroupPoint($EreignisID, 0, 1, -1, -1, -1, 0);
```
## IPS_SetEventScript
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventscript/
`bool IPS_SetEventScript(int $EreignisID, string $Skriptinhalt)`
setzt die Aktion auf "Führe PHP Code aus" und definiert den auszuführenden Code
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Skriptinhalt` (string): PHP Code ohne PHP Tags ( … ?\>)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
PHP Code ohne PHP Tags ( … ?\>)
**Beispiel**
```php
//Skriptinhalt dem Ereignis zuordnen
IPS_SetEventScript($EreignisID, "echo 'Verknüpftes Objekt:' . \$_IPS['TARGET'];");
```
## IPS_SetEventTrigger
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventtrigger/
`bool IPS_SetEventTrigger(int $EreignisID, int $Auslösertyp, int $AuslöserVariablenID)`
konfiguriert ein ausgelöstes Ereignis
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Auslösertyp` (int)
| Wert | Beschreibung |
| ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0 | Bei Variablenaktualisierung |
| 1 | Bei Variablenänderung |
| 2 | Bei Grenzüberschreitung. Grenzwert wird über [IPS_SetEventTriggerValue](https://www.symcon.de/de/llms/functions/management-events.md) festgelegt |
| 3 | Bei Grenzunterschreitung. Grenzwert wird über [IPS_SetEventTriggerValue](https://www.symcon.de/de/llms/functions/management-events.md) festgelegt |
| 4 | Bei bestimmtem Wert. Wert wird über [IPS_SetEventTriggerValue](https://www.symcon.de/de/llms/functions/management-events.md) festgelegt |
- `$AuslöserVariablenID` (int): VariablenID, auf dessen Änderung/Aktualisierung reagiert werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
VariablenID, auf dessen Änderung/Aktualisierung reagiert werden soll
**Beispiel**
```php
IPS_SetEventTrigger($eid, 0, 12345); //OnUpdate für Variable 12345
```
## IPS_SetEventTriggerSubsequentExecution
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventtriggersubsequentexecution/
`bool IPS_SetEventTriggerSubsequentExecution(string $EreignisID, bool $NachfolgendeAusführungen)`
konfiguriert, ob Ereignis bei gleichem Wert erneut ausgelöst wird
**Parameter**
- `$EreignisID` (string): ID des zu verändernden Ereignisses
- `$NachfolgendeAusführungen` (bool): __TRUE__ für Erlaubt, sonst __FALSE__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für Erlaubt, sonst __FALSE__
**Beispiel**
```php
IPS_SetEventTriggerSubsequentExecution($EreignisID, true); //Erlauben
```
## IPS_SetEventTriggerValue
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventtriggervalue/
`bool IPS_SetEventTriggerValue(int $EreignisID, mixed $Grenzwert)`
konfiguriert den Wert bei dem Ausgelöst werden sol
**Parameter**
- `$EreignisID` (int): ID des zu verändernden Ereignisses
- `$Grenzwert` (mixed): Abhänger Wert/Typ je nach VariablenID vom Auslöser
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Abhänger Wert/Typ je nach VariablenID vom Auslöser
**Beispiel**
```php
IPS_SetEventTriggerValue($EreignisID, true); //Nur auf TRUE Werte auslösen
```
---
# Instanzenverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/
## Debug
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/debug/
## IPS_DisableDebugFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/debug/ips-disabledebugfile/
`bool IPS_DisableDebugFile(int $InstanzID)`
_Benötigt Symcon >= 5.2_
deaktiviert das Schreiben von Debug-Logs in eine Datei
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
// Deaktiviert das Schreiben von Debug-Logs der Instanz 12345
IPS_DisableDebugFile(12345);
```
## IPS_EnableDebugFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/debug/ips-enabledebugfile/
`bool IPS_EnableDebugFile(int $InstanzID)`
_Benötigt Symcon >= 5.2_
aktiviert das Schreiben von Debug-Logs in eine Datei
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
// Aktiviert das Schreiben von Debug-Logs der Instanz 12345
IPS_EnableDebugFile(12345);
// Dateiname
debug_12345.log
```
## IPS_CreateInstance
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-createinstance/
`int IPS_CreateInstance(string $ModulID)`
legt eine Instanz an
**Parameter**
- `$ModulID` (string): ModulID ( [GUID](https://www.symcon.de/de/llms/concepts.md) ) des zu erstellenden Objekts
**Rückgabewert** (int): ID der neu erstellten Instanz
ModulID ( [GUID](https://www.symcon.de/de/llms/concepts.md) ) des zu erstellenden Objekts
**Beispiel**
```php
//FS20 Instanz erstellen mit dem Namen "Stehlampe"
$InsID = IPS_CreateInstance("{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}");
IPS_SetName($InsID, "Stehlampe"); // Instanz benennen
IPS_SetParent($InsID, 12345); // Instanz einsortieren unter dem Objekt mit der ObjektID "12345"
//Konfiguration
IPS_SetProperty($InsID, "HomeCode", "12345678"); // Ändere Eigenschaft "HomeCode"
IPS_ApplyChanges($InsID); // Übernehme Änderungen -> Die Instanz benutzt den geänderten HomeCode
```
## IPS_DeleteInstance
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-deleteinstance/
`bool IPS_DeleteInstance(int $InstanzID)`
löscht eine Instanz
**Parameter**
- `$InstanzID` (int): ID der zu löschenden Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu löschenden Instanz
**Beispiel**
```php
// Löschen der Instanz 47788
IPS_DeleteInstance(47788);
```
## IPS_GetInstance
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-getinstance/
`array IPS_GetInstance(int $InstanzID)`
liefert umfassende Informationen zu einer bestimmten Instanz
**Parameter**
- `$InstanzID` (int): Die zu zeigende InstanzID
**Rückgabewert** (array): Folgende Informationen stehen als key => value Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ----------------------------- | ------- | ------------------------------------------------------------------------- |
| __InstanceID__ | integer | InstanzID |
| __ConnectionID__ | integer | ID der verbundenen Instanz |
| __InstanceStatus__ | integer | Statuscode der Instanz |
| __InstanceSupportsSearching__ | boolean | Unterstützt die Instanz den Suchmodus |
| __InstanceIsSearching__ | boolean | Die Instanz befindet sich gerade im Suchmodus |
| __InstanceChanged__ | integer | Unix Zeitstempel zu dem das letzte mal die Konfiguration übernommen wurde |
| __ModuleInfo__ | array | Modulinformationen |
### Status der Instanz
| Code | 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 |
### Modulinformationen
| Index | Typ | Beschreibung |
| ---------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| ModuleID | string | ModulID zur Instanz |
| ModuleName | string | ModulName der Instanz |
| ModuleType | integer | ModulTyp der Instanz (0: Kern, 1: I/O, 2: Splitter, 3: Gerät, 4: Konfigurator, 5: Discovery, 6: Visualisierung) |
Die zu zeigende InstanzID
**Beispiel**
```php
print_r(IPS_GetInstance(19668));
/* liefert z.B.:
Array
(
[InstanceID] => 19668
[InstanceStatus] => 102
[LastChange] => 0
[ModuleInfo] => Array
(
[ModuleID] => {48FCFDC1-11A5-4309-BB0B-A0DB8042A969}
[ModuleName] => FS20
[ModuleType] => 3
)
[ConnectionID] => 29416
)
*/
```
## IPS_GetInstanceIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-getinstanceidbyname/
`int IPS_GetInstanceIDByName(string $InstanzName, int $ÜbergeordneteID)`
liefert die ID einer Instanz anhand des Namens
**Parameter**
- `$InstanzName` (string): Zu suchender InstanzName
- `$ÜbergeordneteID` (int): Objekt, in deren direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID der gefundenen Instanz, sonst FALSE
Objekt, in deren direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$InstanzID = @IPS_GetInstanceIDByName("Regenmenge", $ÜbergeordneteID);
if ($InstanzID === false)
echo "Instanz nicht gefunden!";
else
echo "Die Instanz-ID lautet: ". $InstanzID;
```
## IPS_GetInstanceList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-getinstancelist/
`array IPS_GetInstanceList()`
liefert eine Aufstellung aller existierenden Instanzen
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Instanzen in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon registrierten IPS-Instanzen. Die IDs werden in einem Array aufgelistet. Falls keine Instanz existiert, ist das Array leer.
**Beispiel**
```php
$alleInstanzen = IPS_GetInstanceList();
print_r($alleInstanzen);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
*/
```
## IPS_GetInstanceListByModuleID
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-getinstancelistbymoduleid/
`array IPS_GetInstanceListByModuleID(string $ModulID)`
liefert alle Instanzen die von einer bestimmten ModulID sind
**Parameter**
- `$ModulID` (string): [GUID](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (array): Ein Array von Integer-Werten aller gefundenen IDs
[GUID](https://www.symcon.de/de/llms/concepts.md)
**Beispiel**
```php
//FS20 Sender
$guid = "{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}";
//Auflisten
print_r(IPS_GetInstanceListByModuleID($guid));
```
## IPS_GetInstanceListByModuleType
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-getinstancelistbymoduletype/
`array IPS_GetInstanceListByModuleType(int $ModulTyp)`
liefert eine Liste aller Instanzen eines bestimmten Typs
**Parameter**
- `$ModulTyp` (int)
| Wert | Beschreibung |
| ---- | -------------- |
| 0 | Kern |
| 1 | I/O |
| 2 | Splitter |
| 3 | Geräte |
| 4 | Konfigurator |
| 5 | Discovery |
| 6 | Visualisierung |
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Instanzen vom Typ __InstanzTyp__ in IP-Symcon
| Wert | Beschreibung |
| ---- | -------------- |
| 0 | Kern |
| 1 | I/O |
| 2 | Splitter |
| 3 | Geräte |
| 4 | Konfigurator |
| 5 | Discovery |
| 6 | Visualisierung |
**Beispiel**
```php
$alleInstanzen = IPS_GetInstanceListByModuleType(1); // nur I/O Instanzen auflisten
print_r($alleInstanzen);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
*/
```
## IPS_InstanceExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/ips-instanceexists/
`bool IPS_InstanceExists(int $InstanzID)`
prüft, ob eine bestimmte Instanz existiert
**Parameter**
- `$InstanzID` (int): ID der zu prüfenden Instanz
**Rückgabewert** (bool): Falls die InstanzID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
ID der zu prüfenden Instanz
**Beispiel**
```php
if (IPS_InstanceExists(45724))
echo "Instanz existiert bereits!";
```
## Konfiguration
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/
## IPS_ApplyChanges
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-applychanges/
`bool IPS_ApplyChanges(int $InstanzID)`
übernimmt eine veränderte Konfiguration
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
if(IPS_HasChanges(12345))
{
IPS_ApplyChanges(12345);
}
```
## IPS_GetConfiguration
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-getconfiguration/
`string IPS_GetConfiguration(int $InstanzID)`
_Benötigt Symcon >= 2.7_
liest eine Konfiguration aus
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (string): Konnte die Funktion erfolgreich ausgeführt werden, liefert er als Ergebnis die Konfiguration der Instanz als String.
ID der Instanz
**Beispiel**
```php
// Liest die Konfiguration der Instanz 12345 aus und gibt diese via "echo" zurück.
$config = IPS_GetConfiguration(12345);
echo $config;
// Beispielausgabe einer ModBus-Instanz
{"DataType":3,"WriteAddress":0,"ReadAddress":0,"Poller":3600000,"ReadOnly":false,"EmulateStatus":true,"Factor":0.0}
```
## IPS_GetConfigurationForm
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-getconfigurationform/
`string IPS_GetConfigurationForm(int $InstanzID)`
_Benötigt Symcon >= 2.7_
liest eine Konfigurationseite aus
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (string): Konnte die Funktion erfolgreich ausgeführt werden, liefert er als Ergebnis die Konfigurationseite der Instanz als JSON-kodierter String.
ID der Instanz
**Beispiel**
```php
// Liest die Konfiguration der Instanz 12345 aus und gibt diese via "echo" zurück.
$configpage = json_decode(IPS_GetConfigurationForm(12345));
var_dump ($configpage->elements);
//Beispielausgabe
array(2) {
[0]=>
object(stdClass)#2 (2) {
["type"]=>
string(5) "Label"
["label"]=>
string(28) "Minimum needed daily changes"
}
[1]=>
object(stdClass)#3 (3) {
["type"]=>
string(13) "NumberSpinner"
["name"]=>
string(19) "RequiredSwitchCount"
["caption"]=>
string(5) "Count"
}
}
```
## IPS_GetProperty
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-getproperty/
`mixed IPS_GetProperty(int $InstanzID, string $Eigenschaft)`
_Benötigt Symcon >= 2.7_
liest den aktuellen Wert einer Eigenschaft
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Eigenschaft` (string): Name der Eigenschaft
**Rückgabewert** (mixed): Aktueller Wert der Eigenschaft
Name der Eigenschaft
**Beispiel**
```php
echo IPS_GetProperty($id, "Open"); //Ist die I/O Instanz aktiv?
```
## IPS_HasChanges
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-haschanges/
`bool IPS_HasChanges(int $InstanzID)`
prüft, ob eine Konfiguration verändert wurde
**Parameter**
- `$InstanzID` (int): ID der zu überprüfenden Instanz
**Rückgabewert** (bool): __TRUE__, wenn es Änderungen gibt, sonst __FALSE__
ID der zu überprüfenden Instanz
**Beispiel**
```php
if(IPS_HasChanges(12345))
{
IPS_ApplyChanges(12345);
}
```
## IPS_ResetChanges
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-resetchanges/
`bool IPS_ResetChanges(int $InstanzID)`
setzt eine veränderte Konfiguration auf die aktuelle zurück
**Parameter**
- `$InstanzID` (int): ID der zu ändernden Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu ändernden Instanz
**Beispiel**
```php
if(IPS_HasChanges(12345))
{
IPS_ResetChanges(12345);
}
```
## IPS_SetConfiguration
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-setconfiguration/
`bool IPS_SetConfiguration(int $InstanzID, string $Konfiguration)`
_Benötigt Symcon >= 2.7_
setzt eine neue Konfiguration
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Konfiguration` (string): Die Konfiguration als String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die Konfiguration als String
**Beispiel**
```php
// Hier soll die Konfiguration der ModBus-Instanz mit der ID 12345 gesetzt werden.
IPS_SetConfiguration(12345, '{"DataType":3,"WriteAddress":1,"ReadAddress":0,"Poller":3600000,"ReadOnly":false,"EmulateStatus":true,"Factor":0.0}');
IPS_ApplyChanges(12345); //Neue Konfiguration übernehmen
```
## IPS_SetProperty
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-setproperty/
`bool IPS_SetProperty(int $InstanzID, string $Eigenschaft, mixed $Wert)`
_Benötigt Symcon >= 2.7_
setzt einen neuen Wert für eine Eigenschaft
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Eigenschaft` (string): Name der Eigenschaft
- `$Wert` (mixed): Neuer Wert der Eigenschaft
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Wert der Eigenschaft
**Beispiel**
```php
IPS_SetProperty($id, "Open", true); //I/O Instanz soll aktiviert sein.
IPS_ApplyChanges($id); //Neue Konfiguration übernehmen
// Zur Erstellung dieser Tabelle
$moduleID) {
//create
$iids = IPS_GetInstanceListByModuleID($moduleID);
if (sizeof($iids) > 0) {
$iid = $iids[0];
}
else {
$iid = IPS_CreateInstance($moduleID);
}
$properties = json_decode(IPS_GetConfiguration($iid), true);
ksort($properties, SORT_STRING | SORT_FLAG_CASE);
//build text
echo "__" . $moduleName . "__" . PHP_EOL;
echo PHP_EOL;
echo "Eigenschaft | Typ | Standardwert" . PHP_EOL;
echo "-------------------------- | ------- | --------------------" . PHP_EOL;
foreach($properties as $key => $value) {
if ($moduleName == "WebServer") {
switch($key) {
case "Certificate":
case "DHParameters":
case "PrivateKey":
$value = "_removed_";
break;
}
}
echo str_pad($key, 27) . "| " . str_pad(gettype($value), 8) . "| ". $value . PHP_EOL;
}
echo PHP_EOL;
echo PHP_EOL;
//cleanup
$childrenIDs = IPS_GetChildrenIDs($iid);
foreach($childrenIDs as $childrenID) {
IPS_DeleteVariable($childrenID);
}
IPS_DeleteInstance($iid);
}
```
## Referenzen
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/referenzen/
## IPS_GetReferenceList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/referenzen/ips-getreferencelist/
`array IPS_GetReferenceList(int $InstanzID)`
gibt die IDs aller Referenzen wieder
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der referenzierten Objekte
ID der Instanz
**Beispiel**
```php
IPS_GetReferenceList(12345);
```
## StatusVariablen
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/statusvariablen/
> **Achtung:** Die Dokumentation dieser Funktion ist nur noch aus Kompatibilitätsgründen vorhanden und sollte ab IP-Symcon 2.5 nicht mehr verwendet werden. Diese Funktion wird ab Version 2.5 nur noch emuliert und sollte durch die entsprechenden Ersatzfunktionen ausgetauscht werden. Seit Version 4.0 kann diese Funktion nur noch genutzt werden, wenn der [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) "Kompatibilitätsfunktionen" aktiviert ist.
> **Hinweis:** Ab Version 2.5 haben alle Objekte das Feld "Ident", welches über die Funktion [IPS_GetObjectIDByIdent](https://www.symcon.de/de/llms/functions/management-objects.md) gesucht werden kann
Status Variablen sind normale IP-Symcon Variablen, die jedoch an eine Instanz fest gebunden sind. Status Variable sind als “Nur-Lesen” markiert, sodass diese nicht aus PHP Skripten heraus modifiziert werden können, um den Status als solchen nur vom jeweiligen Gerät änderbar zu machen.
Der Vorteil der Status Variablen ist, dass diese über die Instanz unter einem eindeutigen und nicht veränderbaren Namen ansprechbar sind. Das ist im Gegensatz zu den Objektnamen von großem Vorteil, da diese vom Benutzer änderbar sind und dadurch in jeder IP-Symcon Umgebung anders sein können.
Im Gegensatz dazu, können über die VariableIdents der Status Variablen die IDs der dazugehören IP-Symcon Variable erfragt werden, wodurch ein IP-Symcon umgebungsunabhängiger Zugriff möglich ist.
Bei einem Zugriff auf Variablen sollte die Funktion [IPS_GetObjectIDByIdent](https://www.symcon.de/de/llms/functions/management-objects.md) verwendet werden.
## Verbindungen
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/verbindungen/
## IPS_ConnectInstance
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/verbindungen/ips-connectinstance/
`bool IPS_ConnectInstance(int $InstanzID, int $ConnectionID)`
erstellt eine (Daten-)Verbindung zwischen zwei Instanzen
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$ConnectionID` (int): ID der neu zu verbindenen Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der neu zu verbindenen Instanz
**Beispiel**
```php
IPS_ConnectInstance(12345, 23456);
```
## IPS_DisconnectInstance
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/verbindungen/ips-disconnectinstance/
`bool IPS_DisconnectInstance(int $InstanzID)`
löst eine (Daten-)Verbindung zwischen zwei Instanzen
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
IPS_DisconnectInstance(12345);
```
## IPS_GetCompatibleInstances
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/verbindungen/ips-getcompatibleinstances/
`bool IPS_GetCompatibleInstances(int $InstanzID)`
liefert kompatible Instanzen zu einer Instanz
**Parameter**
- `$InstanzID` (int): ID der zu prüfenden Instanz
**Rückgabewert** (bool): Array von Integer-Werten aller kompatiblen InstanzIDs zur __InstanzID__
ID der zu prüfenden Instanz
**Beispiel**
```php
print_r(IPS_GetCompatibleInstances(12345));
/* liefert z.B.:
Array
(
[0] => 22222
[1] => 33333
[2] => 44444
[3] => 55555
usw. ...
)
*/
```
## IPS_IsInstanceCompatible
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/instanzenverwaltung/verbindungen/ips-isinstancecompatible/
`bool IPS_IsInstanceCompatible(int $InstanzID, int $ÜbergeordneteID)`
prüft, ob eine Verbindung zwischen zwei Instanzen möglich ist
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$ÜbergeordneteID` (int): ID der potentiellen übergeordneten Instanz
**Rückgabewert** (bool): __TRUE__, wenn die Instanz kompatibel sind, sonst __FALSE__
ID der potentiellen übergeordneten Instanz
**Beispiel**
```php
if (IPS_IsInstanceCompatible(12345, 23456))
echo "Instanz ist zur anderen Instanz kompatibel!";
```
---
# Kategorieverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/kategorieverwaltung/
## IPS_CategoryExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/kategorieverwaltung/ips-categoryexists/
`bool IPS_CategoryExists(int $KategorieID)`
prüft, ob eine Kategorie bereits existiert
**Parameter**
- `$KategorieID` (int): ID der zu prüfenden Kategorie
**Rückgabewert** (bool): Falls die KategorieID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
ID der zu prüfenden Kategorie
**Beispiel**
```php
if (IPS_CategoryExists(45724))
echo "Kategorie existiert bereits!";
```
## IPS_CreateCategory
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/kategorieverwaltung/ips-createcategory/
`int IPS_CreateCategory()`
legt eine neue Kategorie an
**Rückgabewert** (int): ID der neu erstellten Kategorie
Die Funktion legt eine neue Kategorie an. Es wird kein Parameter benötigt. Nach Ausführung der Funktion erscheint im Kategorienbaum von IP-Symcon eine neue Kategorie mit der Bezeichnung z.B. ”Unnamed Object (ID: 48490)”. Mit Hilfe der Funktion [IPS_SetName](https://www.symcon.de/de/llms/functions/management-objects.md) kann der Kategorie ein aussagefähiger Name gegeben werden. Der Name sollte nicht für die Identifikation verwendet werden. Hierfür ist die ID zuständig.
Mit der Funktion [IPS_SetParent](https://www.symcon.de/de/llms/functions/management-objects.md) kann die Kategorie einem anderen Objekt untergeordnet werden und stellt so eine Unterkategorie dar.
Die Funktion liefert eine ID, mit deren Hilfe die erzeugte Kategorie eindeutig identifiziert werden kann.
**Beispiel**
```php
// Anlegen einer neuen Kategorie mit dem namen "Regenerfassung"
$CatID = IPS_CreateCategory(); // Kategorie anlegen
IPS_SetName($CatID, "Regenerfassung"); // Kategorie benennen
IPS_SetParent($CatID, 12345); // Kategorie einsortieren unter dem Objekt mit der ID "12345"
```
## IPS_DeleteCategory
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/kategorieverwaltung/ips-deletecategory/
`bool IPS_DeleteCategory(int $KategorieID)`
löscht eine bestehende Kategorie
**Parameter**
- `$KategorieID` (int): ID der zu löschenden Kategorie
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu löschenden Kategorie
**Beispiel**
```php
// Löschen der Kategorie 47788
IPS_DeleteCategory(47788);
```
## IPS_GetCategoryIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/kategorieverwaltung/ips-getcategoryidbyname/
`int IPS_GetCategoryIDByName(string $KategorieName, int $ÜbergeordneteID)`
sucht und liefert die ID einer bestehenden Kategorie über dessen Namen
**Parameter**
- `$KategorieName` (string): Zu suchender KategorieName
- `$ÜbergeordneteID` (int): Objekt, in deren direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID der gefundenen Kategorie, sonst FALSE
Objekt, in deren direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$KategorieID = @IPS_GetCategoryIDByName("Regenerfassung", $ÜbergeordneteID);
if ($KategorieID === false)
echo "Kategorie nicht gefunden!";
else
echo "Die Kategorien-ID lautet: ". $KategorieID;
```
## IPS_GetCategoryList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/kategorieverwaltung/ips-getcategorylist/
`array IPS_GetCategoryList()`
liefert eine Liste aller existierenden Kategorien
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Kategorien in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon eingerichteten Kategorien. Die IDs werden in einem Array aufgelistet. Falls keine Kategorie existiert, ist das Array leer.
**Beispiel**
```php
$alleKategorien = IPS_GetCategoryList();
print_r($alleKategorien);
/* liefert z.B.:
Array
(
[0] => 0
[1] => 37659
[2] => 18326
usw. ...
)
*/
```
---
# Linkverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/
## IPS_CreateLink
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-createlink/
`int IPS_CreateLink()`
_Benötigt Symcon >= 2.1_
legt einen neuen Link an
**Rückgabewert** (int): ID des neu erstellten Links
Die Funktion legt eine neuen Link an. Er benötigt keine Parameter. Nach Ausführung der Funktion erscheint im Kategorienbaum von IP-Symcon ein neues Objekt mit der Bezeichnung z.B. ”Unnamed Object (ID: 48490)”. Mit Hilfe der Funktion [IPS_SetName](https://www.symcon.de/de/llms/functions/management-objects.md) kann dem Objekt (hier der Link) ein aussagefähiger Name gegeben werden. Der Name ist jedoch für die Identifikation irrelevant. Hierfür ist immer die ID zuständig.
Weiterhin sollte der Link mit einem anderen Objekt verknüpft werden. Dies kann über die Funktion [IPS_SetLinkTargetID](https://www.symcon.de/de/llms/functions/management-links.md) gemacht werden.
Die Funktion liefert eine ID, mit deren Hilfe der erzeugte Link eindeutig identifiziert werden kann.
**Beispiel**
```php
// Anlegen eines neuen Links mit dem Namen "Regenerfassung"
$LinkID = IPS_CreateLink(); // Link anlegen
IPS_SetName($LinkID, "Regenerfassung"); // Link benennen
IPS_SetParent($LinkID, 12345); // Link einsortieren unter dem Objekt mit der ID "12345"
IPS_SetLinkTargetID($LinkID, 54321); // Link verknüpfen
```
## IPS_DeleteLink
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-deletelink/
`bool IPS_DeleteLink(int $LinkID)`
_Benötigt Symcon >= 2.1_
löscht einen bestehenden Link
**Parameter**
- `$LinkID` (int): ID des zu löschenden Links
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu löschenden Links
**Beispiel**
```php
//Löschen des Links 47788
IPS_DeleteLink(47788);
```
## IPS_GetLink
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-getlink/
`array IPS_GetLink(int $LinkID)`
_Benötigt Symcon >= 2.1_
liefert umfassende Informationen über einen Link
**Parameter**
- `$LinkID` (int): Die zu zeigende LinkID
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur verfügung:
| Index | Typ | Beschreibung |
| ------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| __LinkID__ | integer | ObjektID |
| __LinkChildID__ (bis 3.4) | integer | ID des Objektes mit dem dieser Link verknüpft ist. Siehe [IPS_SetLinkTargetID](https://www.symcon.de/de/llms/functions/management-links.md) (ab 4.0 dauerhaft ersetzt durch TargetID) |
| __TargetID__ (ab 2.6) | integer | ID des Objektes mit dem dieser Link verknüpft ist. Siehe [IPS_SetLinkTargetID](https://www.symcon.de/de/llms/functions/management-links.md) |
Die zu zeigende LinkID
**Beispiel**
```php
// Ab Version 4.0
print_r(IPS_GetLink(19668));
/* Beispielausgabe:
Array
(
[LinkID] => 19668
[TargetID] => 14444
)
*/
print_r(IPS_GetLinkCompatibility(19668));
/* Beispielausgabe:
Array
(
[LinkID] => 19668
[LinkChildID] => 14444
[TargetID] => 14444
)
*/
// Bis Version 3.4
print_r(IPS_GetLink(19668));
/* Beispielausgabe:
Array
(
[LinkID] => 19668
[LinkChildID] => 14444
[TargetID] => 14444
)
*/
// Bis Version 2.5
print_r(IPS_GetLink(19668));
/* Beispielausgabe:
Array
(
[LinkID] => 19668
[LinkChildID] => 14444
)
*/
```
## IPS_GetLinkIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-getlinkidbyname/
`int IPS_GetLinkIDByName(string $LinkName, int $ÜbergeordneteID)`
_Benötigt Symcon >= 2.1_
ermittelt die ID eines Links anhand des Namens
**Parameter**
- `$LinkName` (string): Zu suchender LinkName
- `$ÜbergeordneteID` (int): Objekt, in deren direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID des gefundenen Links, sonst FALSE
Objekt, in deren direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$LinkID = @IPS_GetLinkIDByName("Verlinkte Regenerfassung", $ÜbergeordneteID);
if ($LinkID === false)
echo "Link nicht gefunden!";
else
echo "Die Link-ID lautet: ". $LinkID;
```
## IPS_GetLinkList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-getlinklist/
`array IPS_GetLinkList()`
_Benötigt Symcon >= 2.1_
liefert eine Liste aller existierenden Links
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Links in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon eingerichteten Links . Die IDs werden in einem Array aufgelistet. Falls kein Link existiert, ist das Array leer.
**Beispiel**
```php
$alleLinks = IPS_GetLinkList();
print_r($alleLinks);
/* liefert z.B.:
Array
(
[0] => 0
[1] => 37659
[2] => 18326
usw. ...
)
*/
```
## IPS_LinkExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-linkexists/
`bool IPS_LinkExists(int $LinkID)`
_Benötigt Symcon >= 2.1_
prüft, ob ein Link bereits existiert
**Parameter**
- `$LinkID` (int): ID der zu prüfenden Links
**Rückgabewert** (bool): Falls die LinkID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
ID der zu prüfenden Links
**Beispiel**
```php
if (IPS_LinkExists(45724))
echo "Link existiert bereits!";
```
## IPS_SetLinkTargetID
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/linkverwaltung/ips-setlinktargetid/
`bool IPS_SetLinkTargetID(int $LinkID, int $VerknüpftesObjekt)`
_Benötigt Symcon >= 2.6_
setzt die Verknüpfung für den Link
**Parameter**
- `$LinkID` (int): ID des zu verändernden Links
- `$VerknüpftesObjekt` (int): ID des zu verknüpfenden Objekts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu verknüpfenden Objekts
**Beispiel**
```php
IPS_SetLinkTargetID($LinkID, 12345); //Auf Objekt 12345 verweisen
```
---
# Medienverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/
## IPS_CreateMedia
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-createmedia/
`int IPS_CreateMedia(int $MedienTyp)`
legt ein neues Medienobjekt im MedienPool an
**Parameter**
- `$MedienTyp` (int)
| Wert | Beschreibung |
| ---- | -------------------------------- |
| 0 | Legt ein __IPSView Formular__ an |
| 1 | Legt ein __Image Objekt__ an |
| 2 | Legt ein __Sound Objekt__ an |
| 3 | Legt ein __Stream Objekt__ an |
| 4 | Legt ein __Chart Objekt__ an |
| 5 | Legt ein __Dokument Objekt__ an |
**Rückgabewert** (int): ID des neu erstellten Medienobjekts
| Wert | Beschreibung |
| ---- | -------------------------------- |
| 0 | Legt ein __IPSView Formular__ an |
| 1 | Legt ein __Image Objekt__ an |
| 2 | Legt ein __Sound Objekt__ an |
| 3 | Legt ein __Stream Objekt__ an |
| 4 | Legt ein __Chart Objekt__ an |
| 5 | Legt ein __Dokument Objekt__ an |
**Beispiel**
```php
// Anlegen eines neuen Links mit dem Namen "Alarm"
$ImageFile = "C:\\Bilder\\Alarmsymbol.png"; // Image-Datei
$MediaID = IPS_CreateMedia(1); // Image im MedienPool anlegen
IPS_SetMediaFile($MediaID, $ImageFile, true); // Image im MedienPool mit Image-Datei verbinden
IPS_SetName($MediaID, "Alarm"); // Medienobjekt benennen
IPS_SetParent($MediaID, 12345); // Medienobjekt einsortieren unter dem Objekt mit der ID "12345"
```
## IPS_DeleteMedia
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-deletemedia/
`bool IPS_DeleteMedia(int $MedienID, bool $DateiLöschen)`
löscht ein Medienobjekt aus dem MedienPool
**Parameter**
- `$MedienID` (int): ID des zu löschenden Medienobjekts
- `$DateiLöschen` (bool): __TRUE__, wenn Datei gelöscht werden soll; __FALSE__, wenn die Datei in den ‘deleted’ Ordner verschoben werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__, wenn Datei gelöscht werden soll; __FALSE__, wenn die Datei in den ‘deleted’ Ordner verschoben werden soll
**Beispiel**
```php
IPS_DeleteMedia($MediaID, true);
```
## IPS_GetMedia
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmedia/
`array IPS_GetMedia(int $MedienID)`
liefert umfassende Information über ein bestimmtes Medienobjekt
**Parameter**
- `$MedienID` (int): Die zu zeigende MedienID
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ----------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| __IsAvailable__ (bis 3.4) | boolean | TRUE, wenn MediaFile vorhanden (ab Version 4.0 ersetzt durch MediaIsAvailable) |
| __IsLinked__ (bis 3.4) | boolean | TRUE, wenn Datei außerhalb des Media Ordners liegt (entfällt ab Version 4.0) |
| __LastUpdate__ (bis 3.4) | integer | Unix Timestamp der letzten Aktualisierung (ab Version 4.0 ersetzt durch MediaUpdated) |
| __MediaCRC__ | string | CRC32 der Datei |
| __MediaFile__ | string | Pfad zur Datei |
| __MediaID__ | integer | MediaID |
| __MediaIsAvailable__ (ab 4.0) | boolean | TRUE, wenn MediaFile vorhanden |
| __MediaIsCached__ (ab 4.0) | boolean | TRUE, wenn das Medienobjekt in den Arbeitsspeicher geladen werden soll. Siehe [IPS_SetMediaCached](https://www.symcon.de/de/llms/functions/management-media.md) |
| __MediaSize__ | integer | Größe in Byte |
| __MediaType__ | integer | Medien-Typ (0: Formular, 1: Bild, 2: Ton, 3: Stream, 4: Chart, 5: Dokument) |
| __MediaUpdated__ (ab 4.0) | integer | Unix Timestamp der letzten Aktualisierung |
| __SendEvent__ (bis 3.4) | boolean | TRUE, wenn automatisch Dateiänderungen versendet werden sollen (entfällt ab Version 4.0) |
Die zu zeigende MedienID
**Beispiel**
```php
// Ab Version 4.0
print_r(IPS_GetMedia(45699));
/* Beispielausgabe:
Array
(
[MediaCRC] => E2D2C1D1
[MediaFile] => media\45699.bin
[MediaID] => 45699
[MediaIsAvailable] => 1
[MediaIsCached] =>
[MediaSize] => 8192
[MediaType] => 0
[MediaUpdated] => 1214421546
)
*/
print_r(IPS_GetMediaCompatibility(45699));
/* Beispielausgabe:
Array
(
[IsAvailable] => 1
[IsLinked] =>
[LastUpdate] => 1214421546
[MediaCRC] => E2D2C1D1
[MediaFile] => media\45699.bin
[MediaID] => 45699
[MediaSize] => 8192
[MediaType] => 0
[SendEvent] =>
)
*/
// Bis Version 3.4
print_r(IPS_GetMedia(45699));
/* Beispielausgabe:
Array
(
[IsAvailable] => 1
[IsLinked] =>
[LastUpdate] => 1214421546
[MediaCRC] => E2D2C1D1
[MediaFile] => media\45699.bin
[MediaID] => 45699
[MediaSize] => 8192
[MediaType] => 0
[SendEvent] =>
)
*/
```
## IPS_GetMediaContent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmediacontent/
`string IPS_GetMediaContent(int $MedienID)`
_Benötigt Symcon >= 3.1_
liefert den Inhalt eines Medienobjekts
**Parameter**
- `$MedienID` (int): ID des Medienobjekts, dessen Inhalt geliefert werden soll
**Rückgabewert** (string): Der Inhalt des Medienobjekts in Base64 kodiert
ID des Medienobjekts, dessen Inhalt geliefert werden soll
**Beispiel**
```php
$Inhalt = base64_decode(IPS_GetMediaContent($MediaID));
```
## IPS_GetMediaID
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmediaid/
`int IPS_GetMediaID(string $MedienName)`
ermittelt die ID eines Medienobjekts
**Parameter**
- `$MedienName` (string): Zu suchender Medienname
**Rückgabewert** (int): ID des gefundenen Medienobjekts, sonst 0
Zu suchender Medienname
**Beispiel**
```php
$MediaID = IPS_GetMediaID("Regenmenge");
if ($MediaID == 0)
echo "Medienobjekt nicht gefunden!";
else
echo "Die Medienobjekt-ID lautet: ". $MediaID;
```
## IPS_GetMediaIDByFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmediaidbyfile/
`int IPS_GetMediaIDByFile(string $MedienPfad)`
ermittelt die ID eines Medienobjekts anhand der Datei
**Parameter**
- `$MedienPfad` (string): Relativer MedienPfad vom KernelDir gesehen
**Rückgabewert** (int): ID des gefundenen Medienobjekts, sonst 0 und Warning
Relativer MedienPfad vom KernelDir gesehen
**Beispiel**
```php
$MediaID = @IPS_GetMediaIDByFile("media\\help.png");
if ($MediaID == 0)
echo "Bild nicht gefunden!";
else
echo "Die Media-ID lautet: ". $MediaID;
```
## IPS_GetMediaIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmediaidbyname/
`int IPS_GetMediaIDByName(string $MedienName, int $ÜbergeordneteID)`
ermittelt die ID eines Medienobjekts anhand des Namens
**Parameter**
- `$MedienName` (string): Zu suchender MedienName
- `$ÜbergeordneteID` (int): Objekt, in deren direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID des gefundenen Medienobjekts, sonst FALSE
Objekt, in deren direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$MedienID = @IPS_GetMediaIDByName("MeinBild", $ÜbergeordneteID);
if ($MedienID === false)
echo "Bild nicht gefunden!";
else
echo "Die Media-ID lautet: ". $MedienID;
```
## IPS_GetMediaList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmedialist/
`array IPS_GetMediaList()`
liefert eine Liste aller Medienobjekte im MedienPool
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Medienobjekte in IP-Symcon
Die Funktion ermittelt die IDs aller im MedienPool registrierten Medienobjekte. Die IDs werden in einem Array aufgelistet. Falls kein Medienobjekt existiert, ist das Array leer.
Es werden Objekte aller Medientypen aufgelistet. Sollen nur Objekte eines bestimmten Medientyps berücksichtigt werden, so kann hierfür die Funktion [IPS_GetMediaListByType](https://www.symcon.de/de/llms/functions/management-media.md) verwendet werden.
**Beispiel**
```php
$alleMedienobjekte = IPS_GetMediaList();
print_r($alleMedienobjekte);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
*/
```
## IPS_GetMediaListByType
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-getmedialistbytype/
`array IPS_GetMediaListByType(int $MedienTyp)`
liefert eine Liste aller Medienobjekte eines bestimmten Typs
**Parameter**
- `$MedienTyp` (int)
| Wert | Beschreibung |
| ---- | ---------------- |
| 0 | IPSView Formular |
| 1 | Image Objekt |
| 2 | Sound Objekt |
| 3 | Stream Objekt |
| 4 | Chart Objekt |
| 5 | Dokument Objekt |
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Medienobjekt vom Typ __MedienTyp__ in IP-Symcon
| Wert | Beschreibung |
| ---- | ---------------- |
| 0 | IPSView Formular |
| 1 | Image Objekt |
| 2 | Sound Objekt |
| 3 | Stream Objekt |
| 4 | Chart Objekt |
| 5 | Dokument Objekt |
**Beispiel**
```php
$alleImageObjekte = IPS_GetMediaListByType(1); // nur Image-Objekte auflisten
print_r($alleImageObjekte);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
)
*/
```
## IPS_MediaExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-mediaexists/
`bool IPS_MediaExists(int $MedienID)`
prüft, ob sich ein bestimmtes Medienobjekt bereits im MedienPool befindet
**Parameter**
- `$MedienID` (int): ID des zu rüfenden Medienobjekts
**Rückgabewert** (bool): Falls die MedienID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
ID des zu rüfenden Medienobjekts
**Beispiel**
```php
if (IPS_MediaExists(34881))
echo "Ein Medienobjekt mit dieser ID existiert!";
```
## IPS_SendMediaEvent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-sendmediaevent/
`bool IPS_SendMediaEvent(int $MedienID)`
sendet eine Mitteilung, dass ein Medienobjekt sich geändert hat
**Parameter**
- `$MedienID` (int): ID des zu prüfenden Medienobjekts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu prüfenden Medienobjekts
**Beispiel**
```php
IPS_SendMediaEvent(12345);
```
## IPS_SetMediaCached
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-setmediacached/
`bool IPS_SetMediaCached(int $MedienID, bool $CacheAktiviert)`
aktiviert, dass ein Medienobjekt nur im Arbeitsspeicher bearbeitet wird
**Parameter**
- `$MedienID` (int): ID des zu verändernden Medienobjekts
- `$CacheAktiviert` (bool): __TRUE__, wenn das Medienobjekt nur im Cache verarbeitet werden soll, sonst __FALSE__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__, wenn das Medienobjekt nur im Cache verarbeitet werden soll, sonst __FALSE__
**Beispiel**
```php
$MediaID = IPS_CreateMedia(1); // Image im MedienPool anlegen
IPS_SetMediaCached($MediaID, true);
// Das Cachen für das Mediaobjekt wird aktiviert.
// Beim ersten Zugriff wird dieses von der Festplatte ausgelesen
// und zukünftig nur noch im Arbeitsspeicher verarbeitet.
```
## IPS_SetMediaContent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-setmediacontent/
`bool IPS_SetMediaContent(int $MedienID, string $Inhalt)`
_Benötigt Symcon >= 3.1_
setzt den Inhalt eines Medienobjekts
**Parameter**
- `$MedienID` (int): ID des Medienobjekts, dem der Inhalt zugeordnet werden soll
- `$Inhalt` (string): Base64 kodierter Inhalt
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Base64 kodierter Inhalt
**Beispiel**
```php
$MediaID = IPS_CreateMedia(1); //Bild hochladen
IPS_SetMediaFile($MediaID, "BlackPixel.gif", False);
IPS_SetMediaContent($MediaID, "R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=");
```
## IPS_SetMediaFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/medienverwaltung/ips-setmediafile/
`bool IPS_SetMediaFile(int $MedienID, string $DateiName, bool $DateiMussExistieren)`
bindet eine Mediendatei an ein Medienobjekt
**Parameter**
- `$MedienID` (int): ID des zu verändernden Medienobjekts
- `$DateiName` (string): Dateiname/-pfad der zu verknüpfenden Datei
- `$DateiMussExistieren` (bool): __TRUE__, wenn Existenz geprüft werden soll, sonst __FALSE__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__, wenn Existenz geprüft werden soll, sonst __FALSE__
**Beispiel**
```php
$ImageFile = "Alarmsymbol.png"; // Image-Datei
$MediaID = IPS_CreateMedia(1); // Image im MedienPool anlegen
IPS_SetMediaFile($MediaID, $ImageFile, true); // Image im MedienPool mit Image-Datei verbinden
```
---
# Modulverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/
## IPS_GetCompatibleModules
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getcompatiblemodules/
`array IPS_GetCompatibleModules(string $ModulID)`
liefert alle Kompatiblen Module zu einem bestimmten Modul
**Parameter**
- `$ModulID` (string): [GUID](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (array): Array von String-Werten aller kompatiblen ModulIDs zu __ModulID__
[GUID](https://www.symcon.de/de/llms/concepts.md)
**Beispiel**
```php
print_r(IPS_GetCompatibleModules("{57040540-4432-4220-8D2D-4676B57E223D}"));
/* liefert z.B.:
Array
(
[0] => {4CB91589-CE01-4700-906F-26320EFCF6C4}
[1] => {6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}
[2] => {3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}
[3] => {8062CF2B-600E-41D6-AD4B-1BA66C32D6ED}
usw. ...
)
*/
```
## IPS_GetLibrary
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getlibrary/
`array IPS_GetLibrary(string $BibliothekID)`
gibt Details zu einer Bibliothek
**Parameter**
- `$BibliothekID` (string): Die zu zeigende BibliothekID ([GUIDs](https://www.symcon.de/de/llms/concepts.md))
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ------------- | ------- | -------------------------------------------------------------- |
| __Author__ | string | Name des Autors |
| __Build__ | integer | Fortlaufende Zahl zur Versionierung |
| __Date__ | integer | Unix-Timestamp |
| __LibraryID__ | string | BibliothekID ([GUID](https://www.symcon.de/de/llms/concepts.md)) |
| __Name__ | string | Name der Bibliothek |
| __URL__ | string | Internetadresse zur Bibliothek |
| __Version__ | integer | HighByte: Major Version, LowByte: Minor Version |
Die zu zeigende BibliothekID ([GUIDs](https://www.symcon.de/de/llms/concepts.md))
**Beispiel**
```php
print_r(IPS_GetLibrary("{4414D465-0A32-49AC-929A-D948CBCDE06E}"));
/* liefert z.B.:
Array
(
[LibraryID] => {4414D465-0A32-49AC-929A-D948CBCDE06E}
[Author] => Symcon GmbH
[URL] => www.symcon.de
[Name] => SzenenSteuerung
[Version] => 1.1
[Build] => 0
[Date] => 0
)
*/
```
## IPS_GetLibraryList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getlibrarylist/
`array IPS_GetLibraryList()`
liefert eine Liste der Bibliotheken
**Rückgabewert** (array): Ein Array von String-Werten aller [GUIDs](https://www.symcon.de/de/llms/concepts.md) der Bibliotheken in IP-Symcon
Die Funktion ermittelt die [GUIDs](https://www.symcon.de/de/llms/concepts.md) aller in IP-Symcon verfügbaren Bibliotheken. Die IDs werden in einem Array aufgelistet.
**Beispiel**
```php
print_r(IPS_GetLibraryList());
/* liefert z.B.:
Array
(
[0] => {FF95B199-B3BD-424C-9AEF-3F004BC672B6}
[1] => {6EC74E99-C6FD-4E03-9195-E7BD90E6C07E}
[2] => {2CE84600-0A3C-438C-AC22-86439A1E5DF0}
usw. ...
)
*/
```
## IPS_GetLibraryModules
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getlibrarymodules/
`array IPS_GetLibraryModules(string $BibliothekID)`
gibt eine Liste der Module einer Bibliothek
**Parameter**
- `$BibliothekID` (string): Die zu zeigende BibliothekID
**Rückgabewert** (array): Ein Array von String-Werten aller [GUIDs](https://www.symcon.de/de/llms/concepts.md) der Module in einer Bibliothek in IP-Symcon
Die zu zeigende BibliothekID
**Beispiel**
```php
print_r(IPS_GetLibraryModules("{7DC57F9A-C095-4CDE-A6F0-2CB35A29A8FE}"));
/* liefert z.B.:
Array
(
[0] => {57040540-4432-4220-8D2D-4676B57E223D}
[1] => {48FCFDC1-11A5-4309-BB0B-A0DB8042A969}
[2] => {56800073-A809-4513-9618-1C593EE1240C}
[3] => {2FD7576A-D2AD-47EE-9779-A502F23CABB3}
usw. ...
)
*/
```
## IPS_GetModule
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getmodule/
`array IPS_GetModule(string $ModulID)`
gibt Details zu einem Modul
**Parameter**
- `$ModulID` (string): Die zu zeigende ModulID ([GUIDs](https://www.symcon.de/de/llms/concepts.md))
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------- |
| __Aliases__ | array | Array von alternativen Namen (string) für das Modul |
| __ChildRequirements__ | array | Array von [GUIDs](https://www.symcon.de/de/llms/concepts.md) (string), die von untergeordnete Objekten erwartet werden |
| __ParentRequirements__ | array | Array von [GUIDs](https://www.symcon.de/de/llms/concepts.md) (string), die von übergeordneten Objekten erwartet werden |
| __Implemented__ | array | Array von [GUIDs](https://www.symcon.de/de/llms/concepts.md) (string), die das Modul anbietet |
| __LibraryID__ | string | BibliothekID ([GUIDs](https://www.symcon.de/de/llms/concepts.md)), in dem das Modul enthalten ist |
| __ModuleID__ | string | ModulID ([GUIDs](https://www.symcon.de/de/llms/concepts.md)) |
| __ModuleName__ | string | Name des Moduls |
| __ModuleType__ | integer | Typ des Moduls (0: Kern, 1: I/O, 2: Splitter, 3: Gerät, 4: Konfigurator, 5: Discovery, 6: Visualisierung) |
| __Prefix__ | string | Prefix des Moduls zum Aufruf der dazugehörigen PHP-Funktionen (seit Version 6.1) |
| __Translation__ | array | Übersetzungen für den ModuleName und Aliases (seit Version 7.0) |
| __URL__ | string | URL zur Dokumentationsseite |
| __Vendor__ | string | System-/Herstellerkennzeichnung |
Die zu zeigende ModulID ([GUIDs](https://www.symcon.de/de/llms/concepts.md))
**Beispiel**
```php
print_r(IPS_GetModule("{BAEA5454-4256-48AA-982B-538201A374D4}"));
/* liefert z.B.:
Array
(
[ParentRequirements] => Array
(
[0] => {42DFD4E4-5831-4A27-91B9-6FF1B2960260}
)
[ChildRequirements] => Array
(
)
[Implemented] => Array
(
[0] => {8A4D3B17-F8D7-4905-877F-9E69CEC3D579}
)
[Vendor] => KNX
[Aliases] => Array
(
[0] => DPT 013.x - 4-Byte Signed Value
)
[Translation] => Array
(
[de] => Array
(
[KNX DPT 13] => KNX DPT 13
[DPT 013.x - 4-Byte Signed Value] => DPT 013.x - 4-Byte vorzeichenbehaftet Wert
)
)
[URL] => https://www.symcon.de/service/dokumentation/modulreferenz/knx/
[LibraryID] => {0945206A-47AA-4FDD-9093-99051E410E82}
[ModuleID] => {BAEA5454-4256-48AA-982B-538201A374D4}
[ModuleName] => KNX DPT 13
[ModuleType] => 3
)
*/
```
## IPS_GetModuleList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getmodulelist/
`array IPS_GetModuleList()`
gibt eine Liste aller Module
**Rückgabewert** (array): Ein Array von String-Werten aller [GUIDs](https://www.symcon.de/de/llms/concepts.md) der Module in IP-Symcon
Die Funktion ermittelt die [GUIDs](https://www.symcon.de/de/llms/concepts.md) aller in IP-Symcon verfügbaren Module. Die IDs werden in einem Array aufgelistet.
**Beispiel**
```php
print_r(IPS_GetModuleList());
/* liefert z.B.:
Array
(
[0] => {2D8B0172-166C-45B0-B979-61A787809E22}
[1] => {CCC52C33-D77A-4AE9-A6CF-462F152532A0}
[2] => {11842D31-3CA4-4F1B-BBA9-E4A0FE1873AF}
[3] => {4CB91589-CE01-4700-906F-26320EFCF6C4}
usw. ...
)
*/
//Alle Modulnamen mit GUID ausgeben
foreach(IPS_GetModuleList() as $guid)
{
$module = IPS_GetModule($guid);
// Nur Module aus der Kern-Bibliothek
if($module['LibraryID'] == "{0945206A-47AA-4FDD-9093-99051E410E82}") {
$pair[$module['ModuleName']] = $guid;
}
}
ksort($pair);
foreach($pair as $key=>$guid)
{
echo $key." = ".$guid."\n";
}
/*
ALL2x = {D805EC4C-7D17-4E84-98D3-A441AA71ACA3}
ALL3690 = {BBD04875-8CC5-412A-B848-B2AB6F08C425}
ALL3691 = {07CAE61E-01FA-4086-A2D1-55C442D8C8BF}
ALL4000 = {2D8B0172-166C-45B0-B979-61A787809E22}
ALLUniversal = {FB6B8DD0-CD8E-4CE7-8613-D7BD6436720A}
Archive Control = {43192F0B-135B-4CE7-A0A7-1475603F3060}
CMI = {AAAB8DD0-CD8E-4CE7-8613-D913371701AE}
Calendar Control = {1B9A5AF2-F2D2-4827-A13D-FFA6AB350371}
Client Socket = {3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}
Connect Control = {9486D575-BE8C-4ED8-B5B5-20930E26DE6F}
Cutter = {AC6C6E74-C797-40B3-BA82-F135D941D1A2}
DMX Gateway = {B1E43BF6-770A-4FD7-B4FE-6D265F93746B}
DMX Output = {E19C2E41-7347-4A3B-B7D9-A9A88E0D133E}
DMX RGB = {1AF36760-644E-4DA9-8776-01BA6DF6178E}
DNSSD Control = {780B2D48-916C-4D59-AD35-5A429B2355A5}
Dummy Module = {485D0419-BE97-4548-AA9C-C083EB82E61E}
EnOcean Configurator = {9BA823CF-83C6-4A5F-DBC2-295CA971833E}
EnOcean D20500 = {8DFBE8BC-FC2D-61F0-375C-C8C2A13CDC1A}
EnOcean D20501 = {927296DC-B74F-F0B8-2C4E-6B98236EDD94}
EnOcean D20502 = {B4D91880-71C1-626B-94D7-521565495264}
EnOcean Discovery = {29E1D618-F3CB-6868-59C6-4DCD02F8C78D}
EnOcean EEP A50201RX = {432FF87E-4497-48D6-8ED9-EE7104A50201}
EnOcean EEP A50202RX = {432FF87E-4497-48D6-8ED9-EE7104A50202}
EnOcean EEP A50203RX = {432FF87E-4497-48D6-8ED9-EE7104A50203}
EnOcean EEP A50204RX = {432FF87E-4497-48D6-8ED9-EE7104A50204}
EnOcean EEP A50205RX = {432FF87E-4497-48D6-8ED9-EE7104A50205}
EnOcean EEP A50206RX = {432FF87E-4497-48D6-8ED9-EE7104A50206}
EnOcean EEP A50207RX = {432FF87E-4497-48D6-8ED9-EE7104A50207}
EnOcean EEP A50208RX = {432FF87E-4497-48D6-8ED9-EE7104A50208}
EnOcean EEP A50209RX = {432FF87E-4497-48D6-8ED9-EE7104A50209}
EnOcean EEP A5020ARX = {432FF87E-4497-48D6-8ED9-EE7104A5020A}
EnOcean EEP A5020BRX = {432FF87E-4497-48D6-8ED9-EE7104A5020B}
EnOcean EEP A50210RX = {432FF87E-4497-48D6-8ED9-EE7104A50210}
EnOcean EEP A50211RX = {432FF87E-4497-48D6-8ED9-EE7104A50211}
EnOcean EEP A50212RX = {432FF87E-4497-48D6-8ED9-EE7104A50212}
EnOcean EEP A50213RX = {432FF87E-4497-48D6-8ED9-EE7104A50213}
EnOcean EEP A50214RX = {432FF87E-4497-48D6-8ED9-EE7104A50214}
EnOcean EEP A50215RX = {432FF87E-4497-48D6-8ED9-EE7104A50215}
EnOcean EEP A50216RX = {432FF87E-4497-48D6-8ED9-EE7104A50216}
EnOcean EEP A50217RX = {432FF87E-4497-48D6-8ED9-EE7104A50217}
EnOcean EEP A50218RX = {432FF87E-4497-48D6-8ED9-EE7104A50218}
EnOcean EEP A50219RX = {432FF87E-4497-48D6-8ED9-EE7104A50219}
EnOcean EEP A5021ARX = {432FF87E-4497-48D6-8ED9-EE7104A5021A}
EnOcean EEP A5021BRX = {432FF87E-4497-48D6-8ED9-EE7104A5021B}
EnOcean EEP A50220RX = {432FF87E-4497-48D6-8ED9-EE7104A50220}
EnOcean EEP A50230RX = {432FF87E-4497-48D6-8ED9-EE7104A50230}
EnOcean EEP A50401RX = {432FF87E-4497-48D6-8ED9-EE7104A50401}
EnOcean EEP A50402RX = {432FF87E-4497-48D6-8ED9-EE7104A50402}
EnOcean EEP A50403RX = {432FF87E-4497-48D6-8ED9-EE7104A50403}
EnOcean EEP A50601RX = {432FF87E-4497-48D6-8ED9-EE7104A50601}
EnOcean EEP A50602RX = {432FF87E-4497-48D6-8ED9-EE7104A50602}
EnOcean EEP A50603RX = {432FF87E-4497-48D6-8ED9-EE7104A50603}
EnOcean EEP A50701RX = {432FF87E-4497-48D6-8ED9-EE7104A50701}
EnOcean EEP A50702RX = {432FF87E-4497-48D6-8ED9-EE7104A50702}
EnOcean EEP A50703RX = {432FF87E-4497-48D6-8ED9-EE7104A50703}
EnOcean EEP A50801RX = {432FF87E-4497-48D6-8ED9-EE7104A50801}
EnOcean EEP A50802RX = {432FF87E-4497-48D6-8ED9-EE7104A50802}
EnOcean EEP A50803RX = {432FF87E-4497-48D6-8ED9-EE7104A50803}
EnOcean EEP A50901RX = {432FF87E-4497-48D6-8ED9-EE7104A50901}
EnOcean EEP A50902RX = {432FF87E-4497-48D6-8ED9-EE7104A50902}
EnOcean EEP A50904RX = {432FF87E-4497-48D6-8ED9-EE7104A50904}
EnOcean EEP A50905RX = {432FF87E-4497-48D6-8ED9-EE7104A50905}
EnOcean EEP A50906RX = {432FF87E-4497-48D6-8ED9-EE7104A50906}
EnOcean EEP A50907RX = {432FF87E-4497-48D6-8ED9-EE7104A50907}
EnOcean EEP A50908RX = {432FF87E-4497-48D6-8ED9-EE7104A50908}
EnOcean EEP A51001RX = {432FF87E-4497-48D6-8ED9-EE7104A51001}
EnOcean EEP A51002RX = {432FF87E-4497-48D6-8ED9-EE7104A51002}
EnOcean EEP A51003RX = {432FF87E-4497-48D6-8ED9-EE7104A51003}
EnOcean EEP A51004RX = {432FF87E-4497-48D6-8ED9-EE7104A51004}
EnOcean EEP A51005RX = {432FF87E-4497-48D6-8ED9-EE7104A51005}
EnOcean EEP A51006RX = {432FF87E-4497-48D6-8ED9-EE7104A51006}
EnOcean EEP A51007RX = {432FF87E-4497-48D6-8ED9-EE7104A51007}
EnOcean EEP A51008RX = {432FF87E-4497-48D6-8ED9-EE7104A51008}
EnOcean EEP A51009RX = {432FF87E-4497-48D6-8ED9-EE7104A51009}
EnOcean EEP A5100ARX = {432FF87E-4497-48D6-8ED9-EE7104A5100A}
EnOcean EEP A5100BRX = {432FF87E-4497-48D6-8ED9-EE7104A5100B}
EnOcean EEP A5100CRX = {432FF87E-4497-48D6-8ED9-EE7104A5100C}
EnOcean EEP A5100DRX = {432FF87E-4497-48D6-8ED9-EE7104A5100D}
EnOcean EEP A51010RX = {432FF87E-4497-48D6-8ED9-EE7104A51010}
EnOcean EEP A51011RX = {432FF87E-4497-48D6-8ED9-EE7104A51011}
EnOcean EEP A51012RX = {432FF87E-4497-48D6-8ED9-EE7104A51012}
EnOcean EEP A51013RX = {432FF87E-4497-48D6-8ED9-EE7104A51013}
EnOcean EEP A51014RX = {432FF87E-4497-48D6-8ED9-EE7104A51014}
EnOcean EEP A51015RX = {432FF87E-4497-48D6-8ED9-EE7104A51015}
EnOcean EEP A51016RX = {432FF87E-4497-48D6-8ED9-EE7104A51016}
EnOcean EEP A51017RX = {432FF87E-4497-48D6-8ED9-EE7104A51017}
EnOcean EEP A51018RX = {432FF87E-4497-48D6-8ED9-EE7104A51018}
EnOcean EEP A51019RX = {432FF87E-4497-48D6-8ED9-EE7104A51019}
EnOcean EEP A5101ARX = {432FF87E-4497-48D6-8ED9-EE7104A5101A}
EnOcean EEP A5101BRX = {432FF87E-4497-48D6-8ED9-EE7104A5101B}
EnOcean EEP A5101CRX = {432FF87E-4497-48D6-8ED9-EE7104A5101C}
EnOcean EEP A5101DRX = {432FF87E-4497-48D6-8ED9-EE7104A5101D}
EnOcean EEP A5101FRX = {432FF87E-4497-48D6-8ED9-EE7104A5101F}
EnOcean EEP A51020RX = {432FF87E-4497-48D6-8ED9-EE7104A51020}
EnOcean EEP A51021RX = {432FF87E-4497-48D6-8ED9-EE7104A51021}
EnOcean EEP A51022RX = {BBE179DE-1241-CB89-6803-492049D5546B}
EnOcean EEP A51023RX = {9880FC1A-AD89-5749-12A0-AF6C99D50B28}
EnOcean EEP A51101RX = {432FF87E-4497-48D6-8ED9-EE7104A51101}
EnOcean EEP A51102RX = {432FF87E-4497-48D6-8ED9-EE7104A51102}
EnOcean EEP A51103RX = {432FF87E-4497-48D6-8ED9-EE7104A51103}
EnOcean EEP A51104RX = {432FF87E-4497-48D6-8ED9-EE7104A51104}
EnOcean EEP A51200RX = {432FF87E-4497-48D6-8ED9-EE7104A51200}
EnOcean EEP A51201RX = {432FF87E-4497-48D6-8ED9-EE7104A51201}
EnOcean EEP A51202RX = {432FF87E-4497-48D6-8ED9-EE7104A51202}
EnOcean EEP A51203RX = {432FF87E-4497-48D6-8ED9-EE7104A51203}
EnOcean EEP A51301RX = {432FF87E-4497-48D6-8ED9-EE7104A51301}
EnOcean EEP A51302RX = {432FF87E-4497-48D6-8ED9-EE7104A51302}
EnOcean EEP A51303RX = {432FF87E-4497-48D6-8ED9-EE7104A51303}
EnOcean EEP A51304RX = {432FF87E-4497-48D6-8ED9-EE7104A51304}
EnOcean EEP A51305RX = {432FF87E-4497-48D6-8ED9-EE7104A51305}
EnOcean EEP A51401RX = {432FF87E-4497-48D6-8ED9-EE7104A51401}
EnOcean EEP A51402RX = {432FF87E-4497-48D6-8ED9-EE7104A51402}
EnOcean EEP A51403RX = {432FF87E-4497-48D6-8ED9-EE7104A51403}
EnOcean EEP A51404RX = {432FF87E-4497-48D6-8ED9-EE7104A51404}
EnOcean EEP A51405RX = {432FF87E-4497-48D6-8ED9-EE7104A51405}
EnOcean EEP A51406RX = {432FF87E-4497-48D6-8ED9-EE7104A51406}
EnOcean EEP A51407RX = {B3A8A26C-FF2F-491E-9279-E981959293C0}
EnOcean EEP A51408RX = {2C9E6E3A-319F-7ADF-024C-E8DEA7209A52}
EnOcean EEP A51409RX = {29CBDDA5-6CA6-4C17-9360-1979DCBD1E43}
EnOcean EEP A5140ARX = {1F3E63B6-F354-44FF-98DE-BEB63F36310C}
EnOcean EEP A52006 = {D25790E7-DC98-7EE3-4D74-2F0484392795}
EnOcean EEP A52012RX = {432FF87E-4497-48D6-8ED9-EE7104A52012}
EnOcean EEP A52012TX = {432FF87E-4497-48D6-8ED9-AA7104A52012}
EnOcean EEP A53001RX = {432FF87E-4497-48D6-8ED9-EE7104A53001}
EnOcean EEP A53002RX = {432FF87E-4497-48D6-8ED9-EE7104A53002}
EnOcean EEP A53003RX = {432FF87E-4497-48D6-8ED9-EE7104A53003}
EnOcean EEP A53004RX = {432FF87E-4497-48D6-8ED9-EE7104A53004}
EnOcean EEP A53701RX = {432FF87E-4497-48D6-8ED9-EE7104A53701}
EnOcean EEP A53808RX = {432FF87E-4497-48D6-8ED9-EE7104A53808}
EnOcean EEP A53809RX = {432FF87E-4497-48D6-8ED9-EE7104A53809}
EnOcean EEP D20100 = {8328F257-35B7-4034-AA23-20B0A30CAF11}
EnOcean EEP D20101 = {5F30BDCD-487F-44EE-9795-82C5DD429F2D}
EnOcean EEP D20102 = {C3825266-A6DE-44B6-97B4-C0BCFB6BD52B}
EnOcean EEP D20103 = {EAF7026C-A0DB-4B25-8DFD-D4FAB7A3EFCF}
EnOcean EEP D20104 = {5B38D44B-A570-4381-B719-8BFB58387AA1}
EnOcean EEP D20105 = {19FDCECC-0735-4ADA-8304-3AF53C919668}
EnOcean EEP D20106 = {1881B19B-A03C-437D-934D-28C598F13C39}
EnOcean EEP D20107 = {06DFB7CC-9945-4E1D-B08D-C505F4A7D2B4}
EnOcean EEP D20108 = {C885AB2C-7D83-4274-9420-EFEA5B8B0908}
EnOcean EEP D20109 = {BFDADCB0-BAB5-45BC-BF7A-1D19EA0FF31D}
EnOcean EEP D2010A = {6A37AC89-EFF0-40D8-88A1-8B24478FEE76}
EnOcean EEP D2010B = {F054B2EB-D812-47ED-B73C-22FBC0ADA667}
EnOcean EEP D2010C = {0389DA40-1B2A-446C-9448-03DED7977DC0}
EnOcean EEP D2010D = {744C3ACE-4680-4E1D-966F-CC959B25DFD6}
EnOcean EEP D2010E = {7E11E659-98E1-45A1-A9DB-29D337423C92}
EnOcean EEP D2010F = {AE62BF01-6C90-4FC2-8E1E-75EB5516BCF0}
EnOcean EEP D20110 = {699264EC-BEF1-4426-B501-687EA30C03B1}
EnOcean EEP D20111 = {21DDC756-E3CD-4B2D-B2F4-86092918A832}
EnOcean EEP D20112 = {47804DFF-5534-4256-8938-2C5D018736A3}
EnOcean EEP D20113 = {783B1089-4A50-4973-A522-C5288B9E1909}
EnOcean EEP D20114 = {A08C2716-CF6A-472C-A303-5C37C57A65BB}
EnOcean EEP D20300 = {8DA41914-45A6-8F0C-C935-178F76A36C42}
EnOcean EEP D2030A = {B24CF984-5CD7-B0D7-9661-41E6F2CEA0E7}
EnOcean EEP D20310 = {C14DBE59-E9B6-C9B7-7DEF-D98B8ADBA6F3}
EnOcean EEP D20601 = {6E5F79FE-3F0B-4CCE-8786-E8DD8893185B}
EnOcean EEP D20700 = {832ABD55-1173-B194-EB3F-D23681113A01}
EnOcean EEP D21101 = {3B1E2E8A-7C09-F58C-2841-3EF2D7C67F7A}
EnOcean EEP D21102 = {ED6AB19B-5A4A-80FD-BC4B-C07EE7F9915A}
EnOcean EEP D21103 = {7973060A-0241-E1E5-6E4B-CACBB08ACA76}
EnOcean EEP D21104 = {CC1482D1-6AD9-2199-C5E5-AD4EB6926455}
EnOcean EEP D21105 = {360F32BD-D9D5-5233-966A-63EAF54F671C}
EnOcean EEP D21106 = {8B2F1F85-A51C-0606-7CF3-8F980FEADB12}
EnOcean EEP D21107 = {F84B8E1B-B0DF-9383-1F6E-56EFAFB405A8}
EnOcean EEP D21108 = {1828E2A3-D83B-1433-46BF-AD0F11FF07DC}
EnOcean EEP D21430 = {1858BB3E-78BD-B090-7798-F1C0C26D912E}
EnOcean EEP D21500 = {75CA6030-43B9-8CF6-5901-E2DEF86E5249}
EnOcean EEP D23200 = {F60551AF-5D2B-4560-8BDD-7D1474C7A490}
EnOcean EEP D23201 = {C3B79AA9-54DB-4AE4-8ED4-3F954C723465}
EnOcean EEP D23202 = {0A03908E-694E-4CB1-BD35-AF7777504BFE}
EnOcean EEP D2A001 = {EA335B84-7E0A-F982-32CE-B50B60FC8E39}
EnOcean EEP D50001RX = {432FF87E-4497-48D6-8ED9-EE7104D50001}
EnOcean EEP F60101RX = {B9ED3CC4-A354-0420-A7D3-9AFC6C721FB3}
EnOcean EEP F60201RX = {432FF87E-4497-48D6-8ED9-EE7104F60201}
EnOcean EEP F60202RX = {432FF87E-4497-48D6-8ED9-EE7104F60202}
EnOcean EEP F60203RX = {432FF87E-4497-48D6-8ED9-EE7104F60203}
EnOcean EEP F60204RX = {432FF87E-4497-48D6-8ED9-EE7104F60204}
EnOcean EEP F60301RX = {432FF87E-4497-48D6-8ED9-EE7104F60301}
EnOcean EEP F60302RX = {432FF87E-4497-48D6-8ED9-EE7104F60302}
EnOcean EEP F60401RX = {432FF87E-4497-48D6-8ED9-EE7104F60401}
EnOcean EEP F60402RX = {432FF87E-4497-48D6-8ED9-EE7104F60402}
EnOcean EEP F60500RX = {74DB7CEE-18F9-478D-9FBC-CA857F807C50}
EnOcean EEP F60501RX = {432FF87E-4497-48D6-8ED9-EE7104F60501}
EnOcean EEP F60502RX = {8D42EFEE-119C-4CA8-BED2-66D18921749E}
EnOcean EEP F61000RX = {432FF87E-4497-48D6-8ED9-EE7104F61000}
EnOcean EEP F61001RX = {C31A7F85-4E76-E9C9-F920-2953DE737560}
EnOcean EltakoDimmer = {48909406-A2B9-4990-934F-28B9A80CD079}
EnOcean EltakoFABH130 = {03AEBCA9-1140-969E-7C72-728A1F30CD55}
EnOcean EltakoFABH65S = {0E8E3267-5CFA-4A52-AB3E-899170D16116}
EnOcean EltakoFAFT60 = {0BE195DC-6002-4D99-A566-3B9B0B57FAD6}
EnOcean EltakoFAH60 = {AF827EB8-08A3-434D-9690-424AFF06C698}
EnOcean EltakoFHK14 = {7C25F5A6-ED34-4FB4-8A6D-D49DFE636CDC}
EnOcean EltakoFKC = {40C99CC9-EC04-49C8-BB9B-73E21B6FDDDD}
EnOcean EltakoFRW = {40C99CC9-EC04-49C8-BB9B-73E21B6FEEEE}
EnOcean EltakoFSS12 = {7124C1BC-B260-4C5E-BF00-B38D3C7B5CB7}
EnOcean EltakoFTR65 = {40C99CC9-EC04-49C8-BB9B-73E21B6FFF65}
EnOcean EltakoFWS61 = {9E4572C0-C306-4F00-B536-E75B4950F094}
EnOcean EltakoFZS = {40C99CC9-EC04-49C8-BB9B-73E21B6FCCCC}
EnOcean EltakoRGBW = {71072C70-7ADF-6CC5-8D6F-7368132584F8}
EnOcean EltakoShutter = {1463CAE7-C7D5-4623-8539-DD7ADA6E92A9}
EnOcean EltakoSwitch = {FD46DA33-724B-489E-A931-C00BFD0166C9}
EnOcean Gateway = {A52FEFE9-7858-4B8E-A96E-26E15CB944F7}
EnOcean Hoppe = {1C8D7E80-3ED1-4117-BB53-9C5F61B1BEF3}
EnOcean Opus = {9B1F32CD-CD74-409A-9820-E5FFF064449A}
EnOcean PTM200 = {40C99CC9-EC04-49C8-BB9B-73E21B6FA265}
EnOcean PTM200RX = {63484585-F8AD-4780-BAFD-3C0353641046}
EnOcean RCM100 = {8492CEAF-ED62-4634-8A2F-B09A7CEDDE5B}
EnOcean STM100 = {FA1479DE-C0C1-433D-98BC-EA7C298D1AA5}
EnOcean STM250 = {B01DE819-EA69-4FC1-91AB-4D9FF8D55370}
EnOcean Shutter = {1463CAE7-C7D5-4623-8539-DD7ADA6E92AA}
EnOcean SmartDrive MX = {004A19B5-6E60-41A3-813C-7653ABAB6116}
EnOcean Thermokon SR0x = {B4249BC6-5BA8-45E3-B506-86680935D4EE}
EnOcean Thermokon Thanos = {54E114A3-F9B6-4747-A07E-D2A064629627}
EnOcean Valve Actuator = {004A19B5-6E60-41A3-813C-A11DC00B6116}
EnOcean alphaEOS SENSE TF-H = {F98CD462-0147-4A79-A0DF-448580E01629}
Event Control = {ED573B53-8991-4866-B28C-CBE44C59A2DA}
FHT = {A89F8DFA-A439-4BF1-B7CB-43D047208DDD}
FHZ = {57040540-4432-4220-8D2D-4676B57E223D}
FS10 = {6D508C91-F197-44A9-A1AB-A27F97A18A5F}
FS10 Gateway = {753E7267-7558-49D3-ACFB-86755C28318D}
FS20 = {48FCFDC1-11A5-4309-BB0B-A0DB8042A969}
FS20EX = {56800073-A809-4513-9618-1C593EE1240C}
HID = {E6D7692A-7F4C-441D-827B-64062CFE1C02}
HMS = {2FD7576A-D2AD-47EE-9779-A502F23CABB3}
HTTP Client = {4CB91589-CE01-4700-906F-26320EFCF6C4}
Heating Control = {FF7AF0F4-D616-4EF5-B73A-D49C56CF4C92}
Heating Control Legacy = {3F52FA69-77F5-4DE6-8B2A-347452AC5F8F}
HomeMatic Configurator = {5214C3C6-91BC-4FE1-A2D9-A3920261DA74}
HomeMatic Device = {EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}
HomeMatic Discovery = {3718244C-71A2-B20D-F754-DF5C79340AB4}
HomeMatic Socket = {A151ECE9-D733-4FB9-AA15-7F7DD10C58AF}
IMAP = {CABFCCA1-FBFF-4AB7-B11B-9879E67E152F}
IPS-868 AD = {134A1CFF-3CAA-4D2E-8517-F9BFDE7555C9}
IPS-868 Accelerometer = {304B6E9A-A518-43C6-80E8-D066879E7FD1}
IPS-868 AirQuality = {2B2842ED-0BB9-45FE-934C-1DFE07E1A724}
IPS-868 Configurator = {0A3CCE10-7613-1C54-0721-57023C98EFDA}
IPS-868 Counter = {134A1CFF-3CAA-4D2E-8517-F9BFDE7544C9}
IPS-868 DA = {134A1CFF-3CAA-4D2E-8517-F9BFDE7566C9}
IPS-868 Data = {984FFE86-71BE-48D3-943E-45277BECB52D}
IPS-868 Discovery = {F2B8A368-F9F2-7919-B299-79DC5B64B8A4}
IPS-868 Display = {9542B617-C603-4E8A-BFDE-DD69663F0226}
IPS-868 Display Input = {FBF6F86C-4901-4957-8D08-2B2CBC1DF71A}
IPS-868 Display Output = {C8CF38E9-BEAA-4149-A9ED-C8AAE04E8A6D}
IPS-868 Gateway = {995946C3-7995-48A5-86E1-6FB16C3A0F8A}
IPS-868 Input = {5509B26C-F2F7-428F-973B-FD5D07C80111}
IPS-868 Level = {C7A069AB-E2BE-4AD2-BB51-A7B52D6FAC4E}
IPS-868 Servo = {D2C92D2D-FC07-4545-AEBA-4294FD9D3035}
IPS-868 Servo Input = {7D07671F-65FF-4D9A-B521-9F0964DD9399}
IPS-868 Stripe = {7AF52E55-4994-44AE-9DB8-752895F1EB76}
IPS-868 Stripe Input = {26B22717-924E-4D58-B091-C98E49812238}
IPS-868 Thermo = {95D715AA-AB5A-4423-AD7B-5081EB542971}
IPS-868 Tracker = {50460BD9-FA93-4DE0-976A-55208C90DF15}
IPS-868 WatchDogTimer = {9F88A462-BFDA-47C5-990C-B9E20D2F861E}
IRTrans Device = {899DBC68-0147-4528-B95D-D43C568D4E56}
IRTrans Gateway = {0F0F74EF-2304-4C23-840F-EC1C5B9A9A82}
Image Grabber = {5A5D5DBD-53AB-4826-8B09-71E9E4E981E5}
JSON Decoder = {9F976F04-7DC4-BB2D-38CA-67C1AFC84C7A}
KNX Configurator = {33765ABB-CFA5-40AA-89C0-A7CEA89CFE7A}
KNX DPT 1 = {F3058AB2-AFDC-4479-A053-5F4599DF6F5B}
KNX DPT 10 = {2D26EF69-C3BC-4738-879D-FB493DD166BF}
KNX DPT 11 = {4A5AE804-59E2-41EA-ABCE-3BC80F33543C}
KNX DPT 12 = {AD992707-B7DC-4255-96DE-B70057CEC989}
KNX DPT 13 = {BAEA5454-4256-48AA-982B-538201A374D4}
KNX DPT 14 = {E8C3C9ED-A6FA-45FF-A942-A206FEEE360C}
KNX DPT 15 = {16B72DE7-3C8B-4709-8819-6A260E890A12}
KNX DPT 16 = {2146FF76-FAE6-46B6-9630-73E5F3FAE190}
KNX DPT 17 = {E8A0352C-B13F-4691-AAF5-586DE502569E}
KNX DPT 18 = {8B2A23B9-6B96-4F76-9EC8-5365BA7E9441}
KNX DPT 19 = {8456D139-6771-4821-8A37-9304BEAA1BFD}
KNX DPT 2 = {434A6354-235F-4484-8883-9FF30616E3FB}
KNX DPT 20 = {C9304609-D1CD-4F07-BE7C-E5546A91A5DF}
KNX DPT 200 = {04ED3286-C982-436F-A01E-8A03C2E976A8}
KNX DPT 201 = {5F14B9D5-297D-4C25-9E45-92BF7B7C3F02}
KNX DPT 202 = {22726542-A2B6-4FBB-BB98-BA5927932C23}
KNX DPT 203 = {3243B56D-DE90-4BED-8E07-E4DEE777C6AF}
KNX DPT 204 = {06E5F74A-BC1F-4F69-BBE6-8AD663058CD9}
KNX DPT 205 = {28837D84-085F-4701-ADA0-CF9A8F49F591}
KNX DPT 206 = {F5E3C9F5-A0E8-4919-BB38-0551AE5886A7}
KNX DPT 207 = {EE68B239-8E3A-4F54-9501-96CB4B2700A4}
KNX DPT 209 = {D9A125D0-8D82-4808-A024-0FC5E82799D6}
KNX DPT 21 = {8941E278-1901-478D-AFC8-807E3515DD28}
KNX DPT 210 = {68E7C9CE-724E-4CBE-8206-A61AD9A6A328}
KNX DPT 211 = {0636647E-EB02-4EE3-857E-0B69C0E8AA3D}
KNX DPT 212 = {4D8AD2DA-5669-4BEB-B9C7-983DA48A7777}
KNX DPT 213 = {DEA88D19-78B6-4D51-89FF-E3958151863D}
KNX DPT 214 = {AC33D286-FBBC-40BE-91CC-C470FB896C04}
KNX DPT 215 = {619D8815-1E90-4A7A-B51D-14DCB2FCE0E0}
KNX DPT 216 = {F5339A58-E891-4A22-AF29-3C801D3092EE}
KNX DPT 217 = {9CF216A5-370F-4BD9-92F0-B7BF87933A76}
KNX DPT 218 = {DB54CF66-4ED5-4457-A1EF-A3DF52EC135F}
KNX DPT 219 = {7EA00021-4300-4B9F-A274-863E1DD41695}
KNX DPT 22 = {DD0F4EF5-3C71-44F1-A346-397D34809D30}
KNX DPT 220 = {14BBE7DF-8442-4ED8-9D7D-C00B3E1B892A}
KNX DPT 221 = {3C16BD4B-45BF-435A-84DA-D7908F2D6140}
KNX DPT 222 = {3AD960E1-E129-4D96-BFAC-696AC149C629}
KNX DPT 223 = {EA6A0F52-ECEF-46D2-A942-96DDED471732}
KNX DPT 224 = {7245A626-1864-4834-A181-EE4FB4AD50DC}
KNX DPT 225 = {CC6C64D0-2F48-4497-A6A6-2120BAE5CD52}
KNX DPT 229 = {3F20B758-71DD-4C0B-A169-D4B59B023555}
KNX DPT 23 = {7CA94B7E-6460-4D68-8568-EE4B0912C5BF}
KNX DPT 230 = {88546CFE-1265-494C-B80C-1A3A6E1E671D}
KNX DPT 231 = {44A18680-880B-4ACC-9E84-8FB79FB9D727}
KNX DPT 232 = {DE2E3FBF-1588-4293-B76C-C90446D9E5F1}
KNX DPT 234 = {C667FC98-9FE4-4953-87ED-2B75F59704A4}
KNX DPT 235 = {960A48AD-36AB-4174-A298-F31E99014738}
KNX DPT 236 = {8A57A40D-AE55-42D5-BF33-4F1E0DDA1F8C}
KNX DPT 237 = {E3E1F95B-3356-4F6A-A419-9486125E023A}
KNX DPT 238 = {117D49A5-7D8F-4509-8669-F44972F072DD}
KNX DPT 239 = {F8AE906F-76E2-4464-96DA-B9A6D19049C9}
KNX DPT 240 = {CC5F383D-975B-44E9-BC18-C64FA2698CC0}
KNX DPT 241 = {A26BC82A-5953-4385-9FAA-5A5D3814D2B5}
KNX DPT 242 = {F565EF9F-30A5-4E1C-BA10-7BC15AB4EFB4}
KNX DPT 249 = {34B83F38-03F2-4D15-9031-70197CE9456E}
KNX DPT 25 = {9FB4BD67-5E67-4E94-B8C8-71D609048BBB}
KNX DPT 251 = {9165E3E2-8ED2-4152-BEFF-97793823FE4D}
KNX DPT 26 = {135F8FCF-DAFC-46AA-85EC-94C911FD21DF}
KNX DPT 27 = {EDE5D3E1-FB5A-48EE-A944-0A4ED0FBACC1}
KNX DPT 28 = {3E175751-4B84-4E8E-98C1-BF0D12835F2C}
KNX DPT 29 = {AA9ED268-3B37-4962-85BB-CBC73CB11618}
KNX DPT 3 = {EB931B1A-3A4A-47E9-AC67-D2A0D285B60C}
KNX DPT 30 = {2E7AADF5-F1DF-476D-B207-22D204C4AD28}
KNX DPT 31 = {5AD8B9C3-5A87-4426-B9A1-C7935022A680}
KNX DPT 4 = {6891595A-BF7C-4F4C-8A3B-7EA7346C8657}
KNX DPT 5 = {EBD0EE8D-DFA5-449F-BBE4-49CFC5F0EEB4}
KNX DPT 6 = {BAC22632-D6ED-4D88-82EA-726D700C4F2A}
KNX DPT 7 = {DCAFED37-B20B-4EEB-AA44-799C9B804557}
KNX DPT 8 = {7852DBDE-C68A-4A3E-88AF-155B99605371}
KNX DPT 9 = {95CDE37D-72CE-4360-BB91-573757C274A0}
KNX Discovery = {3519D734-79C9-4E7A-9E9B-91B6374D1C10}
KNX EIS Group = {D62B95D3-0C5E-406E-B1D9-8D102E50F64B}
KNX Gateway = {1C902193-B044-43B8-9433-419F09C641B8}
KNX RGB = {4D7F7548-0979-4ABD-9BB3-81F9477C0903}
KNX RGBW = {81F54858-72B1-4C2C-8CE3-7E00A3168378}
KNX Shutter = {24A9D68D-7B98-4D74-9BAE-3645D435A9EF}
KS300 = {9D21F700-6F67-4FBB-ACC2-AA42420A0486}
LCN Configurator = {0F64973F-4669-4272-BDB3-6338D0350269}
LCN Data = {A26E7E5A-A7C5-4063-8BE0-ED8BB26F8411}
LCN Display = {A26E7E5A-A7C5-4063-8BE0-ED8BB26F8522}
LCN Gateway = {9BDFC391-DEFF-4B71-A76B-604DBA80F207}
LCN Module = {0E31FED6-E465-4621-95D4-AAF2683C41EC}
LCN RGBW = {839D1208-D4BB-4FA7-86FA-AA9FBF96ED17}
LCN Shutter = {C81E019F-6341-4748-8644-1C29D99B813E}
LCN ShutterMotor = {C81E019F-6341-4748-8644-1C29D99B813F}
LCN Unit = {2D871359-14D8-493F-9B01-26432E3A710F}
LCN Value = {0102BDC9-3B85-4A11-968D-7D314DA07C06}
LevelJet = {D64B904C-5312-443C-A2F3-03201ED9811C}
Location Control = {45E97A63-F870-408A-B259-2933F7EABF74}
M-Bus Configurator = {73336CB8-B5E5-187E-8BB8-CC4F32BF127D}
M-Bus Device = {B53BE2E5-892D-4537-94AC-EAC68A469188}
M-Bus Discovery = {6BED8C28-002F-66B7-07B5-4145D4408F34}
M-Bus Gateway = {301AB802-23CD-4DE2-91D1-6E3BC9BF03FC}
MQTT Client = {F7A0DD2E-7684-95C0-64C2-D2A9DC47577B}
MQTT Client Configurator = {2408C0E0-E672-7FE5-414B-F78C9B9244E4}
MQTT Client Device = {91D174F2-AE0F-B8D8-5EF4-6232B9083CCF}
MQTT Server = {C6D2AEB3-6E1F-4B2E-8E69-3A1A00246850}
MQTT Server Configurator = {CC4F15B1-81C2-4F45-8D53-972F0C9C8103}
MQTT Server Device = {01C00ADD-D04E-452E-B66A-D253278743FE}
Media Player = {2999EBBB-5D36-407E-A52B-E9142A45F19C}
ModBus Address = {CB197E50-273D-4535-8C91-BB35273E3CA5}
ModBus Configurator = {8C1E6AC6-4C45-067A-3696-6B4284B75C4B}
ModBus Gateway = {A5F663AB-C400-4FE5-B207-4D67CC030564}
Module Control = {B8A5067A-AFC2-3798-FEDC-BCD02A45615E}
Multicast Socket = {BAB408E0-0A0F-48C3-B14E-9FB2FA81F66A}
Notification Control = {D4B231D6-8141-4B9E-9B32-82DA3AEEAB78}
OZW Configurator = {62BDA2F6-6206-4DC3-9431-4328B5890836}
OZW DataPoint = {422A36CD-5565-4CDC-9FC4-242D3C810901}
OZW Device = {CE54AFB0-625A-4F37-B5C1-EAF1FD2A1DA6}
OZW Gateway = {1D60A51E-FF04-4D82-9E0D-04B3A11EF13F}
OneWire Configurator = {F462BFF3-6772-4720-8450-49E6E2820643}
OneWire Discovery = {1739B440-4A46-F5FF-8640-F9DF3D14C06B}
OneWire F05 = {F1B54BB1-DC7D-42D9-A973-6CA4789E358F}
OneWire F10 = {685D4911-57CC-43AF-BA36-183EF2C8518F}
OneWire F12 = {50DB3978-CF6A-4BCE-87DF-5BB45D900628}
OneWire F1D = {88A63FF8-832B-48E3-B989-A416C7908E6A}
OneWire F20 = {5DF182B0-01DF-4D8A-82CD-E646FD9BF0B2}
OneWire F26 = {301FA314-65F8-4317-8BF5-729CF8664F54}
OneWire F28 = {766E337F-A707-48CC-A323-70D7E77E3F8C}
OneWire F29 = {6A75828A-25CD-4CF3-83EA-DAAB914030A7}
OneWire F2C = {E02955B3-49E4-47A9-A9ED-2C71401F6D6E}
OneWire F3A = {BD0F2622-F67C-4248-9A04-316DF13914C3}
OneWire Gateway = {CED1D815-2477-4B05-8F65-0E4475913063}
POP3 = {69CA7DBF-5FCE-4FDF-9F36-C05E0136ECFD}
Popup Module = {5EA439B8-FB5C-4B81-AA35-1D14F4EA9821}
Presence Control = {B263AFBC-950F-462C-95B1-E3ACACE0B9B0}
Register Variable = {F3855B3C-7CD6-47CA-97AB-E66D346C037F}
SMS = {96102E00-FD8C-4DD3-A3C2-376A44895AB1}
SMS REST = {96102E00-FD8C-4DD3-A3C2-376A44895AC2}
SMTP = {375EAF21-35EF-4BC4-83B3-C780FD8BD88A}
SSDP Control = {FFFFA648-B296-E785-96ED-065F7CEE6F29}
SSE Client = {2FADB4B7-FDAB-3C64-3E2C-068A4809849A}
Serial Port = {6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1}
Server Socket = {8062CF2B-600E-41D6-AD4B-1BA66C32D6ED}
Shutter Control = {9512FC2C-7999-4BD0-B322-B6C49BD09127}
Shutter Control Legacy = {542CC907-CA63-4E7A-A8C7-92F74639FA4C}
Siemens Configurator = {691B4B06-C774-BA52-6C63-B88D5EDD79EB}
Siemens Device = {932076B1-B18E-4AB6-AB6D-275ED30B62DB}
Siemens Gateway = {1B0A36F7-343F-42F3-8181-0748819FB324}
Skin Control = {E8C1043A-E2C2-4CC8-88DC-CBF02D45E15E}
Store Control = {F45B5D1F-56AE-4C61-9AB2-C87C63149EC3}
TMEX = {ABEE57FB-E243-461D-B2F7-4D176ACB7C7C}
Text Parser = {4B00C7F7-1A6D-4795-A2D2-08151854D259}
Text To Speech = {684CC410-6777-46DD-A33F-C18AC615BB94}
ThermoJet = {C3380B6E-2351-4A19-9668-A17960F97E51}
UDP Socket = {82347F20-F541-41E1-AC5B-A636FD3AE2D8}
UVR1611 = {0A8F9D69-E78B-4EAB-8E26-C8A4ACF7FA25}
Universal RX = {23D1E4CD-77E9-4F4B-B8B3-53AE81222AF6}
Util Control = {B69010EA-96D5-46DF-B885-24821B8C8DBD}
Velleman USB = {8CE70CD0-6674-4907-B3CE-F6E5235C9938}
Virtual IO = {6179ED6A-FC31-413C-BB8E-1204150CF376}
VoIP = {A4224A63-49EA-445F-8422-22EF99D8F624}
WMRS200 = {DD2A4676-82C6-4154-9AAD-DE30668D53B0}
WMRS200 Gateway = {E4FDC411-95D5-453C-B731-0CEB0483E663}
WS Client = {D68FD31F-0E90-7019-F16C-1949BD3079EF}
WebFront Visualization = {3565B1F2-8F7B-4311-A4B6-1BF1D868F39E}
WebHook Control = {015A6EB8-D6E5-4B93-B496-0D3F77AE9FE1}
WebOAuth Control = {F99BF07D-CECA-438B-A497-E4B55F139D37}
WebServer = {D83E9CCF-9869-420F-8306-2B043E9BA180}
WinLIRC = {19E51FC2-064B-4A51-8995-11FEFF7F129A}
WuT Counter = {5F1C5261-07A2-4A7E-9AC4-88AF9ED29420}
WuT Gateway = {01CA6888-C833-484E-A3F3-806535421CB7}
WuT Input = {C3D0F82C-CD07-4AA8-AE5C-7AD983FE91F3}
WuT Output = {E85C40B3-C1E9-4A60-85C7-6CDDA3D8D7BF}
WuT ThermoHygro = {2EF634A4-D96D-4018-BD90-94E487A89D49}
XBee Gateway = {7FA47C08-E31B-44A6-9E50-20C4DDD3E081}
XBee Splitter = {9D5DCE79-1A97-4531-9D10-68839F4BEAAC}
Z-Wave Configurator = {2D7CA355-2C51-4430-8F67-4E397EAAEA19}
Z-Wave Discovery = {5754F842-9D3E-BF8D-E3FC-8B1237AEC7E5}
Z-Wave Gateway = {4EF72D56-BF9F-4347-8F0A-2035D241116F}
Z-Wave Module = {101352E1-88C7-4F16-998B-E20D50779AF6}
dS Apartment = {555C65F5-F436-467F-A2B1-DAA1BB02CA3B}
dS Configurator = {7CADC358-60B0-4D91-9825-27E9029B62C4}
dS Expert = {1822D865-2093-32A1-6999-280C82E669EB}
dS Joker = {DB54D0EC-64C4-4941-9B64-2337183C9C2E}
dS Light = {DB54D0DB-64C3-4930-9B53-2337183C9C1D}
dS Shutter = {3DDA1E2B-B807-4680-AB6D-E7E8FBD6093A}
dS Splitter = {8D7872F4-CAC3-409D-926B-CCF1BA9E937B}
dS Zone = {4E0FE8A0-1A1E-460A-9446-2D18B3635310}
ekey Fingerprint = {9AB0DD38-A396-4D35-81A1-2FB6A3992332}
xComfort Binary Input = {3040A77D-3E9C-42D4-A1B6-329EFE8086DB}
xComfort Configurator = {5DD921D4-4712-443F-B89F-03434A4DBF94}
xComfort Dimmer = {8050FEEC-C875-4BDD-9143-D15134B89D35}
xComfort Energy = {814067F0-EACB-43C3-99BD-5CB9B2F8FB9E}
xComfort Gateway = {D2DCE381-19A7-4D14-B819-49C0539BC350}
xComfort HRV = {E4693C3F-95F1-48B6-9443-4A6B3EE0FACA}
xComfort Heating = {586D59EE-04A8-4896-B49D-63B4DD9618EF}
xComfort Humidity = {3EBA1AB7-72CA-48D2-8F89-813E085D41BB}
xComfort Impulse = {A374DCF0-CEDE-4EB7-B6A8-E92787E19B25}
xComfort One Channel Heating = {62444FDF-FBF0-8F98-50B3-B1E85ADD86E2}
xComfort Remote = {DCBD8143-83AB-4068-8FC0-0C92A93AA8A8}
xComfort Room Control = {1A1C4C67-C99D-4D3E-8A34-23581CE8CCAA}
xComfort Shutter = {1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}
xComfort Switch = {27DD9788-802E-45B7-BA54-FB97141398F7}
xComfort Temperature = {591B4A05-E5BF-4EEA-BC34-36E6F1CC9D56}
xComfort Value RX = {DA2FCC12-2DE1-404A-8A5E-1C6AF05F96A2}
xComfort Value TX = {ED6A1E00-81C7-416F-9F97-1F2CC8F45B15}
*/
```
## IPS_GetModuleListByType
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-getmodulelistbytype/
`array IPS_GetModuleListByType(int $ModulTyp)`
_Benötigt Symcon >= 3.3_
gibt eine Liste aller Module des typs
**Parameter**
- `$ModulTyp` (int)
| Wert | Beschreibung |
| ---- | -------------- |
| 0 | Kern |
| 1 | I/O |
| 2 | Splitter |
| 3 | Gerät |
| 4 | Konfigurator |
| 5 | Discovery |
| 6 | Visualisierung |
**Rückgabewert** (array): Ein Array von String-Werten aller [GUIDs](https://www.symcon.de/de/llms/concepts.md) der Module in IP-Symcon mit dem angegebenen Typ
| Wert | Beschreibung |
| ---- | -------------- |
| 0 | Kern |
| 1 | I/O |
| 2 | Splitter |
| 3 | Gerät |
| 4 | Konfigurator |
| 5 | Discovery |
| 6 | Visualisierung |
**Beispiel**
```php
print_r(IPS_GetModuleListByType(0));
/* liefert z.B.:
Array
(
[0] => {2D8B0172-166C-45B0-B979-61A787809E22}
[1] => {CCC52C33-D77A-4AE9-A6CF-462F152532A0}
[2] => {11842D31-3CA4-4F1B-BBA9-E4A0FE1873AF}
[3] => {4CB91589-CE01-4700-906F-26320EFCF6C4}
usw. ...
)
*/
```
## IPS_IsModuleCompatible
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-ismodulecompatible/
`bool IPS_IsModuleCompatible(string $ModulID, string $ÜbergeordneteID)`
überprüft, ob zwei Modul miteinander Kompatibel sind
**Parameter**
- `$ModulID` (string): [GUIDs](https://www.symcon.de/de/llms/concepts.md)
- `$ÜbergeordneteID` (string): [GUIDs](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (bool): __TRUE__, wenn die Module kompatibel sind, sonst __FALSE__
[GUIDs](https://www.symcon.de/de/llms/concepts.md)
**Beispiel**
```php
if (IPS_IsModuleCompatible("{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}",
"{57040540-4432-4220-8D2D-4676B57E223D}"))
echo "FS20 Modul ist zum FHZ Modul kompatibel!";
```
## IPS_LibraryExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-libraryexists/
`bool IPS_LibraryExists(string $BibliothekID)`
überprüft, ob Bibliothek existiert
**Parameter**
- `$BibliothekID` (string): [GUIDs](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (bool): Falls die BibliothekID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
[GUIDs](https://www.symcon.de/de/llms/concepts.md)
**Beispiel**
```php
if (IPS_LibraryExists("{7DC57F9A-C095-4CDE-A6F0-2CB35A29A8FE}"))
echo "ELV Bibliothek ist vorhanden!";
```
## IPS_ModuleExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/modulverwaltung/ips-moduleexists/
`bool IPS_ModuleExists(string $ModulID)`
überprüft, ob Modul existiert
**Parameter**
- `$ModulID` (string): [GUIDs](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (bool): Falls die ModulID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__
[GUIDs](https://www.symcon.de/de/llms/concepts.md)
**Beispiel**
```php
if (IPS_ModuleExists("{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}"))
echo "FS20 Modul ist vorhanden!";
```
---
# Objektverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/
## IPS_GetChildrenIDs
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getchildrenids/
`array IPS_GetChildrenIDs(int $ObjektID)`
liefert eine Aufstellung aller untergeordneten Objekte
**Parameter**
- `$ObjektID` (int): ID für die die Unterobjekte zurückgegeben werden sollen
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Unterobjekte von Objekt __ObjektID__
ID für die die Unterobjekte zurückgegeben werden sollen
**Beispiel**
```php
print_r(IPS_GetChildrenIDs(32102));
/* liefert z.B.:
Array
(
[0] => 11650
[1] => 25578
[2] => 30202
usw. ...
)
*/
```
## IPS_GetLocation
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getlocation/
`string IPS_GetLocation(int $ObjektID)`
liefert den kompletten Pfad des Objekts
**Parameter**
- `$ObjektID` (int): ID für die der Pfad/Namen erstellt werden soll
**Rückgabewert** (string): Pfad/Name des Objekts im logischen Objektbaum
ID für die der Pfad/Namen erstellt werden soll
**Beispiel**
```php
echo IPS_GetLocation(47359);
//gibt z.B. zurück: "FHT8b\LowBattery"
```
## IPS_GetName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getname/
`string IPS_GetName(int $ObjektID)`
liefert den Namen des Objekts
**Parameter**
- `$ObjektID` (int): ID für die der Namen zurückgegeben werden soll
**Rückgabewert** (string): Name des Objekts im logischen Objektbaum
ID für die der Namen zurückgegeben werden soll
**Beispiel**
```php
echo IPS_GetName(47359);
// Gibt z.B. zurück: "Meine Tischlampe"
// Sonderfall bei unbenannten Ereignissen (ab Version 4.0)
echo IPS_GetName(48864 /*[TestSkript\Unbenanntes Objekt (ID: 48864)]*/);
// Gibt z.B. zurück: "Bei Variablenänderung der Variable "Testordner\IRTrans USB/LAN/WLAN\Fernbedienung"
```
## IPS_GetObject
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getobject/
`array IPS_GetObject(int $ObjektID)`
liefert umfassende Informationen über ein Objekt
**Parameter**
- `$ObjektID` (int): Die zu zeigende ObjektID
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ------------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| __ChildrenIDs__ | array | Untergeordnete ObjektIDs. Siehe: [IPS_GetChildrenIDs](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __HasChildren__ | boolean | TRUE, wenn das Objekt Unterobjekte hat. Siehe: [IPS_HasChildren](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectID__ | integer | ObjektID |
| __ObjectIcon__ | string | Dateiname ohne Erweiterung des Icons. Siehe: [IPS_SetIcon](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectIdent__ | string | Identifikator des Objekts. Siehe [IPS_SetIdent](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectInfo__ | string | Beschreibung, die der Benutzer angeben kann. Siehe: [IPS_SetInfo](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectIsDisabled__ (ab Symcon 4.0) | boolean | TRUE, wenn das Objekt inaktiv gesetzt ist. Siehe [IPS_SetDisabled](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectIsHidden__ | boolean | TRUE, wenn das Objekt in der Visualisierung versteckt sein soll. Siehe [IPS_SetHidden](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectIsHiddenMaximize__ (ab Symcon 9.1) | boolean | TRUE, wenn der Maximieren-Button des Objekts in der Visualisierung versteckt sein soll. Siehe [IPS_SetHiddenMaximize](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectIsHiddenTitle__ (ab Symcon 9.1) | boolean | TRUE, wenn der Titel des Objekts in der Visualisierung versteckt sein soll. Siehe [IPS_SetHiddenTitle](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectIsReadOnly__ | boolean | TRUE, wenn das Objekt schreibgeschützt ist. (Wird zur Zeit nur für Status Variablen benutzt) |
| __ObjectName__ | string | Name des Objekts. Siehe: [IPS_SetName](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectPosition__ | integer | Position, die das Objekt in der Visualisierung haben soll. Dieser Wert muss nicht unbedingt eindeutig sein. Siehe: [IPS_SetPosition](https://www.symcon.de/de/llms/functions/management-objects.md) |
| __ObjectType__ | integer | Objekt-Typ (0: Kategorie, 1: Instanz, 2: Variable, 3: Skript, 4: Ereignis, 5: Media, 6: Link) |
| __ObjectSummary__ | string | Kurzbeschreibung eines Objektes, welches vom Modul zur Laufzeit bei Bedarf generiert wird. |
| __ParentID__ | integer | Übergeordnetes Objekt. 0 = Kein übergeordnetes Objekt. Siehe: [IPS_SetParent](https://www.symcon.de/de/llms/functions/management-objects.md) |
Die zu zeigende ObjektID
**Beispiel**
```php
print_r(IPS_GetObject(19668));
/* liefert z.B.:
Array
(
[ParentID] => 26691
[ObjectID] => 43502
[ObjectType] => 1
[ObjectIdent] =>
[ObjectName] => MX Gerät (ID: 1)
[ObjectInfo] => Dies ist eine Instanz von einem Gerät
[ObjectIcon] => IPS
[ObjectSummary] =>
[ObjectPosition] => 1
[ObjectIsReadOnly] =>
[ObjectIsHidden] =>
[ObjectIsHiddenTitle] =>
[ObjectIsHiddenMaximize] =>
[ObjectIsDisabled] =>
[ObjectIsLocked] =>
[HasChildren] => 1
[ChildrenIDs] => Array
(
[0] => 43430
[1] => 55892
[2] => 36597
[3] => 18993
[4] => 34524
[5] => 12269
[6] => 44450
[7] => 23394
[8] => 11693
[9] => 13654
)
)
*/
```
## IPS_GetObjectIDByIdent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getobjectidbyident/
`int IPS_GetObjectIDByIdent(string $ObjektIdent, int $ÜbergeordneteID)`
_Benötigt Symcon >= 2.5_
liefert die ID eines Objekts anhand des Identifikators
**Parameter**
- `$ObjektIdent` (string): Zu suchender ObjektIdentifikator
- `$ÜbergeordneteID` (int): Objekt, in dessen direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID des gefundenen Objekts, sonst FALSE
Objekt, in dessen direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
//Diese Funktion kann als Ersatz für IPS_StatusVariableExists verwendet werden.
//Beispiel für IPS_StatusVariableExists($id, "StatusVariable");
echo !(@IPS_GetObjectIDByIdent("StatusVariable", $id) === false);
//Ferner kann diese Funktion auch ein Ersatz für IPS_GetStatusVariableID darstellen.
//Beispiel für IPS_GetStatusVariableID($id, "StatusVariable");
echo IPS_GetObjectIDByIdent("StatusVariable", $id);
$id = IPS_GetObjectIDByIdent($VariableIdent, $InstanceID);
$v = IPS_GetVariable($id);
// Array ab 4.0
$sv = Array(
"VariableID" => $id,
"VariableIdent" => $VariableIdent,
"VariableName" => "N/A",
"VariablePosition" => 0,
"VariableProfile" => $v['VariableProfile'],
"VariableType" => $v['VariableType'],
"VariableHasAction" => ($v['VariableAction'] > 0),
"VariableUseAction" => ($v['VariableAction'] > 0)
);
// Array bis 3.4
$sv = Array(
"VariableID" => $id,
"VariableIdent" => $VariableIdent,
"VariableName" => "N/A",
"VariablePosition" => 0,
"VariableProfile" => $v['VariableProfile'],
"VariableType" => $v['VariableValue']['ValueType'],
"VariableHasAction" => ($v['VariableAction'] > 0),
"VariableUseAction" => ($v['VariableAction'] > 0)
);
```
## IPS_GetObjectIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getobjectidbyname/
`int IPS_GetObjectIDByName(string $ObjektName, int $ÜbergeordneteID)`
liefert die ID eines Objekts anhand des Namens
**Parameter**
- `$ObjektName` (string): Zu suchender ObjektName
- `$ÜbergeordneteID` (int): Objekt, in dessen direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID des gefundenen Objekts, sonst FALSE
Objekt, in dessen direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$ObjektID = @IPS_GetObjectIDByName("Regenerfassung", $ParentID);
if ($ObjektID === false)
echo "Objekt nicht gefunden!";
else
echo "Die Objekt-ID lautet: ". $ObjektID;
```
## IPS_GetObjectList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getobjectlist/
`array IPS_GetObjectList()`
liefert eine Aufstellung aller existierenden Objekte
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon registrierten Objekte. Die IDs werden in einem Array aufgelistet.
**Beispiel**
```php
print_r(IPS_GetObjectList());
/* liefert z.B.:
Array
(
[0] => 0
[1] => 10573
[2] => 11363
[3] => 11650
[4] => 14114
usw. ...
)
*/
```
## IPS_GetParent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getparent/
`int IPS_GetParent(int $ObjektID)`
liefert die ParentID des Objekts
**Parameter**
- `$ObjektID` (int): ID für die die ParentID zurückgegeben werden soll
**Rückgabewert** (int): ParentID des Objekts im logischen Objektbaum
ID für die die ParentID zurückgegeben werden soll
**Beispiel**
```php
echo IPS_GetParent(47359);
//gibt z.B. zurück: 0 für die Hauptkategorie
```
## IPS_HasChildren
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-haschildren/
`bool IPS_HasChildren(int $ObjektID)`
prüft, ob Objekt untergeordnete Objekte hat
**Parameter**
- `$ObjektID` (int): ID des zu prüfenden Objekts
**Rückgabewert** (bool): __TRUE__, falls das Objekte Unterobjekte hat, andernfalls __FALSE__
ID des zu prüfenden Objekts
**Beispiel**
```php
if (IPS_HasChildren(0))
echo "Das Root Objekt hat untergeordnete Objekte!";
```
## IPS_IsChild
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-ischild/
`bool IPS_IsChild(int $ObjektID, int $ParentID, bool $Rekursiv)`
prüft, ob Objekt einem anderen Objekt untergeordnet ist
**Parameter**
- `$ObjektID` (int): ID des zu prüfenden Objekts
- `$ParentID` (int): ID des vermeintlichen Elternobjekts
- `$Rekursiv` (bool): False, wenn nur eine Ebene geprüft werden soll, sonst True
**Rückgabewert** (bool): __TRUE__, wenn ObjektID Kind von ParentID ist, sonst __FALSE__
False, wenn nur eine Ebene geprüft werden soll, sonst True
**Beispiel**
```php
if (IPS_IsChild(0, 12345, true))
echo "Das Objekt 12345 ist dem Root Objekt untergeordnet!";
```
## IPS_ObjectExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-objectexists/
`bool IPS_ObjectExists(int $ObjektID)`
prüft, ob ein bestimmtes Objekt existiert
**Parameter**
- `$ObjektID` (int): Die zu prüfende ObjektID
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die zu prüfende ObjektID
**Beispiel**
```php
if (IPS_ObjectExists(34881))
echo "Ein Objekt mit dieser ID existiert!";
```
## IPS_SetDisabled
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-setdisabled/
`bool IPS_SetDisabled(int $ObjektID, bool $Inaktiv)`
_Benötigt Symcon >= 4.0_
Setzt ein Objekt für das WebFront inaktiv
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Inaktiv` (bool): TRUE wenn das Objekt inaktiv gesetzt werden soll; FALSE wenn es aktiv gesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
TRUE wenn das Objekt inaktiv gesetzt werden soll; FALSE wenn es aktiv gesetzt werden soll.
**Beispiel**
```php
// Das Objekt wird inaktiv gesetzt.
IPS_SetDisabled(47381, true);
```
## IPS_SetHidden
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-sethidden/
`bool IPS_SetHidden(int $ObjektID, bool $Versteckt)`
_Benötigt Symcon >= 2.1_
setzt die Sichtbarkeit eines beliebigen Objekts
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Versteckt` (bool): TRUE, wenn unsichtbar
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
TRUE, wenn unsichtbar
**Beispiel**
```php
IPS_SetHidden(47381, true); //Objekt verstecken
```
## IPS_SetHiddenMaximize
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-sethiddenmaximize/
`bool IPS_SetHiddenMaximize(int $ObjektID, bool $Versteckt)`
_Benötigt Symcon >= 9.1_
setzt die Sichtbarkeit des Maximieren-Buttons eines beliebigen Objekts
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Versteckt` (bool): TRUE, wenn Maximieren-Button unsichtbar
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
TRUE, wenn Maximieren-Button unsichtbar
**Beispiel**
```php
IPS_SetHiddenMaximize(47381, true); //Maximieren-Button verstecken
```
## IPS_SetHiddenTitle
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-sethiddentitle/
`bool IPS_SetHiddenTitle(int $ObjektID, bool $Versteckt)`
_Benötigt Symcon >= 9.1_
setzt die Sichtbarkeit des Titels eines beliebigen Objekts
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Versteckt` (bool): TRUE, wenn Titel unsichtbar
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
TRUE, wenn Titel unsichtbar
**Beispiel**
```php
IPS_SetHiddenTitle(47381, true); //Titel verstecken
```
## IPS_SetIcon
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-seticon/
`bool IPS_SetIcon(int $ObjektID, string $Icon)`
_Benötigt Symcon >= 2.1_
ordnet einem beliebigen Objekt ein Icon zu
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Icon` (string): Dateiname des Icons ohne Pfad/Erweiterung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Dateiname des Icons ohne Pfad/Erweiterung
**Beispiel**
```php
IPS_SetIcon(47381, "Tree");
```
## IPS_SetIdent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-setident/
`bool IPS_SetIdent(int $ObjektID, string $Ident)`
_Benötigt Symcon >= 2.5_
ordnet einem beliebigen Objekt einen Identifikator zu
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Ident` (string): Neuer Identifikator für das Objekt
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Identifikator für das Objekt
**Beispiel**
```php
IPS_SetIdent(47381, "TEMPERATURE_3");
```
## IPS_SetInfo
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-setinfo/
`bool IPS_SetInfo(int $ObjektID, string $Info)`
ordnet einem beliebigen Objekt erweiterte Informationen zu
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Info` (string): Neuer Beschreibungstext für das Objekt
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Beschreibungstext für das Objekt
**Beispiel**
```php
IPS_SetInfo(47381, "USB Soundkarte - Port A, Keller - Grünes Kabel");
```
## IPS_SetName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-setname/
`bool IPS_SetName(int $ObjektID, string $Name)`
ordnet einem beliebigen Objekt einen Namen zu
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Name` (string): Neuer Name für das Objekt
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Name für das Objekt
**Beispiel**
```php
// Setzt den angezeigten Namen des Objekts mit der ID 12345 auf "Sicherheitsvorkehrungen"
IPS_SetName(12345, "Sicherheitsvorkehrungen");
```
## IPS_SetParent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-setparent/
`bool IPS_SetParent(int $ObjektID, int $ÜbergeordneteID)`
verschiebt ein Objekt im logischen Strukturbaum
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$ÜbergeordneteID` (int): ID des neuen übergeordneten Objekts im logischen Objektbaum
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des neuen übergeordneten Objekts im logischen Objektbaum
**Beispiel**
```php
IPS_SetParent(47381, 15361);
```
## IPS_SetPosition
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-setposition/
`bool IPS_SetPosition(int $ObjektID, int $Position)`
_Benötigt Symcon >= 2.1_
ordnet einem beliebigen Objekt eine Position zu
**Parameter**
- `$ObjektID` (int): ID des zu verändernden Objekts
- `$Position` (int): Positionswert des Objekts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Positionswert des Objekts
**Beispiel**
```php
IPS_SetPosition(47381, 5);
```
---
# Programminformationen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/
## IPS_FunctionExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-functionexists/
`bool IPS_FunctionExists(string $Funktionsname)`
_Benötigt Symcon >= 2.6_
prüft, ob eine bestimmte Funktion existiert
**Parameter**
- `$Funktionsname` (string): Name, der zu prüfenden Funktion
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name, der zu prüfenden Funktion
**Beispiel**
```php
if (IPS_FunctionExists("GetValue"))
echo "Die Funktion GetValue existiert!";
```
## IPS_GetFunction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getfunction/
`array IPS_GetFunction(string $Funktionsname)`
_Benötigt Symcon >= 2.6_
liefert umfassende Informationen über eine Funktion
**Parameter**
- `$Funktionsname` (string): Name, der zu prüfenden Funktion
**Rückgabewert** (array): Ein Array mit folgenden __key => value__ Paaren
| Index | Typ | Beschreibung |
| ---------------- | ------ | -------------------------------------- |
| __FunctionName__ | string | Funktionsname |
| __Parameters__ | array | siehe Tabelle "Parameterinformationen" |
| __Result__ | array | siehe Tabelle "Rückgabeinformationen" |
_Tabelle: Parameterinformationen_
| Index | Typ | Beschreibung |
| ----------- | ------- | ------------------------------------------------------------------------------------------------------ |
| Description | string | Name des Rückgabewert |
| Enumeration | array | Namentliche Darstellung der möglichen Integerwerte |
| Type_ | integer | Variablentyp des Parameters/Rückgabewerts: 0=Boolean, 1=Integer, 2=Float, 3=String, 4=Variant, 5=Array |
_Tabelle: Rückgabeinformationen_
| Index | Typ | Beschreibung |
| ----------- | ------- | ------------------------------------------------------------------------------------------------------ |
| Description | string | Name des Rückgabewert |
| Enumeration | array | Namentliche Darstellung der möglichen Integerwerte |
| Type_ | integer | Variablentyp des Parameters/Rückgabewerts: 0=Boolean, 1=Integer, 2=Float, 3=String, 4=Variant, 5=Array |
Name, der zu prüfenden Funktion
**Beispiel**
```php
// Information der Funktion IPS_GetFunction und IPS_CreateMedia abfragen
var_dump(IPS_GetFunction("IPS_GetFunction"));
var_dump(IPS_GetFunction("IPS_CreateMedia"));
// Ausgabe "IPS_GetFunction"
/*
array(3) {
["FunctionName"]=>
string(15) "IPS_GetFunction"
["Result"]=>
array(3) {
["Type_"]=>
int(5)
["Description"]=>
string(6) "Result"
["Enumeration"]=>
array(0) {
}
}
["Parameters"]=>
array(1) {
[0]=>
array(3) {
["Type_"]=>
int(3)
["Description"]=>
string(12) "FunctionName"
["Enumeration"]=>
array(0) {
}
}
}
*/
// Ausgabe "IPS_CreateMedia"
/*
array(3) {
["FunctionName"]=>
string(15) "IPS_CreateMedia"
["Result"]=>
array(3) {
["Type_"]=>
int(1)
["Description"]=>
string(6) "Result"
["Enumeration"]=>
array(0) {
}
}
["Parameters"]=>
array(1) {
[0]=>
array(3) {
["Type_"]=>
int(1)
["Description"]=>
string(9) "MediaType"
["Enumeration"]=>
array(6) {
[0]=>
string(6) "mtForm"
[1]=>
string(7) "mtImage"
[2]=>
string(7) "mtSound"
[3]=>
string(8) "mtStream"
[4]=>
string(7) "mtChart"
[5]=>
string(10) "mtDocument"
}
}
}
}
*/
```
## IPS_GetFunctionList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getfunctionlist/
`array IPS_GetFunctionList(int $InstanzID)`
_Benötigt Symcon >= 2.6_
liefert eine Liste mit allen Verfügbaren Funktionsnamen
**Parameter**
- `$InstanzID` (int): InstanzID, für zu suchende Funktion. 0, um alle zu suchen.
**Rückgabewert** (array): Ein Array von Strings aller Funktionsnamen
InstanzID, für zu suchende Funktion. 0, um alle zu suchen.
**Beispiel**
```php
$alleFunktionen = IPS_GetFunctionList(0);
print_r(IPS_GetFunction($alleFunktionen[48])); // nur Funktion 48 ausgeben (IPS_CreateScript)
/* liefert:
Array
(
[FunctionName] => IPS_CreateScript
[Parameters] => Array
(
[0] => Array
(
[Description] => ScriptType
[Type_] => 1
)
)
[Result] => Array
(
[Description] => Result
[Type_] => 1
)
)
*/
//Exportiert alle IP-Symcon Funktionen mit einer Parameterliste
$instanceid = 0; //0 = Alle Funktionen, sonst Filter auf InstanzID
$fs = IPS_GetFunctionList($instanceid);
asort($fs);
$typestr = Array("boolean", "integer", "float", "string", "variant", "array");
foreach($fs as $f) {
$f = IPS_GetFunction($f);
echo sprintf("[%7s]", $typestr[$f['Result']['Type_']]) . " - ".$f['FunctionName']."(";
$a = Array();
foreach($f['Parameters'] as $p) {
if(isset($p['Enumeration']) && sizeof($p['Enumeration']) > 0) {
$b=Array();
foreach($p['Enumeration'] as $k => $v) {
$b[] = $k."=".$v;
}
$type = "integer/enum[".implode(", ", $b)."]";
} else {
$type = $typestr[$p['Type_']];
}
$a[]=$type." $".$p['Description'];
}
echo implode(", ", $a).");\n";
}
```
## IPS_GetFunctionListByModuleID
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getfunctionlistbymoduleid/
`array IPS_GetFunctionListByModuleID(string $ModuleID)`
liefert eine Liste mit allen verfügbaren Funktionen eines Moduls
**Parameter**
- `$ModuleID` (string): GUID des Moduls
**Rückgabewert** (array): Ein Array von Strings aller Funktionen
GUID des Moduls
**Beispiel**
```php
// Alle Funktionen von "DPT 200.x - Binary Value & Status" von KNX
print_r(IPS_GetFunctionListByModuleID("{04ED3286-C982-436F-A01E-8A03C2E976A8}"));
/* liefert:
Array
(
[0] => IPS_RequestAction
[1] => IPS_StopSearch
[2] => IPS_StartSearch
[3] => IPS_IsSearching
[4] => KNX_WriteDPT200
[5] => IPS_GetConfigurationForm
[6] => IPS_SupportsSearching
[7] => KNX_RequestStatus
[8] => IPS_GetConfiguration
[9] => IPS_GetProperty
[10] => IPS_SetProperty
[11] => IPS_SetConfiguration
[12] => IPS_GetConfigurationForParent
[13] => IPS_HasChanges
[14] => IPS_ResetChanges
[15] => IPS_ApplyChanges
[16] => IPS_GetReferenceList
[17] => IPS_Translate
[18] => KNX_RenameVariables
)
*/
```
## IPS_GetKernelArchitecture
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkernelarchitecture/
`string IPS_GetKernelArchitecture()`
_Benötigt Symcon >= 6.0_
liefert die Architektur für die IP-Symcon erstellt wurde
**Rückgabewert** (string): Die Architektur für die IP-Symcon erstellt wurde
Die Funktion liefert einen String mit der Architektur für die IP-Symcon erstellt wurde
**Beispiel**
```php
echo IPS_GetKernelArchitecture();
// Beispielausgabe:
/*
// MacOS, Windows 32Bit
i386
// Linux, Windows 64Bit
amd64
// Linux, Raspberry Pi
armhf
// Linux, Raspberry Pi
arm64
*/
```
## IPS_GetKernelDate
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkerneldate/
`int IPS_GetKernelDate()`
_Benötigt Symcon >= 4.4_
liefert das Datum der Erstellung des Kernels
**Rückgabewert** (int): Das Erstelldatum in UnixTimeStamp
Die Funktion liefert einen Integerwert, welcher als UnixTimeStamp das Erstelldatum des Kernels ausgibt.
**Beispiel**
```php
echo IPS_GetKernelDate();
// Beispielausgabe
// 1511046903
```
## IPS_GetKernelDir
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkerneldir/
`string IPS_GetKernelDir()`
liefert den Pfad zum IP-Symcon Programmverzeichnis
**Rückgabewert** (string): Der vollständige Pfad zum IP-Symcon Programmverzeichnis
Die Funktion liefert einen String mit dem vollständigen Pfad zum IP-Symcon Programmverzeichnis (Settings, Skripte, Medien...). Je nach Betriebssystem enthält der Pfad ein abschließendes Slash (“/”) oder Backslash (“\”).
**Beispiel**
```php
echo IPS_GetKernelDir();
// Beispielausgabe:
/*
// Windows
// ab Version 5.3
C:\ProgramData\Symcon\
// bis Version 5.2
C:\Programme\IP-Symcon\
// Linux, RaspberryPi
/var/lib/symcon/
// MacOS
/Library/Application Support/Symcon/
*/
```
## IPS_GetKernelDirEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkerneldirex/
`string IPS_GetKernelDirEx()`
_Benötigt Symcon >= 4.0_
liefert den Pfad zum IP-Symcon Installationsverzeichnis
**Rückgabewert** (string): Der vollständige Pfad zum IP-Symcon Installationsverzeichnis
Die Funktion liefert einen String mit dem vollständigen Pfad zu den IP-Symcon Installationsverzeichnis. Je nach Betriebssystem enthält der Pfad ein abschließendes Slash (“/”) oder Backslash (“\”).
**Beispiel**
```php
echo IPS_GetKernelDirEx();
// Beispielausgabe:
/*
// Windows
C:\Programme\IP-Symcon\
// Linux, RaspberryPi
/usr/share/symcon/
// MacOS
/Applications/Symcon.app/Contents/Service/
*/
```
## IPS_GetKernelDirSpace
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkerneldirspace/
`array IPS_GetKernelDirSpace()`
_Benötigt Symcon >= 6.2_
Liefert freien/verfügbaren/gesamt Speicherplatz auf dem Laufwerk, auf dem alle Daten von IP-Symcon gespeichert werden
**Rückgabewert** (array): Liefert gesamten/freien/verfügbaren Speicherplatz
Die Funktion liefert ein Array mit den Keys Total/Free/Available. Diese geben den gesamten/freien/verfügbaren Speicherplatz von dem Laufwerk an, auf dem alle Daten von IP-Symcon gespeichert werden.
**Beispiel**
```php
print_r(IPS_GetKernelDirSpace());
// Beispielausgabe:
/*
Array
(
[Total] => 511582613504
[Free] => 96859312128
[Available] => 96859312128
)
*/
```
## IPS_GetKernelPlatform
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkernelplatform/
`string IPS_GetKernelPlatform()`
_Benötigt Symcon >= 4.4_
liefert das Betriebssystem auf dem IP-Symcon läuft
**Rückgabewert** (string): Das Betriebssystem auf dem IP-Symcon läuft
Die Funktion liefert einen String mit dem Betriebssystem auf dem der IP-Symcon Server läuft
**Beispiel**
```php
echo IPS_GetKernelPlatform();
// Beispielausgabe:
/*
// SymBox
SymBox
// Windows
Windows
// Linux
Ubuntu
Ubuntu (Docker)
// RaspberryPi
Raspberry Pi
Raspberry Pi (Docker)
// MacOS
Mac
*/
```
## IPS_GetKernelRevision
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkernelrevision/
`string IPS_GetKernelRevision()`
_Benötigt Symcon >= 4.4_
liefert eine eindeutige Revisionskennung
**Rückgabewert** (string): Eindeutige Revisionskennung
Die Funktion liefert einen String mit einer eindeutigen Revisionskennung.
**Beispiel**
```php
echo IPS_GetKernelRevision();
// Beispielausgabe:
// 8edcb65b27506d687dd6a4d1cee470f86e2d89e1
```
## IPS_GetKernelRunlevel
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkernelrunlevel/
`int IPS_GetKernelRunlevel()`
_Benötigt Symcon >= 4.0_
liefert den Runlevel des Kernels
**Rückgabewert** (int): Runlevel des Kernels.
Die Funktion liefert den Runlevel des Systems zurück.
| Runlevel | Rückgabewert | Beschreibung |
| ----------- | ------------ | ---------------------------------------------------------------------------- |
| KR_CREATE | 10101 | Kernel wird erstellt |
| KR_INIT | 10102 | Kernel wird initialisiert. z.B. werden Module geladen und Instanzen erstellt |
| KR_READY | 10103 | Kernel ist bereit und läuft |
| KR_UNINIT | 10104 | Kernel wird heruntergefahren und alles sauber beendet |
| KR_SHUTDOWN | 10105 | Kernel wurde vollständig beendet |
**Beispiel**
```php
echo IPS_GetKernelRunlevel(); // liefert z.B. für KR_READY: 10103
```
## IPS_GetKernelStartTime
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkernelstarttime/
`int IPS_GetKernelStartTime()`
_Benötigt Symcon >= 4.0_
liefert den Zeitpunkt, an dem IP-Symcon gestartet wurde
**Rückgabewert** (int): Zeitpunkt, an dem IP-Symcon gestartet wurde
Die Funktion liefert Datum und Uhrzeit des Startzeitpunkts von IP-Symcon als Unix Timestamp.
**Beispiel**
```php
// liefert z.B. 1204675012
echo IPS_GetKernelStartTime();
// liefert z.B. "2008.03.04 23:56:52"
echo date("Y.m.d H:i:s", IPS_GetKernelStartTime());
```
## IPS_GetKernelVersion
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getkernelversion/
`string IPS_GetKernelVersion()`
liefert die Versionsnummer des verwendeten Kernels
**Rückgabewert** (string): Programmversion. Major/Minorversion durch Punkt (".") getrennt.
Die Funktion liefert einen String mit der Nummer der IP-Symcon Programmversion. Durch Abfrage der Programmversion kann entschieden werden, ob ein Skript unter der gemeldeten Version lauffähig ist.
**Beispiel**
```php
echo IPS_GetKernelVersion(); // liefert z.B.: "2.00"
```
## IPS_GetLogDir
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getlogdir/
`string IPS_GetLogDir()`
_Benötigt Symcon >= 4.0_
liefert den Pfad zum IP-Symcon Logverzeichnis
**Rückgabewert** (string): Der vollständige Pfad zum IP-Symcon Logverzeichnis
Die Funktion liefert einen String mit dem vollständigen Pfad zum IP-Symcon Logverzeichnis. Je nach Betriebssystem enthält der Pfad ein abschließendes Slash (“/”) oder Backslash (“\”).
**Beispiel**
```php
echo IPS_GetLogDir();
// Beispielausgabe:
/*
//Windows
"C:\Programme\IP-Symcon\logs\"
// Linux, RaspberryPi
"/var/log/symcon/"
// MacOS
"/Library/Logs/Symcon"
*/
```
## IPS_GetSystemLanguage
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getsystemlanguage/
`string IPS_GetSystemLanguage()`
_Benötigt Symcon >= 6.1_
liefert die Sytemsprache des Betriebssystems auf dem IP-Symcon läuft
**Rückgabewert** (string): Die Systemsprache des Betriebssystems auf dem IP-Symcon läuft
Die Funktion liefert einen String mit der Systemsprache des Betriebssystems auf dem der IP-Symcon Server läuft zurück.
**Beispiel**
```php
echo IPS_GetSystemLanguage();
// Beispielausgabe:
/*
// Deutsch
de_DE
// Englisch
en_US
*/
```
## IPS_GetUpdateChannel
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-getupdatechannel/
`string IPS_GetUpdateChannel()`
_Benötigt Symcon >= 6.1_
liefert den aktuellen konfigurierten Update-Kanal zurück
**Rückgabewert** (string): aktuell konfigurierter Update-Kanal
Die Funktion liefert einen String mit dem aktuell konfigurierten Update-Kanal zurück.
**Beispiel**
```php
echo IPS_GetUpdateChannel(); //liefert z.B.: stable, beta oder testing
```
## IPS_LogMessage
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/programminformationen/ips-logmessage/
`bool IPS_LogMessage(string $Sender, string $Meldung)`
schreibt eine benutzerdefinierte Meldung in die Log-Datei
**Parameter**
- `$Sender` (string): Der angezeigte Absender der Meldung
- `$Meldung` (string): Die anzuzeigende Meldung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die anzuzeigende Meldung
**Beispiel**
```php
$SkriptStart = microtime(true);
//hier viel berechnen...
$SkriptLaufzeit = microtime(true) - $SkriptStart;
IPS_LogMessage($_IPS['SELF'], "Laufzeit beträgt ". $SkriptLaufzeit. "sek");
```
---
# Skriptverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/
## IPS_CreateScript
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-createscript/
`int IPS_CreateScript(int $SkriptTyp)`
legt ein neues Skript an
**Parameter**
- `$SkriptTyp` (int)
| Wert | Beschreibung |
| ---- | ----------------------------- |
| 0 | Erzeugt ein __PHP Skript__ |
| 1 | Erzeugt einen __Ablaufplan__ |
| 2 | Erzeugt einen __IPSWorkflow__ |
**Rückgabewert** (int): ID des neu erstellten Skripts
| Wert | Beschreibung |
| ---- | ----------------------------- |
| 0 | Erzeugt ein __PHP Skript__ |
| 1 | Erzeugt einen __Ablaufplan__ |
| 2 | Erzeugt einen __IPSWorkflow__ |
**Beispiel**
```php
$ScriptID = IPS_CreateScript(0);
echo"Die Skript-ID lautet: ". $ScriptID;
```
## IPS_DeleteScript
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-deletescript/
`bool IPS_DeleteScript(int $SkriptID, bool $DateiLöschen)`
entfernt eine bestehendes Skript aus der Skriptliste
**Parameter**
- `$SkriptID` (int): ID des zu löschenden Skripts
- `$DateiLöschen` (bool): __TRUE__, wenn Datei endgültig gelöscht werden soll; __FALSE__, wenn die Datei in den ‘deleted’ Ordner verschoben werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__, wenn Datei endgültig gelöscht werden soll; __FALSE__, wenn die Datei in den ‘deleted’ Ordner verschoben werden soll
**Beispiel**
```php
// Skript mitsamt Datei endgültig löschen
IPS_DeleteScript($ScriptID, true);
```
## IPS_GetScript
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscript/
`array IPS_GetScript(int $SkriptID)`
liefert umfassende Informationen über ein Skript
**Parameter**
- `$SkriptID` (int): Die zu zeigende SkriptID
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur verfügung:
| Index | Typ | Beschreibung |
| ---------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| __IsBroken__ (bis 3.4) | boolean | TRUE, wenn beim letzten Skriptaufruf Fehler aufgetreten sind, andernfalls FALSE (ab 4.0 ersetzt durch ScriptIsBroken) |
| __LastExecute__ (bis 3.4) | integer | Unix Timestamp des letzten Aufrufs (ab 4.0 ersetzt durch ScriptExecuted) |
| __ScriptCRC__ (ab 5.1) | string | CRC32 der Datei |
| __ScriptIsBroken__ (ab 4.0) | boolean | TRUE, wenn beim letzten Skriptaufruf Fehler aufgetreten sind, andernfalls FALSE |
| __ScriptExecuted__ (ab 4.0) | integer | Unix Timestamp des letzten Aufrufs |
| __ScriptFile__ | string | Dateiname des Skripts |
| __ScriptID__ | integer | SkriptID |
| __ScriptSize__ (ab 5.1) | integer | Größe in Byte |
| __ScriptType__ | integer | Skript-Typ (0: PHP Skript, 1: Ablaufplan, 2: IPSWorkflow) |
| __ScriptUpdated__ (ab 5.1) | integer | Unix Timestamp der letzten Aktualisierung |
Die zu zeigende SkriptID
**Beispiel**
```php
// Ab Version 5.1
print_r(IPS_GetScript(46413));
/* Beispielausgabe:
Array
(
[ScriptID] => 46413
[ScriptType] => 0
[ScriptFile] => 46413.ips.php
[ScriptUpdated] => 1542622765
[ScriptExecuted] => 1542295981
[ScriptCRC] => 8132DEB6
[ScriptSize] => 42
[ScriptIsBroken] =>
)
*/
// Ab Version 4.0
print_r(IPS_GetScript(46413));
/* Beispielausgabe:
Array
(
[ScriptIsBroken] =>
[ScriptExecuted] => 1204933792
[ScriptFile] => 46413.ips.php
[ScriptID] => 46413
[ScriptType] => 0
)
*/
print_r(IPS_GetScriptCompatibility(46413));
/* Beispielausgabe:
Array
(
[IsBroken] =>
[LastExecute] => 1204933792
[ScriptFile] => 46413.ips.php
[ScriptID] => 46413
[ScriptType] => 0
)
*/
// Bis Version 3.4
print_r(IPS_GetScript(46413));
/* Beispielausgabe:
Array
(
[IsBroken] =>
[LastExecute] => 1204933792
[ScriptFile] => 46413.ips.php
[ScriptID] => 46413
[ScriptType] => 0
)
*/
```
## IPS_GetScriptContent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscriptcontent/
`string IPS_GetScriptContent(int $SkriptID)`
_Benötigt Symcon >= 3.1_
liefert den Inhalt eines Skripts
**Parameter**
- `$SkriptID` (int): ID des Skripts, dessen Inhalt geliefert werden soll
**Rückgabewert** (string): Der Inhalt des Skripts
ID des Skripts, dessen Inhalt geliefert werden soll
**Beispiel**
```php
$Inhalt = IPS_GetScriptContent($ScriptID);
```
## IPS_GetScriptEventList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscripteventlist/
`array IPS_GetScriptEventList(int $SkriptID)`
liefert alle Ereignisse die einem Skript zugeordnet sind
**Parameter**
- `$SkriptID` (int): SkriptID, zu der verknüpfte Ereignisse gesucht werden sollen
**Rückgabewert** (array): Ein Array von Integer-Werten aller EreignisIDs, die mit dem Skript __SkriptID__ verknüpft sind
SkriptID, zu der verknüpfte Ereignisse gesucht werden sollen
**Beispiel**
```php
$events = IPS_GetScriptEventList($_IPS['SELF']);
print_r($events); // ermittelt alle Ereignisse des aktuellen Skripts
```
## IPS_GetScriptFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscriptfile/
`string IPS_GetScriptFile(int $SkriptID)`
ermittelt den Dateinamen zur SkriptID
**Parameter**
- `$SkriptID` (int): ID des Skripts, dem der Dateiname zugeordnet werden soll
**Rückgabewert** (string): Der Dateiname des Skripts
ID des Skripts, dem der Dateiname zugeordnet werden soll
**Beispiel**
```php
include(IPS_GetScriptFile($ScriptID));
```
## IPS_GetScriptIDByFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscriptidbyfile/
`int IPS_GetScriptIDByFile(string $Dateipfad)`
liefert die ID eines Skripts andhand der Datei
**Parameter**
- `$Dateipfad` (string): Relativer Dateipfad vom script-Order gesehen
**Rückgabewert** (int): ID des gefundenen Skripts, sonst FALSE
Relativer Dateipfad vom script-Order gesehen
**Beispiel**
```php
$ScriptID = @IPS_GetScriptIDByFile("12345.ips.php");
if ($ScriptID === false)
echo "Skriptdatei nicht gefunden!";
else
echo "Die Skript-ID lautet: ". $ScriptID;
```
## IPS_GetScriptIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscriptidbyname/
`int IPS_GetScriptIDByName(string $SkriptName, int $ÜbergeordneteID)`
liefert die ID eines Skripts andhand des Namens
**Parameter**
- `$SkriptName` (string): zu suchender SkriptName
- `$ÜbergeordneteID` (int): Objekt in deren direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID des gefundenen Skripts, sonst FALSE
Objekt in deren direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$SkriptID = @IPS_GetScriptIDByName("Regenerfassung", $ÜbergeordneteID);
if ($SkriptID === false)
echo "Skript nicht gefunden!";
else
echo "Die Skript-ID lautet: ". $SkriptID;
```
## IPS_GetScriptList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscriptlist/
`array IPS_GetScriptList()`
liefert eine Aufstellung aller existierenden Skripte
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Skripte in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon registrierten Skripte. Die IDs werden in einem Array aufgelistet. Falls kein Skript existiert, ist das Array leer.
**Beispiel**
```php
$alleSkripte = IPS_GetScriptList();
print_r($alleSkripte);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
*/
```
## IPS_GetScriptTimer
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-getscripttimer/
`int IPS_GetScriptTimer(int $SkriptID)`
ermittelt den Startwert des ScriptTimers
**Parameter**
- `$SkriptID` (int): ID des Skripts, dessen Timer ausgelesen werden soll
**Rückgabewert** (int): Zeit in Sekunden, die der Timer das Skript zyklisch aufruft. (Es ist nicht die Restzeit.)
ID des Skripts, dessen Timer ausgelesen werden soll
**Beispiel**
```php
$TimerWert = IPS_GetScriptTimer($ScriptID); // ermittelt den Wert des ScriptTimers
```
## IPS_ScriptExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-scriptexists/
`bool IPS_ScriptExists(int $SkriptID)`
prüft, ob ein bestimmtes Skript existiert
**Parameter**
- `$SkriptID` (int): ID der zu prüfenden Skripte
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu prüfenden Skripte
**Beispiel**
```php
if (IPS_ScriptExists(34881))
echo "Ein Skript mit dieser ID existiert!";
```
## IPS_SetScriptContent
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-setscriptcontent/
`bool IPS_SetScriptContent(int $SkriptID, string $Inhalt)`
_Benötigt Symcon >= 3.1_
setzt den Inhalt eines Skripts
**Parameter**
- `$SkriptID` (int): ID des Skripts, dem der Inhalt zugeordnet werden soll
- `$Inhalt` (string): Inhalt inklusive PHP Tags ( und ?>)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Inhalt inklusive PHP Tags ( und ?>)
**Beispiel**
```php
$ScriptID = IPS_CreateScript(0);
IPS_SetName($ScriptID, "Mein Skript");
IPS_SetScriptContent($ScriptID, " echo 'Test!'; ?>");
```
## IPS_SetScriptFile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-setscriptfile/
`bool IPS_SetScriptFile(int $SkriptID, string $Dateiname)`
ordnet einem Skript einen Dateinamen zu
**Parameter**
- `$SkriptID` (int): ID des Skripts, dem der Dateiname zugeordnet werden soll
- `$Dateiname` (string): Dateiname des PHP Skripts (relativ zum “/scripts” Ordner)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Dateiname des PHP Skripts (relativ zum “/scripts” Ordner)
**Beispiel**
```php
$ScriptName = "Example.ips.php"; //Skriptdatei
$ScriptID = IPS_CreateScript(0);
IPS_SetName($ScriptID, "Example");
$Script = IPS_GetScript($ScriptID);
//Datei umbenennen in $ScriptName
rename(IPS_GetKernelDir().'/scripts/'.$Script['ScriptFile'], IPS_GetKernelDir().'/scripts/'.$ScriptName);
//Dem Skript den neuen Dateinamen ("Example.ips.php") zuweisen
IPS_SetScriptFile($ScriptID, $ScriptName);
```
## IPS_SetScriptTimer
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/skriptverwaltung/ips-setscripttimer/
`bool IPS_SetScriptTimer(int $SkriptID, int $TimerWert)`
setzt den Startwert des ScriptTimers
**Parameter**
- `$SkriptID` (int): ID des Skripts, dessen Timer eingestellt werden solll
- `$TimerWert` (int): Zeit in Sekunden, in denen das Skript zyklisch aufgerufen werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit in Sekunden, in denen das Skript zyklisch aufgerufen werden soll
**Beispiel**
```php
//veranlasst, dass das Skript alle 10 Sekunden ausgeführt wird
IPS_SetScriptTimer($ScriptID, 10);
```
---
# Variablenverwaltung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/
## IPS_CreateVariable
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-createvariable/
`int IPS_CreateVariable(int $VariablenTyp)`
legt eine Variable an
**Parameter**
- `$VariablenTyp` (int)
| Wert | Beschreibung |
| ---- | ----------------------------------------- |
| 0 | Legt eine Variable vom Typ __Boolean__ an |
| 1 | Legt eine Variable vom Typ __Integer__ an |
| 2 | Legt eine Variable vom Typ __Float__ an |
| 3 | Legt eine Variable vom Typ __String__ an |
**Rückgabewert** (int): ID der neu erstellten Variable
| Wert | Beschreibung |
| ---- | ----------------------------------------- |
| 0 | Legt eine Variable vom Typ __Boolean__ an |
| 1 | Legt eine Variable vom Typ __Integer__ an |
| 2 | Legt eine Variable vom Typ __Float__ an |
| 3 | Legt eine Variable vom Typ __String__ an |
**Beispiel**
```php
// Anlegen einer Float-Variablen mit dem Namen "Raumtemperatur Wohnzimmer"
$VarID_Raumtemperatur = IPS_CreateVariable(2);
IPS_SetName($VarID_Raumtemperatur, "Raumtemperatur Wohnzimmer"); // Variable benennen
IPS_SetParent($VarID_Raumtemperatur, 12345); // Variable einsortieren unter dem Objekt mit der ID "12345"
```
## IPS_DeleteVariable
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-deletevariable/
`bool IPS_DeleteVariable(int $VariablenID)`
löscht eine Variable
**Parameter**
- `$VariablenID` (int): ID der zu löschenden Variable
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu löschenden Variable
**Beispiel**
```php
// Löschen der Variablen 47788
IPS_DeleteVariable(47788);
```
## IPS_GetVariable
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-getvariable/
`array IPS_GetVariable(int $VariablenID)`
liefert umfassende Informationen zu einer bestimmten Variablen
**Parameter**
- `$VariablenID` (int): Die zu zeigende VariablenID
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| __VariableAction__ | integer | ID der Instanz, die bei einer gewünschten Änderungen der Variable den Änderungswunsch entgegen nimmt. 0 bei keiner oder einer deaktivierten Verknüpfung. |
| __VariableChanged__ | integer | Unix-Timestamp, wenn die Variable zuletzt verändert wurde |
| __VariableCustomAction__ | integer | ID des Skriptes, dass bei einer gewünschten Änderung der Variable über die Visualisierung gestartet werden soll. Sofern aktuell eine vorhandene Standardaktion deaktiviert wird, ist die nichtvorhandene SkriptID Eins (1) angegeben. (Ab Version 2.5 #2300) |
| __VariableCustomPresentation__ (ab 8.0) | array | Vom Benutzer gegebene Darstellung. Leeres Array, falls keine Darstellung angegeben. |
| __VariableCustomProfile__ | string | Name vom Benutzer gegebenen Profil. Leer, falls kein Profil angeben. |
| __VariableID__ | integer | VariablenID |
| __VariableIsLocked__ | boolean | Gibt an, ob diese Variable oberhalb des Variablenlimits ist und deshalb nicht beschrieben werden kann (Verfügbar ab Version 2.3). |
| __VariableProfile__ | string | Name vom System gegebenen Profil. Leer, falls kein Profil angegeben. |
| __VariablePresentation__ (ab 8.0) | array | Vom System gegebene Darstellung. Leeres Array, falls keine Darstellung angegeben. |
| __VariableType__ (ab 4.0) | integer | Enthält den Variablentyp (0: Boolean, 1: Integer, 2: Float, 3: String) |
| __VariableUpdated__ | integer | Unix-Timestamp, wenn die Variable zuletzt aktualisiert wurde |
| __VariableValue__ (bis 3.4) | array | Siehe Tabelle Variablenwert (durch VariableType und [GetValue](https://www.symcon.de/de/llms/functions/access-variables.md) ersetzt) |
_Tabelle: VariablenWert (bis 3.4)_
| Index | Typ | Beschreibung |
| ---------------- | -------- | ----------------------------------------------------------- |
| __ValueType__ | integer | Variablentyp (0: Boolean, 1: Integer, 2: Float, 3: String) |
| __ValueBoolean__ | boolean | Wert der Variable abhängig vom __ValueType__ |
| __ValueInteger__ | integer | Wert der Variable abhängig vom __ValueType__ |
| __ValueFloat__ | float | Wert der Variable abhängig vom __ValueType__ |
| __ValueString__ | string | Wert der Variable abhängig vom __ValueType__ |
Die zu zeigende VariablenID
**Beispiel**
```php
// Ab Version 4.0
print_r(IPS_GetVariable(40770));
/* Beispielausgabe:
Array
(
[VariableChanged] => 1246039629
[VariableCustomAction] => 0
[VariableCustomProfile] => BoolProfile
[VariableID] => 40770
[VariableIsLocked] =>
[VariableProfile] => ~Switch
[VariableType] => 0
[VariableUpdated] => 1246039629
)
*/
print_r(IPS_GetVariableCompatibility(40770)); // Ab Version 4.0
/* Beispielausgabe:
Array
(
[VariableChanged] => 1246039629
[VariableCustomAction] => 0
[VariableCustomProfile] => BoolProfile
[VariableID] => 40770
[VariableIsLocked] =>
[VariableProfile] => ~Switch
[VariableUpdated] => 1246039629
[VariableValue] => Array
(
[ValueArray] => Array
(
)
[ValueBoolean] => 1
[ValueFloat] => 0
[ValueIndex] => Array
(
[IndexInt] => 0
[IndexStr] =>
[IndexType] => 0
)
[ValueInteger] => 0
[ValueString] =>
[ValueType] => 0
)
)
*/
// Bis Version 3.4
print_r(IPS_GetVariable(40770));
/* Beispielausgabe:
Array
(
[VariableChanged] => 1246039629
[VariableCustomAction] => 0
[VariableCustomProfile] => BoolProfile
[VariableID] => 40770
[VariableIsLocked] =>
[VariableProfile] => ~Switch
[VariableUpdated] => 1246039629
[VariableValue] => Array
(
[ValueArray] => Array
(
)
[ValueBoolean] => 1
[ValueFloat] => 0
[ValueIndex] => Array
(
[IndexInt] => 0
[IndexStr] =>
[IndexType] => 0
)
[ValueInteger] => 0
[ValueString] =>
[ValueType] => 0
)
)
*/
```
## IPS_GetVariableEventList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-getvariableeventlist/
`array IPS_GetVariableEventList(int $VariablenID)`
liefert alle Ereignisse die einer Variable zugeordnet sind
**Parameter**
- `$VariablenID` (int): VariablenID, zu der verknüpfte Ereignisse gesucht werden sollen
**Rückgabewert** (array): Ein Array von Integer-Werten aller EreignisIDs, die mit der Variable __VariablenID__ verknüpft sind
VariablenID, zu der verknüpfte Ereignisse gesucht werden sollen
**Beispiel**
```php
$events = IPS_GetVariableEventList(12345);
print_r($events); // ermittelt alle Ereignisse des aktuellen Skripts
```
## IPS_GetVariableIDByName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-getvariableidbyname/
`int IPS_GetVariableIDByName(string $VariablenName, int $ÜbergeordneteID)`
liefert die ID einer Variablen anhand des Namens
**Parameter**
- `$VariablenName` (string): Zu suchender VariablenName
- `$ÜbergeordneteID` (int): Objekt, in deren direkten Unterobjekten gesucht werden soll
**Rückgabewert** (int): ID der gefundenen Variable, sonst FALSE
Objekt, in deren direkten Unterobjekten gesucht werden soll
**Beispiel**
```php
$VariablenID = @IPS_GetVariableIDByName("Regenmenge", $ÜbergeordneteID);
if ($VariablenID === false)
echo "Variable nicht gefunden!";
else
echo "Die Variablen-ID lautet: ". $VariablenID;
```
## IPS_GetVariableList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-getvariablelist/
`array IPS_GetVariableList()`
liefert eine Liste aller existierenden Variablen
**Rückgabewert** (array): Ein Array von Integer-Werten aller IDs der Variablen in IP-Symcon
Die Funktion ermittelt die IDs aller in IP-Symcon registrierten IPS-Variablen. Die IDs werden in einem Array aufgelistet. Falls keine Variable existiert, ist das Array leer.
**Beispiel**
```php
$alleVariablen = IPS_GetVariableList();
print_r($alleVariablen);
/* liefert z.B.:
Array
(
[0] => 37659
[1] => 18326
usw. ...
*/
```
## IPS_GetVariablePresentation
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-getvariablepresentation/
`array IPS_GetVariablePresentation(int $VariablenID)`
_Benötigt Symcon >= 8.1_
Gibt alle Parameter der aktuell genutzten Darstellung zurück
**Parameter**
- `$VariablenID` (int): VariablenID der Variable deren Darstellung ausgegeben werden soll
**Rückgabewert** (array): Ein Array mit allen Parametern der aktuellen Variablendarstellung
VariablenID der Variable deren Darstellung ausgegeben werden soll
**Beispiel**
```text
print_r(IPS_GetVariablePresentation(12345));
/* Beispielausgabe
Array
(
[DIGITS] => 0
[CUSTOM_GRADIENT] => []
[ICON] => temperature-half
[DECIMAL_SEPARATOR] => Client
[GRADIENT_TYPE] => 1
[MAX] => 25
[PRESENTATION] => {6B9CAEEC-5958-C223-30F7-BD36569FC57A}
[INTERVALS] => []
[INTERVALS_ACTIVE] =>
[MIN] => 15
[PERCENTAGE] =>
[PREFIX] =>
[STEP_SIZE] => 1
[SUFFIX] => °C
[THOUSANDS_SEPARATOR] =>
[USAGE_TYPE] => 0
)
*/
```
## IPS_SetVariableCustomAction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-setvariablecustomaction/
`bool IPS_SetVariableCustomAction(int $VariablenID, int $SkriptID)`
ordnet der Variable ein benutzerdefiniertes Aktionsskript zu
**Parameter**
- `$VariablenID` (int): ID der Variable, der die Aktion zugeordnet werden soll
- `$SkriptID` (int): ID eines Skriptes, das als Aktions aufgeführt werden soll. Sofern eine vorhandene Standardaktion deaktiviert werden soll, kann die nichtvorhandene SkriptID Eins (1) angegeben werden, wodurch die Standardaktion ausgeschaltet wird. Wenn eine gültige SkriptID angegebenen wird, so hat diese Vorrang vor der Standardaktion. Soll die Standardaktion, sofern verfügbar, aktiviert werden, so muss die SkriptID Null (0) angegeben werden.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID eines Skriptes, das als Aktions aufgeführt werden soll. Sofern eine vorhandene Standardaktion deaktiviert werden soll, kann die nichtvorhandene SkriptID Eins (1) angegeben werden, wodurch die Standardaktion ausgeschaltet wird. Wenn eine gültige SkriptID angegebenen wird, so hat diese Vorrang vor der Standardaktion. Soll die Standardaktion, sofern verfügbar, aktiviert werden, so muss die SkriptID Null (0) angegeben werden.
**Beispiel**
```php
IPS_SetVariableCustomAction(12345, 44431);
```
## IPS_SetVariableCustomPresentation
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-setvariablecustompresentation/
`bool IPS_SetVariableCustomPresentation(int $VariablenID, array $Presentation)`
_Benötigt Symcon >= 8.0_
ordnet der Variable eine benutzerdefinierte Darstellung zu
**Parameter**
- `$VariablenID` (int): ID der Variable, der die Darstellung zugeordnet werden soll
- `$Presentation` (array): Die Konfiguration der Darstellung. Details sind unter dem Abschnitt [Darstellungen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) zu finden.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die Konfiguration der Darstellung. Details sind unter dem Abschnitt [Darstellungen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) zu finden.
**Beispiel**
```text
// Setzt eine Variable auf die Darstellung Schieberegler mit einem Minimum, Maximum und Suffix
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_SLIDER,
'MIN' => 0,
'MAX' => 100,
'SUFFIX' => ' %'
]);
// Setzt eine Variable auf die Darstellung Aufzählung mit Icons und Farben.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_ENUMERATION,
'DISPLAY' => 1 /* Icon */,
'OPTIONS' => json_encode([
['Value' => 1, 'Caption' => 'Automatisch', 'IconActive' => true, 'IconValue' => 'circle-a'],
['Value' => 2, 'Caption' => 'Eco', 'IconActive' => true, 'IconValue' => 'circle-e', 'Color' => 40448],
['Value' => 3, 'Caption' => 'Manuell', 'IconActive' => true, 'IconValue' => 'circle-m'],
])
]);
```
## IPS_SetVariableCustomProfile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-setvariablecustomprofile/
`bool IPS_SetVariableCustomProfile(int $VariablenID, string $ProfilName)`
_Benötigt Symcon >= 3.0_
ordnet der Variable ein benutzerdefiniertes Profil zu
**Parameter**
- `$VariablenID` (int): ID der Variable, der das Profil zugeordnet werden soll
- `$ProfilName` (string): Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden. Wenn ein Leerstring übergeben wird, dann wird das benutzerdefinierte Profil deaktiviert.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden. Wenn ein Leerstring übergeben wird, dann wird das benutzerdefinierte Profil deaktiviert.
**Beispiel**
```php
IPS_SetVariableCustomProfile(12345, "~Switch");
```
## IPS_VariableExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/ips-variableexists/
`bool IPS_VariableExists(int $VariablenID)`
prüft, ob eine bestimmte Variable existiert
**Parameter**
- `$VariablenID` (int): ID der zu prüfenden Variable
**Rückgabewert** (bool): Falls die VariablenID im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
ID der zu prüfenden Variable
**Beispiel**
```php
if (IPS_VariableExists(44788))
echo "Variable existiert bereits!";
```
## Variablendarstellung
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/
## IPS_GetPresentation
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/ips-getpresentation/
`array IPS_GetPresentation(string $DarstellungsID)`
_Benötigt Symcon >= 8.0_
liefert umfassende Informationen über eine bestimmte Darstellung
**Parameter**
- `$DarstellungsID` (string): Die ID der Darstellung, als GUID formatiert
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| -------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| __caption__ | string | Der Anzeigename der Darstellung. |
| __chart__ | array | Ein Array mit den Zuweisungen der Parameter für die Darstellung eines Diagramms (Siehe chart Tabelle) |
| __condition__ | array | Eine Liste an Bedingungen welche die Parameter der Darstellung erfüllen müssen. |
| __conversions__ | array | Eine Liste von Anweisungen die angewandt werden, um Parameter für verschiedene Variablentypen anzupassen |
| __form__ | array/string | Das Konfigurationsformular bestimmt wie die Parameter im Variablen-Dialog oder dem Vorlagenmanager angepasst werden können. |
| __format__ | array/string | Die Formatierung von Werten innerhalb dieser Darstellung |
| __id__ | string | Die ID der Darstellung, als GUID formatiert |
| __locale__ | array | Die Lokalisierung der Darstellung |
| __presentationParameters__ | array | Eine Liste, welche die Standardwerte der Parameter dieser Darstellung beschreibt |
| __presentationValue__ | string | Der Standartwert welcher in der Darstellungsvorschau angezeigt wird. Kann alternativ auch PHP-Code als String oder Array enthalten, welcher den Wert zurückgibt |
| __restrictions__ | array | Eine Liste an Einschränkungen, welche festlegt für welche Variablen diese Darstellung verfügbar ist |
__chart Tabelle__
Jeder Wert kann entweder eine Zahl sein oder der Name des Parameters, dessen Wert verwendet werden soll.
| Index | Typ | Beschreibung |
| ------------ | -------------------- | ------------------------------ |
| __min__ | integer/float/string | Parameter für den Minimalwert |
| __max__ | integer/float/string | Parameter für den Maximalwert |
| __stepSize__ | integer/float/string | Parameter für die Schrittweite |
Die ID der Darstellung, als GUID formatiert
**Beispiel**
```php
IPS_GetPresentation('{6B9CAEEC-5958-C223-30F7-BD36569FC57A}' /* Schieberegler*/);
```
## IPS_GetPresentationForm
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/ips-getpresentationform/
`string IPS_GetPresentationForm(string $DarstellungsID, int $Variablentyp, array $Parameter)`
_Benötigt Symcon >= 8.0_
liefert das Konfigurationsformular einer Darstellung für einen Variablentypen
**Parameter**
- `$DarstellungsID` (string): Die ID der Darstellung, als GUID formatiert
- `$Variablentyp` (int): Der Typ der Variablen deren Formular zurückgegeben werden soll
- `$Parameter` (array): Die Parameterlist, die für das Formular genutzt werden soll
**Rückgabewert** (string): Das Formular der beschriebenen Darstellung als JSON kodierter String.
Die Parameterlist, die für das Formular genutzt werden soll
**Beispiel**
```text
IPS_GetPresentationForm('{6B9CAEEC-5958-C223-30F7-BD36569FC57A}' /* Schieberegler*/, 1 /* Integer */, []);
```
## IPS_GetPresentations
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/ips-getpresentations/
`string IPS_GetPresentations()`
_Benötigt Symcon >= 8.0_
liefert alle Darstellungen des Systems
**Rückgabewert** (string): Ein JSON-kodieret Liste aller verfügbaren Darstellungen.
Die Felder der einzelnen Darstellungen sind [hier](https://www.symcon.de/de/llms/functions/management-variables.md) näher beschrieben.
Gibt eine JSON-kodieret Liste aller verfügbaren Darstellungen zurück.
**Beispiel**
```text
// Alle Darstellung als Array
$presentations = json_decode(IPS_GetPresentations(), true);
```
## IPS_PresentationExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/ips-presentationexists/
`bool IPS_PresentationExists(string $DarstellungsID)`
_Benötigt Symcon >= 8.0_
prüft ob eine bestimmte Darstellung existiert
**Parameter**
- `$DarstellungsID` (string): Die ID der zu prüfenden Darstellung, als GUID formatiert
**Rückgabewert** (bool): Falls die Darstellung im System existiert, wird **TRUE** zurückgemeldet, andernfalls **FALSE**.
Die ID der zu prüfenden Darstellung, als GUID formatiert
**Beispiel**
```text
if (IPS_PresentationExists('{60AE6B26-B3E2-BDB1-A3A1-BE232940664B}' /* Schieberegler */)) {
echo 'Darstellung existiert bereits!';
}
```
## Vorlagenverwaltung
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/
## IPS_CreateTemplate
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-createtemplate/
`string IPS_CreateTemplate(string $DarstellungsID)`
_Benötigt Symcon >= 8.0_
erstellt eine neue Vorlage für eine bestimmte Darstellung
**Parameter**
- `$DarstellungsID` (string): Die ID der Darstellung, als GUID formatiert, für die ein neue Vorlage angelegt werden soll
**Rückgabewert** (string): Die ID der neu erstellten Vorlage als GUID formatiert
Die ID der Darstellung, als GUID formatiert, für die ein neue Vorlage angelegt werden soll
**Beispiel**
```text
$vorlage = IPS_CreateTemplate('{6B9CAEEC-5958-C223-30F7-BD36569FC57A}' /* Schieberegler */);
```
## IPS_DeleteTemplate
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-deletetemplate/
`bool IPS_DeleteTemplate(string $VorlagenID)`
_Benötigt Symcon >= 8.0_
löscht eine Vorlage
**Parameter**
- `$VorlagenID` (string): Die ID der zu löschenden Vorlage, als GUID formatiert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**.
Die ID der zu löschenden Vorlage, als GUID formatiert
**Beispiel**
```text
// Löscht die Vorlage mit der GUID {8422E41F-00AA-33F7-E8A4-BB516EC0056B}
IPS_DeleteTemplate('{8422E41F-00AA-33F7-E8A4-BB516EC0056B}');
```
## IPS_GetTemplate
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-gettemplate/
`array IPS_GetTemplate(string $VorlagenID)`
_Benötigt Symcon >= 8.0_
liefert umfassende Informationen über eine Vorlage
**Parameter**
- `$VorlagenID` (string): Die ID der Vorlage, als GUID formatiert
**Rückgabewert** (array): Folgende Informationen stehen als **key=>value** Paare zur Verfügung:
| Index | Typ | Beschreibung |
| -------------- | ------ | -------------------------------------------------- |
| TemplateID | string | Die ID der Vorlage |
| PresentationID | string | Die ID der Darstellung zu der diese Vorlage gehört |
| DisplayName | string | Der Anzeigename der Vorlage |
| Values | array | Ein Array mit den Werten der Vorlage |
| ReadOnly | bool | Ob die Vorlage verändert werden kann |
Die ID der Vorlage, als GUID formatiert
**Beispiel**
```text
// Liefert Informationen über die Raumtemperatur Vorlage
print_r(IPS_GetTemplate('{868B087E-A38D-2155-EBE0-157AFBBF9E8C}' /* Raumptemperatur */);
/* Beispielausgabe:
Array
(
[TemplateID] => {868B087E-A38D-2155-EBE0-157AFBBF9E8C}
[PresentationID] => {6B9CAEEC-5958-C223-30F7-BD36569FC57A}
[DisplayName] => Raumtemperatur
[Values] => Array
(
[MIN] => 15
[DIGITS] => 1
[CUSTOM_GRADIENT] => []
[DECIMAL_SEPARATOR] => Client
[GRADIENT_TYPE] => 1
[MAX] => 25
[INTERVALS] => []
[INTERVALS_ACTIVE] =>
[PERCENTAGE] =>
[PREFIX] =>
[STEP_SIZE] => 0.5
[SUFFIX] => °C
[THOUSANDS_SEPARATOR] =>
[USAGE_TYPE] => 0
)
[IsReadOnly] => 1
)
*/
```
## IPS_GetTemplateList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-gettemplatelist/
`array IPS_GetTemplateList()`
_Benötigt Symcon >= 8.0_
liefert alle verfügbaren Vorlagen
**Rückgabewert** (array): Eine Liste der IDs aller verfügbaren Vorlagen
Die Funktion gibt die IDs aller verfügbaren Vorlagen in einem Array zurück. Mit der Funktion [IPS_GetTemplate](https://www.symcon.de/de/llms/functions/management-variables.md) können mehr Informationen über die einzelnen Vorlagen abgerufen werden.
**Beispiel**
```text
print_r(IPS_GetTemplateList());
```
## IPS_GetTemplateListByPresentation
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-gettemplatelistbypresentation/
`array IPS_GetTemplateListByPresentation(string $DarstellungsID)`
_Benötigt Symcon >= 8.0_
liefert eine Liste der Vorlagen einer Darstellung
**Parameter**
- `$DarstellungsID` (string): Die ID der Darstellung deren Vorlagen aufgelistet werden sollen
**Rückgabewert** (array): Ein Array der IDs einer Darstellung
Die ID der Darstellung deren Vorlagen aufgelistet werden sollen
**Beispiel**
```text
print_r(IPS_GetTemplateListByPresentation('{6B9CAEEC-5958-C223-30F7-BD36569FC57A}' /* Schieberegler */));
```
## IPS_SetTemplateName
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-settemplatename/
`bool IPS_SetTemplateName(string $VorlagenID, string $Name)`
_Benötigt Symcon >= 8.0_
setzt den Namen einer Vorlage
**Parameter**
- `$VorlagenID` (string): Die ID der Vorlage deren Name angepasst werden soll
- `$Name` (string): Der Wert auf den der Name der Vorlage gesetzt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**.
Der Wert auf den der Name der Vorlage gesetzt werden soll
**Beispiel**
```text
IPS_SetTemplateName('{3C257416-99FE-0386-D8D3-20437FF62CEB}' , 'Neue Vorlage');
```
## IPS_SetTemplateValues
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-settemplatevalues/
`bool IPS_SetTemplateValues(string $VorlagenID, array $Werte)`
_Benötigt Symcon >= 8.0_
setzt die Werte einer Vorlage
**Parameter**
- `$VorlagenID` (string): Die ID der Vorlage deren Werte angepasst werden sollen
- `$Werte` (array): Ein Array auf welchen die Werte der Vorlage gesetzt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**.
Ein Array auf welchen die Werte der Vorlage gesetzt werden soll
**Beispiel**
```php
IPS_SetTemplateValues('{E35A875A-E9BC-4C6D-A550-F4DA423BCF18}', ['PROFILE' => '~Intensity.100']);
```
## IPS_TemplateExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablendarstellung/vorlagenverwaltung/ips-templateexists/
`bool IPS_TemplateExists(string $VorlagenID)`
_Benötigt Symcon >= 8.0_
prüft ob eine Vorlage existiert
**Parameter**
- `$VorlagenID` (string): ID der zu prüfenden Vorlage als GUID formatiert
**Rückgabewert** (bool): Falls eine Vorlage mit der **VorlagenGUID** existiert, wird TRUE zurückgemeldet, andernfalls FALSE.
ID der zu prüfenden Vorlage als GUID formatiert
**Beispiel**
```php
if (IPS_TemplateExists('{868B087E-A38D-2155-EBE0-157AFBBF9E8C}' /* Raumtemperatur */)) {
echo 'Vorlage existiert bereits!';
}
```
## Variablenprofile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/
## IPS_CreateVariableProfile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-createvariableprofile/
`bool IPS_CreateVariableProfile(string $ProfilName, int $VariablenTyp)`
legt ein Variablenprofil an
**Parameter**
- `$ProfilName` (string): Name des Profils. Erlaubt sind A-Z, a-z, Punkt, Komma, Unterstrich
- `$VariablenTyp` (int)
| Wert | Beschreibung |
| ---- | -------------------------------------------------------- |
| 0 | Legt ein Variablenprofil für VariablenTyp __Boolean__ an |
| 1 | Legt ein Variablenprofil für VariablenTyp __Integer__ an |
| 2 | Legt ein Variablenprofil für VariablenTyp __Float__ an |
| 3 | Legt ein Variablenprofil für VariablenTyp __String__ an |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Wert | Beschreibung |
| ---- | -------------------------------------------------------- |
| 0 | Legt ein Variablenprofil für VariablenTyp __Boolean__ an |
| 1 | Legt ein Variablenprofil für VariablenTyp __Integer__ an |
| 2 | Legt ein Variablenprofil für VariablenTyp __Float__ an |
| 3 | Legt ein Variablenprofil für VariablenTyp __String__ an |
**Beispiel**
```php
//Anlegen eines Profils für Boolean-Variablen
IPS_CreateVariableProfile("Schalter", 0);
//... hier die weitere Konfiguration des Profils
```
## IPS_DeleteVariableProfile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-deletevariableprofile/
`bool IPS_DeleteVariableProfile(string $ProfilName)`
löscht ein Variablenprofil
**Parameter**
- `$ProfilName` (string): Name des zu löschenden Profils
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name des zu löschenden Profils
**Beispiel**
```php
//Löschen des Schalter Profils
IPS_DeleteVariableProfile("Schalter");
```
## IPS_GetVariableProfile
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-getvariableprofile/
`array IPS_GetVariableProfile(string $ProfilName)`
liefert umfassende Informationen zu einem bestimmten Variablenprofil
**Parameter**
- `$ProfilName` (string): Name des Variablenprofils
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ---------------- | ------- | ------------------------------------------------------------------------------------ |
| __Associations__ | array | Array mit Wert, Name, Icon, Color Paaren (siehe Associations Tabelle) |
| __Icon__ | string | Icon des Variablenprofils |
| __IsReadOnly__ | boolean | TRUE, wenn es ein systemerstelltes Profil ist, welches nicht geändert werden kann. |
| __MaxValue__ | float | Maximalwert für die Visualisierung |
| __MinValue__ | float | Minimalwert für die Visualisierung |
| __StepSize__ | float | Schrittweite für die Visualisierung; 0, wenn Assoziationstabelle genutzt werden soll |
| __Digits__ | integer | Anzahl der Nachkommastellen |
| __Prefix__ | string | Präfix für die Visualisierung |
| __Suffix__ | string | Suffix für die Visualisierung |
| __ProfileName__ | string | Name des Profils (~ = Systemprofil) |
| __ProfileType__ | integer | Typ des Profils (Siehe ProfilTyp Tabelle) |
__Associations Tabelle__
| Index | Typ | Beschreibung |
| --------- | ------- | ---------------------------------------------------------------------------------- |
| __Value__ | float | Wert, zu dem der Name und das Icon verknüpft werden sollen |
| __Name__ | string | Name zum angegebenen Wert |
| __Icon__ | string | Icon zum angegebenen Wert |
| __Color__ | integer | Farbwert im HTML Farbcode (z.b. 0x0000FF für Blau). Sonderfall: -1 für transparent |
__ProfilTyp__
Profiltyp und der Variablentyp ([IPS_CreateVariable](https://www.symcon.de/de/llms/functions/management-variables.md)) müssen identisch sein, damit eine Anzeige im WebFront korrekt dargestellt werden kann.
| Wert | Beschreibung |
| ---- | ------------------------------ |
| 0 | Ein Profil vom Typ __Boolean__ |
| 1 | Ein Profil vom Typ __Integer__ |
| 2 | Ein Profil vom Typ __Float__ |
| 3 | Ein Profil vom Typ __String__ |
Name des Variablenprofils
**Beispiel**
```php
print_r( IPS_GetVariableProfile("~WindDirection") );
/* liefert z.B.:
Array
(
[Associations] => Array
(
)
[Digits] => 1
[Icon] => WindDirection
[IsReadOnly] => 1
[MaxValue] => 360
[MinValue] => 0
[Prefix] =>
[ProfileName] => ~WindDirection
[ProfileType] => 2
[StepSize] => 60
[Suffix] => °
)
*/
```
## IPS_GetVariableProfileList
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-getvariableprofilelist/
`array IPS_GetVariableProfileList()`
liefert eine Liste aller existierenden Variablenprofile
**Rückgabewert** (array): Ein Array von String-Werten aller Namen der Variablenprofile
Die Funktion ermittelt in IP-Symcon vorhandenen Variablenprofile. Die Namen werden in einem Array aufgelistet.
**Beispiel**
```php
$Profile = IPS_GetVariableProfileList();
print_r($Profile);
/* liefert z.B.:
Array
(
[0] => ~Temperature
[1] => ~Humidity
[2] => ~AirPressure
usw. ...
*/
```
## IPS_GetVariableProfileListByType
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-getvariableprofilelistbytype/
`array IPS_GetVariableProfileListByType(int $VariablenTyp)`
liefert eine Liste aller existierenden Variablenprofile eines bestimmten Typs
**Parameter**
- `$VariablenTyp` (int)
| Wert | Beschreibung |
| ---- | ------------------------- |
| 0 | Sucht vom Typ __Boolean__ |
| 1 | Sucht vom Typ __Integer__ |
| 2 | Sucht vom Typ __Float__ |
| 3 | Sucht vom Typ __String__ |
**Rückgabewert** (array): Ein Array von String-Werten aller Namen der Variablenprofile
| Wert | Beschreibung |
| ---- | ------------------------- |
| 0 | Sucht vom Typ __Boolean__ |
| 1 | Sucht vom Typ __Integer__ |
| 2 | Sucht vom Typ __Float__ |
| 3 | Sucht vom Typ __String__ |
**Beispiel**
```php
$Profile = IPS_GetVariableProfileListByType(0);
print_r($Profile);
/* liefert z.B.:
Array
(
[0] => ~Switch
[1] => ~Alert
[2] => ~Alert.Reversed
usw. ...
*/
```
## IPS_SetVariableProfileAssociation
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-setvariableprofileassociation/
`bool IPS_SetVariableProfileAssociation(string $ProfilName, mixed $Wert, string $Name, string $Icon, int $Farbe)`
modifiziert die Assoziationstabelle eines Variablenprofils
**Parameter**
- `$ProfilName` (string): Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden.
- `$Wert` (mixed): Wert, zu dem der Name, das Icon und die Farbe verknüpft werden sollen
- `$Name` (string): Name zum angegebenen Wert
- `$Icon` (string): Icon zum angegebenen Wert
- `$Farbe` (int): Farbwert im HTML Farbcode (z.b. 0x0000FF für Blau). Sonderfall: -1 für transparent
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Farbwert im HTML Farbcode (z.b. 0x0000FF für Blau). Sonderfall: -1 für transparent
**Beispiel**
```php
//Anlegen für Wert 1 in der Farbe weiß
IPS_SetVariableProfileAssociation("Temperatur", 1, "Wert 1", "Speaker", 0xFFFFFF);
//Anlegen für Wert "sum" in der Farbe gelb
IPS_SetVariableProfileAssociation("Jahreszeit", "sum", "Sommer", "Sun", 0xFFFF00);
//Löschen für Wert 1
IPS_SetVariableProfileAssociation("Temperatur", 1, "", "", -1);
```
## IPS_SetVariableProfileDigits
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-setvariableprofiledigits/
`bool IPS_SetVariableProfileDigits(string $ProfilName, int $Nachkommastellen)`
setzt die Anzahl der Nachkommastellen eines Variablenprofils
**Parameter**
- `$ProfilName` (string): Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden.
- `$Nachkommastellen` (int): Anzahl der in der Visualisierung angezeigten Nachkommastellen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Anzahl der in der Visualisierung angezeigten Nachkommastellen
**Beispiel**
```php
IPS_SetVariableProfileDigits("Temperatur", 1);
```
## IPS_SetVariableProfileIcon
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-setvariableprofileicon/
`bool IPS_SetVariableProfileIcon(string $ProfilName, string $Icon)`
setzt das Icon eines Variablenprofils
**Parameter**
- `$ProfilName` (string): Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden.
- `$Icon` (string): Icon zum angegebenen Wert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Icon zum angegebenen Wert
**Beispiel**
```php
IPS_SetVariableProfileIcon("Temperatur", "Temperature");
```
## IPS_SetVariableProfileText
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-setvariableprofiletext/
`bool IPS_SetVariableProfileText(string $ProfilName, string $Präfix, string $Suffix)`
setzt das Prefix und Suffix eines Variablenprofils
**Parameter**
- `$ProfilName` (string): Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden.
- `$Präfix` (string): Prefix für den Wert
- `$Suffix` (string): Suffix für den Wert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Suffix für den Wert
**Beispiel**
```php
IPS_SetVariableProfileText("Schalter", "", "%");
```
## IPS_SetVariableProfileValues
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-setvariableprofilevalues/
`bool IPS_SetVariableProfileValues(string $ProfilName, float $Minimalwert, float $Maximalwert, float $Schrittweite)`
setzt den Minimalwert, Maximalwert und die Schrittweite eines Variablenprofils
**Parameter**
- `$ProfilName` (string): Name des Profils. Verfügbare Profile können über [IPS_GetVariableProfileList](https://www.symcon.de/de/llms/functions/management-variables.md) abgefragt werden.
- `$Minimalwert` (float): Der für die Visualisierung genutzte Minimalwert. Diese Soft-Limitation beeinflusst nicht den Variablenwert.
- `$Maximalwert` (float): Der für die Visualisierung genutzte Maximalwert. Diese Soft-Limitation beeinflusst nicht den Variablenwert.
- `$Schrittweite` (float): Die für die Visualisierung genutzte Schrittweite zur Erstellung der Sollwert-Veränderngsleiste. Eine Schrittweite von __0__ aktiviert die Assoziationsliste.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die für die Visualisierung genutzte Schrittweite zur Erstellung der Sollwert-Veränderngsleiste. Eine Schrittweite von __0__ aktiviert die Assoziationsliste.
**Beispiel**
```php
IPS_SetVariableProfileValues("Temperatur", -10, 40, 0.5);
```
## IPS_VariableProfileExists
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenverwaltung/variablenprofile/ips-variableprofileexists/
`bool IPS_VariableProfileExists(string $ProfilName)`
prüft, ob ein bestimmtes Variablenprofil existiert
**Parameter**
- `$ProfilName` (string): Name des gesuchten Variablenprofils
**Rückgabewert** (bool): Falls das Profil mit dem Namen __ProfilName__ im System existiert, wird __TRUE__ zurückgemeldet, andernfalls __FALSE__.
Name des gesuchten Variablenprofils
**Beispiel**
```php
if (IPS_VariableProfileExists("Temperatur"))
echo "Profil existiert bereits!";
```
---
# Variablenzugriff
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/
## GetValue
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvalue/
`mixed GetValue(int $VariablenID)`
holt den Wert einer IP-Symcon Variable unabhängig des Typs
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (mixed): Wert der angegebenen Variable im Typ der angegebenen Variable
ID der Variable
**Beispiel**
```php
$Fenster_offen = GetValue(47788); // Boolean-Variable: true oder false
$aktuelles_Projekt = GetValue(46250); // String-Variable: z.B. "Regenerfassung"
```
## GetValueBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvalueboolean/
`bool GetValueBoolean(int $VariablenID)`
holt den Wert einer IP-Symcon Variable vom Typ Boolean
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (bool): Wert der angegebenen Variable
ID der Variable
**Beispiel**
```php
$Fenster_offen = GetValueBoolean(47788); // Boolean-Variable: true oder false
```
## GetValueFloat
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvaluefloat/
`float GetValueFloat(int $VariablenID)`
holt den Wert einer IP-Symcon Variable vom Typ Float
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (float): Wert der angegebenen Variable
ID der Variable
**Beispiel**
```php
$aktuelle_Temperatur = GetValueFloat(47788);
```
## GetValueFormatted
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvalueformatted/
`string GetValueFormatted(int $VariablenID)`
holt den Wert einer IP-Symcon Variable und formatiert ihn anhand des Profils
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (string): Wert der angegebenen Variable passend zum Profil formatiert
ID der Variable
**Beispiel**
```php
echo GetValueFormatted(47788); //Profil = ~Switch
//Ergibt: An oder Aus
echo GetValueFormatted(46250); //Profil = ~Temperature
//Ergibt: 17,5°C
```
## GetValueFormattedEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvalueformattedex/
`string GetValueFormattedEx(int $VariablenID, mixed $Wert)`
_Benötigt Symcon >= 5.5_
gibt einen Wert formatiert anhand des Profils einer Variable zurück
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (mixed): Wert, welcher formatiert werden soll
**Rückgabewert** (string): Wert passend zum Profil der Variable formatiert
Wert, welcher formatiert werden soll
**Beispiel**
```php
echo GetValueFormattedEx(12345, true); //Profil = ~Switch
//Ergibt: An
echo GetValueFormattedEx(23456, 17.5); //Profil = ~Temperature
//Ergibt: 17,5°C
```
## GetValueInteger
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvalueinteger/
`int GetValueInteger(int $VariablenID)`
holt den Wert einer IP-Symcon Variable vom Typ Integer
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (int): Wert der angegebenen Variable
ID der Variable
**Beispiel**
```php
$Anzahl_Personen = GetValueInteger(47788);
```
## GetValueString
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/getvaluestring/
`string GetValueString(int $VariablenID)`
holt den Wert einer IP-Symcon Variable vom Typ String
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (string): Wert der angegebenen Variable
ID der Variable
**Beispiel**
```php
$aktuelles_Projekt = GetValueString(47788);
```
## HasAction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/hasaction/
`bool HasAction(int $VariablenID)`
_Benötigt Symcon >= 5.3_
prüft, ob eine Aktion definiert ist
**Parameter**
- `$VariablenID` (int): ID der Variable
**Rückgabewert** (bool): __TRUE__, falls die Variable eine Aktion hat, andernfalls __FALSE__
ID der Variable
**Beispiel**
```php
// Prüft die Variable mit der ID 12356, ob diese eine Aktion hat.
HasAction(12345);
```
## RequestAction
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/requestaction/
`bool RequestAction(int $VariablenID, mixed $Wert)`
_Benötigt Symcon >= 5.0_
führe die Aktion einer IP-Symcon Variable aus
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (mixed): Wert für die Aktion
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert für die Aktion
**Beispiel**
```php
// Die Boolean Variable 29117 auf "true" schalten
RequestAction(29117, true);
// Die Integer Variable 46250 auf 18 schalten
RequestAction(46250, 18);
```
## RequestActionEx
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/requestactionex/
`bool RequestActionEx(int $VariablenID, mixed $Wert, string $Sender)`
_Benötigt Symcon >= 5.0_
führe die Aktion einer IP-Symcon Variable mit individuellen Sender aus
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (mixed): Wert für die Aktion
- `$Sender` (string): Name des Sender
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name des Sender
**Beispiel**
```php
// Boolean-Variable mit Sender Alarmanlage einschalten
RequestActionEx(12345, true, "Alarmanlage");
// Integer-Variable mit Sender TemperaturKlimaanlage einstellen
RequestActionEx(23456, 18, "TemperaturKlimaanlage");
```
## SetValue
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/setvalue/
`bool SetValue(int $VariablenID, mixed $Wert)`
setzt den Wert einer IP-Symcon Variable unabhängig des Typs
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (mixed): Neuer Wert der Variable
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Wert der Variable
**Beispiel**
```php
SetValue(29117, true); // Boolean-Variable: Merker für Schulferien setzen
SetValue(46250, $aktuelles_Projekt); // String-Variable: z.B. "Regenerfassung"
```
## SetValueBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/setvalueboolean/
`bool SetValueBoolean(int $VariablenID, bool $Wert)`
setzt den Wert einer IP-Symcon Variable vom Typ Boolean
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (bool): TRUE/FALSE
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
TRUE/FALSE
**Beispiel**
```php
SetValueBoolean(47788, true); // Alarmanlage einschalten
```
## SetValueFloat
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/setvaluefloat/
`bool SetValueFloat(int $VariablenID, float $Wert)`
setzt den Wert einer IP-Symcon Variable vom Typ Float
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (float): 64Bit Gleitkommazahl
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
64Bit Gleitkommazahl
**Beispiel**
```php
SetValueFloat(47788, $aktuelle_Temperatur);
```
## SetValueInteger
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/setvalueinteger/
`bool SetValueInteger(int $VariablenID, int $Wert)`
setzt den Wert einer IP-Symcon Variable vom Typ Integer
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (int): -2,147,483,648 .. 2,147,483,647
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-2,147,483,648 .. 2,147,483,647
**Beispiel**
```php
SetValueInteger(47788, $Anzahl_Personen);
```
## SetValueString
Quelle: https://www.symcon.de/de/service/dokumentation/befehlsreferenz/variablenzugriff/setvaluestring/
`bool SetValueString(int $VariablenID, string $Wert)`
setzt den Wert einer IP-Symcon Variable vom Typ String
**Parameter**
- `$VariablenID` (int): ID der Variable
- `$Wert` (string): Text
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Text
**Beispiel**
```php
SetValueString(47788, $aktuelles_Projekt);
```
---
# Entwicklerbereich – Übersicht
> 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/
### Erweiterte Funktionen
| Funktion | Beschreibung |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Systembefehle | Es können alle Befehle zum Konfigurieren von IP-Symcon genutzt werden, die normalerweise nur für native Modulentwickler verfügbar waren. Über PHP kann vollständig auf das System zugegriffen werden – In der [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md) kann ein Überblick über alle Möglichkeiten gewonnen werden. |
| Modulbefehle | Jedes Modul und jede Option der Module, welche über die Verwaltungskonsole verändert werden können, können auch durch Skripte ausgelesen und verändert werden. Dadurch ist die komplette Kontrolle über die angeschlossenen Hardwaremodule möglich. Die [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) bietet eine komplette Auflistung der Aktionsbefehle. |
| PHP | IP-Symcon bietet das volle Potential der PHP Skriptsprache. Es kann nicht nur auf alle PHP Befehle zugegriffen, sondern auch über die eigene php.ini Anpassungen vorgenommen und Extensions geladen werden. Über diese sind z.B. erweiterte Grafikfunktionen (GD2) oder MySQL, MSSQL oder andere Datenbanken ansprechbar. Der in IP-Symcon integrierte WebServer macht eine seperate LAMP Installation überflüssig. |
| Client/Server Modell | Der IP-Symcon Dienst fügt sich nahtlos in das Serverbetriebssystem ein. Es muss keine interaktive Session gestartet werden – Das bedeutet kein Ärger und keine Problematik bei unerwarteten oder auch geplanten Neustarts des Systems. Nach dem Start ist das System wieder verfügbar. Mit der Verwaltungskonsole kann immer komfortabel auf das System zugegriffen werden. Das System kann bequem von der Workstation aus erweitert werden. Ein direktes "am Server sitzen" oder auch ein einloggen per TeamViewer/AnyDesk/RDP auf den Server ist nicht mehr nötig. Veränderungen in der Verwaltungskonsole werden serverseitig sofort übernommen und können dadurch direkt ausprobiert werden. |
| JSON-RPC Schnittstelle | Die JSON-RPC Schnittstelle, welche Standardmäßig seit IP-Symcon 3.0 verfügbar ist, erlaubt den Zugriff auf alle Funktionen der [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md) und [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md), sodass sich eine Integration in jede Applikation so einfach gestaltet, wie das Schreiben eines PHP Skriptes innerhalb von IP-Symcon. Dabei kann auf die bereits vorhandene Dokumentation der Befehle zurückgegriffen werden. Einige Beispiele zur Integration können unter [Datenaustausch](https://www.symcon.de/de/llms/developer/data-exchange.md) gefunden werden. |
| WebServer | Der integrierte WebServer kann auf mehreren Ports betrieben werden. Eine Möglichkeit der SSL Verschlüsslung mit eigenen Zertifikaten und ein Webalizer kompatibles Logfile kann pro Instanz konfiguriert werden. |
| WebFront | Das mit IP-Symcon mitgelieferte Web Interface mit dem Namen “WebFront” bietet eine schnelle Visualisierungsmöglichkeit. Sobald Geräte in IP-Symcon eingerichtet sind, können von überall per LAN/WLAN/Web auf die Geräte zugegriffen werden. Einfach das WebFront aufrufen und schalten. Dokumentationen zu den Erweiterungsmöglichkeiten des WebFronts können im Entwicklerbereich gefunden werden. Für den optimalen Betrieb wird ein aktueller Browser vorausgesetzt. |
### SDK/Tools
Mit dem [IP-Symcon SDK](https://www.symcon.de/de/llms/developer/sdk-tools.md) ist es Möglich Module für IP-Symcon zu erstellen.
---
# Datenaustausch
> 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/datenaustausch/
### Erreichbarkeit
Die seit IP-Symcon 3.0 verfügbare JSON-RPC API ist standardmäßig über den Port 3777 erreichbar. Dabei ist der Port 3777 nur am lokalen System gebunden und erfordert keinerlei Authentifizierung.
Weiterhin ist die JSON-RPC API auf jedem in IP-Symcon eingerichteten WebServer aktiv. Dadurch können auf jeder Host/Port/SSL Konfiguration das WebFront und die Mobilen Apps einen Zugriff zu IP-Symcon bekommen.
### Kennwort und Funktionen
Die JSON-RPC API wird über den Lizenz-Benutzernamen und das [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) Kennwort authentifiziert. Wenn kein Kennwort angegeben wird, so wird keinerlei Zugriff gewährt.
Ein Sonderfall sind einige WFC_* Funktionen, welche über das Kennwort des jeweiligen WebFront-Konfigurators authentifiziert werden. In diesem Fall wird als Benutzername "webfront" verwendet. Diese Funktionen ermöglichen den isolierten Zugriff auf die vom Konfigurator definierten Teilbereiche des Objektbaums. Ausschließlich die WFC_GetConfigurators Funktion wird ohne jegliche Authentifizierung zur Verfügung gestellt. Diese ist erforderlich, um die Auflistung der WebFront-Konfiguratoren für das WebFront und die Mobilen Apps zu ermöglichen.
Zusätzlich wird dadurch die IP-Adressen Autostart Funktion realisiert. Übertragen werden in dieser Funktion nur die ID/Titel/Icon/Position/Editierbarkeit des jeweiligen Konfigurators, ob ein Kennwort erforderlich ist und ob dieser Konfigurator für die Mobile Apps aktiviert wurde. Standardmäßig ist die Nutzung für Mobile Apps im Konfigurator deaktiviert, um ein Sicherheitsproblem auf den Basis-Baum (ID = 0) zu vermeiden.
### Authentifizierung
Die im WebServer angebotene Basis-Authentifizierung gilt, sofern der WebServer für das WebFront genutzt wird, ausschließlich für den "user"-Ordner, der für benutzerdefinierte Inhalte freigegeben ist. Wenn der WebServer für ein anderes Verzeichnis genutzt wird, so gilt die Authentifizerung für alle Inhalte, die innerhalb dieses Verzeichnisses liegen - jedoch nicht für die JSON-RPC API, da diese den vorher genannten Authentifizierungsregeln unterliegt.
> **Hinweis:** Für die Funktionsaufrufe können die normalen Befehle der [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md) und [Modulreferenz](https://www.symcon.de/de/llms/modules/index.md) verwendet werden.
> **Achtung:** Als Benutzername muss Ihr Lizenz-Benutzername verwendet werden. Das Kennwort kann über [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) aktivieren gesetzt werden.
### JSON-RPC Schnittstelle (über PHP/IP-Symcon)
#### Kernelversion auslesen
```php
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
$result = $rpc->IPS_GetKernelVersion();
echo "KernelVersion: ".$result;
```
#### Skripte starten
```php
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
$rpc->IPS_RunScript(34956);
```
#### Variablen auslesen
```php
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
echo $rpc->GetValueFormatted(58383);
```
#### Variablen verändern
```php
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
$rpc->SetValue(38809, 18.5);
```
#### HomeMatic Gerät schalten
```php
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
$rpc->HM_WriteValueBoolean(20558, "STATE", false);
```
#### Rückgabewert bei nicht Erreichbarkeit
```php
try {
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
$rpc->IPS_GetKernelDir();
} catch (JSONRPCException $e) {
echo 'RPC Problem: ', $e->getMessage(), "\n";
} catch (Exception $e) {
echo 'Server Problem: ', $e->getMessage(), "\n";
}
```
### WebSocket Schnittstelle (über JavaScript)
Änderungen im System können über die Websocket Schnittstelle schnellstmöglich empfangen werden.
#### Gesamte API
```php
//IP-Symcon 5.1/IP-Symcon 5.2
//Normal
var connection = new WebSocket('ws://127.0.0.1:3777/api/', [btoa('email:fernzugriffpw').replace(/=/g, '')]);
//SSL
var connection = new WebSocket('wss://127.0.0.1:3777/api/', [btoa('email:fernzugriffpw').replace(/=/g, '')]);
//ab IP-Symcon 5.3
//Normal
var connection = new WebSocket('ws://127.0.0.1:3777/api/', [encodeURIComponent(btoa('email:fernzugriffpw'))]);
//SSL
var connection = new WebSocket('wss://127.0.0.1:3777/api/', [encodeURIComponent(btoa('email:fernzugriffpw'))]);
```
#### WebFront API
```php
//IP-Symcon 5.1
//Normal
var connection = new WebSocket('ws://127.0.0.1:3777/api/wfc/12345', [btoa('webfront:webfrontpw').replace(/=/g, '')]);
//SSL
var connection = new WebSocket('wss://127.0.0.1:3777/api/wfc/12345', [btoa('webfront:webfrontpw').replace(/=/g, '')]);
//IP-Symcon 5.2
//Normal
var connection = new WebSocket('ws://127.0.0.1:3777/wfc/12345/api/', [btoa('webfront:webfrontpw').replace(/=/g, '')]);
//SSL
var connection = new WebSocket('wss://127.0.0.1:3777/wfc/12345/api/', [btoa('webfront:webfrontpw').replace(/=/g, '')]);
//ab IP-Symcon 5.3
//Normal
var connection = new WebSocket('ws://127.0.0.1:3777/wfc/12345/api/', [encodeURIComponent(btoa('webfront:webfrontpw'))]);
//SSL
var connection = new WebSocket('wss://127.0.0.1:3777/wfc/12345/api/', [encodeURIComponent(btoa('webfront:webfrontpw'))]);
```
### JSON-RPC Schnittstelle (über cURL)
Aufruf via Kommandozeile
#### Variablen verändern
Beim Benutzername mail%40provider.de oder Passwort darf @ nicht geschrieben werden. => Als Ersatz: %40
Benutzername (Mail), Passwort und IP ohne <,> eintragen!
> **Hinweis:** Zur Kodierung und Berücksichtigung von Sonderzeichen kann die Seite [https://www.urlencoder.org/](https://www.urlencoder.org/) für Benutzername und Passwort genutzt werden.
```php
//SetValue Integer mit den Parametern ID = 12345 und Wert = 42
curl -i -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"SetValue\", \"params\": [12345, 42]}" http://:@:3777/api/
//SetValue Float mit den Parametern ID = 12346 und Wert = 1.23
curl -i -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"SetValue\", \"params\": [12346, 1.23]}" http://:@:3777/api/
//SetValue Boolean mit den Parametern ID = 12347 und Wert = false
curl -i -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"SetValue\", \"params\": [12347, false]}" http://:@:3777/api/
//SetValue String mit den Parametern ID = 12348 und Wert = "mein String"
curl -i -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"SetValue\", \"params\": [12348, \"mein String\"]}" http://:@:3777/api/
//Rückgabewert bei Erfolg
{"jsonrpc":"2.0","id":"0","result":true}
```
#### Variablen auslesen
```php
//GetValue mit den Parametern ID = 12345
curl -i -X POST -H "Content-Type: application/json" -d "{\"jsonrpc\": \"2.0\", \"id\": \"0\", \"method\": \"GetValue\", \"params\": [12345]}" http://:@:3777/api/
//Rückgabewert
{"jsonrpc":"2.0","id":"0","result":42}
```
---
# Download (Archiv)
> 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/download-archiv/
> **Achtung:** Es wird immer empfohlen die neuste Version von IP-Symcon zu nutzen. Zu Test-Zwecken bieten wir alte Versionen zum Download an für die jeweiligen Plattformen.
### Windows (32-Bit)
[4.0](https://download.symcon.de/version/symcon/win/i386?v=4.0), [4.1](https://download.symcon.de/version/symcon/win/i386?v=4.1), [4.2](https://download.symcon.de/version/symcon/win/i386?v=4.2), [4.3](https://download.symcon.de/version/symcon/win/i386?v=4.3), [4.4](https://download.symcon.de/version/symcon/win/i386?v=4.4)
### Windows (64-Bit)
[4.2](https://download.symcon.de/version/symcon/win/amd64?v=4.2), [4.3](https://download.symcon.de/version/symcon/win/amd64?v=4.3), [4.4](https://download.symcon.de/version/symcon/win/amd64?v=4.4), [5.0](https://download.symcon.de/version/symcon/win/amd64?v=5.0), [5.1](https://download.symcon.de/version/symcon/win/amd64?v=5.1), [5.2](https://download.symcon.de/version/symcon/win/amd64?v=5.2), [5.3](https://download.symcon.de/version/symcon/win/amd64?v=5.3), [5.4](https://download.symcon.de/version/symcon/win/amd64?v=5.4), [5.5](https://download.symcon.de/version/symcon/win/amd64?v=5.5), [6.0](https://download.symcon.de/version/symcon/win/amd64?v=6.0), [6.1](https://download.symcon.de/version/symcon/win/amd64?v=6.1), [6.2](https://download.symcon.de/version/symcon/win/amd64?v=6.2), [6.3](https://download.symcon.de/version/symcon/win/amd64?v=6.3), [6.4](https://download.symcon.de/version/symcon/win/amd64?v=6.4), [7.0](https://download.symcon.de/version/symcon/win/amd64?v=7.0), [7.1](https://download.symcon.de/version/symcon/win/amd64?v=7.1), [7.2](https://download.symcon.de/version/symcon/win/amd64?v=7.2), [8.0](https://download.symcon.de/version/symcon/win/amd64?v=8.0), [8.1](https://download.symcon.de/version/symcon/win/amd64?v=8.1), [9.0](https://download.symcon.de/version/symcon/win/amd64?v=9.0)
### Raspberry Pi (armhf)
[4.0](https://download.symcon.de/version/symcon/rpi/armhf?v=4.0), [4.1](https://download.symcon.de/version/symcon/rpi/armhf?v=4.1), [4.2](https://download.symcon.de/version/symcon/rpi/armhf?v=4.2), [4.3](https://download.symcon.de/version/symcon/rpi/armhf?v=4.3), [4.4](https://download.symcon.de/version/symcon/rpi/armhf?v=4.4), [5.0](https://download.symcon.de/version/symcon/rpi/armhf?v=5.0), [5.1](https://download.symcon.de/version/symcon/rpi/armhf?v=5.1), [5.2](https://download.symcon.de/version/symcon/rpi/armhf?v=5.2), [5.3](https://download.symcon.de/version/symcon/rpi/armhf?v=5.3), [5.4](https://download.symcon.de/version/symcon/rpi/armhf?v=5.4), [5.5](https://download.symcon.de/version/symcon/rpi/armhf?v=5.5), [6.0](https://download.symcon.de/version/symcon/rpi/armhf?v=6.0), [6.1](https://download.symcon.de/version/symcon/rpi/armhf?v=6.1), [6.2](https://download.symcon.de/version/symcon/rpi/armhf?v=6.2), [6.3](https://download.symcon.de/version/symcon/rpi/armhf?v=6.3), [6.4](https://download.symcon.de/version/symcon/rpi/armhf?v=6.4), [7.0](https://download.symcon.de/version/symcon/rpi/armhf?v=7.0), [7.1](https://download.symcon.de/version/symcon/rpi/armhf?v=7.1), [7.2](https://download.symcon.de/version/symcon/rpi/armhf?v=7.2), [8.0](https://download.symcon.de/version/symcon/rpi/armhf?v=8.0), [8.1](https://download.symcon.de/version/symcon/rpi/armhf?v=8.1), [9.0](https://download.symcon.de/version/symcon/rpi/armhf?v=9.0)
### Raspberry Pi (arm64)
[6.0](https://download.symcon.de/version/symcon/rpi/arm64?v=6.0), [6.1](https://download.symcon.de/version/symcon/rpi/arm64?v=6.1), [6.2](https://download.symcon.de/version/symcon/rpi/arm64?v=6.2), [6.3](https://download.symcon.de/version/symcon/rpi/arm64?v=6.3), [6.4](https://download.symcon.de/version/symcon/rpi/arm64?v=6.4), [7.0](https://download.symcon.de/version/symcon/rpi/arm64?v=7.0), [7.1](https://download.symcon.de/version/symcon/rpi/arm64?v=7.1), [7.2](https://download.symcon.de/version/symcon/rpi/arm64?v=7.2), [8.0](https://download.symcon.de/version/symcon/rpi/arm64?v=8.0), [8.1](https://download.symcon.de/version/symcon/rpi/arm64?v=8.1), [9.0](https://download.symcon.de/version/symcon/rpi/arm64?v=9.0)
### Ubuntu (amd64)
[4.0](https://download.symcon.de/version/symcon/ubuntu/amd64?v=4.0), [4.1](https://download.symcon.de/version/symcon/ubuntu/amd64?v=4.1), [4.2](https://download.symcon.de/version/symcon/ubuntu/amd64?v=4.2), [4.3](https://download.symcon.de/version/symcon/ubuntu/amd64?v=4.3), [4.4](https://download.symcon.de/version/symcon/ubuntu/amd64?v=4.4), [5.0](https://download.symcon.de/version/symcon/ubuntu/amd64?v=5.0), [5.1](https://download.symcon.de/version/symcon/ubuntu/amd64?v=5.1), [5.2](https://download.symcon.de/version/symcon/ubuntu/amd64?v=5.2), [5.3](https://download.symcon.de/version/symcon/ubuntu/amd64?v=5.3), [5.4](https://download.symcon.de/version/symcon/ubuntu/amd64?v=5.4), [5.5](https://download.symcon.de/version/symcon/ubuntu/amd64?v=5.5), [6.0](https://download.symcon.de/version/symcon/ubuntu/amd64?v=6.0), [6.1](https://download.symcon.de/version/symcon/ubuntu/amd64?v=6.1), [6.2](https://download.symcon.de/version/symcon/ubuntu/amd64?v=6.2), [6.3](https://download.symcon.de/version/symcon/ubuntu/amd64?v=6.3), [6.4](https://download.symcon.de/version/symcon/ubuntu/amd64?v=6.4), [7.0](https://download.symcon.de/version/symcon/ubuntu/amd64?v=7.0), [7.1](https://download.symcon.de/version/symcon/ubuntu/amd64?v=7.1), [7.2](https://download.symcon.de/version/symcon/ubuntu/amd64?v=7.2), [8.0](https://download.symcon.de/version/symcon/ubuntu/amd64?v=8.0), [8.1](https://download.symcon.de/version/symcon/ubuntu/amd64?v=8.1), [9.0](https://download.symcon.de/version/symcon/ubuntu/amd64?v=9.0)
### Mac (32-Bit)
[4.0](https://download.symcon.de/version/symcon/mac/i386?v=4.0), [4.1](https://download.symcon.de/version/symcon/mac/i386?v=4.1), [4.2](https://download.symcon.de/version/symcon/mac/i386?v=4.2), [4.3](https://download.symcon.de/version/symcon/mac/i386?v=4.3), [4.4](https://download.symcon.de/version/symcon/mac/i386?v=4.4), [5.0](https://download.symcon.de/version/symcon/mac/i386?v=5.0), [5.1](https://download.symcon.de/version/symcon/mac/i386?v=5.1), [5.2](https://download.symcon.de/version/symcon/mac/i386?v=5.2), [5.3](https://download.symcon.de/version/symcon/mac/i386?v=5.3), [5.4](https://download.symcon.de/version/symcon/mac/i386?v=5.4), [5.5](https://download.symcon.de/version/symcon/mac/i386?v=5.5), [6.0](https://download.symcon.de/version/symcon/mac/i386?v=6.0), [6.1](https://download.symcon.de/version/symcon/mac/i386?v=6.1), [6.2](https://download.symcon.de/version/symcon/mac/i386?v=6.2), [6.3](https://download.symcon.de/version/symcon/mac/i386?v=6.3), [6.4](https://download.symcon.de/version/symcon/mac/i386?v=6.4), [7.0](https://download.symcon.de/version/symcon/mac/i386?v=7.0), [7.1](https://download.symcon.de/version/symcon/mac/i386?v=7.1), [7.2](https://download.symcon.de/version/symcon/mac/i386?v=7.2), [8.0](https://download.symcon.de/version/symcon/mac/i386?v=8.0), [8.1](https://download.symcon.de/version/symcon/mac/i386?v=8.1), [9.0](https://download.symcon.de/version/symcon/mac/i386?v=9.0)
### Catan (64-Bit)
[9.0](https://download-dev.symcon.de/version/symcon/catan/arm64?v=9.0)
### Legacy IP-Symcon
[3.4](https://data.symcon.de/symcon_3.4-3803_i386.zip)
### Legacy Management Konsole
[3.4](https://data.symcon.de/console/ips_console-3.4.exe), [4.0](https://data.symcon.de/console/ips_console-4.0.exe), [4.1](https://data.symcon.de/console/ips_console-4.1.exe), [4.2](https://data.symcon.de/console/ips_console-4.2.exe), [4.3](https://data.symcon.de/console/ips_console-4.3.exe), [4.4](https://data.symcon.de/console/ips_console-4.4.exe), [5.0](https://data.symcon.de/console/ips_console-5.0.exe)
---
# Kompatibilitätsfunktionen
> 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/kompatibilitaetsfunktionen/
Kompatibilitätsfunktionen sind die Funktionen, welche mittlerweile nicht mehr verwendet werden sollen und standardmässig deaktiviert sind. Diese wurden aufgrund von Performance abgeschafft oder durch verbesserte Ersatzfunktionen abgelöst. Aus Kompatibilitätsgründen zu alten IP-Symcon Installationen sind diese aber bei Bedarf über den [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) "Kompatibilitätsfunktionen" aktivierbar. Dies benötigt aber viele Ressourcen und es wird stark davon abgeraten.
## IPS_GetInstanceChildrenIDs
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getinstancechildrenids/
`array IPS_GetInstanceChildrenIDs(int $InstanzID)`
liefert die InstanzIDs der untergeordneten Instanzen (veraltet)
**Parameter**
- `$InstanzID` (int): ID der zu überprüfenden Instanz
**Rückgabewert** (array): Ein Array von InstanzIDs der Unterinstanzen
ID der zu überprüfenden Instanz
**Beispiel**
```php
print_r(IPS_GetInstanceChildrenIDs(12345));
// Beispiel um die veraltete Funktion "IPS_GetInstanceChildrenIDs" zu ersetzen.
// Dazu wird IPS_GetInstance genutzt
$InstanceIDs = IPS_GetInstanceList();
foreach($InstanceIDs as $IID)
if(IPS_GetInstance($IID)['ConnectionID'] == 12345)
echo $IID . PHP_EOL;
```
## IPS_GetInstanceParentID
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getinstanceparentid/
`int IPS_GetInstanceParentID(int $InstanzID)`
liefert die InstanzID der übergeordneten Instanz (veraltet)
**Parameter**
- `$InstanzID` (int): ID der zu überprüfenden Instanz
**Rückgabewert** (int): ID der übergeordneten Instanz
ID der zu überprüfenden Instanz
**Beispiel**
```php
// Bis Version 2.5
echo IPS_GetInstanceParentID(12345);
// Ab Version 2.6
echo IPS_GetInstance(12345)['ConnectionID'];
```
## IPS_GetScriptID
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getscriptid/
`int IPS_GetScriptID(string $SkriptName)`
liefert die ID eines Skripts (veraltet)
**Parameter**
- `$SkriptName` (string): Zu suchender SkriptName
**Rückgabewert** (int): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zu suchender SkriptName
**Beispiel**
```php
//Fehlermeldung mit @ unterdrücken
$ScriptID = @IPS_GetScriptID("Regenerfassung");
if ($ScriptID === false)
echo "Skript nicht gefunden!";
else
echo "Die Skript-ID lautet: ". $ScriptID;
```
## IPS_GetStatusVariable
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getstatusvariable/
`array IPS_GetStatusVariable(int $InstanzID, string $VariableIdent)`
liefert umfassende Informationen zu einer bestimmten Status Variable (veraltet)
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$VariableIdent` (string): Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) abgerufen werden.
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| --------------------- | ------- | --------------------------------------------------------------------------------------------- |
| __VariableID__ | integer | Aktuelle ID der verknüpften IP-Symcon Variable |
| __VariableIdent__ | string | Status Variablen Identifikator |
| __VariableName__ | string | Standard Name der angelegten Variable |
| __VariablePosition__ | integer | Standard Position der angelegten Variable |
| __VariableProfile__ | string | Standard Profilname der angelegten Variable |
| __VariableType__ | integer | Kompatibler Variablentyp (Siehe [IPS_GetVariable](https://www.symcon.de/de/llms/functions/management-variables.md)) |
| __VariableHasAction__ | boolean | Gibt an, ob intern eine Aktion definiert ist, die mit dieser Status Variable verknüpft wurde. |
| __VariableUseAction__ | boolean | Gibt an, wie die vorhandene Aktion in der Visualisierung benutzt werden soll. |
Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) abgerufen werden.
**Beispiel**
```php
// bis Version 2.5
if(IPS_StatusVariableExists(12345, "StatusVariable"))
{
print_r(IPS_GetStatusVariable(12345, "StatusVariable"));
}
// ab Version 2.6 Ersatzfunktion
$VariableIdent = "Statusvariable";
$InstanceID = 12345;
$id = IPS_GetObjectIDByIdent($VariableIdent, $InstanceID);
$v = IPS_GetVariable($id);
$result = Array(
"VariableID" => $id,
"VariableIdent" => $VariableIdent,
"VariableName" => "N/A",
"VariablePosition" => 0,
"VariableProfile" => $v['VariableProfile'],
"VariableType" => $v['VariableType'],
"VariableHasAction" => ($v['VariableAction'] > 0),
"VariableUseAction" => ($v['VariableAction'] > 0)
);
print_r($result);
```
## IPS_GetStatusVariableID
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getstatusvariableid/
`int IPS_GetStatusVariableID(int $InstanzID, string $VariableIdent)`
liefert alle Status Variablen zu einer bestimmten Instanz (veraltet)
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$VariableIdent` (string): Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) abgerufen werden.
**Rückgabewert** (int): VariablenID der Variable, die der Status Variable zugeordnet ist
Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) abgerufen werden.
**Beispiel**
```php
//Zustand von z.B. einem FS20 Gerät darstellen ohne die ID der "Status" Variable zu kennen
echo GetValue(IPS_GetStatusVariableID(12345, "StatusVariable"));
// ab Version 2.6 Ersatzfunktion
$InstanceID = "StatusVariable";
$VariableIdent = 12345;
$migrateIdents = Array(
"F05_StatusVar" => "Status",
"F10_TemperatureVar" => "Temperature",
"F12_Var0" => "Status0",
"F12_Var1" => "Status1",
"F1D_CounterVar1" => "Counter1",
"F1D_CounterVar2" => "Counter2",
"F20_Var0" => "Port0",
"F20_Var1" => "Port1",
"F20_Var2" => "Port2",
"F20_Var3" => "Port3",
"F26_TemperatureVar" => "Temperature",
"F26_VDDVar" => "VDD",
"F26_VADVar" => "VAD",
"F26_XSENSVar" => "XSENS",
"F28_TemperatureVar" => "Temperature",
"F29_Var0" => "Status0",
"F29_LatchVar0" => "Latch0",
"F29_Var1" => "Status1",
"F29_LatchVar1" => "Latch1",
"F29_Var2" => "Status2",
"F29_LatchVar2" => "Latch2",
"F29_Var3" => "Status3",
"F29_LatchVar3" => "Latch3",
"F29_Var4" => "Status4",
"F29_LatchVar4" => "Latch4",
"F29_Var5" => "Status5",
"F29_LatchVar5" => "Latch5",
"F29_Var6" => "Status6",
"F29_LatchVar6" => "Latch6",
"F29_Var7" => "Status7",
"F29_LatchVar7" => "Latch7",
"F2C_PositionVar" => "Position",
"F3A_Var0" => "Status0",
"F3A_Var1" => "Status1"
);
if(isset($migrateIdents[$VariableIdent]))
{
$VariableIdent = $migrateIdents[$VariableIdent];
}
$result = IPS_GetObjectIDByIdent($VariableIdent, $InstanceID);
echo $result;
```
## IPS_GetStatusVariableIdents
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getstatusvariableidents/
`array IPS_GetStatusVariableIdents(int $InstanzID)`
liefert die VariablenIdents einer Status Variable (veraltet)
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (array): Ein Array von Strings, die die Status Variable Indentifikatoren der Instanz angeben
ID der Instanz
**Beispiel**
```php
print_r(IPS_GetStatusVariableIdents(12345));
// ab Version 2.6 Ersatzfunktion
$InstanceID = 12345
$r = Array();
$cids = IPS_GetChildrenIDs($InstanceID);
foreach($cids as $cid) {
$o = IPS_GetObject($cid);
if($o['ObjectIdent'] != "") {
$r[] = $o['ObjectIdent'];
}
}
$result = $r;
print_r($result);
```
## IPS_GetUptime
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getuptime/
`int IPS_GetUptime()`
liefert den Zeitpunkt, an dem IP-Symcon gestartet wurde (veraltet)
**Rückgabewert** (int): Zeitpunkt, an dem IP-Symcon gestartet wurde
Die Funktion liefert Datum und Uhrzeit des Startzeitpunkts von IP-Symcon als Unix Timestamp.
> **Achtung:** Diese Funktion ist nur bis Version 3.4 implementiert. Ab Version 4.0 wird diese durch [IPS_GetKernelStartTime](https://www.symcon.de/de/llms/functions/program-information.md) ersetzt.
**Beispiel**
```php
// liefert z.B. 1204675012
echo IPS_GetUptime();
// liefert z.B. "2008.03.04 23:56:52"
echo date("Y.m.d H:i:s", IPS_GetUptime());
```
## IPS_GetVariableID
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-getvariableid/
`int IPS_GetVariableID(string $VariablenName)`
liefert die ID einer Variablen (veraltet)
**Parameter**
- `$VariablenName` (string): zu suchender VariablenName
**Rückgabewert** (int): ID der gefundenen Variable, sonst __FALSE__ und ein __Warning__
zu suchender VariablenName
**Beispiel**
```php
//Fehlermeldung mit @ unterdrücken
$VarID = @IPS_GetVariableID("Regenmenge");
if ($VarID === false)
echo "Variable nicht gefunden!";
else
echo "Die Variablen-ID lautet: ". $VarID;
```
## IPS_HasInstanceChildren
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-hasinstancechildren/
`bool IPS_HasInstanceChildren(bool $InstanzID)`
prüft, ob die Instanz mit untergeordneten Instanzen verbunden ist (veraltet)
**Parameter**
- `$InstanzID` (bool): ID der zu überprüfenden Instanz
**Rückgabewert** (bool): Der Rückgabewert ist __TRUE__, wenn der Instanz eine oder mehrere Instanzen untergeordnet sind. Sonst, __FALSE__.
ID der zu überprüfenden Instanz
**Beispiel**
```php
if(IPS_HasInstanceParent(12345))
{
echo "Hat eine hat untergeordnete Instanzen";
}
```
## IPS_HasInstanceParent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-hasinstanceparent/
`bool IPS_HasInstanceParent(int $InstanzID)`
prüft, ob die Instanz mit einer übergeordneten Instanz verbunden ist (veraltet)
**Parameter**
- `$InstanzID` (int): ID der zu überprüfenden Instanz
**Rückgabewert** (bool): Der Rückgabewert ist __TRUE__, wenn die Instanz eine übergeordnete Instanz besitzt. Sonst, __FALSE__.
ID der zu überprüfenden Instanz
**Beispiel**
```php
// Bis Version 2.5
if(IPS_HasInstanceParent(12345))
{
echo "Hat eine übergeordnete Instanz";
}
// Ab Version 2.6
if(IPS_GetInstance(12345)['ConnectionID'] > 0)
{
echo "Hat eine übergeordnete Instanz";
}
```
## IPS_IsPersistent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-ispersistent/
`bool IPS_IsPersistent(int $ObjektID)`
prüft, ob Objekt persistent ist (veraltet)
**Parameter**
- `$ObjektID` (int): zu prüfende ObjektID
**Rückgabewert** (bool): __TRUE__, wenn das Objekt gespeichert wird, sonst __FALSE__
zu prüfende ObjektID
**Beispiel**
```php
if (IPS_IsPersistent(34881))
echo "Das Objekt wird beim Beenden abgespeichert!";
```
## IPS_SetLinkChildID
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-setlinkchildid/
`bool IPS_SetLinkChildID(int $LinkID, int $VerknüpftesObjekt)`
_Benötigt Symcon >= 2.1_
setzt die Verknüpfung für den Link (veraltet)
**Parameter**
- `$LinkID` (int): ID des zu verändernden Links
- `$VerknüpftesObjekt` (int): ID des zu verknüpfenden Objekts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu verknüpfenden Objekts
**Beispiel**
```php
IPS_SetLinkChildID($LinkID, 12345); //Auf Objekt 12345 verweisen
```
## IPS_SetStatusVariableUseAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-setstatusvariableuseaction/
`bool IPS_SetStatusVariableUseAction(int $InstanzID, string $VariableIdent, bool $BenutzteAktion)`
setzt, ob die Standardaktion einer Status Variable genutzt werden soll (veraltet)
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$VariableIdent` (string): Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) abgerufen werden.
- `$BenutzteAktion` (bool): Gibt an, ob die Aktion in der Visualisierung genutzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gibt an, ob die Aktion in der Visualisierung genutzt werden soll.
**Beispiel**
```php
if(IPS_StatusVariableExists(12345, "StatusVariable"))
{
IPS_SetStatusVariableUseAction(12345, "StatusVariable", false); //Per WebFront nicht mehr schaltbar machen
}
// ab Version 2.6 Ersatzfunktion
$VariableIdent = "Statusvariable";
$InstanceID = 12345;
$UseAction = false;
$id = IPS_GetObjectIDByIdent($VariableIdent, $InstanceID);
if ($UseAction) {
IPS_SetVariableCustomAction($id, 0); // Standardaktion aktivieren
} else {
IPS_SetVariableCustomAction($id, 1); // Standardaktion deaktivieren
}
```
## IPS_StatusVariableExists
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/kompatibilitaetsfunktionen/ips-statusvariableexists/
`bool IPS_StatusVariableExists(int $InstanzID, string $VariableIdent)`
prüft, ob eine bestimmte Status Variable existiert (veraltet)
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$VariableIdent` (string): Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) geholt werden.
**Rückgabewert** (bool): Der Rückgabewert ist __TRUE__, wenn die Status Variable vorhanden ist, sonst __FALSE__
Status Variable Identifikator. Eine Auflistung kann über [IPS_GetStatusVariableIdents](https://www.symcon.de/de/llms/developer/compatibility-functions.md) geholt werden.
**Beispiel**
```php
if(IPS_StatusVariableExists(12345, "StatusVariable"))
{
echo IPS_GetStatusVariableID(12345, "StatusVariable");
}
// ab Version 2.6 Ersatzfunktion
$InstanceID = "StatusVariable";
$VariableIdent = 12345;
$result = !(@IPS_GetObjectIDByIdent($VariableIdent, $InstanceID) === false);
echo $result;
```
---
# Limitationen
> 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/limitationen/
Die nachfolgend beschriebenen Beschränkungen sind aus Gründen der Performance und Sicherheit des System erforderlich. Eine Veränderbarkeit dieser ist nicht geplant.
| Limitation | Beschreibung |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Maximale Anzahl der Objekte | 50000. Der Adressraum von 10000-59999 wird dabei genutzt. Je nach Lizenz/IP-Symcon Version kann dieser Wert geringer sein. |
| Maximale Größe einer String-Variable | Ab 1024kb wird ein Fehler erzeugt und der Inhalt nicht geschriebenen. Aus Performance- und Stabilitätsgründen sollten Daten über 8kb anderweitig ausgelagert werden. Die 1024kb Grenze dient nur als Hard-Limit, um katastrophale Auswirkungen zur Laufzeit durch fehlerhafte Skripte einzudämmen. |
| Maximale Größe des RegisterVariable Puffers | Eine Warnung wird ab 8kb Größe in das Log geschrieben. Es werden nur die letzten 64kb an Daten im Puffer behalten. Ältere Daten werden ohne weitere Warnung verworfen. |
| Maximale Größe des Cutter Puffers | Eine Warnung wird ab 8kb Größe in das Log geschrieben. Es werden nur die letzten 64kb an Daten im Puffer behalten. Ältere Daten werden ohne weitere Warnung verworfen. |
| Maximale Anzahl an PHP-Threads | Die Standardeinstellung von 50 PHP-Threads ist für fast alle Systeme völlig ausreichend. Das Minimum liegt bei 25 PHP-Threads. Wenn ein Wert kleiner als 25 gewählt wird, werden trotzdem 25 PHP-Threads erstellt. Sollten mehr PHP-Threads benötigt werden, so kann der Wert auf z.B. 100 erhöht werden. Viel höhere Werte sind in den wenigsten Fällen sinnvoll und konsumieren unnötig viel RAM. |
| Maximaler Speicher pro PHP-Thread | Die Standardeinstellung ist 32MB pro PHP-Thread. Maximal kann dieser Wert auf 64M pro Thread in der php.ini verändert werden. Konsultieren Sie dafür die PHP-Dokumentation. |
| Maximaler Speicher pro Buffers | Der Buffer besitzt ein Softlimt von 256kB und ein Hardlimit von 1024kB. Das heißt ab 256kB größe wirft IP-Symcon eine "Warning" in die Meldungen und die maximale Größe des Buffers beträgt 1024kB. Daten größer als 1024kB werden abgeschnitten. |
| Abfrage von Daten über AC_* Funktionen | Es werden maximal 10000 Zeilen zurückgegeben, unabhängig davon, ob das Limit höher gewählt wurde. Es wird keinerlei Warnung ausgegeben. Abfragen sollten entsprechend optimiert werden, so dass auf die aggregierten Daten zugegriffen werden kann. Das minimiert die Belastung der Datenbank und somit minimiert es auch Zugriffszeiten für die WebFront-Visualisierung der einzelnen Zugriffe. |
| Maximale Assoziationen pro Variablenprofil | Es sind maximal 128 (ab 5.0; vorher 32) Assoziationen pro Variablenprofil erlaubt. Der Hintergrund ist, dass jede Änderung an den Profilassoziationen an alle WebFronts übertragen werden muss, was bei sehr vielen Assoziationen einen hohen Overhead hat. Außerdem ist dieses Feature nicht für z.B. eine Playlisten-Auswahl konzipiert, da diese das Design und Layout des WebFronts negativ beeinflussen würde. |
| Maximale Anzahl gleichzeitiger RTSP Streams | Die Hardware des Symcon Servers und die Auflösung der Streams entscheiden, wie viele gleichzeitige Streams möglich sind. |
---
# Mirroring
> 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/mirroring/
_Benötigt Symcon >= 7.0_
> **Hinweis:** Mirroring ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden IP-Symcon Lizenz erworben werden kann. Für eine passende Demo-Version wenden Sie sich bitte an unseren [Support](https://www.symcon.de/de/kontakt/#Mirroring%20Erweiterung). Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/ips-enterprise-mirroring) erworben werden.
Ein System kann als Mirror eines anderen Server-Systems konfiguriert werden. In diesem Fall wird der Mirror regelmäßig vom Server aktualisiert und passt seine Konfiguration an die des Servers an. Sollte der Server ausfallen, so kann der Mirror verwendet werden und die Aufgaben des Servers übernehmen, wodurch die Verfügbarkeit des Gesamtsystems optimiert wird.
> **Hinweis:** Mirroring beinhaltet diverse Parameter, welche passend zum Anwendungsfall konfiguriert werden sollten. Damit die Inbetriebnahme dieser Erweiterung optimal erfolgt, empfehlen wir Kontakt zu unserem [Support](https://www.symcon.de/de/kontakt/#Mirroring%20Unterstützung) aufzunehmen, damit gemeinsam die optimale Konfiguration für den Anwendungsfall erarbeitet und umgesetzt werden kann.
Zur Verwendung von Mirroring muss beim Server der [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) aktiv sein. In der Kern Instanz "Replikation" können die initialen Einstellungen für das Mirroring vorgenommen werden. Diese werden anschließen in der Datei "replication.json" im gleichen Verzeichnis wie die "settings.json" - siehe [Installation](https://www.symcon.de/de/llms/getting-started.md) des entsprechenden Betriebssystems - angelegt. Änderungen nach dem initialen Aktivieren der Replikation können nur noch in dieser Datei vorgenommen werden, da ansonsten das restliche System ein 1:1 Mirror vom Haupt-System ist.
### Parameter der replication.json
| Parameter | Typ | Beschreibung |
| ------------------------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Active | Boolean | Mirroring ist aktiv, falls der Wert auf true gesetzt ist, ansonsten ist es inaktiv und das System agiert normal. |
| Mode | Integer | Betriebsmodus des gespiegelten Systems 0 - Parallel: Das System ist voll einsatzbereit und all seine Verbindungen sind aktiv. Somit kann das System direkt verwendet werden, falls der Server ausfällt. Dafür muss aber entweder ein Gateway die Verbindung von mehreren Geräten unterstützen oder ein eigenes Gateway vorhanden sein. Sollten das gespiegelte System verwendet werden, obwohl der Server noch läuft, so werden diese Änderungen bei der nächsten Spiegelung überschrieben und verfallen somit 1 - Standby: Das System ist im Standby und all seine Verbindungen sind inaktiv. Bei Ausfall des Servers muss daher das gespiegelte System einmal heruntergefahren werden, der Parameter Active auf false gesetzt werden und das System wieder hochgefahren werden. Dann werden die benötigten Verbindungen hergestellt und das gespiegelte System verwendet werden. |
| Host | String | Die URL unter welcher das Server-System erreichbar ist |
| Port | Integer | Der Port unter welchem das Server-System IP-Symcon bereitstellt |
| UseSSL | Boolean | Bei true wird die Verbindung zum Client via SSL verschlüsselt |
| VerifyPeer | Boolean | Bei true wird verifiziert, dass das SSL Zertifikat des Hosts korrekt ist (nur falls UseSSL ebenfalls true ist) |
| VerifyHost | Boolean | Bei true wird verifiziert, dass die Host URL aus dem SSL Zertifikat mit dem Host aus der Eigenschaft übereinstimmt (nur sichtbar falls Benutze SSL aktiv ist) |
| Username | String | Der Benutzername, also die Lizenzadresse, des Server-Systems |
| Password | String | Das Passwort für den Fernzugriff des Server-Systems |
| Timeout | Integer | Der Timeout bei Anfragen an den Server in Millisekunden. Benötigt eine Anfrage länger, wird die Verbindung als fehlerhaft markiert und keine Spiegelung durchgeführt |
| Synchronization | Object | Detaileinstellungen um Aspekte des Servers nicht zu spiegeln und dabei eigene Einstellungen beizubehalten |
### Parameter für Synchronization
| Parameter | Typ | Beschreibung |
| --------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ExcludeObjects | Array | Objekte, deren IDs in dieser Liste stehen, werden bei einer Spiegelung nicht aktualisiert und behalten die Konfiguration des gespiegelten Systems bei |
| ExcludeProfiles | Array | [Variablenprofile](https://www.symcon.de/de/llms/concepts.md), deren Namen in dieser Liste stehen, werden bei einer Spiegelung nicht aktualisiert und behalten die Konfiguration des gespiegelten Systems bei |
---
# SDK/Tools
> 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/
Das SDK dient dazu eigene Module zu entwickeln und diese über das "Module Control" einbinden zu können. Die so entwickelten Module können anderen Nutzern zur Verfügung gestellt werden.
### SDK
__Ab Version 3.0__
[SDK für Excel](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[SDK für Skins](https://www.symcon.de/de/llms/developer/sdk-tools.md)
__Ab Version 4.0__
[SDK für PHP](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)
### Tools
[Guid Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[Module Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[Module Validator](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[Network-Configuration-Tool](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[Recoverytool](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[Visual Studio Code](https://www.symcon.de/de/llms/developer/sdk-tools.md)
[KI-Agenten (llms.txt)](https://www.symcon.de/de/llms/developer/sdk-tools.md)
## KI-Agenten
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/ki-agenten/
Die komplette Dokumentation steht zusätzlich als Markdown zur Verfügung, das für KI-Agenten und Large Language Models (LLMs) optimiert ist, z.B. für Claude, ChatGPT, Cursor oder GitHub Copilot. Die Dateien werden bei jeder Aktualisierung der Webseite automatisch neu erzeugt und sind somit immer auf dem Stand dieser Dokumentation.
Im Gegensatz zur HTML-Seite oder dem PDF enthalten die Dateien nur den Inhalt ohne Layout. Dadurch benötigen sie deutlich weniger Tokens und können von KI-Agenten schneller verarbeitet werden.
### Aufbau
Die Dateien folgen dem [llms.txt](https://llmstxt.org) Standard:
| Datei | Beschreibung |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [llms.txt](https://www.symcon.de/de/llms.txt) | Index aller Dateien mit Kurzbeschreibung und ungefährer Größe in Tokens. Der Einstiegspunkt für KI-Agenten. |
| [llms/function-index.md](https://www.symcon.de/de/llms/function-index.md) | Alle Funktionen (Befehlsreferenz und Modulfunktionen) mit Signatur und Kurzbeschreibung, jeweils mit einem Link auf die Datei mit Parametern und Beispielen. |
| llms/modules/*.md | Eine Datei pro Modul, z.B. [enocean.md](https://www.symcon.de/de/llms/modules/enocean.md) oder [knx.md](https://www.symcon.de/de/llms/modules/knx.md), inklusive der Modulfunktionen. |
| llms/functions/*.md | Die Befehlsreferenz, eine Datei pro Gruppe, z.B. [management-variables.md](https://www.symcon.de/de/llms/functions/management-variables.md). |
| [llms-full.txt](https://www.symcon.de/de/llms-full.txt) | Die komplette Dokumentation in einer Datei, z.B. zum Hochladen in eine Wissensdatenbank. |
Die Dateinamen sind in allen Sprachen identisch. Die englische Version steht unter /en/llms.txt zur Verfügung.
### Verwendung
Die meisten KI-Agenten können die Dateien direkt abrufen. Es genügt, dem Agenten die Adresse des Index mitzuteilen, z.B. in der Datei CLAUDE.md oder AGENTS.md des eigenen Modul-Projekts:
```php
Die Symcon Dokumentation für KI-Agenten ist unter https://www.symcon.de/de/llms.txt verfügbar.
Für PHP-Funktionen zuerst https://www.symcon.de/de/llms/function-index.md laden.
```
Alternativ kann die Datei llms-full.txt als Wissensdatenbank in einem Projekt (z.B. Claude Projects oder NotebookLM) hochgeladen werden.
### Dateien
- Einstieg
- [Funktionsindex](https://www.symcon.de/de/llms/function-index.md)
- [Erste Schritte](https://www.symcon.de/de/llms/getting-started.md)
- [Systemvoraussetzungen](https://www.symcon.de/de/llms/getting-started/system-requirements.md)
- [Migrationen](https://www.symcon.de/de/llms/getting-started/migrationen.md)
- [Vorgehensweisen](https://www.symcon.de/de/llms/how-to.md)
- [Grundlagen](https://www.symcon.de/de/llms/concepts.md)
- [Automationen](https://www.symcon.de/de/llms/concepts/automations.md)
- Komponenten
- [Komponenten – Übersicht](https://www.symcon.de/de/llms/components/index.md)
- [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md)
- [Tray](https://www.symcon.de/de/llms/components/tray.md)
- [Dienst](https://www.symcon.de/de/llms/components/service.md)
- [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md)
- [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md)
- [WebFront Visualisierung](https://www.symcon.de/de/llms/components/webfront-visualization.md)
- [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md)
- [Icons](https://www.symcon.de/de/llms/components/icons.md)
- Befehlsreferenz
- [Befehlsreferenz – Übersicht](https://www.symcon.de/de/llms/functions/index.md)
- [Ablaufsteuerung](https://www.symcon.de/de/llms/functions/process-control.md)
- [Ereignisverwaltung](https://www.symcon.de/de/llms/functions/management-events.md)
- [Instanzenverwaltung](https://www.symcon.de/de/llms/functions/management-instances.md)
- [Kategorieverwaltung](https://www.symcon.de/de/llms/functions/management-categories.md)
- [Linkverwaltung](https://www.symcon.de/de/llms/functions/management-links.md)
- [Medienverwaltung](https://www.symcon.de/de/llms/functions/management-media.md)
- [Modulverwaltung](https://www.symcon.de/de/llms/functions/management-modules.md)
- [Objektverwaltung](https://www.symcon.de/de/llms/functions/management-objects.md)
- [Programminformationen](https://www.symcon.de/de/llms/functions/program-information.md)
- [Skriptverwaltung](https://www.symcon.de/de/llms/functions/management-scripts.md)
- [Variablenverwaltung](https://www.symcon.de/de/llms/functions/management-variables.md)
- [Variablenzugriff](https://www.symcon.de/de/llms/functions/access-variables.md)
- Entwicklerbereich
- [Entwicklerbereich – Übersicht](https://www.symcon.de/de/llms/developer/index.md)
- [Datenaustausch](https://www.symcon.de/de/llms/developer/data-exchange.md)
- [Download (Archiv)](https://www.symcon.de/de/llms/developer/download-archive.md)
- [Kompatibilitätsfunktionen](https://www.symcon.de/de/llms/developer/compatibility-functions.md)
- [Limitationen](https://www.symcon.de/de/llms/developer/limitations.md)
- [Mirroring](https://www.symcon.de/de/llms/developer/mirroring.md)
- [SDK/Tools](https://www.symcon.de/de/llms/developer/sdk-tools.md)
- [SDK (PHP)](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)
- [Konfigurationsformulare](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)
- [Module](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
- [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md)
- Modulreferenz
- [Modulreferenz – Übersicht](https://www.symcon.de/de/llms/modules/index.md)
- Modulreferenz: Geräte
- [1-Wire](https://www.symcon.de/de/llms/modules/1-wire.md)
- [ABL](https://www.symcon.de/de/llms/modules/abl.md)
- [Alfen](https://www.symcon.de/de/llms/modules/alfen.md)
- [ALLNET](https://www.symcon.de/de/llms/modules/allnet.md)
- [BACnet](https://www.symcon.de/de/llms/modules/bacnet.md)
- [Catan](https://www.symcon.de/de/llms/modules/catan.md)
- [digitalSTROM](https://www.symcon.de/de/llms/modules/digitalstrom.md)
- [DMX / ArtNet](https://www.symcon.de/de/llms/modules/dmx-artnet.md)
- [EgiGeoZone](https://www.symcon.de/de/llms/modules/egigeozone.md)
- [ekey](https://www.symcon.de/de/llms/modules/ekey.md)
- [ekey bionyx](https://www.symcon.de/de/llms/modules/ekeybionyx.md)
- [EnOcean](https://www.symcon.de/de/llms/modules/enocean.md)
- [FHZ1X00PC](https://www.symcon.de/de/llms/modules/fhz1x00pc.md)
- [FS10 Wetter](https://www.symcon.de/de/llms/modules/fs10-weather.md)
- [GARDENA smart system](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
- [Geofency](https://www.symcon.de/de/llms/modules/geofency.md)
- [Heating Control](https://www.symcon.de/de/llms/modules/heating-control.md)
- [Home Connect](https://www.symcon.de/de/llms/modules/home-connect.md)
- [HomeMatic](https://www.symcon.de/de/llms/modules/homematic.md)
- [Image Grabber](https://www.symcon.de/de/llms/modules/image-grabber.md)
- [IPS-868](https://www.symcon.de/de/llms/modules/ips-868.md)
- [IR Trans](https://www.symcon.de/de/llms/modules/irtrans.md)
- [KEBA](https://www.symcon.de/de/llms/modules/keba.md)
- [KNX](https://www.symcon.de/de/llms/modules/knx.md)
- [LCN](https://www.symcon.de/de/llms/modules/lcn.md)
- [LJQuick](https://www.symcon.de/de/llms/modules/ljquick.md)
- [Matter](https://www.symcon.de/de/llms/modules/matter.md)
- [M-Bus](https://www.symcon.de/de/llms/modules/mbus.md)
- [Mennekes](https://www.symcon.de/de/llms/modules/mennekes.md)
- [Modbus RTU/TCP](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md)
- [Möhlenhoff Alpha 2](https://www.symcon.de/de/llms/modules/moehlenhoff-alpha-2.md)
- [MQTT](https://www.symcon.de/de/llms/modules/mqtt.md)
- [NEA Smart](https://www.symcon.de/de/llms/modules/nea-smart.md)
- [OCPP](https://www.symcon.de/de/llms/modules/ocpp.md)
- [OPC UA](https://www.symcon.de/de/llms/modules/opc-ua.md)
- [SageGlass (BACnet)](https://www.symcon.de/de/llms/modules/sageglass-bacnet.md)
- [Shutter Control](https://www.symcon.de/de/llms/modules/shutter-control.md)
- [Siemens OZW](https://www.symcon.de/de/llms/modules/siemens-ozw.md)
- [SNMP](https://www.symcon.de/de/llms/modules/snmp.md)
- [Snom](https://www.symcon.de/de/llms/modules/snom.md)
- [SPS: Siemens, Vipa, Logo](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md)
- [SPS: Wago, Beckhoff, ABB](https://www.symcon.de/de/llms/modules/sps-wago-beckhoff-abb.md)
- [Sync Remote](https://www.symcon.de/de/llms/modules/sync-remote.md)
- [Technische Alternative](https://www.symcon.de/de/llms/modules/technische-alternative.md)
- [Türsprechanlagen](https://www.symcon.de/de/llms/modules/door-intercom.md)
- [Voice over IP](https://www.symcon.de/de/llms/modules/voip.md)
- [Weishaupt](https://www.symcon.de/de/llms/modules/weishaupt.md)
- [WinLIRC](https://www.symcon.de/de/llms/modules/winlirc.md)
- [Wireless M-Bus](https://www.symcon.de/de/llms/modules/wireless-m-bus.md)
- [WMRS200](https://www.symcon.de/de/llms/modules/wmrs200.md)
- [W&T](https://www.symcon.de/de/llms/modules/wut.md)
- [XBee](https://www.symcon.de/de/llms/modules/xbee.md)
- [xComfort](https://www.symcon.de/de/llms/modules/xcomfort.md)
- [Z-Wave](https://www.symcon.de/de/llms/modules/z-wave.md)
- [Zevvy](https://www.symcon.de/de/llms/modules/zevvy.md)
- Modulreferenz: Logiken
- [Aktivliste](https://www.symcon.de/de/llms/modules/active-list.md)
- [Anwesenheits-Simulation](https://www.symcon.de/de/llms/modules/presence-simulation.md)
- [Bild-Archiv](https://www.symcon.de/de/llms/modules/image-archive.md)
- [Countdown](https://www.symcon.de/de/llms/modules/countdown.md)
- [CSV ZIP Export](https://www.symcon.de/de/llms/modules/csv-zip-export.md)
- [Dummy Modul](https://www.symcon.de/de/llms/modules/dummy-module.md)
- [Eieruhr](https://www.symcon.de/de/llms/modules/egg-timer.md)
- [Gruppensteuerung](https://www.symcon.de/de/llms/modules/group-control.md)
- [JSON Decoder](https://www.symcon.de/de/llms/modules/json-decoder.md)
- [JSON Exporter](https://www.symcon.de/de/llms/modules/json-exporter.md)
- [Logik Gatter](https://www.symcon.de/de/llms/modules/logic-gate.md)
- [Rechenmodule](https://www.symcon.de/de/llms/modules/computation-module.md)
- [RGBMultiplexer](https://www.symcon.de/de/llms/modules/rgbmultiplexer.md)
- [Schleppzeiger](https://www.symcon.de/de/llms/modules/dragpointer.md)
- [Spielesammlung](https://www.symcon.de/de/llms/modules/game-collection.md)
- [Szenensteuerung](https://www.symcon.de/de/llms/modules/scene-control.md)
- [Taupunkt berechnen](https://www.symcon.de/de/llms/modules/dew-point-temperature-calculation.md)
- [Treppenhauslichtsteuerung](https://www.symcon.de/de/llms/modules/staircase-light-controls.md)
- [Umbennener](https://www.symcon.de/de/llms/modules/renamer.md)
- [Unwetterzentrale](https://www.symcon.de/de/llms/modules/rain-central.md)
- [VariablenVergleich](https://www.symcon.de/de/llms/modules/variable-comparison.md)
- [Virtuelle Geräte](https://www.symcon.de/de/llms/modules/virtuelle-devices.md)
- [Zufällige Beleuchtung](https://www.symcon.de/de/llms/modules/random-lighting.md)
- Modulreferenz: Energie
- [Arbeitszahl](https://www.symcon.de/de/llms/modules/work-efficiency.md)
- [Betriebsstundenzähler](https://www.symcon.de/de/llms/modules/operating-hours-counter.md)
- [Energie Dashboard](https://www.symcon.de/de/llms/modules/energy-dashboard.md)
- [Energie Manager](https://www.symcon.de/de/llms/modules/energy-manager.md)
- [Energieverteilung](https://www.symcon.de/de/llms/modules/energy-distribution.md)
- [Energiezähler](https://www.symcon.de/de/llms/modules/energy-counter.md)
- [Stromabrechnungsmodul](https://www.symcon.de/de/llms/modules/power-billing-module.md)
- [Strompreis](https://www.symcon.de/de/llms/modules/power-price.md)
- [Verbrauch in Kategorie](https://www.symcon.de/de/llms/modules/consumption-per-category.md)
- [Verbrauch in Zeitspanne](https://www.symcon.de/de/llms/modules/consumption-within-timespan.md)
- [Verbrauchsverhalten](https://www.symcon.de/de/llms/modules/consumption-behaviour.md)
- [VirtuelleMessstelle](https://www.symcon.de/de/llms/modules/calculated-counter.md)
- [Virtueller Zähler](https://www.symcon.de/de/llms/modules/virtual-counter.md)
- [Zählerstand (Tag)](https://www.symcon.de/de/llms/modules/reading-day.md)
- [Zählerüberlauf](https://www.symcon.de/de/llms/modules/meter-overflow.md)
- Modulreferenz: Visualisierungen
- [Kachel Visualisierung](https://www.symcon.de/de/llms/modules/tile-visualization.md)
- [WebFront Visualisierung](https://www.symcon.de/de/llms/modules/webfront-visualization.md)
- Modulreferenz: Sprachassistenten
- [Amazon Alexa](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
- [Google Assistant](https://www.symcon.de/de/llms/modules/google-assistant.md)
- Modulreferenz: Benachrichtigungen
- [Alarmierung](https://www.symcon.de/de/llms/modules/alerting.md)
- [Benachrichtigung](https://www.symcon.de/de/llms/modules/notification.md)
- [Durchsage](https://www.symcon.de/de/llms/modules/announcement.md)
- [Dynamische E-Mail](https://www.symcon.de/de/llms/modules/dynamic-mail.md)
- [FertigMelder](https://www.symcon.de/de/llms/modules/done-notifier.md)
- [IMAP](https://www.symcon.de/de/llms/modules/imap.md)
- [MediaPlayer](https://www.symcon.de/de/llms/modules/mediaplayer.md)
- [POP3](https://www.symcon.de/de/llms/modules/pop3.md)
- [Popup Modul](https://www.symcon.de/de/llms/modules/popup-module.md)
- [SMS](https://www.symcon.de/de/llms/modules/sms.md)
- [SMTP](https://www.symcon.de/de/llms/modules/smtp.md)
- [Spotify](https://www.symcon.de/de/llms/modules/spotify.md)
- [Störungsmanager](https://www.symcon.de/de/llms/modules/fault-manager.md)
- [SymconReport](https://www.symcon.de/de/llms/modules/symconreport.md)
- [Telefonansage](https://www.symcon.de/de/llms/modules/phone-announcement.md)
- [Telefonkette](https://www.symcon.de/de/llms/modules/phone-chain.md)
- [TelegramBot](https://www.symcon.de/de/llms/modules/telegrambot.md)
- [Text to Speech](https://www.symcon.de/de/llms/modules/text-to-speech.md)
- [TTSAWSPolly](https://www.symcon.de/de/llms/modules/ttsawspolly.md)
- [VerbrauchsAlarm](https://www.symcon.de/de/llms/modules/consumption-alert.md)
- [Wasser-Alarm](https://www.symcon.de/de/llms/modules/water-alert.md)
- [Watchdog](https://www.symcon.de/de/llms/modules/watchdog.md)
- Modulreferenz: Kern Instanzen
- [Archive Control](https://www.symcon.de/de/llms/modules/archive-control.md)
- [Berechtigungssteuerung](https://www.symcon.de/de/llms/modules/permission-control.md)
- [Calendar Control](https://www.symcon.de/de/llms/modules/calendar-control.md)
- [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md)
- [Cutter](https://www.symcon.de/de/llms/modules/cutter.md)
- [DNS-SD Control](https://www.symcon.de/de/llms/modules/dns-sd-control.md)
- [Event Control](https://www.symcon.de/de/llms/modules/event-control.md)
- [Location Control](https://www.symcon.de/de/llms/modules/location-control.md)
- [Module Control](https://www.symcon.de/de/llms/modules/module-control.md)
- [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md)
- [Presence Control](https://www.symcon.de/de/llms/modules/presence-control.md)
- [RegisterVariable](https://www.symcon.de/de/llms/modules/registervariable.md)
- [Skin Control](https://www.symcon.de/de/llms/modules/skin-control.md)
- [SSDP Control](https://www.symcon.de/de/llms/modules/ssdp-control.md)
- [System Informationen](https://www.symcon.de/de/llms/modules/system-information.md)
- [Tailscale VPN](https://www.symcon.de/de/llms/modules/tailscale-vpn.md)
- [TextParser](https://www.symcon.de/de/llms/modules/textparser.md)
- [Translation Control](https://www.symcon.de/de/llms/modules/translation-control.md)
- [Util Control](https://www.symcon.de/de/llms/modules/util-control.md)
- [WebHook Control](https://www.symcon.de/de/llms/modules/webhook-control.md)
- [WebServer](https://www.symcon.de/de/llms/modules/webserver.md)
- Modulreferenz: I/O Instanzen
- [Client Socket](https://www.symcon.de/de/llms/modules/clientsocket.md)
- [HID](https://www.symcon.de/de/llms/modules/hid.md)
- [HTTP Client](https://www.symcon.de/de/llms/modules/httpclient.md)
- [Multicast Socket](https://www.symcon.de/de/llms/modules/multicastsocket.md)
- [Serial Port](https://www.symcon.de/de/llms/modules/serialport.md)
- [Server Sent Event Client](https://www.symcon.de/de/llms/modules/serversenteventclient.md)
- [Server Socket](https://www.symcon.de/de/llms/modules/serversocket.md)
- [UDP Socket](https://www.symcon.de/de/llms/modules/udpsocket.md)
- [Virtual I/O](https://www.symcon.de/de/llms/modules/virtualio.md)
- [WebSocket Client](https://www.symcon.de/de/llms/modules/websocketclient.md)
- Modulreferenz: Datensicherung
- [Backup](https://www.symcon.de/de/llms/modules/backup.md)
- Modulreferenz: Legacy
- [RRDTool](https://www.symcon.de/de/llms/modules/rrdtool.md)
- [Shutter Control (legacy)](https://www.symcon.de/de/llms/modules/shutter-control-legacy.md)
- [USBMapper](https://www.symcon.de/de/llms/modules/usbmapper.md)
- [Web Graph](https://www.symcon.de/de/llms/modules/web-graph.md)
- [Wunderground Weather](https://www.symcon.de/de/llms/modules/wunderground-weather.md)
## SDK (Excel)
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-excel/
_Benötigt Symcon >= 3.0_
### Beschreibung
Ab IP-Symcon 3.0 unterstützt IP-Symcon die JSON-RPC Schnittstelle und somit kann die Datenbank einfach in Microsoft Excel eingelesen werden.
### Voraussetzungen
IP-Symcon 3.0 oder höher
Microsoft Excel oder Vergleichbares mit Visual Basic for Applications Unterstützung
"Visual Basic for Applications" Kenntnisse (optional)
[Download der vorbereiteten Excel-Datei](https://www.symcon.de/assets/files/service/SDK-Excel.zip)
### Einrichten in Microsoft Excel
Die heruntergeladene Datei muss entpackt und in Excel geöffnet werden.
#### Erstmaliges Öffnen der Datei
Bei dem ersten Öffnen der Datei erscheinen zwei Warnungen, welche durchgeklickt und erlaubt werden müssen.
Erste Warnung:

Wenn auf den Schriftzug der Meldung geklickt wird, muss "Trotzdem bearbeiten" angewählt werden. Dies ist eine Standard Sicherheitsmaßnahme, da die Datei Skripte enthält.
Im Anschluss erscheint entweder ein Popup oder eine gelbe Sicherheitswarnung, welche beide vor den enthaltenen Makros warnen. Diese müssen für die Funktionalität aktiviert werden. Somit Entweder im Popup "Makros aktivieren" oder in der gelben Meldung "Inhalt aktivieren" anklicken.

#### Zugriff konfigurieren
In dem Reiter "Konfiguration" kann die Verbindung zur IPS-Datenbank getestet werden.
Es ist drauf zu achten, dass der [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) aktiviert ist.

In der Konfigurationstabelle können Server, Benutzername, Fernzugriff-Kennwort angegeben werden.
Bei Server können vollständige URLs oder IP-Adressen angegeben werden.
Bei IP-Adressen ist darauf zu achten, dass diese in dem Format "http://192.168.1.1:3777" angegeben wird.
Das Fernzugriff-Kennwort und der Benutzername ist nur nötig, wenn nicht lokal (127.0.0.1) auf die Daten zugegriffen werden soll.
Über "Test Connection" wird die Verbindung aufgebaut und die InstanzID des Archivs wird ausgelesen.
#### Rohdaten auslesen
Im Reiter "Rohdaten" können die Rohdaten einer Varaible ausgelesen werden. Diese werden dann Zeilenweise mit Datum und Wert ausgegeben.

Eingetragen werden muss die VariablenID. Start- und Endzeit können 0 sein und setzten damit keine Grenzen. Limit setzt die maximale Anzahl an Datensätze, die ausgelesen werden sollen. Systembedingt gibt es allerdings ein Limit von 10000 Datensätzen.
Über "Fetch Data" werden die Daten eingelesen und in die Tabelle eingetragen. Der aktuellste Datensatz erscheint zuerst.
#### Aggregation auslesen
Der dritte Reiter beinhaltet die "Aggregation". Auch werden wieder die VariablenID, Start-/Endzeit und das Limit benötigt.
Zusätzlich kann die Aggregation gewählt werden. Mit den Werten 0-6 kann zwischen minutengenauer bis zu jährlicher Aggregation gewählt werden.

Über "Fetch Data" werden die Daten eingelesen und in die Tabelle eingetragen. Es wird ein Average, sowie Minima und Maxima innerhalb eine Aggregation ausgegeben.
### Visual Basic for Applications und die Konfiguration
Um die Skripte und Makros, welche das Auslesen ermöglichen, zu verwalten oder ändern, sollten die Entwicklertools in der Schnellleiste aktiviert werden.
Dies kann einfach via "Rechtsklick->Datei->Menüband anpassen" ausgewählt werden. Dort muss nur das Menü "Entwicklertools" aktiviert werden.

Einmal aktiviert findet man unter diesem Menüpunkt den Button "Visual Basic" mit dem man in den Entwicklerbereich kommt.
Dies sieht wiefolgt aus:

Hier können die benötigten Skripte angepasst werden und genutzt werden um die Daten aus IP-Symcon weiterzuverarbeiten.
Auch befindet sich in diesen Skripten die Logik zum Verbindungsaufbau zu IP-Symcon, sowie die dafür benötigte JSON-RPC Schnittstelle.
## SDK (Skins) (veraltet)
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-skins/
_Benötigt Symcon >= 3.0_
> **Achtung:** Skins sind nur für das WebFront verfügbar. Seit Version 7.0 gibt es die [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md), deren [Design](https://www.symcon.de/de/llms/components/tile-visualization.md) direkt in der Visualisierung für Web und Apps gleichermaßen verändert werden kann.
### Beschreibung
Ab der Version 3.0 können eigene Skins erstellt werden.
Das Erstellen und Austauschen von Icons ist schnell verwirklicht, sollen allerdings ganze Änderungen am Style verwirklicht werden, sind zusätzlich CSS Kenntnisse nötig.
> **Hinweis:** Dies funktioniert nur für das WebFront. Sollte ein Skin oder Anpassung der mobilen Apps gewünscht sein, kann dies über das Enterprise Programm verwirklicht werden.
> Weitere Informationen können unter [Produkte für Unternehmen](https://www.symcon.de/de/produkt/unternehmen/) gefunden und über Direktkontakt ein [individuelles Branding](https://www.symcon.de/de/kontakt/#Individuelles%20Branding) angefragt werden
### Voraussetzungen
IP-Symcon 3.0 oder höher
CSS Kenntnisse (sofern mehr als die Icons verändert werden sollen)
[Beispiel Skin](https://codeload.github.com/symcon/SkinTemplate/zip/refs/heads/master) herunterladen um Grundstruktur zu haben (empfohlen)
### Ordnerstruktur

```php
Skinname
|
- icons (optional)
| |
| - Aircraft.png
| |
| - Bird.png
|
- img (optional)
| |
| - Background.png
|
- font (optional)
| |
| - WebFont.ttf
|
- skin.json (wird generiert)
|
- webfront.css (benötigt, wenn auch leer)
|
- icons.css (wird generiert)
|
- README.md (optional)
```
### Icons-Ordner
Icons beinhaltet alle Icons. Sollten gleichnamige Standard-Icons vorhanden sein, werden die Custom-Icons bevorzugt.
* Enthält alle Icons im PNG Format und Größe 32x32.
* Namen der Icons dürfen nur aus Buchstabe, Zahlen, Minus (-) und Unterstrich (_) bestehen. Leerzeichen, Umlaute und Sonderzeichen sind nicht erlaubt.
* Die Icons müssen alle mit Großbuchstaben beginnen (z.B. Arrow.png, Right.png)
* Bei Wortverkettungen ist es empfohlen, dass diese auch mit einem großen Buchstaben geschrieben werden (z.B. ArrowRight.png). Dies dient der besseren Lesbarkeit und der Konsistenz zu den IP-Symcon Icons.
* Wenn ein Icon den selben Namen hat wie eines der IP-Symcon Icons, dann wird im WebFront das Custom-Icon bevorzugt. Die Groß-/Kleinschreibung ist zu beachten. (Diese Funktion ist eine elegante Art ein fremdes WebFront ohne viel Aufwand mit einem Skin auszurüsten.)
### Image-Ordner
Img beinhaltet zusätzliche Grafiken für z.B. mögliche Hintergründe.
* Enthält weitere Bilder für z.B. spezielle Hintergründe
### Font-Ordner
Beinhaltet benötigte Fonts für den Skin.
* Enthält weitere WebFonts
* Die CSS-Elemente der WebFont sollen in der webfront.css hinzugefügt werden
### Einzeldateien
Dateien welche im Hauptordner liegen.
#### skin.json
* Meta-Datei, die automatisch vom Skin-Builder erstellt wird. Die Felder Author, Version, URL, GIT und Compatible dürfen nach dem Erstellen verändert werden. URL sollte dabei die Adresse zum Skin-Thema im Forum sein. GIT sollte die Adresse zum GitHub-Repository sein, damit das Skin-Control entsprechend Updates herunterladen kann. Das Icons Array wird automatisch erstellt und dient dem WebFront Editor als Hilfsmittel, um die Custom-Icons auswählbar zu machen. Compatible muss den Wert 1 besitzen. Dieser wird strikt überprüft, um bei Änderungen am WebFront, die den Skins inkompatibel machen, diesen deaktivieren zu können.
#### webfront.css
* CSS-Datei, die Änderungen am WebFront CSS-Style enthält. Muss vorhanden sein. Kann auch leer sein.
* CSS-Änderungen müssen den o.g. Regeln entsprechen.
#### icons.css
* CSS-Datei, die die Links auf die benutzerdefinierten Icons enthält.
* Wird automatisch vom Skin-Builder generiert und sollte nicht verändert werden.
#### README.md
Readme welche von GitHub automatisch im Browser in der Repository Übersicht angezeigt wird. Kann zur Dokumentation genutzt werden.
### Skin Builder
* Der Skin-Manager wird mit http//host:port/skins/ aufgerufen. (Beispiel: http://localhost:3777/skins/)
* Sobald ein Skin ausgewählt wurde, werden die aktuell in der CSS-/Meta-Datei vorhandenen Icons angezeigt.
* Wenn neue Icons hinzugefügt/entfernt wurden, muss ein "Build Skin!" ausgeführt werden, damit die icons.css/skin.json entsprechend neu generiert werden. Bei Änderungen an Icons selbst oder der webfront.css ist keine Aktion erforderlich. Evtl. muss der Browsercache gelöscht werden, damit Änderungen sichtbar werden.
> **Hinweis:** Bis Version 4.4 war der Skin-Manager unter http//host:port/user/skins/ zu finden. (Beispiel: http://localhost:3777/user/skins/)
### Skins bereitstellen
* Skins können bei GitHub hochgeladen werden.
* Der GitHub Repository-Name sollte dem Namen des Skins entsprechen.
* Im Repository sollten sich nur die notwendigen Dateien befinden wie icons.css, skin.json, webfront.css und optionale Ordner wie icons, font oder img. Eine README.md und eine LICENSE Datei werden zusätzlich empfohlen. Die Dateien dürfen nicht in einem zusätzlicher Unterordner verschachtelt sein, da ansonsten der Installer nicht korrekt arbeitet.
* Bei der Veröffentlichung muss die Größe (Anzahl in kB/mB), die der Skin zusätzlich beim Laden braucht, angegeben werden. (Diese wird nach dem Build-Prozess angezeigt)
### Skins installieren
Dies funktioniert via [Skin-Control](https://www.symcon.de/de/llms/modules/skin-control.md) und ist dort beschrieben.
### Skins auswählen
Im [WebFront](https://www.symcon.de/de/llms/components/webfront-visualization.md) Konfigurator gibt es ein Feld "Skin" unter dem Reiter [Darstellung](https://www.symcon.de/de/llms/components/webfront-visualization.md), in dem der Skin ausgewählt werden kann.
## Tools
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/
### Network-Configuration-Tool
Mit dem Network-Configuration-Tool können alle IPS-Gateways im Netzwerk gefunden werden.
Eine Anleitung zur Nutzung kann [HIER](https://www.symcon.de/assets/files/service/NetworkConfigurationTool.pdf) gefunden werden.
[Zum Download](https://support.symcon.de/lan-gct)
### Recoverytool
Das Recoverytool kann ein Image auf die SymBox schreiben.
Eine Anleitung zur Nutzung kann [HIER](https://www.symcon.de/assets/files/product/symbox.pdf) unter dem Punkt "5.2. Wiederherstellung mithilfe des Recovery-Tools" gefunden werden.
[Zum Download](https://www.symcon.de/de/downloads/#symbox)
### Modul Entwicklung
Folgende Tools sind hilfreich bei der Entwicklung von Modulen für den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) und helfen um diese erfolgreich [einzureichen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md).
### GUID Generator
Der [GUID Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md) generiert eine GUID im richtigen Format für das Modul.
### Modul Generator
Der [Modul Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md) ist ein Wizard welcher bei dem anlegen der Grundstruktur für ein Modul hilft und alle grundlegenden Einrichtungen für ein funktionierenden Datenfluss einrichtet.
### Modul Validator
Der [Modul Validator](https://www.symcon.de/de/llms/developer/sdk-tools.md) prüft die entwickelten Dateien auf eine korrekte Syntax und ob alle benötigten Informationen enthalten sind.
### Externe IDEs
Externe IDEs können Funktionsdeklarationen einfügen und anzeigen.
#### Visual Studio Code
Eine Anleitung zur Generierung und Nutzung in Visual Studio Code kann [HIER](https://www.symcon.de/de/llms/developer/sdk-tools.md) gefunden werden.
## GUID Generator
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/guid-generator/
_Interaktives Werkzeug, nur auf der Webseite verfügbar: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/guid-generator/_
## Modul Generator
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/module-generator/
> **Hinweis:** Zur Verwendung in Visual Studio Code wird die Verwendung der Erweiterung Symcon Modul Helfer von pitti empfohlen anstatt dieses Tool zu verwenden. Mehr Informationen dazu sind [hier](https://community.symcon.de/t/symcon-modul-helfer-eine-vs-code-extension-fuer-modul-entwickler-ehem-forminator/141324) zu finden.
_Interaktives Werkzeug, nur auf der Webseite verfügbar: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/module-generator/_
## Modul Validator
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/module-validator/
## Visual Studio Code
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/tools/visual-studio-code/
Für VisualStudioCode gibt es einige nützliche Extensions für die Modulentwicklung.
### Extension für IP-Symcon installieren
In dieser Extension ist eine Funktionsliste erstellt worden, um diese im Quellcode anzuzeigen.
#### Marketplace
Diesen [Link zum Marketplace](https://marketplace.visualstudio.com/items?itemName=symcongmbh.vscode-symcon-stubs) aufrufen und auf "Install" klicken.
#### Extensionbrowser in VSC
* "Extensions" aufrufen
* Nach "Symcon" suchen
* Die "Extension for IP-Symcon" auswählen und durch klick auf "Install" installieren
* Im Extensionsbereich sollte nun unter "Installed" -> "Extension for IP-Symcon" erscheinen

### PHP herunterladen
Für die Extensions "CS Fixer" und "PHPUnit" wird PHP gebraucht.
Hier ist ein [Link zum Download](https://www.php.net/downloads.php) von PHP. PHP 8 oder höher wird empfohlen.
* Mit einem Klick auf das Zahnrad (Manage) "Settings" aufrufen.
* Hier unter dem Punkt "Extensions" den Punkt "PHP" auswählen.
* Dort gibt es den Punkt "PHP > Validate: Executable Path" bei dem die "settings.json" aufgerufen werden kann.
* Hinter "php.validate.executablePath" wird nun der Pfad zur php.exe angegeben.
Die "\" müssen mit einem zweiten "\" maskiert werden.
```php
"php.validate.executablePath": "Path\\To\\php.exe"
```
### CS Fixer installieren
Benötigt werden:
* Die PHAR-Datei, welche unter [diesem Link](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) heruntergeladen werden kann. Die Version 3 wird mit PHP 8 Unterstützt.
* Ein .style-Ordner. Empfohlen wird dieses [Repository](https://github.com/symcon/StylePHP) als Submodul im eigenen Repository einzubinden
* Die Extension um cs-fixer in Visual Studio Code zu nutzen, welche im [Marketplace](https://marketplace.visualstudio.com/items?itemName=junstyle.php-cs-fixer) heruntergeladen oder nachfolgend direkt in Visual Studio Code eingebunden werden kann
#### Extensionbrowser in VSC
* "Extensions" aufrufen
* Nach "php cs fixer" suchen
* Den "php cs fixer" von junstyle auswählen und durch klick auf "Install" installieren
* Im Extensionsbereich sollte nun unter "Installed" -> "php cs fixer" erscheinen
#### CS Fixer konfigurieren
* Mit einem Klick auf das Zahnrad (Manage) "Settings" aufrufen
* Unter dem Punkt "Extensions" den Punkt "PHP CS Fixer" auswählen
* Den Punkt "Allow Risky" setzt man auf true
* Unter dem Punkt "PHP-cs-fixer: Executable Path" wird der Pfad zur "php-cs-fixer.phar" angegeben.
Alternativ können diese Einstellungen in die "settings.json" eingeben werden.
```php
"php-cs-fixer.executablePath": "Path\\To\\php-cs-fixer-v3.phar",
"php-cs-fixer.allowRisky": true
```
#### CS Fixer nutzen
Wenn alles korrekt eingebunden und eingerichtet ist, kann man die Extention nutzen. Entweder in dem man in der zu formatierenden Datei rechtsklickt und Format Document auswählt oder den Shortcut "Shift+Alt+F" drückt.
Soll das ganze Projekt den Stil übernehmen kann über die Comando-Zeile der folgende Befehl eingegeben werden.
```php
php "Path\\To\\php-cs-fixer-v3.phar" fix --config=.style/.php_cs -v --allow-risky=yes
```
### PHP Unit installieren
Benötigt werden:
* Die PHAR-Datei von PHPUnit, welche unter [diesem Link](https://phpunit.de/getting-started/phpunit-9.html) heruntergeladen werden kann
* Ein Test, welcher ausgeführt werden soll
* Die Extension um PHPUnit in Visual Studio zu nutzen, welche im [Marketplace](https://marketplace.visualstudio.com/items?itemName=recca0120.vscode-phpunit) heruntergeladen oder nachfolgend direkt in Visual Studio Code eingebunden werden kann
#### Extensionbrowser in VSC
* "Extensions" aufrufen
* Nach "PHPUnit" suchen
* Den "PHPUnit Test Explorer" auswählen und durch klick auf "Install" installieren
* Im Extensionsbereich sollte nun unter "Installed" -> "PHPUnit Test Explorer" und "Test Explorer UI" erscheinen
#### PHP Unit konfigurieren
* Mit einem Klick auf das Zahnrad (Manage) "Settings" aufrufen
* Unter dem Punkt "Extensions" den Punkt "PHPUnit configuration" auswählen
* Bei dem Punkt "Phpunit: Files" wird "{test,tests}/**/*Test.php" eingegeben
* Unter dem Punkt "Phpunit: PHP" wird der Pfad zur PHP.exe eingegeben.
* Bei dem Punkt "Phpunit: Phpunit" wird der Pfad zur Phpunit Phar Datei angegeben
* Desweiteren sollte unter "Phpunit: Args" ["--configuration", "tests/phpunit.xml"] eingegeben werden.
Alternativ können diese Einstellungen in die "settings.json" eingeben werden.
```php
"phpunit.phpunit": "Path\\To\\phpunit-9.5.10.phar",
"phpunit.args": [
"--configuration", "tests/phpunit.xml"
],
"phpunit.php": "Path\\To\\php.exe",
"phpunit.files": "{test,tests}/**/*Test.php",
```
Jetzt kann PHPUnit genutzt werden. Es können allerdings noch Fehler auftauchen. So kann der folgende Fehler auftauchen:
```php
"PHPUnit requires the "mbstring" extension."
```
* Zum Ordner in dem die "php.exe" liegt navigieren
* Die Datei "php.ini" suchen in diesem Ordner suchen. Sollte diese nicht vorhanden sein nach "php.ini-development" suchen und diese umbennenen
* Die Datei "php.ini" in einem beliebigen Text-Editor öffnen
* Im Abschnitt "Dynamic Extensions" nach "mbstring" suchen
* Vor "extension=mbstring" das Semikolon entfernen
* Datei speichern
* Visual Studio Code schließen und wieder öffnen
Nun kann es zu einem weiteren Fehler kommen:
```php
PHP Warning: PHP Startup: Unable to load dynamic library 'mbstring'
(tried: C:\php\ext\mbstring (Das angegebene Modul wurde nicht gefunden.), )
C:\php\ext\php_mbstring.dll (Das angegebene Modul wurde nicht gefunden.) in
Unknown on line 0
```
* Zum Ordner in dem die "php.exe" liegt navigieren
* Die Datei "php.ini" suchen in diesem Ordner suchen. Sollte diese nicht vorhanden sein nach "php.ini-development" suchen und diese umbennenen
* Die Datei "php.ini" in einem beliebigen Text-Editor öffnen
* Im Abschnitt "Paths and Directories" nach "extension_dir" suchen
* Vor "extension_dir = "ext"", welches unter "On windows:" steht, das Semikolon entfernen
* Datei speichern
* Visual Studio Code schließen und wieder öffnen
#### PHPUnit nutzen
Nun sollte über der Funktion mit dem Test zwei Schaltflächen angezeigt werden. Mit einem Klick auf Run wird der Test gestartet.

---
# SDK (PHP)
> 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/
_Benötigt Symcon >= 4.0_
### Beschreibung
Ab der Version 4.0 können Module mithilfe von PHP erstellt werden.
### Voraussetzungen
PHP Kenntnisse
IP-Symcon 4.0 oder höher
### Video-Tutorials
Für viele Themen rund um das SDK stehen [Video-Tutorials](https://www.symcon.de/de/llms/getting-started.md) auf unserem YouTube-Kanal bereit.
### Einbindung in IP-Symcon
Die Datenstruktur kann [hier](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) nachgesehen werden.
Der erste Schritt wäre das Erstellen der [Bibliothek](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) , sowie das Einrichten aller benötigen Dateien.
Diese können ebenfalls der Strukturübersicht entnommen werden.
Anschließend können die [Module](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) entwickelt werden.
> **Hinweis:** Um ein Modul in der lokalen Entwicklung neuzuladen ist jeweils ein kurzer Neustart des Dienstes nötig. Dieser Schritt ist bei einem Update via Repository nicht nötig.
Nach vollendeter Entwicklung wird es empfohlen, dass die Bibliothek samt Modul/-en in einem Repository zusammengefasst wird.
Beispielsweise wie in diesem: [Rechenmodule](https://github.com/symcon/Rechenmodule)
Anschließend können die Module, direkt über die Repository-URL, im [Module Control](https://www.symcon.de/de/llms/modules/module-control.md) hinzugefügt werden. Auch ist es mögich dieses Modul für den [Module-Store einzureichen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md).

## Aktionen
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/aktionen/
_Benötigt Symcon >= 6.0_
### Beschreibung
Es ist möglich eigene Aktionen als Teil der [Bibliothek](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) zu definieren. Diese können nach der Installation der Bibliothek wie unter [Aktionen](https://www.symcon.de/de/llms/concepts/automations.md) beschrieben verwendet werden.
Werden Aktionen abgespeichert oder konfiguriert resultiert dies in drei Werten: Dem Aktionsziel, der AktionsID und den Aktionsparametern. Das Aktionsziel stellt hierbei das Zielobjekt dar, beispielsweise im Falle eines Ereignisses das darunterliegende Objekt. Die AktionsID identifiziert eindeutig die ausgewählte Aktion. Die Parameter sind eine Menge an Werten, welche individuell zur Aktion gehören. Hierdurch kann ein Benutzer eine Aktion weiter parametrisieren und beispielsweise angeben auf welchen Wert eine Variable geschaltet werden soll.
### Struktur
Für jede Aktion, welche Teil der Bibliothek sein soll, muss eine JSON-Datei im Unterordner "actions" der Bibliothek erstellt werden. Diese JSON-Datei muss ein JSON-Objekt beinhalten, welches der folgenden Struktur folgt.
| Parameter | Datentyp | Beschreibung |
| ----------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | string | Einmalige GUID zur eindeutigen Identifikation der Aktion. [GUID Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md) |
| caption | string | Sichtbare Bezeichnung der Aktion |
| form | array/string | Dieses Feld kann ein Array von Konfigurationselementen beinhalten wie in den Bereichen "elements" oder "actions" der [Konfigurationsformulare](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Alternativ kann das Formular durch ein PHP-Skript dynamisch generiert werden. In diesem Fall enthält dieses Feld den entsprechenden Code, welcher das Konfigurationsformular als Objekt zurückgibt. Der PHP-Code kann auf mehrere Strings in einem Array aus Strings aufgeteilt werden. Soll eine bereits definierte Aktion bearbeitet werden, beispielsweise in einem Ereignis, so stehen die definierten Parameter als Systemvariablen zur Verfügung, siehe [SelectAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Die Einstellungen des Formulars stellen die Parameter der Aktion dar, wobei jedes benannte Konfigurationselement seinen Wert unter seinem "name" zur Verfügung stellt. |
| action | array/string | PHP-Code, welcher die Ausführung der Aktion definiert. Wird die Aktion ausgeführt, so wird der PHP-Code aus diesem Feld ausgeführt. Dabei stehen die Parameter als Systemvariablen zur Verfügung. |
| priority (optional) | int | Priorität der Aktion, in einer Auswahl werden Aktionen nach der Priorität sortiert |
| category (optional) | string | (__default:__ "other") Die Kurzform der Kategorie der Aktion. Mögliche Kategorien sind unter [category](https://www.symcon.de/./#category) aufgelistet. |
| restrictions (optional) | array | (__default:__ []) Eine Liste von Restriktionen, welche einschränken, unter welchen Bedingungen diese Aktion angeboten wird. Die möglichen Restriktionen sind in den Tabellen [restrictions](https://www.symcon.de/./#restrictions) beschrieben. |
| locale (optional) | object | (__default:__ []) Hier kann wie in der [Lokalisierung eines Moduls](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) die Aktion lokalisiert werden. Hierdurch wird sowohl die Form als auch die caption lokalisiert. |
| format (optional) | string | (__default:__ Inhalt von caption) Dieser String stellt eine Kurzformatierung der Aktion mit ihren Parametern dar, welche an verschiedenen Stellen angezeigt werden kann. Die Formatierung wird in [ICU-Syntax](https://formatjs.io/docs/core-concepts/icu-syntax/) notiert. Dort können als Variablen die Parameter (Name entsprechend des Parameters) sowie des Ziel (Name "TARGET") verwendet werden. Für die Formatierung stehen einige zusätzliche [Symcon-spezifische Typen](https://www.symcon.de/./#Formatierung) zur Verfügung. Der Inhalt von format wird durch die locale übersetzt. |
| description (optional) | string | (__default:__ "") Dieser Text wird als Beschreibung für die Aktion in der Aktionsauswahl angezeigt. Der Inhalt von description wird durch die locale übersetzt. |
| readable (optional) | array/string | (__default:__ Inhalt von action, wobei alle Statusvariablen von Parametern durch die eingestellten Werte ersetzt werden) PHP-Code, welcher die Aktion als lesbaren Code zurückgibt. Dies wird beispielsweise für "Befehle einfügen" im Skripteditor verwendet. Dabei stehen die Parameter als Systemvariablen zur Verfügung. |
| deprecated (optional) | array/string | (__default:__ Nicht veraltet) Wenn dieser Parameter gesetzt ist, wird die Aktion als veraltet betrachtet und wird in einer Auswahl nicht angezeigt. Wenn ein Dialog zum Bearbeiten dieser Aktion geöffnet wird, wird der PHP-Code in diesem Parameter mit den aktuellen Parametern der Aktion ausgeführt. Diese Aktion wird direkt in die Aktion transformiert, welche der PHP-Code zurückgibt. |
#### category
| Kurzform | Name | Beschreibung |
| -------- | ------------------------- | --------------------------------------------------------------------------- |
| target | Zielspezifisch | Aktionen, die zu einem spezifischen Ziel gehören, üblicherweise einem Modul |
| math | Mathematische Operationen | Mathematische Operationen um Objekte zu modifizieren |
| set | Wert setzen | Aktionen, die den Wert einer Variable setzen |
| switch | Wert schalten | Aktionen, die den Wert einer Variable schalten |
| expert | Experte | Aktionen, die tieferes Verständniss über IP-Symcon oder PHP erfordern |
| other | Andere Aktionen | Aktionen, die in keine andere Kategorie passen |
#### restrictions
##### Restriktionen für alle Objekttypen
| Parameter | Datentyp | Beschreibung |
| ------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| objectType | array | Die Aktion wird nur für Ziele der angegebenen Typen angeboten (0 = Kategorie, 1 = Instanz, 2 = Variable, 3 = Skript, 4 = Ereignis, 5 = Media, 6 = Link) |
| includeEnvironments | array | Eine Liste von Umgebungen in welchen die Aktion angeboten wird, siehe [Umgebungen](https://www.symcon.de/./#Umgebungen) |
| excludeEnvironments | array | Eine Liste von Umgebungen in welchen die Aktion nicht angeboten wird. Bei Übereinstimmungen mit "includeEnvironments" wird die Aktion nicht angezeigt. Siehe [Umgebungen](https://www.symcon.de/./#Umgebungen) |
| writable | bool | Ist diese Restriktion auf true gesetzt, so wird die Aktion nur angeboten, falls das Zielobjekt nicht schreibgeschützt sein. Ist das Ziel eine Variable, so darf diese zusätzlich keine [Variablenaktion](https://www.symcon.de/de/llms/concepts.md) haben. |
##### Restriktionen für Zielobjekte vom Typ Instanz
| Parameter | Datentyp | Beschreibung |
| ------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| hasActionStatusVariables | bool | Ist diese Restriktion auf true gesetzt, so wird die Aktion nur angeboten, falls die Instanz mindestens eine schaltbare Statusvariable hat |
| hasInstanceFunctions | bool | Ist diese Restriktion auf true gesetzt, so wird die Aktion nur angeboten, falls die Instanz mindestens eine öffentliche Funktion besitzt, welche nicht vom IPSModule geerbt wurde |
| moduleID | array | Die Aktion wird nur angeboten, falls die ModulID der Zielinstanz in dieser Liste enthalten ist |
| moduleType | array | Die Aktion wird nur angeboten, falls der Modultyp der Instanz in dieser Liste enthalten ist (0: Kern, 1: I/O, 2: Splitter, 3: Gerät, 4: Konfigurator, 5: Discovery, 6: Visualisierung) (seit Symcon 9.0) |
| hasIdent | array | Die Aktion wird nur angeboten, falls die Zielinstanz für jeden Eintrag dieser Liste ein Kind mit dem entsprechenden Ident hat (seit Symcon 6.1) |
| hasNoIdent | array | Die Aktion wird nur angeboten, falls die Zielinstanz für jeden Eintrag dieser Liste KEIN Kind mit dem entsprechenden Ident hat (seit Symcon 8.0) |
##### Restriktionen für Zielobjekte vom Typ Variable
| Parameter | Datentyp | Beschreibung |
| ------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| requestAction | bool | Ist diese Restriktion auf true gesetzt, so wird die Aktion nur angeboten, falls die Variable über eine Variablenaktion verfügt |
| variableType | array | Die Aktion wird nur angeboten, falls der Variablentyp der Zielvariablen in dieser Liste enthalten ist (0 = Boolean, 1 = Integer, 2 = Float, 3 = String) |
| profilesInclude | array | Die Aktion wird nur angeboten, falls der Name ihres aktuell verwendetes Profils in dieser Liste enthalten ist |
| profilesExclude | array | Die Aktion wird nur angeboten, falls der Name ihres aktuell verwendeten Profils NICHT in dieser Liste enthalten ist |
| profileIsEnum | bool | Ist diese Restriktion auf true gesetzt, so wird die Aktion nur angeboten, falls das Profil der Variablen eine Aufzählung darstellt (Schrittweite = 0, mindestens eine Assoziation) |
| profileIsPercentage | bool | Ist diese Restriktion auf true gesetzt, so wird die Aktion nur angeboten, falls das Profil der Variablen einen Prozentwert darstellt (Suffix = "%", Max Wert > Min Wert) |
| presentation | array | Die Aktion wird nur angeboten, falls die ID der verwendeten Darstellung in dieser Liste enthalten ist |
##### Restriktionen für Zielobjekte vom Typ Automation
| Parameter | Datentyp | Beschreibung |
| ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| scriptType | array | Die Aktion wird nur angeboten, falls der Automationstyp der Automation in dieser Liste enthalten ist (0 = PHP-Skript, 1 = Ablaufplan, 2 = IPSWorkflow) (ab Version 6.1) |
##### Restriktionen für Zielobjekte vom Typ Ereignis
| Parameter | Datentyp | Beschreibung |
| --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| eventType | array | Die Aktion wird nur angeboten, falls der Ereignistyp des Ereignis in dieser Liste enthalten ist (0 = Ausgelöst, 1 = Zyklisch, 2 = Wochenplan) (ab Version 6.3) |
##### Umgebungen
| Umgebung | Beschreibung |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Default | Die Standardumgebung in welcher die meisten Aktionen definiert sind, viele Auswahlen beschränken sich auf diese Aktionen oder bieten sie zusätzlich an |
| TestCommands | Aktionsauswahl im "Befehle testen"-Dialog einer Instanz, hier werden "Default"-Aktionen nicht mit angeboten |
| EventTrigger | Aktionsauswahl in einem ausgelösten Ereignis |
| EventCyclic | Aktionsauswahl in einem zyklischen Ereignis |
| EventSchedule | Aktionsauswahl in einem Wochenplan |
| FlowScript | Aktionsauswahl im Ablaufplan |
| ScriptEditor | Aktionsauswahl im "Befehl hinzufügen"-Dialog eines Skripteditors |
| Weitere Umgebungen | Es können eigene Umgebungen definiert werden, um beispielsweise spezielle Aktionen als Teil einer Instanzkonfiguration anzubieten |
#### Systemvariablen
Sowohl in einem möglichen PHP-Skript für die Form als auch in dem Skript für die Ausführung kann via Systemvariablen auf das Ziel der Aktion und die eingestellten Parameter zugegriffen werden. So stehen folgende Systemvariablen in diesen Skripten zur Verfügung:
| Systemvariable | Beschreibung |
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $_IPS['TARGET'] | ObjektID des Ziels der Aktion |
| $_IPS[(Name des Parameters)] (z.B. $_IPS['VALUE']) | Der eingestellte bzw. ausgewählte Wert des Parameters. Diese Felder stehen in einem Skript für die Form nicht zur Verfügung, falls die Aktion initial ausgewählt wird und somit noch keine Parameter ausgewählt wurden. Daher sollte dort mit der PHP-Funktion isset geprüft werden, ob die Systemvariablen vorhanden sind. |
| Weitere [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) | Weitere Systemvariablen stehen basierend auf der Ausführung der Aktion zur Verfügung. Sollte es hierbei zu Überschneidungen mit Parameternamen kommen, werden die Parameterwerte verwendet und es kann nicht auf die regulären Systemvariablen zugegriffen werden. |
#### Formatierung
Im Feld format können alle Typen des [ICU-Formats](https://formatjs.io/docs/core-concepts/icu-syntax/) verwendet werden. Zusätzlich wurden Symcon-spezifische Typen eingeführt. Wie bei ICU üblich, bestehen diese aus drei Teilen: Der Parameterbezeichnung, der Typbezeichnung und optionalen zusätzlichen Parametern.
##### profile
Der Wert wird auf Basis des Profils der Zielvariablen dargestellt. Hat das Ziel kein Profil, so wird der Wert direkt dargestellt.
Beispiele: {VALUE, profile}
##### valueFormatted
Es wird der formatierte Wert der Variablen mit der ObjektID des Wertes dargestellt.
Beispiele: {VARIABLE, valueFormatted}
##### object
Es wird der Name des Objekts mit der ObjektID des Wertes dargestellt.
| Parameter | Beschreibung |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ident (optional) | Wird als Parameter "ident" gefolgt von einer Parameterbezeichnung angegeben, so wird stattdessen der Name des Kindes mit dem Ident, welcher dem Parameter entspricht, dargestellt. Steht der Wert hinter ident in einfachen Anführungszeichen ('), so wird der Wert dazwischen direkt als Ident verwendet. |
Beispiele: {VARIABLE, object}, {TARGET, object, ident IDENT}
##### action
Es wird die Formatierung der Aktion, welche als JSON-String codiert im Wert steht, dargestellt.
| Parameter | Beschreibung |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| targetID (optional) | Wird als Parameter "targetID" gefolgt von einer Parameterbezeichnung angegeben, so wird die ZielID der formatierten Aktion auf den Wert des entsprechenden Parameters gesetzt. Wird zusätzlich direkt danach "ident" gefolgt von einer Parameterbezeichnung angegeben, so wird die ZielID stattdessen auf die ObjektID des Kindes mit dem Ident, welcher dem Parameter entspricht, dargestellt. Steht der Wert hinter ident in einfachen Anführungszeichen ('), so wird der Wert dazwischen direkt als Ident verwendet. |
| linkTarget (optional) | Wird der Parameter "linkTarget" gesetzt, so wird die ZielID des Links als Ziel der formatierten Aktion verwendet. Bei "linkTarget" müssen keine zusätzlichen Parameter angegeben werden. "linkTarget" kann mit targetID kombiniert werden, indem "linkTarget" danach angegeben wird. Dann wird das beschriebene Ziel als Link betrachtet und dessen Ziel für die Aktion verwendet. |
Beispiele: {ACTION, action}, {ACTION, action, targetID VARIABLE}, {ACTION, action, targetID TARGET ident IDENT}, {ACTION, action, linkTarget}, {ACTION, action, targetID LINK linkTarget}
##### scheduleAction
Es werden die Namen von Wochenplanaktionen von Wochenplänen unter dem angegebenen Elternobjekt mit der ID des Wertes dargestellt.
| Parameter | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| parent | Wird als Parameter "parent" gefolgt von einer Parameterbezeichnung angegeben, so wird als Elternobjekt des Objekt mit dem Wert als ID verwendet |
| action | Wird als Parameter "action" gefolgt von einer AktionsID in einfachen Anführungszeichen (') angegeben, so werden nur Namen von Wochenplanaktionen dargestellt, welche die entsprechende Aktion ausführen |
Beispiele: {SCHEDULE_ACTION, scheduleAction, parent PARENT}, {SCHEDULE_ACTION, scheduleAction, parent PARENT action '{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}'}
##### selectPresentation
Verschiedene Formatierungen je nach verwendeter Darstellung einer Variablen
| Parameter | Beschreibung |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ID einer Darstellung | Wird als Parameter die ID einer Darstellung gefolgt von einer Formatierung verwendet, so wird die Formatierung genutzt, falls die Variable die Darstellung verwendet |
| other | Wird als Parameter "other" gefolgt von einer Formatierung verwendet, so wird die Formatierung genutzt, falls die ID der verwendeten Darstellung sonst nicht als Parameter zu finden war |
Beispiele: {TARGET, selectPresentation, {6B9CAEEC-5958-C223-30F7-BD36569FC57A}{Schieberegler} {05CC3CC2-A0B2-5837-A4A7-A07EA0B9DDFB}{Farbe} other{Sonstige Darstellung}}
### Beispiele
__switchValueString.json__
```php
{
"id": "{A4D52B67-BE4B-4AD0-964F-B9BA2556AAB0}",
"caption": "Switch to Value",
"form": [
{
"type": "ValidationTextBox",
"name": "VALUE",
"caption": "Value"
}
],
"action": "RequestAction($_IPS['TARGET'], $_IPS['VALUE']);",
"restrictions": {
"objectType": [ 2 ],
"variableType": [ 3 ],
"profileIsEnum": false,
"requestAction": true
},
"priority": 10,
"locale": {
"de": {
"Switch to Value": "Schalte auf Wert",
"Value": "Wert",
"Set to {VALUE, profile}": "Setze auf {VALUE, profile}"
}
},
"format": "Set to {VALUE, profile}"
}
```
__setValueIntegerPreviousReminder.json__
```php
{
"id": "{92971E6F-4AC1-BEF8-B325-9E044D27B3EB}",
"caption": "Set to Value",
"form": [
"$form = [",
" {",
" 'type' => 'SelectColor',",
" 'name' => 'VALUE',",
" 'allowTransparent' => false,",
" 'caption' => 'Value',",
" 'writable' => true",
" }",
"];",
"if (isset($_IPS['VALUE'])) {",
" $form[] = {",
" 'type' => 'Label'",
" 'caption' => 'Previously selected value: ' . $_IPS['VALUE']",
" };",
"}",
"return $form;"
],
"action": "SetValue($_IPS['TARGET'], $_IPS['VALUE']);",
"restrictions": {
"objectType": [ 2 ],
"variableType": [ 1 ],
"profilesExclude": [ "~HexColor" ]
},
"priority": 5,
"locale": {
"de": {
"Set to Value": "Setze auf Wert",
"Value": "Wert",
"Set to {VALUE, profile}": "Setze auf {VALUE, profile}"
}
},
"format": "Set to {VALUE, profile}"
}
```
__switchStatusVariable.json__
```php
{
"id": "{E616C2B2-A827-1712-4AE0-841C57B3DD74}",
"caption": "Switch Status Variable",
"form": [
"$options = [];",
"$firstVariable = false;",
"foreach (IPS_GetChildrenIDs($_IPS['TARGET']) as $childID) {",
" $object = IPS_GetObject($childID);",
" if (($object['ObjectType'] === 2) && ($object['ObjectIdent'] !== '')) {",
" if (!HasAction($childID)) {",
" continue;",
" }",
" if (!$firstVariable) {",
" $firstVariable = $object;",
" }",
" $options[] = [",
" 'caption' => $object['ObjectName'],",
" 'value' => $object['ObjectIdent']",
" ];",
" }",
"}",
"return [",
" [",
" 'type' => 'Select',",
" 'name' => 'IDENT',",
" 'caption' => 'Status Variable',",
" 'options' => $options,",
" 'value' => $firstVariable['ObjectIdent'],",
" 'onChange' => 'IPS_UpdateFormField(\"ACTION\", \"targetID\", IPS_GetObjectIDByIdent($IDENT, ' . $_IPS['TARGET'] . '), $id);'",
" ],",
" [",
" 'type' => 'SelectAction',",
" 'name' => 'ACTION',",
" 'caption' => 'Action',",
" 'targetID' => isset($_IPS['IDENT']) ? IPS_GetObjectIDByIdent($_IPS['IDENT'], $_IPS['TARGET']) : $firstVariable['ObjectID']",
" ]",
"];"
],
"action": [
"$targetVariableID = IPS_GetObjectIDByIdent($_IPS['IDENT'], $_IPS['TARGET']);",
"$action = json_decode($_IPS['ACTION'], true);",
"echo IPS_RunActionWait($action['actionID'], $targetVariableID, $action['parameters']);"
],
"restrictions": {
"objectType": [ 1 ],
"hasActionStatusVariables": true
},
"locale": {
"de": {
"Switch Status Variable": "Schalte Statusvariable",
"Status Variable": "Statusvariable",
"{TARGET, object, ident IDENT}: Switch Variable": "{TARGET, object, ident IDENT}: Schalte Variable"
}
},
"format": "{TARGET, object, ident IDENT}: {ACTION, action, targetID TARGET ident IDENT}",
"readable": [
"$targetVariableID = IPS_GetObjectIDByIdent($_IPS['IDENT'], $_IPS['TARGET']);",
"$action = json_decode($_IPS['ACTION'], true);",
"$action['parameters']['TARGET'] = $targetVariableID;",
"$action['parameters']['ENVIRONMENT'] = $_IPS['ENVIRONMENT'];",
"$action['parameters']['PARENT'] = $_IPS['PARENT'];",
"echo IPS_GetActionReadableCode($action['actionID'], $action['parameters']) . \"\\n\";"
]
}
```
__multiplySetVariable.json (veraltete Aktion)__
```php
{
"id": "{085176EC-BEE5-3732-15E5-8C82875CABD4}",
"caption": "Multiply with Value of other Variable",
"form": [
"$variable = IPS_GetVariable($_IPS['TARGET']);",
"$types = [];",
"if ($variable['VariableType'] === 2) {",
" $types = [1, 2];",
"}",
"else {",
" $types = [ $variable['VariableType'] ];",
"}",
"return [",
" [",
" 'type' => 'SelectVariable',",
" 'name' => 'VARIABLE',",
" 'caption' => 'Variable',",
" 'validVariableTypes' => $types",
" ]",
"];"
],
"action": "SetValue($_IPS['TARGET'], GetValue($_IPS['TARGET']) * GetValue($_IPS['VARIABLE']));",
"restrictions": {
"objectType": [ 2 ],
"variableType": [ 1, 2 ],
"profileIsEnum": false,
"writable": true
},
"locale": {
"de": {
"Multiply with Value of other Variable": "Multipliziere mit Wert einer anderen Variablen",
"Variable": "Variable",
"Multiply by value of {VARIABLE, object}": "Multipliziere mit Wert von {VARIABLE, object}",
"Set the target variable to its current value multiplied with the value of another variable": "Setze die Zielvariable auf ihren aktuellen Wert multipliziert mit dem Wert einer anderen Variablen"
}
},
"format": "Multiply by value of {VARIABLE, object}",
"category": "math",
"description": "Set the target variable to its current value multiplied with the value of another variable",
"deprecated": [
"return [",
" 'actionID' => '{A3153696-013A-41B1-A001-5E8085D95465}',",
" 'parameters' => [",
" 'DYNAMIC' => true,",
" 'FACTOR' => 0,",
" 'VARIABLE' => $_IPS['VARIABLE']",
" ]",
"];"
]
}
```
## Bibliotheken
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/bibliotheken/
_Benötigt Symcon >= 4.0_
### Beschreibung
Die Bibliothek ist die Basis für jede Modulentwicklung. Es können auch mehrere Module zu einer Bibliothek zusammengefasst werden. Die benötigte Verzeichnisstruktur kann unter [Struktur](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) eingesehen werden.
Diese kann über ein Repository (wir empfehlen Github oder Bitbucket) zur Verfügung gestellt werden.
### Einbindung in IP-Symcon
Die Datei library.json muss vorhanden sein, welche im Hauptverzeichnis liegt.
Anhand der Verzeichnisstruktur kann IP-Symcon die gesamte Bibliothek über das "Module Control" einlesen.
| Parameter | Datentyp | Beschreibung |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | string | Jedes Modul besitzt zur eindeutigen Identifikation eine eigene GUID (siehe unten Infobox). [GUID Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md) |
| author | string | Unter welchem Namen wurde die Bibliothek entwickelt |
| compatibility (ab 4.3) | array | Überprüft ob die benötigte Version installiert ist. Es kann auf Kernelversion und/oder Datum geprüft werden. (Weitere Beschreibung siehe Tabelle) |
| name | string | Der Name der gesamten Bibliothek. (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.) |
| url | string | URL zu der Homepage (Muss mit http:// oder https:// beginnen. Darf Alternativ auch leer sein) |
| version | string | Versionsnummer. Diese kann als String beliebig definiert werden. Wir empfehlen eine Darstellung in der Form "Zahl.Zahl". Bsp: "4.2" |
| build | integer | Buildnummer |
| date | integer | Unix-Zeitstempel |
> **Hinweis:** Die GUID ist eine UUID und hat das Format 8-4-4-4-12. Die Zahlen geben die Anzahl der Ziffern an. Die Ziffern bestehen aus Zeichen zwischen 0-9 und A-F. Es müssen immer Bindestriche und geschweifte Klammern vorhanden sein und es dürfen nur Großbuchstaben verwendet werden. (Beispiel: {12345678-90AB-CDEF-1234-567890ABCDEF} )
#### Compatibility
| Parameter | Datentyp | Beschreibung |
| ------------------ | -------- | ---------------------------------------- |
| version (optional) | string | Mindest-Version als String. Bsp: "4.2" |
| date (optional) | integer | Datum als UnixTimestamp. Bsp: 1491343200 |
### Beispiele
__library.json__
```php
{
"id": "{F96B257F-85E7-47CF-8340-8FE850AACD10}",
"author": "Symcon GmbH",
"name": "Misc Modules",
"url": "https://www.symcon.de",
"compatibility": {
"version": "4.2",
"date": 1491343200
},
"version": "1.0",
"build": 0,
"date": 0
}
```
## Darstellungen
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/
_Benötigt Symcon >= 8.0_
### Beschreibung
Eine visuelle Übersicht aller Darstellungen gibt es in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md).
Die Darstellung einer Variable kann über die Funktionen [RegisterVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) und [MaintainVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) gesetzt werden. Die Darstellung einer Variable wird über einen Array mit folgenden "Key"->"Value" Paaren bestimmt.
| Key | Beschreibung |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| PRESENTATION | Die als GUID formatierte ID der zu nutzenden Darstellung (Konstanten der [Darstellungen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)) |
| TEMPLATE | (optional) Die als GUID formatierte ID der zu nutzenden Vorlage (Konstanten der [Vorlagen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)) |
| *Darstellungsparameter* | (optional) Anstelle einer Vorlage können auch beliebig viele Parameter einer Darstellung gesetzt werden. Die Parameter werden auf der gleichen Ebene gesetzt wie der PRESENTATION Parameter |
> **Hinweis:** Wird ein Parameter direkt gesetzt werden die Werte der Vorlage ignoriert
Beispiel:
Die Darstellung einer Variable wird bei Erstellung auf einen Schieberegler mit einem eigenen Suffix gesetzt.
```php
$this->RegisterVariableFloat('Value', 'Value', [
'PRESENTATION' => VARIABLE_PRESENTATION_SLIDER,
'SUFFIX' => ' %'
]);
```
#### Darstellungen
| Darstellung |
| --------------------------------------------------- |
| [Aufzählung](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Datum/Uhrzeit](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Dauer](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Farbe](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Rollladen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Schalter](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Schieberegler](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Webinhalt](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Wertanzeige](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| [Werteingabe](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
## Aufzählung
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/aufzaehlung/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| ------------ | ------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| PRESENTATION | String | The ID of the presentation | VARIABLE_PRESENTATION_ENUMERATION {52D9E126-D7D2-2CBB-5E62-4CF7BA7C5D82} |
| ICON | String | Standard Icon | [Icons](https://www.symcon.de/de/llms/components/icons.md) |
| OPTIONS | String | Optionen | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Optionen](https://www.symcon.de/./#Optionen) beschrieben |
| LAYOUT | Integer | Anordnung | 0: Spalte, 1: Reihe, 2: Gitter |
| DISPLAY | Integer | Zeige... | 0: Beschriftung, 1: Icon, 2: Beschriftung und Icon |
### Optionen
| Name | Typ | Parameter | Beschreibung |
| ---------- | ---------------------------- | ----------------- | ------------------------------------------- |
| Value | Boolean/String/Integer/Float | Wert | Abhängig vom Typ der Variable |
| Caption | String | Beschriftung | |
| IconActive | Boolean | Überschreibe Icon | |
| IconValue | String | Icon | [Icons](https://www.symcon.de/de/llms/components/icons.md) |
| Color | Integer | Farbe | |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Es werden nur Icons angezeigt. Eines ist farblich hervorgehoben.
$this->RegisterVariableInteger('Modus', 'Modus', [
'PRESENTATION' => VARIABLE_PRESENTATION_ENUMERATION,
'DISPLAY' => 1 /* Icon */,
'OPTIONS' => json_encode([
['Value' => 1, 'Caption' => 'Automatic', 'IconActive' => true, 'IconValue' => 'circle-a'],
['Value' => 2, 'Caption' => 'Eco', 'IconActive' => true, 'IconValue' => 'circle-e', 'Color' => 40448],
['Value' => 3, 'Caption' => 'Manual', 'IconActive' => true, 'IconValue' => 'circle-m'],
])
]);
// Für bestehende Variablen via Skript
// Es werden nur Icons angezeigt. Eines ist farblich hervorgehoben.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_ENUMERATION,
'DISPLAY' => 1 /* Icon */,
'OPTIONS' => json_encode([
['Value' => 1, 'Caption' => 'Automatic', 'IconActive' => true, 'IconValue' => 'circle-a'],
['Value' => 2, 'Caption' => 'Eco', 'IconActive' => true, 'IconValue' => 'circle-e', 'Color' => 40448],
['Value' => 3, 'Caption' => 'Manual', 'IconActive' => true, 'IconValue' => 'circle-m'],
])
]);
```
## Datum/Uhrzeit
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/datum-uhrzeit/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| --------------- | ------- | -------------------- | -------------------------------------------------------------------------- |
| PRESENTATION | String | GUID der Darstellung | VARIABLE_PRESENTATION_DATE_TIME{497C4845-27FA-6E4F-AE37-5D951D3BDBF9} |
| DATE | Integer | Datumsanzeige | 0: Kein, 1: Jahr, Monat und Tag, 2: Monat und Tag, 3: Jahr und Tag |
| MONTH_TEXT | Boolean | Formatiere Monat als | false: Zahl, true: Text |
| DAY_OF_THE_WEEK | Boolean | Zeige Wochentag | |
| TIME | Integer | Zeitanzeige | 0: Keine, 1: Stunden und Minuten, 2: Stunden, Minuten und Sekunden |
### Vorlagen
```php
// Registriert eine Variable mit einer Datum Vorlage.
$this->RegisterVariableFloat('Date', 'Datum', [
'PRESENTATION' => VARIABLE_PRESENTATION_DATE_TIME,
'TEMPLATE' => VARIABLE_TEMPLATE_DATE,
]);
```
| Name | Konstante | GUID |
| ------------- | --------------------------- | -------------------------------------- |
| Datum | VARIABLE_TEMPLATE_DATE | {B4C70F3E-6613-DA1A-7279-5DEE8DEB1B24} |
| Uhrzeit | VARIABLE_TEMPLATE_TIME | {362DA268-56A2-E771-5E53-17E38B5D82E6} |
| Datum/Uhrzeit | VARIABLE_TEMPLATE_DATE_TIME | {BB0E9933-0403-BD3A-D1C9-255646934B00} |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Es werden nur Icons angezeigt. Eine Option ist farblich hervorgehoben.
$this->RegisterVariableInteger('Wecker', 'Weckzeit', [
'PRESENTATION' => VARIABLE_PRESENTATION_DATE_TIME,
'DATE' => 0 /* Kein */,
'TIME' => 2 /* Stunden, Minuten und Sekunden */,
]);
// Zeigt nur die Uhrzeit an: 05:09:37
$this->RegisterVariableInteger('Wecker', 'Weckzeit', [
'PRESENTATION' => VARIABLE_PRESENTATION_DATE_TIME,
'DATE' => 0 /* Kein */,
'TIME' => 2 /* Stunden, Minuten und Sekunden */,
]);
// Für bestehende Variablen via Skript
// Zeigt ein Datum folgendermaßen an: So., 3. Mai 2026 05:09
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_DATE_TIME,
'DATE' => 1 /* Jahr, Monat und Tag */,
'DAY_OF_THE_WEEK' => true,
'TIME' => 1 /* Stunden und Minuten */,
]);
// Zeigt nur die Uhrzeit an: 05:09:37
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_DATE_TIME,
'DATE' => 0 /* Kein */,
'TIME' => 2 /* Stunden, Minuten und Sekunden */,
]);
```
## Dauer
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/dauer/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Type | Parameter | Beschreibung |
| -------------- | ------- | -------------------- | -------------------------------------------------------------------------------------------------- |
| PRESENTATION | String | GUID der Darstellung | VARIABLE_PRESENTATION_DURATION{08A6AF76-394E-D354-48D5-BFC690488E4E} |
| COUNTDOWN_TYPE | Integer | Darstellungstyp | 0: Wert in Variable, 1: Dauer bis zum Wert in der Variable, 2: Dauer seit Wert in der Variable |
| FORMAT | Integer | Format | 0: Nur Sekunden, 1: Minuten und Sekunden, 2: Stunden, Minuten und Sekunden, 3: Stunden und Minuten |
| MILLISECONDS | Boolean | Zeige Millisekunden | |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Formatiert den Wert der Variable wie folgt: 03:54
$this->RegisterVariableInteger('Countdown', 'Countdown', [
'PRESENTATION' => VARIABLE_PRESENTATION_DURATION,
'COUNTDOWN_TYPE' => 0 /* Wert in Variable*/,
'FORMAT' => 1 /* Minuten und Sekunden */,
]);
// Formatiert die Dauer bis zu dem Zeitstempel in der Variable wie folgt: 03:10:08
$this->RegisterVariableInteger('Countdown', 'Countdown', [
'PRESENTATION' => VARIABLE_PRESENTATION_DURATION,
'COUNTDOWN_TYPE' => 1 /* Dauer bis zum Wert in der Variable*/,
'FORMAT' => 2 /* Minuten und Sekunden */,
]);
// Für bestehende Variablen via Skript
// Formatiert den Wert der Variable wie folgt: 03:54
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_DURATION,
'COUNTDOWN_TYPE' => 0 /* Wert in Variable*/,
'FORMAT' => 1 /* Minuten und Sekunden */,
]);
// Formatiert die Dauer bis zu dem Zeitstempel in der Variable wie folgt: 03:10:08
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_DURATION,
'COUNTDOWN_TYPE' => 1 /* Dauer bis zum Wert in der Variable*/,
'FORMAT' => 2 /* Minuten und Sekunden */,
]);
```
## Farbe
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/farbe/
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
> **Hinweis:** Um alle Parameter der Darstellung nutzen zu können, muss die Variable vom Typ String sein. Ist der Variablentyp Integer so ist die Kodierung fest RGB (0). Weitere Parameter sind für Integer Variablen nicht möglich.
| Name | Typ | Parameter | Beschreibung |
| ------------------ | ------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_COLOR {05CC3CC2-A0B2-5837-A4A7-A07EA0B9DDFB} |
| ENCODING | Integer | Kodierung | 0: RGB, 1: CMYK, 2: HSV, 3: HSL 4: xy |
| PRESET_VALUES | String | Standardwerte | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Farben](https://www.symcon.de/./#Farben) beschrieben. Nicht verfügbar bei Kodierung xy |
| COLOR_SPACE | Integer | Farbraum | 0: Benutzerdefiniert, 1: sRGB, 2: AdobeRGB, 3: DCI-P3, 4: Rec2020 |
| CUSTOM_COLOR_SPACE | String | Benutzerdefinierter Farbraum | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Benutzerdefinierter Farbraum](https://www.symcon.de/./#Benutzerdefinierter_Farbraum) beschrieben |
| COLOR_CURVE | Integer | Farbkurve | 0: Keine, 1: Benutzerdefiniert, 2: Tageslicht, 3: Tageslicht (Frühling), 4: Tageslicht (Sommer), 5. Tageslicht (Winter) |
| CUSTOM_COLOR_CURVE | String | Benutzerdefinierte Farbkurve | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Benutzerdefinierter Farbkurve](https://www.symcon.de/./#Benutzerdefinierter_Farbkurve) beschrieben |
### Farben
| Parameter | Typ | Beschreibung |
| --------- | ------- | ----------------- |
| Color | Integer | Farbe als Integer |
### Benutzerdefinierter Farbraum
Ein Farbraum wird durch 4 Objekte mit den Folgenden Parametern beschrieben. Der 1. Eintrag ist dabei für Rot, der 2. für Grün, der 3. für Blau und der 4. für den Weißpunkt.
| Parameter | Typ | Beschreibung |
| --------- | ----- | ------------------------------------------------------------- |
| x | Float | X-Position der Farbe auf der CIE-Normfarbtafel im Bereich 0-1 |
| y | Float | Y-Position der Farbe auf der CIE-Normfarbtafel im Bereich 0-1 |
Beispiel:
```php
// sRGB
[
{"x":0.64,"y":0.33},
{"x":0.3,"y":0.6},
{"x":0.15,"y":0.06},
{"x":0.3127,"y":0.329}
]
```
### Benutzerdefinierter Farbkurve
Eine Farbkurve besteht aus einer beliebigen Anzahl von Farben, die etwa die Farbtemperatur über den Verlauf eines Tages darstellen.
| Parameter | Typ | Beschreibung |
| --------- | ----- | ------------------------------------------------------------- |
| x | Float | X-Position der Farbe auf der CIE-Normfarbtafel im Bereich 0-1 |
| y | Float | Y-Position der Farbe auf der CIE-Normfarbtafel im Bereich 0-1 |
Beispiel:
```php
// Tageslicht (Winter)
[
{"x": 0.477, "y" 0.4137},
{"x": 0.4599, "y" 0.4106},
{"x": 0.433, "y" 0.4027},
{"x": 0.4103, "y" 0.3932},
{"x": 0.3918, "y" 0.3835},
{"x": 0.3761, "y" 0.374},
{"x": 0.3631, "y" 0.3652},
{"x": 0.352, "y" 0.357},
{"x": 0.3439, "y" 0.3507},
{"x": 0.3367, "y" 0.3447},
{"x": 0.3348, "y" 0.343},
]
```
### Vorlagen
```php
// Registriert eine Variable mit grünen Farbtönen als Standardwerte.
$this->RegisterVariableString('Farbe', 'Farbe', [
'PRESENTATION' => VARIABLE_PRESENTATION_COLOR,
'TEMPLATE' => VARIABLE_TEMPLATE_COLOR_FOREST,
]);
```
| Name | Konstante | GUID |
| ---------- | ------------------------------- | -------------------------------------- |
| Regenbogen | VARIABLE_TEMPLATE_COLOR_RAINBOW | {0C711895-2F8E-DBFE-1700-84173491D229} |
| Wald | VARIABLE_TEMPLATE_COLOR_FOREST | {A7467E68-5C39-5BD9-C0C8-BCE6004FEEAA} |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Erlaubt die Farbauswahl im Format RGB mit Rot, Grün und Blau als Standardwerte.
$this->RegisterVariableString('FarbeRGB', 'Farbe', [
'PRESENTATION' => VARIABLE_PRESENTATION_COLOR,
'ENCODING' => 0 /* RGB */,
'PRESET_VALUES' => json_encode([['Color' => 16711680], ['Color' => 65280], ['Color' => 255]]),
]);
// Erlaubt die Farbauswahl im Format xy in einem eigenen Farbraum
$this->RegisterVariableString('FarbeXY', 'Farbe', [
'PRESENTATION' => VARIABLE_PRESENTATION_COLOR,
'ENCODING' => 4 /* xy*/,
'COLOR_SPACE' => 0 /* Benutzerdefiniert */,
'SELECTION' => 1 /* CIE Diagramm */,
'CUSTOM_COLOR_SPACE' => json_encode([
['x' => 0.692, 'y' => 0.308], // Rot
['x' => 0.170, 'y' => 0.700], // Grün
['x' => 0.153, 'y' => 0.048], // Blau
['x' => 0.3127,'y' => 0.329] // Weißpunkt
])
]);
// Für bestehende Variablen via Skript
// Erlaubt die Farbauswahl im Format RGB mit Rot, Grün und Blau als Standardwerte.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_COLOR,
'ENCODING' => 0 /* RGB */,
'PRESET_VALUES' => json_encode([['Color' => 16711680], ['Color' => 65280], ['Color' => 255]]),
]);
// Erlaubt die Farbauswahl im Format xy in einem eigenen Farbraum
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_COLOR,
'ENCODING' => 4 /* xy*/,
'COLOR_SPACE' => 0 /* Benutzerdefiniert */,
'SELECTION' => 1 /* CIE Diagramm */,
'CUSTOM_COLOR_SPACE' => json_encode([
['x' => 0.692, 'y' => 0.308], // Rot
['x' => 0.170, 'y' => 0.700], // Grün
['x' => 0.153, 'y' => 0.048], // Blau
['x' => 0.3127,'y' => 0.329] // Weißpunkt
])
]);
```
## Rollladen
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/jalousie/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| -------------------- | ------------- | ---------------------------- | ----------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_SHUTTER {6075FC22-69AF-B110-3749-C24138883082} |
| USAGE_TYPE | Integer | Verwendungstyp | 0: Offen, 1: Rotation |
| OPEN_OUTSIDE_VALUE | Integer/Float | Offen bei / Außen bei | |
| CLOSE_INSIDE_VALUE | Integer/Float | Geschlossen bei / Innen bei | |
| MAX_ROTATION_INSIDE | Integer/Float | Maximale Rotation nach innen | |
| MAX_ROTATION_OUTSIDE | Integer/Float | Maximale Rotation nach außen | |
| SUN_POSITION | Integer | Sonnenposition | 0: Links, 1: Rechts, 2: (Keine) |
### Vorlagen
```php
// Registriert eine Variable, die Lamellen nach rechts gedreht darstellen.
$this->RegisterVariableFloat('Lamelle', 'Lamelle', [
'PRESENTATION' => VARIABLE_PRESENTATION_SHUTTER,
'TEMPLATE' => VARIABLE_TEMPLATE_SHUTTER_LAMELLA_RIGHT,
]);
```
| Name | Konstante | GUID |
| -------------- | ------------------------------------------ | -------------------------------------- |
| Lamelle rechts | VARIABLE_TEMPLATE_SHUTTER_LAMELLA_RIGHT | {3BE75DE9-7D84-C082-2E77-9ED3AEE04D63} |
| Lamelle links | VARIABLE_TEMPLATE_SHUTTER_LAMELLA_LEFT | {22A0DF9C-C200-154A-641B-3A3CB096DB6D} |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Ein Variable, die die Öffnung Rollladen darstellt. Bei einem Variablenwert von 150 ist die Darstellung geschlossen - bei 0 offen.
$this->RegisterVariableInteger('Shutter', 'Shutter', [
'PRESENTATION' => VARIABLE_PRESENTATION_SHUTTER,
'CLOSE_INSIDE_VALUE' => 150,
'USAGE_TYPE' => 0 /* Offen */,
'SUN_POSITION' => 2 /* Keine */,
'OPEN_OUTSIDE_VALUE' => 0,
]);
// Ein Variable, die die Rotation von Lamellen darstellt. Bei einem Variablenwert von 100 ist die Darstellung nach außen gedreht - bei 0 innen.
$this->RegisterVariableInteger('Shutter', 'Shutter', [
'PRESENTATION' => VARIABLE_PRESENTATION_SHUTTER,
'CLOSE_INSIDE_VALUE' => 100,
'OPEN_OUTSIDE_VALUE' => 0,
'USAGE_TYPE' => 1 /* Rotation */,
'SUN_POSITION' => 1 /* Rechts */,
'MAX_ROTATION_INSIDE' => -30,
'MAX_ROTATION_OUTSIDE' => 30,
]);
// Für bestehende Variablen via Skript
// Ein Variable, die die Öffnung Rollladen darstellt. Bei einem Variablenwert von 150 ist die Darstellung geschlossen - bei 0 offen.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_SHUTTER,
'CLOSE_INSIDE_VALUE' => 150,
'USAGE_TYPE' => 0 /* Offen */,
'SUN_POSITION' => 2 /* Keine */,
'OPEN_OUTSIDE_VALUE' => 0,
]);
// Ein Variable, die die Rotation von Lamellen darstellt. Bei einem Variablenwert von 100 ist die Darstellung nach außen gedreht - bei 0 innen.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_SHUTTER,
'CLOSE_INSIDE_VALUE' => 100,
'OPEN_OUTSIDE_VALUE' => 0,
'USAGE_TYPE' => 1 /* Rotation */,
'SUN_POSITION' => 1 /* Rechts */,
'MAX_ROTATION_INSIDE' => -30,
'MAX_ROTATION_OUTSIDE' => 30,
]);
```
## Legacy Profil
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/legacy-profil/
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| ------------ | ------ | ---------------------- | ---------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_LEGACY {4153A8D4-5C33-C65F-C1F3-7B61AAF99B1C} |
| PROFILE | String | Profil | [Variablenprofile](https://www.symcon.de/de/llms/concepts.md) |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
$this->RegisterVariableFloat('Temperature', 'Temperature', [
'PRESENTATION' => VARIABLE_PRESENTATION_LEGACY,
'PROFILE' => '~Temperature',
]);
// Für bestehende Variablen via Skript
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_LEGACY,
'PROFILE' => '~Temperature',
]);
```
## Schalter
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/schalter/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| -------------- | ------- | --------------------------------------------------------- | ---------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_SWITCH {60AE6B26-B3E2-BDB1-A3A1-BE232940664B} |
| USE_ICON_FALSE | Boolean | Individuelle Icons passend zum Wert | |
| ICON_TRUE | String | Icon für true, auch für false, falls USE_ICON_FALSE false | [Icons](https://www.symcon.de/de/llms/components/icons.md) |
| ICON_FALSE | String | Icon für false, falls USE_ICON_FALSE true | [Icons](https://www.symcon.de/de/llms/components/icons.md) |
| GLOW_COLOR | Integer | Farbe des Leuchtens wenn aktiv | |
| GLOW_INTENSITY | Integer | Intensität des Leuchtens wenn aktiv | |
| USAGE_TYPE | Integer | Verwendung der Variable | 0: An/Aus, 1: Stumm schalte, 2: Keine hiervon |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Ein Schalter, der grün leuchtet.
$this->RegisterVariableInteger('Status', 'Status', [
'PRESENTATION' => VARIABLE_PRESENTATION_SWITCH,
'GLOW_COLOR' => 3210585,
'GLOW_INTENSITY' => 20,
'USAGE_TYPE' => 0 /* An/Aus */
]);
// Ein Schalter mit eigenen Icons zum Stumm schalten
$this->RegisterVariableInteger('Mute', 'Mute', [
'PRESENTATION' => VARIABLE_PRESENTATION_SWITCH,
'USE_ICON_FALSE' => true,
'ICON_FALSE' => 'volume',
'USAGE_TYPE' => 1 /* Stumm schalten */,
'ICON_TRUE' => 'volume-xmark',
]);
// Für bestehende Variablen via Skript
// Ein Schalter, der grün leuchtet.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_SWITCH,
'GLOW_COLOR' => 3210585,
'GLOW_INTENSITY' => 20,
'USAGE_TYPE' => 0 /* An/Aus */
]);
// Ein Schalter mit eigenen Icons zum Stumm schalten
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_SWITCH,
'USE_ICON_FALSE' => true,
'ICON_FALSE' => 'volume',
'USAGE_TYPE' => 1 /* Stumm schalten */,
'ICON_TRUE' => 'volume-xmark',
]);
```
## Schieberegler
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/schieberegler/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| ------------------- | ------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_SLIDER {6B9CAEEC-5958-C223-30F7-BD36569FC57A} |
| MIN | Integer/Float | Minimaler Wert | |
| MAX | Integer/Float | Maximaler Wert | |
| STEP_SIZE | Integer/Float | Schrittweite | |
| GRADIENT_TYPE | Integer | Gradient | 0: Standard, 1: Temperatur, 2: Farbtemperatur, 3: Benutzerdefiniert |
| CUSTOM_GRADIENT | String | Benutzerdefinierter Gradient | JSON-kodierte Liste von Objekten mit den Parametern 'Value' und 'Color', wobei Color analog zu [SelectColor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) codiert wird |
| USAGE_TYPE | Integer | Verwendung der Variable | 0: Temperatur, 1: Farbtemperatur, 2: Intensität, 3: Lautstärke, 4: Fortschritt, 5: Keine hiervon |
| PREFIX | String | Präfix | |
| SUFFIX | String | Suffix | |
| PERCENTAGE | Boolean | Anzeigetyp | false: Absolut, true: Prozentual |
| THOUSANDS_SEPARATOR | String | Tausendertrennzeichen | Client: Standard vom Nutzer, sonst direkt der Wert |
| DIGITS | Integer | Nachkommastellen | |
| DECIMAL_SEPARATOR | String | Dezimaltrennzeichen | Client: Standard vom Nutzer, sonst direkt der Wert |
| ICON | String | Icon | |
| INTERVALS_ACTIVE | Boolean | Verwende aktualisierte Parameter für spezifische Intervalle | |
| INTERVALS | String | Intervalle | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Intervalle](https://www.symcon.de/./#Intervalle) beschrieben |
#### Intervalle
| Name | Typ | Parameter | Beschreibung |
| ---------------- | ------------- | ----------------------------- | ----------------------------------------- |
| IntervalMinValue | Integer/Float | Anfang des Intervalls | |
| IntervalMaxValue | Integer/Float | Ende des Intervalls | |
| ConstantActive | Boolean | Anzeige | false: Formatierter Wert, true: Konstante |
| ConstantValue | String | Konstante | |
| ConversionFactor | Integer/Float | Umrechnungsfaktor | |
| PrefixActive | Boolean | Überschreibe Präfix | |
| PrefixValue | String | Präfix | |
| SuffixActive | Boolean | Überschreibe Suffix | |
| SuffixValue | String | Suffix | |
| DigitsActive | Boolean | Überschreibe Nachkommastellen | |
| DigitsValue | Integer | Nachkommastellen | |
| IconActive | Boolean | Überschreibe Icon | |
| IconValue | String | Icon | |
### Vorlagen
```php
// Registriert eine Variable mit einer Raumtemperatur Vorlage.
$this->RegisterVariableFloat('TargetValue', 'Sollwert', [
'PRESENTATION' => VARIABLE_PRESENTATION_SLIDER,
'TEMPLATE' => VARIABLE_TEMPLATE_SLIDER_ROOM_TEMPERATURE,
]);
```
| Name | Konstante | GUID |
| -------------- | -------------------------------------------- | -------------------------------------- |
| Raumtemperatur | VARIABLE_TEMPLATE_SLIDER_ROOM_TEMPERATURE | {868B087E-A38D-2155-EBE0-157AFBBF9E8C} |
| Farbtemperatur | VARIABLE_TEMPLATE_SLIDER_COLOR_TEMPERATURE | {66062309-21A9-26C0-213F-775C52E1473B} |
| Energie | VARIABLE_TEMPLATE_SLIDER_ENERGY | {BC799412-0C66-551F-CAEC-7566F5D52BD9} |
| Leistung | VARIABLE_TEMPLATE_VALUE_PRESENTATION_BATTERY | {8EC19DF0-89FB-A77E-ED7D-047A949CF292} |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Ein Schieberegler, mit einer spanne von 0 - 2000W. Ab 1000 W wird der Wert als kW angezeigt.
$this->RegisterVariableInteger('Leistung', 'Leistung', [
'PRESENTATION' => VARIABLE_PRESENTATION_SLIDER,
'ICON' => 'bolt',
'SUFFIX' => ' W',
'MIN' => 0,
'MAX' => 2000,
'INTERVALS_ACTIVE' => true,
'INTERVALS' => json_encode([
[
'IntervalMinValue' => 1000,
'IntervalMaxValue' => 999999,
'ConversionFactor' => 1000,
'SuffixActive' => true,
'SuffixValue' => ' kW',
'DigitsActive' => true,
'DigitsValue' => 2,
'ConstantActive' => false,
'PrefixActive' => false,
]
])
]);
// Für bestehende Variablen via Skript
// Ein Schieberegler, mit einer spanne von 0 - 2000W. Ab 1000 W wird der Wert als kW angezeigt.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_SLIDER,
'ICON' => 'bolt',
'SUFFIX' => ' W',
'MIN' => 0,
'MAX' => 2000,
'INTERVALS_ACTIVE' => true,
'INTERVALS' => json_encode([
[
'IntervalMinValue' => 1000,
'IntervalMaxValue' => 999999,
'ConversionFactor' => 1000,
'SuffixActive' => true,
'SuffixValue' => ' kW',
'DigitsActive' => true,
'DigitsValue' => 2,
'ConstantActive' => false,
'PrefixActive' => false,
]
])
]);
```
## Webinhalt
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/webinhalt/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| ------------ | ------- | ------------------------ | --------------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_WEB_CONTENT {9DE1D610-5106-97FB-714D-1AADEDF8377A} |
| HTML_TYPE | Integer | Anzeigetyp | 0: HTML Inhalt, 1: Webseite |
| PADDING | Boolean | Ränder entfernen | |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Der Variablenwert wird als Link behandelt. Die Webseite wird ohne Ränder in der Kacheln dargestellt.
$this->RegisterVariableString('Website', 'Website', [
'PRESENTATION' => VARIABLE_PRESENTATION_WEB_CONTENT,
'HTML_TYPE' => 1 /* Webseite*/,
'PADDING' => true,
]);
// Für bestehende Variablen via Skript
// Der Variablenwert wird als Link behandelt. Die Webseite wird ohne Ränder in der Kacheln dargestellt.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_WEB_CONTENT,
'HTML_TYPE' => 1,
'PADDING' => true,
]);
```
## Wertanzeige
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/wertanzeige/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Type | Parameter | Beschreibung |
| ------------ | ------- | ---------------------- | ---------------------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_VALUE_PRESENTATION {3319437D-7CDE-699D-750A-3C6A3841FA75} |
| ICON | String | Standardicon | [Icons](https://www.symcon.de/de/llms/components/icons.md) |
| COLOR | Integer | Standardfarbe | |
| PREFIX | String | Präfix | |
| SUFFIX | String | Suffix | |
#### Float und Integer
| Name | Type | Parameter | Beschreibung |
| ------------------- | ------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| USAGE_TYPE | Integer | Verwendung der Variable | 0: Keine hiervon, 1: Temperatur |
| PERCENTAGE | Boolean | Anzeigetyp | true: Prozent, false: Absolut |
| MIN | Integer/Float | Minimaler Wert | |
| MAX | Integer/Float | Maximaler Wert | |
| THOUSANDS_SEPARATOR | String | Tausendertrennzeichen | Client: Standard vom Nutzer, sonst direkt der Wert |
| DIGITS | Integer | Nachkommastellen | |
| DECIMAL_SEPARATOR | String | Dezimaltrennzeichen | Client: Standard vom Nutzer, sonst direkt der Wert |
| INTERVALS_ACTIVE | Boolean | Verwende aktualisierte Parameter für spezifische Intervalle | |
| INTERVALS | String | Intervalle | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Intervalle](https://www.symcon.de/./#Intervalle) beschrieben |
#### Intervalle
| Name | Typ | Parameter | Beschreibung |
| ---------------- | ------------- | ----------------------------- | ----------------------------------------- |
| IntervalMinValue | Integer/Float | Anfang des Intervalls | |
| IntervalMaxValue | Integer/Float | Ende des Intervalls | |
| ConstantActive | Boolean | Anzeige | false: Formatierter Wert, true: Konstante |
| ConstantValue | String | Konstante | |
| ConversionFactor | Integer/Float | Umrechnungsfaktor | |
| PrefixActive | Boolean | Überschreibe Präfix | |
| PrefixValue | String | Präfix | |
| SuffixActive | Boolean | Überschreibe Suffix | |
| SuffixValue | String | Suffix | |
| DigitsActive | Boolean | Überschreibe Nachkommastellen | |
| DigitsValue | Integer | Nachkommastellen | |
| IconActive | Boolean | Überschreibe Icon | |
| IconValue | String | Icon | |
| ColorActive | Boolean | Überschreibe Farbe | |
| Color | Integer | Farbe | |
#### Boolean und String
| Name | Type | Parameter | Beschreibung |
| --------- | ------- | -------------- | ----------------------------------------------------------------------------------------------------------------- |
| MULTILINE | Boolean | Mehrere Zeilen | |
| OPTIONS | String | Optionen | JSON-kodierte Liste von Objekten, die genauen Parameter sind unter [Optionen](https://www.symcon.de/./#Optionen) beschrieben |
### Optionen
| Name | Typ | Parameter | Beschreibung |
| ----------- | -------------- | ------------------- | ------------------------------------------- |
| Value | Boolean/String | Wert | Abhängig vom Typ der Variable |
| Caption | String | Beschriftung | |
| IconActive | Boolean | Überschreibe Icon | |
| IconValue | String | Icon | [Icons](https://www.symcon.de/de/llms/components/icons.md) |
| ColorActive | Boolean | Farbe überschreiben | |
| ColorValue | Integer | Farbe | |
### Vorlagen
```php
// Registriert eine Variable mit einer Temperatur Vorlage.
$this->RegisterVariableFloat('Temperature', 'Raumtemperatur', [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_PRESENTATION,
'TEMPLATE' => VARIABLE_TEMPLATE_VALUE_PRESENTATION_ROOM_TEMPERATURE,
]);
```
| Name | Konstante | GUID |
| ---------------- | ----------------------------------------------------- | -------------------------------------- |
| Raumtemperatur | VARIABLE_TEMPLATE_VALUE_PRESENTATION_ROOM_TEMPERATURE | {90AF8F8F-183F-BBFD-E078-35FAB6DCFE4F} |
| Leistung | VARIABLE_TEMPLATE_VALUE_PRESENTATION_POWER | {2FED3D39-073D-6037-901B-2586A1AB5569} |
| Energie | VARIABLE_TEMPLATE_VALUE_PRESENTATION_ENERGY | {C899FCFA-063E-897E-9DA4-28ADD278EED5} |
| Batterie | VARIABLE_TEMPLATE_VALUE_PRESENTATION_BATTERY | {7BD38CF5-07F2-5B5B-8F7F-15398B823BFC} |
| Batterie (Farbe) | VARIABLE_TEMPLATE_VALUE_PRESENTATION_BATTERY_COLOR | {C90EF36A-165E-D0B0-032C-F468F483D42B} |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Eine Alarm Variable mit Icon und Hintergrundfarbe
$this->RegisterVariableBoolean('Alarm', 'Alarm', [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_PRESENTATION,
'OPTIONS' => json_encode([
['Value' => false, 'Caption' => 'OK', 'IconActive' => true, 'IconValue' => 'siren'],
['Value' => true, 'Caption' => 'Alarm', 'IconActive' => true, 'IconValue' => 'siren-on', 'ColorValue' => 16711680, 'ColorActive' => true],
])
]);
// Leistung in Watt mit Darstellung von Werten über 1000 als Kilowatt
$this->RegisterVariableInteger('Leistung', 'Leistung', [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_PRESENTATION,
'ICON' => 'bolt',
'SUFFIX' => ' W',
'INTERVALS_ACTIVE' => true,
'INTERVALS' => json_encode([
[
'IntervalMinValue' => 1000,
'IntervalMaxValue' => 999999,
'ConversionFactor' => 1000,
'SuffixActive' => true,
'SuffixValue' => ' kW',
'DigitsActive' => true,
'DigitsValue' => 2,
'ConstantActive' => false,
'PrefixActive' => false,
]
])
]);
// Für bestehende Variablen via Skript
// Es werden nur Icons angezeigt. Eine Option ist farblich hervorgehoben.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_PRESENTATION,
'OPTIONS' => json_encode([
['Value' => false, 'Caption' => 'OK', 'IconActive' => true, 'IconValue' => 'siren'],
['Value' => true, 'Caption' => 'Alarm', 'IconActive' => true, 'IconValue' => 'siren-on', 'ColorValue' => 16711680, 'ColorActive' => true],
])
]);
// Leistung in Watt mit Darstellung von Werten über 1000 als Kilowatt
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_PRESENTATION,
'ICON' => 'bolt',
'SUFFIX' => ' W',
'INTERVALS_ACTIVE' => true,
'INTERVALS' => json_encode([
[
'IntervalMinValue' => 1000,
'IntervalMaxValue' => 999999,
'ConversionFactor' => 1000,
'SuffixActive' => true,
'SuffixValue' => ' kW',
'DigitsActive' => true,
'DigitsValue' => 2,
'ConstantActive' => false,
'PrefixActive' => false,
]
])
]);
```
## Werteingabe
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/darstellungen/werteingabe/
_Benötigt Symcon >= 8.0_
### Parameter
Informationen zu den visuellen Eigenschaften und Bedeutungen der Parameter sind in der [Objekt-Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu finden.
| Name | Typ | Parameter | Beschreibung |
| ------------ | ------- | ---------------------- | --------------------------------------------------------------------------- |
| PRESENTATION | String | Die ID der Darstellung | VARIABLE_PRESENTATION_VALUE_INPUT {6F477326-1683-A2FD-D2E7-477F366ECB62} |
| PREFIX | String | Präfix | |
| SUFFIX | String | Suffix | |
| MULTILINE | Boolean | Mehrzeilige Eingabe | |
### Beispiele
```php
// Beim Registrieren einer Variable für PHP-Module
// Erlaubt es zahlen frei einzugeben.
$this->RegisterVariableFloat('Strompreis', 'Kosten pro kWh', [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_INPUT,
'SUFFIX' => ' €',
]);
// Ermöglicht es Freitext über mehrere Zeilen einzugeben.
$this->RegisterVariableString('Einkaufsliste', 'Einkaufsliste', [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_INPUT,
'MULLTILINE' => true,
]);
// Für bestehende Variablen via Skript
// Erlaubt es zahlen frei einzugeben.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_INPUT,
'SUFFIX' => ' €',
]);
// Ermöglicht es Freitext über mehrere Zeilen einzugeben.
IPS_SetVariableCustomPresentation(12345, [
'PRESENTATION' => VARIABLE_PRESENTATION_VALUE_INPUT,
'MULLTILINE' => true,
]);
```
## Datenfluss
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/datenfluss/
### Beschreibung
Der Datenfluss soll erklären, wie Daten zwischen "Device <-> Splitter <-> I/O" in IP-Symcon versendet werden und was dafür eingerichtet werden muss.
> **Hinweis:** Für eine einfache Erstellung eines Moduls inklusive des Datenflusses, wird die Nutzung des [Modul-Generators](https://www.symcon.de/de/llms/developer/sdk-tools.md) empfohlen.
_Typischer Aufbau_

### Datenflussrichtung
Es gibt 2 Datenflussrichtungen.
#### I/O zu Device
Diese Flussrichtung ist, wie in der Abbildung sichtbar, von der übgeordneten Instanz via [SendDataToChildren](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) zu den Children. Die ankommenden Daten werden innerhalb der Children von der überschreibaren Funktion [ReceiveData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) verarbeitet.
Zwischen I/O und Device kann optional und falls nötig ein Splitter eingepflegt werden.
#### Device zu I/O
Diese Flussrichtung ist, wie in der Abbildung sichtbar, von der untergeordneten Instanz via [SendDataToParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) zu dem Parent. Die ankommenden Daten werden innerhalb des Parents von der überschreibaren Funktion [ForwardData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) verarbeitet.
Zwischen Device und I/O kann optional und falls nötig ein Splitter eingepflegt werden.
### I/O Module
Bei selbstentwickelten Modulen sind die [GUIDs](https://www.symcon.de/de/llms/concepts.md) für Devices und Splitter in der jeweiligen [module.json](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) Datei anzugeben.
Diese können über den [GUID Generator](https://www.symcon.de/de/llms/developer/sdk-tools.md) erstellt werden.
_Seitens der I/O stehen folgende Datenpakete für I/O Typen zur Verfügung._
| I/O Modul | Modul GUID | Unterstütze Datenpakete |
| --------------------------------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| [Client Socket](https://www.symcon.de/de/llms/modules/clientsocket.md) | {3CFF0FD9-E306-41DB-9B5A-9D06D38576C3} | Simpel |
| [HID](https://www.symcon.de/de/llms/modules/hid.md) | {E6D7692A-7F4C-441D-827B-64062CFE1C02} | Erweitert (Event) |
| [HTTP Client](https://www.symcon.de/de/llms/modules/httpclient.md) | {4CB91589-CE01-4700-906F-26320EFCF6C4} | Erweitert (HTTP Request) |
| [Multicast Socket](https://www.symcon.de/de/llms/modules/multicastsocket.md) | {BAB408E0-0A0F-48C3-B14E-9FB2FA81F66A} | Simpel Erweitert (Socket) |
| [Serial Port](https://www.symcon.de/de/llms/modules/serialport.md) | {6DC3D946-0D31-450F-A8C6-C42DB8D7D4F1} | Simpel |
| [Server Sent Event Client](https://www.symcon.de/de/llms/modules/serversenteventclient.md) | {2FADB4B7-FDAB-3C64-3E2C-068A4809849A} | Erweitert (SSE) |
| [Server Socket](https://www.symcon.de/de/llms/modules/serversocket.md) | {8062CF2B-600E-41D6-AD4B-1BA66C32D6ED} | Simpel Erweitert (Socket) |
| [UDP Socket](https://www.symcon.de/de/llms/modules/udpsocket.md) | {82347F20-F541-41E1-AC5B-A636FD3AE2D8} | Simpel Erweitert (Socket) Erweitert (UDP) |
| [Virtual I/O](https://www.symcon.de/de/llms/modules/virtualio.md) | {6179ED6A-FC31-413C-BB8E-1204150CF376} | Simpel Erweitert (Socket) |
| [WebSocket Client](https://www.symcon.de/de/llms/modules/websocketclient.md) | {D68FD31F-0E90-7019-F16C-1949BD3079EF} | Simpel |
#### Datenpakete
Die Datenpakete werden JSONString kodiert.
Diese beinhalten einmal die [GUID](https://www.symcon.de/de/llms/concepts.md) des Datenpakettyps und die eigentlichen Daten.
Über die GUID als Identifikator weiß das jeweilge Modul, welche Daten in dem Datenpaket sind und deren Formatierung.
#### Simpel
RX GUID: {018EF6B5-AB94-40C6-AA53-46943E824ACF}
TX GUID: {79827379-F36E-4ADA-8A95-5F8D1DC92FA9}
| Parameter | Datentyp | Beschreibung |
| --------- | -------- | ---------------------- |
| Buffer | String | Beliebiger Dateninhalt |
```php
// Beispiel für das Senden an den Parent (TX Paket) vom Typ Simpel
public function SendData() {
$this->SendDataToParent(json_encode([
'DataID' => "{79827379-F36E-4ADA-8A95-5F8D1DC92FA9}",
'Buffer' => utf8_encode("Hallo Welt String"),
]));
}
// Empfangene Daten vom Parent (RX Paket) vom Typ Simpel
public function ReceiveData($JSONString) {
$data = json_decode($JSONString);
$data['Buffer'] = utf8_decode($Data['Buffer']);
//Im Meldungsfenster zu Debug zwecken ausgeben
IPS_LogMessage("DATA", print_r($data, true));
}
```
#### Erweitert (Event)
RX GUID: {FD7FF32C-331E-4F6B-8BA8-F73982EF5AA7}
TX GUID: {4A550680-80C5-4465-971E-BBF83205A02B}
| Parameter | Datentyp | Beschreibung |
| --------- | -------- | ---------------------- |
| Buffer | String | Beliebiger Dateninhalt |
| EventID | Integer | ID für das Event |
```php
// Beispiel für das Senden an den Parent (TX Paket) vom Typ Erweitert (Event)
public function SendData() {
$this->SendDataToParent(json_encode([
'DataID' => "{4A550680-80C5-4465-971E-BBF83205A02B}",
'Buffer' => utf8_encode("Hallo Welt String"),
'EventID' => 123
]));
}
// Empfangene Daten vom Parent (RX Paket) vom Typ Erweitert (Event)
public function ReceiveData($JSONString) {
$data = json_decode($JSONString);
$data['Buffer'] = utf8_decode($Data['Buffer']);
//Im Meldungsfenster zu Debug zwecken ausgeben
IPS_LogMessage("DATA", print_r($data, true));
}
```
#### Erweitert (Socket)
RX GUID: {7A1272A4-CBDB-46EF-BFC6-DCF4A53D2FC7}
TX GUID: {C8792760-65CF-4C53-B5C7-A30FCC84FEFE}
| Parameter | Datentyp | Beschreibung |
| ---------- | -------- | ---------------------------------------------------------- |
| Buffer | String | Beliebiger Dateninhalt |
| Type | Integer | Typ der Verbindung (0 = Data, 1 = Connect, 2 = Disconnect) |
| ClientIP | String | IP-Adresse der Verbindung |
| ClientPort | Integer | Port der Verbindung |
```php
// Beispiel für das Senden an den Parent (TX Paket) vom Typ Erweitert (Socket)
public function SendData() {
$this->SendDataToParent(json_encode([
'DataID' => "{C8792760-65CF-4C53-B5C7-A30FCC84FEFE}",
'Buffer' => utf8_encode("Hallo Welt String"),
'Type' => 0,
'ClientIP' => "192.168.0.8",
'ClientPort' => 502
]));
}
// Empfangene Daten vom Parent (RX Paket) vom Typ Erweitert (Socket)
public function ReceiveData($JSONString) {
$data = json_decode($JSONString);
$data['Buffer'] = utf8_decode($Data['Buffer']);
//Im Meldungsfenster zu Debug zwecken ausgeben
IPS_LogMessage("DATA", print_r($data, true));
}
```
#### Erweitert (UDP)
RX GUID: {9082C662-7864-D5CA-863F-53999200D897}
TX GUID: {8E4D9B23-E0F2-1E05-41D8-C21EA53B8706}
| Parameter | Datentyp | Beschreibung |
| ---------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Buffer | String | Beliebiger Dateninhalt |
| ClientIP | String | IP-Adresse der Verbindung, wenn leer dann wird die im UDP Socket eingestellte Hostadresse genutzt. (Wird ignoriert, wenn Broadcast aktiv ist) |
| ClientPort | Integer | Port der Verbindung, wenn auf 0 gesetzt wird der im UDP Socket eingestellte Port genutzt |
| Broadcast | Boolean | Broadcast de-/aktiviert (False = Deaktiviert, True = Aktiviert) |
```php
// Beispiel für das Senden an den Parent (TX Paket) vom Typ Erweitert (UDP)
public function SendData() {
$this->SendDataToParent(json_encode([
'DataID' => "{8E4D9B23-E0F2-1E05-41D8-C21EA53B8706}",
'Buffer' => utf8_encode("Hallo Welt String"),
'ClientIP' => "192.168.0.8",
'ClientPort' => 502
'Broadcast' => false,
]));
}
// Empfangene Daten vom Parent (RX Paket) vom Typ Erweitert (UDP)
public function ReceiveData($JSONString) {
$data = json_decode($JSONString);
$data['Buffer'] = utf8_decode($Data['Buffer']);
//Im Meldungsfenster zu Debug zwecken ausgeben
IPS_LogMessage("DATA", print_r($data, true));
}
```
#### Erweitert (SSE)
RX GUID: {5A709184-B602-D394-227F-207611A33BDF}
| Parameter | Datentyp | Beschreibung |
| --------- | -------- | --------------------------------------------------- |
| Event | String | Beliebiger Eventtyp |
| Data | String | Beliebiger Dateninhalt |
| Retry | String | In Millisekunden bis zu einem erneuten Sendeversuch |
| ID | String | ID für das Event |
TX GUID: {79827379-F36E-4ADA-8A95-5F8D1DC92FA9}
TX wird nicht ausgewertet muss aber gesetzt sein
```php
// Empfangene Daten vom Parent (RX Paket) vom Typ Erweitert (SSE)
public function ReceiveData($JSONString) {
$data = json_decode($JSONString);
//Im Meldungsfenster zu Debug zwecken ausgeben
IPS_LogMessage("DATA", print_r($data, true));
}
```
Weitere Informationen gibt es unter [https://www.w3.org/TR/eventsource/](https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface)
#### Erweitert (HTTP Request)
RX GUID: {018EF6B5-AB94-40C6-AA53-46943E824ACF}
| Parameter RX | Datentyp | Beschreibung |
| ------------ | -------- | ---------------------- |
| Buffer | String | Beliebiger Dateninhalt |
TX GUID: {D4C1D08F-CD3B-494B-BE18-B36EF73B8F43}
| Parameter TX | Datentyp | Beschreibung |
| ------------- | -------- | --------------------------------------- |
| RequestMethod | String | GET oder POST |
| RequestURL | String | URL der anzufragenden Webseite |
| RequestData | String | Welcher Datenwert angefragt werden soll |
| Timeout | Integer | Millisekunden bis ein Timeout kommt |
```php
// Beispiel für das Senden an den Parent (TX Paket) vom Typ Erweitert (HTTP Request)
public function SendData() {
$this->SendDataToParent(json_encode([
'DataID' => "{D4C1D08F-CD3B-494B-BE18-B36EF73B8F43}",
'RequestMethod' => utf8_encode("POST"),
'RequestURL' => utf8_encode("https://reqbin.com/echo/post/form"),
'RequestData' => utf8_encode("dummy-post-data"),
'Timeout' => 10000
]));
}
// Empfangene Daten vom Parent (RX Paket) vom Typ Simpel
public function ReceiveData($JSONString) {
$data = json_decode($JSONString);
$data['Buffer'] = utf8_decode($Data['Buffer']);
//Im Meldungsfenster zu Debug zwecken ausgeben
IPS_LogMessage("DATA", print_r($data, true));
}
```
### Voraussetzung und Einrichtung
Die [GUIDs](https://www.symcon.de/de/llms/concepts.md) für die verwendeten Datenpakettypen werden in der [module.json](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) definiert.
Damit ein Datenfluss zwischen 2 Instanzen etabliert werden kann, muss der Sendende bei dem passenden Requirement die genutzte Kommunikationsart eintragen.
Der Empfänger trägt seinerseits unter Implemented die GUID der Kommunikationsart ein.
Wenn mehrere GUIDs verschiedener Datenpakettypen in die [module.json](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) eingetragen werden, kann ein Modul auch mehrere Datenpakettypen interpretieren und verarbeiten.
> **Hinweis:** Für IPSModule: Ebenfalls muss von jedem Child der jeweilige Parent via [ConnectParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md), [RequireParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) oder [ForceParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) eingerichtet sein. Beim neuerem IPSModuleStrict werden die notwendigen Instanzen für den Datenfluss automatisch von der Verwaltungskonsole erstellt. Wenn diese Automatik nicht passend ist, kann das jeweilige Modul über die Funktion [GetCompatibleParents](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) die Automatik der Verwaltungskonsole beeinflussen.
### Beispiel
Kommunikation zwischen I/O, Splitter und Device.
Das Device hat den Splitter als Parent und der Splitter hat das I/O als Parent.
_Auszug aus den jeweiligen module.json_
__Beispiel GUIDs der Datenpakettypen:__
IO_TX: {65465465-6546-6546-6546-65465465}
IO_RX: {AE3AE3A-AE3A-AE3A-AE3A-AE3AE3AE}
Device_TX: {78978978-7897-7897-7897-78978978}
Device_RX: {12312312-1231-1231-1231-12312312}
```php
// Innerhalb des I/Os (Parent vom Splitter)
// I/Os haben normalerweise keine weitere Parents. Somit sollte die Liste normalerweise leer sein.
"parentRequirements": [],
// GUID des Datenpakettyps, welches via SendDataToChildren genutzt wird
"childRequirements": ["{AE3AE3A-AE3A-AE3A-AE3A-AE3AE3AE}"],
// Liste GUIDs der Datenpakettypen auf die gehorcht wird.
// Diese wird von der Funktion ForwardData (Daten kommen vom Child) verarbeitet.
"implemented": ["{65465465-6546-6546-6546-65465465}"],
// Innerhalb des Splitters (Parent vom Device, Child vom I/O)
// GUID des Datenpakettyps, welches via SendDataToParent genutzt wird
"parentRequirements": ["{65465465-6546-6546-6546-65465465}"],
// GUID des Datenpakettyps, welches via SendDataToChildren genutzt wird
"childRequirements": ["{12312312-1231-1231-1231-12312312}"],
// Liste GUIDs der Datenpakettypen auf die gehorcht wird.
// Diese wird in wird entweder von der Funktion ForwardData (Daten kommen vom Child) oder ReceiveData (Daten kommen vom Parent) verarbeitet.
"implemented": ["{AE3AE3A-AE3A-AE3A-AE3A-AE3AE3AE}", "{78978978-7897-7897-7897-78978978}"],
// Innerhalb des Device (Child vom Splitter)
// GUID des Datenpakettyps, welches via SendDataToParent genutzt wird
"parentRequirements": ["{78978978-7897-7897-7897-78978978}"],
// Devices haben normalerweise keine weitere Children. Somit sollte die Liste normalerweise leer sein.
"childRequirements": [],
// Liste GUIDs der Datenpakettypen auf die gehorcht wird.
// Diese wird von der Funktion ReceiveData (Daten kommen vom Parent) verarbeitet.
"implemented": ["{12312312-1231-1231-1231-12312312}"],
```
## Datenverwaltung
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/datenverwaltung/
_Benötigt Symcon >= 4.0_
### Beschreibung
Ein Modul hat grundlegend vier verschiedene Formen Daten zu verwalten. Dies sind Eigenschaften, Attribute, Buffer und Statusvariablen. Diese Unterscheiden sich in Aufgabe, Zugriffsmöglichkeiten und Persistenz.
Eigenschaften
Attribute
Buffer
Statusvariablen
#### Eigenschaften
Eigenschaften sind persistente Daten eines Moduls, welche vom Benutzer konfiguriert werden sollen/müssen. Diese Daten werden erst bei "Übernehmen" gespeichert. Eigenschaften sind zum Beispiel benötigte Logindaten, Geräte-ID oder Intervall zur Abfrage von Sensorwerten. Dies geschieht im Regelfall über die Konfigurationsseite, welche über die [form.json](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) definiert wird.
| Funktionsname | Kurzbeschreibung |
| -------------------------------------------------------------- | ------------------------------------------ |
| [ReadPropertyBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert einer Boolean Eigenschaft |
| [ReadPropertyFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert einer Float Eigenschaft |
| [ReadPropertyInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert einer Integer Eigenschaft |
| [ReadPropertyString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert einer String Eigenschaft |
| [RegisterPropertyBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine Boolean Eigenschaft |
| [RegisterPropertyFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine Float Eigenschaft |
| [RegisterPropertyInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine Integer Eigenschaft |
| [RegisterPropertyString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine String Eigenschaft |
```php
public function Create() {
//Never delete this line!
parent::Create();
$this->RegisterPropertyBoolean("EmulateStatus", true);
$this->RegisterPropertyFloat("Faktor", 0.5);
$this->RegisterPropertyInteger("DeviceID", 0);
$this->RegisterPropertyString("Text", "");
}
```
#### Attribute
Attribute sind persistente Daten eines Moduls, welche einzig vom Modul selbst gesetzt und sofort gespeichert werden. Dies sind zum Beispiel Tokens bei verschlüsselten Verbindungen oder gespeicherte Werte einer Szenensteuerung.
| Funktionsname | Kurzbeschreibung |
| --------------------------------------------------------------- | ---------------------------------------- |
| [ReadAttributeBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert eines Boolean Attributs |
| [ReadAttributeFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert eines Float Attributs |
| [ReadAttributeInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert eines Integer Attributs |
| [ReadAttributeString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert eines String Attributs |
| [RegisterAttributeBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt ein Boolean Attribut |
| [RegisterAttributeFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt ein Float Attribut |
| [RegisterAttributeInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt ein Integer Attribut |
| [RegisterAttributeString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt ein String Attribut |
| [WriteAttributeBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Schreibt in ein Boolean Attribut |
| [WriteAttributeFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Schreibt in ein Float Attribut |
| [WriteAttributeInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Schreibt in ein Integer Attribut |
| [WriteAttributeString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Schreibt in ein String Attribut |
__Beispiel__
```php
public function Create() {
//Never delete this line!
parent::Create();
$this->RegisterAttributeBoolean("BoolAttr", true);
$this->RegisterAttributeInteger("IntAttr", 5);
$this->RegisterAttributeFloat("FloatAttr", 3.7);
$this->RegisterAttributeString("StrAttr", "lalala");
}
public function BumpAndShow() {
var_dump($this->ReadAttributeBoolean("BoolAttr"));
var_dump($this->ReadAttributeInteger("IntAttr"));
var_dump($this->ReadAttributeFloat("FloatAttr"));
var_dump($this->ReadAttributeString("StrAttr"));
$this->WriteAttributeBoolean("BoolAttr", !$this->ReadAttributeBoolean("BoolAttr"));
$this->WriteAttributeInteger("IntAttr", $this->ReadAttributeInteger("IntAttr")*2);
$this->WriteAttributeFloat("FloatAttr", $this->ReadAttributeFloat("FloatAttr")+0.1);
$this->WriteAttributeString("StrAttr", $this->ReadAttributeString("StrAttr") . "öäü");
}
```
#### Buffer
Buffer sind nicht persistente Daten eines Moduls, welche einzig vom Modul selbst verwaltet werden sollen. Dies sind zum Beispiel eingehende Datensätze, welche nicht in einem übermittelt werden, sondern nach und nach eintreffen und somit zusammengesetzt werden müssen. Erst bei einem vollständigem Datensatz werden diese vom Buffer genommen und vom Modul verarbeitet.
| Funktionsname | Kurzbeschreibung |
| ---------------------------------------------------- | -------------------------------- |
| [GetBuffer](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Inhalt eines Buffers |
| [GetBufferList](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert ein Array aller Buffer |
| [SetBuffer](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt einen Buffer |
__Beispiel__
```php
public function ReceiveData($JSONString) {
//Decode JSONString
$data = json_decode($JSONString);
//Parse and write values to our buffer
$this->SetBuffer("Test", utf8_decode($data->Buffer));
//Print buffer
IPS_LogMessage("IOTest", $this->GetBuffer("Test"));
}
```
#### Statusvariablen
Statusvariablen sind persistente Daten eines Moduls, welche vom Modul jederzeit verändert werden können. Diese sind im Objektbaum sichtbar und stehen zur weiteren Verarbeitung und Darstellung in den [Visualisierungen](https://www.symcon.de/de/llms/components/tile-visualization.md) zur Verfügung. Statusvariablen sind zum Beispiel Sensorwerte, im WebFront darzustellende Aktorenwerte und Statuswerte zur Weiterverarbeitung.
| Funktionsname | Kurzbeschreibung |
| -------------------------------------------------------------- | ---------------------------------------- |
| [DisableAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Deaktiviert die Standardaktion |
| [EnableAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Aktiviert die Standardaktion |
| [GetValue](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Liefert den Wert einer Variable |
| [SetValue](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Setzt den Wert einer Variable |
| [MaintainAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Ruft DisableAction oder EnableAction auf |
| [MaintainVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Konfiguriert eine Statusvariable |
| [RegisterVariableBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine Boolean Statusvariable |
| [RegisterVariableFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine Float Statusvariable |
| [RegisterVariableInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine Integer Statusvariable |
| [RegisterVariableString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Erstellt eine String Statusvariable |
| [RequestAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Setzt den Wert einer Statusvariable |
| [UnregisterVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Löscht eine Statusvariable |
__Beispiel__
```php
public function Create() {
//Never delete this line!
parent::Create();
//Variables
$this->RegisterVariableString("TextData", "TextData", "");
IPS_SetHidden($this->GetIDForIdent("TextData"), true);
$this->RegisterVariableString("SimulationView", "Simulationsvorschau", "~HTMLBox");
$this->RegisterVariableInteger("SimulationCounter", "Simulationszähler" , "");
$this->RegisterVariableFloat("Faktor", "Zoom Faktor Wandanzeige", "Faktor.Anzeige");
$this->RegisterVariableBoolean("Active", "Simulation aktiv", "~Switch");
$this->EnableAction("Active");
}
```
## HTML-SDK
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/html-sdk/
_Benötigt Symcon >= 7.1_
### Beschreibung
Das HTML-SDK ermöglicht es PHP-Modulen eine individuelle [Objektdarstellung](https://www.symcon.de/de/llms/components/object-presentation.md) zu nutzen. Diese Darstellung ermöglicht dank HTML volle Flexibilität. Durch Nachrichten zwischen der HTML-Darstellung und dem Modul kann die Darstellung zur Laufzeit aktualisiert werden oder das Modul über Interaktion durch den Benutzer informieren.
### HTML als Darstellung nutzen
Soll das HTML-SDK verwendet werden, so muss die Darstellung mit der Funktion [SetVisualizationType](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) aktiviert werden. Soll dann die Kachel in der Visualisierung dargestellt werden, wird die Funktion [GetVisualizationTile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) verwendet um den HTML-Inhalt zurückzugeben.
### Übersetzung
Analog zu [Konfigurationsformularen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) werden auch die Texte der HTML-Elemente der Darstellung basierend auf der Sprache des Benutzers [lokalisiert](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md).
### Icons
Die [Symcon Icons](https://www.symcon.de/de/llms/components/icons.md) können innerhalb der HTML Darstellung verwendet werden, indem die icons.js als Skript eingebunden wird:
```php
```
Wenn das Skript eingebunden ist, können Icons entsprechend der [Dokumentation von Font Awesome](https://docs.fontawesome.com/web/add-icons/how-to) angezeigt werden. Es sind alle regulär in Symcon verwendbaren Icons nutzbar, also Classic Icons mit dem Stil Light per CSS Klasse fa-light sowie Brands über die Klasse fa-brands. Die Symcon-spezifischen Icons können mit der Klasse fa-kit genutzt werden.
### Nachrichten
Die Funktion [GetVisualizationTile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) wird initial einmalig aufgerufen. Soll die Darstellung zur Laufzeit angepasst werden, so muss dies über Nachrichten geschehen. Alternativ ermöglichen Nachrichten einen Kanal von der Darstellung zum Modul um Variablen zu schalten oder andere Interaktion durchzuführen.
> **Hinweis:** Es ist zwar möglich eine vergleichbare Kommunikation auch über eine [HTML-Box](https://www.symcon.de/de/llms/components/object-presentation.md) zu realisieren. Dies ist allerdings zum einen recht aufwendig und birgt zum anderen das Risiko Sicherheitslücken zu erstellen, welche ausgenutzt werden könnten. Die Kommunikation via HTML-SDK ist im Gegenzug in beide Richtungen mit dem Passwort der Visualisierung abgesichert.
#### Modul zu Darstellung
Soll eine Nachricht vom Modul zur Darstellung geschickt werden, so muss im Modul die Funktion [UpdateVisualizationValue](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) verwendet werden. Um den Inhalt dieser Nachricht in der Darstellung zu empfangen und zu verarbeiten, muss via JavaScript die Funktion [handleMessage](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) implementiert werden. Diese erhält als Eingabe genau den Inhalt, der mit UpdateVisualizationTile abgeschickt wurde. Das Format dieser Daten ist absolut frei und sollte passend zum Modul gewählt werden.
#### Darstellung zu Modul
Die Darstellung kann via JavaScript die Funktion [requestAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) verwenden. Diese Funktion führt im Gegenzug auf Seite des Moduls die PHP-Funktion [RequestAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) aus, wodurch das Modul auf die Nachricht reagieren kann.
### Spezielle Funktionen in JavaScript
Das HTML-SDK bietet eine Reihe von Funktionen, welche innerhalb der Darstellung via JavaScript verwendet werden können.
| Funktion | Beschreibung |
| --------------------------------------------------- | -------------------------------------------------------------------------- |
| [handleMessage](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | Diese Funktion muss definiert werden um Nachrichten vom Modul zu empfangen |
| [requestAction](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | Diese Funktion schickt eine Nachricht ans Modul |
| [translate](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | Übersetzt Text basierend auf der Lokalisierung |
| [translateHTML](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | Übersetzt den Text von HTML-Elementen basierend auf der Lokalisierung |
### Webinar und Beispiele
Bei der Veröffentlichung wurde die Funktionalität des HTML-SDK im Rahmen eines Webinars auf [YouTube](https://www.youtube.com/live/-dIHZRYbqpA?si=7QozwcUIwyK8l4zB) vorgestellt.
In unserem Test-Repository können auch einige Beispielimplementation eingesehen und ausprobiert werden:
| Beispiel | Beschreibung |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [Entenzähler](https://github.com/symcon/SymconTest/tree/master/HTMLVisuTestDuckCounters) | Ein kleiner Zähler mit ausführlichen Kommentaren |
| [Wärmepumpe](https://github.com/symcon/SymconTest/tree/master/HTMLVisuTestHeatingPump) | Ein komplexes und umfangreiches Beispiel zur Darstellung einer Wärmepumpe |
## handleMessage
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/html-sdk/handlemessage/
`void handleMessage(mixed Daten)`
_Benötigt Symcon >= 7.1_
Diese Funktion muss definiert werden um Nachrichten vom Modul zu empfangen
**Parameter**
- `Daten` (mixed): beliebige Daten
**Rückgabewert** (void): Keine Rückgabe
beliebige Daten
**Beispiel**
```text
function handleMessage(data) {
// In diesem Beispiel beinhaltet data einfach einen Text, welcher möglicherweise übersetzt und angezeigt werden soll
document.getElementById('info').textContent = translate(data);
}
```
## openObject
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/html-sdk/openobject/
`void openObject(int ObjektID)`
_Benötigt Symcon >= 8.2_
**Parameter**
- `ObjektID` (int): Die ID des Objekts, welches geöffnet werden soll.
**Rückgabewert** (void): Keine Rückgabe
Die ID des Objekts, welches geöffnet werden soll.
**Beispiel**
```text
// Öffnet das Objekt mit der ID 12345
openObject(12345);
```
## requestAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/html-sdk/requestaction/
`void requestAction(string Ident, mixed Wert)`
_Benötigt Symcon >= 7.1_
Diese Funktion schickt eine Nachricht ans Modul
**Parameter**
- `Ident` (string): Ein Ident
- `Wert` (mixed): Ein Wert
**Rückgabewert** (void): Keine Rückgabe
Ein Wert
**Beispiel**
```text
// Schalte Zähler auf 5
requestAction('Counter', 5);
```
## translate
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/html-sdk/translate/
`string translate(string Original)`
_Benötigt Symcon >= 7.1_
Übersetzt Text basierend auf der Lokalisierung
**Parameter**
- `Original` (string): Der zu übersetzende englische Originaltext
**Rückgabewert** (string): Der übersetzte Text
Der zu übersetzende englische Originaltext
**Beispiel**
```text
// Gebe den übersetzten Text in der Konsole aus
console.log(translate('Hallo Welt'));
```
## translateHTML
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/html-sdk/translatehtml/
`void translateHTML(object Knoten)`
_Benötigt Symcon >= 7.1_
Übersetzt den Text von HTML-Elementen basierend auf der Lokalisierung
**Parameter**
- `Knoten` (object): Ein HTML-Element
**Rückgabewert** (void): Keine Rückgabe
Ein HTML-Element
**Beispiel**
```text
// Übersetze Inhalt des Textblockes 'info'
translateHTML(document.getElementById('info'));
```
## Konstanten
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konstanten/
_Benötigt Symcon >= 5.1_
### Konstanten
| Define | Beschreibung |
| ----------------------------------------------------------------- | --------------------------------------------- |
| EVENTCONDITIONCOMPARISON | Vergleichskonditionen für bedingte Ereignisse |
| EVENTCYCLICDATETYPE | Datumstyp bei zyklischem Ereignis |
| EVENTCYCLICTIMETYPE | Zeittyp des Ereignisses |
| EVENTTRIGGERTYPE | Auslösetyp bei ausgelösten Ereignis |
| EVENTTYPE | Typ des Ereignisses |
| MEDIATYPE | Typ der Mediainstanz |
| MODULETYPE | Typ des Moduls |
| OBJECTTYPE | Typ des Objekts |
| SCRIPTTYPE | Typ des Skripts |
| VARIABLETYPE | Typ der Variable |
#### EventConditionComparison
Vergleichskonditionen für bedingte Ereignisse
| Konstante | Wert | Beschreibung |
| --------------------------------------- | ---- | ------------- |
| EVENTCONDITIONCOMPARISON_EQUAL | 0 | Gleich |
| EVENTCONDITIONCOMPARISON_NOTEQUAL | 1 | Ungleich |
| EVENTCONDITIONCOMPARISON_GREATER | 2 | Größer als |
| EVENTCONDITIONCOMPARISON_GREATEROREQUAL | 3 | GrößerGleich |
| EVENTCONDITIONCOMPARISON_SMALLER | 4 | Kleiner als |
| EVENTCONDITIONCOMPARISON_SMALLEROREQUAL | 5 | KleinerGleich |
#### EventCyclicDateType
Datumstyp bei zyklischem Ereignis
| Konstante | Wert | Beschreibung |
| ------------------------- | ---- | -------------- |
| EVENTCYCLICDATETYPE_NONE | 0 | Kein Datumstyp |
| EVENTCYCLICDATETYPE_ONCE | 1 | Einmalig |
| EVENTCYCLICDATETYPE_DAY | 2 | Täglich |
| EVENTCYCLICDATETYPE_WEEK | 3 | Wöchentlich |
| EVENTCYCLICDATETYPE_MONTH | 4 | Monatlich |
| EVENTCYCLICDATETYPE_YEAR | 5 | Jährlich |
#### EventCyclicTimeType
Zeittyp des Ereignisses
| Konstante | Wert | Beschreibung |
| -------------------------- | ---- | ------------ |
| EVENTCYCLICTIMETYPE_ONCE | 0 | Einmalig |
| EVENTCYCLICTIMETYPE_SECOND | 1 | Sekündlich |
| EVENTCYCLICTIMETYPE_MINUTE | 2 | Minütlich |
| EVENTCYCLICTIMETYPE_HOUR | 3 | Stündlich |
#### EventTriggerType
Auslösetyp bei ausgelösten Ereignis
| Konstante | Wert | Beschreibung |
| ------------------------------ | ---- | ---------------------------- |
| EVENTTRIGGERTYPE_ONUPDATE | 0 | Bei Variablenaktualisierung |
| EVENTTRIGGERTYPE_ONCHANGE | 1 | Bei Variablenänderung |
| EVENTTRIGGERTYPE_ONLIMITEXCEED | 2 | Bei Grenzwertüberschreitung |
| EVENTTRIGGERTYPE_ONLIMITDROP | 3 | Bei Grenzwertunterschreitung |
| EVENTTRIGGERTYPE_ONVALUE | 4 | Bei bestimmten Wert |
#### EventType
Typ des Ereignisses
| Konstante | Wert | Beschreibung |
| ------------------ | ---- | -------------------- |
| EVENTTYPE_TRIGGER | 0 | Ausgelöstes Ereignis |
| EVENTTYPE_CYCLIC | 1 | Zyklisches Ereignis |
| EVENTTYPE_SCHEDULE | 2 | Wochenplan Ereignis |
#### MediaType
Typ der Mediainstanz
| Konstante | Wert | Beschreibung |
| ------------------ | ---- | ------------ |
| MEDIATYPE_IPSVIEW | 0 | IPSView |
| MEDIATYPE_IMAGE | 1 | Bild |
| MEDIATYPE_SOUND | 2 | Ton |
| MEDIATYPE_STREAM | 3 | Stream |
| MEDIATYPE_CHART | 4 | Chart |
| MEDIATYPE_DOCUMENT | 5 | Dokument |
#### ModuleType
Typ des Moduls
| Konstante | Wert | Beschreibung |
| ------------------------ | ---- | ---------------- |
| MODULETYPE_CORE | 0 | Kern |
| MODULETYPE_IO | 1 | I/O |
| MODULETYPE_SPLITTER | 2 | Splitter |
| MODULETYPE_DEVICE | 3 | Geräte |
| MODULETYPE_CONFIGURATOR | 4 | Konfigurator |
| MODULETYPE_DISCOVERY | 5 | Erkennungsdienst |
| MODULETYPE_VISUALIZATION | 6 | Visualisierung |
#### ObjectType
Typ des Objekts
| Konstante | Wert | Beschreibung |
| ------------------- | ---- | ------------ |
| OBJECTTYPE_CATEGORY | 0 | Kategorie |
| OBJECTTYPE_INSTANCE | 1 | Instanz |
| OBJECTTYPE_VARIABLE | 2 | Variablen |
| OBJECTTYPE_SCRIPT | 3 | Skript |
| OBJECTTYPE_EVENT | 4 | Ereignis |
| OBJECTTYPE_MEDIA | 5 | Media |
| OBJECTTYPE_LINK | 6 | Link |
#### ScriptType
Typ des Skripts
| Konstante | Wert | Beschreibung |
| ---------------------- | ---- | ------------ |
| SCRIPTTYPE_PHP | 0 | PHP-Skript |
| SCRIPTTYPE_FLOW | 1 | Ablaufplan |
| SCRIPTTYPE_IPSWORKFLOW | 2 | IPSWorkflow |
#### VariableType
Typ der Variable
| Konstante | Wert | Beschreibung |
| -------------------- | ---- | ------------ |
| VARIABLETYPE_BOOLEAN | 0 | Boolean |
| VARIABLETYPE_INTEGER | 1 | Integer |
| VARIABLETYPE_FLOAT | 2 | Float |
| VARIABLETYPE_STRING | 3 | String |
#### Darstellungen
| GUID | Konstante | Name |
| -------------------------------------- | ---------------------------------------- | ---------------------------------------------------- |
| {6B9CAEEC-5958-C223-30F7-BD36569FC57A} | VARIABLE_PRESENTATION_SLIDER | [Schieberegler](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {4153A8D4-5C33-C65F-C1F3-7B61AAF99B1C} | VARIABLE_PRESENTATION_LEGACY | [Legacy-Profil](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {3319437D-7CDE-699D-750A-3C6A3841FA75} | VARIABLE_PRESENTATION_VALUE_PRESENTATION | [Wertanzeige](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {6F477326-1683-A2FD-D2E7-477F366ECB62} | VARIABLE_PRESENTATION_VALUE_INPUT | [Werteingabe](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {9DE1D610-5106-97FB-714D-1AADEDF8377A} | VARIABLE_PRESENTATION_WEB_CONTENT | [Webinhalt](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {05CC3CC2-A0B2-5837-A4A7-A07EA0B9DDFB} | VARIABLE_PRESENTATION_COLOR | [Farbe](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {497C4845-27FA-6E4F-AE37-5D951D3BDBF9} | VARIABLE_PRESENTATION_DATE_TIME | [Datum/Uhrzeit](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {60AE6B26-B3E2-BDB1-A3A1-BE232940664B} | VARIABLE_PRESENTATION_SWITCH | [Schalter](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {6075FC22-69AF-B110-3749-C24138883082} | VARIABLE_PRESENTATION_SHUTTER | [Rollladen](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {52D9E126-D7D2-2CBB-5E62-4CF7BA7C5D82} | VARIABLE_PRESENTATION_ENUMERATION | [Aufzählung](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {08A6AF76-394E-D354-48D5-BFC690488E4E} | VARIABLE_PRESENTATION_DURATION | [Dauer](https://www.symcon.de/de/llms/components/object-presentation.md) |
#### Vorlagen
| GUID | Konstante | Name |
| -------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------ |
| {B4C70F3E-6613-DA1A-7279-5DEE8DEB1B24} | VARIABLE_TEMPLATE_DATE | [Datum](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {362DA268-56A2-E771-5E53-17E38B5D82E6} | VARIABLE_TEMPLATE_TIME | [Uhrzeit](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {BB0E9933-0403-BD3A-D1C9-255646934B00} | VARIABLE_TEMPLATE_DATE_TIME | [Datum/Uhrzeit](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {868B087E-A38D-2155-EBE0-157AFBBF9E8C} | VARIABLE_TEMPLATE_SLIDER_ROOM_TEMPERATURE | [Raumtemperatur](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {66062309-21A9-26C0-213F-775C52E1473B} | VARIABLE_TEMPLATE_SLIDER_COLOR_TEMPERATURE | [Farbtemperature](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {BC799412-0C66-551F-CAEC-7566F5D52BD9} | VARIABLE_TEMPLATE_SLIDER_ENERGY | [Energie](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {8EC19DF0-89FB-A77E-ED7D-047A949CF292} | VARIABLE_TEMPLATE_SLIDER_POWER | [Leistung](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {3BE75DE9-7D84-C082-2E77-9ED3AEE04D63} | VARIABLE_TEMPLATE_SHUTTER_LAMELLA_RIGHT | [Lamelle rechts](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {22A0DF9C-C200-154A-641B-3A3CB096DB6D} | VARIABLE_TEMPLATE_SHUTTER_LAMELLA_LEFT | [Lamelle links](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {90AF8F8F-183F-BBFD-E078-35FAB6DCFE4F} | VARIABLE_TEMPLATE_VALUE_PRESENTATION_ROOM_TEMPERATURE | [Raumtemperatur](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {2FED3D39-073D-6037-901B-2586A1AB5569} | VARIABLE_TEMPLATE_VALUE_PRESENTATION_POWER | [Leistung](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {C899FCFA-063E-897E-9DA4-28ADD278EED5} | VARIABLE_TEMPLATE_VALUE_PRESENTATION_ENERGY | [Energie](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {7BD38CF5-07F2-5B5B-8F7F-15398B823BFC} | VARIABLE_TEMPLATE_VALUE_PRESENTATION_BATTERY | [Batterie](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {C90EF36A-165E-D0B0-032C-F468F483D42B} | VARIABLE_TEMPLATE_VALUE_PRESENTATION_BATTERY_COLOR | [Batterie (Farbe)](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {0C711895-2F8E-DBFE-1700-84173491D229} | VARIABLE_TEMPLATE_COLOR_RAINBOW | [Regenbogen](https://www.symcon.de/de/llms/components/object-presentation.md) |
| {A7467E68-5C39-5BD9-C0C8-BCE6004FEEAA} | VARIABLE_TEMPLATE_COLOR_FOREST | [Wald](https://www.symcon.de/de/llms/components/object-presentation.md) |
#### InstanceStatus
Der Status einer Instanz
| Konstante | Wert | Beschreibung |
| ------------- | ---- | ---------------------------- |
| IS_CREATING | 101 | Instanz wird erstellt |
| IS_ACTIVE | 102 | Instanz ist aktiv |
| IS_DELETING | 103 | Instanz wird gelöscht |
| IS_INACTIVE | 104 | Instanz ist inaktiv |
| IS_NOTCREATED | 105 | Instanz wurde nicht erstellt |
| IS_STANDBY | 106 | Instanz ist im Standby |
#### Visualisierungstypen
ab 9.1
| Konstante | Wert | Beschreibung |
| ------------------------------------------- | ---- | ----------------------------------------------------------------------------- |
| INSTANCE_VISUALIZATION_TYPE_NONE | 0 | Die Instanz nutzt keine eigene Visualisierung |
| INSTANCE_VISUALIZATION_TYPE_HTML | 1 | Die Instanz nutzt eine HTML Visualisierung |
| INSTANCE_VISUALIZATION_TYPE_HTML_FULLSCREEN | 2 | Die Instanz nutzt eine HTML Visualisierung bei normaler und geöffneter Kachel |
## Lokalisierungen
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/lokalisierungen/
_Benötigt Symcon >= 4.1_
Die JSON-Datei "locale.json" beinhaltet die Übersetzungen für "label" und "caption" der Konfigurationsseite. Hier sind auch abstufende Sprachenkürzel möglich. Zum Beispiel können auch "de_DE" oder "de_AT" genutzt werden.
### Beispiele
__Grundaufbau der JSON Datei__
Die Sprachenkürzel geben an in welche Sprache übersetzt werden soll
```php
{
"translations": {
"de": {
"Zu übersetzendes Wort 1": "Übersetzung ins Deutsche - Wort 1",
"Zu übersetzendes Wort 2": "Übersetzung ins Deutsche - Wort 2"
},
"de_DE": {
"Zu übersetzendes Wort 1": "Übersetzung ins Deutsche - Wort 1",
"Zu übersetzendes Wort 2": "Übersetzung ins Deutsche - Wort 2"
},
"de_CH": {
"Zu übersetzendes Wort 1": "Übersetzung ins Schwiizerdütsch - Wort 1",
"Zu übersetzendes Wort 2": "Übersetzung ins Schwiizerdütsch - Wort 2"
}
}
}
```
__Vollständiges Beispiel anhand eines SMS Moduls (siehe Beispiel [Konfigurationsformulare](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) )__
```php
{
"translations": {
"de": {
"Username": "Benutzername",
"Password": "Passwort",
"Sender": "Absender",
"Type": "Typ",
"Combi-SMS": "Kombi-SMS",
"Number": "Nummer",
"Message": "Nachricht",
"Send Message": "Sende Nachricht",
"Read Balance": "Frage Guthaben ab",
"Login information valid": "Logindaten sind gültig",
"Authentication failed": "Authentifizierung ist fehlgeschlagen",
"No credits left": "Kein Guthaben vorhanden"
}
}
}
```
## Nachrichten
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/nachrichten/
_Benötigt Symcon >= 4.1_
### Beschreibung
Alle Nachrichten haben eine eigene ID, welche die Art der Nachricht beschreibt.
Dies ist eine fünfstellige Zahl und setzt sich wiefolgt zusammen:
Basis + Kategorie + Typ = Gesamtwert
> **Hinweis:** Ab Version 5.0 stehen die Werte automatisch als Konstante zur Verfügung
### Übersicht aller NachrichtIDs
### Nachrichtenbasis
Nachrichten von IP-Symcon haben die Wertebasis 10000, solche von Modulinstanzen (noch undokumentiert) die Wertebasis 20000.
| Define | Wert | Beschreibung |
| ------------- | ----- | --------------------- |
| IPS_BASE | 10000 | Wertebasis für Kernel |
| IPS_MODULBASE | 20000 | Wertebasis für Module |
### Nachrichtenkategorien
| Define | Wert | Beschreibung |
| ------------------------------------------------------------------------------ | ---- | ------------------- |
| [IPS_BASE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 0 | Service Nachrichten |
| [IPS_KERNELMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 100 | Kernel Manager |
| [IPS_LOGMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 200 | Meldungen Manager |
| [IPS_MODULEMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 300 | Modul Manager |
| [IPS_OBJECTMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 400 | Objekt Manager |
| [IPS_INSTANCEMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 500 | Instanz Manager |
| [IPS_SEARCHMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 510 | Such Manager |
| [IPS_VARIABLEMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 600 | Variablen Manager |
| [IPS_SCRIPTMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 700 | Script Manager |
| [IPS_EVENTMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 800 | Event Manager |
| [IPS_MEDIAMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 900 | Medien Manager |
| [IPS_LINKMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1000 | Link Manager |
| [IPS_FLOWMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1100 | Flow Manager |
| [IPS_ENGINEMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1200 | Script Engine |
| [IPS_PROFILEMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1300 | Profile Pool |
| [IPS_TIMERMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1400 | Timer Pool |
| [IPS_ACTIONMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1500 | Action Pool |
| [IPS_LICENSENMESSAGE](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) | 1600 | License Pool |
### Nachrichtentypen
#### IPS_BASE
Wertebasis 0
| Define | Wert | Gesamtwert | Beschreibung |
| --------------------------- | ---- | ---------- | ----------------------------------------------------- |
| IPS_KERNELSTARTED (ab 4.2) | 1 | 10001 | Wird nach KR_READY gesendet und synchron abgearbeitet |
| IPS_KERNELSHUTDOWN (ab 4.2) | 2 | 10002 | Wird vor KR_UNINIT gesendet und synchron abgearbeitet |
#### IPS_KERNELMESSAGE
Wertebasis 100
| Define | Wert | Gesamtwert | Beschreibung |
| ----------- | ---- | ---------- | ------------------------------------------------------------------------------- |
| KR_CREATE | 1 | 10101 | Kernel wurde erstellt |
| KR_INIT | 2 | 10102 | Kernel Komponenten werden initialisiert, Module geladen und Settings eingelesen |
| KR_READY | 3 | 10103 | Kernel ist bereit und läuft |
| KR_UNINIT | 4 | 10104 | "Shutdown"-Befehl erhalten, finalisiere alles geladene |
| KR_SHUTDOWN | 5 | 10105 | Finalisierung abgeschlossen, entferne Kernel |
#### IPS_LOGMESSAGE
Wertebasis 200
| Define | Wert | Gesamtwert | Beschreibung |
| ---------- | ---- | ---------- | ----------------------- |
| KL_MESSAGE | 1 | 10201 | Normale Nachricht |
| KL_SUCCESS | 2 | 10202 | Erfolg |
| KL_NOTIFY | 3 | 10203 | Änderungsbenachrichtung |
| KL_WARNING | 4 | 10204 | Warnung |
| KL_ERROR | 5 | 10205 | Fehlermeldung |
| KL_DEBUG | 6 | 10206 | Debug Information |
| KL_CUSTOM | 7 | 10207 | Sonstige Nachrichten |
#### IPS_MODULEMESSAGE
Wertebasis 300
| Define | Wert | Gesamtwert | Beschreibung |
| --------- | ---- | ---------- | -------------- |
| ML_LOAD | 1 | 10301 | Modul geladen |
| ML_UNLOAD | 2 | 10302 | Modul entladen |
#### IPS_OBJECTMESSAGE
Wertebasis 400
| Define | Wert | Gesamtwert | Beschreibung |
| ----------------- | ---- | ---------- | --------------------------------------- |
| OM_REGISTER | 1 | 10401 | Objekt erstellt |
| OM_UNREGISTER | 2 | 10402 | Objekt entfernt |
| OM_CHANGEPARENT | 3 | 10403 | Übergeordnetes Objekt hat sich geändert |
| OM_CHANGENAME | 4 | 10404 | Name hat sich geändert |
| OM_CHANGEINFO | 5 | 10405 | Beschreibung hat sich geändert |
| OM_CHANGETYPE | 6 | 10406 | Typ hat sich geändert |
| OM_CHANGESUMMARY | 7 | 10407 | Kurzinfo hat sich geändert |
| OM_CHANGEPOSITION | 8 | 10408 | Position hat sich geändert |
| OM_CHANGEREADONLY | 9 | 10409 | "Nur-Lesen"-Status hat sich geändert |
| OM_CHANGEHIDDEN | 10 | 10410 | Sichtbarkeit hat sich geändert |
| OM_CHANGEICON | 11 | 10411 | Icon hat sich geändert |
| OM_CHILDADDED | 12 | 10412 | Untergeordnetes Objekt hinzugefügt |
| OM_CHILDREMOVED | 13 | 10413 | Untergeordnetes Objekt entfernt |
| OM_CHANGEIDENT | 14 | 10414 | Ident hat sich geändert |
| OM_CHANGEDISABLED | 15 | 10415 | Bedienbarkeit hat sich geändert |
| OM_CHANGELOCKED | 16 | 10416 | Sperre hat sich geändert |
#### IPS_INSTANCEMESSAGE
Wertebasis 500
| Define | Wert | Gesamtwert | Beschreibung |
| ------------------ | ---- | ---------- | ------------------------------------- |
| IM_CREATE | 1 | 10501 | Instanz erstellt |
| IM_DELETE | 2 | 10502 | Instanz entfernt |
| IM_CONNECT | 3 | 10503 | Instanzinterface verfügbar |
| IM_DISCONNECT | 4 | 10504 | Instanzinterface nicht mehr verfügbar |
| IM_CHANGESTATUS | 5 | 10505 | Status hat sich geändert |
| IM_CHANGESETTINGS | 6 | 10506 | Einstellungen haben sich geändert |
| IM_CHANGEATTRIBUTE | 7 | 10507 | Attribut hat sich geändert |
| IM_ADDATTRIBUTE | 8 | 10508 | Attribut wurde hinzugefügt |
| IM_REMOVEATTRIBUTE | 9 | 10509 | Attribut wurde entfernt |
#### IPS_SEARCHMESSAGE
Wertebasis 510
| Define | Wert | Gesamtwert | Beschreibung |
| --------------- | ---- | ---------- | ------------------------- |
| IM_SEARCHSTART | 1 | 10511 | Suche wurde gestartet |
| IM_SEARCHSTOP | 2 | 10512 | Suche wurde gestoppt |
| IM_SEARCHUPDATE | 3 | 10513 | Suche hat neue Ergebnisse |
#### IPS_FORMMESSAGE
Wertebasis 520
| Define | Value | Total value | Description |
| ------------------ | ----- | ----------- | ------------------------------ |
| IM_FORMFIELDCREATE | 1 | 10521 | Formularfeld erstellt |
| IM_FORMFIELDDELETE | 2 | 10522 | Formularfeld entfernt |
| IM_FORMFIELDUPDATE | 3 | 10523 | Formularfeld hat sich geändert |
| IM_FORMRELOAD | 4 | 10524 | Lade Formularfeld erneut |
#### IPS_VARIABLEMESSAGE
Wertebasis 600
| Define | Wert | Gesamtwert | Beschreibung |
| ---------------------- | ---- | ---------- | ------------------------------------ |
| VM_CREATE | 1 | 10601 | Variable wurde erstellt |
| VM_DELETE | 2 | 10602 | Variable wurde entfernt |
| VM_UPDATE | 3 | 10603 | Variable wurde aktualisiert |
| VM_CHANGEPROFILENAME | 4 | 10604 | Variablenprofilname wurde geändert |
| VM_CHANGEPROFILEACTION | 5 | 10605 | Variablenprofilaktion wurde geändert |
| VM_CHANGEDLOCKED | 6 | 10606 | Sperre wurde geändert |
#### IPS_SCRIPTMESSAGE
Wertebasis 700
| Define | Wert | Gesamtwert | Beschreibung |
| ------------- | ---- | ---------- | ------------------------------------- |
| SM_CREATE | 1 | 10701 | Skript wurde erstellt |
| SM_DELETE | 2 | 10702 | Skript wurde entfernt |
| SM_CHANGEFILE | 3 | 10703 | Skript wurde Datei angehangen |
| SM_BROKEN | 4 | 10704 | Skript Fehlerstatus hat sich geändert |
| SM_UPDATE | 5 | 10704 | Skript wurde aktualisiert |
#### IPS_EVENTMESSAGE
Wertebasis 800
| Define | Wert | Gesamtwert | Beschreibung |
| ---------------------------------- | ---- | ---------- | --------------------------------------------------------------- |
| EM_CREATE | 1 | 10801 | Ereignis wurde erstellt |
| EM_DELETE | 2 | 10802 | Ereignis wurde entfernt |
| EM_UPDATE | 3 | 10803 | Ereignis wurde aktualisiert |
| EM_CHANGEACTIVE | 4 | 10804 | Ereignisaktivierung hat sich geändert |
| EM_CHANGELIMIT | 5 | 10805 | Ereignisaufruflimit hat sich geändert |
| EM_CHANGESCRIPT | 6 | 10806 | Ereignisskriptinhalt hat sich geändert |
| EM_CHANGETRIGGER | 7 | 10807 | Ereignisauslöser hat sich geändert |
| EM_CHANGETRIGGERVALUE | 8 | 10808 | Ereignisgrenzwert hat sich geändert |
| EM_CHANGETRIGGEREXECUTION | 9 | 10809 | Ereignisgrenzwertauslösung hat sich geändert |
| EM_CHANGECYCLIC | 10 | 10810 | zyklisches Ereignis hat sich geändert |
| EM_CHANGECYCLICDATEFROM | 11 | 10811 | Startdatum hat sich geändert |
| EM_CHANGECYCLICDATETO | 12 | 10812 | Enddatum hat sich geändert |
| EM_CHANGECYCLICTIMEFROM | 13 | 10813 | Startzeit hat sich geändert |
| EM_CHANGECYCLICTIMETO | 14 | 10814 | Endzeit hat sich geändert |
| EM_ADDSCHEDULEACTION | 15 | 10815 | Eintrag in der Aktionstabelle des Wochenplans wurde hinzugefügt |
| EM_REMOVESCHEDULEACTION | 16 | 10816 | Eintrag in der Aktionstabelle des Wochenplans wurde entfernt |
| EM_CHANGESCHEDULEACTION | 17 | 10817 | Eintrag in der Aktionstabelle des Wochenplans hat sich geändert |
| EM_ADDSCHEDULEGROUP | 18 | 10818 | Gruppierung der Wochenplantage wurde hinzugefügt |
| EM_REMOVESCHEDULEGROUP | 19 | 10819 | Gruppierung der Wochenplantage wurde entfernt |
| EM_CHANGESCHEDULEGROUP | 20 | 10820 | Gruppierung der Wochenplantage hat sich geändert |
| EM_ADDSCHEDULEGROUPPOINT | 21 | 10821 | Schaltpunkt einer Gruppierung wurde hinzugefügt |
| EM_REMOVESCHEDULEGROUPPOINT | 22 | 10822 | Schaltpunkt einer Gruppierung wurde entfernt |
| EM_CHANGESCHEDULEGROUPPOINT | 23 | 10823 | Schaltpunkt einer Gruppierung hat sich geändert |
| EM_ADDCONDITION | 24 | 10824 | Bedingung wurde hinzugefügt |
| EM_REMOVECONDITION | 25 | 10825 | Bedingung wurde entfernt |
| EM_CHANGECONDITION | 26 | 10826 | Bedingung hat sich geändert |
| EM_ADDCONDITIONVARIABLERULE | 27 | 10827 | Variablenregel der Bedingung wurde hinzugefügt |
| EM_REMOVECONDITIONVARIABLERULE | 28 | 10828 | Variablenregel der Bedingung wurde entfernt |
| EM_CHANGECONDITIONVARIABLERULE | 29 | 10829 | Variablenregel der Bedingung hat sich geändert |
| EM_ADDCONDITIONDATERULE | 30 | 10830 | Datumsregel der Bedingung wurde hinzugefügt |
| EM_REMOVECONDITIONDATERULE | 31 | 10831 | Datumsregel der Bedingung wurde entfernt |
| EM_CHANGECONDITIONDATERULE | 32 | 10832 | Datumsregel der Bedingung hat sich geändert |
| EM_ADDCONDITIONTIMERULE | 33 | 10833 | Zeitregel der Bedingung wurde hinzugefügt |
| EM_REMOVECONDITIONTIMERULE | 34 | 10834 | Zeitregel der Bedingung wurde entfernt |
| EM_CHANGECONDITIONTIMERULE | 35 | 10835 | Zeitregel der Bedingung hat sich geändert |
| EM_ADDCONDITIONDAYOFTHEWEEKRULE | 36 | 10836 | Wochentagsregel der Bedingung wurde hinzugefügt |
| EM_REMOVECONDITIONDAYOFTHEWEEKRULE | 37 | 10837 | Wochentagsregel der Bedingung wurde entfernt |
| EM_CHANGECONDITIONDAYOFTHEWEEKRULE | 38 | 10838 | Wochentagsregel der Bedingung hat sich geändert |
#### IPS_MEDIAMESSAGE
Wertebasis 900
| Define | Wert | Gesamtwert | Beschreibung |
| --------------- | ---- | ---------- | ------------------------------------------------- |
| MM_CREATE | 1 | 10901 | Medienobjekt wurde erstellt |
| MM_DELETE | 2 | 10902 | Medienobjekt wurde entfernt |
| MM_CHANGEFILE | 3 | 10903 | Datei des Medienobjekts wurde geändert |
| MM_AVAILABLE | 4 | 10904 | Verfügbarkeit des Medienobjekts hat sich geändert |
| MM_UPDATE | 5 | 10905 | Medienobjekt wurde aktualisiert |
| MM_CHANGECACHED | 6 | 10906 | Cacheoption vom Medienobjekt hat sich geändert |
#### IPS_LINKMESSAGE
Wertebasis 1000
| Define | Wert | Gesamtwert | Beschreibung |
| --------------- | ---- | ---------- | -------------------------------- |
| LM_CREATE | 1 | 11001 | Link wurde erstellt |
| LM_DELETE | 2 | 11002 | Link wurde entfernt |
| LM_CHANGETARGET | 3 | 11003 | Ziel des Links hat sich geändert |
#### IPS_FLOWMESSAGE
Wertebasis 1100
| Define | Wert | Gesamtwert | Beschreibung |
| --------------- | ---- | ---------- | --------------------------------------------------------- |
| FM_CONNECT | 1 | 11101 | Instanz wurde verbunden |
| FM_DISCONNECT | 2 | 11102 | Instanz wurde getrennt |
| FM_CHILDADDED | 3 | 11103 | Untergeordnete Instanz wurde mit dieser Instanz verbunden |
| FM_CHILDREMOVED | 4 | 11104 | Untergeordnete Instanz wurde von dieser Instanz getrennt |
#### IPS_ENGINEMESSAGE
Wertebasis 1200
| Define | Wert | Gesamtwert | Beschreibung |
| ------------- | ---- | ---------- | ----------------------------------------------------------------------------- |
| SE_UPDATE | 1 | 11201 | Scriptengine wurde neu geladen |
| SE_EXECUTE | 2 | 11202 | Script wurde ausgeführt |
| SE_RUNNING | 3 | 11203 | Script wird ausgeführt |
| SE_FLOWSCRIPT | 4 | 11204 | Bei Ablaufplan Status (entweder alle Schritte abgeschlossen oder abgebrochen) |
#### IPS_PROFILEMESSAGE
Wertebasis 1300
| Define | Wert | Gesamtwert | Beschreibung |
| --------------------- | ---- | ---------- | ------------------------------------------- |
| PM_CREATE | 1 | 11301 | Profil wurde erstellt |
| PM_DELETE | 2 | 11302 | Profil wurde entfernt |
| PM_CHANGETEXT | 3 | 11303 | Profilprefix/Profilsuffix hat sich geändert |
| PM_CHANGEVALUES | 4 | 11304 | Profilwerte haben sich geändert |
| PM_CHANGEDIGITS | 5 | 11305 | Profilnachkommastellen haben sich geändert |
| PM_CHANGEICON | 6 | 11306 | Profilicon hat sich geändert |
| PM_ASSOCIATIONADDED | 7 | 11307 | Profilassoziation wurde hinzugefügt |
| PM_ASSOCIATIONREMOVED | 8 | 11308 | Profilassoziation wurde entfernt |
| PM_ASSOCIATIONCHANGED | 9 | 11309 | Profilassoziation hat sich geändert |
#### IPS_TIMERMESSAGE
Wertebasis 1400
| Define | Wert | Gesamtwert | Beschreibung |
| ----------------- | ---- | ---------- | -------------------------------- |
| TM_REGISTER | 1 | 11401 | Timer wurde erstellt |
| TM_UNREGISTER | 2 | 11402 | Timer wurde entfernt |
| TM_CHANGEINTERVAL | 3 | 11403 | Timer Interval hat sich geändert |
#### IPS_ACTIONMESSAGE
Wertebasis 1500
| Define | Wert | Gesamtwert | Beschreibung |
| ------------------ | ---- | ---------- | -------------------------------- |
| AM_FORMFIELDCREATE | 1 | 11501 | Aktuell ungenutzt |
| AM_FORMFIELDDELETE | 2 | 11502 | Aktuell ungenutzt |
| AM_FORMFIELDUPDATE | 3 | 11503 | Form-Element benötigt ein Update |
| AM_FORMRELOAD | 4 | 11504 | Konfigurationsformular neuladen |
#### IPS_LICENSEMESSAGE
Wertebasis 1600
| Define | Wert | Gesamtwert | Beschreibung |
| --------------------- | ---- | ---------- | ------------------------------- |
| LP_UPDATELICENSE | 1 | 11601 | Lizenz wurde geändert |
| LP_UPDATESUBSCRIPTION | 2 | 11602 | Subskription wurde aktualisiert |
### Nachrichtenparameter
Werte von verschiedenen Nachrichtenparametern
#### Search Handling
| Define | Wert | Gesamtwert | Beschreibung |
| -------------- | ---- | ---------- | ------------------------------------------------------------------- |
| IF_UNKNOWN | 0 | 0 | Unbekannter Wert |
| IF_NEW | 1 | 1 | Gerät ist erstellt aber nicht konfiguriert |
| IF_OLD | 2 | 2 | Gerät ist konfiguriert und sollte eine InstanzID haben |
| IF_CURRENT | 3 | 3 | Gerät ist konfiguriert und die InstanzID gehört dem suchenden Gerät |
| IF_UNSUPPORTED | 4 | 4 | Gerät wird vom Modul nicht unterstützt |
#### Status Codes
| Define | Wert | Gesamtwert | Beschreibung |
| ------------- | ---- | ---------- | ----------------------------- |
| IS_SBASE | 100 | 100 | Wertebasis für Status Codes |
| IS_CREATING | 1 | 101 | Instanz wird erstellt |
| IS_ACTIVE | 2 | 102 | Instanz ist aktiv |
| IS_DELETING | 3 | 103 | Instanz wird gelöscht |
| IS_INACTIVE | 4 | 104 | Instanz ist inaktiv |
| IS_NOTCREATED | 5 | 105 | Instanz wurde nicht erstelltv |
#### Error Codes
| Define | Wert | Gesamtwert | Beschreibung |
| -------- | ---- | ---------- | ---------------------- |
| IS_EBASE | 200 | 200 | Allgemeiner Fehlerfall |
## Referenzen
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/referenzen/
_Benötigt Symcon >= 5.1_
### Beschreibung
Referenzen zeigen an, welche Objekte einen selbst zur fehlerfreien Funktionsweise benötigen. So wird zum Beispiel bei einer Referenzsuche auf eine Variable ein ausgelöstes Ereignis aufgeführt, welches bei Variablenänderung auslöst. Ohne die Variable kann das Ereignis nicht ordentlich funktionieren.
Abgerufen werden die Referenzen standardmässig über das [Kontextmenü](https://www.symcon.de/de/llms/concepts.md) im Objektbaum. In der dann angezeigten Liste kann dann zu den Objekten gesprungen werden.

### Referenzen verwalten
Im Modul können Referenzen hinzufügt und entfernt werden.
| Funktion | Beschreibung |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [GetReferenceList](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Diese Funktion liefert ein Array mit allen Referenzen. |
| [RegisterReference](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Diese Funktion registriert mithilfe der ZielobjektID eine Referenz, welches dann bei einer Referenzsuche gefunden wird. |
| [UnregisterReference](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) | Diese Funktion entfernt eine Referenz für das Modul. |
## Store
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/store/
Ab der Version 5.1 gibt es in IP-Symcon einen Module Store, in welchem entwickelte Module angeboten werden können. Die Grundlage hierfür ist eine Bibliothek, welche komfortabel gefunden und installiert werden kann.
> **Hinweis:** Allgemeine Informationen zum Module Store kann man hier finden: [Module Store](https://www.symcon.de/de/llms/components/management-console.md)
Für jede Bibliothek können bis zu drei verschiedene Kanäle angeboten werden: Stable, Beta und Testing
* __Stable__ ist der Kanal für die stabile Produktivversion der Bibliothek. Veröffentlichungen auf diesem Kanal werden durch das Symcon-Team geprüft.
* __Beta__ ist der offene Testkanal. Jeder Benutzer hat hierauf Zugriff und kann die Beta-Version installieren.
* __Testing__ beschreibt einen internen Testkanal. Hierzu müssen Benutzer explizit eingeladen werden, damit diese Zugriff auf den Kanal haben. Ist man nicht eingeladen, so erhält man keinen Einblick in diese Version.
## Einreichen
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/store/einreichen/
### Beschreibung
Soll eine entwickelte Bibliothek im Module Store angeboten werden, so muss dies über den Entwicklerbereich auf der [Accountseite](https://account.symcon.de) eingereicht werden.
### Entwicklerbereich
Der Entwicklerbereich ist auf der [Accountseite](https://account.symcon.de) unter "Entwicklerbereich" zu erreichen.

Hier werden alle bisherigen Einreichungen aufgelistet. Es werden die Downloads des Moduls sowie der Zustand der einzelnen Kanäle dargestellt. Über den Button "Bearbeiten" kann ein Modul angepasst werden. Über den Button "Modul hinzufügen" können neue Module für eine Einreichung vorbereitet werden. Mit dem Button "Prüfe auf aktuellen Stand" wird automatisch geprüft welche Module aktuell auf dem aktuellen Stand des Hauptbranches des dazugehörigen Repositories sind. Diese Funktion wird nur für Repositories auf GitHub unterstützt. Bei einer größeren Anzahl von Modulen werden entsprechend viele Anfragen an die GitHub-API gemacht, welche ohne Verknüpfung mit einem GitHub-Benutzerkonto schnell aufgebraucht werden können. Wird das Konto des persönlichen Bereichs mit [GitHub verbunden](https://www.symcon.de/./#Mit_GitHub_verbinden) wird dieses Limit erheblich erhöht. Falls dem eigenen Konto Zugriff auf andere Konten gewährt wurde, können durch die Auswahl "Konto" die Einreichungen dieser Konten geprüft und bearbeitet werden.
### Modul hinzufügen
Nach einem Klick auf "Modul hinzufügen" erscheint ein Dialog, in welchem eine Bundle ID und ein initialer Kanal ausgewählt wird.

Die Bundle ID ist eine eindeutige ID, welche auch bei neuen Versionen gleich bleibt, und aus Kleinbuchstaben und Punkten besteht. Es wird empfohlen die umgekehrte Domänennotation zu verwenden, z.B. de.symcon.alexa. Der initiale Kanal ist der Kanal für die erste Einreichung. Später können problemlos weitere Kanäle hinzugefügt werden.
### Modul einreichen
Unter "Modul bearbeiten" kann man den aktuellen Status nach Kanälen prüfen und die nächste Einreichung vorbereiten.

Unter GIT-URL wird die Adresse des Git Repository eingetragen, unter welcher die aktuelle Bibliothek zu finden ist. Um private Repositories zu verwenden, muss das Konto des persönlichen Bereichs mit einem [GitHub-Benutzerkonto verbunden](https://www.symcon.de/./#Mit_GitHub_verbinden) werden, welches Zugriff auf das private Repository hat.
> **Hinweis:** Aktuell werden private Repositories nur bei GitHub unterstützt.
Nach der URL wird der Commit ausgewählt, welcher veröffentlicht werden soll. Hierzu kann man auf das Zahnrad in der Zeile "GIT-Commit" klicken, den gewünschten Commit anklicken und per "Auswählen" bestätigen. Der Dialog bietet die Commits nach Branches aufgeteilt an. Wird der gewünschte Commit nicht angezeigt, können per "Mehr laden" mehr Commits eines Branches geladen werden. Alternativ kann die ID des Commits auch manuell eingegeben werden. Ist das Repository nicht bei GitHub ist der Dialog eingeschränkt und es kann lediglich ein Branch ausgewählt werden. Es wird automatisch der neueste Commit auf diesem Branch ausgewählt.

Eine Lokalisierung stellt Namen und Beschreibungen des Moduls in einer Sprache bereit. Es können mehrere Lokalisierungen für mehrere Sprachen hinzugefügt werden, mindestens eine ist allerdings erforderlich. Das Modul muss in allen lokalisierten Sprachen nutzbar sein. Wurde ein Modul einmal mit einer Lokalisierung veröffentlicht, so muss diese Sprache auch in zukünftigen Veröffentlichungen angeboten werden.
Durch einen Klick auf "Lokalisierung hinzufügen" öffnet sich ein Dialog in welchem die Sprache der neuen Lokalisierung ausgewählt werden kann.

Nachdem die Auswahl mit "OK" bestätigt wurde, erscheint eine neue leere Lokalisierung der ausgewählten Sprache. Mit einem Klick auf den Pfeil rechts kann eine Lokalisierung ausgeklappt werden.

Folgende Felder müssen für eine Lokalisierung ausgefüllt werden:
| Feld | Beschreibung |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Der angezeigte Name des Moduls |
| Beschreibung | Eine Beschreibung des Moduls |
| Versionsinformation | Informationen was zu dieser Version neu ist |
| Link zur Dokumentation | Ein Link zur Erklärung des Moduls. Dies kann beispielsweise eine Readme im Repository oder auch ein erklärender Beitrag im Forum sein |
Durch einen Klick auf das X neben der Sprache kann eine Lokalisierung wieder entfernt werden.
Abschließend werden passende Kategorien für die Einreichung ausgewählt. Über "Kategorie hinzufügen" erscheint ein Dialog in welchem eine neue Kategorie ausgewählt werden kann und mit "Auswählen" bestätigt wird.

Kategorien können durch einen Klick auf das dazugehörige X wieder entfernt werden. Für eine Einreichung ist mindestens eine Kategorie erforderlich, es dürfen aber auch mehr Kategorien sein.
Unter "Einreichung" können noch weitere Einstellungen vorgenommen werden.
| Einstellung | Beschreibung |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktualisierung beinhaltet keine funktionalen Änderungen | Diese Einstellung kann aktiviert werden, wenn die aktuelle Einreichung keine für Benutzer relevanten programmatischen Änderungen beinhaltet und beispielsweise nur der Stil aktualisiert wurde. Die neue Version wird Benutzern nicht angeboten. Dies kann sinnvoll sein um nicht-funktionale Änderungen einzureichen, damit das Modul wieder auf aktuellem Stand erkannt wird |
| Schließe Beta- und Testing-Kanal nach erfolgreichem Review | Ist diese Einstellung aktiviert, werden nach erfolgreicher Veröffentlichung alle niedrigeren Kanäle geschlossen. Geschlossene Kanäle sind nicht mehr im Module Store verfügbar. Benutzer, die nun auf einem geschlossenen Kanal sind, werden für Aktualisierungen auf den nächsthöheren verfügbaren Kanal verwiesen. Existieren aktuell keine Veröffentlichung auf einem niedrigeren Branch, wird diese Einstellung nicht angezeigt |
Abschließend bietet die aktuelle Vorlage drei Buttons. Durch "Verwerfen" wird die Vorlage wieder gelöscht. Existiert von dem Modul nur die Vorlage, so wird damit das gesamte Bundle gelöscht. "Speichern" speichert den aktuellen Zustand der Vorlage. Hierfür müssen nicht alle Elemente ausgefüllt sein. Ein Modul ohne Lokalisierungen und Kategorien kann also gespeichert werden, aber nicht eingereicht. Per "Einreichen" reicht man das Modul zur Bereitstellung im Module Store ein. Auf den Kanälen Testing und Beta wird das Modul direkt im Module Store angeboten. Bei einer Einreichung auf Stable durchläuft das Modul vor der Veröffentlichung einen Reviewprozess durch das Symcon-Team. Wird das Modul angenommen, wird es im Module Store veröffentlicht. Wird es abgelehnt, wird man im Entwicklerbereich und per E-Mail benachrichtigt, warum es zur Ablehnung kam.
### Review
Bei dem Review eines Moduls wird auf verschiedene Punkte auf Basis unser [Best Practices](https://gist.github.com/paresy/236bfbfcb26e6936eaae919b3cfdfc4f) geprüft. Dies sind inbesondere folgende Punkte:
1. Greift das Modul auf lokale Dateien zu und könnte diese auslesen und manipulieren?
* Es ist in Ausnahmefällen genehmigt auf lokale Dateien zuzugreifen, insbesondere innerhalb des IP-Symcon-Ordners. Hier erfolgt allerdings eine genauere Prüfung um Missbrauch zu verhindern.
2. Ist für jede Lokalisierung des Modules auch eine entsprechende Übersetzung vorhanden?
3. Lassen sich die Instanzen des Moduls fehlerfrei erstellen, auch wenn möglicherweise nicht alle Anforderungen erfüllt sind?
* Ein Modul muss unter allen Umständen als Instanz erstellbar sein. Das Modul muss also selbstständig prüfen ob die Anforderungen erfüllt sind. Sind die Anforderungen nicht erfüllt, so soll dies geeignet in der Instanzkonfiguration dargestellt werden.
4. Läuft eine eventuelle Kommunikation über Splitter/IO wie vorgesehen über den Datenfluss via [SendDataToChildren](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)/[SendDataToParent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)/[ReceiveData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)/[ForwardData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)?
5. Greift ein Modul nur auf eigene oder ihm zugewiesene Objekte zu?
* Eigene Objekte liegen unterhalb der Instanz.
* Per SelectVariable und ähnlichen Elementen können einem Modul weitere Objekte zugewiesen werden, welche im erwarteten Rahmen verwendet werden dürfen.
* Externe Objekte, welche dem Modul nicht zugewiesen wurden, dürfen nicht manipuliert werden.
6. Neue Objekte dürfen außerhalb der Instanz nur erstellt werden, wenn dies explizit vom Benutzer bestätigt wurde. Ein konformes Beispiel hierfür ist die Verwendung des Konfigurationselements "Configurator".
* Dies verbietet auch die Erstellung von Ereignissen um interne Funktionen zu schalten. Hierfür sind [RegisterTimer](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) bzw. [MessageSink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) und die dazugehörigen Funktionen zu verwenden.
7. Abweichungen sind mit Absprache möglich. Dies sollte bei Einreichung allerdings an geeigneter Stelle erörtert werden, beispielsweise per E-Mail oder als Kommentar an der betroffenen Stelle im Code.
8. Codequalität oder Fehlerfreiheit wird im Rahmen des Reviews nicht überprüft.
9. "IPSymcon", "IPS" oder vergleichbares darf nicht Teil eines in einer Lokalisierung gewählten Namens sein.
10. Module, die als Bedingung mehr als die aktuelle Stable-Version erfordern, also beispielsweise nur mit der aktuellen Beta funktionieren, dürfen nicht auf dem Stable-Kanal eingereicht werden.
11. Einige Objekteigenschaften befinden sich auch bei moduleigenen Objekten in der Hoheit des Benutzers. Diese dürfen initial vorgegeben werden, aber ohne explizite Bestätigung des Benutzers nicht weiter manipuliert werden. Diese Eigenschaften sind:
* Der Name
* Alle visuellen Einstellungen: Objekt anzeigen, Objekt aktiv und Icon
* Die Beschreibung
* Die Position
* Alle ereignisspezifischen Eigenschaften
* Benutzerdefiniertes Profil, benutzerdefinierte Aktion und Logging von Variablen dürfen nie ohne explizite Bestätigung gesetzt werden, auch nicht initial! Aktion oder Profil können selbstverständlich über Standardaktion bzw. -profil definiert werden.
12. PHP-Dateien dürfen nicht den kurzen PHP-Tag (<?) verwenden und sollten stattdessen den langen PHP-Tag (<?php) verwenden.
13. Nach der initialen Erstellung einer Instanz liegt die Hoheit über die Eigenschaften beim Benutzer.
* Wenn das Modul hier etwas ändern möchte, so können andere Werte über die Dynamikfunktion [UpdateFormField](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) vorgegeben werden und dann vom Benutzer bestätigt werden.
* Somit sollten die Funktionen [IPS_SetProperty](https://www.symcon.de/de/llms/functions/management-instances.md) und [IPS_ApplyChanges](https://www.symcon.de/de/llms/functions/management-instances.md) nie verwendet werden.
* Wird bei einer [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) oder einem [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) der Parameter loadValuesFromConfiguration auf false gesetzt, so muss die Eigenschaft dennoch beim Laden im Sinne des Benutzers gefüllt werden. Der Parameter soll es lediglich ermöglichen beispielsweise die Reihenfolge anzupassen oder neue Werte mittig hinzuzufügen.
14. Eine Einreichung benötigt einen sprechenden Namen, eine passende Beschreibung und Versionsinformation sowie eine Dokumentation, welche die Konfiguration und Verwendung des Moduls erklärt.
15. Sind Konfiguratoren mit einem Splitter oder I/O verbunden, so dürfen sie nur Geräte verwalten, welche auch zu diesem Splitter bzw. I/O verbunden sind
* Instanzen, welche mit dem gleichen Splitter oder I/O wie der Konfigurator verbunden sind, sollen im Konfigurator aufgelistet werden, egal ob diese physikalisch noch existieren oder nicht
* Instanzen, welche mit einem anderen Splitter oder I/O verbunden sind, dürfen nicht in einem Konfigurator mit Splitter oder I/O aufgelistet werden
16. Bietet ein Modul eine Discovery-Instanz an, so muss diese ohne Konfiguration funktionieren
17. Da Logging problemlos via $this->LogMessage realisiert werden kann und diese Nachrichten korrekt mit der sendenden Instanz verknüpft sind, darf IPS_LogMessage nicht mehr zum Logging verwendet werden
### Modul bearbeiten
Existiert unter "Modul bearbeiten" auf einem Kanal keine aktuelle Vorlage, so kann durch einen Klick auf "Neue Version vorbereiten" eine neue Vorlage erstellt werden. Im Dialog kann ausgewählt werden, ob man eine komplett neue Vorlage erstellt oder eine aktuelle Veröffentlichung als Vorlage verwenden möchte.

Alternativ ist bei Veröffentlichungen eine Option diese auf einen höheren Kanal zu ziehen vorhanden. Wurde eine Einreichung abgelehnt, so kann diese auch als neue Vorlage verwendet werden um erkannte Mängel auszugleichen ohne alles erneut zu konfigurieren.

Soll ein Modul, das sich aktuell im Review befindet, zurückgezogen werden, so kann dies durch einen Klick auf "Zurückziehen" getan werden. Befindet sich ein Modul im Module Store, so kann es nicht mehr zurückgezogen werden.
### Mit GitHub verbinden
Das Konto des persönlichen Bereichs kann mit GitHub verknüpft werden. Dies ermöglicht zum einen die Verwendung von privaten Repositories sowie eine deutlich höhere Menge an Abfragen an die GitHub-API. Diese können insbesondere relevant werden, wenn die veröffentlichten Module auf aktuellen Stand geprüft werden sollen. Die Verknüpfung kann in den [Einstellungen des persönlichen Bereichs](https://account.symcon.de/konto/einstellungen/) durchgeführt werden. Dazu muss im Bereich "(Entwickler) GitHub OAuth Verbindung" auf "Verbinden" geklickt werden.

Sofern im Browser aktuell kein GitHub-Benutzer angemeldet ist, geschieht dies im nächsten Schritt. Hierzu müssen E-Mail-Adresse und Passwort des GitHub-Benutzerkontos eingegeben werden. Ist bereits ein Benutzer angemeldet, wird dieser Schritt automatisch übersprungen.

Abschließend muss der Zugriff durch Symcon autorisiert werden. Dies geschieht durch einen Klick auf "Authorize symcon".

Nun ist das Konto des persönlichen Bereichs mit dem GitHub-Benutzerkonto verknüpft. Um die Verbindung im Nachhinein wieder zu lösen, kann dies via Klick auf "Trennen" getan werden.
## Struktur
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/struktur/
### Beschreibung
Die vorausgesetzte Struktur ist für eine richtige Funktionsweise innerhalb von IP-Symcon nötig. Nur wenn die Struktur eingehalten wird, funktioniert das Einbinden über [Module Control](https://www.symcon.de/de/llms/modules/module-control.md).
* Die "library.json" ist das Kernstück einer jeden Modulentwicklung.
* Die "module.php" und "module.json" bilden zusammen das eigentliche Modul.
* Für die Einrichtung der Konfigurationsseite kann die form.json genutzt werden.
* Für mögliche Übersetzungen dient die locale.json.
* Der Modulordnername (hier: Modul1, Modul2) sollte den gleichen Namen haben, wie der Klassenname in der module.php.
Ordner, welche keine module.json beinhalten, werden als fehlerhaft markiert.
Ausnahme bilden die Ordner:
* libs/ (ab Version 4.2)
* docs/ (ab Version 4.2)
* imgs/ (ab Version 4.2)
* tests/ (ab Version 4.4)
* actions/ (ab Version 6.0)
> **Hinweis:** Punkt-Ordner (z.B. .github, .style) werden ebenfalls ignoriert und sind nicht für die korrekte Funktionsweise des Modul nötig. Diese sind zum Beispiel wichtig, für die korrekte Funktionsweise des Repositories.
Diese Ordner werden nicht als Modul eingebunden und bieten die Möglichkeit externe Libraries, Dokumente, Bilder und Tests zur Verfügung zu stellen.
### Verzeichnisstruktur
```php
Bibliothek
|
- Modul1
| |
| - module.php
| |
| - module.json
| |
| - form.json (optional)
| |
| - locale.json (optional)
|
- Modul2
| |
| - module.php
| |
| - module.json
| |
| - form.json (optional)
| |
| - locale.json (optional)
|
- actions (optional)
| |
| - Definitionen von Aktionen
|
- libs (optional)
| |
| - beliebige Libraries
|
- docs (optional)
| |
| - beliebige Dokumente
|
- imgs (optional)
| |
| - beliebgie Mediendateien
|
- tests (optional)
| |
| - beliebige Testdateien
|
- library.json
|
- README.txt (optional)
```
---
# Konfigurationsformulare
> 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/konfigurationsformulare/
_Benötigt Symcon >= 4.0_
Die Konfigurationsformulare sind JSON Dateien, welche zur Konfiguration der Eigenschaften von IP-Symcon Instanzen genutzt werden.
Diese werden normalerweise von der Verwaltungskonsole geladen und entsprechend angezeigt.
Die JSON-Datei, welche das Konfigurationsformular beschreibt, besitzt bis zu zwei Bereiche die unabhängig voneinander individuell beschrieben werden können.
Eine Übersetzung der "caption" und "label" kann über die [Lokalisierungen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) via der locale.json hinzugefügt werden.
### Formularbereiche

__elements__
Im "elements"-Bereich definierte Formularfelder können die Eigenschaften einer Instanz setzen. Der Name eines Formularfeldes, sofern verfügbar, entspricht dem Namen der Eigenschaft, welche über [IPS_SetProperty](https://www.symcon.de/de/llms/functions/management-instances.md) gesetzt wird. Soll der "elements" Bereich nicht sichtbar sein, so ist dieser nicht zu definieren.
__actions__
Der "actions"-Bereich ist eine sogenannte Testumgebung. Die hier definierten Formularfelder haben nicht die Möglichkeit Eigenschaften der jeweiligen Instanz zu verändern. Soll der "actions" Bereich nicht sichtbar sein, so ist dieser nicht zu definieren.
Generell gilt: Die Testumgebung kann nur genutzt werden, wenn Veränderungen im Elemente-Bereich übernommen wurden. Dadurch wird verhindert, das nicht übernommene Einstellungen getestet werden.
__status__
Der "status"-Bereich definiert mögliche Statusmeldungen. Im "status"-Bereich sind keine Formularfelder erlaubt, sondern nur Statusmeldungen, welche unter [Statusmeldung](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) erklärt werden. Soll das Modul keine Statusmeldungen anzeigen, so ist dieser Bereich nicht zu definieren.
### Übersicht der einfügbaren Formularfelder
| Formularfeld / Type | ab IP-Symcon | Beschreibung |
| -------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------- |
| [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Button |
| [CheckBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Checkbox |
| [Configurator](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Beschreibt einen Konfigurator |
| [ExpansionPanel](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Auf- und zuklappbare Formularfelder |
| [HorizontalSlider](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Ein horizontaler Schieberegler |
| [Image](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Erstellt ein Bild auf der Modulseite |
| [IntervalBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Angabe von Zahlen mit Textbeschreibung/Einheit (veraltet) |
| [Label](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Eine Beschriftung |
| [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.2 | Eine editierbare Liste |
| [NumberSpinner](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Eingabefeld, bei dem nur Zahlen erlaubt sind. (optional mit Nachkommastellen) |
| [PasswordTextBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Eingabefeld für Passwörter |
| [PopupAlert](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Alarm, welcher ein Popup sofort öffnet |
| [PopupButton](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Button, welcher ein Popup öffnet |
| [RowLayout](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Zeilenansicht von mehreren Formularfeldern |
| [Select](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | DropDown-Menü |
| [SelectCategory](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für eine Kategorie |
| [SelectColor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.2 | Auswahldialog für eine Farbe |
| [SelectDate](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Auswahldialog für ein Datum |
| [SelectDateTime](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Auswahldialog für ein Datum und Uhrzeit |
| [SelectEvent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für ein Ereignis |
| [SelectFile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.2 | Auswahldialog für eine Datei |
| [SelectInstance](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für eine Instanz |
| [SelectLink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für einen Link |
| [SelectMedia](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für eine Media-Datei |
| [SelectObject](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für ein Objekt |
| [SelectScript](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für ein Skript |
| [SelectTime](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Auswahldialog für eine Uhrzeit |
| [SelectVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Auswahldialog für eine Variable |
| [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 5.0 | Erstellt einen Baum |
| [ValidationTextBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | 4.0 | Eingabefeld für Text |
### Beispiele
__Grundaufbau der JSON Datei__
```php
{
"elements":
[
... //Hier Formularfelder einfügen
],
"actions":
[
... //Hier Formularfelder einfügen
],
"status":
[
... //Hier Statusmeldungen einfügen
]
}
```
__Vollständiges Beispiel anhand eines SMS Moduls__
```php
{
"elements":
[
{ "type": "ValidationTextBox", "name": "Username", "caption": "Username" },
{ "type": "ValidationTextBox", "name": "Password", "caption": "Password" },
{ "type": "NumberSpinner", "name": "APIID", "caption": "APIID" },
{ "type": "ValidationTextBox", "name": "Sender", "caption": "Sender" },
{ "type": "Select", "name": "SMSType", "caption": "Type",
"options": [
{ "caption": "SMS", "value": 0 },
{ "caption": "Combi-SMS", "value": 1 },
{ "caption": "MMS", "value": 2 }
]}
],
"actions":
[
{ "type": "ValidationTextBox", "name": "Number", "caption": "Number" },
{ "type": "ValidationTextBox", "name": "Message", "caption": "Message" },
{ "type": "Button", "caption": "Send Message", "onClick": "SMS_Send($id, $Number, $Message);" },
{ "type": "Button", "caption": "Read Balance", "onClick": "echo 'Balance: '.sprintf('%.2f', SMS_RequestBalance($id)).' credits';" }
],
"status":
[
{ "code": 102, "icon": "active", "caption": "Login information valid" },
{ "code": 201, "icon": "error", "caption": "Authentication failed" },
{ "code": 202, "icon": "error", "caption": "No credits left" }
]
}
```
## Button
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/button/
Ein Button der bei Betätigung eine Aktion ausführt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Buttons |
| confirm (optional) | (__default:__ "") Beinhaltet dieser Parameter keinen leeren String, so wird bei Betätigung des Buttons der Text in einem Ja/Nein-Dialog angezeigt. Die onClick-Aktion wird nur ausgeführt, falls der Dialog mit "Ja" bestätigt wird. Ist der Parameter leer, so wird die Aktion direkt ausgeführt. (ab IP-Symcon 5.0) |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onClick-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann der Button verwendet werden, ansonsten wird er deaktiviert dargestellt (ab IP-Symcon 5.2) |
| label | Name und sichtbare Beschriftung des Buttons _(veraltet, nicht änderbar)_ |
| link (optional) | Ist dieser Parameter true, dann wird die Ausgabe des onClick-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. Ist der Parameter nicht gesetzt, dann wird auf Basis der Ausgabe entschieden, ob diese als Link geöffnet oder im Dialog angezeigt wird (siehe Infobox). (ab IP-Symcon 5.1) |
| name (optional) | Name des Buttons |
| onClick | Skript, welches bei einem Klick auf den Button ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es sind keine PHP-Tags erforderlich. Es stehen einige weitere Variablen zur Verfügung, welche im Infofeld weiter unten erörtert werden. |
| type | Button |
| visible (optional) | (__default:__ true) Bei true ist der Button sichtbar, ansonsten ist er unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | Feste Breite des Buttons in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird die Breite automatisch auf Basis der Beschriftung gewählt (ab IP-Symcon 5.2) |
> **Hinweis:** Die Variable $id steht in allen Bereichen zur Verfügung. Zusätzlich werden für alle Formularfelder Variablen erstellt, sofern ein Name vergeben wurde. Die Variable ist dann entsprechend als $Name nutzbar. Die Variable $Name ist nur innerhalb des selben Scope (z.B. actions oder elements) verfügbar.
> **Hinweis:** Steht in dem Parameter onClick ein "echo" in Kombination mit 'http'/'https' wird der Browser geöffnet und die URL aufgerufen. Ist ein "echo" in Kombination mit einem 'mailto:' vorhanden wird das Standard-Mailprogramm mit allen gesetzten Parametern geöffnet. Ist ein "echo" in Kombination mit einem 'link:' vorhanden wird 'link:' herausgefiltert und der verbleibende Inhalt wird im Browser geöffnet. Dadurch sind etwa relative Links möglich. (Verfügbar ab IP-Symcon 4.1)
### Beispiel
```php
//Das Beispiel gibt die InstanzID zurück.
{ "type": "Button", "caption": "An", "onClick": "echo $id;" }
//Sonderbeispiel:
//Das Beispiel öffnet bei "Klick" den Browser mit der angegebenen Adresse: 'https://www.symcon.de'
{
"type": "Button",
"caption": "Symcon",
"onClick": "echo 'https://www.symcon.de';"
}
//Das Beispiel fragt, ob der Wert einer Variablen tatsächlich auf 0 gesetzt werden soll
{
"type": "Button",
"caption": "Reset",
"onClick": "SetValue(12345, 0);",
"confirm": "Dies setzt die Variable zurück auf 0. Dabei können wichtige Daten verloren gehen. Sind Sie sicher?"
}
//Das Beispiel führt ein mehrzeiliges Skript aus
{
"type": "Button",
"caption": "Reset",
"onClick": [
"SetValue(12345, 0);",
"echo 'Wert wurde zurückgesetzt';"
]
}
```
## CheckBox
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/checkbox/
Erstellt eine Checkbox.
Falls im "elements"-Bereich erstellt, setzt die Checkbox eine Eigenschaft bei Übernahme auf __True__ oder __False__.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.

### Parameter
| Parameter | Beschreibung |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die CheckBox verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab Symcon 5.2) |
| items (optional) | (__default:__ []) Liste mit Konfigurationselementen, welche nur angezeigt werden, solange die CheckBox aktiviert ist. Die Werte der Elemente bleiben auch nach einem erneuten Deaktivieren erhalten (nicht änderbar) (ab Symcon 9.1) |
| itemsPosition (optional) | (__default:__ 0) Die Position der über "items" definierten Konfigurationselemente (ab Symcon 9.1) 0: Die Elemente werden unterhalb der CheckBox angezeigt 1: Die Elemente werden rechts neben der CheckBox angezeigt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 6.0) |
| name (optional) | Name der Checkbox/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung der Checkbox durch einen Klick ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.2) |
| type | CheckBox |
| value (optional) | (__default:__ false) Der Wert der CheckBox - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die CheckBox sichtbar, ansonsten ist sie unsichtbar (ab Symcon 5.2) |
| width (optional) | Feste Breite der Checkbox in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird die Breite automatisch auf Basis der Beschriftung gewählt (ab Symcon 5.3) |
### Beispiel
```php
{ "type": "CheckBox", "name": "status", "caption": "Status emulieren" }
//Konfigurationselemente, welche nur bei aktivierter CheckBox angezeigt werden
{ "type": "CheckBox", "name": "UseProxy", "caption": "Proxy verwenden",
"itemsPosition": 1,
"items": [
{ "type": "ValidationTextBox", "name": "ProxyHost", "caption": "Host" },
{ "type": "NumberSpinner", "name": "ProxyPort", "caption": "Port" }
]
}
```
## ColumnLayout
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/columnlayout/
_Benötigt Symcon >= 6.0_
Erstellt eine Spalte, in welcher Formularfelder untereinander dargestellt werden. Dies ist insbesondere hilfreich um den Inhalt dynamisch anzupassen.

### Parameter
| Parameter | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------- |
| items | Liste mit Konfigurationselementen innerhalb der Spalte |
| name (optional) | Name der Spalte |
| type | ColumnLayout |
| visible (optional) | (__default:__ true) Bei true ist die Spalte sichtbar, ansonsten ist sie unsichtbar |
### Beispiel
```php
// Spaltenlayout
{
"type": "ColumnLayout",
"items": [
{
"type": "SelectLocation",
"name": "Location",
"caption": "My Location"
},{
"type": "Button",
"caption": "Test",
"onClick": "TM_Update($id);"
},{
"type": "Button",
"caption": "Test2",
"onClick": "TM_Update2($id);"
}
]
}
```
## Configurator
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/configurator/
_Benötigt Symcon >= 5.0_
Beschreibt das Aussehen und Funktionalität eines Konfigurators.

### Allgemeine Parameter
| Parameter | Beschreibung |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption (optional) | Sichtbare Beschriftung der Konfigurationsliste |
| [columns](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (optional) | (__default:__ Spalten für Adresse ("address") und Name ("name") ) Spalten der Konfigurationsliste |
| discoveryInterval (optional) | (__default:__ 0) Macht die Konsole für die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eine Anfrage an das beinhaltende Konfigurationsformular, gibt dieser Parameter an, wie viele Sekunden vergangen sein müssen, bevor eine erneute Anfrage gestartet werden darf; Befinden sich innerhalb eines Konfigurationsformulares mehrere Elemente vom Typ Configurator, so wird der maximale Wert verwendet (ab IP-Symcon 6.3) |
| delete (optional) | (__default:__ false) Wenn true, dann wird hinter jedem Eintrag mit InstanzID ein Button eingeblendet, welcher die entsprechende Instanz löscht und die Zeile im Konfigurator aktualisiert |
| name (optional) | Name der Konfigurationsliste |
| onExpand (optional) | (__default:__ "") Skript, welches nach der Ausklappen eines Eintrages des Konfigurators ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. In dieser Ausführung bietet der Baum als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den ausgeklappten Eintrag, siehe [Ausgewählte Zeile als Variable in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 6.4) |
| rowCount (optional) | (__default:__ 0) sichtbare Anzahl von Zeilen; bei mehr Zeilen in der Liste wird ein Scrollbalken eingeblendet - ist der Wert 0, so füllt die Konfigurationsliste den restlichen noch verfügbaren Platz im Instanzeditor. Nur ein Konfigurationselement kann den gesamten restlichen Platz erhalten. |
| [sort](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (optional) | Sortierung der Tabelle. Wird dies nicht gesetzt bleibt die Liste unsortiert |
| type | Configurator |
| [values](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (optional) | Einträge der Form |
| visible (optional) | (__default:__ true) Bei true ist der Configurator sichtbar, ansonsten ist er unsichtbar (ab IP-Symcon 5.2) |
> **Hinweis:** Sollen die Parameter columns, sort oder values per [UpdateFormField](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) verändert werden, so müssen die neuen Werte als JSON codiert werden.
### Parameter für columns
| Parameter | Beschreibung |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung einer Spalte |
| label | Sichtbare Beschriftung einer Spalte _(veraltet)_ |
| name | eindeutiger Name einer Spalte um diese zu referenzieren; der Name darf nicht "id", "parent", "create", "expanded" oder "instanceID" sein |
| quickFilter (optional) | (__default:__ true) Bei true wird der Text dieser Spalte beim Schnellfilter in der Suche betrachtet. Sollte der Wert bei allen Spalten auf false gesetzt sein, so wird der Schnellfilter ausgeblendet. (ab IP-Symcon 7.2) |
| visible (optional) | (__default:__ true) Bei false wird die Spalte nicht angezeigt |
| width | Breite der Spalte in Pixeln, als CSS-String (z.B. "100px"); eine einzige Spalte darf den Wert "auto" haben, wodurch die Breite dieser Spalte den restlich verfügbaren Platz nutzt. Im Falle eines Baumes muss bei einer Spalte der Wert "auto" gesetzt sein. An dieser Spalte werden die Erweiterungs-Symbole dargestellt. |
### Parameter für sort
| Parameter | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------------------------- |
| column | Name der Spalte, nach welcher die Liste sortiert wird |
| direction | Die Richtung der Sortierung; "ascending" für eine aufsteigende Sortierung und "descending" für eine absteigende Sortierung |
### Parameter für values
| Parameter | Beschreibung |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| address (optional) | (__default__: "") Wurden die Standardspalten verwendet, so wird dieser Wert für die Adress-Spalte verwendet. |
| create (optional) | (__default__: error) Vorgabe der Konfiguration der erstellten Instanz ([Mehr Informationen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md)) |
| expanded (optional) | (__default__: false) Falls dieser Wert true ist, wird der Eintrag beim Laden des Konfigurationsformulares direkt ausgeklappt |
| instanceID (optional) | (__default__: 0) InstanzID des Gerätes im Objektbaum, 0 wenn das Gerät noch nicht erstellt wurde |
| id (optional) | Ein Identifikator, mit welchem der Eintrag für eine Baumdarstellung als Elternknoten adressiert werden kann, id muss größer als 0 sein |
| name (optional) | (__default__: "") Wurden die Standardspalten verwendet, so wird dieser Wert für die Namens-Spalte verwendet. Dieser Wert definiert zusätzlich den Namen der zu erstellenden Instanz. Existiert eine Instanz bereits, so wird in der Namens-Spalte der Name der Instanz angezeigt und nicht der Inhalt dieses Parameters. |
| parent (optional) | (__default__: 0) In diesem Feld kann die id eines Wertes gesetzt werden, welcher in der Baumdarstellung der Elternknoten von diesem Wert wird. Hiefür muss der Eltern-Wert im Array vor dem Kind stehen. Ist "parent" 0, so wird das Element auf oberster Ebene eingefügt. |
### Parameter für create
Es gibt verschiedene Möglichkeiten die zu erstellenden Instanzen und deren initiale Konfiguration zu definieren.
#### Variante 1: Konfiguration einer einzelnen Instanz
In der ersten Variante wird eine einzelne Instanz und deren Konfiguration definiert. In diesem Fall ist create ein Objekt, welches Informationen über die verwendete ModulID und die initiale Konfiguration enthält:
_Parameter für Einrichtung_
| Parameter | Beschreibung |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| moduleID | Die Modul ID der zu erstellenden bzw. benötigten Instanz |
| configuration | Die benötigte Konfiguration der Instanz, siehe [IPS_SetConfiguration](https://www.symcon.de/de/llms/functions/management-instances.md), nicht als JSON-String codiert |
| location (optional) | (__default:__ []) Die Liste von Strings gibt die initiale Position im Objektbaum an. Bei einer leeren Liste wird die Instanz in der Hauptkategorie erstellt. Ansonten werden hierarchisch die Kategorien mit dem jeweiligen Namen verwendet und bei Bedarf erstellt. |
| info (optional) | (__default:__ "") Die initiale Beschreibung der neu erstellten Instanz; wird eine bereits existierende Instanz verwendet, wird die Beschreibung nicht überschrieben. |
| position (optional) | (__default:__ 0) Die initiale Position der neu erstellten Instanz; wird eine bereits existierende Instanz verwendet, wird die Position nicht überschrieben. |
| name (optional) | (__default:__ Modulname oder Wert der Spalte "name") Der initiale Name der neu erstellten Instanz; wird eine bereits existierende Instanz verwendet, wird der Name nicht überschrieben. (ab IP-Symcon 5.5) |
| noDiscovery (optional) | (__default:__ false) Steht dieser Parameter auf true, so wird dieser Eintrag bei der [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) nicht als Gerät angezeigt und kann auch nicht als gelesen markiert werden. Bei einer Konfiguration als Kette ( [Variante 2](https://www.symcon.de/./#Variante_2:_Konfiguration_einer_Kette) ) wird der Wert des ersten Eintrags der Kette verwendet. Bei mehreren möglichen Konfigurationen ([Variante 3](https://www.symcon.de/./#Variante_3:_Mehrere_mögliche_Konfigurationen) ) muss jede Konfiguration diesen Parameter auf true haben, damit die Auswahl nicht in der Gerätesuche auftaucht. (ab IP-Symcon 5.4) |
| statusVariables (optional) | (__default:__ {}) Dies Objekt gibt eine initiale Konfiguration der Statusvariablen vor. Für jeden Parameter dieses Statusvariablen-Objektes wird die Variable mit dem Ident des Parameternamens konfiguriert. Der dazugehörige Parameter ist ein weiteres Objekt, welches die Konfiguration der Variablen definiert. Die Variablenkonfiguration wird nach der Übernahme der Instanzkonfiguration angewandt. Variablen, die erst später erstellt werden, können hier nicht konfiguriert werden. (ab IP-Symcon 5.3) |
_Parameter für Statusvariablen_
| Parameter | Beschreibung |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name (optional) | (__default:__ Vorgabe durch erstellte Instanz) Die Statusvariable wird auf diesen Wert umbenannt. Der Name wird durch die Lokalisierung des Konfigurators übersetzt. |
Wird eine Instanz erstellt, so wird sie mit der von der Einrichtung vorgegebenen ModulID und Konfiguration erstellt. Wie bei der Instanzerstellung üblich, wird die neue Instanz mit validen, physikalisch übergeordneten Instanzen verknüpft, wenn möglich. Hierbei wird bevorzugt die dem Konfigurator physikalisch übergeordnete Instanz verwendet.
#### Variante 2: Konfiguration einer Kette
Alternativ kann eine Kette von Konfigurationen übergeben werden. Diese definiert die gesamte physikalische Kette für die neu erstellte Instanz, üblicherweise also Gerät, Splitter und I/O. In dieser Variante stellt data.create eine Liste dar, deren Elemente wie in Variante 1 die Instanzen der physikalischen Kette definiert. Die Liste beginnt hierbei mit dem zu erstellenden Gerät und setzt dann mit der jeweils nächsten physikalisch übergeordneten Instanz fort.
Bei der Erstellung durch eine Kette, werden bevorzugt existierende übergeordnete Instanzen wiederverwendet, sofern diese und deren physikalisch übergeordneten Instanzen die Anforderungen der Kette erfüllen. Das Gerät selbst wird allerdings in jedem Falle neu erstellt.
#### Variante 3: Mehrere mögliche Konfigurationen
Als letzte Möglichkeit können mehrere Konfigurationen zur Auswahl gestellt werden. Hierbei wird create als Objekt mit Schlüssel/Wert-Paaren erstellt, wobei jeder Wert wieder einer Konfiguration wie in Variante 1 oder Variante 2 beschrieben entspricht. Soll bei dieser Darstellung eine Instanz erstellt werden, so wird dem Benutzer eine Auswahl der Bezeichnungen vorgegeben. Die Instanz wird mit den Einstellungen des ausgewählten Elements erstellt. Hierbei können die Schlüssel "moduleID" und "configuration" nicht verwendet werden.
### Farben in der Konfigurationsliste
Was die einzelnen Farben bei Meldungen und im Konfigurator bedeuten kann unter den Farbcodes für [Meldungen](https://www.symcon.de/de/llms/components/management-console.md) und [Konfiguratoren](https://www.symcon.de/de/llms/concepts.md) nachgelesen werden. Vom Element werden diese Informationen folgendermaßen dargestellt:
| Farbe | Bedingung |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| grün | instanceID ist 0, create ist definiert |
| rot | instanceID ist nicht 0, create ist nicht definiert oder die definierte instanceID existiert nicht |
| grau | Die Instanz mit der ID instanceID ist nicht konfiguriert wie von create vorgegeben. Stellt create eine Kette dar, so wird die Zeile auch als grau dargestellt, falls ein physikalisches Elternteil anders als in der Kette definiert konfiguriert ist |
| weiß | instanceID ist 0, create ist nicht definiert (Kategorie) |
| weiß | Die Instanz mit der ID instanceID ist konfiguriert wie von create vorgegeben. Stellt create eine Kette dar, so wird die Zeile nur dann als weiß dargestellt, wenn alle physikalischen Elternteile wie in der Kette definiert konfiguriert sind |
### Das Formularfeld Configurator in der Gerätesuche verwenden
Die Konsole bietet erstellbare [Instanzen](https://www.symcon.de/de/llms/concepts.md) zentral über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) an. Dies geschieht, indem bei [Instanzen](https://www.symcon.de/de/llms/concepts.md) des Typs Konfigurator und Discovery regelmäßig [GetConfigurationForm](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) aufgerufen wird und der Parameter values bei Configurator-Feldern ausgewertet wird. Es werden nur Konfigurator- und Discovery-Instanzen in der Gerätesuche angezeigt, welche mindestens ein Configurator-Feld beinhalten. In diesem darf values auch leer sein. Soll die eigene Instanz bei der [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) betrachtet werden, so müssen daher folgende Bedingungen erfüllt sein:
* Die Instanz muss vom Typ Konfigurator oder Discovery sein
* Die Suche nach Geräten muss automatisch beim Ausführen von [GetConfigurationForm](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) gestartet werden. Dauert die Suche länger, so sollte in einer initialen Rückgabe values leer gelassen werden, nach abgeschlossener Suche müssen die erstellbaren Geräte aber in der Rückgabe von [GetConfigurationForm](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) enthalten sein
* Die Suche sollte bei wiederholtem Aufruf von [GetConfigurationForm](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) nicht erneut gestartet werden sollte, falls diese aktuell schon läuft
* Eine Beispielimplementation kann hier gefunden werden: [SymconTest](https://github.com/symcon/SymconTest/blob/master/BelatedDiscoveryTest/module.php)
### Ausgewählte Zeile als Variable in on-Aktionen
Die Verwendung der Werte des Konfigurators in Skripten erfolgt analog zu [Listen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Dort stehen sämtliche Werte zur Verfügung, inklusive expanded, instanceID und create. Dennoch speichert der Konfigurator keine Werte in einer Eigenschaft ab.
### Beispiel
```php
{
"type": "Configurator",
"values": [{
"name": "Rechenmodul (Umbenannte Statusvariablen)",
"address": "Adresse",
"create": {
"moduleID": "{A7B0B43B-BEB0-4452-B55E-CD8A9A56B052}",
"configuration": {},
"statusVariables": {
"Minimum": {
"name": "Alternativer Name für Minimum"
},
"Maximum": {
"name": "Alternativer Name für Maximum"
}
}
}
}]
})
```
## ExpansionPanel
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/expansionpanel/
_Benötigt Symcon >= 5.0_
Erstellt ein Expansion Panel, welches weitere Formularfelder enthält und auf- und zugeklappt werden kann, um so den Inhalt platzsparend darzustellen.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Titel des Expansion Panels |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onClick-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| expanded (optional) | (__default:__ false) Bei true ist das Expansion Panel ausgeklappt, ansonsten ist es eingeklappt (ab IP-Symcon 5.2) |
| items | Liste mit Formularfeldern innerhalb des Expansion Panels (nicht änderbar) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onClick-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name des Buttons |
| onClick (optional) | (__default:__ "") Skript, welches bei einem Klick auf das Ausklappicon ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.3) |
| type | ExpansionPanel |
| visible (optional) | (__default:__ true) Bei true ist das Expansion Panel sichtbar, ansonsten ist es unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | Feste Breite des Expansion Panels in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird automatisch die volle Breite genutzt (ab IP-Symcon 5.3) |
### Beispiel
```php
// Richtet ein Expansion Panel ein
{
"type": "ExpansionPanel",
"caption": "Mein Expansion Panel",
"items": [
{
"type": "SelectFile",
"name": "File",
"caption": "File"
},
{
"type": "Select",
"name": "Calculation",
"caption": "Calculation",
"options": [
{ "caption": "Everything", "value": 0 },
{ "caption": "Sum", "value": 1 },
{ "caption": "Minimum", "value": 2 },
{ "caption": "Maximum", "value": 3 },
{ "caption": "Average", "value": 4 },
{ "caption": "Count", "value": 5 }
]
}
]
}
```
## HorizontalSlider
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/horizontalslider/
Erstellt einen horizontalen Schieberegler der zwischen den Werten von __"minimum"__ und __"maximum"__ verschoben werden kann.

### Parameter
| Parameter | Beschreibung |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Beschriftung des Schiebereglers |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| displayValue (optional) | (__default:__ false) Bei true wird der Wert des Schiebereglers rechts vom Regler angezeigt. (ab IP-Symcon 8.1) |
| enabled (optional) | (__default:__ true) Bei true kann der Schieberegler verwendet werden, ansonsten wird er deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| maximum (optional ab IP-Symcon 5.3) | (__default:__ 100) Maximumwert der im Schieberegler einstellbar ist |
| minimum (optional ab IP-Symcon 5.3) | (__default:__ 0) Minimumwert der im Schieberegler einstellbar ist |
| name (optional) | Name des Schiebereglers |
| onChange (optional ab IP-Symcon 5.3) | (__default:__ "") Skript, welches bei Verschiebung des Reglers ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| prefix (optional) | (__default:__ "") Sichtbare Beschriftung/Einheit vor der Wertanzeige (ab IP-Symcon 8.1) |
| stepSize (optional) | (__default:__ 1) Schrittgröße, in welcher der Schieberegler verstellt werden kann (ab IP-Symcon 5.3) |
| suffix (optional) | (__default:__ "") Sichtbare Beschriftung/Einheit hinter der Wertanzeige (ab IP-Symcon 8.1) |
| type | HorizontalSlider |
| value (optional) | (__default:__ minimum) Der Wert des Schiebereglers - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist der Schieberegler sichtbar, ansonsten ist er unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Schiebereglers in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
//Das Beispiel gibt die InstanzID zurück.
{ "type": "HorizontalSlider", "name": "Slider", "caption": "ID-Schieberegler", "minimum": 0, "maximum": 16, "onChange": "echo $id;" }
```
## Image
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/image/
_Benötigt Symcon >= 5.0_
Erstellt ein Bild, welches auf der Modulseite dargestellt wird. Das Bild kann direkt angegeben werden oder aus einem Medienobjekt geladen werden.
### Parameter
| Parameter | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onClick-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| image (optional) | Inhalt des Bildes als Data-URI ([Mehr Infos](https://wiki.selfhtml.org/wiki/Grafik/Grafiken_mit_Data-URI), nicht kombinierbar mit __mediaID__, entweder __image__ oder __mediaID__ muss gesetzt sein) |
| link (optional) | Ist dieser Parameter true, dann wird die Ausgabe des onClick-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. Ist der Parameter nicht gesetzt, dann wird auf Basis der Ausgabe entschieden, ob diese als Link geöffnet oder im Dialog angezeigt wird (siehe Infobox). (ab IP-Symcon 6.0) |
| mediaID (optional) | MedienID des dargestellten Bildes oder Streams (ab IP-Symcon 5.5) (Nicht kombinierbar mit __image__, entweder __image__ oder __mediaID__ muss gesetzt sein) |
| name (optional) | Name des Bildes |
| type | Image |
| visible (optional) | (__default:__ true) Bei true ist das Bild sichtbar, ansonsten ist es unsichtbar (ab IP-Symcon 5.2) |
| center (optional) | (__default:__ false) Ist __center__ gesetzt, so wird das Bild innerhalb des dargestellten Bereiches horizontal zentriert, ansonsten ist es linksbündig. Innerhalb eines [RowLayout](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) hat diese Einstellung keine Funktion. |
| width (optional) | Feste Breite des Bildes in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird die Breite automatisch auf Basis des Bildes gewählt (ab IP-Symcon 6.0) |
| onClick | Skript, welches bei einem Klick auf das Bild ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). (ab IP-Symcon 6.0) |
> **Hinweis:** Steht in dem Parameter onClick ein "echo" in Kombination mit 'http'/'https' wird der Browser geöffnet und die URL aufgerufen. Ist ein "echo" in Kombination mit einem 'mailto:' vorhanden wird das Standard-Mailprogramm mit allen gesetzten Parametern geöffnet (Verfügbar ab IP-Symcon 6.0)
### Beispiel
```php
// Bild base64-codiert darstellen
{
"type": "Image",
"image": "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
}
// Bild aus Medium darstellen
{
"type": "Image",
"mediaID": 12345
}
```
## IntervalBox (veraltet)
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/intervalbox/
> **Achtung:** Ab 5.0 ist die IntervalBox veraltet und wird zu einem zukünftigen Zeitpunkt entfernt. Der [NumberSpinner](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) unterstützt den
> Parameter __suffix__ und bietet somit sämtliche Funktionen der IntervalBox. Daher sind die Parameter der IntervalBox auch nicht änderbar.
Erstellt eine IntervalBox welche ein Zahleneingabefeld hat, welches eine Beschriftung/Einheit hinter dem Eingabefeld besitzt.
Falls im "elements"-Bereich erstellt, setzt die IntervalBox eine Eigenschaft bei Übernahme auf den eingetragenen Zahlenwert.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.

### Parameter
| Parameter | Beschreibung |
| --------------- | ----------------------------------------------------- |
| caption | Sichtbare Beschriftung/Einheit hinter dem Eingabefeld |
| type | IntervalBox |
| name (optional) | Name der Intervalbox/der zu setzenden Eigenschaft |
### Beispiel
```php
{ "type": "IntervalBox", "name": "CacheInterval", "caption": "Sekunden" }
```
## Label
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/label/
Erstellt ein Label, welches der Übersicht dient.

### Parameter
| Parameter | Beschreibung |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| bold (optional) | (__default:__ false) Bei true wird das Label fett dargestellt |
| caption | Sichtbare Beschriftung |
| color (optional) | (__default:__ 0 (schwarz)) Das Label wird in der angegebenen Farbe dargestellt |
| italic (optional) | (__default:__ false) Bei true wird das Label kursiv dargestellt |
| label | sichtbare Beschriftung _(veraltet, nicht änderbar)_ |
| link (optional) | (__default:__ true) Ist dieser Parameter gesetzt, so werden URLs innerhalb der Beschriftung, welche mit "http://" oder "https://" beginnen als Links dargestellt (ab IP-Symcon 5.3) |
| name (optional) | Name des Labels |
| type | Label |
| underline (optional) | (__default:__ false) Bei true wird das Label unterstrichen dargestellt |
| visible (optional) | (__default:__ true) Bei true ist das Label sichtbar, ansonsten ist es unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | Feste Breite des Labels in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird die Breite automatisch auf Basis der Beschriftung gewählt (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "Label", "caption": "Drücken Sie Einlernen, nachdem Sie das Gerät in den Lernmodus versetzt haben" }
```
## List
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/list/
_Benötigt Symcon >= 4.2_
Erstellt eine Liste mit der Überschrift __caption__.
Die angezeigten Spalten werden in __columns__ definiert.
Initiale Einträge der Liste können via __values__ vorgegeben werden.

### Allgemeine Parameter
| Parameter | Beschreibung |
| ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| add (optional) | (__default:__ false) Wenn true, dann wird unter der Tabelle ein "Hinzufügen"-Button eingeblendet, welcher der Tabelle ein neues Element mit Standardwerten hinzufügt |
| caption (optional) | Sichtbare Beschriftung der Liste |
| columns | Spalten der Liste |
| delete (optional) | (__default:__ false) Wenn true, dann wird hinter jedem Eintrag in der Liste ein Button eingeblendet, welcher das entsprechende Element löscht |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onAdd, onChangeOrder, onDelete oder onEdit-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.0) |
| form (optional) | (__default:__ basierend auf den edit-Parametern von columns) Ein individuelles Formular zum Bearbeiten oder Hinzufügen von Zeilen. Die Definition des Formulars erfolg analog zur Definition des Formulars für [Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) statisch oder als PHP-Code. Wie das Formular ausgewertet und gefüllt wird ist im Abschnitt Individuelle Formulare zum Bearbeiten erklärt (ab Symcon 7.0) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onAdd, onChangeOrder, onDelete oder onEdit-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 6.0) |
| multiAdd (optional) | (__default:__ false, falls onAdd gesetzt ist, sonst true) Ist dieser Parameter true, ist form nicht gesetzt und hat die Liste nur eine einzige editierbare Spalte vom Typ [SelectObject](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectCategory](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectInstance](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectScript](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectMedia](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) oder [SelectLink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), so können mehrere Objekte gleichzeitig hinzugefügt werden. Beim Hinzufügen mehrerer Objekte wird onAdd trotzdem nur ein mal ausgeführt. (ab Symcon 9.1) |
| name (optional) | Name der Liste / der zu setzenden Eigenschaft |
| onAdd (optional) | (__default:__ "") Skript, welches nach dem Hinzufügen eines Eintrages der Liste ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). In dieser Ausführung bietet die Liste als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den hinzugefügten Eintrag, siehe [Ausgewählte Zeile als Variable in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| onChangeOrder (optional) | (__default:__ "") Skript, welches nach dem Verschieben eines Eintrages der Liste ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. In dieser Ausführung bietet die Liste als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den verschobenen Eintrag, siehe [Ausgewählte Zeile als Variable in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 6.3) |
| onDelete (optional) | (__default:__ "") Skript, welches nach dem Löschen eines Eintrages der Liste ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). In dieser Ausführung bietet die Liste als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den gelöschten Eintrag, siehe [Ausgewählte Zeile als Variable in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| onEdit (optional) | (__default:__ "") Skript, welches nach der Bearbeitung eines Eintrages der Liste ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). In dieser Ausführung bietet die Liste als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den bearbeiteten Eintrag, siehe [Ausgewählte Zeile als Variable in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| rowCount (optional) | (__default:__ 0) sichtbare Anzahl von Zeilen; bei mehr Zeilen in der Liste wird ein Scrollbalken eingeblendet - ist der Wert 0, so füllt die Liste den restlichen noch verfügbaren Platz im Instanzeditor. Nur ein Konfigurationselement kann den gesamten restlichen Platz erhalten. |
| sort (optional) | Sortierung der Tabelle. Wird dies nicht gesetzt bleibt die Liste unsortiert |
| type | List |
| values (optional) | Initiale Einträge der Liste |
| visible (optional) | (__default:__ true) Bei true ist die Liste sichtbar, ansonsten ist sie unsichtbar (ab Symcon 5.2) |
| enabled (optional) | (__default:__ true) Bei true kann die Liste verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab Symcon 6.0) |
| changeOrder (optional) | (__default:__ false) Bei true kann die Reihenfolge der Einträge per Drag & Drop verändert werden. Die Sortierung der Liste nach Spalten ist dann allerdings nicht möglich. (ab Symcon 6.0) |
| loadValuesFromConfiguration (optional) | (__default:__ true) Dieser Parameter gibt an, ob die Liste mit den Werten der Eigenschaft gefüllt werden soll, siehe [Speichern und Laden von Listen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) . Wird der Wert auf false gesetzt, so ist es für einen erfolgreichen Review im Module Store erforderlich, die Liste dennoch im Sinne des Benutzers zu füllen, siehe [Reviewrichtlinien](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) Punkt 13 (ab Symcon 6.0) |
### Parameter für columns
| Parameter | Beschreibung |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| add (optional) | initialer Wert in dieser Spalte bei einem neu hinzugefügtem Eintrag, notwendig wenn __add__ bei der Liste auf true gesetzt ist. Alternativ kann ein Objekt übergeben werden, welches den Wert automatisch generiert, siehe Parameter für add (ab Symcon 9.1) |
| align (optional) | (__default:__ "left") Ausrichtung der Spalte (ab Symcon 5.2) "left": Inhalt wird linksbündig dargestellt "center": Inhalt wird zentriert dargestellt "right": Inhalt wird rechtsbündig dargestellt |
| caption | Sichtbare Beschriftung einer Spalte |
| confirm (optional) | (__default:__ "") Abfragetext, bevor eine onClick-Aktion ausgeführt wird. Nur wenn die Abfrage mit "Ja" bestätigt wird, wird die Aktion ausgeführt. Ist kein Abfragetext definiert, so wird die Aktion direkt ausgeführt (ab Symcon 5.2) |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onClick-Skriptes dieser Spalte eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.1) |
| edit (optional) | Beschreibung eines editierbaren Elements |
| label | sichtbare Beschriftung einer Spalte _(veraltet)_ |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onClick-Skriptes dieser Spalte als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 7.1) |
| name | Eindeutiger Name einer Spalte um diese zu referenzieren; der Name darf nicht "rowColor", "editable" oder "deletable" sein, da diese Werte für andere Funktionen belegt sind, siehe [Parameter für values](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| onClick (optional) | (__default:__ "") Skript, welches bei einem Klick auf ein Feld dieser Spalte ausgeführt wird. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Das Skript wird nur ausgeführt, sofern dieses Feld nicht leer, also 0, false oder "" ist (ab Symcon 5.2) |
| quickFilter (optional) | (__default:__ false) Bei true wird der Text dieser Spalte beim Schnellfilter in der Suche betrachtet. Sollte der Wert bei allen Spalten auf false gesetzt sein, so wird der Schnellfilter ausgeblendet. (ab Symcon 7.2) |
| sortColumn (optional) | Ist sortColumn gesetzt und wird nach dieser Spalte sortiert, so werden statt den Werten dieser Spalte, die Werte der Spalte mit dem Namen dieses Parameters verglichen |
| save (optional) | (__default:__ true, falls das Element editierbar ist oder __add__ ein Objekt zur automatischen Generierung ist, sonst false) Bei true sollen die Werte dieser Spalte als Modul-Eigenschaften gesichert werden, siehe [Speichern und Laden von Listen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| visible (optional) | (__default:__ true) Bei false wird die Spalte nicht angezeigt |
| width | Breite der Spalte in Pixeln, als CSS-String (z.B. "100px"); eine einzige Spalte darf den Wert "auto" haben, wodurch die Breite dieser Spalte den restlich verfügbaren Platz nutzt |
### Parameter für edit
| Parameter | Beschreibung |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| type | Typ der Darstellung, entsprechend der möglichen Eingaben: [CheckBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [IntervalBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [NumberSpinner](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [PasswordTextBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [Select](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectCategory](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectColor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectEvent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectFile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectInstance](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectLink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectMedia](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectObject](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectScript](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [ValidationTextBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| Weitere Parameter | Die weiteren Parameter ergeben sich je nach gewähltem Typ; die Parameter "name" und "caption" des Typs werden ignoriert |
> **Hinweis:** Wird der "type" List oder Tree verwendet, so wird der Wert dieser Spalte nicht noch einmal JSON-codiert. Es ist also lediglich erforderlich den Wert der übergeordneten Liste einmalig zu parsen. Jede Unterliste bzw. Unterbaum steht dann direkt als Objekt zur Verfügung. Analog müssen die Werte in "values" auch nicht doppelt codiert werden.
> **Hinweis:** Der Parameter "add" der Spalte wird entsprechend der Lokalisierung übersetzt, sofern der "type" von "edit" ValidationTextBox oder PasswordTextBox ist oder "edit" gar nicht gesetzt ist
> **Hinweis:** Es ist möglich mit der Funktion [UpdateFormField](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) nur Teile von von columns oder values zu aktualisieren, indem eine Punktnotation verwendet wird. In dem Fall wird als Ziel columns.x.y bzw. values.x.y verwendet. x bezieht sich dabei auf den Index der betroffenen Spalte bzw. des betroffenen Wertes und y auf den Namen des Feldes. Es ist auch möglich einen einzelne Spalte bzw. einen einzelnen Wert komplett zu bearbeiten indem als Ziel columns.x bzw. values.x verwendet wird. Um also beispielsweise die Breite der zweiten Spalte anzupassen, kann der Befehl $this->UpdateFormField('list', 'columns.1.width', '200px'); verwendet werden.
### Parameter für add
Statt eines festen Wertes kann der Parameter __add__ einer Spalte auch ein Objekt sein, welches beschreibt, mit welcher Strategie der Wert für einen neu hinzugefügten Eintrag automatisch generiert wird (ab Symcon 9.1). Der Wert wird beim Hinzufügen des Eintrages generiert und anschließend wie ein regulärer Wert behandelt. Der generierte Wert ist innerhalb der Spalte eindeutig: Stimmt ein zufälliger Wert mit dem Wert eines bestehenden Eintrages überein, so wird ein neuer Wert generiert. Generierte Werte werden nicht übersetzt.
| Parameter | Beschreibung |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| strategy | Strategie der Generierung: "increment": Der höchste numerische Wert dieser Spalte über alle Einträge der Liste wird um __step__ erhöht. Nicht numerische Werte werden ignoriert. Existiert noch kein numerischer Wert, so wird __step__ verwendet "random-string": Eine zufällige Zeichenkette aus den Zeichen a-z, A-Z und 0-9 mit der Länge __length__ "random-integer": Eine zufällige ganze Zahl zwischen __min__ und __max__ "guid": Eine zufällige GUID (UUID Version 4), z.B. "{3F2504E0-4F89-4D3A-9A0C-0305E82C3301}" |
| step (optional) | (__default:__ 1) Schrittweite, um welche der höchste Wert erhöht wird, nur für die strategy "increment"; muss eine Zahl ungleich 0 sein |
| length (optional) | (__default:__ 32) Anzahl der Zeichen der generierten Zeichenkette, nur für die strategy "random-string" |
| min (optional) | (__default:__ 0) Untere Grenze (inklusive) der zufälligen ganzen Zahl, nur für die strategy "random-integer"; muss kleiner als __max__ sein |
| max (optional) | (__default:__ 2147483647) Obere Grenze (inklusive) der zufälligen ganzen Zahl, nur für die strategy "random-integer"; muss größer als __min__ sein |
> **Hinweis:** Damit generierte Werte erhalten bleiben, werden Spalten mit einem solchen add-Wert standardmäßig gespeichert, d.h. der Parameter "save" ist für diese Spalten standardmäßig true. Fehlt einem geladenen Eintrag der Wert in einer solchen Spalte, z.B. weil die Spalte nachträglich hinzugefügt wurde, so wird der Wert beim Laden nach der gleichen Strategie generiert. Auch der Standardwert, den on-Aktionen erhalten, wenn kein Eintrag ausgewählt ist, wird nach der Strategie generiert. Kann kein eindeutiger Wert generiert werden, weil bereits alle möglichen Werte verwendet werden, z.B. bei "random-integer" mit einem kleinen Bereich zwischen min und max, so schlägt das Hinzufügen mit einer Fehlermeldung fehl.
```php
// Spalten mit automatisch generierten Werten
{
"caption": "ID",
"name": "ID",
"width": "50px",
"add": { "strategy": "increment", "step": 10 }
}, {
"caption": "Token",
"name": "Token",
"width": "auto",
"add": { "strategy": "random-string", "length": 16 },
"edit": { "type": "ValidationTextBox" }
}, {
"caption": "Zufallszahl",
"name": "Number",
"width": "100px",
"add": { "strategy": "random-integer", "min": 1, "max": 100 },
"edit": { "type": "NumberSpinner" }
}, {
"caption": "GUID",
"name": "GUID",
"width": "300px",
"add": { "strategy": "guid" }
}
```
### Parameter für sort
| Parameter | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------------------------- |
| column | Name der Spalte, nach welcher die Liste sortiert wird |
| direction | Die Richtung der Sortierung; "ascending" für eine aufsteigende Sortierung und "descending" für eine absteigende Sortierung |
### Parameter für values
| Parameter | Beschreibung |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| deletable (optional) | (__default:__ true) Bei false kann die Zeile nicht gelöscht werden (ab Symcon 5.4) |
| editable (optional) | (__default:__ true) Bei false kann die Zeile nicht editiert werden, obwohl die Liste an sich editierbare Spalten besitzt (ab Symcon 5.4) |
| rowColor (optional) | (__default:__ transparent) Hintergrundfarbe der Zeile als Hex-Code (Defaultfarben s.u.), leerer String für Transparenz |
| icons (optional) | (__default:__ {}) Ein Objekt welches die verwendeten Icons für jede Spalte beinhaltet. Dabei gibt der Schlüssel jeweils den Namen der Spalte an und der Wert den Namen des verwendeten Icons. Ist für eine Spalte kein Eintrag im Objekt vorhanden, so wird für diese Spalte kein Icon angezeigt. (ab Symcon 9.0) |
| Weitere Parameter (optional) | (__default:__ "") Für jeden initialen Eintrag der Liste werden hier die Werte zu allen Spalten definiert. Hierfür wird für jede Spalte ein Parameter mit dem Namen der Spalte eingetragen. Die Belegung des Parameters entspricht dem Wert dieser Spalte bei dem entsprechenden Eintrag. |
| Farbe | Hex-Code |
| -------- | -------- |
| Hellgrün | #C0FFC0 |
| Lila | #C0C0FF |
| Gelb | #FFFFC0 |
| Grau | #DFDFDF |
| Rot | #FFC0C0 |
Was die einzelnen Farben bei Meldungen und im Konfigurator bedeuten kann unter den Farbcodes für [Meldungen](https://www.symcon.de/de/llms/components/management-console.md) und [Konfiguratoren](https://www.symcon.de/de/llms/concepts.md) nachgelesen werden.
Alle von iron-icon unterstützen Icons sind nutzbar: [Iron Icons Demo](https://kevingleason.me/Polymer-Todo/bower_components/iron-icons/demo/index.html)
Darüber hinaus können folgende Symcon-spezifischen Icons genutzt werden:

### Speichern und Laden von Listen
Beim Speichern der Liste werden alle Listenelemente, die editierbar sind oder den Paramter __save__ gesetzt haben, als Modul-Eigenschaften gesichert.
Wird die Liste erneut geladen und ist der Parameter __loadValuesFromConfiguration__ nicht auf false gesetzt, so werden zuerst die Werte eingetragen, die als Modul-Eigenschaften gesichert wurden. Steht __loadValuesFromConfiguration__ auf false, werden keine Werte aus den Eigenschaften geladen sondern nur wie in den weiteren Schritten beschrieben geladen. Sollen dennoch Werte aus der Eigenschaft als Grundlage verwendet werden, so müssen diese selbstständig in __values__ eingetragen werden. Die weiteren Elemente, inklusive der Farbe, werden mit den initialen Werten aus __values__ aufgefüllt.
Existieren mehr Zeilen als Elemente in __values__, so werden Elemente der überzähligen Zeilen, welche nicht als Modul-Eigenschaften gesichert waren, mit dem Initialwert __add__ der entsprechenden Spalte gefüllt.
### Ausgewählte Zeile als Variable in on-Aktionen
In der Definition des Konfigurationsformulares können die Werte der Tabelle als Variable __$Name__ verwendet werden. Auf das Objekt kann wie auf ein Array zugegriffen werden. Wird auf das entsprechende Objekt mit einem String-Index zugegriffen, so wird der entsprechende Wert wie in [values](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) definiert der ausgewählten Zeile zurückgegeben. Wird mit einem numerischen Index zugegriffen oder das Objekt iteriert, so wird die entsprechende Zeile zurückgegeben, deren einzelne Parameter widerum per String-Index referenziert werden können.
Beispiel:
```php
//Gebe den Namen der aktuell gewählte Zeile der Tabelle devices aus
{ "type": "Button", "caption": "Ausgabe", "onClick": "print_r($devices['name']);" }
//Gebe den Namen der ersten Zeile der Tabelle devices aus
{ "type": "Button", "caption": "Ausgabe", "onClick": "print_r($devices[0]['name']);" }
```
### Individuelle Formulare zum Bearbeiten
Standardmäßig wird beim Bearbeiten oder Hinzufügen einer Zeile ein Formular auf Basis der edit-Parameter der einzelnen Spalten verwendet. Ist allerdings der Parameter "form" gesetzt, so wird stattdessen das davon beschriebene Formular verwendet.
Wird dabei eine Zeile bearbeitet, wird der Wert jedes Formularfeld basierend auf dem Wert mit gleichem Namen in der bearbeiteten Zeile gesetzt, sofern vorhanden. Beim Hinzufügen werden die initialen Werte der Formularfelder stattdessen basierend auf dem add-Wert der Spalte mit gleichem Namen gesetzt, falls solch eine Spalte existiert. Beim Bestätigen des Dialogs werden für die Zeile alle Werte des Dialogs mit dem Namen des Elements gespeichert. Falls dann noch Spalten existieren, deren Namen nicht im Formular vorkommen, wird deren Wert entsprechend des add-Wertes gesetzt.
Beim Übernehmen der Konfiguration werden alle Werte, die zu einer Spalte passen wie üblich basierend auf dem save-Parameter abgespeichert. Passt ein Wert zu keiner Spalte, so wird er auf jeden Fall abgespeichert.
Teile eines individuellen Formulars können wie im regulären Formular via [UpdateFormField](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) dynamisch angepasst werden.
Beispiele zur Verwendung des form-Parameters können im [Test-Repository](https://github.com/symcon/SymconTest/tree/master/ListDynamicEditFormTest) gefunden werden.
### Werte aus der Tabelle in PHP registrieren und auslesen
Wurde die Tabelle im Konfigurationsformular im Bereich __elements__ definiert, kann die Tabelle durch die Funktion [RegisterPropertyString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) registriert werden. Die Tabelle wird dann als JSON-codierter String gespeichert.
Die Funktion [ReadPropertyString](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) kann genutzt werden um den gespeicherten String auszulesen. In einem nächsten Schritt sollte die Funktion **json_decode** verwendet werden um den eingelesenen String in ein Array zu konvertieren.
Beispiel:
```php
$arrString = $this->ReadPropertyString("devices");
$arr = json_decode($arrString);
```
### Beispiel
```php
//Einfache editierbare Liste von Instanzen und dazugehörigen Werten
//Die Liste enthält initial einen Eintrag
{
"type": "List",
"name": "Devices",
"caption": "Devices",
"rowCount": 5,
"add": true,
"delete": true,
"sort": {
"column": "Name",
"direction": "ascending"
},
"columns": [{
"caption": "InstanceID",
"name": "InstanceID",
"width": "75px",
"add": 0,
"edit": {
"type": "SelectInstance"
}
}, {
"caption": "Name",
"name": "Name",
"width": "auto",
"add": ""
}, {
"caption": "State",
"name": "State",
"width": "40px",
"add": "New!"
}, {
"caption": "Temperature",
"name": "Temperature",
"width": "75px",
"add": 20.0,
"edit": {
"type": "NumberSpinner",
"digits": 2
}
}],
"values": [{
"InstanceID": 12435,
"Name": "ABCD",
"State": "OK!",
"Temperature": 23.31,
"rowColor": "#ff0000" //rot
}]
}
```
Wird in der Beispieltabelle nun der Wert __instanceID__ des ersten Eintrages auf 54321 und __temperature__ auf 37.0 geändert und die Tabelle gespeichert, so werden die neuen Werte für __instanceID__ und __temperature__ als Modul-Eigenschaften persistent gespeichert. Da die weiteren Elemente, also __name__, __state__ und die Farbe der Zeile __rowColor__, nicht editierbar sind, werden diese auch nicht gespeichert.
Wird die Tabelle nun erneut geladen, so werden zuerst die gespeicherten Werte für __instanceID__ und __temperature__ geladen. Die nicht-editierbaren Felder __name__ und __state__ werden dann mit den Werten aus __values__, also "ABCD" und "OK!" gefüllt. Die Farbe wird ebenfalls aus __values__ geladen, wodurch die Zeile einen roten Hintergrund erhält.
Hätte man der Tabelle zusätzlich eine weitere Zeile hinzugefügt und die Werte __instanceID__ und __temperature__ auf 314 bzw. -5.3 gesetzt, so würden diese ebenfalls aus den Modul-Eigenschaften geladen werden. Da sich in __values__ lediglich ein Element befindet, werden die nicht-editierbaren Felder entsprechend der Standardwerte aus __add__ gefüllt. Das Feld __name__ der zweiten Zeile würde leer bleiben und __state__ würde auf "OK!" gesetzt werden. Da keine Farbe definiert ist, wäre der Hintergrund dieser Zeile transparent.
```php
// Liste mit alternativer Sortierung
{
"type": "List",
"name": "sortList",
"rowCount": 5,
"add": false,
"columns": [
{
"caption": "Text",
"name": "Text",
"width": "auto",
"sortColumn": "Number"
},
{
"caption": "Number",
"name": "Number",
"width": "200px",
"visible": false
}
],
"values": [
{
"Text": "One",
"Number": "1"
},
{
"Text": "Two",
"Number": "2"
},
{
"Text": "Three",
"Number": "3"
}
]
}
```
## NumberSpinner
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/numberspinner/
Erstellt ein Eingabefeld für Zahlen mit der Überschrift __caption__.
Falls im "elements"-Bereich erstellt, setzt der NumberSpinner eine Eigenschaft bei Übernahme auf den eingetragenen Zahlenwert.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.
> **Hinweis:** Der Paramter digits dient dazu ob die übergebene Zahl als Integer(Ganzzahlig) oder Float(Fließkommazahl) interpretiert wird.

### Parameter
| Parameter | Beschreibung |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des NumberSpinners |
| digits (optional) | (__default:__ 0) Gibt die Anzahl der Nachkommastellen an. (Nicht kombinierbar mit hex) |
| enabled (optional) | (__default:__ true) Bei true kann der NumberSpinner verwendet werden, ansonsten wird er deaktiviert dargestellt (ab IP-Symcon 5.2) |
| hex (optional) | (__default:__ false) Wenn true, dann ist eine hexadezimale Eingabe {1..9,A..F} erlaubt. (Nicht kombinierbar mit digits) |
| minimum (optional) | (__default:__ kein Minimalwert) Definiert einen Minimalwert - Ist der eingetragene Wert kleiner als der Minimalwert, so wird ein Fehler angezeigt und Änderungen können nicht übernommen werden (ab IP-Symcon 5.3) |
| maximum (optional) | (__default:__ kein Maximallwert) Definiert einen Maximalwert - Ist der eingetragene Wert größer als der Maximalwert, so wird ein Fehler angezeigt und Änderungen können nicht übernommen werden (ab IP-Symcon 5.3) |
| moreDigits (optional) | (__default:__ false) Bei false ist der NumberSpinner auf die angegebene Anzahl von Nachkommastellen beschränkt. Wird diese überschritten, so wird ein Fehler angezeigt und Änderungen können nicht übernommen werden. Bei true können beliebig viele Nachkommastellen angegeben werden (Nicht kombinierbar mit hex; ab IP-Symcon 6.0) |
| name (optional) | Name des NumberSpinners/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des NumberSpinner-Wertes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 8.1) |
| suffix (optional) | (__default:__ "") Sichtbare Beschriftung/Einheit hinter dem Eingabefeld |
| type | NumberSpinner |
| value (optional) | (__default:__ 0) Der Wert des NumberSpinners - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist der NumberSpinner sichtbar, ansonsten ist er unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
// ohne digits/hex Parameter
{ "type": "NumberSpinner", "name": "Port", "caption": "Port" }
// mit digits Parameter
{ "type": "NumberSpinner", "name": "Latitude", "caption": "Latitude (N)", "digits": 2}
// mit hex Parameter
{ "type": "NumberSpinner", "name": "Value", "caption": "Hexvalue", "hex": true}
// mit Suffix
{ "type": "NumberSpinner", "name": "Seconds", "caption": "Seconds", "suffix": "seconds"}
```
## OpenObjectButton
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/openobjectbutton/
_Benötigt Symcon >= 5.3_
Ein Button der bei Betätigung ein Objekt öffnet. Bei einer Instanz wird die Instanzkonfiguration geöffnet und bei einem Skript der Skripteditor. Bei allen anderen Objekttypen wird der Bearbeiten-Dialog im Objektbaum geöffnet.

### Parameter
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Buttons |
| enabled (optional) | (__default:__ true) Bei true kann der Button verwendet werden, ansonsten wird er deaktiviert dargestellt |
| name (optional) | Name des Buttons |
| objectID | ID des zu öffnenden Objektes |
| type | OpenObjectButton |
| visible (optional) | (__default:__ true) Bei true ist der Button sichtbar, ansonsten ist er unsichtbar |
| width (optional) | Feste Breite des Buttons in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird die Breite automatisch auf Basis der Beschriftung gewählt |
### Beispiel
```php
{ "type": "OpenObjectButton", "caption": "Zum Connect Control", "objectID": 42563 }
```
## PasswordTextBox
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/passwordtextbox/
Erstellt ein Eingabefeld für Passwörter mit der Überschrift __caption__.
Falls im "elements"-Bereich erstellt, setzt die PasswordTextBox eine Eigenschaft bei Übernahme auf den eingetragenen String.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Passwort-Eingabefeldes |
| enabled (optional) | (__default:__ true) Bei true kann das Passwort-Eingabefeld verwendet werden, ansonsten wird es deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name des Passwort-Eingabefeldes/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des PasswordTextBox-Wertes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 8.1) |
| type | PasswordTextBox |
| validate (optional) | (__default:__ "") Erfüllt der Wert nicht den hier angegebenen regulären Ausdruck, so wird ein Fehler angezeigt und Änderungen können nicht übernommen werden (ab IP-Symcon 5.3) |
| value (optional) | (__default:__ "") Der Wert des Passwort-Eingabefeldes - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist das Passwort-Eingabefeld sichtbar, ansonsten ist es unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "PasswordTextBox", "name": "Password", "caption": "Passwort" }
```
## PopupAlert
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/popupalert/
_Benötigt Symcon >= 5.0_
Enthält das Konfigurationsformular dieses Element, so wird es beim Laden der Konfigurationsseite geöffnet. Nachdem das Popup geschlossen wurde, ist es zusätzlich möglich dies mithilfe von Dynamik (visible auf true) erneut zu öffnen.

### Allgemeine Parameter
| Parameter | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name (optional) | Name des PopupAlert |
| popup | Definition des zu öffnenden Popups (Parameter sind ab Symcon 6.1 änderbar durch Verknüpfung der Paramternamen, beispielsweise popup.closeCaption) |
| type | PopupAlert |
| visible (optional) | (__default:__ true) Ist visible initial true, so wird das Popup beim Öffnen der Instanzkonfiguration geöffnet, ansonsten passiert nichts. Durch Änderung auf true kann das Popup im Nachhinein geöffnet werden. Eine Änderung auf false schließt ein aktuell geöffnetes Popup. (ab Symcon 5.2) |
### Parameter für popup
| Parameter | Beschreibung |
| --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [buttons](https://www.symcon.de/./#Parameter_für_buttons) (optional) | (__default:__ []) Eine Liste von Buttons welche im Popup unten rechts dargestellt wird. An erster Stelle wird immer der Schließen-Button dargestellt, danach folgen die hier beschriebenen Buttons in Reihenfolge (ab Symcon 6.1) |
| caption (optional) | (__default:__ "") Sichtbarer Titel des Popups (ab Symcon 8.2) |
| closeCaption (optional) | (__default:__ "OK") Die Beschriftung des Schließen-Buttons unten rechts im Popup |
| initialPage (optional) | (__default:__ 0) Eine Referenz auf die Seite aus [pages](https://www.symcon.de/./#Parameter_für_pages), welche beim Öffnen des Popups angezeigt werden soll. Dies kann eine Zahl sein, welche dem Index innerhalb der Liste pages entspricht, ein String, welcher dem Namen der Seite entspricht oder ein Skript, welches die Seite als Zahl oder String zurückgibt. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Existiert die definierte Seite nicht, so wird die erste Seite angezeigt. Eine Änderung von initialPage wirkt sich erst beim nächsten Öffnen des Popups aus. (ab Symcon 9.1) |
| items | Auflistung von Formularfeldern im Popup (nicht änderbar) |
| [pages](https://www.symcon.de/./#Parameter_für_pages) (optional) | (__default:__ []) Eine Liste von Seiten des Popups welche miteinander verkettet werden können und so die Funktionalität eines Wizards zu ermöglichen. Ist die Liste leer, so wird der regulär definierte Inhalt angezeigt. (ab Symcon 9.1) |
| width (optional) | (__default:__ "") Initiale Breite des Popups in Pixel oder % als String, z.B. "40%" oder "250px". Prozentangaben beziehen sich auf die Breite des Browserfensters. Ist der Wert nicht gesetzt oder "", wird die Standardbreite verwendet (ab Symcon 9.0) |
### Parameter für pages
Das Feld pages beinhaltet eine Liste von Objekten, welche jeweils eine Seite beschreiben. Falls ein Popup mehrere Seiten hat, so wird bei den Buttons ganz rechts ein "Zurück" und "Weiter" bzw. "OK" angezeigt, worüber die Seiten gewechselt werden können. "Zurück" ist aktiv, falls eine vorherige Seite existiert und diese entweder kein Skript für "onConfirm" definiert hat oder sowohl "onConfirm" als auch "onUndo" definiert ist. Sollte nur "onConfirm" definiert sein, ist "Zurück" deaktiviert. Für den zweiten Button wird "Weiter" angezeigt, falls eine nächste Seite definiert ist, ansonsten "OK". Jedes dieser Objekte kann die folgenden Parameter nutzen:
| Parameter | Beschreibung |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name (optional) | Ein Name zur Referenzierung, typischerweise für nextPage |
| nextPage (optional) | (__default:__ nächste Seite) Eine Referenz auf die Seite, welche bei Klick auf "Weiter" gezeigt werden soll. Dies kann eine Zahl sein, welche dem Index innerhalb der Liste pages entspricht, ein String, welcher dem Namen der Seite entspricht oder Skript, welches die nächste Seite als Zahl oder String zurückgibt. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Existiert die definierte Seite nicht, so schließt der Klick auf "OK" das Popup. |
| onConfirm (optional) | (__default:__ "") Skript das bei Betätigung von "Weiter" bzw. "OK" ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Sollte der Seitenwechsel durch validate verhindert werden, so wird onConfirm nicht ausgeführt. |
| onUndo (optional) | (__default:__ "") Skript das bei Rückkehr auf diese Seite über "Zurück" ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). |
| validate (optional) | (__default:__ "") Skript das bei Betätigung von "Weiter" bzw. "OK" ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Gibt das Skript einen nicht-leeren String zurück, so wird dieser als Fehler angezeigt und es findet kein Seitenwechsel statt und onConfirm wird nicht ausgeführt. |
| Weitere Parameter (optional) | Alle Parameter von [popup](https://www.symcon.de/./#Parameter_für_popup), also buttons, caption, closeCaption und items können ebenfalls für eine Seite definiert werden. In dem Fall wird der definierte Parameter der Seite verwendet. Nur wenn dieser nicht gesetzt ist wird der Standard von popup genutzt. |
### Parameter für buttons
| Parameter | Beschreibung |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Buttons |
| onClick | Skript, welches bei einem Klick auf den Button ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Sofern das Skript keine Ausgabe macht, wird das Popup nach Abarbeitung des Skriptes geschlossen. Ansonsten wird die Ausgabe als rote Fehlermeldung unten im Popup angzeigt. Eine Ausnahme besteht hier wenn die Rückgabe mit dem Präfix "MESSAGE:" beginnt. In diesem Fall wird das Popup geschlossen und die Rückgabe hinter dem Präfix in einem Meldungsdialog angezeigt. |
| enabled (optional) | (__default:__ true) Bei true kann der Button verwendet werden, ansonsten wird er deaktiviert dargestellt |
### Beispiel
```php
{
"type": "PopupAlert",
"popup": {
"closeCaption": "I understand",
"items": [
{
"type": "Label",
"caption": "Be careful when configuring this instance. Even small changes can have significant impact!"
}
]
}
},
{
"type": "PopupAlert",
"popup": {
"items": [
{
"type": "SelectVariable",
"name": "VariableActionTest",
"caption": "Some Action Variable"
}
]
}
},
{
"type": "PopupAlert",
"popup": {
"caption": "Ein Titel, der nie gesehen wird, da jede Seite ihn überschreibt",
"closeCaption": "Schließe Dialog",
"items": [
{
"type": "Label",
"caption": "Dieses Element wird nie gesehen, da jede Seite ihre eigenen items hat"
}
],
"pages": [
{
"caption": "Start",
"items": [
{
"type": "Label",
"caption": "Nächste Seite: Auswahl"
}
],
"nextPage": 2
},
{
"caption": "Nie sichtbar",
"items": [
{
"type": "Label",
"caption": "Diese Seite wird nie angezeigt, da die Startseite direkt auf die Seite mit Index 2 springt, die Auswahl"
}
]
},
{
"caption": "Auswahl",
"items": [
{
"type": "Select",
"name": "NextPage",
"options": [
{"value": "page1", "caption": "Gehe zu Seite 1"},
{"value": "page2", "caption": "Gehe zu Seite 2"},
{"value": "close", "caption": "Fertig, schließen"}
],
"caption": "Wähle nächste Seite"
}
],
"nextPage": "return $NextPage;"
},
{
"name": "page1",
"caption": "Seite 1",
"items": [
{
"type": "Label",
"caption": "Dies ist Seite 1 mit 'Undo'"
}
],
"onUndo": "echo 'Seite 1 rückgängig machen';",
"onConfirm": "echo 'Seite 1 bestätigen';"
},
{
"name": "page2",
"caption": "Seite 2",
"items": [
{
"type": "Label",
"caption": "Dies ist Seite 2, es gibt kein 'Undo'. Dies ist auch die letzte Seite des Wizards."
}
],
"onConfirm": "echo 'Seite 2 bestätigen';"
}
]
}
}
```
## PopupButton
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/popupbutton/
_Benötigt Symcon >= 5.0_
Erstellt einen Button, welcher durch einen Klick ein Popup öffnet, welches weitere Formularfelder enthält.

### Allgemeine Parameter
| Parameter | Beschreibung |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Buttons |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onClick-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann der Button verwendet werden, ansonsten wird er deaktiviert dargestellt. Dieser Parameter hat keine Auswirkung auf ein möglicherweise geöffnetes Popup (ab Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onClick-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 6.0) |
| name (optional) | Name des PopupButtons |
| onClick (optional) | (__default:__ "") Skript, welches bei einem Klick auf den Button ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| popup | Definition des zu öffnenden Popups (Parameter sind ab Symcon 6.1 änderbar durch Verknüpfung der Paramternamen, beispielsweise popup.closeCaption) |
| type | PopupButton |
| visible (optional) | (__default:__ true) Bei true ist der Button sichtbar, ansonsten ist er unsichtbar. Dieser Parameter hat keine Auswirkung auf ein möglicherweise geöffnetes Popup (ab Symcon 5.2) |
| width (optional) | Feste Breite des Buttons in Pixel oder % als String, z.B. "40%" oder "250px". Ist der Wert nicht gesetzt oder "", wird die Breite automatisch auf Basis der Beschriftung gewählt (ab Symcon 5.2) |
### Parameter für popup
| Parameter | Beschreibung |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| buttons (optional) | (__default:__ []) Eine Liste von Buttons welche im Popup unten rechts dargestellt wird. An erster Stelle wird immer der Schließen-Button dargestellt, danach folgen die hier beschriebenen Buttons in Reihenfolge (ab Symcon 6.1) |
| caption (optional) | (__default:__ "") Sichtbarer Titel des Popups |
| closeCaption (optional) | (__default:__ "Schließen") Die Beschriftung des Schließen-Buttons unten rechts im Popup (ab Version 6.1) |
| initialPage (optional) | (__default:__ 0) Eine Referenz auf die Seite aus [pages](https://www.symcon.de/./#Parameter_für_pages), welche beim Öffnen des Popups angezeigt werden soll. Dies kann eine Zahl sein, welche dem Index innerhalb der Liste pages entspricht, ein String, welcher dem Namen der Seite entspricht oder ein Skript, welches die Seite als Zahl oder String zurückgibt. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Existiert die definierte Seite nicht, so wird die erste Seite angezeigt. Eine Änderung von initialPage wirkt sich erst beim nächsten Öffnen des Popups aus. (ab Symcon 9.1) |
| items | Auflistung von Formularfeldern im Popup (nicht änderbar) |
| [pages](https://www.symcon.de/./#Parameter_für_pages) (optional) | (__default:__ []) Eine Liste von Seiten des Popups welche miteinander verkettet werden können und so die Funktionalität eines Wizards zu ermöglichen. Ist die Liste leer, so wird der regulär definierte Inhalt angezeigt. (ab Symcon 9.1) |
| width (optional) | (__default:__ "") Initiale Breite des Popups in Pixel oder % als String, z.B. "40%" oder "250px". Prozentangaben beziehen sich auf die Breite des Browserfensters. Ist der Wert nicht gesetzt oder "", wird die Standardbreite verwendet (ab Symcon 9.0) |
### Parameter für pages
Das Feld pages beinhaltet eine Liste von Objekten, welche jeweils eine Seite beschreiben. Falls ein Popup mehrere Seiten hat, so wird bei den Buttons ganz rechts ein "Zurück" und "Weiter" bzw. "OK" angezeigt, worüber die Seiten gewechselt werden können. "Zurück" ist aktiv, falls eine vorherige Seite existiert und diese entweder kein Skript für "onConfirm" definiert hat oder sowohl "onConfirm" als auch "onUndo" definiert ist. Sollte nur "onConfirm" definiert sein, ist "Zurück" deaktiviert. Für den zweiten Button wird "Weiter" angezeigt, falls eine nächste Seite definiert ist, ansonsten "OK". Jedes dieser Objekte kann die folgenden Parameter nutzen:
| Parameter | Beschreibung |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name (optional) | Ein Name zur Referenzierung, typischerweise für nextPage |
| nextPage (optional) | (__default:__ nächste Seite) Eine Referenz auf die Seite, welche bei Klick auf "Weiter" gezeigt werden soll. Dies kann eine Zahl sein, welche dem Index innerhalb der Liste pages entspricht, ein String, welcher dem Namen der Seite entspricht oder Skript, welches die nächste Seite als Zahl oder String zurückgibt. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Existiert die definierte Seite nicht, so schließt der Klick auf "OK" das Popup. |
| onConfirm (optional) | (__default:__ "") Skript das bei Betätigung von "Weiter" bzw. "OK" ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Sollte der Seitenwechsel durch validate verhindert werden, so wird onConfirm nicht ausgeführt. |
| onUndo (optional) | (__default:__ "") Skript das bei Rückkehr auf diese Seite über "Zurück" ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). |
| validate (optional) | (__default:__ "") Skript das bei Betätigung von "Weiter" bzw. "OK" ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Gibt das Skript einen nicht-leeren String zurück, so wird dieser als Fehler angezeigt und es findet kein Seitenwechsel statt und onConfirm wird nicht ausgeführt. |
| Weitere Parameter (optional) | Alle Parameter von [popup](https://www.symcon.de/./#Parameter_für_popup), also buttons, caption, closeCaption und items können ebenfalls für eine Seite definiert werden. In dem Fall wird der definierte Parameter der Seite verwendet. Nur wenn dieser nicht gesetzt ist wird der Standard von popup genutzt. |
### Parameter für buttons
| Parameter | Beschreibung |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Buttons |
| onClick | Skript, welches bei einem Klick auf den Button ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es sind keine PHP-Tags erforderlich. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Sofern das Skript keine Ausgabe macht, wird das Popup nach Abarbeitung des Skriptes geschlossen. Ansonsten wird die Ausgabe als rote Fehlermeldung unten im Popup angzeigt. Eine Ausnahme besteht hier wenn die Rückgabe mit dem Präfix "MESSAGE:" beginnt. In diesem Fall wird das Popup geschlossen und die Rückgabe hinter dem Präfix in einem Meldungsdialog angezeigt. |
| enabled (optional) | (__default:__ true) Bei true kann der Button verwendet werden, ansonsten wird er deaktiviert dargestellt |
### Beispiel
```php
{
"type": "PopupButton",
"caption": "Open Popup",
"popup": {
"caption": "My Element Popup",
"items": [
{
"type": "SelectVariable",
"name": "VariableTest",
"caption": "Some Variable"
}
]
}
},
{
"type": "PopupButton",
"caption": "Wizard starten",
"popup": {
"caption": "Ein Titel, der nie gesehen wird, da jede Seite ihn überschreibt",
"closeCaption": "Schließe Dialog",
"items": [
{
"type": "Label",
"caption": "Dieses Element wird nie gesehen, da jede Seite ihre eigenen items hat"
}
],
"pages": [
{
"caption": "Start",
"items": [
{
"type": "Label",
"caption": "Nächste Seite: Auswahl"
}
],
"nextPage": 2
},
{
"caption": "Nie sichtbar",
"items": [
{
"type": "Label",
"caption": "Diese Seite wird nie angezeigt, da die Startseite direkt auf die Seite mit Index 2 springt, die Auswahl"
}
]
},
{
"caption": "Auswahl",
"items": [
{
"type": "Select",
"name": "NextPage",
"options": [
{"value": "page1", "caption": "Gehe zu Seite 1"},
{"value": "page2", "caption": "Gehe zu Seite 2"},
{"value": "close", "caption": "Fertig, schließen"}
],
"caption": "Wähle nächste Seite"
}
],
"nextPage": "return $NextPage;"
},
{
"name": "page1",
"caption": "Seite 1",
"items": [
{
"type": "Label",
"caption": "Dies ist Seite 1 mit 'Undo'"
}
],
"onUndo": "echo 'Seite 1 rückgängig machen';",
"onConfirm": "echo 'Seite 1 bestätigen';"
},
{
"name": "page2",
"caption": "Seite 2",
"items": [
{
"type": "Label",
"caption": "Dies ist Seite 2, es gibt kein 'Undo'. Dies ist auch die letzte Seite des Wizards."
}
],
"onConfirm": "echo 'Seite 2 bestätigen';"
}
]
}
}
```
## ProgressBar
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/progressbar/
_Benötigt Symcon >= 5.2_
Erstellt einen Fortschrittsbalken.
Der Fortschrittsbalken kann durch die Verwendung von [UpdateFormField](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) dazu verwendet werden, den Benutzer über einen möglicherweise länger dauernden Vorgang zu informieren.
Es ist möglich entweder einen fortschreitenden Balken darzustellen oder einen unbestimmten Balken, welcher eine Ladeanimation anzeigt.

### Parameter
| Parameter | Beschreibung |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption (optional) | Sichtbare Beschriftung des Fortschrittsbalkens |
| current (optional) | (__default:__ 0) Der aktuelle Wert des Fortschrittsbalkens - Wird der Balken fortschreitend dargestellt, so ist er ungefüllt, falls der aktuelle Wert dem minimalen Wert des Fortschrittsbalkens entspricht, komplett gefüllt, falls der aktuelle Wert dem maximalen Wert des Fortschrittsbalken entspricht und ansonsten entsprechend anteilig gefüllt. |
| indeterminate (optional) | (__default:__ false) Bei true ist der Fortschrittsbalken unbestimmt und zeigt eine Animation an, ansonsten wird der Balken fortschreitend auf Basis von current, minimum und maximum dargestellt |
| maximum (optional) | (__default:__ 100) Der maximale Wert des Fortschrittsbalkens |
| minimum (optional) | (__default:__ 0) Der minimale Wert des Fortschrittsbalkens |
| name (optional) | Name des Fortschrittsbalken |
| type | ProgressBar |
| visible (optional) | (__default:__ true) Bei true ist der Fortschrittsbalken sichtbar, ansonsten ist er unsichtbar |
| width (optional) | (__default:__ 300px) Feste Breite des Fortschrittsbalkens in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{
"type": "ProgressBar",
"name": "IndeterminateProgress",
"indeterminate": true,
"caption": "Laden..."
},
{
"type": "ProgressBar",
"name": "DeterminateProgress",
"minimum": 0,
"maximum": 50,
"current": 20,
"caption": "20 / 50"
}
```
## QrCode
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/qrcode/
_Benötigt Symcon >= 7.0_
Erstellt einen QR-Code.

### Parameter
| Parameter | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------------- |
| caption (optional) | (__default:__ "") Sichtbare Beschriftung |
| center (optional) | (__default:__ false) Bei true wird der QR-Code mittig angezeigt, ansonsten linksbündig |
| description | (__default:__ true) Bei true wird der im QR-Code enthaltene Text unter diesem angezeigt |
| name (optional) | Name des QR-Codes/der zu setzenden Eigenschaft |
| source | Die im QR-Code codierte Zeichenkette |
| type | QrCode |
| visible (optional) | (__default:__ true) Bei true ist der QR-Code sichtbar, ansonsten ist er unsichtbar |
### Beispiel
```php
{ "type": "QrCode", "name": "Beispiel", "caption": "Beispieltext", "source": "Ein Beispieltext" }
```
## RadioButtonGroup
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/radiobuttongroup/
_Benötigt Symcon >= 9.1_
Erstellt eine Gruppe von Radio Buttons mit der Überschrift __caption__.
Falls im "elements"-Bereich erstellt, setzen die Buttons eine Eigenschaft bei Übernahme auf den ausgewählten Wert __value__.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.
> **Hinweis:** Bei MultiSelect ist darauf zu achten, dass alle Value-Arrays die gleichen Namen beinhalten
> **Achtung:** Wird RadioButtonGroup innerhalb von Listen verwendet, gibt es kein MultiSelect.

### Parameter
| Parameter | Beschreibung |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung der Gruppe von Radio Buttons |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. |
| enabled (optional) | (__default:__ true) Bei true kann die Gruppe verwendet werden, ansonsten wird sie deaktiviert dargestellt |
| itemsPosition (optional) | (__default:__ 0) Die Position der über "items" der Optionen definierten Konfigurationselemente 0: Die Elemente werden unterhalb des jeweiligen Radio Buttons angezeigt 1: Die Elemente werden rechts neben dem jeweiligen Radio Button angezeigt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. |
| name (optional) | Name der Gruppe/der zu setzenden Eigenschaft |
| options | Array, welches alle Auswahlmöglichkeiten beinhaltet |
| onChange (optional) | (__default:__ "") Skript, welches bei Auswahl eines Radio Buttons ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| type | RadioButtonGroup |
| value (optional) | (__default:__ erste definierte Option) Der Wert des gewählten Radio Buttons - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist die Gruppe sichtbar, ansonsten ist sie unsichtbar |
| width (optional) | (__default:__ 300px) Feste Breite der Gruppe in Pixel oder % als String, z.B. "40%" oder "250px" |
### Parameter für options
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Beschriftung eines Radio Buttons |
| enabled (optional) | (__default:__ true) Bei true ist der Radio Button aktiv und wählbar, ansonsten wird er inaktiv dargestellt und kann nicht gewählt werden |
| items (optional) | (__default:__ []) Liste mit Konfigurationselementen, welche nur angezeigt werden, solange dieser Radio Button gewählt ist. Die Werte der Elemente der übrigen Radio Buttons bleiben erhalten |
| value | Wert der bei Auswahl übergeben wird. Kann auch ein weiteres Array beinhalten, welches mehreren Eigenschaften die Werte übergibt. |
### Beispiel
```php
//Einfache Valueübergabe
//Eigenschaft "DeviceType" wird auf 0..3 gesetzt
//Gruppe hat 4 Radio Buttons
{ "type": "RadioButtonGroup", "name": "DeviceType", "caption": "Einheit",
"options": [
{ "caption": "Bit (1Bit)", "value": 0 },
{ "caption": "Bits (2Bit)", "value": 1 },
{ "caption": "Bits (4Bit)", "value": 2 },
{ "caption": "Byte (8Bit)", "value": 3 }
]
}
//Mehrfache Valueübergabe (MultiSelect)
//"name" der RadioButtonGroup (hier: "OutputDevice") muss gesetzt sein, wird jedoch nicht zum Setzen der Werte genutzt.
//Eigenschaften "DeviceName", "DeviceChannels" und "DeviceNum" werden gesetzt.
{ "type": "RadioButtonGroup", "name": "OutputDevice", "caption": "Ausgabegerät",
"options": [
{"caption" : "No sound",
"value": [
{"name": "DeviceName", "value": "No sound"},
{"name": "DeviceChannels", "value": 0},
{"name": "DeviceNum", "value": 0}
]
},
{"caption" : "Kopfhörer",
"value": [
{"name": "DeviceName", "value": "Kopfhörer"},
{"name": "DeviceChannels", "value": 2},
{"name": "DeviceNum", "value": 1}
]
},
{"caption" : "Lautsprecher",
"value": [
{"name": "DeviceName", "value": "Stereolautsprecher"},
{"name": "DeviceChannels", "value": 2},
{"name": "DeviceNum", "value": 2}
]
}
]
}
//Konfigurationselemente einzelner Radio Buttons
//Die Elemente des Radio Buttons "Netzwerk" werden nur angezeigt, solange dieser gewählt ist
{ "type": "RadioButtonGroup", "name": "ConnectionType", "caption": "Verbindung",
"options": [
{ "caption": "USB", "value": 0 },
{ "caption": "Netzwerk", "value": 1,
"items": [
{ "type": "ValidationTextBox", "name": "Host", "caption": "Host" },
{ "type": "NumberSpinner", "name": "Port", "caption": "Port" }
]
}
]
}
```
## RowLayout
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/rowlayout/
_Benötigt Symcon >= 5.0_
Erstellt eine Zeile, in welcher Formularfelder nebeneinander dargestellt werden.

### Parameter
| Parameter | Beschreibung |
| ------------------ | ---------------------------------------------------------------------------------------------------- |
| items | Liste mit Konfigurationselementen innerhalb der Zeile (ab IP-Symcon 6.0 änderbar) |
| name (optional) | Name der Zeile |
| type | RowLayout |
| visible (optional) | (__default:__ true) Bei true ist die Zeile sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
### Beispiel
```php
// Zeilenlayout
{
"type": "RowLayout",
"items": [
{
"type": "SelectLocation",
"name": "Location",
"caption": "My Location"
},{
"type": "Button",
"caption": "Test",
"onClick": "TM_Update($id);"
},{
"type": "Button",
"caption": "Test2",
"onClick": "TM_Update2($id);"
}
]
}
```
## ScriptEditor
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/scripteditor/
_Benötigt Symcon >= 6.0_
Erstellt einen Skripteditor mit der Überschrift __caption__.
Falls im "elements"-Bereich erstellt, setzt der ScriptEditor eine Eigenschaft bei Übernahme auf den eingetragenen String.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption (optional) | (__default:__ "") sichtbare Beschriftung des Eingabefeldes |
| enabled (optional) | (__default:__ true) Bei true kann das Eingabefeld verwendet werden, ansonsten wird es deaktiviert dargestellt |
| name (optional) | Name des Eingabefeldes/der zu setzenden Eigenschaft |
| type | ScriptEditor |
| value (optional) | (__default:__ Platzhalterskript mit PHP-Tag) Der Wert des Eingabefeldes - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist das Eingabefeld sichtbar, ansonsten ist es unsichtbar |
| width (optional) | (__default:__ 100%) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px", |
| rowCount (optional) | (__default:__ 5) Anzahl der dargestellten Zeilen des Editors. Beinhaltet das Skript selbst mehr Zeilen, so wird ein Scrollbalken angezeigt |
### Beispiel
```php
{ "type": "ScriptEditor", "name": "Script" }
```
## Select
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/select/
Erstellt ein DropDown-Menü mit der Überschrift __caption__.
Falls im "elements"-Bereich erstellt, setzt das DropDown-Menü eine Eigenschaft bei Übernahme auf den ausgewählten Wert __value__.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.
> **Hinweis:** Bei MultiSelect ist darauf zu achten, dass alle Value-Arrays die gleichen Namen beinhalten
> **Achtung:** Wird Select innerhalb von Listen verwendet, gibt es kein MultiSelect.

### Parameter
| Parameter | Beschreibung |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des DropDown-Menüs |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann das DropDown-Menü verwendet werden, ansonsten wird es deaktiviert dargestellt (ab Symcon 5.2) |
| itemsPosition (optional) | (__default:__ 0) Die Position der über "items" der Optionen definierten Konfigurationselemente (ab Symcon 9.1) 0: Die Elemente werden unterhalb des DropDown-Menüs angezeigt 1: Die Elemente werden rechts neben dem DropDown-Menü angezeigt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 6.0) |
| name (optional) | Name des DropDown-Menüs/der zu setzenden Eigenschaft |
| options | Array, welches alle Auswahlmöglichkeiten beinhaltet |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Dropdown-Wertes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.2) |
| type | Select |
| value (optional) | (__default:__ erste definierte Option) Der Wert des DropDown-Menüs - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist das DropDown-Menü sichtbar, ansonsten ist es unsichtbar (ab Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Dropdown-Menüs in Pixel oder % als String, z.B. "40%" oder "250px" (ab Symcon 5.3) |
### Parameter für options
| Parameter | Beschreibung |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| caption | Beschriftung einer Auswahlmöglichkeit |
| enabled (optional) | (__default:__ true) Bei true ist die Auswahl aktiv und wählbar, ansonsten wird sie inaktiv dargestellt und kann nicht gewählt werden (ab Symcon 9.1) |
| items (optional) | (__default:__ []) Liste mit Konfigurationselementen, welche nur angezeigt werden, solange diese Auswahlmöglichkeit gewählt ist. Die Werte der Elemente der übrigen Auswahlmöglichkeiten bleiben erhalten (ab Symcon 9.1) |
| label | Beschriftung einer Auswahlmöglichkeit _(veraltet)_ |
| value | Wert der bei Auswahl übergeben wird. Kann auch ein weiteres Array beinhalten, welches mehreren Eigenschaften die Werte übergibt. |
### Beispiel
```php
//Einfache Valueübergabe
//Eigenschaft "DeviceType" wird auf 0..3 gesetzt
//DropDown-Menü hat 4 Einträge
{ "type": "Select", "name": "DeviceType", "caption": "Einheit",
"options": [
{ "caption": "Bit (1Bit)", "value": 0 },
{ "caption": "Bits (2Bit)", "value": 1 },
{ "caption": "Bits (4Bit)", "value": 2 },
{ "caption": "Byte (8Bit)", "value": 3 }
]
}
//Mehrfache Valueübergabe (MultiSelect)
//"name" des Select (hier: "OutputDevice") muss gesetzt sein, wird jedoch nicht zum Setzen der Werte genutzt.
//Eigenschaften "DeviceName", "DeviceChannels" und "DeviceNum" werden gesetzt.
{ "type": "Select", "name": "OutputDevice", "caption": "Ausgabegerät",
"options": [
{"caption" : "No sound",
"value": [
{"name": "DeviceName", "value": "No sound"},
{"name": "DeviceChannels", "value": 0},
{"name": "DeviceNum", "value": 0}
]
},
{"caption" : "Kopfhörer",
"value": [
{"name": "DeviceName", "value": "Kopfhörer"},
{"name": "DeviceChannels", "value": 2},
{"name": "DeviceNum", "value": 1}
]
},
{"caption" : "Lautsprecher",
"value": [
{"name": "DeviceName", "value": "Stereolautsprecher"},
{"name": "DeviceChannels", "value": 2},
{"name": "DeviceNum", "value": 2}
]
}
]
}
//Konfigurationselemente einzelner Auswahlmöglichkeiten
//Die Elemente der Option "Netzwerk" werden nur angezeigt, solange diese gewählt ist
{ "type": "Select", "name": "ConnectionType", "caption": "Verbindung",
"options": [
{ "caption": "USB", "value": 0 },
{ "caption": "Netzwerk", "value": 1,
"items": [
{ "type": "ValidationTextBox", "name": "Host", "caption": "Host" },
{ "type": "NumberSpinner", "name": "Port", "caption": "Port" }
]
}
]
}
```
## SelectAction
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectaction/
_Benötigt Symcon >= 6.0_
Erstellt eine Eingabe für eine [Aktion](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) .

Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf ein JSON-codiertes Objekt gesetzt, welches folgende Parameter enthält:
| Parameter | Beschreibung |
| ---------- | -------------------- |
| actionID | ID der Aktion |
| parameters | Parameter der Aktion |
### Parameter
| Parameter | Beschreibung |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption (optional) | (__default:__: "") Sichtbare Beschriftung (ab IP-Symcon 7.1) |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt |
| environment (optional) | (__default:__ "Default") Legt die Umgebung der Aktionsauswahl fest, hierüber kann bestimmt werden, welche Arten von Aktionen zur Auswahl stehen, siehe auch [Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) |
| highestPriorityOnly (optional) | (__default:__ false) Bei false verfügt das Element eine Auswahl über alle passenden Aktionen, ansonsten wird ohne Auswahl automatisch die Aktion mit der höchsten Priorität ausgewählt |
| includeDefaultEnvironment (optional) | (__default:__ true) Bei false werden nur Aktionen zur Auswahl angeboten, welche die Umgebung _environment_ unterstützen, bei true werden zusätzlich alle Aktionen der Umgebung "Default" angeboten |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| targetID (optional) | (__default:__ -2) Bei -2 verfügt das Element über eine Zielauswahl, ansonsten ist das Ziel mit dieser ID fest als Ziel gesetzt, wobei -1 für allgemeine Aktionen steht |
| type | SelectAction |
| value (optional) | (__default:__ keine Aktion ausgewählt) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" |
| saveTarget (optional) | (__default:__ true) Bei true wird das Ziel als TARGET als Teil der parameters gespeichert |
| saveEnvironment (optional) | (__default:__ true) Bei true wird die Umgebung als ENVIRONMENT als Teil der parameters gespeichert |
| saveParent (optional) | (__default:__ true) Bei true wird die InstanzID als PARENT als Teil der parameters gespeichert |
### Beispiel 1: Ziel, Umgebung und InstanzID werden konstant als Teil der Eigenschaft gespeichert
Standardmäßig werden alle benötigten Parameter als Rückgabe von SelectAction abgespeichert. Dadurch kann die Aktion am einfachsten ausgeführt werden.
```php
{ "type": "SelectAction", "name": "PropertyAction", "targetID": 12345 }
// PHP-Code im Modul
$action = json_decode($this->ReadPropertyString('PropertyAction'), true);
IPS_RunAction($action['actionID'], $action['parameters']);
```
### Beispiel 2: Ziel, Umgebung und InstanzID werden dynamisch gesetzt
Speichert man die Zusatzparameter nicht als Rückgabe ab, so müssen diese manuell hinzugefügt werden. Hierdurch können beispielsweise Aktionen zwischen Instanzen ausgetauscht werden und es werden keine redundanten Daten abgespeichert.
```php
{ "type": "SelectAction", "name": "PropertyAction", "targetID": 12345, "saveTarget": false, "saveEnvironment": false, "saveParent": false }
// PHP-Code im Modul
$action = json_decode($this->ReadPropertyString('PropertyAction'), true);
$parameters = $action['parameters'];
$parameters['TARGET'] = 12345;
$parameters['ENVIRONMENT'] = 'Default';
$parameters['PARENT'] = $this->InstanceID;
IPS_RunAction($action['actionID'], $parameters);
```
## SelectCategory
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectcategory/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID der ausgewählten Kategorie gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Kategorieauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Kategorieauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Kategorieauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectCategory |
| value (optional) | (__default:__ 1) Der Wert der Kategorieauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Kategorieauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Kategorieauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectCategory", "name": "PropertyCategoryID", "caption": "Target" }
```
## SelectColor
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectcolor/
_Benötigt Symcon >= 4.2_
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf den Wert der ausgewählten Farbe als Hex-String gesetzt.
Wird der Wert gelöscht, wird dieser auf Transparent(Wert = -1) gesetzt.

### Parameter
| Parameter | Beschreibung |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| allowTransparent (optional) | (__default:__ true) Wenn gesetzt, so kann die Auswahl gelöscht und so auf "Transparent" gesetzt werden. Ansonsten kann der Wert nicht gelöscht und somit nicht auf "Transparent" gesetzt werden. |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 6.0) |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Änderung der Farbe ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.2) |
| transparentCaption | (__default:__ "Transparent") Beschriftung welche angezeigt wird, wenn die Auswahl auf "Transparent", also -1, steht (ab Symcon 8.2) |
| type | SelectColor |
| value (optional) | (__default:__ -1 falls allowTransparent, sonst 0) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar (ab Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Farbauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectColor", "name": "HexColorEigenschaft", "caption": "Color" }
```
## SelectCondition
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectcondition/
_Benötigt Symcon >= 6.1_
Erstellt eine Eingabe für Bedingungen.

Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf eine JSON-codiertes Liste gesetzt, wobei jedes Element ein Objekt mit folgenden Parametern darstellt:
| Parameter | Beschreibung |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| id | ID der Bedingung |
| parentID | ID der übergeordneten Bedingung |
| operation | Operation zur Verknüpfung der einzelnen Regeln (0: AND, 1: OR, 2: NAND (noch nicht implementiert), 3: NOR (noch nicht implementiert)) |
| rules | Objekt welches die Regeln der Bedingung beschreibt |
#### rules
| Parameter | Beschreibung |
| ------------ | ------------------------------ |
| variable | Liste mit den Variablenregeln |
| date | Liste mit den Datumsregeln |
| time | Liste mit den Uhrzeitregeln |
| dayOfTheWeek | Liste mit den Wochentagsregeln |
#### Darstellung einer Regel
| Parameter | Beschreibung |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| id | Eindeutige ID der Regel innerhalb der Regelliste |
| comparison | Vergleichsoperator mit welchem der aktuelle Wert mit dem Vergleichswert verglichen wird (0: =, 1: ≠, 2: >, 3: ≥, 4: <, 5: ≤) |
| value | Der Vergleichswert, der Typ hängt von der Regelart ab _Variable_: Falls "type" = 0 steht hier der absolute Vergleichswert passend zum Typ der Variable, bei "type" = 1 steht hier eine VariablenID mit deren Wert verglichen wird _Datum_: Der Wert wird als Objekt mit den Feldern "year", "month" und "day" abgespeichert, analog zur Darstellung von [IPS_SetEventConditionDateRule](https://www.symcon.de/de/llms/functions/management-events.md) _Uhrzeit_: Der Wert wird als Objekt mit den Feldern "hour", "minute" und "second" abgespeichert, analog zur Darstellung von [IPS_SetEventConditionTimeRule](https://www.symcon.de/de/llms/functions/management-events.md) _Wochentag_: Der Vergleichstag wird als Zahl gespeichert (1: Montag, 2: Dienstag, 3: Mittwoch, 4: Donnerstag, 5: Freitag, 6: Samstag, 7: Sonntag) |
| variableID (nur bei Variablenregeln) | Die ID der Variable, welche den aktuellen Wert beinhaltet |
| type (nur bei Variablenregeln) | Bei 0 wird die Variable mit einem absoluten Wert verglichen, bei 1 mit dem Wert einer anderen Variablen |
> **Hinweis:** Anstatt eine konfigurierte Bedingung selbstständig auszuwerten sollte die Funktion [IPS_IsConditionPassing](https://www.symcon.de/de/llms/functions/management-events.md) verwendet werden. Dort kann der Wert des SelectCondition direkt als Parameter verwendet werden.
> **Hinweis:** Falls die abgespeicherte Bedingung verschachtelte Bedingungen beinhaltet oder "multi" auf false steht und die Bedingung mehrere Regeln beinhaltet, wird die Regel als "Komplex" angezeigt und kann nicht bearbeitet werden.
### Parameter
| Parameter | Beschreibung |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption (optional) | (__default:__: "") Sichtbare Beschriftung (ab IP-Symcon 7.1) |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt |
| multi (optional) | (__default:__ false) Bei false wird vom Element eine einzelne Regel definiert, bei true eine gesamte Bedingung mit beliebig vielen Regeln |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| type | SelectCondition |
| value (optional) | (__default:__ keine Bedingung) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar |
| width (optional) | (__default:__ 300px, falls multi = false, sonst 100%) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" |
### Beispiel
```php
{ "type": "SelectCondition", "name": "PropertyCondition", "multi": true }
```
## SelectDate
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectdate/
_Benötigt Symcon >= 5.0_
Erstellt eine Eingabe für ein Datum mit der Beschriftung __caption__.

Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf ein JSON-codiertes Objekt gesetzt, welches folgende Parameter enthält:
| Parameter | Beschreibung |
| --------- | ---------------- |
| day | Tag des Datums |
| month | Monat des Datums |
| year | Jahr des Datums |
Wurde kein Zeitpunkt ausgewählt, so stehen alle Parameter auf 0.
### Parameter
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| type | SelectDate |
| value (optional) | (__default:__ kein Zeitpunkt ausgewählt) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectDate", "name": "PropertyDate", "caption": "Date" }
```
## SelectDateTime
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectdatetime/
_Benötigt Symcon >= 5.0_
Erstellt eine Eingabe für ein Datum und eine Uhrzeit mit der Beschriftung __caption__.

Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf ein JSON-codiertes Objekt gesetzt, welches folgende Parameter enthält:
| Parameter | Beschreibung |
| --------- | -------------------- |
| day | Tag des Datums |
| hour | Stunden der Uhrzeit |
| minute | Minuten der Uhrzeit |
| month | Monat des Datums |
| second | Sekunden der Uhrzeit |
| year | Jahr des Datums |
Wurde kein Zeitpunkt ausgewählt, so stehen alle Parameter auf 0.
### Parameter
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| type | SelectDateTime |
| value (optional) | (__default:__ kein Zeitpunkt ausgewählt) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectDateTime", "name": "PropertyDateTime", "caption": "Date + Time" }
```
## SelectEvent
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectevent/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID des ausgewählten Ereignisses gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Ereignisauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Ereignisauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Ereignisauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectEvent |
| value (optional) | (__default:__ 0) Der Wert der Ereignisauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Ereignisauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Ereignisauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectEvent", "name": "PropertyEventID", "caption": "Target" }
```
## SelectFile
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectfile/
_Benötigt Symcon >= 4.2_
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf den Base64 kodierten Wert der ausgewählten Datei gesetzt. Dies bedeutet, dass der Inhalt der ausgewählten Datei als Base64 kodierter String gespeichert wird.

### Parameter
| Parameter | Beschreibung |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Dateiauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| extensions (optional) | Erlaubte Erweiterungen der Datei. Durch Komma getrennt und mit Punkt eingeleitet Bsp: .jpg,.gif,.txt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Dateiauswahl/der zu setzenden String-Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Dateiauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectFile |
| value (optional) | (__default:__ 0) Der Wert der Dateiauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Dateiauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Dateiauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectFile", "name": "PropertyStringFile", "caption": "Target", "extensions": ".jpg,.gif,.txt" }
```
## SelectIcon
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selecticon/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf den Namen des ausgewählten Icons gesetzt.
Wird der Wert gelöscht, wird dieser auf einen leeren String gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Änderung des Icons ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| type | SelectIcon |
| value (optional) | (__default:__ "") Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Farbauswahl in Pixel oder % als String, z.B. "40%" oder "250px" |
### Beispiel
```php
{ "type": "SelectIcon", "name": "IconEigenschaft", "caption": "Icon" }
```
## SelectInstance
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectinstance/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID der ausgewählten Instanz gesetzt.

### Parameter
| Parameter | Beschreibung |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Instanzauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Instanzauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Instanzauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectInstance |
| validModules (optional) | (__default:__ []) Die Auswahl wird auf Instanzen eingeschränkt, welche eine der definierten ModulIDs haben. Wenn die Liste leer ist sind alle Instanz erlaubt. Entspricht die ausgewählte Instanz keiner der ModulIDs so wird ein Fehler angezeigt und Änderungen können nicht übernommen werden. (ab IP-Symcon 5.5) |
| value (optional) | (__default:__ 1) Der Wert der Instanzauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Instanzauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Instanzauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectInstance", "name": "PropertyInstanceID", "caption": "Target" }
```
## SelectLink
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectlink/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID des ausgewählten Links gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Linkauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Linkauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Linkauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectLink |
| value (optional) | (__default:__ 1) Der Wert der Linkauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Linkauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Linkauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectLink", "name": "PropertyLinkID", "caption": "Target" }
```
## SelectLocation
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectlocation/
_Benötigt Symcon >= 5.0_
Erstellt eine Eingabe für eine Position mit der Beschriftung __caption__. Hier kann die Position bei Internetzugriff per Karte ausgewählt werden. Alternativ können Längen- und Breitengrad auch manuell angegeben werden.


Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf ein JSON-codiertes Objekt gesetzt, welches folgende Parameter enthält:
| Parameter | Beschreibung |
| --------- | ------------------------ |
| latitude | Breitengrad der Position |
| longitude | Längengrad der Position |
Wurde keine Position ausgewählt, so stehen alle Parameter auf 0.
### Parameter
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| type | SelectLocation |
| value (optional) | (__default:__ keine Position ausgewählt) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectLocation", "name": "Location", "caption": "Home" }
```
## SelectMedia
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectmedia/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID des ausgewählten Mediums gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Medienauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Medienauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Medienauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectMedia |
| value (optional) | (__default:__ 1) Der Wert der Medienauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Medienauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Medienauwahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectMedia", "name": "PropertyMediaID", "caption": "Target" }
```
## SelectModule
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectmodule/
_Benötigt Symcon >= 5.5_
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID der ausgewählten Instanz gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Modulauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| moduleID | Die ID des Moduls, dessen Instanzen zur Auswahl angeboten werden sollen |
| name (optional) | Name der Modulauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Modulauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| type | SelectModule |
| value (optional) | (__default:__ 1) Der Wert der Modulauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist die Modulauswahl sichtbar, ansonsten ist sie unsichtbar |
| width (optional) | (__default:__ 300px) Feste Breite der Modulauswahl in Pixel oder % als String, z.B. "40%" oder "250px" |
### Beispiel
```php
{ "type": "SelectModule", "name": "PropertyModuleInstanceID", "caption": "VoIP Modul" , "moduleID": "{A4224A63-49EA-445F-8422-22EF99D8F624}"}
```
## SelectObject
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectobject/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID des ausgewählten Objekts gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Objektauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Objektauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Objektauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectObject |
| value (optional) | (__default:__ 1) Der Wert der Objektauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Objektauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Objektauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectObject", "name": "ObjectID", "caption": "Target" }
```
## SelectProfile
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectprofile/
_Benötigt Symcon >= 5.5_
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf den Namen des ausgewählten Profils gesetzt.

### Parameter
| Parameter | Beschreibung |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Profilauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Profilauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Profilauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| profileType (optional) | (__default:__ -1) Der Typ des Profile welches ausgewählten werden kann (-1: Alle, 0: Boolean, 1: Integer, 2: Float, 3: String) |
| type | SelectProfile |
| value (optional) | (__default:__ "") Der Wert der Profilauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist die Profilauswahl sichtbar, ansonsten ist sie unsichtbar |
| width (optional) | (__default:__ 300px) Feste Breite der Profilauswahl in Pixel oder % als String, z.B. "40%" oder "250px" |
### Beispiel
```php
{ "type": "SelectProfile", "name": "PropertyProfileName", "caption": "Profil - Integer" , "profileType": 1}
```
## SelectScript
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectscript/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID des ausgewählten Skripts gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Skriptauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Skriptauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Skriptauswahl ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| type | SelectScript |
| value (optional) | (__default:__ 1) Der Wert der Skriptauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Skriptauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Skriptauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectScript", "name": "RXObjectID", "caption": "Target" }
```
## SelectTime
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selecttime/
_Benötigt Symcon >= 5.0_
Erstellt eine Eingabe für eine Uhrzeit mit der Beschriftung __caption__.

Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf ein JSON-codiertes Objekt gesetzt, welches folgende Parameter enthält:
| Parameter | Beschreibung |
| --------- | -------------------- |
| hour | Stunden der Uhrzeit |
| minute | Minuten der Uhrzeit |
| second | Sekunden der Uhrzeit |
Wurde kein Zeitpunkt ausgewählt, so stehen alle Parameter auf 0.
### Parameter
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| enabled (optional) | (__default:__ true) Bei true kann die Auswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name der Auswahl/der zu setzenden Eigenschaft |
| type | SelectTime |
| value (optional) | (__default:__ kein Zeitpunkt ausgewählt) Der Wert der Auswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Auswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "SelectTime", "name": "PropertyTime", "caption": "Time" }
```
## SelectValue
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectvalue/
_Benötigt Symcon >= 6.3_
Erstellt einen Auswahldialog, der basierend auf dem Typen und dem Profil der gewählten __variableID__ ein passendes Formularfeld anzeigt.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf den derzeit ausgewählten Wert gesetzt.

### Parameter
| Parameter | Beschreibung |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| enabled (optional) | (__default:__ true) Bei true kann die Wertauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name der Wertauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Wertauswahl ausgeführt wird. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| type | SelectValue |
| value (optional) | (__default:__ null) Der JSON kodierte Wert der Auswahl. Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben |
| visible (optional) | (__default:__ true) Bei true ist die Wertauswahl sichtbar, ansonsten ist sie unsichtbar |
| variableID | (__default:__ 1) Die Variable, die für die Auswahl des Elementes herangezogen wird |
| width (optional) | (__default:__ 300px) Feste Breite der Wertauswahl in Pixel oder % als String, z.B. "40%" oder "250px" |
> **Hinweis:** Der Wert __value__ wird als JSON kodierter String gespeichert.
### Beispiel
```php
{
"type": "SelectValue",
"name": "Wert",
"caption": "Wert",
"variableID": 12345
}
```
## SelectVariable
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/selectvariable/
Erstellt einen Auswahldialog mit der Beschriftung __caption__.
Falls im "elements"-Bereich erstellt, wird bei Übernahme die Eigenschaft __name__ auf die ID der ausgewählten Variablen gesetzt.

### Parameter
| Parameter | Beschreibung |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onChange-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab IP-Symcon 7.0) |
| enabled (optional) | (__default:__ true) Bei true kann die Variablenauswahl verwendet werden, ansonsten wird sie deaktiviert dargestellt (ab IP-Symcon 5.2) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onChange-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab IP-Symcon 6.0) |
| name (optional) | Name der Variablenauswahl/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des Wertes der Variablenauswahl ausgeführt wird. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 5.2) |
| requiredAction (optional) | (__default:__ 0) Gibt an ob die Variable eine Aktion haben muss (ab IP-Symcon 6.0) 0: Es ist egal, ob die Variable eine Aktion hat oder nicht 1: Die Variable muss eine Aktion haben 2: Die Variable darf keine Aktion haben |
| requiredLogging (optional) | (__default:__ 0) Die Art auf die die Variable geloggt sein darf (ab IP-Symcon 6.0) 0: Es ist egal, ob die Variable geloggt ist oder nicht 1: Die Variable muss geloggt sein 2: Die Variable darf nicht geloggt sein 3: Die Variable muss als Standard geloggt sein 4: Die Variable muss als Zähler geloggt sein |
| type | SelectVariable |
| validVariableTypes (optional) | (__default:__ []) Die Typen der Variablen, die ausgewählt werden können. Bei einem leeren Array sind alle Variablentypen zulässig (0: Boolean, 1: Integer, 2: Float, 3: String)(ab IP-Symcon 6.0) |
| value (optional) | (__default:__ 1) Der Wert der Variablenauswahl - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist die Variablenauswahl sichtbar, ansonsten ist sie unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite der Variablenauswahl in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
> **Hinweis:** Entspricht die Variable nicht den durch die Parameter validVariableTypes, requiredAction oder requiredLogging definierten Anforderungen, wird ein Fehler angezeigt und Änderungen können nicht übernommen werden
### Beispiel
```php
//Jede Variable kann ausgewählt werden
{
"type": "SelectVariable",
"name": "PropertyVariableID",
"caption": "Target"
}
//Die ausgewählte Variable muss ein Integer oder Float sein,
//sowie geloggt sein und eine Aktion haben
{
"type": "SelectVariable",
"name": "PropertyVariableID",
"caption": "Target",
"validVariableTypes": [1, 2],
"requiredAction": 1,
"requiredLogging": 1
}
```
## Statusmeldung
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/statusmeldung/
Erstellt eine Statusmeldung.
> **Achtung:** Statusmeldungen können nur im "status"-Bereich genutzt werden. Keine anderen Formularfeldtypen können im "status"-Bereich genutzt werden.
### Parameter
| Parameter | Beschreibung |
| --------- | ----------------------------- |
| caption | Sichtbare Beschriftung |
| code | Statuscode (siehe Tabelle) |
| icon | Symbol welches angezeigt wird |
### Übersicht der Statuscodes
| code | Beschreibung |
| ----- | ---------------------------- |
| 101 | Instanz wird erstellt |
| 102 | Instanz ist aktiv |
| 103 | Instanz wird gelöscht |
| 104 | Instanz ist inaktiv |
| 105 | Instanz wurde nicht erstellt |
| >=200 | Instanz ist fehlerhaft |
> **Hinweis:** Codes >=200 müssen selbstdefiniert werden.
### Übersicht der möglichen Icons
active

error

inactive

### Beispiel
```php
// Active icon
{ "code": 102, "icon": "active", "caption": "Logged in!" }
// Error icon
{ "code": 200, "icon": "error", "caption": "Error!" }
// Inactive icon
{ "code": 104, "icon": "inactive", "caption": "Logged out!" }
```
## TestCenter
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/testcenter/
_Benötigt Symcon >= 5.0_
Generiert einen Testbereich, in welchem alle schaltbaren Statusvariablen der Instanz geschaltet werden können. Die Bedienelemente basieren hierbei auf Typ und Profil der Variablen und orientieren sich an den Schaltelementen des WebFronts.

### Parameter
| Parameter | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| caption (optional) | (__default:__ "") Sichtbare Beschriftung (ab IP-Symcon 7.2) |
| enabled (optional) | (__default:__ true) Bei true kann der Testbereich verwendet werden, ansonsten wird er deaktiviert dargestellt (ab IP-Symcon 5.2) |
| name (optional) | Name des Testbereichs |
| type | TestCenter |
| visible (optional) | (__default:__ true) Bei true ist der Testbereich sichtbar, ansonsten ist er unsichtbar (ab IP-Symcon 5.2) |
### Beispiel
```php
{
"type": "TestCenter"
}
```
## Tree
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/tree/
_Benötigt Symcon >= 5.0_
Erstellt einen Baum mit der Überschrift __caption__.
Die angezeigten Spalten werden in __columns__ definert.
Initiale Einträge des Baumes können via __values__ vorgegeben werden.

### Allgemeine Parameter
| Parameter | Beschreibung |
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| add (optional) | (__default:__ false) Wenn true, dann wird unter der Tabelle ein "Hinzufügen"-Button eingeblendet, welcher dem Baum ein neues Element unter dem angewählten Knoten hinzufügt |
| caption (optional) | Sichtbare Beschriftung des Baumes |
| [columns](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) | Spalten des Baumes |
| delete (optional) | (__default:__ false) Wenn true, dann wird hinter jedem Eintrag in des Baumes ein Button eingeblendet, welcher das entsprechende Element löscht |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onAdd, onDelete, onEdit oder onExpand-Skriptes eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.0) |
| form (optional) | (__default:__ basierend auf den edit-Parametern von columns) Ein individuelles Formular zum Bearbeiten oder Hinzufügen von Zeilen. Die Definition des Formulars erfolg analog zur Definition des Formulars für [Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) statisch oder als PHP-Code. Die Verwendung des Formulars funktioniert analog zum gleichnamigen Parameter der [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 7.0) |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onAdd, onDelete, onEdit und onExpand-Skriptes als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 6.0) |
| multiAdd (optional) | (__default:__ false, falls onAdd gesetzt ist, sonst true) Ist dieser Parameter true, ist form nicht gesetzt und hat der Baum nur eine einzige editierbare Spalte vom Typ [SelectObject](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectCategory](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectInstance](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectScript](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectMedia](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) oder [SelectLink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), so können mehrere Objekte gleichzeitig hinzugefügt werden. Beim Hinzufügen mehrerer Objekte wird onAdd trotzdem nur ein mal ausgeführt. (ab Symcon 9.1) |
| name (optional) | Name des Baumes |
| onAdd (optional) | (__default:__ "") Skript, welches nach dem Hinzufügen eines Eintrages des Baumes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). In dieser Ausführung bietet der Baum als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den hinzugefügten Eintrag, siehe [Verwendung des Bauminhaltes in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| onDelete (optional) | (__default:__ "") Skript, welches nach dem Löschen eines Eintrages des Baumes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). In dieser Ausführung bietet der Baum als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den gelöschten Eintrag, siehe [Verwendung des Bauminhaltes in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| onEdit (optional) | (__default:__ "") Skript, welches nach der Bearbeitung eines Eintrages des Baumes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden (Arrays werden ab Version 6.0 unterstützt). In dieser Ausführung bietet der Baum als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den bearbeiteten Eintrag, siehe [Verwendung des Bauminhaltes in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 5.3) |
| onExpand (optional) | (__default:__ "") Skript, welches nach der Ausklappen eines Eintrages des Baumes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. In dieser Ausführung bietet der Baum als Variablenwert nicht den aktuell ausgewählten Eintrag sondern den ausgeklappten Eintrag, siehe [Verwendung des Bauminhaltes in on-Aktionen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Ansonsten hat es die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 6.4) |
| rowCount (optional) | (__default:__ 0) sichtbare Anzahl von Zeilen; bei mehr Zeilen im Baum wird ein Scrollbalken eingeblendet - ist der Wert 0, so füllt der Baum den restlichen noch verfügbaren Platz im Instanzeditor. Nur ein Konfigurationselement kann den gesamten restlichen Platz erhalten. |
| [sort](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (optional) | Sortierung des Baumes. Wird dies nicht gesetzt wird der Baum nach den Identifikatoren der Knoten sortiert |
| type | Tree |
| [values](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (optional) | initiale Einträge des Baumes |
| visible (optional) | (__default:__ true) Bei true ist der Baum sichtbar, ansonsten ist er unsichtbar (ab Symcon 5.2) |
| enabled (optional) | (__default:__ true) Bei true kann der Baum verwendet werden, ansonsten wird er deaktiviert dargestellt (ab Symcon 6.0) |
| changeOrder (optional) | (__default:__ false) Bei true kann die Reihenfolge der Einträge per Drag & Drop verändert werden. Die Sortierung des Baumes nach Spalten ist dann allerdings nicht möglich. (ab Symcon 6.0) |
| loadValuesFromConfiguration (optional) | (__default:__ true) Dieser Parameter gibt an, ob der Baum mit den Werten der Eigenschaft gefüllt werden soll, siehe [Speichern und Laden von Bäumen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Wird der Wert auf true gesetzt, so ist es für einen erfolgreichen Review im Module Store erforderlich, den Baum dennoch im Sinne des Benutzers zu füllen, siehe [Reviewrichtlinien](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) Punkt 13 (ab Symcon 6.0) |
### Parameter für columns
| Parameter | Beschreibung |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| add (optional) | initialer Wert in dieser Spalte bei einem neu hinzugefügtem Eintrag, notwendig wenn __add__ bei dem Baum auf true gesetzt ist. Alternativ kann ein Objekt übergeben werden, welches den Wert automatisch generiert, siehe [Parameter für add](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab Symcon 9.1) |
| caption | Sichtbare Beschriftung einer Spalte |
| confirm (optional) | (__default:__ "") Abfragetext, bevor eine onClick-Aktion ausgeführt wird. Nur wenn die Abfrage mit "Ja" bestätigt wird, wird die Aktion ausgeführt. Ist kein Abfragetext definiert, so wird die Aktion direkt ausgeführt (ab Symcon 5.2) |
| download (optional) | (__default:__ "") Ist dieser Parameter nicht leer und beinhaltet die Ausgabe des onClick-Skriptes dieser Spalte eine [Data-URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs), so wird die Rückgabe als Textdatei mit dem Namen das download-Parameters heruntergeladen. (ab Symcon 7.1) |
| [edit](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (optional) | Beschreibung eines editierbaren Elements |
| label | sichtbare Beschriftung einer Spalte _(veraltet)_ |
| link (optional) | (__default:__ false) Ist dieser Parameter true, dann wird die Ausgabe des onClick-Skriptes dieser Spalte als Link geöffnet. Ist er false, so wird die Ausgabe als Dialog im Konfigurationsformular angezeigt. (ab Symcon 7.1) |
| name | eindeutiger Name einer Spalte um diese zu referenzieren; der Name darf nicht "id", "parent", "expanded", "rowColor", "editable" oder "deletable" sein, da diese Werte für andere Funktionen belegt sind, siehe [Parameter für values](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| onClick (optional) | (__default:__ "") Skript, welches bei einem Klick auf ein Feld dieser Spalte ausgeführt wird. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Das Skript wird nur ausgeführt, sofern dieses Feld nicht leer, also 0, false oder "" ist (ab Symcon 5.2) |
| quickFilter (optional) | (__default:__ false) Bei true wird der Text dieser Spalte beim Schnellfilter in der Suche betrachtet. Sollte der Wert bei allen Spalten auf false gesetzt sein, so wird der Schnellfilter ausgeblendet. (ab Symcon 7.2) |
| save (optional) | (__default:__ true, falls das Element editierbar ist oder __add__ ein Objekt zur automatischen Generierung ist, sonst false) Bei true sollen die Werte dieser Spalte als Modul-Eigenschaften gesichert werden, siehe [Speichern und Laden von Bäumen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| visible (optional) | (__default:__ true) Bei false wird die Spalte nicht angezeigt |
| width | Breite der Spalte in Pixeln, als CSS-String (z.B. "100px"); genau eine Spalte muss den Wert "auto" haben, wodurch die Breite dieser Spalte den restlich verfügbaren Platz nutzt. Darüber hinaus werden an dieser Spalte die Erweiterungs-Symbole des Baumes dargestellt. |
### Parameter für edit
| Parameter | Beschreibung |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| type | Typ der Darstellung, entsprechend der möglichen Eingaben: [CheckBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [IntervalBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [NumberSpinner](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [PasswordTextBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [Select](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectCategory](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectColor](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectEvent](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectFile](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectInstance](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectLink](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectMedia](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectObject](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectScript](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [SelectVariable](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [ValidationTextBox](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md), [Tree](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) |
| Weitere Parameter | Die weiteren Parameter ergeben sich je nach gewähltem Typ; die Parameter "name" und "caption" des Typs werden ignoriert |
> **Hinweis:** Wird der "type" List oder Tree verwendet, so wird der Wert dieser Spalte nicht noch einmal JSON-codiert. Es ist also lediglich erforderlich den Wert des übergeordneten Baumes einmalig zu parsen. Jede Unterliste bzw. Unterbaum steht dann direkt als Objekt zur Verfügung. Analog müssen die Werte in "values" auch nicht doppelt codiert werden.
> **Hinweis:** Der Parameter "add" der Spalte wird entsprechend der Lokalisierung übersetzt, sofern der "type" von "edit" ValidationTextBox oder PasswordTextBox ist oder "edit" gar nicht gesetzt ist
### Parameter für add
Statt eines festen Wertes kann der Parameter __add__ einer Spalte auch ein Objekt sein, welches beschreibt, mit welcher Strategie der Wert für einen neu hinzugefügten Eintrag automatisch generiert wird (ab Symcon 9.1). Der Wert wird beim Hinzufügen des Eintrages generiert und anschließend wie ein regulärer Wert behandelt. Der generierte Wert ist innerhalb der Spalte eindeutig: Stimmt ein zufälliger Wert mit dem Wert eines bestehenden Eintrages überein, so wird ein neuer Wert generiert. Generierte Werte werden nicht übersetzt.
| Parameter | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| strategy | Strategie der Generierung: "increment": Der höchste numerische Wert dieser Spalte über alle Einträge des Baumes wird um __step__ erhöht. Nicht numerische Werte werden ignoriert. Existiert noch kein numerischer Wert, so wird __step__ verwendet "random-string": Eine zufällige Zeichenkette aus den Zeichen a-z, A-Z und 0-9 mit der Länge __length__ "random-integer": Eine zufällige ganze Zahl zwischen __min__ und __max__ "guid": Eine zufällige GUID (UUID Version 4), z.B. "{3F2504E0-4F89-4D3A-9A0C-0305E82C3301}" |
| step (optional) | (__default:__ 1) Schrittweite, um welche der höchste Wert erhöht wird, nur für die strategy "increment"; muss eine Zahl ungleich 0 sein |
| length (optional) | (__default:__ 32) Anzahl der Zeichen der generierten Zeichenkette, nur für die strategy "random-string" |
| min (optional) | (__default:__ 0) Untere Grenze (inklusive) der zufälligen ganzen Zahl, nur für die strategy "random-integer"; muss kleiner als __max__ sein |
| max (optional) | (__default:__ 2147483647) Obere Grenze (inklusive) der zufälligen ganzen Zahl, nur für die strategy "random-integer"; muss größer als __min__ sein |
> **Hinweis:** Damit generierte Werte erhalten bleiben, werden Spalten mit einem solchen add-Wert standardmäßig gespeichert, d.h. der Parameter "save" ist für diese Spalten standardmäßig true. Fehlt einem geladenen Eintrag der Wert in einer solchen Spalte, z.B. weil die Spalte nachträglich hinzugefügt wurde, so wird der Wert beim Laden nach der gleichen Strategie generiert. Auch der Standardwert, den on-Aktionen erhalten, wenn kein Eintrag ausgewählt ist, wird nach der Strategie generiert. Kann kein eindeutiger Wert generiert werden, weil bereits alle möglichen Werte verwendet werden, z.B. bei "random-integer" mit einem kleinen Bereich zwischen min und max, so schlägt das Hinzufügen mit einer Fehlermeldung fehl.
```php
// Spalten mit automatisch generierten Werten
{
"caption": "ID",
"name": "ID",
"width": "50px",
"add": { "strategy": "increment", "step": 10 }
}, {
"caption": "Token",
"name": "Token",
"width": "auto",
"add": { "strategy": "random-string", "length": 16 },
"edit": { "type": "ValidationTextBox" }
}, {
"caption": "Zufallszahl",
"name": "Number",
"width": "100px",
"add": { "strategy": "random-integer", "min": 1, "max": 100 },
"edit": { "type": "NumberSpinner" }
}, {
"caption": "GUID",
"name": "GUID",
"width": "300px",
"add": { "strategy": "guid" }
}
```
### Parameter für sort
| Parameter | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------------------------- |
| column | Name der Spalte, nach welcher der Baum sortiert wird |
| direction | Die Richtung der Sortierung; "ascending" für eine aufsteigende Sortierung und "descending" für eine absteigende Sortierung |
### Parameter für values
| Parameter | Beschreibung |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| deletable (optional) | (__default:__ true) Bei false kann die Zeile nicht gelöscht werden (ab Symcon 5.4) |
| editable (optional) | (__default:__ true) Bei false kann die Zeile nicht editiert werden, obwohl der Baum an sich editierbare Spalten besitzt (ab Symcon 5.4) |
| expanded (optional) | (__default:__ false) Falls dieser Wert true ist, wird der Eintrag beim Laden des Konfigurationsformulares direkt ausgeklappt |
| id | Ein Identifikator, mit welchem der Eintrag in der Baumdarstellung als Elternknoten adressiert werden kann, id muss größer als 0 sein |
| parent (optional) | (__default:__ 0) In diesem Feld kann die id eines Wertes gesetzt werden, welcher in der Baumdarstellung der Elternknoten von diesem Wert wird. Hiefür muss der Eltern-Wert im Array "values" vor dem Kind stehen. Ist "parent" 0, so wird das Element auf oberster Ebene eingefügt. |
| rowColor (optional) | (__default:__ transparent) Hintergrundfarbe der Zeile als Hex-Code (z.B. Rot: "#ff0000" ), leerer String für Transparenz |
| icons (optional) | (__default:__ {}) Icons können analog zur [List](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) verwendet werden. (ab Symcon 9.0) |
| Weitere Parameter (optional) | (__default:__ "") Für jeden initialen Eintrag des Baumes werden hier die Werte zu allen Spalten definiert. Hierfür wird für jede Spalte ein Parameter mit dem Namen der Spalte eingetragen. Die Belegung des Parameters entspricht dem Wert dieser Spalte bei dem entsprechenden Eintrag. |
### Speichern und Laden von Bäumen
Das Speichern und Laden von Bäumen erfolgt fast analog zu [Listen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md).
In der Eigenschaft werden zusätzlich die Werte für __id__ und __parent__ gespeichert.
Beim Laden ist zu beachten, dass bei der Verwendung von values immer der Identifikator des Knotens angegeben werden muss, damit diese dem passenden Knoten aus der Eigenschaft zugewiesen werden können.
### Verwendung des Bauminhaltes in on-Aktionen
Die Verwendung der Werte des Baumes in Skripten erfolgt analog zu [Listen](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md). Darüber hinaus beinhaltet jeder Eintrag den Wert "expanded", welcher angibt ob der Eintrag aktuell eingeklappt (false) oder ausgeklappt (true) ist.
### Beispiel
```php
{
"type": "Tree",
"name": "Devices",
"caption": "Devices",
"rowCount": 5,
"add": true,
"delete": true,
"sort": {
"column": "Name",
"direction": "ascending"
},
"columns": [{
"caption": "InstanceID",
"name": "InstanceID",
"width": "75px",
"add": 0,
"edit": {
"type": "SelectInstance"
}
}, {
"caption": "Name",
"name": "Name",
"width": "auto",
"add": ""
}, {
"caption": "State",
"name": "State",
"width": "40px",
"add": "New!"
}, {
"caption": "Temperature",
"name": "Temperature",
"width": "75px",
"add": 20.0,
"edit": {
"type": "NumberSpinner",
"digits": 2
}
}],
"values": [{
"id": 1,
"InstanceID": 0,
"Name": "Kategorie",
"State": "",
"Temperature": 0
},{
"id": 2,
"parent": 1,
"InstanceID": 12435,
"Name": "ABCD",
"State": "OK!",
"Temperature": 23.31,
"rowColor": "#ff0000"
}]
}
```
## ValidationTextBox
Quelle: https://www.symcon.de/de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/konfigurationsformulare/validationtextbox/
Erstellt ein Eingabefeld für Text mit der Überschrift __caption__.
Falls im "elements"-Bereich erstellt, setzt die ValidationTextBox eine Eigenschaft bei Übernahme auf den eingetragenen String.
Der Parameter __"name"__ definiert dabei welche Eigenschaft gesetzt wird.

### Parameter
| Parameter | Beschreibung |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| caption | Sichtbare Beschriftung des Eingabefeldes |
| enabled (optional) | (__default:__ true) Bei true kann das Eingabefeld verwendet werden, ansonsten wird es deaktiviert dargestellt (ab IP-Symcon 5.2) |
| multiline (optional) | (__default:__ false) Bei true, wird das Eingabefeld bei Bedarf auf mehrere Zeilen erweitert. Dies kann sowohl durch bewusst gesetzte Zeilenumbrüche, z.B. per Enter, als auch bei einem Überlauf passieren. Bei false bleibt das Eingabefeld stets bei einer Zeile (ab IP-Symcon 5.4) |
| name (optional) | Name des Eingabefeldes/der zu setzenden Eigenschaft |
| onChange (optional) | (__default:__ "") Skript, welches bei einer Veränderung des ValidationTextBox-Wertes ausgeführt wird. Sofern das Skript aus mehreren Zeilen besteht, können die einzelnen Zeilen auch als Array übergeben werden. Es hat die gleichen Eigenschaften wie onClick des [Button](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) (ab IP-Symcon 8.1) |
| type | ValidationTextBox |
| validate (optional) | (__default:__ "") Erfüllt der Wert nicht den hier angegebenen regulären Ausdruck, so wird ein Fehler angezeigt und Änderungen können nicht übernommen werden (ab IP-Symcon 5.3) |
| value (optional) | (__default:__ "") Der Wert des Eingabefeldes - Sofern es eine dazugehörige Eigenschaft gibt, wird dieser Parameter im elements-Bereich durch die Eigenschaft überschrieben (ab IP-Symcon 5.2) |
| visible (optional) | (__default:__ true) Bei true ist das Eingabefeld sichtbar, ansonsten ist es unsichtbar (ab IP-Symcon 5.2) |
| width (optional) | (__default:__ 300px) Feste Breite des Eingabefeldes in Pixel oder % als String, z.B. "40%" oder "250px" (ab IP-Symcon 5.3) |
### Beispiel
```php
{ "type": "ValidationTextBox", "name": "IPAddress", "caption": "Host" }
```
---
# 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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/configuration-forms.md) nachgeschlagen werden.
### locale.json
Weitere Informationen zur Übersetzung der Konfigurationsseite können unter [Lokalisierungen](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/concepts.md) zur eindeutigen Identifikation. [GUID Generator](https://www.symcon.de/de/llms/developer/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](https://www.symcon.de/de/llms/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](https://www.symcon.de/de/llms/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()](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md), [ProcessHookData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) und [UnregisterHook](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) |
| OAuth | Workaround über [WebOAuthModule](https://github.com/symcon/SymconTest/blob/master/libs/WebOAuthModule.php) Basisklasse | Native Unterstützung via [RegisterOAuth](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md), [ProcessOAuthData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) und [UnregisterOAuth](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
[GUID](https://www.symcon.de/de/llms/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
[RegisterPropertyInteger](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
[RegisterPropertyFloat](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md)
[RegisterPropertyBoolean](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
[GUID](https://www.symcon.de/de/llms/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) registriert wurden.
Eine Liste der NachrichtIDs befindet sich hier: [Nachrichten](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md)
> **Hinweis:** Um ein eine Registrierung aufzuheben kann [UnregisterMessage](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) im [WebHook Control](https://www.symcon.de/de/llms/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/concepts.md)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
[GUID](https://www.symcon.de/de/llms/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/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](https://www.symcon.de/de/llms/developer/sdk-tools/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](https://www.symcon.de/de/llms/developer/sdk-tools/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");
```
---
# Spezialschalter
> 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/spezialschalter/
_Benötigt Symcon >= 2.6_
Um einige Funktionen von IP-Symcon besser kontrollieren zu können, ist es möglich, einige Schalter innerhalb der Verwaltungskonsole zu verändern.
> **Achtung:** Es ist zu beachten, dass jegliche Änderungen erst wirksam werden, sobald IP-Symcon neu gestartet wurde.

Folgende Schalter stehen zur Verfügung:
| Optionsname | Spezialschalterfunktion | Beschreibung |
| --------------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ArchiveCommitInterval (ab 5.0) | Zeitintervall des Archivs | __Default = 60__. Sekundenwert nach dem geloggte Werte auf die Festplatte geschrieben werden. |
| ArchiveRecordLimit (ab 4.3) | Anzahl der genutzten Datenpunkte im Archiv | __Default = 10000__. Maximaler Wert für die Limit Parameter der Archiv-Funktionen. Dies korreliert direkt mit den maximal genutzten Datensätzen zum Rendern und Aggregieren von Graphen. Achtung: Höhere Anzahl verlangsamt das Rendern von Graphen. Nur für leistungsstarke Systeme geeignet. |
| ArchiveRecordLimitBool (ab 5.0) | Anzahl der genutzten Roh-Datenpunkte im Archiv | __Default = 500__. Maximaler Wert für die Limit Parameter der Archiv-Funktionen. Dies korreliert direkt mit den maximal genutzten Roh-Datensätzen zum Rendern und Aggregieren von Graphen. Achtung: Höhere Anzahl verlangsamt das Rendern von Graphen. Nur für leistungsstarke Systeme geeignet. |
| BackupCount | Anzahl der Backups | __Default = 25__. Anzahl der Backup Settings, die im ‘backup’ Order archiviert werden. Eine Backup Settings wird jeweils bei jedem Start und kurz nach Mitternacht erstellt. Die Zahl im Dateinamen ist ein UnixTimeStamp des Erstellzeitpunktes. Wird der Wert Null (0) angegeben, so werden unbegrenzt viele Backups erstellt. (Achtung, Speicherplatzverbrauch!) |
| CompatibilityRequired (ab 4.0) | Kompatibilitätsfunktionen | __Default = Deaktiviert (Windows: Aktiviert)__. Sofern __aktiviert__, sind unter IP-Symcon 4.0 die Kompatibilitätsfunktionen für veraltete Funktionen aus 2.x/3.x verfügbar. Bei Aktivierung dieses Spezialschalters erhöht sich die Laufzeit jedes PHP-Skriptes und sollte wennmöglich deaktiviert bleiben. Diese Funktion ist unter Windows aufgrund der Abwärtskompatibilität standardmäßig aktiviert. |
| ConnectCheck | Überprüfungsintervall vom Connect Dienst | __Default = 30 (in Minuten)__. Intervall in Minuten, in welchem die Verbindung vom Connect Dienst aktiv geprüft wird. |
| ConnectLimit (ab 5.4) | Limit der Verbindungsversuche | __Default = 25__ (Maximal 100). Gibt die maximale Anzahl an Verbindungsversuchen innerhalb von 24 Stunden des Connect-Controls an. Alle Anfragen darüber hinaus werden mit einer Fehlermeldung abgebrochen und ins Logfile geschrieben. Das Limit wird alle 24 Stunden zurückgesetzt. |
| ConnectWatch (ab 4.0) | Connect Dienst protokollieren | __Default = Deaktiviert__. Sofern __aktiviert__, werden erweiterte Ausgaben, von verarbeiteten "Connect Dienst"-Anfragen, ins Logfile geschrieben. |
| DefaultVisualization (ab 7.0) | Gibt an welche Visualisierung angezeigt wird | __Default = 1__. Sofern __1__, wird die Kachel-Visualisierung standardmäßig angezeigt, wenn __0__ wird die WebFront-Visualisierung angezeigt. Für Systeme die auf die 7.0 upgraden ist der Standardwert 0. |
| DiscoveryWatch (ab 4.3) | Erweitertes Protokoll für SSDP aktivieren | __Default = Deaktiviert__. Sofern __aktiviert__, werden erweiterte Meldungen ins Logfile geschrieben, welche im Zusammenhang mit dem SSDP Dienst stehen. Der SSDP Dienst ist z.B. für die automatische Erkennung von IP-Symcon für Verwaltungskonsole und Mobile Apps zuständig. |
| LogfileCount | Anzahl der Protokolldateien | __Default = 25__. Anzahl der Logfiles, die im ‘logs’ Ordner archiviert werden. Ein Logfile wird jeweils bei jedem Start und kurz nach Mitternacht erstellt. Die Zahl im Dateinamen ist ein UnixTimeStamp des Erstellzeitpunktes. Wird der Wert Null (0) angegeben, so werden unbegrenzt viele Backups erstellt. (Achtung, Speicherplatzverbrauch!) |
| LogfileFilter | RegEx für Logfile Meldungen | __Default = ""__. RegEx um bestimmte Logfile Meldungen zu filtern. Sofern nicht leer und die Filterregel zutrifft wird die Nachricht weder im Logfile noch im Meldungsfenster angezeigt. Der Text auf den der Filter angewendet wird ist dem Logfile zu entnehmen exklusive der Uhrzeit. |
| LogfileVerbose | Erweitertes Protokoll aktivieren | __Default = Aktiviert__. Sofern __aktiviert__, werden alle Meldungen ins Logfile geschrieben. Sofern __deaktiviert__, werden alle Meldungen außer KL_DEBUG ins Logfile geschrieben. |
| LogMessageCount | Anzahl Nachrichten je Nachrichtentyp | __Default = 25__. Anzahl der Nachrichten je Nachrichtentyp, welche für das Status Widget gespeichert werden. |
| MaxLoginAttemptsBeforeLockdown (ab 5.1) | Loginversuche bis Sperrung | __Default = 15__. Anzahl der fehlerhaften Logins bevor die IP-Adresse komplett für weitere Logins gesperrt wird. |
| MaxLoginAttemptsBeforeSlowdown (ab 5.1) | Loginversuche bis Verzögerung | __Default = 5__. Anzahl der fehlerhaften Logins bevor weitere Logins von dieser IP-Adresse verlangsamt werden (Verlangsamung wird per MaxLoginAttemptsSlowdownWaitTime definiert) |
| MaxLoginAttemptsLockdownDuration (ab 5.1) | Dauer der Loginsperrung | __Default = 900 (in Sekunden)__. Verzögerung bis die Login-Sperre für die betroffene IP-Adresse entfernt wird. |
| MaxLoginAttemptsSlowdownDuration (ab 5.1) | Dauer der Loginverzögerung | __Default = 300 (in Sekunden)__. Verzögerung bis die Verlangsamung für die betroffene IP-Adresse entfernt wird. |
| MaxLoginAttemptsSlowdownWaitTime (ab 5.1) | Zeit der Verzögerung | __Default = 5000 (in Millisekunden)__. Verzögerungszeit in Millisekunden bei verlangsamten Logins. |
| MessageRingBufferSize | Anzahl der Buffernachrichten | __Default = 8192__. Gibt die Anzahl der Nachrichten, welche gebuffert werden an. Wird die maximale Anzahl erreicht, werden die vordersten (ältesten) Nachrichten überschrieben. |
| MessageQueueWatch | Verarbeitungswarteschlange protokollieren | __Default = Deaktiviert__. Sofern __aktiviert__, werden die Verzögerungszeiten der internen Verarbeitungsqueue im Logfile protokolliert. Sofern __deaktiviert__, werden diese nicht protokolliert. |
| NATPublicIP | NAT Public IP setzen | __Default = ""__. Sofern NATSupport aktiv ist, wird diese Public IP automatisch überall verwendet. Sollte diese Einstellung leer sein, so kann die Public IP in den jeweiligen Instanzen manuell gesetzt werden. |
| NATSupport | NAT Erweiterungen aktivieren | __Default = Deaktiviert__. Sofern __aktiviert__, werden erweiterte Funktionen z.B. im KNX Gateway und HomeMatic Socket freigeschaltet, um die korrekte IP-Adresse hinter dem NAT anzugeben. Dies ist insbesondere für den Betrieb in Docker Containern relevant, welche standardmäßig im Bridge Modus erstellt werden. |
| NotificationLimit (ab 5.4) | Limit der Push-Nachrichten | __Default = 250__(Maximal 1000). Gibt die maximale Anzahl von Push Nachrichten innerhalb von 24 Stunden an. Alle Anfragen darüber hinaus werden mit einer Fehlermeldung abgebrochen und ins Logfile geschrieben. Das Limit wird alle 24 Stunden zurückgesetzt, sofern das Limit nicht ausgeschöpft wurde. Wurde das Limit ausgeschöpft, muss die Ursache korrigiert und der Dienst neu gestartet werden, bevor weitere Push-Nachrichten versendet werden können. |
| OAuthWatch (ab 5.0) | OAuth Endpunkt Protokoll aktivieren | __Default = Deaktiviert__. Sofern aktiviert, werden alle Anfrage über den OAuth Endpunkt protokolliert |
| OPcacheSupport (ab 5.0) | OPCache von PHP aktivieren | __Default = Aktiviert (bis 5.4 Deaktiviert)__. Sofern __aktiviert__, werden PHP Skripte im Arbeitsspeicher gespeichert. Dadurch wird das Laden und Parsen der Skripte bei jeder Ausführung vermieden. |
| ProxyConnectLimitFrameRate (ab 5.5) | Anzahl Frames im Stream via Connect Dienst | __Default = 2__. Gibt an, ob die Anzahl der Frames pro Sekunde über den Connect Dienst reduziert werden soll um das Datenvolumen zu schonen, 0 = Kein Limit) |
| ProxyConnectReduceQuality (ab 5.5) | Qualität des Streams reduzieren | __Default = Aktiviert__. Sofern __aktiviert__, wird die Qualität des Streams über den Connect Dienst reduziert um das Datenvolumen zu schonen. |
| ProxyConnectReduceResolution (ab 5.5) | Auflösung des Streams begrenzen | __Default = Aktiviert__. Sofern __aktiviert__, wird die Auflösung auf maximal 720p reduziert. |
| ProxyInterface (ab 7.0) | IP-Adresse für Proxy/VoIP einstellen | __Default = ""__. IP-Adresse der Netzwerkkarte, welche für Proxy/VoIP Verbindung genutzt werden soll. Muss nur gesetzt werden, wenn die automatische Erkennung nicht korrekt funktioniert. |
| ProxyLimitFrameRate (ab 5.5) | Anzahl Frames im lokalen Stream | __Default = 0__. Gibt an, ob die Anzahl der Frames pro Sekunde für lokale Verbindungen reduziert werden soll, um das Datenvolumen zu schonen, 0 = Kein Limit. |
| ProxyRTSPBuffer (ab 5.5) | Größe des RTSP Buffers | __Default = 524288__. Gibt die Größe des Puffers für RTSP Streams an. Je größer der Buffer ist, desto mehr Latenz hat der Stream, desto kleiner umso ruckeliger kann das Bild bei schlechten Verbindungen sein. |
| ProxyUseHWAccel (ab 5.5) | Index der Hardware-Beschleunigung für RTSP | __Default = -1 (Automatisch)__. Gibt an, ob eine verfügbare Hardware-Beschleunigung zur Dekodierung genutzt werden soll. 0 = Nie, 1..x = Index der verfügbaren Beschleunigung. |
| ProxyWatch (ab 5.1) | RTSP/MJPEG-Streams protokollieren | __Default = Deaktiviert__. Sofern __aktiviert__, werden weitere Debugginginformationen über aufgerufene RTSP/MJPEG-Streams protokolliert. |
| SaveInterval | Speicherintervall | __Default = 10 (in Minuten)__. Dieser Spezialschalter gibt an, in welchem Zyklus die Settings automatisch auf der Festplatte gespeichert werden. Beim Beenden von IP-Symcon werden die Settings unabhängig von dieser Option geschrieben. Wird der Wert Null (0) angegeben, so werden die Settings nur beim Beenden geschrieben (nicht empfohlen). |
| ScriptOutputBufferLimit (ab 5.2) | Skriptausausgabelänge definieren | __Default = 1048576 (in Bytes)__. Maximale Länge die eine Skript-Ausgabe haben kann. Sollte die Ausgabe länger sein, wird das Skript sofort mit der Fehlermeldung "Output-Buffer exceeds Limit" abgebrochen. |
| ScriptWatch | Skriptausführungen protokollieren | __Default = Aktiviert__. Sofern __aktiviert__, werden Skriptausführungen im Logfile protokolliert. Sofern __deaktiviert__, werden keine Skriptausführungen protokolliert. Fehler und Ausgaben (z.B. über echo) werden immer protokolliert. |
| ServerHardQueueBytesLimit (ab 5.3) | Byteslimit der Warteschlange | __Default = 33554432__. Bei Erreichen des Limits an Bytes aller Meldungen in der Warteschlange wird die Verbindung sofort getrennt. |
| ServerHardQueueSizeLimit (ab 5.3) | Meldungslimit der Warteschlange | __Default = 65536__. Bei Erreichen des Limits an Meldungen in der Warteschlange wird die Verbindung sofort getrennt. |
| ServerHardQueueTransferTimeout (ab 5.3) | Zeitlimit der Warteschlange | __Default = 300__. Limit in Sekunden, nach der eine Verbindung ohne Aktivität sofort getrennt wird. |
| ServerLogging (ab 5.0) | Serverlogging aktivieren | __Default = Deaktiviert__. Sofern __aktiviert__, wird das Logging der Zugriffe beim Web Server (Port = 3777) aktiviert. Diese Einstellung betrifft nur den Server auf Port 3777. Bei eigenen WebServern wird die Einstellung in der jeweiligen Instanz beachtet. Die Log-Datei heißt “access.log” und befindet sich je nach Betriebssystem im Logfiles Ordner. Siehe [Installation](https://www.symcon.de/de/llms/getting-started.md) |
| ServerLoggingFilter (ab 5.0) | Filter für ServerLogging aktivieren | __Default = Aktiviert__. Sofern __aktiviert__, werden bei aktiviertem ServerLogging API Aufrufe (IPS_GetSnapshotChanges/WFC_GetSnapshotChanges) nicht ins Logfile "access.log" geschrieben. Sofern __deaktiviert__, werden alle Einträge ins Logfile geschrieben. |
| ServerMaxPostSize (ab 5.1) | Maximale Bytes bei POST | __Default = 25165824 (in Bytes)__. Maximale Anzahl der Bytes, die per POST an den Server gesendet werden können. |
| ServerSecurity (ab 5.0) | CORS Schutz aktivieren | __Default = Aktiviert__. Sofern __aktiviert__, wird jeglicher CORS Schutz des WebServers aktiviert. |
| ServerSoftQueueBytesLimit (ab 5.3) | Bytes-Softlimit der Warteschlange | __Default = 8388608__. Bei Erreichen des Limits an Bytes aller Meldungen in der Warteschlange wird die Verbindung getrennt sofern das ServerSoftQueueTranferTimeout Limit ebenfalls überschritten ist |
| ServerSoftQueueSizeLimit (ab 5.3) | Meldungs-Softlimit der Warteschlange | __Default = 32768__. Bei Erreichen des Limits an Meldungen in der Warteschlange wird die Verbindung getrennt sofern das ServerSoftQueueTranferTimeout Limit ebenfalls überschritten ist |
| ServerSoftQueueTranferTimeout (ab 5.3) | Zeit-Softlimit der Warteschlange | __Default = 10__. Limit in Sekunden, nach denen die Soft-Limits bei Größe und Anzahl der Meldungen greifen |
| ServerUserFolderPassword (ab 5.1) | Passwort der Basis Authentifizierung | __Default = ""__. Passwort für die Basis Authentifizierung der WebServer zur Absicherung des "user"-Ordners. |
| ServerUserFolderUsername (ab 5.1) | Benutzername der Basis Authentifizierung | __Default = ""__. Benutzername für die Basis Authentifizierung der WebServer zur Absicherung des "user"-Ordners. |
| SettingsWatch (ab 4.0) | Speichern der Einstellungen protokollieren | __Default = Deaktiviert__. Sofern __aktiviert__, wird eine Meldung ins Logfile geschrieben, sobald im SaveInterval die Settings gespeichert wurden. |
| SOAPEnabled (bis 3.4) | SOAP aktivieren | __Default = Deaktiviert__. Sofern __aktiviert__, ist die SOAP Schnittstelle über Port 3773 erreichbar. |
| ThreadCount | Anzahl der Threads | __Default = 50__. Minimum = 25. Gibt die Anzahl der PHP Threads an, die in IP-Symcon zur Verfügung stehen. Jeder Thread verbraucht ein paar Megabytes an RAM und einen kleinen Anteil der CPU-Last zur Verwaltung. Der Maximalwert kann anhand der Angaben unter Limitationen ermittelt werden. |
| ThreadQueueLimit (ab 4.0) | Limit der Threadswarteschlange | __Default = 50__. Gibt die maximale Anzahl an PHP Anfragen an, welche in der internen Warteschlange auf eine Ausführung warten. Alle Anfragen darüber hinaus werden mit einer Fehlermeldung abgebrochen. Standardmäßig sollte dieser Spezialschalter nicht verändert werden, sondern stattdessen sichergestellt werden, dass Skripte eine geringe Laufzeit haben. |
| VariableWatch | Erweitertes Variablenprotokoll aktivieren | __Default = Aktiviert__. Sofern __aktiviert__, werden Wertänderungen/-aktualisierungen aller Variablen ins Logfile geschrieben. Sofern __deaktiviert__, werden diese nicht in das Logfile geschrieben. |
| VoIPInterface (ab 5.2, bis 6.4) | IP-Adresse für VoIP einstellen | __Default = ""__. IP-Adresse der Netzwerkkarte, welche für VoIP Verbindung genutzt werden soll. Muss nur gesetzt werden, wenn die automatische Erkennung nicht korrekt funktioniert. Ersetzt durch den neuen ProxyInterface-Spezialschalter, der seit IP-Symcon 7.0 verfügbar ist. |
| VoIPLogLevel (ab 5.2, bis 6.4) | Debugausgabelevel für VoIP einstellen | __Default = 0 (Deaktiviert)__. Das Level ist zwischen 0 und 3 einstellbar (Empfohlen: 2). Wobei 0 deaktiviert und 3 höchster Detailgrad bedeutet. Das VoIPLogLevel bestimmt den Detailgrad der Debugmeldungen im Message Log. Abgelöst durch den ProxyWatch-Spezialschalter, der diese Informationen ab IP-Symcon 7.0 enthält. |
| WebSocketWatch (ab 5.0) | Erweiterte WebSocket Protokoll aktivieren | __Default = Deaktiviert__. Sofern aktiviert, werden weitere Debugginginformationen zum WebSocket Rückkanal ausgeben, wie z.B. Open, Close, Error oder wenn Timeouts oder Limits überschritten wurden. |
---
# Modulreferenz – Übersicht
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
## Modulreferenz
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/
> **Hinweis:** Was IP-Symcon ist, wird auf der [Produktseite](https://www.symcon.de/de/produkt/) beschrieben.
> Eine Tabelle zu allen unterstützten Systemen wird unter [Schnittstellen](https://www.symcon.de/de/llms/components/service.md) aufgelistet.
In der Modulreferenz befinden sich die nativ unterstützten Module. In den jeweiligen Modulreferenzen befinden sich Anleitungen, Beispiele und Tipps & Tricks zur Einrichtung des jeweiligen Systems.
Desweiteren werden hier zur Übersicht die modulspezifischen Befehle aufgelistet.
> **Hinweis:** __Eine Auflistung der IP-Symcon spezifischen Befehle kann unter [Befehlsreferenz](https://www.symcon.de/de/llms/functions/index.md) gefunden werden.__
## Geräte
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/
Geräte sind Hardwarekomponenten, welche bestimmte Systeme, Aktoren oder Sensorik einbinden.
## Logiken
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/
Logiken sind komplexere zusammengefasste Funktionsinstanzen, deren Funktion oder Automatisierung wesentlich komplexer sind, als durch ein [Ereignis](https://www.symcon.de/de/llms/concepts.md) oder [Ablaufplan](https://www.symcon.de/de/llms/concepts/automations.md) schnell dargestellt werden kann. Dies vereinfacht die Einrichtung und bietet einen größeren Komfort.
## Energie
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/
Der Abschnitt befasst sich speziell mit allen Instanzen und Modulen rund ums Thema Energie. Von Automatisierungen bis zu vereinfachten Darstellungen gibt es hier umfangreiche Auswahl an Konfiguration und Einrichtungshilfen.
## Visualisierungen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/
Im Abschnitt Visualisierung werden Funktionen und Einrichtung von den gängigen Visualisierungen zusammengefasst.
## Sprachassistenten
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/
Sprachassistentssysteme lassen Symcon über Sprachbefehle steuern. Die Möglichkeiten und Einrichtung sind hier beschrieben.
## Benachrichtigungen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/
Benachrichtigungen bezeichnen die verschiedenen Wege, wie Symcon sich bei einem Nutzer melden und diesen informieren kann. Dies bezeichnet den Umfang von Audiovisuell bis hin zu monatlichen Reports via E-Mail.
## Kern Instanzen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/
Auch im Kern von Symcon gibt es Module, welche grundsätzliche Funktionalitäten bieten.
## I/O Instanzen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/
I/O Instanzen liefern Daten von Geräten oder Quellen außerhalb von IP-Symcon und stellen diese zur Verfügung. Oftmals bilden diese die erste Schnittstelle zum physikalischen Gerät.
### Einbindung in IP-Symcon
Beim Erstellen einer Geräte-Instanz, welche als übergordnete Instanz eine I/O Instanz benötigt, wird oftmal die passende Instanz automatisch erstellt und eingerichtet.
Es müssen nur die Einstellungen kontrolliert werden.
Eine I/O Instanz kann bei Bedarf auch eingefügt werden. Dies wird oftmal in Kombination mit einer [RegisterVariable](https://www.symcon.de/de/llms/modules/registervariable.md) genutzt, welche via [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) weitere Werte zur Verfügung hat.
Auch werden I/O Instanzen in der [PHP Modul Entwicklung](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) genutzt. Dort werden, ähnlich zu nativen Modulen, I/O Instanzen als Schnittstelle eingefügt.
## Datensicherung
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/datensicherung/
Zur Sicherung von Systemdaten können Backup Module genutzt werden. Dies wird in regelmäßigen Abständen oder nach größeren Änderungen empfohlen.
## Legacy
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/
Legacy Module werden in der aktuellsten Version nicht mehr unterstützt. Dies kann z.B. daran liegen, dass diese in aktuellen Versionen nicht mehr benötigt werden.
---
# 1-Wire
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/
Das 1-Wire Bussystem ähnelt dem I2C. Es lassen sich auf einfache Weise verschiedene Sensoren an ein normales 3-adriges Kabel (Masse, Daten, und +5V) anschließen. Die Verbindung mit IP-Symcon erfolgt durch ein [USB-, Seriell-, LAN Gateway oder die SymBox integrierte Schnittstelle](https://www.symcon.de/de/llms/modules/1-wire.md) .
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/1-wire.md)
> **Achtung:** Ab Version 4.0 wird, außer für DS2490/DS9490R, __kein__ TMEX Treiber mehr für den Betrieb benötigt.
> **Achtung:** IP-Symcon unterstützt nicht den __parasitären__ Modus.
> Eine __+5V__ Spannungsversorgung ist zwingend notwendig!
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/JbIdm5x0uxY?rel=0&cc_load_policy=1)
### Einbindung in IP-Symcon
Bei Verwendung des LAN-Gateways kann dies über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "OneWire Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines OneWire [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können über diesen die einzelnen Geräte mit "Erstellen" in einer Instanz erstellt werden.
Die am 1-Wire-Bus angeschlossenen Bausteine versenden nicht automatisch ihre Werte – diese müssen angefragt werden. Wie oft dies geschehen soll, kann mit dem __Intervall__ in der jeweiligen Instanzkonfiguration angegeben werden.

> **Achtung:** Jede Abfrage kostet Zeit und belegt den Bus. Darum sollte der "Intervall" sparsam genutzt werden. In der Praxis ist z.B. ein Abfragezyklus von 60 Sekunden, um eine Zimmertemperatur auszulesen, mehr als ausreichend. Kleinere Werte unter einer Sekunde können aus den o.g. Gründen nicht eingestellt werden.
Desweiteren sollte beachtet werden, dass je mehr Geräte an einem Adapter angeschlossen werden, die Busauslastung steigt. In unserem Musterhaus laufen 30 Geräte an einem Adapter ohne Probleme. Wir empfehlen bei größeren Installationen eine eigene Spannungsversorgung sowie mehrere Adapter einzusetzen.
### Tipps & Tricks
* Der serielle Adapter hat eine andere Pinbelegung als der USB-Adapter und liefert keine +5V Busspannung.
* Zur Spannungsversorgung wird ein stabilisiertes 5V-Netzteil mit Strombegrenzung empfohlen.
* Für kleinere Systeme wird empfohlen ein Modular-Kabel mit RJ12 oder RJ45 Stecker zum Selbercrimpen und zur Verteilung eine 3er-Modular-Buchse zu nutzen. Das System wird dann 1:1 verkabelt (sternförmige Verkabelung).
__Weitere Links:__
Wikipedia: [https://de.wikipedia.org/wiki/1-Wire](https://de.wikipedia.org/wiki/1-Wire)
Hersteller: [https://www.maximintegrated.com/en/pl_list.cfm/filter/21]
__COM Port eines USB Geräts auslesen unter Windows__[Video](https://www.youtube.com/embed/0w6weaMF8tg?rel=0&cc_load_policy=1)
## DS2405
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2405/
Der DS2405 ist ein 1-fach Switch (4mA) & Input (PIO) Baustein.
Dieser wird nicht mehr hergestellt. Als Ersatztyp wird der [DS2413](https://www.symcon.de/de/llms/modules/1-wire.md) empfohlen.
Der Pin kan wahlweise als “Digitaler Ausgang” oder “Digitaler Eingang” eingestellt werden.
Zusätzlich kann der Status über ”Status invertieren” invertiert werden(siehe DS2413).
Zu Testzwecken kann der Ausgang “AN" und “AUS” geschaltet werden.

## OW_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2405/ow-switchmode/
`bool OW_SwitchMode(int $InstanzID, bool $Status)`
setzt den Pin vom DS2405 auf an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
OW_SwitchMode(12345, true); //Gerät einschalten
```
## OW_ToggleMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2405/ow-togglemode/
`bool OW_ToggleMode(int $InstanzID)`
toggelt den Pin vom DS2405
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
OW_ToggleMode(12345); //Gerät togglen
```
## DS2406
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2406/
Der DS2406 ist ein 2-fach Switch (50/8mA), Input (PIO) Baustein & 1Kb Memory Baustein.
## OW_SetPin
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2406/ow-setpin/
`bool OW_SetPin(int $InstanzID, int $Pin, bool $Status)`
setzt einen Pin vom DS2406 auf an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Pin` (int): Pin des Bausteins (0..1)
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
OW_SetPin(12345, 0, true); //Gerät einschalten
```
## DS2408
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/
Der DS2408 und DS2408+ ist ein 8-fach Switch & Input (PIO) Baustein.
Jeder der acht Kanäle kann als “Digitaler Ausgang” oder “Digitaler Eingang” eingestellt werden.
Zusätzlich kann der Status über ”Status invertieren” invertiert werden (siehe [DS2413](https://www.symcon.de/de/llms/modules/1-wire.md)).
Zu Testzwecken kann der Ausgang “AN" und “AUS” geschaltet werden.

## OW_SetPin
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/ow-setpin/
`bool OW_SetPin(int $InstanzID, int $Pin, bool $Status)`
setzt einen Pin vom DS2408 auf an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Pin` (int): 0-7
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
OW_SetPin(12345, 2, true); //Pin 2 vom Gerät einschalten
```
## OW_SetPort
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/ow-setport/
`bool OW_SetPort(int $InstanzID, int $Bitmaske)`
setzt den kompletten Port vom DS2408 auf Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Bitmaske` (int): 0-255 (Bit0 = Pin0 … Bit7 = Pin7)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-255 (Bit0 = Pin0 … Bit7 = Pin7)
**Beispiel**
```php
OW_SetPort(12345, 0); //Alles ausschalten
```
## OW_SetStrobe
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/ow-setstrobe/
`bool OW_SetStrobe(int $InstanzID, bool $Status)`
schaltet den Strobe vom DS2408 an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
OW_SetStrobe(12345, true); //Strobe einschalten
```
## OW_WriteBytes
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/ow-writebytes/
`bool OW_WriteBytes(int $InstanzID, string $Daten)`
sendet mehrere Bytes an den DS2408
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Daten` (string): Folge von Bytes, die versendet werden sollen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Folge von Bytes, die versendet werden sollen
**Beispiel**
```php
OW_WriteBytes(12345, Chr(0).Chr(1)); //Abfolge senden
```
## OW_WriteBytesMasked
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/ow-writebytesmasked/
`bool OW_WriteBytesMasked(int $InstanzID, string $Daten, int $Maske)`
sendet mehrere Bytes an den DS2408 unter Berücksichtigung einer Bitmaske
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Daten` (string): Folge von Bytes, die versendet werden sollen
- `$Maske` (int): Bitmaske der Bit die gesetzt werden sollen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Bitmaske der Bit die gesetzt werden sollen
**Beispiel**
```php
OW_WriteBytesMasked(12345, Chr(255), Chr(1)); //Nur Bit 0 setzen
```
## DS2413
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2413/
Der DS2413 ist ein 2-fach Switch & Input (PIO) Baustein.
Seine Ausgänge können 20mA liefern. Weitere Einzelheiten können dem Datenblatt entnommen werden.
> **Hinweis:** Definition des "Status Pins":
> Ein logischer Low-Pegel am Ausgang wird als “Aus” / “False” gewertet (hierbei ist der interne Transistor aktiv).
Wird z.B. eine LED mit gemeinsamer Anode angeschlossen, leuchtet diese bei “Status Pin == Aus”.
In diesem Fall sollte “Status invertieren” aktiviert werden.

Wird ein Pin als “Digitaler Eingang” verwendet, so ist darauf zu achten, dass der DS205 kein Latch besitzt. Es werden also keine Schaltimpulse gespeichert.
> **Hinweis:** Um z.B. einen PIRI (Bewegungsmelder) auszuwerten, sollte der Timer auf zehn Sekunden eingestellt werden. Zusätzlich ist am Eingang, ein Widerstand 1M sowie ein Kondensator 10µF vorzusehen. Beide werden gemeinsam mit 0V verbunden. Ein Schaltimpuls zieht den Eingang kuzfristig auf +5V. Der Kondensator puffert solange die Spannung, bis der nächste Abfragezyklus den Pin als HI erkennt.
## OW_SetPin
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2413/ow-setpin/
`bool OW_SetPin(int $InstanzID, int $Pin, bool $Status)`
setzt einen Pin vom DS2413 auf an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Pin` (int): 0-1
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
OW_SetPin(12345, 0, true); //Pin 0 einschalten
```
## DS2438
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2438/
Der DS2438 ist ursprünglich ein “Smart Battery Monitor”.
Für den Einsatz in der Hausautomation besitzt er vier funktionale Eigenschaften:
* Ein Spannungsmesser, dieser liefert die Busspannung (VDD)
* Ein Thermometer – misst die Temperatur (Temperatur)
* Ein AD-Wandler (VAD) – kann u.a. zur Messung der Feuchtigkeit oder Helligkeit verwendet werden
* Einen Stromeingang (XSENS) - zur freien Verfügung

Praxisbeispiel: Feuchtigkeitsmessung
Der Feuchtigkeitsfühler __HIH-4000__ von HONEYWELL besitzt eine Genauigkeit von 3,5% im Bereich von 0 to 100% RH.
Wegen seines linearen Ausgangs kann er direkt mit dem DS2438 ausgelesen werden. Da dieser einen internen Temperatur-Sensor hat, kann auch eine Temperatur-Kompensation berücksichtigt werden.
Beispielskript:
```php
$Vad = GetValue(44045);
$Vdd = GetValue(14570);
$temp = GetValue(18691);
$Srh = ($Vad - 0.958062) * 30.680;
$Srh = $Srh / ((1.0305 + (0.000044 * $temp) - (0.0000011 * pow($temp,2))));
echo "Feuchte: $Srh %rh Temp.Comp.\n";
SetValue(49935 /*[Feuchte %rh]*/, $Srh);
```
## DS2450
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2450/
Der DS2450 ist ein A/D-Wandler-Baustein mit einer Auflösung von bis zu 16-Bit.
Zusätzlich können die vier Kanäle auch als Ausgang (4mA) verwendet werden.
Weitere Einzelheiten können dem Datenblatt entnommen werden.
### Konfiguration
Jeder der vier Kanäle kann als “Digitaler Ausgang” oder “Analoger Eingang” eingestellt werden.
Zusätzlich sind zwei Spannungsbereiche wählbar: 2,55V sowie 5,1V.
Desweiteren ist die Auflösung zwischen 1-Bit und 16-Bit frei einstellbar:

## OW_SetPin
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2450/ow-setpin/
`bool OW_SetPin(int $InstanzID, int $Pin, bool $Status)`
setzt einen Pin vom DS2450 auf an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Pin` (int): 0-3 (A-D)
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
OW_SetPin(12345, 2, true); //Pin C vom Gerät einschalten
```
## DS2890
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2890/
Der DS2890 ist ein Digital-Potentiometer mit 8-Bit-Auflösung.
Dieser wird nicht mehr hergestellt. Einen Ersatztyp gibt es nicht.

Um auf dem 1-Wire-Center 0 bis 10V auszugeben, sollte “CHARGE PUMP CONSIDERATIONS” verwendet werden. Hierzu muss “Benutze CPC” aktiviert werden.
Für einen Test kann der Schieberegler verändert werden und “SETZEN” gedrückt werden.
## OW_SetPosition
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ds2890/ow-setposition/
`bool OW_SetPosition(int $InstanzID, int $Wert)`
setzt die Position vom DS2490 auf an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-255
**Beispiel**
```php
OW_SetPosition(12345, 123); //Gerät auf den Wert 123 setzen
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/geraeteliste/
### Unterstützte Gateways
| Gateway | Beschreibung |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
| Symcon 1-Wire LAN Gateway [Produktinformation](https://www.symcon.de/assets/files/product/1-wire-lan-gateway.pdf) | [Jetzt bestellen](https://www.symcon.de/de/shop/gateways/lan-1-wire/) | IP Gateway |
| DS2480B | serielles Interface |
| DS2490 (Nur Windows) | USB-Adapter |
| DS9097U | serielles Interface |
| DS9490R (Nur Windows) | USB-Adapter |
| Link45 | serielles Interface |
| LinkUSB | USB-Adapter |
### Unterstützte Komponenten
| Produkt | Beschreibung |
| --------------------------------------------- | ----------------------------------------------------------- |
| DS1820 | Thermometer -55°C bis +125°C, 0.5 genau bei -10°C bis +85°C |
| DS18B20 | Thermometer -55°C bis +125°C, 0.5 genau bei -10°C bis +85°C |
| DS18S20 | Thermometer -55°C bis +125°C, 0.5 genau bei -10°C bis +85°C |
| DS1920 | Thermometer -55°C bis +100°C, 0.5 |
| [DS2405](https://www.symcon.de/de/llms/modules/1-wire.md) | 1-fach: Switch & Input (PIO) |
| [DS2406](https://www.symcon.de/de/llms/modules/1-wire.md) | 2-fach: Switch & Input (PIO) |
| DS2407 | 2-fach: Switch & Input (PIO) |
| [DS2408](https://www.symcon.de/de/llms/modules/1-wire.md) | 8-fach: Switch & Input (PIO) |
| [DS2408+](https://www.symcon.de/de/llms/modules/1-wire.md) | 8-fach: Switch & Input (PIO) |
| [DS2413](https://www.symcon.de/de/llms/modules/1-wire.md) | 2-fach: Switch & Input (PIO) |
| DS2423P | 4KB Zähler |
| [DS2438](https://www.symcon.de/de/llms/modules/1-wire.md) | Strom- und Spannungsmessung |
| [DS2450](https://www.symcon.de/de/llms/modules/1-wire.md) | A/D-Wandler |
| [DS2890](https://www.symcon.de/de/llms/modules/1-wire.md) | Digital Potentiometer |
## OW_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/1-wire/ow-requeststatus/
`bool OW_RequestStatus(int $InstanzID)`
sende eine Leseanfragen an das OneWire Gerät
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
OW_RequestStatus(12345); //Gerät auslesen
```
---
# ABL
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/abl/
_Benötigt Symcon >= 7.0_
ABL bietet verschiedene Wallboxen/Ladesäulen an. Über ModBus TCP können diese ausgelesen werden. Eine Verbindung mit IP-Symcon ist über ein LAN-IP Gateway möglich.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Komponenten](https://www.symcon.de/de/llms/modules/abl.md)
### Installation
Um ABL Wallboxen/Ladesäulen in IP-Symcon nutzen zu können, muss eine Verbindung via Ethernet vorhanden sein. Innerhalb der Wallbox/Ladesäulen muss lediglich der Ethernet RJ45 Stecker nach Anleitung eingesteckt werden.
### Einbindung IP-Symcon
Zuerst muss eine "ModBus Gerät" Instanz innerhalb des Objektbaums von IP-Symcon hinzugefügt werden. Im folgenden Dialog muss die IP-Adresse der Wallbox eingetragen werden. Der Port ist Standardmässig 502. Beide Informationen können auf der Weboberfläche der WallBox/Ladesäule eingesehen werden.


Im Anschluss kann die ModBus Vorlage für ABL Wallboxen/Ladesäulen heruntergeladen werden. Diese beinhaltet die ganze Konfiguration des ModBus Geräts. Nach dem Download, kann die "ABLmodbusX_vx.json" über "Importieren" geladen werden. Anschließend sind alle ModBus Adressen der gängigen ABL Wallboxen/Ladesäulen eingerichtet.
> **Hinweis:** ModBus Vorlage für ABL Wallboxen/Ladesäulen:
> [Download eMH1](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/abl/98e89f4429-1790424938/ablmodbusemh1_v1.json)
> [Download eM4](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/abl/ab98749223-1790424938/ablmodbusem4_v1.json)
> Diese beinhaltet den Outlet/Zähler 1.
> Sollten weitere benötigt werden kann der [Support](https://www.symcon.de/de/kontakt/#Modbus-Vorlage) kontaktiert werden.
> **Hinweis:** eMH2 und eMH3 können über [OCPP](https://www.symcon.de/de/llms/modules/ocpp.md) genutzt werden.

### Hinzufügen von Adressen
Sollen weitere Adressen hinzugefügt werden, kann dies über "Hinzufügen" realisiert werden.
Je nach Ausführung der Wallbox kann es sein, dass einzelne Adressen de-/aktiviert werden müssen. Dies kann über die Aktiv Spalte gesteuert werden.
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/abl/geraeteliste/
_Benötigt Symcon >= 7.0_
### Unterstützte Komponenten
| System | Beschreibung |
| ------------ | ------------------------------ |
| Wallbox eMH1 | In allen Versionen unterstützt |
| Wallbox eMH2 | In allen Versionen unterstützt |
| Wallbox eMH3 | In allen Versionen unterstützt |
| Wallbox eM4 | In allen Versionen unterstützt |
| Wallbox eMC | In allen Versionen unterstützt |
---
# Alfen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/alfen/
_Benötigt Symcon >= 7.0_
Alfen bietet verschiedene Wallboxen/Ladesäulen an. Über ModBus TCP können diese ausgelesen werden. Eine Verbindung mit IP-Symcon ist über ein LAN-IP Gateway möglich.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Komponenten](https://www.symcon.de/de/llms/modules/alfen.md)
### Installation
Um Alfen Wallboxen/Ladesäulen in IP-Symcon nutzen zu können, muss eine Verbindung via Ethernet zur Wallbox vorhanden sein. Innerhalb der Wallbox/Ladesäulen ist ein LAN Anschluss integriert.

Innerhalb der ACE Service Software muss, wie im Bild einsehbar, das Active Load Balancing aktiviert und "Energy Managment System" ausgewählt werden. Dadurch wird auch das ModBus TCP aktiviert.
### Einbindung IP-Symcon
Zuerst muss eine "ModBus Gerät" Instanz innerhalb des Objektbaums von IP-Symcon hinzugefügt werden. Im folgenden Dialog muss die IP-Adresse der Wallbox eingetragen werden. Der Port ist Standardmässig 502. Beide Informationen können in der App oder ACE Service Software der WallBox/Ladesäule eingesehen werden.


Im Anschluss kann die ModBus Vorlage ("AlfenModBusX_vx.json") für Alfen Wallboxen/Ladesäulen heruntergeladen werden. In diesem Download befinden sich entweder die Standard- oder SCN-Konfiguration des ModBus-Geräts. Über "Importieren" kann die gewünschte Vorlage geladen werden. Anschließend sind alle ModBus Adressen der gängigen Alfen Wallboxen/Ladesäulen eingerichtet.
> **Hinweis:** ModBus Vorlage für Alfen Wallboxen/Ladesäulen:
> [Download Standard](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/alfen/c9bf09a94d-1790424938/alfenmodbusstandard_v1.json)
> [Download SCN](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/alfen/316c1a74fd-1790424938/alfenmodbusscn_v1.json)


### Hinzufügen von Adressen
Sollen weitere Adressen hinzugefügt werden, kann dies über "Hinzufügen" realisiert werden.
Je nach Ausführung der Wallbox kann es sein, dass einzelne Adressen de-/aktiviert werden müssen. Dies kann über die Aktiv Spalte gesteuert werden.
### Standard oder SCN nutzen
In der ACE Service Software kann man, wie im Bild erkennbar, zwischen einem Standard Lastmanagment (Socket) oder SCN Betrieb wählen. SCN bildet mehrere Wallboxen ab, wobei Socket nur eine Wallbox unterstützt.

### Protokollbeschreibung
> **Hinweis:** Protokollbeschreibung für Alfen Wallboxen/Ladesäulen: [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/alfen/d3575a4655-1790424938/alfen_modbus_tcpip_register_mapping.pdf)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/alfen/geraeteliste/
_Benötigt Symcon >= 7.0_
### Unterstützte Komponenten
| System | Beschreibung |
| ---------------------- | ------------------------------ |
| Eve Single S-line | In allen Versionen unterstützt |
| Eve Single Pro-line | In allen Versionen unterstützt |
| Eve Single Pro-line DE | In allen Versionen unterstützt |
| Eve Double Pro-line | In allen Versionen unterstützt |
| Eve Double Pro-line DE | In allen Versionen unterstützt |
| Eve Double PG-line DE | In allen Versionen unterstützt |
| Eve Twin 4/5XL | In allen Versionen unterstützt |
---
# ALLNET
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/allnet/
Die Firma ALLNET stellt Geräte zum Steuern, Messen und Regeln her. Diese kommunizieren IP basierend via LAN. Um diese mit IP-Symcon zu verbinden reicht es, IP-Symcon ins LAN zu integrieren.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> __[Unterstützte Geräte](https://www.symcon.de/de/llms/modules/allnet.md) __
### Installation
Um IP-Symcon den Zugriff auf ein ALLNET-Gerät zu ermöglichen muss folgende Geräteeinstellung vorgenommen werden.
Über die Geräte-IP in einem beliebigen Browser gelangt man zur geräteinternen Konfigurationsseite.
Den Reiter "Fernsteuerung" findet man unter dem Menüpunkt Konfiguration -> Geräte Einstellungen.

Hier müssen beide Fernsteuerungsoptionen aktiviert werden.
Ab sofort hat IP-Symcon vollen Zugriff auf das Gerät.

> **Achtung:** Die Fernsteuerung muss nach einem Firmwareupgrade erneut aktiviert werden!
### KanalID herausfinden
Über die Statusvariablen können die KanalIDs herausgefunden werden. Dazu müssen innerhalb der Konfigurationsseite die Statusvariablen geöffnet werden. Die Zahl am Ende der Idents spiegelt auch die KanalID wieder.
_In diesem Beispiel Actuator3 = KanalID 3_

## ALL_SetAnalog
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/allnet/all-setanalog/
`bool ALL_SetAnalog(int $InstanzID, int $KanalID, float $Wert)`
_Benötigt Symcon >= 5.0_
setzt den Analogwert eines Kanals
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$KanalID` (int): ID des zu schaltenden Kanals
- `$Wert` (float): Wert auf den der Kanal gesetzt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert auf den der Kanal gesetzt werden soll
**Beispiel**
```php
// Setzt den Kanal 3 des Geräts 12345 auf 20,4
ALL_SetAnalog(12345, 3, 20.4); //Gerät einschalten
```
## ALL_SwitchActor
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/allnet/all-switchactor/
`bool ALL_SwitchActor(int $InstanzID, int $KanalID, bool $Status)`
schaltet ein ALLNET Aktor ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$KanalID` (int): ID des zu schaltenden Kanals
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ALL_SwitchActor(12345, 1, true); //Aktor des Geräts 12345 auf dem Kanal 1 einschalten
```
## ALL_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/allnet/all-switchmode/
`bool ALL_SwitchMode(int $InstanzID, bool $Status)`
schaltet ein ALLNET Gerät ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ALL_SwitchMode(12345, true); //Gerät einschalten
```
## ALL_UpdateValues
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/allnet/all-updatevalues/
`bool ALL_UpdateValues(int $InstanzID)`
sende eine Aktualisierungsanfrage an das ALLnet Gerät
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
//Das Gerät mit der ID "12345" auslesen
ALL_UpdateValues(12345);
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/allnet/geraeteliste/
### Unterstützte Komponenten
Ein Auszug unterstützter Komponenten.
Auf [Anfrage](https://www.symcon.de/de/kontakt/) überprüfen wir gerne weitere, nicht aufgelistete, Geräte auf ihre Kompatibilität.
#### ALLNET Geräte mit Firmware 3.x
| Produktbezeichnung | Beschreibung |
| ------------------ | ----------------------------------------------------------------- |
| ALL3040 | WiFi Basic Sensor Zentrale |
| ALL3072 | Netzwerksteckdose zum Schalten über LAN/W-LAN |
| ALL3073WLAN | Netzwerksteckdose zum Schalten über LAN/W-LAN |
| ALL3075 V2 | Netzwerksteckdose zum Schalten über LAN (inkl. Verbrauchsmessung) |
| ALL3075 V3 | Netzwerksteckdose zum Schalten über LAN (inkl. Verbrauchsmessung) |
| ALL3418 V2 | IP Triometer |
| ALL3419 | IP Thermometer/Sensorzentrale |
| ALL3500 | IP Homeautomation Appliance |
| ALL3505 | IP Homeautomation Appliance |
| ALL3653 | Remote Control |
| ALL3690 | PM1 PowerMeter (3 Phasen) |
| ALL3691 | PM2 PowerMeter (2x3 Phasen, 2xS0, 2xD0) |
| ALL3692 | PM3 PowerMeter (4xD0, 2xI2C) |
| ALL3696 | IP PowerMeter |
| ALL3697-32A | PM4 PowerMeter (HUT Powermeter, 3 Phasen) |
| ALL4075 | 4-fach Netzwerkrelais (LAN/WLAN) |
| ALL4076 | 6-fach IP Steckdosenleiste |
| ALL4175 | 4-fach Netzwerkrelais |
| ALL4176 | 6-fach IP Steckdosenleiste |
| ALL4500 | Sensoric Appliance |
| ALL4550 | POE Informationsdisplay |
| ALL5000 | IP Facility Control Server |
#### ALLNET Geräte mit Firmware 2.x
| Produktbezeichnung | Beschreibung |
| ------------------ | ---------------------------------------------------------------- |
| ALL3000 | Internet Thermometer |
| ALL3000RF MK2 | Steuerungseinheit für Intertechno Funksteckdosen |
| ALL3075 | Netzwerksteckdose zum Schalten über LAN |
| ALL3076 | Netzwerksteckdose zum Dimmen über LAN |
| ALL3090 / ALL3096 | 8 Port Reset Switch |
| ALL3100 | Ethernet Power Switch |
| ALL3270 | Narrowband Powerline Master Ethernet Bridge |
| ALL3275 | Narrowband Powerline Slave Steckdose zum Schalten über Powerline |
| ALL3418 | IP Triometer |
| ALL3421 | IP Triometer |
| ALL4000 | Ethernet Sensormeter |
| ALL4001 | HUT Ethernet Sensormeter für Hutschiene |
| ALL4100 | 8 Port Power Switch 19″ mit 8 Kaltgerätesteckdosen |
---
# BACnet
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/bacnet/
_Benötigt Symcon >= 6.3_
> **Hinweis:** Das BACnet Modul ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz im [Shop](https://www.symcon.de/de/shop/enterprise/bundle-ips-enterprise-bacnet) erworben werden kann. Bei jeder Symcon Lizenz können bis zu 3 BACnet Objekte kostenlos erstellt werden.
Die BACnet (Client) Anbindung erlaubt das komfortable Einrichten von BACnet Geräten innerhalb von Symcon. Dabei werden über eine Discovery Instanz alle im lokalen Netzwerk verfügbaren BACnet Geräte gesucht und entsprechend auch angelegt. Im nächsten Schritt wird jedes angelegte Gerät abgefragt und die auf dem Gerät verfügbaren Datenpunkte dargestellt. Es können beliebige Datenpunkte erstellt werden bzw. im einfachsten Fall alle Datenpunkte in Symcon importiert werden. Die Datenpunkte zeigen dabei den "Present Value" an, welcher sich automatisch über COV aktualisiert, sofern das Gerät dies unterstützt. Alternativ kann der Wert auch zyklisch abgefragt werden. Der Wert kann zusätzlich per Visualisierung, Skript und Ablaufplan verändert werden.
Der BACnet (Server) erlaubt es über einen Konfigurator beliebige Variablen aus Symcon heraus nach BACnet zu bringen. Dabei können die verfügbaren Datenpunkte automatisch vom Client ausgelesen werden und auch COV wird vom Server entsprechend unterstützt. Ebenfalls kann Symcon als BACnet Geräte automatisch im Netzwerk erkannt werden.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/T6NsoRShn2o?rel=0&cc_load_policy=1)
#### Unterstütztes Protokoll
* BACnet/IP
#### Unterstützte BIBBs (Client)
* DM-DDB-A (Dynamic Device Binding)
* DS-RP-A (Read Property)
* DS-RPM-A (Read Property Multiple)
* DS-WP-A (Write Property)
* DS-COV-A (Change of Value Notification)
* DS-COVP-A (Change Of Value Property)
#### Unterstützte BIBBs (Server)
* DM-DDB-B (Dynamic Device Binding)
* DS-RP-B (Read Property)
* DS-RPM-B (Read Property Multiple)
* DS-WP-B (Write Property)
* DS-COV-B (Change of Value Notification)
* DS-COVP-B (Change Of Value Property)
#### Unterstützte BIBBs (Sonstige)
* NM-FDR-A (Foreign Device Registration)
#### Unterstützte Standard Object Types
* Analog Input
* Analog Output
* Analog Value
* Binary Input
* Binary Output
* Binary Value
* MultiState Input
* MultiState Output
* MultiState Value
* Accumulator
#### Unterstützte Segmentierung
* Empfangen: Ja (>64 Segmente, Max 1476 Bytes pro Segment)
* Senden: Nein (bisher nicht erforderlich)
#### Beispiel eines Wrapper Modul für nicht standardkonforme Geräte
[Integriert die SageGlass SIM II (BACnet) in Symcon](https://www.symcon.de/de/llms/modules/sageglass-bacnet.md)
## BAC_RelinquishPresetValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/bacnet/bac-relinquishpresetvalue/
`bool BAC_RelinquishPresetValue(int $InstanzID)`
Rücksetzung des PresetValues
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
BAC_RelinquishPresetValue(12345);
```
---
# Catan
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/catan/
_Benötigt Symcon >= 9.0_
### Einbindung in Symcon
Die Catan Schnittstellen können über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "Catan Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines Catan Konfigurators [Konfigurators](https://www.symcon.de/de/llms/concepts.md) pro Schnittstelle an.

Im Konfigurator werden alle Kanäle eines Gerätes angezeigt, können erstellt und konfiguriert werden. Je nach Gerät stehen verschiedene Kanalarten zur Verfügung: DOI UOI UI und DOR. Jedem dieser Kanäle kann in der Instanzkonfiguration ein Typ zugewiesen werden. Unterhalb jeder Kanal Instanz wird eine Variable erstellt, die dem Wert des Kanals entspricht. Der Name sowie die Darstellung und Aktion werden durch den Kanaltyp vorgegeben.
**UI**
- Unkonfiguriert
- Digitalausgang
- Zähler
- Analoger Eingang (Spannung 0-10V)
- Analoger Eingang (Strom 0-20mA)
- Analoger Eingang (Strom 4-20mA)
- Analoger Eingang (Widerstand 0-10kΩ)
- Analoger Eingang (Temperatur, PT1000, DIN)
- Analoger Eingang (Temperatur, NI1000, DIN)
- Analoger Eingang (Temperatur, NI1000, LG)
- Analoger Eingang (Temperatur, NTC 10k)
- Analoger Eingang (Temperatur, NTC 10k, PRE)
- Analoger Eingang (Temperatur, NTC 20k)
**UOI**
- Unkonfiguriert
- Digitalausgang
- Digitaleingang
- Zähler
- Analoger Ausgang (Spannung 0-10V)
**DOI**
- Unkonfiguriert
- Digitalausgang
- Digitaleingang
### Konfiguration
Welche der folgenden Einstellungsmöglichkeiten verfügbar sind hängt von dem Kanaltyp ab.
#### Konfiguration des Displays
| Name | Beschreibung |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Erlaube Übersteuerung am Display | Wenn aktiv, kann der Wert über das Control Panel verändert werden |
| Übersteuerung am Display ist abbrechbar | Wenn aktiv, kann über die Schaltfläche "Übersteuerung abbrechen" in der Instanzkonfiguration, die Übersteuerung abgebrochen werden. Alternativ kann auch die PHP-Funktion CATAN_CancelOverride verwendet werden. Wird die Übersteuerung abgebrochen, wird der Wert wieder auf den zuvor vorhandenen Wert gesetzt. |
| Namensquelle | Der Name des Kanals, welcher im Control Panel angezeigt wird. Vom Instanznamen: Name der Instanz. Vom Textfeld: Frei wählbar. |
| Einheit | Der Text, der Hinter dem Wert auf dem Control Panel angezeigt wird |
#### Konfiguration der Wertänderung
| Name | Beschreibung |
| ------------------------ | -------------------------------------------------------------------- |
| Minimales Sendeintervall | Das Intervall in dem Wertänderungen gesendet werden in Millisekunden |
| Wertänderungsinkrement | Der Schwellwert bei dem die Änderung eines Wertes gesendet wird |
#### Konfiguration des Standardwerts
| Name | Beschreibung |
| ---------------------------------- | ------------------------------------------------------------------------------------------------- |
| Standardwert | Der Standardwert |
| Standardwert bei Start verwenden | Wenn aktiv, wird der Standardwert beim Start des Catan gesetzt. |
| Standardwert bei Ausfall verwenden | Wenn aktiv, wird der Standardwert im Fehlerfall oder bei Ausfall der Versorgungsspannung gesetzt. |
#### Konfiguration des Zählers
| Name | Beschreibung |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
| Skalierungsfaktor | Der Faktor, mit dem der Zählerwert multipliziert wird, bevor er in die Zähler Variable geschrieben wird |
| Rohwert des Zählers anzeigen | Wenn aktiv, wird eine Zusätzliche Variable mit den rohen Wert des Zählers angelegt. |
#### Zusätzliche Konfiguration
| Name | Beschreibung |
| ---------------------- | ----------------------------------------------------------------------- |
| Kanalzustand anzeigen | Wenn aktiv, wird eine Variable, die den Kanalzustand anzeigt angelegt. (Zustände: OK, Fehler, Überschrieben, Deaktiviert) |
| Fehlerzustand anzeigen | Wenn aktiv, wird eine Variable, die den aktuellen Fehlercode anzeigt angelegt.|
##### Fehlercodes
| Wert | Beschreibung |
| ---- | ------------------------------------------------------- |
| 0 | Kein Fehler |
| 5 | Peripherie Fehler |
| 10 | Widerstand zu hoch |
| 11 | Temperatur zu hoch |
| 12 | Eingangsspannung zu hoch |
| 13 | Eingangsstrom oder Shunt-Widerstand zu hoch |
| 14 | Ausgangsspannung zu hoch |
| 15 | Oberes Warnlimit überschritten |
| 20 | Temperatur zu niedrig |
| 21 | Negative Eingangsspannung |
| 22 | Eingangsstrom zu klein |
| 23 | Negativer Eingangsstrom |
| 24 | Negativer Eingangsstrom oder Sensor nicht angeschlossen |
| 25 | Ausgangspannung zu klein |
| 26 | Unteres Warnlimit unterschritten |
| 30 | Sensor nicht verbunden |
| 31 | Lastwiderstand zu hoch für gültige Spannung |
| 40 | Überlastung des Ausgangs |
| 50 | Virtuelle Null |
| 51 | Virtueller Alarm |
| 52 | Virtuell Veraltet |
| 53 | Virtueller Absturz |
| 54 | Virtueller Fehler |
| 55 | Virtuell Deaktiviert |
Der Catan unterstützt noch weitere Systeme
- [KNX](https://www.symcon.de/de/llms/modules/knx.md)
- [ModBus](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md)
- [DMX](https://www.symcon.de/de/llms/modules/dmx-artnet.md)
## CATAN_CancelOverride
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/catan/catan-canceloverride/
`bool CATAN_CancelOverride(int $InstanzID)`
_Benötigt Symcon >= 9.0_
Bricht die Überschreibung des Kanals ab
**Parameter**
- `$InstanzID` (int): Die ID der Catan Kanal Instanz, deren Überschreibung abgebrochen werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**.
Die ID der Catan Kanal Instanz, deren Überschreibung abgebrochen werden soll.
**Beispiel**
```text
CATAN_CancelOverride(12345); // Bricht die Überschreibung des Kanals ab
```
## CATAN_ResetCounter
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/catan/catan-resetcounter/
`bool CATAN_ResetCounter(int $InstanzID)`
_Benötigt Symcon >= 9.0_
Setzt den Zählerstand zurück
**Parameter**
- `$InstanzID` (int): Die ID der Catan Kanal Instanz, deren Zähler zurückgesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**.
Die ID der Catan Kanal Instanz, deren Zähler zurückgesetzt werden soll.
**Beispiel**
```text
CATAN_ResetCounter(12345); // Setzt den Zähler des Kanals ab
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/catan/geraeteliste/
### Unterstützte Geräte
| Gerät | Beschreibung |
| ------------------- | --------------------- |
| Catan C1 | Steuerung |
| Catan DOR6 UI8 | Relaismodul |
| Catan DOI8 UOI8 UI8 | Eingabe-/Ausgabemodul |
---
# digitalSTROM
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/
DigitalSTROM ist ein System, welches die Stromnetz-Verdrahtung nutzt. Eine Verbindung mit IP-Symcon wird via LAN(IP) mit dem digitalSTROM Server hergestellt.
Desweiteren wird in dem zu bedienenden Gerät eine digitalSTROM-Klemme eingebaut, bzw. die herkömmliche Lüsterklemme ersetzt.
Alle elektrischen Geräte, die via digitalSTROM-Klemme mit dem digitalSTROM-Server kompatibel sind, sind auch mit IP-Symcon kompatibel und können eingebunden werden.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/mnR2ab6IMlQ?rel=0&cc_load_policy=1)
### Anschluss
Bevor der digitalSTROM-Server mit dem PC verbunden wird, sollten alle zu steuernde elektrische Geräte, die mit dem PC bedient werden sollen, korrekt via digitalSTROM-Klemme mit diesem verbunden sein. Anschließend muss der digitalSTROM-Server durch ein Netzwerkkabel mit dem Netzwerk verbunden werden.
### Installation
Wenn der digitalSTROM-Server korrekt angeschlossen ist und ein DHCP-Server verwendet wird, ist der digitalSTROM-Server nun mit dem lokalen Netzwerk verbunden.
(Der DHCP-Server übernimmt automatisch die Adressvergabe für die Netzwerkteilnehmer.)
Der digitalSTROM-Server erscheint in der Netzwerkumgebung unter „Andere Geräte“ als „dSS“.
Durch "Doppelklicken" auf „dSS“ erscheint ein Fenster in dessen unteren Bereich die IP-Adresse des digitalSTROM-Servers befindet. Nachdem diese kopiert und in einen beliebigen Browser kopiert wurde, öffnet sich die digitalSTROM Konfigurations-Webpage. Es erscheint möglicherweise eine Sicherheitswarnung, welche mit "Ich kenne das Risiko" bestätigt werden muss.
Beim ersten Login gilt: __"Name" = "dssadmin" und "Passwort" = "dssadmin"__.
Das Passwort sollte nach dem ersten Login geändert werden. Groß- und Kleinschreibung ist zu beachten.
Auf der Konfigurations-Webpage können einige Voreinstellungen vorgenommen werden.
Es ist auch möglich, die IP-Adresse manuell zu vergeben.
### Einbindung in IP-Symcon
Innerhalb der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über "Willkommenseite -> Konfiguratoren verwalten" ein "dS Konfigurator" erstellt werden. Über das Zahnrad im unteren Fensterbereich kann der "dS Splitter" konfiguriert werden.

Es öffnet sich die Konfiguration des „dS Splitters“. Bei "IP-Adresse" muss die IP-Adresse des digitalSTROM-Servers eingetragen werden. Mit "Übernehmen" wird die Einstellung gespeichert. Nach einem Klick auf “Request Token” muss Name (Username) und Passwort (Password) der Konfigurations-Webpage eingetragen werden. Bei korrekter Eingabe erscheinen neben Token nun viele Zahlen und kleine Buchstaben. Die "dS Splitter" Konfiguration kann nun geschlossen werden. Im digitalSTROM Konfigurator kann jetzt die Suche via “Suchen” gestartet werden. Anschließend erscheinen alle an den digitalSTROM-Server per digitalSTROM-Klemmen angeschlossenen Geräte.

Bei der ID auf der linken Seite handelt es sich um die Identifikationsnummer, die auf der Rückseite der jeweiligen digitalSTROM-Klemme wiedergefunden werden kann. Im Falle einer großen Anzahl von installierten Geräten ist damit eine problemlose Zuordnung und Konfiguration gewährleistet. Bei der ID auf der rechten Seite handelt es sich um die von IP-Symcon zugeordnete InstanzID. Diese ist einmalig und unveränderbar.
Jedes Gerät kann einzeln als Instanz erstellt werden. Dazu muss dieses ausgewählt werden und auf den Button "Erstellen" geklickt werden. Die erstellten Geräte sind nun bedienbar.
Nach dem Ausgewählen eines digitalSTROM-Geräts und einem Klick auf “Konfigurieren”, kann die Funktion jedes einzelnen Gerätes getestet werden.

Die Konfigurationsseite kann auch über ein "Doppelklick" innerhalb des Objektbaums aufgerufen werden. (Diese Geräte sind im Objektbaum unter Splitter-Instanzen wiederzufinden.)
## DS_CallScene
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-callscene/
`bool DS_CallScene(int $InstanzID, int $Szene)`
ruft eine Szene auf
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Szene` (int): Szenen von 0 bis 127
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Szenen von 0 bis 127
**Beispiel**
```php
DS_CallScene(12345, 42);
```
## DS_DimSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-dimset/
`bool DS_DimSet(int $InstanzID, int $Intensität)`
dimmt eine digitalSTROM Klemme auf einen bestimmten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): Wert von 0-255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert von 0-255
**Beispiel**
```php
DS_DimSet(12345, 128); //Auf 50% dimmen
```
## DS_MakeRequest
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-makerequest/
`string DS_MakeRequest(int $InstanzID, string $Request, string $Data)`
sendet einen digitalSTROM Befehl direkt an den dSS
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Request` (string): Anfrage welche aufgerufen werden soll
- `$Data` (string): Parameter für Anfrage
**Rückgabewert** (string): JSON kodierter String
Parameter für Anfrage
**Beispiel**
```php
// Anfrage nach Systemversion
// Sendet den Request "system/version" an die Instanz mit der ID 12345
DS_MakeRequest(12345, "system/version", "");
// Ruft Szene 0 auf
// Sendet den Request "apartment/callScene" mit den Daten "sceneNumber=0" an die Instanz mit der ID 12345
DS_MakeRequest(12345, "apartment/callScene", "sceneNumber=0");
```
## DS_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-requeststatus/
`bool DS_RequestStatus(int $InstanzID)`
_Benötigt Symcon >= 4.0_
ruft den Status ab
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
DS_RequestStatus(12345);
```
## DS_ShutterMove
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-shuttermove/
`bool DS_ShutterMove(int $InstanzID, int $Position)`
bewegt den Rollladen bis zu einer gewünschten Position/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Position` (int): Position von 0-255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Position von 0-255
**Beispiel**
```php
DS_ShutterMove(12345, 128); //Auf 50% fahren
```
## DS_ShutterMoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-shuttermovedown/
`bool DS_ShutterMoveDown(int $InstanzID)`
bewegt den Rollladen nach unten bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
DS_ShutterMoveDown(12345); //Nach unten bewegen
```
## DS_ShutterMoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-shuttermoveup/
`bool DS_ShutterMoveUp(int $InstanzID)`
bewegt den Rollladen nach oben bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
DS_ShutterMoveUp(12345); //Nach oben bewegen
```
## DS_ShutterStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-shutterstop/
`bool DS_ShutterStop(int $InstanzID)`
stoppt einen Bewegungsvorgang
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
DS_ShutterStop(12345); //Anhalten
```
## DS_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/ds-switchmode/
`bool DS_SwitchMode(int $InstanzID, bool $Status)`
schaltet eine digitalSTROM Klemme an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
DS_SwitchMode(12345, true); //Gerät einschalten
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/digitalstrom/geraeteliste/
### Unterstützte Gateways
| Gateway | Beschreibung |
| ------- | ------------------- |
| dSS11 | digitalSTROM Server |
| dSS20 | digitalSTROM Server |
### Unterstützte Komponenten
#### Licht (Gelb)
| Herstellerbezeichnung | Anschlussart | Beschreibung |
| --------------------- | --------------- | ----------------------------------- |
| GE-KL200 | Relaisklemme | Schalten 1400 W |
| GE-KM200 | Lüsterklemme | Schalten/Dimmen 150 W |
| GE-KM220 | Lüsterklemme | Sparen 150 W |
| GE-SDM200 | Schnurdimmer | Dimmen 150 W |
| GE-SDS200 | Schnurdimmer | Dimmen 150 W |
| GE-SDS210 | Schnurdimmer | Sparen 150 W |
| GE-TKM210 | Tasterklemme | mit Ausgang Bedienen + Dimmen 150 W |
| GE-TKM220 | Tasterklemme | Bedienen 1-fach |
| GE-TKM230 | Tasterklemme | Bedienen 2-fach |
| GE-TUP200 | Taster | Bedienen 1-fach |
| GE-TUP210 | Taster | Bedienen 2-fach |
| GE-TUP220 | Taster+ | Bedienen 1-fach Plus |
| GE-UMV200 | Schraubklemmen | 1-10V Universal Modul |
| GE-ZWS210 | Zwischenstecker | Schalten 2300 W |
| GE-ZWS200 | Zwischenstecker | Schalten 2300 W |
#### Schatten (Grau)
| Herstellerbezeichnung | Anschlussart | Beschreibung |
| --------------------- | ------------ | -------------------- |
| GR-HKL230 | Relaisklemme | Jalousie Schaltaktor |
| GR-KL200 | Relaisklemme | Rollladen 700 VA |
| GR-KL210 | Relaisklemme | Markise 700 VA |
| GR-KL220 | Relaisklemme | Jalousie 700 VA |
| GR-TKM200 | Tasterklemme | Bedienen 1-fach |
| GR-TKM210 | Tasterklemme | Bedienen 2-fach |
| GR-TUP200 | Taster | Bedienen 1-fach |
| GR-TUP210 | Taster | Bedienen 2-fach |
| GR-TUP220 | Taster | Bedienen 1-fach Plus |
#### Heizung/Klima (Blau)
| Herstellerbezeichnung | Anschlussart | Beschreibung |
| --------------------- | ------------------ | ----------------------- |
| BL-KL200 | Relaisklemme | Schalten 700 W |
| BL-KM200 | Lüsterklemme | Schalten 150 W |
| BL-SDS2001 | Sensor mit Ausgang | Schalten 150 W + Sensor |
| BL-TUP2001 | Sensor | Klima-Sensor |
#### Joker (schwarz)
| Herstellerbezeichnung | Anschlussart | Beschreibung |
| --------------------- | --------------- | ----------------------------------------- |
| dS-iSens200 | Lüsterklemme | Raumfühler für Temperatur und Luftfeuchte |
| dS-Alarm400 | Tasterklemme | 4 Sensoren anschließbar |
| SW-AKM200 | Tasterklemme | 4 Sensoren anschließbar |
| SW-AKM210 | Tasterklemme | 2 Sensoren anschließbar |
| SW-SSL200 | Schnurdimmer | 1-fach Schalter |
| SW-TKM200 | Tasterklemme | Bedienen 4-fach universell |
| SW-TKM210 | Tasterklemme | Bedienen 2-fach universell |
| SW-TUP200 | Taster | Bedienen 1-fach universell |
| SW-UMR200 | Schraubklemmen | Relais Universal Modul |
| SW-ZWS200 | Zwischenstecker | Schalten 2300 W |
| SW-ZWS210 | Zwischenstecker | Schalten 2300 W |
#### Zugang (Grün)
Keine gesonderte Steuerung nötig.
#### Sicherheit (rot)
Keine gesonderte Steuerung nötig.
#### Audio (Hellblau)
Keine gesonderte Steuerung nötig.
---
# DMX / ArtNet
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/
DMX bzw. DMX512 ist ein Protokoll zur Steuerung von Lichttechnikkomponenten. Die Anbindung an IP-Symcon erfolgt beispielsweise über ein DMX USB-Interface(seriell) oder DMX LAN-Interface. Über das LAN-Interface wird auch das IP Protokoll ArtNet unterstützt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Komponenten](https://www.symcon.de/de/llms/modules/dmx-artnet.md)
### Beschreibung
DMX (Lichttechnik) oder auch DMX512 genannt ist ein digitales Steuerprotokoll, das in der Bühnen- und Veranstaltungstechnik Verwendung findet. Es dient der Steuerung von Dimmern, Scheinwerfern und Effektgeräten auf Bühnen oder in Diskotheken. Die Abkürzung DMX steht für Digital Multiplex, es ist ein Standard, der durch die DIN 56930-2 genormt wurde. Die Anbindung an IP-Symcon erfolgt u.a. über ein DMX USB-Interface/DMX LAN-Interface. Seit IP-Symcon 3.0 wird zusätzlich ArtNet unterstützt. Es ist ein IP-basiertes Protokoll zur Übertragung großer Mengen von DMX-Informationen über LAN. Die Spezifikation wurde von der Firma "Artistic Licence" erstellt und ist frei verfügbar. IP-Symcon unterstützt alle ArtNet-kompatiblen DMX Interfaces.
### Video-Tutorial zur Einrichtung
### Einbindung in IP-Symcon
Voraussetzung für den Betrieb in Verbindung mit IP-Symcon ist eine ordnungsgemäß installierte Hardware sowie Kenntnis der verwendeten COM-Port-Schnittstelle bzw. der IP-Adresse.
Es muss in IP-Symcon eine DMX-Instanz hinzugefügt und in der übergeordneten Instanz der Modus DMX oder ArtNet für die angeschlossene Hardware ausgewählt werden. Bei ArtNet ist das "Universe" in der Regel 0 und bei DMX ist der Eintrag irrelevant.

Bei der Nutzung von ArtNet sind in der übergeordneten Instanz folgende Einstellungen vorzunehmen:
'Sende-Host' ist die IP-Adresse des ArtNet-Interface und der 'Sende-Port': 6454 – der Standard-Port des ArtNet-Protokolls.
'Empf.-Host' ist die IP-Adresse der Netzwerkkarte, an die das Interface angeschlossen ist. In der Regel ist es die Adresse vom PC, auf dem der IP-Symcon Server läuft.
> **Hinweis:** Wenn mehrere ArtNet Interfaces erstellt werden, muss für jede UDP Socket Instanz der Empfangsport (Default: 53000) um 1 erhöht werden. (D.h. das zweite Interface hat z.B. Port 53001)

Bei einem DMX-Interface, das über USB angeschlossen ist, wird im Windows-Gerätemanager ein virtueller COM-Port installiert. Dieser ist hier einzutragen. Die weiteren Einstellungen der Baudrate: 38400,8,1,N dürfen nicht verändert werden.
Sind alle Einstellungen gemacht, muss noch der Port bzw. Socket geöffnet und "Übernehmen" gedrückt werden.

In der Instanz 'DMX-Output“ kann die Funktionalität in der Testumgebung überprüft werden.

> **Hinweis:** Mit einer Instanz können mehrere Kanäle des DMX-Geräts angesprochen werden. Das ist nützlich um z.B. komplette DMX-RGB-Scheinwerfer als zusammenhängendes Gerät in der Visualisierung anzeigen zu können. Über die Buttons "Alle Ein" und "Alle Aus" können alle der Instanz zugewiesenen Kanäle ein bzw. aus geschaltet werden.
> **Achtung:** Bei einer DMX RGB Instanz mit Kanal(Art) = 16bit ist zu beachten, dass nicht nur der eingestellte Kanal genutzt wird, sondern auch der nächst höhere. DMX Kanäle sind 8 bit. Um 16 bit anzusteuern, werden 2 Kanäle genutzt. Beispiel: Kanal(Rot) = 40 bedeutet, dass Kanal 40 und 41 genutzt werden.
## DMX_FadeChannel
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-fadechannel/
`bool DMX_FadeChannel(int $InstanzID, int $Kanal, int $Wert, float $Überblendzeit)`
dimmt einen Kanal auf einen bestimmten Wert in einer bestimmten Zeit
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Kanal` (int): 0 = alle Instanz-Kanäle, 1 – 512 je nach Konfiguration
- `$Wert` (int): 0-255 / 0-65535 (8/16 bit)
- `$Überblendzeit` (float): Zeit in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit in Sekunden
**Beispiel**
```php
//Alle Kanäle der Instanz innerhalb von 2,5sek auf 255 dimmen
DMX_FadeChannel(12345, 0, 255, 2.5);
```
## DMX_FadeChannelDelayed
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-fadechanneldelayed/
`bool DMX_FadeChannelDelayed(int $InstanzID, int $Kanal, int $Wert, float $Überblendzeit, float $Verzögerungszeit)`
dimmt einen Kanal nach einer Verzögerung auf einen bestimmten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Kanal` (int): 0 = alle Instanz-Kanäle, 1 – 512 je nach Konfiguration
- `$Wert` (int): 0-255 / 0-65535 (8/16 bit)
- `$Überblendzeit` (float): Zeit in Sekunden
- `$Verzögerungszeit` (float): Zeit in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit in Sekunden
**Beispiel**
```php
//Dimmt ein Modul komplett hoch und wieder runter.
//Alle Kanäle der Instanz innerhalb von 5sek auf 255 dimmen
DMX_FadeChannel(12345, 0, 255, 5.0);
//Alle Kanäle der Instanz innerhalb von 2,5sek auf 0 dimmen, nach einer Verzögerung von 5sek.
DMX_FadeChannelDelayed(12345, 0, 0, 2.5, 5);
```
## DMX_FadeRGB
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-fadergb/
`bool DMX_FadeRGB(int $InstanzID, int $R, int $G, int $B, float $Überblendzeit)`
dimmt den RGB-Kanal mit einer Überblendzeit
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$R` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$G` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$B` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$Überblendzeit` (float): Zeit in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit in Sekunden
**Beispiel**
```php
//Farbe auf Gelb in 5 Sekunden überblenden
//8bit Instanz
DMX_FadeRGB(12345, 255, 255, 0, 5.0);
//16bit Instanz
DMX_FadeRGB(12345, 65535, 65535, 0, 5.0);
```
## DMX_FadeRGBDelayed
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-fadergbdelayed/
`bool DMX_FadeRGBDelayed(int $InstanzID, int $R, int $G, int $B, float $Überblendzeit, float $Verzögerungszeit)`
dimmt verzögert den RGB-Kanal mit einer Überblendzeit
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$R` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$G` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$B` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$Überblendzeit` (float): Zeit in Sekunden
- `$Verzögerungszeit` (float): Zeit in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit in Sekunden
**Beispiel**
```php
//Dimmt ein Modul komplett auf Gelb hoch und wieder runter.
//8bit
//Instanz innerhalb von 5sek auf Gelb dimmen
DMX_FadeRGB(12345, 255, 255, 0, 5.0);
//Instanz innerhalb von 2,5sek auf Gelb dimmen, nach einer Verzögerung von 5sek
DMX_FadeRGBDelayed(12345, 255, 255, 0, 2.5, 5);
//16bit
//Instanz innerhalb von 5sek auf Gelb dimmen
DMX_FadeRGB(12345, 65535, 65535, 0, 5.0);
//Instanz innerhalb von 2,5sek auf Gelb dimmen, nach einer Verzögerung von 5sek
DMX_FadeRGBDelayed(12345, 65535, 65535, 0, 2.5, 5);
```
## DMX_RequestInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-requestinfo/
`bool DMX_RequestInfo(int $InstanzID)`
Fragt die Informationen einer DMX Instanz ab
**Parameter**
- `$InstanzID` (int): ID der DMX Splitter Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der DMX Splitter Instanz
**Beispiel**
```php
// Informationen der Instanz 12345 abfragen.
DMX_RequestInfo(12345);
```
## DMX_ResetInterface
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-resetinterface/
`bool DMX_ResetInterface(int $InstanzID)`
setzt ein DMX Interface zurück
**Parameter**
- `$InstanzID` (int): ID der DMX Splitter Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der DMX Splitter Instanz
**Beispiel**
```php
//Splitter Instanz mit der ID 12345 zurücksetzen
DMX_ResetInterface(12345);
```
## DMX_SetBlackOut
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-setblackout/
`bool DMX_SetBlackOut(int $InstanzID, bool $Status)`
setzt alle 512 Kanäle auf 0 oder den alten Wert
**Parameter**
- `$InstanzID` (int): ID der DMX Splitter Instanz
- `$Status` (bool): __TRUE__ für alter Wert, __FALSE__ für 0
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für alter Wert, __FALSE__ für 0
**Beispiel**
```php
//Alle Kanäle deaktiveren
DMX_SetBlackOut(12345, true);
//Alle Kanäle reaktivieren
DMX_SetBlackOut(12345, false);
```
## DMX_SetChannel
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-setchannel/
`bool DMX_SetChannel(int $InstanzID, int $Kanal, int $Wert)`
setzt einen Kanal auf einen bestimmten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Kanal` (int): 0 = alle Instanz-Kanäle, 1 – 512 je nach Konfiguration
- `$Wert` (int): 0-255 / 0-65535 (8/16 bit)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-255 / 0-65535 (8/16 bit)
**Beispiel**
```php
//Den ersten Kanal der Instanz auf 255 schalten
DMX_SetChannel(12345, 1, 255);
```
## DMX_SetRGB
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/dmx-setrgb/
`bool DMX_SetRGB(int $InstanzID, int $R, int $G, int $B)`
setzt den RGB Kanal auf einen bestimmten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$R` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$G` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
- `$B` (int): Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Helligkeitswert 0 (aus) bis 255/65535 (8/16 bit) (an, maximale Helligkeit)
**Beispiel**
```php
//Farbe auf Gelb setzen
//8bit Instanz
DMX_SetRGB(12345, 255, 255, 0);
//16bit Instanz
DMX_SetRGB(12345, 65535, 65535, 0);
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/dmx-artnet/geraeteliste/
### Unterstützte Interfaces
* DMX4ALL Mini-USB-DMX-Interface
* DMX4ALL NanoDMX USB Interface
* DMX4ALL USB-DMX STAGE-PROFI MK2
* DMX4ALL USB-DMX STAGE-PROFI MK3
* LAN-DMX STAGE-PROFI
* AVR Art Net Node
* Art Net Box (Quad Art Net Box)
* Es werden alle ArtNet Interfaces unterstützt
### Unterstützte Geräte
#### Bis Version 4.0
Alle Geräte, welche die oben aufgeführten Interfaces und maximal eine 8bit (256 Steps) Auflösung nutzen.
#### Ab Version 4.1
Alle Geräte, welche die oben aufgeführten Interfaces nutzen.
Es wird auch die 16bit (65535 Steps) Auflösung unterstützt.
---
# EgiGeoZone
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/egigeozone/
_Benötigt Symcon >= 4.2_
Das Modul dient zum empfangen von EgiGeoZone Daten.
### Funktionsumfang
- Pro Gerät eine eigene Standortliste
- Benutzername und Passwort Identifikation innerhalb von IP-Symcon.
- Richtet automatisch den Webhook "/hook/egigeozone" ein.
- Es wird empfohlen dies in Kombination mit dem Connect Modul zu nutzen.

### Voraussetzungen
- EgiGeoZone App für Google Android
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul EgiGeoZone installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'EgiGeoZone'-Modul mithilfe der Schnellsuche gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------ | --------------------------------------------------------------------------------------------------------- |
| Benutzername | Benutzername, welcher in der EgiGeoZone App angegeben werden muss, um IP-Symcon Daten schicken zu können. |
| Passwort | Passwort, welches in der EgiGeoZone App angeben werden muss. |
*Werden diese Daten Leer gelassen kann jeder über den Hook Daten an IP-Symcon schicken.*
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die Variablen werden anhand der Geräte ID und beim erstmaligen senden innerhalb des EgiGeoZone Moduls automatisch angelegt. Es können mehrere Geräte über einen Hook laufen. Jedes Gerät wird unter seiner eigenen "Kategorie" eingerichtet.
| Name | Typ | Beschreibung |
| ------------------------------ | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Gerätename | Instanz (Dummy) | Dient als "Kategorie" in der sich alle überwachten Standorte, sowie der Zeitstempel und Längen-/Breitengrad befinden. Wird pro Gerät erstellt. |
| Latitude | Float | Breitengrad der letzten Aktivität. |
| Longitude | Float | Längengrad der letzten Aktivität. |
| Timestamp | Integer | UnixTimestamp der letzten Aktivität. |
| Beispielstandort (GeoZoneTest) | Boolean | Present oder Absent. Information wird von Gefency geliefert. |
Beispiel:

### Visualisierung
Es gibt keine native Darstellung via Visualisierung oder in den mobilen Apps. Geräte und Variablen, welche angezeigt werden sollen, können via Link angezeigt werden.
---
# ekey
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ekey/
Die Firma ekey stellt verschiedene Fingerscanner her und diese können mithilfe eines Gateways in IP-Symcon integriert werden. IP-Symcon empfängt die Aktivitäten des Fingerscanners und stellt diese via Variable zur Verfügung.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> __[Unterstützte Geräte](https://www.symcon.de/de/llms/modules/ekey.md) __
>
> Für die Integration von ekey bionyx bitte auf folgende Seite wechseln [ekey bionyx](https://www.symcon.de/de/llms/modules/ekeybionyx.md)
### Installation
Um IP-Symcon den Zugriff auf das Home/Multi/Net System zu gewähren muss das passende CV LAN Modul (Gateway) ins Netzwerk integriert werden.
Die IP-Adresse für den UDP Socket kann über das eKey home CV LAN Tool gesetzt werden.
> **Hinweis:** Das CV LAN Tool gibt es in verschiedenen Versionen für [Home](https://www.ekey.net/downloadcenter/) , Multi und Net.
Nach der Einrichtung des CV LAN müssen die angegebenen IP-Adressen noch in IP-Symcon konfiguriert werden.
In der eKey-Instanz muss das Protokoll, sowie Trennzeichen eingestellt werden.
Über "Gateway Konfigurieren" muss der Sende- und Empfangs-Host, sowie Port eingetragen werden.
Als Empfänger IP muss die IP vom IP-Symcon Server eingetragen werden.

## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ekey/geraeteliste/
### Unterstützte Gateways
| Gateway | Beschreibung |
| ------------------------------------------------- | ----------------- |
| ekey Home Converter LAN RS-485 | Home/Multi System |
| ekey Net CV LAN | Net System |
| [ekey bionyx](https://www.symcon.de/de/llms/modules/ekeybionyx.md) | Cloud System. |
### Unterstützte Komponenten
IP-Symcon unterstützt alle an ekey Home/Multi/Net anschließbaren Geräte.
---
# ekey bionyx
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ekeybionyx/
_Benötigt Symcon >= 7.0_
Die Firma ekey stellt verschiedene Fingerscanner her und diese können mithilfe eines Gateways in IP-Symcon integriert werden. IP-Symcon empfängt die Aktivitäten des Fingerscanners über Webhooks.
### Funktionsumfang
- Einrichten eines oder mehrerer ekey bionyx Systeme
- Hinterlegen von Aktionen zu Webhooks
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'ekey bionyx Konfigurator'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
Beim Erstellen der Instanz kann die Schnittstelle konfiguriert werden.
__Konfigurationsseite der Cloud__:
| Name | Beschreibung |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verbindung | __Lokal__: Ist der ekey Controller wie auch IP-Symcon im selben Netzwerk wird diese Option genutzt. __Connect__: Sind ekey Controller und IP-Symcon nicht im selben Netzwerk, läuft die Kommunikation über den ConnectDienst |
| IP-Adresse | Die IP-Adresse des IP-Symcon Servers |
Danach wird die Instanz erstellt. Im Konfigurator erscheint der Hinweis das "Eine übergeordnete Instanz ist inaktiv". hier wird auf Konfigurieren geklickt. Die ekey Cloud Instanz wird aufgerufen. Damit die Einrichtung der ekey Cloud Instanz abgeschlossen wird, muss auf den Registrieren-Button geklickt werden. Im Browser öffnet sich nun ein neuer Tab mit der Anmeldungsmaske von ekey.

Nach Eingabe der Anmeldedaten wird bei Erfolg folgender Dialog angezeigt.

Nun kann zu IP-Symcon zurückgekehrt werden. In der ekey bionyx Cloud Instanz sollte jetzt ein Token vorhanden sein.
Im ekey bionyx Konfigurator kann nun auf aktualisieren geklickt werden, damit die vorhandenen Systeme, welche mit dem Account verknüpft sind, angezeigt werden. Diese können nun erstellt und konfiguriert werden.
__Konfigurationsseite des Konfigurators__:
| Name | Beschreibung |
| ------------- | ------------------------------------------------------------------------------- |
| ID | ID des ekey Controllers |
| Name | Name des ekey Account Admin |
| Informationen | Informationen wie viele Webhooks verfügbar und vorhanden sind für dieses System |
Pro Account sind 5 Webhooks erlaubt.
__Konfigurationsseite des System__:
Funktionen Webhooks:
| Name | Beschreibung |
| -------- | --------------------------------------------------------------- |
| ID | Id des Webhooks |
| Funktion | Funktionsname, welcher in der ekey bionyx App angezeigt wird |
| Ort | Ortsname, welcher in der ekey bionyx App angezeigt wird |
| Aktion | Aktion, welche ausgeführt wird, wenn der Webhook ausgelöst wird |
---
# EnOcean
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/
EnOcean ist ein Funksystem, welches von mehreren Herstellern unterstützt wird. Für eine Verbindung mit IP-Symcon wird ein USB-Interface oder ein LAN-Interface benötigt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> __[Unterstützte Geräte (inkl. Gateways)](https://www.symcon.de/de/llms/modules/enocean.md) __ und __[EEP-Liste](https://www.symcon.de/de/llms/modules/enocean.md) __
### Installation
Das __USB Gateway__ wird per USB mit dem Server verbunden und ist über einen Serial Port ansprechbar.
Das __Symcon LAN Gateway__ wird per LAN mit dem Server verbunden. Zur Einrichtung wird das IP-Symcon "Network Configuration Tool" benötigt. Dieses steht zum [Download](https://support.symcon.de/lan-gct) bereit. Eine einfache [Beschreibung zur Konfiguration des Gateways](https://www.symcon.de/assets/files/service/NetworkConfigurationTool.pdf) steht zur Verfügung. Im Anschluss ist das Gateway über die entsprechende IP-Adresse und Port (Standardmäßig: 5000) erreichbar.
> **Hinweis:** Wenn kein IP-Symcon Haus auf der Vorderseite des LAN-Gateways abgedruckt ist, ist dies ein altes Modell des Gateways. Die Installationsanleitung für dieses Modell kann [hier](https://www.symcon.de/assets/files/service/EnOceanLAN-Gatewayrev.vor2015.pdf) gefunden werden.
Das __Eltako FGW14__ wird per RS232 mit der SymBox (mit integrierter RS232-Erweiterung) verbunden. Dieses wiederum ist mit dem __Eltako FAM14__ über die "Eltako Bus14"-Steckbrücken verbunden. Hierzu ist folgende Anschlusskonfiguration zu beachten:
**FAM14:**
- **Betriebsart (BA) Wählschalter:**
Die Betriebsart ist entsprechend der Betriebsanleitung einzustellen. Für bidirektionale Kommunikation muss die Betriebsart 2 gewählt werden.
Für Adressvergabe muss die Betriebsart 1 gewählt werden.
- **Anschlussklemmen "N" und "L":**
230V Netspannung. Entweder Schuko-Stecker oder direkt im Schaltschrank mit entsprechenden Leitungen verbinden.
- **Anschlussklemme "Hold":**
Anschlussklemme mit Anschlussklemme "Hold" des FGW14 verbinden.
- **Anschlussklemme "GND":**
Mit dem Ground-Pin (⊖) der steckbaren Anschlussklemme der RS232-Schnittstelle der Symbox verbinden.
**FGW14:**
- **Betriebsart (BA) Wählschalter:**
Betriebsart 6: "Bus14 ↔ RS232 58k Baud" auswählen.
- **Anschlussklemme "Hold":**
Anschlussklemme mit Anschlussklemme "Hold" des FAM14 verbinden.
- **Anschlussklemme "Tx":**
Mit Pin ↓ der RS232-Schnittstelle der SymBox verbinden.
- **Anschlussklemme "Rx":**
Mit Pin ↑ der RS232-Schnittstelle der SymBox verbinden.
### Einbindung in IP-Symcon
Bei Verwendung des LAN-Gateways kann dies über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "EnOcean Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines EnOcean [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können dort die einzelnen Geräte wie unten beschrieben eingebunden werden.
Das USB-Gateway wird direkt als Konfigurator angelegt, da es über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) nicht gefunden werden kann. Hierfür wird im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) ein "EnOcean Configurator" erstellt. Bei der Konfiguration der Schnittstelle muss der passende ESP2 oder ESP3 Modus gewählt und anschließenden der pasende Port ausgewählt und geöffnet werden.
> **Hinweis:** Wie die I/O Instanz (übergeordnete Instanz des Gateways) ausgewählt und ggf. ausgetauscht wird, ist hier nachzulesen: [I/O Instanz austauschen](https://www.symcon.de/de/llms/how-to.md)
### Konfiguration
Abhängig vom Gerätetyp unterscheidet sich die Konfigurationsweise. Es wird zwischen 4 verschiedenen Gerätetypen unterschieden. Jede hat unterschiedliche Vorgehensweisen bei der Konfiguration. (siehe unten im jeweiligen Abschnitt)
> **Achtung:** Um ein EnOcean-Gerät nutzen zu können, muss dieses explizit in IP-Symcon angelernt werden.
> **Achtung:** Jede Geräte-ID (0-127) darf nur ein einziges Mal vergeben werden.
> **Hinweis:** Bevor eine Suche gestartet werden kann, muss die übergeordnete Instanz konfiguriert werden. Der korrekte serielle Port muss angeben und die Konfiguration übernommen werden. Die Einstellung von Baudrate etc. ist nicht notwendig, da diese vom System automatisch vorgenommen wird.
Eine allgemeine Anleitung zum Erstellen von Geräten/Instanzen in IP-Symcon kann hier gefunden werden: [Geräte einbinden](https://www.symcon.de/de/llms/how-to.md)
#### Konfigurator
Über den Konfigurator kann jedes EnOcean-Gerät als Instanz erstellt werden. Dazu muss "Neues Gerät" ausgewählt, auf "Erstellen" geklickt und anschließend das passende Gerät aus der Liste selektiert werden.

Sobald im Konfigurator eine Instanz erstellt und auf die Konfigurationstaste gedrückt wird, öffnet sich die Konfigurationsseite der Geräteinstanz. In dieser kann über den "Suchen"-Button und mehrfaches betätigen des EnOceangeräts die Geräte-ID gesucht und ausgewählt werden.


Neue Instanzen werden im Objektbaum in der Hauptkategorie erstellt. Diese erstellten Instanzen können dann entsprechend umbenannt und an anderer Stelle einsortiert werden. Auch besteht die Möglichkeit via "Konfigurieren" im Konfigurator die jeweilige Instanzkonfiguration aufzurufen.
#### Aktor
- Geräte-ID eintragen und mit "Übernehmen" speichern
- Gerät in den Einlernmodus versetzen (siehe Herstelleranleitung)
- "Einlernen" klicken
- Funktion ggf. in der Testumgebung mit An/Aus testen
| ID | Beschreibung |
| --------- | ---------------------------------------------------- |
| Geräte-ID | Wird vom Benutzer vergeben. 0-127 ganzzahlig möglich |
#### Aktor (Eltako)
* Den Geräten über das Anmelden am FAM14 eine ID zuweisen (siehe Herstelleranleitung)
* Geräte-ID eintragen und mit "Übernehmen" speichern
* Diese kann am einfachsten über die PCT14 eingesehen werden.
* Gerät in den Einlernmodus versetzen (siehe Herstelleranleitung)
* "Einlernen" klicken in der IP-Symocn Instanz
* Funktion ggf. in der Testumgebung mit An/Aus testen
* "Suchen" klicken. Das Gerät sollte 5mal An/Aus gehen
* Gefundene ID auswählen und mit "OK" übernehmen
__Besonderheiten bei bestimmten Geräten__
* __FUD14:__ Im PCT14 muss im Konfigurationsbereich des FUD14 die Optionen "Bestätigungstelegramm mit Dimmwert" und "Bestätigungstelegramm mit Tastertelegramm" auf "ein" setzen. Es muss, wenn nicht durchs Anlernen eingetragen, innerhalb der PCT14 im Reiter "ID - Zuordnungsbereich" des Geräts in der Funktiongruppe 3 die Funktion 32 "Dimmwert von GFVS / Drehtaster" eingerichtet werden.
* __FSR14-xR:__ Muss als Richtungstaster oder Universal-Taster angelernt werden, je nachdem ob man mit der Taste Ein-/Ausschalten oder mit 2 Tasten schalten möchte.
* __FSB14:__ Es muss, wenn nicht durchs Anlernen eingetragen, innerhalb der PCT14 im Reiter "ID - Zuordnungsbereich" des Geräts in der Funktiongruppe die Funktion "Fahrzeit mit Zeitwertvorgabe FVS" eingerichtet werden.
> **Achtung:** Solange eine Verbindung über USB mit dem FAM14 über die PCT14 aktiv ist, ist ein Senden von Funktelegramme nicht Möglich.
> **Hinweis:** Bei Eltako Geräten muss der Schaltaktor im Richtungstastermodus eingelernt werden. Der Dimmaktor muss im Modus P,L,C (auch PCT) eingelernt werden. Dafür ist die speziell dafür vorgesehene Instanz und der Einlernen-Button zu nutzen. (Ab IP-Symcon 2.5)
> **Hinweis:** Das Gerät Eltako FSB14 kann nur in RV 180/200 (Motor 1/2) eingelernt werden.
| ID | Beschreibung |
| --------- | ---------------------------------------------------- |
| Geräte-ID | Wird vom Benutzer vergeben. 0-127 ganzzahlig möglich |
| Melde-ID | Wird vom Gerät gesendet. Dient der Gerätezuordnung |
#### Aktor (OPUS)
1. Es wird das OPUS Config Tool in einer aktuellen Version benötigt, sodass ein generisches "Gateway" hinzugefügt werden kann.
2. Im Gateway muss die EURID vom verwendeten EnOcean Gateway eingetragen werden. (Diese ist unterhalb der EnOcean Gateway Splitter Instanz zu finden) [Bei älteren TCM310 ist es evtl. erforderlich dort die BaseID einzutragen]
3. Geräte im Gateway "verbinden" [Diese sind dann blau hinterlegt] und Geräte programmieren lassen
3. Die Geräte manuell über "Instanz hinzufügen" in IP-Symcon einbinden und die bekannte Geräte-ID in die Instanz eintragen
4. Schalten und empfangen sollte jetzt problemlos möglich sein

| ID | Beschreibung |
| --------- | -------------------------------------------------------- |
| Geräte-ID | 8-stellige EnOcean-ID. Diese ist auf dem Gerät zu finden |
#### Aktor (Stellantrieb)
- Geräte-ID eintragen und mit "Übernehmen" speichern
- "Suchen" klicken.
- Gerät in den Einlernmodus versetzen (siehe Herstelleranleitung)
- Gerät bestätigt das Einlernen (siehe Herstelleranleitung)
- Gefundene ID auswählen, mit "OK" bestätigen und "Übernehmen"
| ID | Beschreibung |
| --------- | ---------------------------------------------------- |
| Geräte-ID | Wird vom Benutzer vergeben. 0-127 ganzzahlig möglich |
| Melde-ID | Wird vom Gerät gesendet. Dient der Gerätezuordnung |
#### Sensor
- "Suchen" klicken.
- Auf Datenempfang warten (ggf. Taster betätigen)
- Gefundene ID auswählen und "Übernehmen"
Der Suchdialog zeigt ein Gerät erst an, wenn Daten empfangen wurden. Bei einem Taster können die Tasten gedrückt werden, um einen Sendevorgang aufzurufen. Bei Temperatursensoren muss das nächste Intervall abgewartet oder die ID manuell angegeben werden.
| ID | Beschreibung |
| --------- | -------------------------------------------------- |
| Geräte-ID | Wird vom Gerät gesendet. Dient der Gerätezuordnung |
### Tipps & Tricks
* Um Empfangsprobleme zu beseitigen oder um größere Distanzen zu überbrücken, können bis zu zwei Repeater vom Typ “TCM 120″ eingesetzt werden.
* Die Anleitung zur Änderung der BaseID (nicht zu verwechseln mit der Geräte ID) befindet sich [hier](https://www.symcon.de/assets/files/service/EnOceanBaseIDTool.pdf) .
Weitere Informationen über die verwendete Technologie und Bezugsquellen gibt es auf der Internetpräsenz von EnOcean.
Link: [https://www.enocean.com/de/](https://www.enocean.com/de/)
## ENO_DimSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-dimset/
`bool ENO_DimSet(int $InstanzID, int $Intensität)`
dimmt ein EnOcean Gerät auf eine bestimmte Helligkeit
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Intensität` (int): 1..100
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
1..100
**Beispiel**
```php
ENO_DimSet(12345, 10); //Gerät auf 10% dimmen
```
## ENO_SetActiveMessage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setactivemessage/
`bool ENO_SetActiveMessage(int $InstanzID, int $Message)`
setzt eine bestimmte Message aktiv
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Message` (int): 0..8
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..8
**Beispiel**
```php
ENO_SetActiveMessage(12345, 2);
```
## ENO_SetFanStage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setfanstage/
`bool ENO_SetFanStage(int $InstanzID, int $FanStage)`
setzt die FanStage auf einen bestimmten Wert
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$FanStage` (int): 0..4
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..4
**Beispiel**
```php
ENO_SetFanStage(12345, 4); //Gerät wird auf automatic gesetzt
```
## ENO_SetIntensity
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setintensity/
`bool ENO_SetIntensity(int $InstanzID, bool $Status, int $Intensität)`
dimmt den Opus-Dimmer auf eine bestimmte Helligkeit
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
- `$Intensität` (int): 1..20, 1 = 5%, 20 = 100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
1..20, 1 = 5%, 20 = 100%
**Beispiel**
```php
ENO_SetIntensity(12345, true, 10); //Gerät auf ca. 50% dimmen
```
## ENO_SetLockFanStage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setlockfanstage/
`bool ENO_SetLockFanStage(int $InstanzID, bool $Locked)`
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Locked` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ENO_SetLockFanStage(12345, true);
```
## ENO_SetLockRoomOccupancy
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setlockroomoccupancy/
`bool ENO_SetLockRoomOccupancy(int $InstanzID, bool $Locked)`
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Locked` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ENO_SetLockRoomOccupancy(12345, true);
```
## ENO_SetMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setmode/
`bool ENO_SetMode(int $InstanzID, int $Value)`
setzt den Stellantrieb in einen bestimmten Modus
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Value` (int): 0..5
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..5
**Beispiel**
```php
ENO_SetMode(12345, 1); //Stellantrieb wird in den Summer Mode gesetzt
```
## ENO_SetPosition
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setposition/
`bool ENO_SetPosition(int $InstanzID, int $Value)`
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Value` (int): 1..100
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
1..100
**Beispiel**
```php
ENO_SetPosition(12345, 10);
```
## ENO_SetRoomOccupancy
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-setroomoccupancy/
`bool ENO_SetRoomOccupancy(int $InstanzID, bool $Occupied)`
setzt die Occupancy auf True/False
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Occupied` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ENO_SetRoomOccupancy(12345, true);
```
## ENO_SetTemperature
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-settemperature/
`bool ENO_SetTemperature(int $InstanzID, float $Value)`
setzt den Stellantrieb auf eine bestimmte Soll-Temperatur
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Value` (float): 1...100
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
1...100
**Beispiel**
```php
ENO_SetTemperature(12345, 22.7);
```
## ENO_SetTemperature1
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-settemperature1/
`bool ENO_SetTemperature1(int $InstanzID, float $Temperature)`
setzt das Gerät auf eine bestimmte Temperatur
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Temperature` (float): 1..100
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
1..100
**Beispiel**
```php
ENO_SetTemperature1(12345, 10);
```
## ENO_ShutterMoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-shuttermovedown/
`bool ENO_ShutterMoveDown(int $InstanzID)`
bewegt den Rollladen nach unten bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz des zu schaltenden Gerätes
**Beispiel**
```php
ENO_ShutterMoveDown(12345);
```
## ENO_ShutterMoveDownEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-shuttermovedownex/
`bool ENO_ShutterMoveDownEx(int $InstanzID, float $Laufzeit)`
_Benötigt Symcon >= 4.2_
bewegt den Rollladen für eine bestimmte Zeit
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Laufzeit` (float): Sekunden wielange der Rollladen laufen soll. (0 - 6535.5)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Sekunden wielange der Rollladen laufen soll. (0 - 6535.5)
**Beispiel**
```php
//Rollo für 10,5 Sekunden nach Unten fahren
ENO_ShutterMoveDownEx(12345, 10.5);
```
## ENO_ShutterMoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-shuttermoveup/
`bool ENO_ShutterMoveUp(int $InstanzID)`
bewegt den Rollladen nach oben bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz des zu schaltenden Gerätes
**Beispiel**
```php
ENO_ShutterMoveUp(12345);
```
## ENO_ShutterMoveUpEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-shuttermoveupex/
`bool ENO_ShutterMoveUpEx(int $InstanzID, float $Laufzeit)`
_Benötigt Symcon >= 4.2_
bewegt den Rollladen für eine bestimmte Zeit
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Laufzeit` (float): Sekunden wielange das Rollo laufen soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Sekunden wielange das Rollo laufen soll.
**Beispiel**
```php
//Rollo für 10,5 Sekunden nach Oben fahren
ENO_ShutterMoveUpEx(12345, 10.5);
```
## ENO_ShutterStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-shutterstop/
`bool ENO_ShutterStop(int $InstanzID)`
stoppt einen Bewegungsvorgang
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz des zu schaltenden Gerätes
**Beispiel**
```php
ENO_ShutterStop(12345);
```
## ENO_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-switchmode/
`bool ENO_SwitchMode(int $InstanzID, bool $Status)`
schaltet ein EnOcean Gerät ein/aus
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ENO_SwitchMode(12345, true); //Gerät einschalten
```
## ENO_SwitchModeEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/eno-switchmodeex/
`bool ENO_SwitchModeEx(int $InstanzID, bool $Status, int $SendeModus)`
sendet einen erweiterten Schaltbefehl
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
- `$SendeModus` (int): 0 = NMessage, 1 = UMessage, 2 = Beide ( Wie [ENO_SwitchMode](https://www.symcon.de/de/llms/modules/enocean.md) )
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = NMessage, 1 = UMessage, 2 = Beide ( Wie [ENO_SwitchMode](https://www.symcon.de/de/llms/modules/enocean.md) )
**Beispiel**
```php
ENO_SwitchModeEx(12345, true, 0); //NMessage senden
IPS_Sleep(500); //Warten
ENO_SwitchModeEx(12345, true, 1); //UMessage senden
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/enocean/geraeteliste/
#### Unterstützte Gateways
| Produkt | Beschreibung |
| ---------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| EnOcean LAN Gateway (TCM310/TCM515 LAN Gateway) [Produktinformation](https://www.symcon.de/assets/files/product/enocean-lan-gateway.pdf) | IP Gateway |
| BSC-BOR | USB Gateway |
| EnOcean USB300 | USB Gateway |
| EnOcean Pi | Raspberry Pi Aufsteckplatine |
| EnOcean FGW14 (mit FAM14) | USB/Seriell Gateway (Betriebsart 6) und Funkerweiterung FAM14 (Betriebsart 2) |
| FAM USB | USB Gateway (Muss als TCM 130 eingetragen werden) |
| TCM130 | Alle Geräte die das ESP2 Protokoll unterstützen |
| TCM310 | Alle Geräte die das ESP3 Protokoll (Dolphin) unterstützen |
| TCM515 | Alle Geräte die das ESP3 Protokoll (Dolphin) unterstützen |
| Thermokon STC-Ethernet | IP Gateway |
#### Unterstützte Geräte
Folgende Geräte wurden auf Ihre Kompatibilität mit IP-Symcon untersucht.
Auf [Anfrage](https://www.symcon.de/de/kontakt/) überprüfen wir gerne weitere, nicht aufgelistete, Geräte.
##### Allgemein
| Produkt | Beschreibung |
| ------- | ------------------------ |
| PTM 200 | Button/Expert |
| PTM 200 | Schalter |
| RCM 1xx | Schaltaktor (Universell) |
| STM100 | Sensor |
| STM250 | Sensor |
##### alphaEOS
| Produkt | Beschreibung |
| ---------- | -------------------------------------------------- |
| Drive B2 | Funkstellantrieb |
| SENSE TF-H | Raumklima-Sensor (Temperatur und Luftfeuchtigkeit) |
##### Eltako
| Produkt | Beschreibung | EEP Nummer (Siehe EEP Liste unten) |
| -------------- | ------------------------------------------------------------------- | ----------------------------------------------------- |
| DSZ14DRS | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| DSZ14WDRS | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| F2L14 | RS485-Bus-Aktor 2-Stufen-Lüftungsrelais | eigenständiges Modul |
| F3Z14D | RS485-Bus-Stromzähler-Sammler | EEP: A5-12-01 |
| F4HK14 | 4-Kanal-Heiz-Kühl-Relais | eigenständiges Modul |
| F4T65 | Funksensoren batterie-/leitungslos | EEP: F6-02-01 |
| FABH65S | Außen-Bewegungs-Helligkeitssensor | eigenständiges Modul |
| FADS60-230V | Funkaktor für Außen-Dämmerungssensor | eigenständiges Modul |
| FAE14LPR | Einzelraumregelung Heizen/Kühlen für 2 Zonen | eigenständiges Modul |
| FAE14SSR | Einzelraumregelung Heizen/Kühlen für 2 Zonen mit Solid-State-Relais | eigenständiges Modul |
| FAFT60 | Außen-Feuchte-Temperatursensor | eigenständiges Modul |
| FAH60 | Außen-Helligkeitssensor | eigenständiges Modul |
| FAH60B | Außen-Helligkeitssensor | eigenständiges Modul, EEP: A5-06-01 |
| FAH63 | Außen-Helligkeitssensor | eigenständiges Modul |
| FAH65S | Außen-Helligkeitssensor | eigenständiges Modul |
| FASM60 | Funk-Außen-Sendemodul | EEP: F6-02-01 |
| FBH65B | Bewegungs-Helligkeitssensor | eigenständiges Modul |
| FBH65S | Bewegungs-Helligkeitssensor | eigenständiges Modul |
| FBH65TFB | Bewegungs-Helligkeitssensor | eigenständiges Modul |
| FCO2TF65 | CO2-Sensor | EEP: A5-09-04 |
| FD62NP-230V | Funk-Universal-Dimmaktor ohne N-Anschluss | eigenständiges Modul |
| FD62NPN-230V | Funk-Universal-Dimmaktor | eigenständiges Modul |
| FFR14 | RS485-Bus-Aktor Feldfreischalter | eigenständiges Modul |
| FFR61-230V | Feldfreischalter | eigenständiges Modul |
| FHF | Funksensor Fenstergriff | EEP: F6-10-00 |
| FHK14 | Funkaktor für Heiz-Kühl-Relais | eigenständiges Modul |
| FHK61SSR-230V | Funkaktor für Heiz-Kühl-Relais | eigenständiges Modul |
| FHK61U-230V | Funkaktor für Heizrelais | eigenständiges Modul |
| FIFT65S | Innen-Feuchte-Temperatursensor | eigenständiges Modul |
| FIH65S | Außen-Helligkeitssensor | eigenständiges Modul |
| FIH65B | Innen-Helligkeitssensor | EEP: A5-06-02 |
| FIUS65 | Funk-Innen-Unterputz-Signalgeber | eigenständiges Modul |
| FJ62/12-36V DC | Funk-Jalousie- und Rollladen-Aktor | eigenständiges Modul |
| FJ62NP-230V | Funk-Jalousie- und Rollladen-Aktor | eigenständiges Modul |
| FKC | Funk-Kartenschalter | eigenständiges Modul |
| FKF | Funk-Kartenschalter | eigenständiges Modul |
| FL62-230V | Funk-Lichtaktor 10A/250V AC | eigenständiges Modul |
| FL62NP-230V | Funk-Lichtaktor 10A/250V AC | eigenständiges Modul |
| FLC61-230V | Funk-Licht-Controller | eigenständiges Modul |
| FMS14 | RS485-Bus-Aktor Multifunktions-Stromstoß-Schaltrelais | eigenständiges Modul |
| FMS61NP-230V | Funkaktor Multifunktions-Stromstoßschalter | eigenständiges Modul |
| FMZ14 | RS485-Bus-Aktor Multifunktions-Zeitrelais | eigenständiges Modul |
| FMZ61-230V | Funkaktor Multifunktions-Zeitrelais | eigenständiges Modul |
| FR62-230V | Funk-Relaisaktor 10 A/250 V AC | eigenständiges Modul |
| FR62NP-230V | Funk-Relaisaktor 10 A/250 V AC | eigenständiges Modul |
| FRGBW71L | Dimmaktor | eigenständiges Modul |
| FRW | Funksensor Rauchwarnmelder | eigenständiges Modul |
| FSB14 | Aktor für Beschattungselemente und Rollladen | eigenständiges Modul |
| FSB61 | Funkaktor für Beschattungselemente und Rollladen | eigenständiges Modul |
| FSB71 | Funkaktor für Beschattungselemente und Rollladen | eigenständiges Modul |
| FSDG14 | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| FSG14/1-10V | Dimmaktor | eigenständiges Modul |
| FSG71/1-10V | Dimmaktor | eigenständiges Modul |
| FSM14 | Funk-Sendemodul | EEP: F6-02-01 |
| FSM60B | 4-Kanal Eingang | EEP: A5-30-03 |
| FSM61 | Funk-2fach-Sendemodul | EEP: F6-01-01 |
| FSR14SSR | RS485-Bus-Aktor 2-Kanal-Stromstoß-Schaltrelais geräuschlos | eigenständiges Modul |
| FSR14-2x | RS485-Bus-Aktor 2-Kanal-Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR14-4x | RS485-Bus-Aktor 4-Kanal-Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR61-230V | Funkaktor für Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR61/8-24V | Funkaktor für Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR61LN-230V | Funkaktor für Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR61NP-230V | Funkaktor für Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR61VA | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| FSR61VA-10A | Funkaktor für 10A-Stromstoß-Schaltrelais | eigenständiges Modul |
| FSR71 | Funkaktor für 2-Kanal-Stromstoß-Schaltrelais | eigenständiges Modul |
| FSS12 | Funk-Stromzähler-Sendemodul | EEP: A5-12-01 |
| FSSA-230V | Funkaktor Steckdosen-Schaltaktor | eigenständiges Modul |
| FSU14 | RS485-Bus-Display-Schaltuhr | EEP: A5-13-04 |
| FSU65D | Funksensor Schaltuhr mit Display | EEP: F6-01-01 |
| FSUD-230V | Dimmaktor | eigenständiges Modul |
| FSVA-230V | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| FT-FTSB | Tipp-Funk Feuchte-Temperatursensor | EEP: A5-04-02 |
| FT4F | Funksensor Flächen-Funktaster | EEP: F6-02-01 |
| FT55 | Funksensor Flächen-Funktaster | EEP: F6-02-01 |
| FTF65S | Temperatur-Sensor | EEP: A5-02-05 |
| FTK | Funk-Fenster-Türkontakt | EEP: D5-00-01 |
| FTKB | Funk-Fenster-Türkontakt | EEP: D5-00-01 |
| FTKE | Funk-Fenster-Türkontakt | EEP: F6-10-00 |
| FTN14 | RS485-Bus-Aktor Treppenlicht-Nachlaufschalter | eigenständiges Modul |
| FTN61NP-230V | Funkaktor Treppenlicht-Nachlaufschalter | eigenständiges Modul |
| FTR65DS | Funksensor Temperatur-Regler | eigenständiges Modul |
| FTR65HS | Funksensor Temperatur-Regler | eigenständiges Modul |
| FTR78S | Funk-Temperatur-Regler mit Drehrad | EEP: A5-10-03 |
| FUD14 | Dimmaktor | eigenständiges Modul |
| FUD14-800W | Dimmaktor | eigenständiges Modul |
| FUD61NP | Dimmaktor | eigenständiges Modul |
| FUD61NPN | Dimmaktor | eigenständiges Modul |
| FUD70S-230V | Dimmaktor | eigenständiges Modul |
| FUD71 | Dimmaktor | eigenständiges Modul |
| FUTH55D | Funksensor Uhren-Thermo-Hygrostat | eigenständiges Modul |
| FUTH65D | Funksensor Uhren-Thermo-Hygrostat | eigenständiges Modul |
| FWS61 | Funk-Wetterdaten-Sendemodul | EEP: A5-13-01, A5-13-02 |
| FWWKW71L | PWM-Dimmschalter für LED | eigenständiges Modul |
| FWZ12 | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| FWZ14 | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| FWZ61 | Funk-Wechselstromzähler-Sendemodul | EEP: A5-12-01 |
| FZK14 | RS485-Bus-Aktor Zeitrelais für Kartenschalter/Rauchwarnmelder | eigenständiges Modul |
| FZK61NP-230V | Funkaktor für Zeitrelais mit Kartenschalter/Rauchwarnmelder | eigenständiges Modul |
| FZS | Funksensor Zugschalter | eigenständiges Modul |
| FMMS44SB | Funk-Mini-Multisensor | EEP: D2-14-41 |
##### Hoppe
| Produkt | Beschreibung | EEP Nummer (Siehe EEP Liste unten) |
| ----------- | -------------------------------------------- | ----------------------------------------------------- |
| FHF | Fenstergriff | F6-10-00 |
| SecuSignal | eFenstergriff Amsterdam E0400/FR-408 F69 | F6-10-00 |
| SecuSignal | eFenstergriff Atlanta 0530S/FR-408 100 Nm F9 | F6-10-00 |
| SecuSignal | eFenstergriff Toulon E0400/FR-408 F69 | F6-10-00 |
| ConnectHome | eFenstergriff Tokyo | F6-10-00 |
| ConnectHome | eFenstergriff New York | F6-10-00 |
##### HORA
| Produkt | Beschreibung |
| ------------- | ------------ |
| SmartDrive MX | Stellantrieb |
##### Kieback & Peter
| Produkt | Beschreibung |
| ------- | ----------------- |
| MD15 | Kleinstellantrieb |
##### Maco
| Produkt | Beschreibung | EEP Nummer (Siehe EEP Liste unten) |
| -------------------------- | ------------------ | ----------------------------------------------------- |
| Smart Ready Sensor eTRONIC | Tür-/Fenstersensor | EEP: A5-14-01 |
##### NodOn
| Produkt | Beschreibung | EEP Nummer (Siehe EEP Liste unten) |
| ----------- | ---------------------------------------------- | ----------------------------------------------------- |
| ASP-2-1-00 | Smart Plug | EEP: D2-01-0A |
| ASP-2-1-01 | Smart Plug Metering | EEP: D2-01-0B |
| ASP-2-1-10 | Smart Plug | EEP: D2-01-0A |
| ASP-2-1-11 | Smart Plug Metering | EEP: D2-01-0B |
| SIN-2-1-01 | In-wall Multifunction Relay Switch 1-Channel | EEP: D2-01-0F |
| SIN-2-2-01 | In-wall ON/OFF Lighting Relay Switch 2-Channel | EEP: D2-01-0B |
| SIN-2-RS-01 | Roller Shutter Relay Switch | EEP: D2-05-00 |
##### OPUS
| Produkt | Beschreibung | EEP Nummer (Siehe EEP Liste unten) |
| ------------ | ------------------------------------------------------------------ | ----------------------------------------------------- |
| 514.441 | 55 Wandsender-Modul Standard | EEP: F6-02-01 |
| 561.150.9052 | Temperatursensor (2 Tasten) | EEP: A5-10-12 |
| 561.150.9069 | Temperatursensor (4 Tasten) | EEP: A5-10-22 |
| 563.010-C* | Bridge 1 Kanal | EEP: D2-01-01 |
| 563.014-C* | Bridge 1 Kanal, 16A | EEP: D2-01-01 |
| 563.020-C* | Bridge 2 Kanal | EEP: D2-01-11 |
| 563.031-C* | Bridge Rollladen / Jalousie | EEP: D2-05-02 |
| 563.035-C* | Bridge Dimmer | EEP: D2-01-03 |
| 563.051-C | Smart Motion Sensor (Licht) | EEP: F6-02-01 |
| 563.052-C | Smart Motion Sensor Multifunktion | EEP: F6-02-01 |
| 563.053 | Smart Motion Sensor Ambient Assisted Living - Bewegungsunfähigkeit | EEP: A5-07-03 |
| 563.055-C | Smart Motion Sensor (Anwesenheit) | EEP: A5-07-03 |
| 563.067-C | Wassermelder (Sofortmelder) | EEP: F6-05-01 |
| 563.068-C | Wassermelder (Quellscheiben) | EEP: A5-30-03 |
| 563.069-C | Rauchwarnmelder | EEP: F6-05-02 |
*Benötigt Einrichtung über Opus Config Tool (563.040)
##### PEHA
| Produkt | Beschreibung |
| ------- | ------------------------------------------------------- |
| Diverse | Alle Geräte welche EEP unterstützen |
##### Thermokon
| Produkt | Beschreibung |
| ------- | ----------------------- |
| SR04 | Temperatur/Feuchtigkeit |
| SAB02 | Stellantrieb |
| Thanos | Raumbediengerät |
### EEP
Alle Geräte die folgende EEPs verwenden werden von IP-Symcon unterstützt.
##### Aktoren
| Neu | ab Version | Alt | Beschreibung |
| -------- | ---------- | -------- | ---------------------------- |
| A5-20-12 | 4.0 | 07-20-12 | Temperature Controller Input |
##### Bi-Direktional
| Neu | ab Version | Alt | Beschreibung |
| -------- | ---------- | -------- | ----------------------------------------------------------------------------------- |
| A5-20-01 | 4.0 | 07-20-01 | Battery Powered Actuator |
| D2-01-00 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-01 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-02 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-03 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-04 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-05 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-06 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-07 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-08 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-09 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-0A | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-0B | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-0C | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-0D | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-0E | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-0F | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-10 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-11 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-12 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-13 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-01-14 | 4.3 | | Electronic switches and dimmer with Energy Measurement and Local Content |
| D2-03-00 | 5.5 | | Light, Switching + Blind Control Type 0x00 |
| D2-03-0A | 5.5 | | Push Button – Single Button |
| D2-03-10 | 5.5 | | Mechanical Handle |
| D2-05-00 | 5.3 | | Blinds Control for Position/Angle Type 0x00 |
| D2-05-01 | 5.3 | | Blinds Control for Position/Angle Type 0x01 |
| D2-05-02 | 5.3 | | Blinds Control for Position/Angle Type 0x02 |
| D2-06-01 | 4.3 | | Multisensor Window Handle - Alarm, Position Sensor, Vacation Mode, Optional Sensors |
| D2-07-00 | 5.5 | | Locking Systems Control - Mortise lock |
| D2-11-01 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x01 |
| D2-11-02 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x02 |
| D2-11-03 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x03 |
| D2-11-04 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x04 |
| D2-11-05 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x05 |
| D2-11-06 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x06 |
| D2-11-07 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x07 |
| D2-11-08 | 5.3 | | Room Operating Panel (BI-DIR) Type 0x08 |
| D2-15-00 | 5.5 | | People Activity Counter |
| D2-A0-01 | 5.5 | | Valve Control (BI-DIR) |
##### Sensoren
| Neu | ab Version | Alt | Beschreibung |
| -------- | ---------- | -------- | --------------------------------------------------------------------------------------- |
| A5-02-01 | 4.0 | 07-02-01 | Temperature Sensor Range -40°C to 0°C |
| A5-02-02 | 4.0 | 07-02-02 | Temperature Sensor Range -30°C to +10°C |
| A5-02-03 | 4.0 | 07-02-03 | Temperature Sensor Range -20°C to +20°C |
| A5-02-04 | 4.0 | 07-02-04 | Temperature Sensor Range -10°C to +30°C |
| A5-02-05 | 4.0 | 07-02-05 | Temperature Sensor Range 0°C to +40°C |
| A5-02-06 | 4.0 | 07-02-06 | Temperature Sensor Range +10°C to +50°C |
| A5-02-07 | 4.0 | 07-02-07 | Temperature Sensor Range +20°C to +60°C |
| A5-02-08 | 4.0 | 07-02-08 | Temperature Sensor Range +30°C to +70°C |
| A5-02-09 | 4.0 | 07-02-09 | Temperature Sensor Range +40°C to +80°C |
| A5-02-0A | 4.0 | 07-02-0A | Temperature Sensor Range +50°C to +90°C |
| A5-02-0B | 4.0 | 07-02-0B | Temperature Sensor Range +60°C to +100°C |
| A5-02-10 | 4.0 | 07-02-10 | Temperature Sensor Range -60°C to +20°C |
| A5-02-11 | 4.0 | 07-02-11 | Temperature Sensor Range -50°C to +30°C |
| A5-02-12 | 4.0 | 07-02-12 | Temperature Sensor Range -40°C to +40°C |
| A5-02-13 | 4.0 | 07-02-13 | Temperature Sensor Range -30°C to +50°C |
| A5-02-14 | 4.0 | 07-02-14 | Temperature Sensor Range -20°C to +60°C |
| A5-02-15 | 4.0 | 07-02-15 | Temperature Sensor Range -10°C to +70°C |
| A5-02-16 | 4.0 | 07-02-16 | Temperature Sensor Range 0°C to +80°C |
| A5-02-17 | 4.0 | 07-02-17 | Temperature Sensor Range +10°C to +90°C |
| A5-02-18 | 4.0 | 07-02-18 | Temperature Sensor Range +20°C to +100°C |
| A5-02-19 | 4.0 | 07-02-19 | Temperature Sensor Range +30°C to +110°C |
| A5-02-1A | 4.0 | 07-02-1A | Temperature Sensor Range +40°C to +120°C |
| A5-02-1B | 4.0 | 07-02-1B | Temperature Sensor Range +50°C to +130°C |
| A5-02-20 | 4.0 | 07-02-20 | 10 Bit Temperature Sensor Range -10°C to +41.2°C |
| A5-02-30 | 4.0 | 07-02-30 | 10 Bit Temperature Sensor Range -40°C to +62.3°C |
| A5-04-01 | 4.0 | 07-04-01 | Range 0°C to +40°C and 0% to 100% |
| A5-04-02 | 4.1 | 07-04-02 | Range -20°C to +60°C and 0% to 100% |
| A5-04-03 | 4.1 | 07-04-03 | Range -20°C to +60°C 10bit-measurement and 0% to 100% |
| A5-04-03 | 5.3 | 07-04-03 | Temperature and Humidity Sensor |
| A5-06-01 | 4.0 | 07-06-01 | Range 300lx to 60.000lx |
| A5-06-02 | 4.0 | 07-06-02 | Range 0lx to 1.020lx |
| A5-06-03 | 4.0 | 07-06-03 | 10-bit measurement (1-Lux resolution) with range 0lx to 1000lx |
| A5-07-01 | 4.0 | 07-07-01 | Occupancy with Supply voltage monitor |
| A5-07-01 | 5.3 | 07-07-01 | gN-Deckenbewegungsmelder 360° |
| A5-07-01 | 5.3 | 07-07-01 | Desk Occupancy |
| A5-07-02 | 4.0 | 07-07-02 | Occupancy with Supply voltage monitor |
| A5-07-03 | 4.0 | 07-07-03 | Occupancy with Supply voltage monitor and 10-bit illumination measurement |
| A5-08-01 | 4.0 | 07-08-01 | Range 0lx to 510lx |
| A5-08-01 | 4.0 | 07-08-01 | 0°C to +51°C and Occupancy Button |
| A5-08-02 | 4.0 | 07-08-02 | Range 0lx to 1020lx |
| A5-08-02 | 4.0 | 07-08-02 | 0°C to +51°C and Occupancy Button |
| A5-08-03 | 4.0 | 07-08-03 | Range 0lx to 1530lx |
| A5-08-03 | 4.0 | 07-08-03 | -30°C to +50°C and Occupancy Button |
| A5-09-01 | 4.0 | 07-09-01 | CO Sensor (not in use) |
| A5-09-02 | 4.0 | 07-09-02 | CO-Sensor 0 ppm to 1020 ppm |
| A5-09-04 | 4.0 | 07-09-04 | CO2 Sensor |
| A5-09-04 | 5.3 | 07-09-04 | CO2, Temperature and Humidity Sensor |
| A5-09-05 | 4.0 | 07-09-05 | VOC Sensor |
| A5-09-06 | 4.0 | 07-09-06 | Radon |
| A5-09-07 | 4.0 | 07-09-07 | Particles |
| A5-09-08 | 4.0 | 07-09-08 | Pure CO2 Sensor |
| A5-10-01 | 4.0 | 07-10-01 | Temperature Sensor |
| A5-10-01 | 4.0 | 07-10-01 | Set Point |
| A5-10-01 | 4.0 | 07-10-01 | Fan Speed and Occupancy Control |
| A5-10-02 | 4.0 | 07-10-02 | Temperature Sensor |
| A5-10-02 | 4.0 | 07-10-02 | Set Point |
| A5-10-02 | 4.0 | 07-10-02 | Fan Speed and Day/Night Control |
| A5-10-03 | 4.0 | 07-10-03 | Temperature Sensor |
| A5-10-03 | 4.0 | 07-10-03 | Set Point Control |
| A5-10-04 | 4.0 | 07-10-04 | Temperature Sensor |
| A5-10-04 | 4.0 | 07-10-04 | Set Point and Fan Speed Control |
| A5-10-05 | 4.0 | 07-10-05 | Temperature Sensor |
| A5-10-05 | 4.0 | 07-10-05 | Set Point and Occupancy Control |
| A5-10-06 | 4.0 | 07-10-06 | Temperature Sensor |
| A5-10-06 | 4.0 | 07-10-06 | Set Point and Day/Night Control |
| A5-10-07 | 4.0 | 07-10-07 | Temperature Sensor |
| A5-10-07 | 4.0 | 07-10-07 | Fan Speed Control |
| A5-10-08 | 4.0 | 07-10-08 | Temperature Sensor |
| A5-10-08 | 4.0 | 07-10-08 | Fan Speed and Occupancy Control |
| A5-10-09 | 4.0 | 07-10-09 | Temperature Sensor |
| A5-10-09 | 4.0 | 07-10-09 | Fan Speed and Day/Night Control |
| A5-10-0A | 4.0 | 07-10-0A | Temperature Sensor |
| A5-10-0A | 4.0 | 07-10-0A | Set Point Adjust and Single Input Contact |
| A5-10-0B | 4.0 | 07-10-0B | Temperature Sensor and Single Input Contact |
| A5-10-0C | 4.0 | 07-10-0C | Temperature Sensor and Occupancy Control |
| A5-10-0D | 4.0 | 07-10-0D | Temperature Sensor and Day/Night Control |
| A5-10-10 | 4.0 | 07-10-10 | Temperature and Humidity Sensor |
| A5-10-10 | 4.0 | 07-10-10 | Set Point and Occupancy Control |
| A5-10-11 | 4.0 | 07-10-11 | Temperature and Humidity Sensor |
| A5-10-11 | 4.0 | 07-10-11 | Set Point and Day/Night Control |
| A5-10-12 | 4.0 | 07-10-12 | Temperature and Humidity Sensor and Set Point |
| A5-10-13 | 4.0 | 07-10-13 | Temperature and Humidity Sensor |
| A5-10-13 | 4.0 | 07-10-13 | Occupancy Control |
| A5-10-14 | 4.0 | 07-10-14 | Temperature and Humidity Sensor |
| A5-10-14 | 4.0 | 07-10-14 | Day/Night Control |
| A5-10-15 | 4.0 | 07-10-15 | 10 Bit Temperature Sensor |
| A5-10-15 | 4.0 | 07-10-15 | 6 bit Set Point Control |
| A5-10-16 | 4.0 | 07-10-16 | 10 Bit Temperature Sensor |
| A5-10-16 | 4.0 | 07-10-16 | 6 bit Set Point Control;Occupancy Control |
| A5-10-17 | 4.0 | 07-10-17 | 10 Bit Temperature Sensor |
| A5-10-17 | 4.0 | 07-10-17 | Occupancy Control |
| A5-10-18 | 4.0 | 07-10-18 | Illumination |
| A5-10-18 | 4.0 | 07-10-18 | Temperature Set Point |
| A5-10-18 | 4.0 | 07-10-18 | Temperature Sensor |
| A5-10-18 | 4.0 | 07-10-18 | Fan Speed and Occupancy Control |
| A5-10-19 | 4.0 | 07-10-19 | Humidity |
| A5-10-19 | 4.0 | 07-10-19 | Temperature Set Point |
| A5-10-19 | 4.0 | 07-10-19 | Temperature Sensor |
| A5-10-19 | 4.0 | 07-10-19 | Fan Speed and Occupancy Control |
| A5-10-1A | 4.0 | 07-10-1A | Supply voltage monitor |
| A5-10-1A | 4.0 | 07-10-1A | Temperature Set Point |
| A5-10-1A | 4.0 | 07-10-1A | Temperature Sensor |
| A5-10-1A | 4.0 | 07-10-1A | Fan Speed and Occupancy Control |
| A5-10-1B | 4.0 | 07-10-1B | Supply Voltage Monitor |
| A5-10-1B | 4.0 | 07-10-1B | Illumination |
| A5-10-1B | 4.0 | 07-10-1B | Temperature Sensor |
| A5-10-1B | 4.0 | 07-10-1B | Fan Speed and Occupancy Control |
| A5-10-1C | 4.0 | 07-10-1C | Illumination |
| A5-10-1C | 4.0 | 07-10-1C | Illumination Set Point |
| A5-10-1C | 4.0 | 07-10-1C | Temperature Sensor |
| A5-10-1C | 4.0 | 07-10-1C | Fan Speed and Occupancy Control |
| A5-10-1D | 4.0 | 07-10-1D | Humidity |
| A5-10-1D | 4.0 | 07-10-1D | Humidity Set Point |
| A5-10-1D | 4.0 | 07-10-1D | Temperature Sensor |
| A5-10-1D | 4.0 | 07-10-1D | Fan Speed and Occupancy Control |
| A5-10-1E | 5.5 | 07-10-1E | Temperature Sensor, Supply Voltage, Light, Fan Speed, and Occupancy Control |
| A5-10-1F | 4.0 | 07-10-1F | Temperature Sensor |
| A5-10-1F | 4.0 | 07-10-1F | Set Point |
| A5-10-1F | 4.0 | 07-10-1F | Fan Speed |
| A5-10-1F | 4.0 | 07-10-1F | Occupancy and Unoccupancy Control |
| A5-10-20 | 4.0 | 07-10-20 | Temperature and Set Point with Special Heating States |
| A5-10-21 | 4.0 | 07-10-21 | Temperature |
| A5-10-21 | 4.0 | 07-10-21 | Humidity and Set Point with Special Heating States |
| A5-10-22 | 5.5 | 07-10-22 | Temperature Sensor, Set Point, Humidity, and Fan Speed |
| A5-10-23 | 5.5 | 07-10-23 | Temperature Sensor, Set Point, Humidity, Fan Speed, and Occupancy Control |
| A5-11-01 | 4.0 | 07-11-01 | Lighting Controller |
| A5-11-02 | 4.0 | 07-11-02 | Temperature Controller Output |
| A5-11-03 | 4.0 | 07-11-03 | Blind Status |
| A5-11-04 | 4.0 | 07-11-04 | Extended Lighting Status |
| A5-12-00 | 4.0 | 07-12-00 | Counter |
| A5-12-00 | 5.3 | 07-12-00 | Operations Counting |
| A5-12-01 | 4.0 | 07-12-01 | Electricity |
| A5-12-02 | 4.0 | 07-12-02 | Gas |
| A5-12-03 | 4.0 | 07-12-03 | Water |
| A5-13-01 | 4.0 | 07-13-01 | Weather Station |
| A5-13-02 | 4.0 | 07-13-02 | Sun Intensity |
| A5-13-03 | 4.0 | 07-13-03 | Date Exchange |
| A5-13-04 | 4.0 | 07-13-04 | Time and Day Exchange |
| A5-13-05 | 4.0 | 07-13-05 | Direction Exchange |
| A5-14-01 | 4.0 | 07-14-01 | Single Input Contact (Window/Door) |
| A5-14-01 | 4.0 | 07-14-01 | Supply voltage monitor |
| A5-14-02 | 4.0 | 07-14-02 | Single Input Contact (Window/Door) |
| A5-14-02 | 4.0 | 07-14-02 | Supply voltage monitor and Illumination |
| A5-14-03 | 4.0 | 07-14-03 | Single Input Contact (Window/Door) |
| A5-14-03 | 4.0 | 07-14-03 | Supply voltage monitor and Vibration |
| A5-14-04 | 4.0 | 07-14-04 | Single Input Contact (Window/Door) |
| A5-14-04 | 4.0 | 07-14-04 | Supply voltage monitor |
| A5-14-04 | 4.0 | 07-14-04 | Vibration and Illumination |
| A5-14-05 | 4.0 | 07-14-05 | Vibration/Tilt |
| A5-14-05 | 4.0 | 07-14-05 | Supply voltage monitor |
| A5-14-05 | 5.3 | 07-14-05 | Chair Occupancy Solar Sensor |
| A5-14-06 | 4.0 | 07-14-06 | Vibration/Tilt |
| A5-14-06 | 4.0 | 07-14-06 | Illumination and Supply voltage monitor |
| A5-14-07 | 5.0 | 07-14-07 | Dual door contact with States (Open/Closed/Locked/Unlocked) |
| A5-14-07 | 5.0 | 07-14-07 | Supply voltage monitor |
| A5-14-08 | 5.0 | 07-14-08 | Dual door contact with States (Open/Closed/Locked/Unlocked) |
| A5-14-08 | 5.0 | 07-14-08 | Supply voltage monitor and Vibration detection |
| A5-14-09 | 5.0 | 07-14-09 | Window/Door Sensor with States (Open/Closed/Tilt) |
| A5-14-09 | 5.0 | 07-14-09 | Supply voltage monitor |
| A5-14-0A | 5.0 | 07-14-0A | Window/Door Sensor with States (Open/Closed/Tilt) |
| A5-14-0A | 5.0 | 07-14-0A | Supply voltage monitor and Vibration detection |
| A5-20-01 | 5.3 | 07-14-01 | Heating Valve Controller |
| A5-20-06 | 5.5 | 07-20-06 | Heating Valve Controller |
| A5-30-01 | 4.0 | 07-30-01 | Single Input Contact |
| A5-30-01 | 4.0 | 07-30-01 | Battery Monitor |
| A5-30-02 | 4.0 | 07-30-02 | Single Input Contact |
| A5-30-03 | 4.0 | 07-30-03 | 4 Digital Inputs |
| A5-30-03 | 4.0 | 07-30-03 | Wake and Temperature |
| A5-30-04 | 4.0 | 07-30-04 | 3 Digital Inputs |
| A5-30-04 | 4.0 | 07-30-04 | 1 Digital Input 8 Bits |
| A5-37-01 | 4.0 | 07-37-01 | Demand Response |
| A5-38-08 | 4.0 | 07-38-08 | Gateway |
| A5-38-09 | 4.0 | 07-38-09 | Extended Lighting-Control |
| D2-14-30 | 6.0 | | Sensor for Smoke, Air quality, Hygrothermal comfort, Temperature and Humidity |
| D2-14-41 | 6.4 | | Sensor for Humidity, Illumination, Temperature, Dissolved oxegen, Contact, Acceleration |
| D2-15-00 | 5.4 | | People Activity Counter |
| D2-32-00 | 4.3 | | A.C. Current Clamp |
| D2-32-00 | 5.3 | | Single Channel CT Clamp |
| D2-32-01 | 4.3 | | A.C. Current Clamp |
| D2-32-02 | 4.3 | | A.C. Current Clamp |
| D5-00-01 | 4.0 | 06-00-01 | Single Input Contact |
| D5-00-01 | 5.3 | 06-00-01 | Magnet Contact |
| F6-01-01 | 5.5 | 05-01-01 | Push Button |
| F6-02-01 | 4.0 | 05-02-01 | Light and Blind Control - Application Style 1 |
| F6-02-02 | 4.0 | 05-02-02 | Light and Blind Control - Application Style 2 |
| F6-02-03 | 4.0 | 05-02-03 | Light Control - Application Style 1 |
| F6-02-04 | 4.0 | 05-02-04 | Light and blind control ERP2 |
| F6-03-01 | 4.0 | 05-03-01 | Light and Blind Control - Application Style 1 |
| F6-03-02 | 4.0 | 05-03-02 | Light and Blind Control - Application Style 2 |
| F6-04-01 | 4.0 | 05-04-01 | Key Card Activated Switch |
| F6-04-02 | 4.0 | 05-04-02 | Key Card Activated Switch ERP2 |
| F6-05-00 | 5.0 | 05-05-00 | Wind Speed Threshold Detector |
| F6-05-01 | 4.0 | 05-05-01 | Liquid Leakage Sensor (mechanic harvester) |
| F6-05-02 | 5.0 | 05-05-02 | Smoke Detector |
| F6-10-00 | 4.1 | 05-10-00 | Window Contact Sensor |
| F6-10-01 | 5.5 | 05-10-01 | Window Handle ERP2 |
---
# FHZ1X00PC
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/
Der FHZ1X00PC ist ein Adapter, welcher mit ELV-Geräten (FS20, HMS und FHT) via Funk kommuniziert und für IP-Symcon bereitstellt. Eine Verbindung mit IP-Symcon wird via USB hergestellt.
[Unterstütze Komponenten](https://www.symcon.de/de/llms/modules/fhz1x00pc.md)
### Beschreibung
Die FHZ1X00PC (WLAN) ist eine von Contronics entwickelte und von ELV vertriebene Schnittstelle, die es dem Endanwender ermöglicht, mit FS20, HMS und FHT Komponenten über den PC zu kommunizieren. Ab der FHZ1300PC wird außerdem der Kombi-Wettersensor KS300 unterstützt. Die nur über Contronics erhältliche FHZ1350PC bietet außerdem die Möglichkeit, auf das Telefonwählgerät der ELV zuzugreifen. Diese Funktion wird von IP-Symcon nicht unterstützt.
### Installation
* Nachdem das Gerät an den PC angeschlossen wurde, müssen die Treiber installiert werden. Diesen können gegebenenfalls im Servicebereich des Herstellers ELV heruntergeladen werden.
### Tipps & Tricks
* Die FHZ ist mit allen gängigen USB->LAN Umwandlern kompatibel. (z.B. von Silex, Lantronix)
* Information zum Umbau auf LAN oder zur Reichweitenerhöhung können im Forum gefunden werden
* Die FHZ1300PC WLAN wird in IP-Symcon nicht offiziell unterstützt. Um diese in IP-Symcon verwenden zu können, muss der dort verwendete Verschlüsselungsalgorithmus deaktiviert werden.
Die nötigen Schritte können hier nachgelesen werden:
[http://www.thinkwiki.org/wiki/User:Akw/FHZ](http://www.thinkwiki.org/wiki/User:Akw/FHZ)
### Problemlösung
In der Konfiguration steht: “Eine übergeordnete Konfiguration scheint fehlerhaft zu sein"
* Durch Klicken auf die Meldung und aktivieren der entsprechenden Treiber.
Es werden keine Daten empfangen/gesendet
* Überprüfen, ob die FHZ am System angeschlossen ist. (Hardware Manager)
* Überprüfen, ob bei Senden/Empfangen die Rote LED an der FHZ blinkt.
* Falls nicht, hat die FHZ keinen Strom oder wurde noch nicht im System eingerichtet. Überprüfen, ob der FTDI Treiber richtig aktiviert wurde. (s.o.)
Geräte werden nur sporadisch geschaltet (FS20)
* Ist das Gerät zu weit entfernt?
* Die FHZ woanders platzieren oder das System um eine weitere FHZ erweitern.
* Gibt es Störsender in der Nähe?
## FHT
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fht/
Das Funk-Heizungssystem FHT dient dazu, um durch intelligente Regelung der Heizungsventile Energie zu sparen und flexibel zu verschiedenen Zeiten ein angenehmes Raumklima zu schaffen.
> **Hinweis:** Nur FHT8b/FHT80b können mit der FHZ1000PC Professional, FHZ1300PC oder FHZ1300PC WLAN verbunden werden. Die wesentlich günstigeren FHT8R sind nur für den Einzel-Betrieb geeignet und können nicht mit der FHZ verbunden werden.
> **Achtung:** Wochen- und Tagesprogramme werden von IP-Symcon nicht an den FHT übertragen. Dieses Feature wurde schon des Öfteren gewünscht, wird es aber definitiv __nicht__ geben.
### Konfiguration
#### FHT an FHZ anmelden
* Die Taste “PROG” halten, bis “Sond” im Display erscheint.
* Das Stellrad drehen, bis “Code” erscheint. Es muss mit der Taste “Funktion" bestätigen werden.
* Ein Zahlenpaar (00-99) als Code auswählen.
* Durch Drücken der “PROG” Taste wird diese Auswahl bestätigt.
* Es muss die “PROG” Taste erneut gedrückt werden.
#### FHT in IP-Symcon einrichten:
* FHT Instanz erstellen. Siehe [Geräte einbinden](https://www.symcon.de/de/llms/how-to.md)
* Den o.g. Code in der Eigenschaft-Seite angeben und mit “Übernehmen” bestätigen.
#### Falls der Raumregler eventuell schon an einer Zentrale angemeldet war, muss diese Anmeldung gelöscht werden.
* “PROG” gedrückt halten bis “Sond” im Display erscheint.
* Das Stellrad drehen, bis “Cent” erscheint und “PROG” drücken.
* Das Stellrad drehen, bis “nA ” erscheint und “PROG” drücken.
* Zur Sicherheit sollte ca. 15 Minuten gewartet werden bis der Abmeldevorgang abgeschlossen wurde.
* Den oben beschriebenen Anmeldevorgang durchführen.
> **Hinweis:** Durch die Option “Emuliere Status” wird der Wert der Soll-Variable sofort nach Absenden des Befehls aktualisiert, ohne das eigentliche Feedback vom FHT abzuwarten.
> **Achtung:** __Nach dem Anmeldevorgang muss mindestens ein Befehl (z.B. Soll-Temperatur setzen) an den FHT gesendet werden, um die Kommunikation zu starten.__
### Verfügbare Statusvariablen
| Status | Beschreibung |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| LowBattery | Zeigt an, ob der FHT eine Batteriewarnung anzeigt. Falls der Wert TRUE wird, sollte ein Batteriewechsel vorgenommen und im Anschluß den Wert manuell auf FALSE zurückgesetzt werden. |
| Window Open | Zeigt an, ob der am FHT angeschlossene Fensterkontakt ein geöffnetes Fenster meldet. TRUE = Fenster offen, FALSE = Fenster geschlossen |
| Position | Wert der Stellventils von 0%-100% |
| Temperature | Die vom FHT empfangene Ist-Temperatur |
| Target Mode | Der vom FHT emfangene Modus |
| Beim Auslesen | Die Integer Variable wird mit folgenden Werten verwendet: 0: Automatik; 1: Manuell; 2: Urlaub; 3: Party |
| Target Mode (Pending) | Der an den FHT gesendete Modus. Sobald der Funkbefehl abgesetzt werden konnte, sind “Target Mode” und “Target Mode (Pending)” identisch. |
| Target Temperature | Die vom FHT emfangene Soll-Temperatur |
| Target Temperature (Pending) | Die an den FHT gesendete Soll-Temperatur. Sobald der Funkbefehl abgesetzt werden konnte, sind “Target Temperature” und “Target Temperature (Pending)” identisch. |
## FHT_SetMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fht/fht-setmode/
`bool FHT_SetMode(int $InstanzID, int $Modus)`
sendet einen neuen Soll-Modus an den FHT
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Modus` (int): __0__ = Automatisch, __1__ = Manuell
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__0__ = Automatisch, __1__ = Manuell
**Beispiel**
```php
FHT_SetMode(12345, 1); //Auf manuellen Modus wechseln
```
## FHT_SetTemperature
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fht/fht-settemperature/
`bool FHT_SetTemperature(int $InstanzID, float $Temperatur)`
sendet eine neue Soll-Temperatur an den FHT
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Temperatur` (float): Temperaturwert in 0,5°C Schritten
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Temperaturwert in 0,5°C Schritten
**Beispiel**
```php
FHT_SetTemperature(12345, 22.5); //Auf 22.5°C stellen
```
## FS20
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fs20/
Beim Erstellen der Instanz stehen für das FS20 System folgende Möglichkeiten zur Auswahl:
| Instanzname | Verwendungszweck |
| ------------------ | --------------------------------------------------------- |
| FS20 Gerät | Steckdosen, Dimmer, Markisensteuerung, Bewegungsmelder, … |
| FS20 Fernbedienung | Mehrkanalfernbedienungen, -taster, -sender |
Falls das Gerät noch nicht konfiguriert ist, kann dies via ["Geräte einbinden"](https://www.symcon.de/de/llms/concepts.md) eingerichtet werden.
### FS20 Gerät konfigurieren

1. Der Hauscode kann per Hand eingegeben und übernommen werden. Mögliche Zeichen: 1-4
2. Der Hauscode kann von einem anderen Sender empfangen werden (z.B. von einer Fernbedienung).
3. Es kann überprüft werden, ob die angegebene Adresse bereits von einer anderen Instanz verwendet wird.
4. Wenn aktiviert, empfängt die Instanz Daten von FS20 Sendern und aktualisiert entsprechend die Statusvariable.
5. Wenn aktiviert, empfängt die Instanz Daten von FS20 Sendern, wertet die Timerdaten aus und emuliert den Zustand des Timers (z.B. AN für 30Sek).
6. Nachdem die neuen Einstellungen übernommen wurden, können diese getestet werden, indem An/Aus-Telegramme verschickt werden. Der Wert im Feld Dauer wird beim Übermitteln auf die nächste mögliche Zeit, die das FS20 System auswerten kann, gerundet.
7. Nachdem die neuen Einstellungen übernommen wurden, können FS20 Empfänger (z.B. Schaltsteckdose) angelernt werden. Dazu müssen diese in den “Anlernmodus” versetzt und innerhalb der nächsten 15 Sekunden durch drücken des Anlern-Buttons programmiert werden.
### FS20 Fernbedienung konfigurieren

1. Bevor die Konfiguration fortgesetzt werden kann, muss der Hauscode per Hand eingegeben werden. Mögliche Zeichen: 1-4
2. Die Liste zeigt bereits angelernte Taster der Fernbedienung.
3. Wenn die Adresse bekannt ist, kann diese auch manuell eingegeben werden. Mögliche Zeichen: 1-4
4. Wenn die Adresse unbekannt ist, kann diese von der Fernbedienung empfangen werden. Es ist zu beachten, dass der Hauscode eingegeben ist und dieser via “Übernehmen” gespeichert wurde.
### Verfügbare Statusvariablen
| Variable | Funktion |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status Variable | Zeigt den Status des Geräts an |
| Intensity Variable | Zeigt den Dimwert des Geräts in % an. Es ist zu beachten, dass intern die Werte 0-16 verwendet werden, falls die Variable in Skripten eingelesen werden. |
| Timer Variable | Die Zeit in Sekunden, die der Timer läuft. Pkt. 5 muss in der Konfiguration aktiviert sein, damit diese Variable von IP-Symcon auch ausgewertet wird. (Es wird die empfangene Gesamtzeit angezeigt – nicht die Restlaufzeit.) |
| Data Variable | Zeigt den intern empfangenen Statuscode an. |
__Verfügbare Statuscodes:__
```php
0-16 => 0% – 100%
17 => an, alter Wert (entspricht Wert 11 bei PIRI)
18 => swap
19 => dim up (Einfache Kanalzahl)
20 => dim down (Einfache Kanalzahl)
21 => dim up/down (Doppelte Kanalzahl)
24 => PIRI; aus für die Einschaltdauer, danach an
25 => PIRI; an, 100% für die Einschaltdauer, danach aus
26 => PIRI; an, alter Wert für die Einschaltdauer, danach aus
30 => PIRI; an, 100% für die Einschaltdauer, danach alter Zustand
31 => PIRI; an, danach alter Zustand für die Einschaltdauer
```
## FS20_DimDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fs20/fs20-dimdown/
`bool FS20_DimDown(int $InstanzID)`
dimmt ein FS20 Gerät eine Stufe runter
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
FS20_DimDown(12345); //Gerät runterdimmen
```
## FS20_DimUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fs20/fs20-dimup/
`bool FS20_DimUp(int $InstanzID)`
dimmt ein FS20 Gerät ein Stufe höher
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
FS20_DimUp(12345); //Gerät hochdimmen
```
## FS20_SetIntensity
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fs20/fs20-setintensity/
`bool FS20_SetIntensity(int $InstanzID, int $Intensität, int $Dauer)`
dimmt ein FS20 Gerät in einer bestimmten Zeitspanne
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): 0-16 (0=0%, 16=100%)
- `$Dauer` (int): Dauer des Dimmvorgangs
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Dauer des Dimmvorgangs
**Beispiel**
```php
FS20_SetIntensity(12345, 16, 5); //Gerät auf 100% in 5 sekunden dimmen
```
## FS20_SwitchDuration
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fs20/fs20-switchduration/
`bool FS20_SwitchDuration(int $InstanzID, bool $Status, int $Dauer)`
schaltet ein FS20 Gerät für eine bestimmte Zeit ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
- `$Dauer` (int): Ein-/Ausschaltdauer in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Ein-/Ausschaltdauer in Sekunden
**Beispiel**
```php
FS20_SwitchDuration(12345, true, 60); //Gerät für 60 sek einschalten
```
## FS20_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/fs20/fs20-switchmode/
`bool FS20_SwitchMode(int $InstanzID, bool $Status)`
schaltet ein FS20 Gerät ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
FS20_SwitchMode(12345, true); //Gerät einschalten
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/geraeteliste/
### Liste der unterstützten Geräte
__FS20 Sender und Empfänger__
Alle FS20 Sender und Empfänger
__HMS Sensoren und Aktoren__
Alle HMS-Alaram Sensoren und Aktoren
__FHT Komponenten__
FHT80B/FHT80B2 (FHT8 ist nicht kompatibel!)
## HMS
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/hms/
### Einrichten in IP-Symcon
Es muss eine HMS Instanz hinzugefügt werden ([Geräte einbinden](https://www.symcon.de/de/llms/concepts.md) ). Der Typ kann noch nachträglich auf der Konfigurationsseite geändert werden.

Nach dem "Suchen" muss das Gerät ausgewählt werden. Es wird automatisch eine Geräte-Instanz mit den passenden Variablen erstellt.
Hier anhand des Beispiels eines HMS100 TF.

## HMS_ReleaseFI
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/hms/hms-releasefi/
`bool HMS_ReleaseFI(int $InstanzID, int $Auslöseverzögerung)`
löst den FI Schalter aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Auslöseverzögerung` (int): Verzögerung in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Verzögerung in Sekunden
**Beispiel**
```php
FS20_ReleaseFI(12345, 0); //FI sofort auslösen
```
## KS300
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fhz1x00pc/ks300/
### Installation
Falls Sie Ihr Gerät noch nicht eingerichtet haben, folgen Sie bitte den Schritten auf dieser Seite: [Geräte einbinden](https://www.symcon.de/de/llms/concepts.md)
### Tipps & Tricks
Es ist bekannt, dass die FHZ1300PC vom KS300 nur unregelmäßig empfängt.
Eine Diskussion dazu kann im Forum verfolgt werden. [Link](https://community.symcon.de/t/regenerfassung-mit-ks300/15552)
---
# FS10 Wetter
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/fs10-wetter/
FS10 ist ein Funksystem, welches mit IP-Symcon über einen serielle Schnittstelle verbunden werden kann.
### Beschreibung
Das __FS10 Funk-System__ ist das Vorgängersystem vom FS20-System und arbeitet im 433 MHz Bereich.
Sämtliche Geräte sind nicht mehr im freien Handel verfügbar.
Die interne Codierung ermöglicht bis zu 392 Codevarianten. Um die FS10 Wetter-Komponenten der WS2000er Serie mit IP-Symcon auswerten zu können, benötiget man den PC-Wettersensor der Firma ELV. Dieser wird einfach an die serielle Schnittstelle angeschlossen und somit können leicht bestehende Wetterkomponenten mit in das Haussteuerungssystem integriert werden. Zur Erhöhung der Empfangsqualität empfiehlt sich der Einbau eines Superhet Empfängers.
### Installation
Für den Wetterempfänger ist keine besondere Installation nötig. Es ist nur ein Anschluss an den Seriellen Port notwendig.
### Einbindung in IP-Symcon
> **Hinweis:** Bevor die Suche gestartet werden kann, muss die übergeordnete Instanz konfiguriert werden, indem der korrekte Com Port angegeben und die Konfiguration übernommen wird. Die Einstellung von Baudrate ect. ist nicht notwendig, da dies vom System automatisch vorgenommen wird.
> **Achtung:** Der Suchdialog zeigt ein Gerät erst an, wenn Daten empfangen wurden. Bei einer Fernbedienung können die Tasten gedrückt, um einen Sendevorgang aufzurufen. Bei Temperatursensoren muss das nächste Intervall abgewartet oder die ID manuell angegeben werden.
Sobald eine ID angegeben wurde, muss die Konfiguration übernommen werden. Dadurch werden auch die passenden Status-Variablen automatisch erstellt.
---
# GARDENA smart system
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das GARDENA-Modul ermöglicht es [unterstützte Geräte](https://www.symcon.de/de/llms/modules/gardena-smart-system.md) von GARDENA smart system in IP-Symcon einzubinden.
### Einbindung in IP-Symcon
> **Hinweis:** Die Verwendung des GARDENA-Moduls erfordert eine aktivierte Verbindung zum [Connect-Dienst](https://www.symcon.de/de/llms/modules/connect-control.md), welche wiederum eine laufende Subskription erfordert.
#### GARDENA Konfigurator Instanz erstellen
Damit das GARDENA-Modul verwendet werden kann, muss dieses zuerst über den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) installiert werden. Hierfür muss der [Module Store](https://www.symcon.de/de/llms/components/management-console.md) geöffnet werden. Dieser befindet sich im oberen rechten Bereich. Über das Suchfeld kann via "Gardena smart system" das Modul Gardena smart system gefunden werden. Beim öffnen des gefundenen Modules, kann im folgenden Dialog die Installation des Moduls via "Installieren"-Knopf angestoßen werden.


Im Anschluss öffnet sich der Hinzufügendialog zum Erstellen einer Gardena Konfigurator Instanz.
Soll die Instanz manuell hinzugefügt werden muss eine [Instanz](https://www.symcon.de/de/llms/concepts.md) vom Gardena Konfigurator erstellt werden. Dazu muss zuerst der Objektbaum geöffnet werden. In diesem den Hinzufügen-Button "+" unten rechts betätigen und [Instanz](https://www.symcon.de/de/llms/concepts.md) auswählen.

Mithilfe der Schnellsuche kann der "Gardena Configurator" vom Hersteller "Gardena" gefunden werden. Der Ort sollte nicht verändert werden, der Name kann beliebig gewählt werden. Abschließend mit "OK" bestätigen.

Nach der Erstellung der Konfigurator-Instanz öffnet sich diese automatisch und kann eingerichtet werden.
#### GARDENA Konfigurator-Instanz einrichten
Bevor Geräte erstellt werden können, muss sich mit einem Klick auf Registrieren registriert werden, um IP-Symcon mit dem Husqvarna Group Konto zu verbinden.

Es muss sich mit dem Husqvarna Group Konto angemeldet werden, um IP-Symcon die nötigen Berechtigungen einzuräumen.


Daraufhin kann der "Schnittstelle Konfigurieren"-Dialog mit Weiter bestätigt werden. Nun muss noch der erstellte WebSocket Client aktiviert werden.

Jetzt öffnet sich der Konfigurator und es können alle erkannten Geräte mit einem Klick auf "Erstellen" erstellt werden.

### Problembehandlung
#### Variablen werden nicht mehr aktualisiert
Die Verbindung zum Husqvarna Dienst kann in der Gardena Cloud Instanz mit einem Klick auf 'WebSocket zurücksetzten' erneut hergestellt werden.
#### Unterstützte Geräte
* [smart Irrigation Control](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
* [smart Water Control](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
* [smart Pump](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
* [smart Sensor](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
* [smart Mower](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
* [smart Power Socket](https://www.symcon.de/de/llms/modules/gardena-smart-system.md)
## smart Irrigation Control
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/smart-irrigation-control/
_Benötigt Symcon >= 6.0_
> **Hinweis:** Da die Gardena API die in der App erstellten Zeitpläne nicht übermittelt, können Bewässerungspläne mithilfe des [Wochenplans](https://www.symcon.de/de/llms/concepts.md) und der bereitgestellten Aktionen umgesetzt werden.
### Beschreibung
Das Gerät smart Irrigation Control bietet in IP-Symcon verschieden Services, welche es zum Beispiel ermöglichen den Status des Gerätes zu erkennen oder die verschieden Ventile zu schalten.
### Services
Für jeden Service kann mit dem Konfigurator eine Instanz erstellt werden.
In der Instanzkonfiguration kann der Schalter 'Letzte Übertragung anzeigen' aktiviert werden um für jeden Wert, wenn verfügbar, eine Variable zu erstellen, welche den Zeitpunkt der letzten Datenübertragung enthält.
| Service | Beschreibung |
| --------------------------------------- | -------------------------------------------------------------- |
| Allgemein | Enthält generelle Informationen über das Gerät |
| Ventil | Repräsentiert eines der 6 Ventil der Bewässerungssteuerung |
| Hauptventil | Das Hauptventil mit dem alle Ventile geschlossen werden können |
#### Allgemein
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | --------------------------------------------------------------------- |
| Batterie Status | String | Der Status der Batterie des Gerätes (Dieses Gerät hat keine Batterie) |
| RF Link Level | Integer | Die Qualität der Funkverbindung in Prozent |
| RF Link Status | String | Der Status der Funkverbindung des Gerätes |
#### Ventil
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| ------------- | ------- | ------------------------------------------------------------------------------------- |
| Aktivität | String | Die aktuelle Aktivität des Gerätes |
| Verbleibend | Integer | Die verbleibende Zeit in Sekunden bis das Ventil geschlossen wird |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Öffnungsdauer | Integer | Die Dauer für die das Ventil manuell geöffnet werden soll |
| Aktion | String | Ermöglicht es das Ventil für eine bestimmte Öffnungsdauer zu öffnen oder zu schließen |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| ---------------- | --------------- | ----------------------------------------------------------- |
| Ventil öffnen | Dauer (Minuten) | Ermöglicht es das Ventil für eine bestimmte dauer zu öffnen |
| Ventil schließen | (keine) | Ermöglicht das Ventil zu schließen |
#### Hauptventil
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Name | Typ | Beschreibung |
| ---------- | ------ | -------------------------------- |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Aktion | String | Schließt alle Ventile |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| --------------------- | --------- | ------------------------------------------ |
| Hauptventil schließen | (keine) | Ermöglicht es das Hauptventil zu schließen |
## smart SILENO Mower
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/smart-mower/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das Gerät smart SILENO Mower bietet in IP-Symcon verschieden Services, welche es zum Beispiel ermöglichen die aktuelle Aktivität des Gerätes zu erkennen oder den Mähvorgang zu starten oder stoppen.
### Services
Für jeden Service kann mit dem Konfigurator eine Instanz erstellt werden.
In der Instanzkonfiguration kann der Schalter 'Letzte Übertragung anzeigen' aktiviert werden um für jeden Wert, wenn verfügbar, eine Variable zu erstellen, welche den Zeitpunkt der letzten Datenübertragung enthält.
| Service | Beschreibung |
| ----------------------------------- | ---------------------------------------------- |
| Allgemein | Enthält generelle Informationen über das Gerät |
| Mäher | Repräsentiert den SILENO Mäher |
#### Allgemein
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung | |
| --------------- | ------- | ------------------------------------------ |
| Batterie Status | String | Der Status der Batterie des Gerätes |
| RF Link Level | Integer | Die Qualität der Funkverbindung in Prozent |
| RF Link Status | String | Der Status der Funkverbindung des Gerätes |
#### Mäher
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | --------------------------------------------------------------------------------------- |
| Aktivität | String | Die aktuelle Aktivität des Gerätes |
| Betriebsstunden | Integer | Die Zeit in Stunden welche der Mäher schon aktiv ist |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Mähdauer | Integer | Die Zeit in Minuten für manuell gemäht werden soll |
| Mähen | String | Ermöglicht den Mäher für eine bestimmte Mähdauer oder nach dem Zeitplan mähen zu lassen |
| Parken | String | Erlaubt es den Mäher zur Ladestation fahren zu lassen |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| ------------------------------- | --------------- | -------------------------------------------------------------------------- |
| Automatisch mähen | (keine) | Lässt den Mähe nach Zeitplan mähen |
| Manuell mähen | Dauer (Minuten) | Lässt den Mäher für die festgelegte Dauer mähen |
| Parken bis zur nächsten Aufgabe | (keine) | Lässt den Mäher zur Ladestation fahren und bis zur nächsten Aufgabe warten |
| Parken und Zeitplan ignorieren | (keine) | Lässt den Mäher zur Ladestation fahren und den Zeitplan ignorieren |
## smart Power Socket
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/smart-power-socket/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das Gerät smart Power Socket bietet in IP-Symcon verschieden Services, welche es zum Beispiel ermöglichen den Status des Gerätes zu erkennen oder den Zwischenstecker zu schalten.
### Services
Für jeden Service kann mit dem Konfigurator eine Instanz erstellt werden.
In der Instanzkonfiguration kann der Schalter 'Letzte Übertragung anzeigen' aktiviert werden um für jeden Wert, wenn verfügbar, eine Variable zu erstellen, welche den Zeitpunkt der letzten Datenübertragung enthält.
| Service | Beschreibung |
| ----------------------------------------------- | ----------------------------------------------------------------- |
| Allgemein | Enthält generelle Informationen über das Gerät |
| Zwischenstecker | Repräsentiert den Zwischenstecker, welcher geschaltet werden kann |
#### Allgemein
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | --------------------------------------------------------------------- |
| Batterie Status | String | Der Status der Batterie des Gerätes (Dieses Gerät hat keine Batterie) |
| RF Link Level | Integer | Die Qualität der Funkverbindung in Prozent |
| RF Link Status | String | Der Status der Funkverbindung des Gerätes |
#### Zwischenstecker
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | ---------------------------------------------------------------------------- |
| Aktivität | String | Die aktuelle Aktivität des Gerätes |
| Verbleibend | Integer | Die verbleibende Zeit in Sekunden bis der Zwischenstecker ausgeschaltet wird |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Aktivitätsdauer | Integer | Die Dauer für die der Zwischenstecker manuell angeschaltet werden soll |
| Aktion | String | Die Aktion welche ausgeführt werden soll |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| ------------------------------------- | --------------- | ------------------------------------------------------------------------- |
| Zwischenstecker einschalten | Dauer (Minuten) | Ermöglicht es den Zwischenstecker für eine definierte Dauer einzuschalten |
| Zwischenstecker dauerhaft einschalten | (keine) | Ermöglicht es den Zwischenstecker dauerhaft einzuschalten |
| Zwischenstecker ausschalten | (keine) | Ermöglicht es den Zwischenstecker auszuschalten |
## smart Pressure Pump
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/smart-pump/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das Gerät smart Pump bietet in IP-Symcon verschieden Services, welche es zum Beispiel ermöglichen den Status des Gerätes zu erkennen oder das Ventil zu schalten.
### Services
Für jeden Service kann mit dem Konfigurator eine Instanz erstellt werden.
In der Instanzkonfiguration kann der Schalter 'Letzte Übertragung anzeigen' aktiviert werden um für jeden Wert, wenn verfügbar, eine Variable zu erstellen, welche den Zeitpunkt der letzten Datenübertragung enthält.
| Service | Beschreibung |
| --------------------------------------- | -------------------------------------------------------------- |
| Allgemein | Enthält generelle Informationen über das Gerät |
| Ventil | Repräsentiert das Ventil der Pumpe |
| Hauptventil | Das Hauptventil mit dem alle Ventile geschlossen werden können |
#### Allgemein
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | ------------------------------------------ |
| Batterie Status | String | Der Status der Batterie des Gerätes |
| RF Link Level | Integer | Die Qualität der Funkverbindung in Prozent |
| RF Link Status | String | Der Status der Funkverbindung des Gerätes |
#### Ventil
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| ------------- | ------- | ------------------------------------------------------------------------------------- |
| Aktivität | String | Die aktuelle Aktivität des Gerätes |
| Verbleibend | Integer | Die verbleibende Zeit in Sekunden bis das Ventil geschlossen wird |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Öffnungsdauer | Integer | Die Dauer für die das Ventil manuell geöffnet werden soll |
| Aktion | String | Ermöglicht es das Ventil für eine bestimmte Öffnungsdauer zu öffnen oder zu schließen |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| ---------------- | --------------- | ----------------------------------------------------------- |
| Ventil öffnen | Dauer (Minuten) | Ermöglicht es das Ventil für eine bestimmte dauer zu öffnen |
| Ventil schließen | (keine) | Ermöglicht das Ventil zu schließen |
#### Hauptventil
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Name | Typ | Beschreibung |
| ---------- | ------ | -------------------------------- |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Aktion | String | Schließt alle Ventile |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| --------------------- | --------- | ------------------------------------------ |
| Hauptventil schließen | (keine) | Ermöglicht es das Hauptventil zu schließen |
## smart Sensor
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/smart-sensor/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das Gerät smart Sensor bietet in IP-Symcon verschieden Services, welche es zum Beispiel ermöglichen die unterschiedlichen Werte der Sensoren, wie etwa die Bodenfeuchte oder die Lichtintensität, auszulesen.
### Services
Für jeden Service kann mit dem Konfigurator eine Instanz erstellt werden.
In der Instanzkonfiguration kann der Schalter 'Letzte Übertragung anzeigen' aktiviert werden um für jeden Wert, wenn verfügbar, eine Variable zu erstellen, welche den Zeitpunkt der letzten Datenübertragung enthält.
| Service | Beschreibung |
| ----------------------------------- | ---------------------------------------------- |
| Allgemein | Enthält generelle Informationen über das Gerät |
| Sensor | Repräsentiert die Werte des Sensors |
#### Allgemein
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | ------------------------------------------ |
| Batterie Status | String | Der Status der Batterie des Gerätes |
| RF Link Level | Integer | Die Qualität der Funkverbindung in Prozent |
| RF Link Status | String | Der Status der Funkverbindung des Gerätes |
#### Sensor
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| ------------------- | ------- | -------------------------------------------------- |
| Bodenfeuchte | Integer | Die vom Sensor gemessene Bodenfeuchte in Prozent |
| Bodentemperatur | Float | Die vom Sensor gemessene Bodentemperatur in °C |
| Lichtintensität | Float | Die vom Sensor gemessene Beleuchtungsstärke in lux |
| Umgebungstemperatur | Float | Die vom Sensor gemessene Umgebungstemperatur in °C |
## smart Water Control
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/gardena-smart-system/smart-water-control/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das Gerät smart Water Control bietet in IP-Symcon verschieden Services, welche es zum Beispiel ermöglichen den Status des Gerätes zu erkennen oder das Ventil zu schalten.
### Services
Für jeden Service kann mit dem Konfigurator eine Instanz erstellt werden.
In der Instanzkonfiguration kann der Schalter 'Letzte Übertragung anzeigen' aktiviert werden um für jeden Wert, wenn verfügbar, eine Variable zu erstellen, welche den Zeitpunkt der letzten Datenübertragung enthält.
| Service | Beschreibung |
| --------------------------------------- | -------------------------------------------------------------- |
| Allgemein | Enthält generelle Informationen über das Gerät |
| Ventil | Repräsentiert das Ventil der Bewässerungssteuerung |
| Hauptventil | Das Hauptventil mit dem alle Ventile geschlossen werden können |
#### Allgemein
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| --------------- | ------- | ------------------------------------------ |
| Batterie Status | String | Der Status der Batterie des Gerätes |
| RF Link Level | Integer | Die Qualität der Funkverbindung in Prozent |
| RF Link Status | String | Der Status der Funkverbindung des Gerätes |
#### Ventil
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Variable | Typ | Beschreibung |
| ------------- | ------- | ------------------------------------------------------------------------------------- |
| Aktivität | String | Die aktuelle Aktivität des Gerätes |
| Verbleibend | Integer | Die verbleibende Zeit in Sekunden bis das Ventil geschlossen wird |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Öffnungsdauer | Integer | Die Dauer für die das Ventil manuell geöffnet werden soll |
| Aktion | String | Ermöglicht es das Ventil für eine bestimmte Öffnungsdauer zu öffnen oder zu schließen |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| ---------------- | --------------- | ----------------------------------------------------------- |
| Ventil öffnen | Dauer (Minuten) | Ermöglicht es das Ventil für eine bestimmte dauer zu öffnen |
| Ventil schließen | (keine) | Ermöglicht das Ventil zu schließen |
#### Hauptventil
Die folgenden Statusvariablen werden für diese Instanz erstellt
| Name | Typ | Beschreibung |
| ---------- | ------ | -------------------------------- |
| Fehlercode | String | Der letzte übertragene Fehler |
| Status | String | Der aktuelle Zustand des Gerätes |
| Aktion | String | Schließt alle Ventile |
Die folgenden Aktionen sind für diese Instanz verfügbar
| Aktion | Parameter | Beschreibung |
| --------------------- | --------- | ------------------------------------------ |
| Hauptventil schließen | (keine) | Ermöglicht es das Hauptventil zu schließen |
---
# Geofency
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/geofency/
_Benötigt Symcon >= 4.2_
Das Modul dient zum empfangen von Geofency Daten.
### Funktionsumfang
- Pro Gerät eine eigene Standortliste
- Benutzername und Passwort Identifikation innerhalb von IP-Symcon.
- Richtet automatisch den Webhook "/hook/geofency" ein.
- Es wird empfohlen dies in Kombination mit dem Connect Modul zu nutzen.
- Optional kann der aktuelle Standort von Geofency übermittelt werden
### Voraussetzungen
- Geofency App für Apple iOS
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Geofency installieren.
### Geofency Konfiguration
In der Geofency App mit + einen neuen Standort hinzufügen. Dann auf die 3 Punkte rechts klicken um das Menü zu öffnen. Hier ist Webhook auszuwählen.
#### Event

Als URL wird jeweils die Domain eingetragen unter der IP-Symcon zu erreichen ist gefolgt von /hook/geofency Am einfachtsen ist es dort die IP-Symcon Connect Adresse einzutragen gefolgt von /hook/geofency
Optional kann Aktuelle Position senden aktiviert werden.
#### POST Format
Einstellung bleibt auf Default, JSON-enkodiert ist deaktiv und wird nicht ausgewählt
#### Authentifizierung
| Name | HTTP Basic Authentifizierung |
| -------- | -------------------------------------------------------------- |
| Username | Der Webhook Benutzername der dann in IP-Symcon hinterlegt wird |
| Passwort | Das Webhook Passwort das dann in IP-Symcon hinterlegt wird |
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Geofency'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------------------------------------------- |
| Benutzername | Benutzername, welcher in der Geofency App angegeben werden muss, um IP-Symcon Daten schicken zu können. |
| Passwort | Passwort, welches in der Geofency App angeben werden muss. |
_Werden diese Daten Leer gelassen kann jeder über den Hook Daten an IP-Symcon schicken._
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die Variablen werden anhand der Geräte ID und beim erstmaligen senden innerhalb des Geofency Moduls automatisch angelegt. Es können mehrere Geräte über einen Hook laufen. Jedes Gerät wird unter seiner eigenen "Kategorie" eingerichtet.
| Name | Typ | Beschreibung |
| ----------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Gerätename | Instanz (Dummy) | Dient als "Kategorie" in der sich alle überwachten Standorte, sowie der Zeitstempel und Längen-/Breitengrad befinden. Wird pro Gerät erstellt. |
| Latitude | Float | Breitengrad (Mitte des Geofences) der letzten Aktivität |
| Longitude | Float | Längengrad (Mitte des Geofences) der letzten Aktivität |
| CurrentLatitude | Float | Proximity-Koordinaten, also die aktuellen Koordinaten bei Ein- oder Austritt (äusserer Umkreis des Geofences), falls „Aktuelle Position senden“ in der App beim Webhook gewählt wurde |
| CurrentLongitude | Float | Proximity-Koordinaten, also die aktuellen Koordinaten bei Ein- oder Austritt (äusserer Umkreis des Geofences), falls „Aktuelle Position senden“ in der App beim Webhook gewählt wurde |
| Direction | Integer | Azimutwinkel (Richtung in Grad) des aktuellen Ein-/Austrittspunktes bezogen auf die Mitte des Geofence-Kreises, falls „Aktuelle Position senden“ in der App beim Webhook gewählt wurde |
| Distance | Float | Abstand (in Meter) des aktuellen Ein-/Austrittspunktes bezogen auf die Mitte des Geofence-Kreises, falls „Aktuelle Position senden“ in der App beim Webhook gewählt wurde |
| Orientation | Float | Himmelsrichtung (als Name) des aktuellen Ein-/Austrittspunktes bezogen auf die Mitte des Geofence-Kreises, falls „Aktuelle Position senden“ in der App beim Webhook gewählt wurde |
| Timestamp | Integer | UnixTimestamp der letzten Aktivität. |
| Beispielstandort (Büro) | Boolean | Present oder Absent. Information wird von Gefency geliefert. |
| aktuelle Longitude | Float | Aktueller Breitengrad |
| aktuelle Latitude | Float | Aktueller Längengrad |
| Motion | Integer | aktueller Bewegungszustand wie Gehen, Autofahren etc. |
| WifiBSSD | String | BSSID des verbundenen WLANs |
| WifiSSID | String | SSID des verbundenen WLANs |
Beispiel:

---
# Heating Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/heating-control/
### Beschreibung
Das Heizungsmodul dient der Regelung von Temperaturen in Wohnräumen.
Es werden 2-Punkt-Regler und Linear-Regler (z.B. P-Regler) unterstützt.
Dazu werden Soll-Wert und Ist-Wert verglichen und der Aktor angesteuert.
### Voraussetzung
Den Ist-Wert erhält man über entsprechende Temperatursensoren, deren Wert als Variable IP-Symcon bekannt sein muss. Desweiteren muss die Heizquelle über einen Aktor schaltbar sein. Beispiele: Heizkörper mit einem thermischen Stellantrieb oder ein Heizlüfter und eine Funksteckdose.
### Einbindung in IP-Symcon
Das "Heating Control" Modul (Hersteller: None) kann innerhalb der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) über den Objektbaum hinzugefügt werden und optional sollte ein sprechender Name (z.B. "Heizungsmodul Wohnzimmer") vergeben werden.

> **Hinweis:** Skripte, die durch das Heating Control ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
| Variable | Beschreibung |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Modus | Auswahl, ob das Heating Control Heizen oder Kühlen soll. |
| Typ | Auswahl, welche Art von Regler genutzt wird. |
| Quelle (Ist-Temperatur) | Variable, welche den Ist-Wert enthält. |
| Absenkung | Temperatur in °C, um die abgesenkt werden soll, wenn eine oder mehrere der "Absenk-Variablen" TRUE sind |
| Hysterese (Nur Zweipunktregler) | Temperaturdifferenz zwischen Einschalt- und Ausschaltpunkt; Beispiel: T-Soll = 20,0 Grad und Hysterese = 0,4; Der Aktor wird bei Unterschreiten von 19,8 Grad eingeschaltet und bei Überschreiten von 20,2 Grad ausgeschaltet. Eine Hysterese von 0 bewirkt ein “Toggeln” des Aktors bei jeder Aktualisierung der Ist-Variablen. |
| 100% Bereich (Nur P-Regler) | Beschreibt die Größe eines Bereichs vor dem Sollwert. In diesem wird eine linear abgestufte Steuerung berechnet; Beispiel Heizen: T-Soll = 20,0 Grad und 100% Bereich = 1; Der Aktor bleibt bei 19°C (Ist-Wert) auf 100%; Bei 19,3°C auf 70%; Bei 19,9°C auf 10%. Beispiel Kühlen: T-Soll = 10,0 Grad und 100% Bereich = 5; Der Aktor bleibt bei 15°C (Ist-Wert) auf 100%; Bei 14,0°C auf 80%; Bei 11,0°C auf 20%. |
| Ziel-Variablen | Hier werden die zu schaltenden Variablen eingetragen. Bei thermischen Stellantrieben, die bei stromlos geöffnet sind, muss “Invertieren” aktiviert werden. |
| Vorrang-Variablen | Können z.B. Status-Variablen von Fensterkontakten sein. Bei "True" bleibt der Ausgang des Reglers ausgeschaltet. |
| Absenk-Variablen | Können z.B. Präsenz-Variablen von Bewegung- oder Präsenz-Melder sein. Wenn sich in einem Raum keine Person aufhält, kann durch eine Temperatur-Absenkung so Energie gespart werden. |
| Sende Intervall | Falls ein (Funk)-Befehl nicht korrekt verarbeitet worden ist, kann dieser zyklisch wiederholt werden (nicht öfters als 15 Minuten). |
| Experteneinstellungen | Für Sonderfälle kann hier ein eigenes Skript ausgewählt werden. Es wird bei jedem Schaltvorgang des Reglers aufgerufen. Alle notwendigen Daten sind in den [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) hinterlegt. |
| Test Center | Um die Funktion des Reglers zu überprüfen, kann hier eine Soll-Temperatur eingetragen werden. Der Aktor muss dann wie gewünscht ein- oder ausschalten. |
| Statusvariablen | Ident | Beschreibung |
| --------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Absenkung | SetBackVariable | Bei True ist die Absenkung aktiv. |
| Heizen | HeatingVariable | Spiegelt den Ausgang des Reglers wieder. Ein Invertieren der Sende-Instanzen hat auf diese Variable keinen Einfluss. |
| Soll-Wert | TargetValueVariable | Enthält die Soll-Temperatur. |
| Vorrang | OverrideVariable | Bei True ist mindestens eine Vorrang-Variable ebenfalls True (Oder-Verknüpfung) und der Aktor bleibt ausgeschaltet. |
### Tipps & Tricks
Die Absenk-Funktion wird verwendet, um in unbewohnten Räumen Energie zu sparen.
Praxis-Beispiel:
Ein im Raum installierter Bewegungsmelder liefert für einige Sekunden in IP-Symcon eine Variablenänderung auf TRUE. Das folgende Skript verlängert diesen Impuls auf z.B. 15 Minuten und schreibt den Status in die Variable "Präsenz" (vorher anlegen!). Wenn innerhalb der gewünschten Zeit keine Bewegung im Raum mehr erkannt wird, wird die Variable auf FALSE gesetzt.
Diese kann nun unter den "Absenk-Variablen" hinzugefügt werden. Allerdings muss zusätzlich "Invertieren" aktiviert werden, da ja bei NICHT-Präsenz die Temperatur abgesenkt werden soll. Diese muss nun nur noch unter "Absenkung" eingetragen werden: z.B. 2 °C.
Ein geöffnetes Fenster mit einer "Vorrang-Variable" hat auch hier Vorrang und schaltet die Heizung komplett aus.
```php
$id_prae = 12345 /*[Präsenz]*/; // anlegen!
if($_IPS['SENDER'] == "Variable"){
if($_IPS['VALUE'] == True){ //Timer starten
IPS_SetScriptTimer($_IPS['SELF'], 15 * 60);
$prae = GetValue($id_prae );
if($prae == False){
SetValue($id_prae, True);
}
}
}
if($_IPS['SENDER'] == "TimerEvent"){
IPS_SetScriptTimer($_IPS['SELF'], 0);
SetValue($id_prae , False);
}
```
### Weiterführende Links
Zweipunktregler: [https://de.wikipedia.org/wiki/Zweipunktregler](https://de.wikipedia.org/wiki/Zweipunktregler)
P-Regler: [https://de.wikipedia.org/wiki/Regler](https://de.wikipedia.org/wiki/Regler)
Hysterese: [https://de.wikipedia.org/wiki/Hysterese](https://de.wikipedia.org/wiki/Hysterese)
> **Achtung:** Da zu jeder Zeit der PC (Regelung) ausfallen kann, muss zusätzlich eine Temperaturbegrenzung / Sicherheitsabschaltung installiert werden, um Personen- oder Sachschäden zu vermeiden.
## HC_TargetValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/heating-control/hc-targetvalue/
`bool HC_TargetValue(int $InstanzID, float $Soll-Wert)`
sendet einen Soll Wert an das Heating-Modul
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Soll-Wert` (float): Neuer Soll-Wert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Neuer Soll-Wert
**Beispiel**
```php
HC_TargetValue(12345, 22.5); //Auf 22.5°C
```
---
# Home Connect
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/home-connect/
_Benötigt Symcon >= 6.0_
### Beschreibung
Das Home Connect-Modul ermöglicht es Geräte der Hersteller Bosch, Siemens, Gaggenau und Neff, welche den Home Connect Dienst unterstützen, in IP-Symcon einzubinden.
### Einbindung in IP-Symcon
> **Hinweis:** Die Verwendung des Home Connect-Moduls erfordert eine aktivierte Verbindung zum [Connect-Dienst](https://www.symcon.de/de/llms/modules/connect-control.md), welche wiederum eine laufende Subskription erfordert.
#### Home Connect Konfigurator Instanz erstellen
Damit das Home Connect-Modul verwendet werden kann, muss dieses zuerst über den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) installiert werden. Hierfür muss der [Module Store](https://www.symcon.de/de/llms/components/management-console.md) geöffnet werden. Dieser befindet sich im oberen rechten Bereich. Über das Suchfeld kann via "Home Connect" das Modul Home Connect gefunden werden. Beim öffnen des gefundenen Modules, kann im folgenden Dialog die Installation des Moduls via "Installieren"-Knopf angestoßen werden.


Im Anschluss öffnet sich der Hinzufügendialog zum Erstellen einer Home Connect Konfigurator Instanz.
Soll die Instanz manuell hinzugefügt werden muss eine [Instanz](https://www.symcon.de/de/llms/concepts.md) vom Home Connect Konfigurator erstellt werden. Dazu muss zuerst der Objektbaum geöffnet werden. In diesem den Hinzufügen-Button "+" unten rechts betätigen und [Instanz](https://www.symcon.de/de/llms/concepts.md) auswählen.

Mithilfe der Schnellsuche kann der "Home Connect Configurator" vom Hersteller "(Konfigurator)" gefunden werden. Der Ort sollte nicht verändert werden, der Name kann beliebig gewählt werden. Abschließend mit "OK" bestätigen.

Nach der Erstellung der Konfigurator-Instanz öffnet sich diese automatisch und kann eingerichtet werden.
#### Home Connect Konfigurator-Instanz einrichten
Bevor Geräte erstellt werden können, muss sich mit einem Klick auf Registrieren registriert werden, um IP-Symcon mit dem Home Connect Konto zu verbinden.
In dem Feld 'Sprache' kann ausgewählt werden, in welcher Sprache die Informationen über die Geräte verarbeitet werden. Die hier gewählte Sprache steht nicht im Zusammenhang mit der in IP-Symcon genutzten Sprache.

Es muss sich mit dem Home Connect Konto angemeldet werden, um IP-Symcon die nötigen Berechtigungen einzuräumen.


Daraufin kann der "Schnittstelle Konfigurieren"-Dialog mit Weiter bestätigt werden. Nun muss noch der erstellte SSE Client aktiviert werden.

Jetzt öffnet sich der Konfigurator und es können alle erkannten Geräte mit einem Klick auf "Erstellen" erstellt werden.

## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/home-connect/geraeteliste/
### Unterstützte Geräte
Den Home Connect Dienst bieten die Geräte der Hersteller Bosch, Siemens, Gaggenau und Neff.
| Geräte Typ |
| -------------- |
| Kaffeemaschine |
| Backofen |
| Trockner |
| Waschmaschine |
| Geschirrspüler |
| Kühlschrank |
| Gefrierschrank |
Sollte ein Gerät nicht in der obigen Liste aufgeführt sein, so kann es trotzdem in IP-Symcon hinzugefügt werden. Wenn es bei der Einrichtung zu Problemen kommen, hilft unser Support gerne weiter.
## Home Connect Gerät
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/home-connect/home-connect-device/
_Benötigt Symcon >= 6.0_
### Beschreibung
Wenn durch den Home Connect Konfigurator ein Gerät erstellt wird, wird eine Home Connect Geräte Instanz erstellt, welche abhängig vom Gerätetyp verschiedene Statusvariablen besitzt.
### Steuerung durch IP-Symcon
Um die Geräte im vollen Umfang nutzen zu können, muss direkt am Gerät der Fernstart und/oder die Fernsteuerung aktiviert werden. Wenn nur die Fernsteuerung aktiv ist können Programme und Optionen verändert, aber das Programm nicht gestartet werden. Während das Gerät lokal bedient wird kann es durch IP-Symcon nicht gesteuert werden.
### Statusvariablen
Jedes Gerät kann 4 verschiedene Arten von Variablen haben.
#### Status
Variablen des Typs Status sind Variablen, welche aus IP-Symcon heraus nicht geschaltet werden können.
__Beispiele:__ Betriebsstatus, Lokale Bedienung aktiv
#### Einstellung
Variablen des Typs Einstellung können meist geschaltet werden und dienen dazu verschiedene Einstellungen des Gerätes zu verändern.
__Beispiele:__ Temperatur (Kühlschrank), Energiezustand
#### Programm
Jedes Gerät hat nur eine Variable des Typs Programm. Über diese Variable kann festgelegt werden, welches Programm von dem Gerät ausgeführt werden soll.
> **Hinweis:** Wenn ein Programm, welches in der Home Connect App verfügbar ist, nicht in IP-Symcon angezeigt wird, dann wird es von der API nicht unterstützt. Sollte über die App oder das Gerät manuell ein solches Programm ausgewählt werden, dann werden alle Einstellungsmöglichkeiten ausgegraut
#### Optionen
Wenn ein Programm ausgewählt ist werden entsprechende Option Variablen erstellt, welche die Details für das ausgewählte Programm verändern.
__Beispiele:__ Füllmenge (Kaffeemaschine), Dauer (Backofen)
Wenn ein Programm ausgewählt wurde und die verfügbaren Optionen gesetzt wurden, kann das Programm über die Variable Steuern gestartet werden.
Sobald ein Programm gestartet wurde werden, ja nach Gerät, Variablen angelegt, die Auskunft über den Fortschritt geben.
__Beispiele:__ Programmfortschritt, Verbleibende Laufzeit
### Besonderheiten
* Bei der Erstellung eines Gerätes sollte dieses Online und somit angeschaltet sein
* Der Kühlschrank hat keine Programme
### Problembehandlung
#### Eine Geräteinstanz wird nicht korrekt erstellt
Alle Daten eines Gerätes können in der Geräteinstanz mit einem Klick auf den Button 'Gerät Initialisieren' erneut angefragt werden.
#### Variablen werden nicht aktualisiert
Durch einen Klick auf 'Server Events registrieren' wird die Verbindung mit dem Home Connect Dienst erneut hergestellt.
---
# HomeMatic
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/
Symcon unterstützt die Integration über die HCU und über die CCU.
- [HomeMatic CCU](https://www.symcon.de/de/llms/modules/homematic.md)
- [HomeMatic HCU (Beta)](https://www.symcon.de/de/llms/modules/homematic.md)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/geraeteliste/
### Unterstützte Gateways
| Gateway | Beschreibung |
| ---------------------------- | ------------------------------------------------------- |
| CCU1 | Zentrale für HomeMatic Funk- und Wired-Komponenten |
| CCU2 | Zentrale für HomeMatic Funk-, Wired- und IP-Komponenten |
| CCU3 | Zentrale für HomeMatic Funk-, Wired- und IP-Komponenten |
| HM-LAN (über BidCos-Service) | HomeMatic-LAN-Adapter |
| HM-USB (über BidCos-Service) | HomeMatic-USB-Adapter |
| HCU | Zentrale für HomeMatic IP Komponenten |
### Unterstützte Komponenten
IP-Symcon unterstützt alle kabel- und funkgebundenen Komponenten.
## HomeMatic CCU
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/
_Benötigt Symcon >= 4.1_
HomeMatic ist ein primär funkbasierendes System. Eine Verbindung zu IP-Symcon wird via LAN über die Central Control Unit (CCU) hergestellt. Alternativ funktioniert dies auch mit einem "LAN-Konfiguration-Adapter".
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/homematic.md)
### Installation
Die HomeMatic Geräte werden via CCU (LAN) oder [BidCoS Service](https://www.symcon.de/de/llms/modules/homematic.md) an IP-Symcon angeschlossen.
Die Anleitung zur Einrichtung via BidCoS Service befindet sich [hier](https://www.symcon.de/de/llms/modules/homematic.md).
> **Hinweis:** Vorteile der CCU:
>
> * HomeMatic Wired RS485 Komponenten werden unterstützt.
>
> * Programme können in der CCU ausgeführt werden.
>
> * Status der Aktoren können per Skript abgefragt werden.
#### HomeMatic Wired
HomeMatic Wired ist eine kabelgebundene Version von HomeMatic. Hierfür sind eigene Schalt- und Dimmaktoren sowie Ein- und Ausgabemodule erhältlich.
"HomeMatic Wired" wird von IP-Symcon aber in gleicher Art und Weise angesteuert, wie die auf Funk basierenden Komponenten.
Dieses kann auf der Konfigurationsseite des Gateways eingeschaltet werden.
#### HomeMatic IP
HomeMatic IP ist der Nachfolger von HomeMatic und bietet Funk-, sowie auch Wired-Geräte. HomeMatic IP wird von IP-Symcon in gleicher Art und Weise angesteuert, wie die Ursprünglichen HomeMatic Komponenten. Ein paralleler Betrieb von HomeMatic und HomeMatic IP Komponenten ist problemlos möglich.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/uDd-jdKm0CE?rel=0&cc_load_policy=1)
### Anschluss
Die CCU wird durch ein Netzwerkkabel mit dem Netzwerk verbunden.
> **Achtung:** Die Antenne der CCU dient nur der Funkverbindung mit den einzelnen Aktoren. Eine WLAN-Verbindung mit einem PC ist jedoch nicht möglich.
> **Hinweis:** Sollte kein LAN-Netzwerk vorhanden sein, ist eine Verbindung auch über USB möglich. Diese benötigt extra USB-Treiber, welche sich auf der mitgelieferten CD befinden.
### Installation
Wenn die CCU korrekt angeschlossen ist und ein DHCP-Server verwendet wird, erhält die CCU automatisch eine IP-Adresse und ist mit dem Netzwerk verbunden.
Steht kein DHCP-Server zur Verfügung, kann eine IP-Adresse auch manuell über das Menü der CCU, unter dem Menüpunkt „Network“, eingegeben werden.
Hierbei müssen auch die Subnetzmaske und das Standardgateway vergeben werden. Bei korrekter Einrichtung ist nun in der Netzwerkübersicht das Gerät „HomeMatic Central“ zu finden.
> **Hinweis:** Sollte die CCU nicht im Netzwerk erscheinen, hilft ein Trennen der Stromversorgung der CCU für 30 Sekunden. Nach dem Hochfahren der CCU und Aktualisierung der Netzwerkumgebung ist diese nun erreichbar.
Ein Doppelklick auf „HomeMatic Central“ öffnet ein Fenster in dessen unteren Bereich die IP-Adresse der CCU zu finden ist. (Optional ist diese auch im Menü der CCU zu finden.) Durch kopieren dieser Adresse in einen Browser, öffnet sich das HomeMatic WebUI.
### Hinzufügen sekundärer Geräte
Im HomeMatic WebUI können nun die sekundären HomeMatic-Geräte (z.B. Temperaturfühler, Zwischenstecker, Handsender usw.) mit der CCU verbunden werden. Dazu muss auf „Geräte anlernen“ geklickt (rechts oben) und den weiteren Anweisungen gefolgt werden.

### Einbindung in IP-Symcon
Die CCU kann über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "Homematic Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines Homematic [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können über diesen die einzelnen Geräte wie unten beschrieben eingebunden werden.
Innerhalb des Konfigurators kann über "Gateway konfigurieren" die Konfigurationsseite des "HomeMatic Sockets" geöffnet werden. Um den Socket zu aktivieren muss der Haken bei "Socket öffnen" gesetzt werden. Die angezeigten Optionen sagen, ob HomeMatic Funk/Wired/IP genutzt werden soll. Bei aktivierter Authentifizierung kann hier der Benutzername und das Passwort eingetragen werden.

Im mittig erscheinenden Fenster sind jetzt verschiedene Geräte sichtbar. Nach der Auswahl eines Geräts kann eine Geräteinstanz mit "Erstellen" erstellt und anschließend die Konfigurationsseite über "Konfigurieren" aufgerufen werden.

Um zu testen ob z.B. ein Dimmer funktioniert, kann die ordnungsgemäße Funktion, z.B. in der Visualisierung, überprüft werden.
> **Achtung:** Unter Umständen funktioniert der Rückkanal nicht. Dies ist dadurch bemerkbar, dass IP-Symcon nicht visualisiert wenn z.B. eine Lampe über einen Lichtschalter geschaltet wurde.
> Dieses Problem liegt oftmals an der Windows-Firewall. Diese kann in Windows unter "Systemsteuerung" -> "System und Sicherheit" -> "Windows-Firewall" konfiguriert werden.
> Im Menü "Ein Programm oder Feature durch die Windows-Firewall zulassen" -> "Einstellungen ändern" -> "Anderes Programm zulassen..." befindet sich der Button "Durchsuchen".
> Durch auswählen von der IP-Symcon (IP-Symcon Service) Datei und anschließendem "öffnen", funktioniert auch der Rückkanal!
> Eine andere Möglichkeit die Funktionalität des Rückkanals zu gewährleisten, ist darauf zu achten, dass unter den Firewall-Einstellungen in der CCU “HomeMatic XML-RPC API” und “Remote HomeMatic-Script API” Vollzugriff ausgewählt oder die IP-Adresse des IP-Symcon PCs eingetragen sind.
### Gerätekonfiguration
Es ist empfohlen den HomeMatic Konfigurator zur Einrichtung der einzelnen Geräte zu nutzen.
Auf der Konfigurationsseite der Geräteinstanz sind folgende Einstellungen möglich.

| Option | Beschreibung |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| System | Auswahl ob das Gerät via Funk, Wired oder IP angesprochen wird. |
| Adresse | HomeMatic Adresse des Geräts. Diese kann über den "Suchen" Dialog in der oberen Leiste der Konfigurationleiste auch gesucht werden. |
| Status emulieren | Wenn eingeschaltet wird der Status des Geräts bei erfolgreicher Befehlsübermittlung an die CCU aktualisiert. Wenn ausgeschaltet wird auf die tatsächliche Antwort des zu schaltenden Geräts gewartet. Dies kann zu Verzögerungen führen. Zum Beispiel bei Geräten, welche nur alle x Minuten aufwachen. |
### Firewall-, Authentifizierung- und Porteinstellungen
Ab einer CCU3 oder RaspberryMatic in Kombination mit IP-Symcon 5.1 oder höher ist eine Authentifizierung möglich.
Diese kann im Webinterface der CCU eingestellt werden. Unter "Einstellungen" -> "Systemsteuerung" -> "Sicherheit" kann die Authentifizierung aktiviert werden. Diese nutzt dann die Benutzer, welche in der Benutzerverwaltung eingestellt sind.

Desweiteren kann unter "Einstellungen" -> "Systemsteuerung" -> "Firewall konfigurieren" die Firewall eingerichtet werden. Weitere Informationen dazu befinden sich in der Anleitung der CCU.

[Video](https://www.youtube.com/embed/sahJdNXUZZs?rel=0&cc_load_policy=1)
### Austausch von defekten Geräten
Allgemeine Informationen wie ein Austausch in IP-Symcon funktioniert kann [hier](https://www.symcon.de/de/llms/how-to.md) gefunden werden
Zum Austausch muss in IP-Symcon die Konfiguration des defekten Geräts geöffnet und die Adresse des alten Geräts gegen die des Neuen ausgetauscht werden. Die Adresse steht entweder auf dem Gerät selbst oder kann via "Suchen" ausgewählt werden.

Die Adresse im markierten Bereich muss ausgetauscht und mit "Übernehmen" gespeichert werden.
### HomeMatic mit QNAP, Synology oder Docker
Soll HomeMatic mit QNAP, Synology oder Docker verwendet werden, so muss der NATSupport eingerichtet werden um Antworten des Systems zu erhalten. Dieser Vorgang ist [hier](https://www.symcon.de/de/llms/getting-started.md) erklärt.
### Tipps & Tricks
* [Dokumentation Homematic Datenpunkte](https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HM-Script_4-Datenpunkte.pdf)
* [Dokumentation HomematicIP Datenpunkte](https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf)
* [HomeMatic-Homepage](https://www.eq-3.de/produkte/homematic.html)
* [Es kann das Display der 19 Tasten Fernbedienung verändert werden.](https://community.symcon.de/t/display-der-19-tasten-fernbedienung-ansteuern/17472)
* [Um den Status aller Aktoren und Sensoren anzufragen (nur mit der CCU möglich!).](https://community.symcon.de/t/homematic-geraet-status-abfragen/22519)
* Die Einschaltdauer für einen Aktor kann mit “ON_TIME” und bei einem Dimmer kann zusätzlich eine Rampe angegeben werden.
Hier ein fertiges Beispiel-Skript für drei Dimmer, die eine Licht-Szene gestalten:
```php
$id_bar = 54392 /*[EG\Tisch Bar]*/;
$id_ecken = 24601 /*[EG\Strahler Ecken]*/;
$id_tisch = 38758 /*[EG\Tischlampe]*/;
$ramp = 2;
HM_WriteValueFloat($id_bar, "ON_TIME", 60*10); // x Minuten AN
HM_WriteValueFloat($id_bar, "RAMP_TIME", $ramp); // X Sekunden Rampe
HM_WriteValueFloat($id_bar , "LEVEL" , .4); // und ausführen auf X%
HM_WriteValueFloat($id_ecken , "RAMP_TIME", $ramp); // X Sekunden Rampe
HM_WriteValueFloat($id_ecken , "LEVEL" , .4); // und ausführen auf X%
HM_WriteValueFloat($id_tisch , "RAMP_TIME", $ramp); // X Sekunden Rampe
HM_WriteValueFloat($id_tisch , "LEVEL" , .4); // und ausführen auf x%
```
Beispiel-Skript WinMatic 60 Minuten Belüften:
```php
$id_aktor = 49712 /*[OG\Schlafzimmer\HM WinMatic]*/;
HM_WriteValueFloat($id_aktor, "SPEED" , 1.0); // Maximum Speed ;
HM_WriteValueFloat($id_aktor, "RELOCK_DELAY" , 60*60); // Fenster nach XX Minuten wieder zu
HM_WriteValueFloat($id_aktor, "LEVEL" , 0.7); // Fenster Auf
```
Beispiel-Skript KeyMatic öffnen:
```php
HM_WriteValueBoolean($id, "OPEN", true);
```
Beispiel-Skript um eine Rückmeldung zu erhalten, ob ein Aktor den Schaltbefehl korrekt ausgeführt hat:
```php
$id_aktor = 12345;
$err = HM_WriteValueBoolean($id_aktor, "STATE" , False);
//echo "Err: " .(int) $err . "\n";
if ($err === False){
echo "Fehler: Schaltaktor - Befehl wurde nicht ausgeführt\n";
SetValue($id_done, False);
} else {
SetValue($id_done, True);
echo "OK: Schaltaktor - Befehl wurde ausgeführt\n";
}
```
Beispiel-Skript, um einen Aktor (Lampe) zu toggeln (ein- und ausschalten):
```php
$id_aktor = 25404 /*[Hof Garten\Lampe]*/;
$id_state = 55194 /*[Hof Garten\Lampe\STATE]*/;
HM_WriteValueBoolean($id_aktor, "STATE" , !GetValue($id_state));
```
## BidCos Service
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/bidcos-service/
Der BidCos Service ist eine Alternative zur CCU-gestützten Ansteuerung von [HomeMatic](https://www.symcon.de/de/llms/modules/homematic.md) Geräten.
### Konfiguration des LAN-Adapters
Als erstes muss die aktuelle Usersoftware von der HomeMatic-Seite installiert werden.
Wir empfehlen, eine feste IP-Adresse (DHCP: Off) zu vergeben:

Nach erfolgreicher Installation wurde ein neues Verzeichnis angelegt: "x:\ProgramData\Bidcos-Service\"
Darin muss in der Datei ‘bidcos.conf’ die Serial Number (siehe Etikett) sowie die IP-Addresse des Adapters angepasst werden.
__Beispiel:__
```php
[Interface 0]
Type = Lan Interface
Serial Number = GEQ0123456
# Key ist auf der Rückseite des Interfaces.
# Funktion kann über das LAN Tool auch deaktiviert werden.
# Dann kann das Feld leergelassen werden
Encryption Key =
Description = First Lan Interface
# IP-Adresse vom LAN Interface
IP Address = 192.168.2.61
```
> **Hinweis:** Weitere Einstellungen in der bidcos.conf sind nicht erforderlich.
> Essenziell ist, dass folgender Eintrag unverändert bleibt:
>
>
> ```php
> # TCP Port for XmlRpc connections
> Listen Port = 2001
> ```
### Testen des Adapters
Eine erfolgreiche Konfiguration kann nun mit dem Programm "Test-Run BidCos-Service" überprüft werden. Die letzte Zeile im DOS-Fenster lautet dann: "… Connected to Lan Interface …".
> **Achtung:** Eine blinkende Power LED deutet auf einen nicht verbundenen BidCos-Service hin.
Bei Bedarf können die Startoptionen angepasst werden (Systemsteuerung > Verwaltung > Dienste) oder der Service manuell gestartet werden:

### HomeMatic-Komponenten konfigurieren
Im Programm "HomeMatic Konfigurator" muss unter "Datei > Einstellungen" die Verbindung "entfernter BidCoS Service" ausgewählt werden. Danach folgt noch die Eingabe der IP-Adresse (localhost) sowie des Ports (2001).
Zum Schluss können nun nacheinander im Menü "Geräte anlernen" die HomeMatic-Komponenten hinzugefügt werden.
### Client Socket in IP-Symcon
Der HomeMatic Socket (in den I/O Instanzen) muss konfiguriert werden. Als Modus muss "LAN Mode" ausgewählt werden. Sollte der BidCoS Service auf einem anderen PC laufen, so ist als Host noch dessen IP-Adresse einzutragen. Andernfalls muss "localhost" als Adresse angegeben bleiben. Falls mehrere Netzwerk-Adapter vorhanden sein sollten, so muss im Event-Server die IP-Adresse des Netzwerk-Adapers ausgewählt werden, an dem der LAN-Apapter angeschlossen ist. Der Port (5544) muss nicht verändert werden, sondern nur in einer ggf. vorhandenen Firewall freigeschaltet werden.

## HM_ReadServiceMessages
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/hm-readservicemessages/
`array HM_ReadServiceMessages(int $InstanzID)`
liest die Service-Meldungen aus
**Parameter**
- `$InstanzID` (int): ID der HomeMatic Socket Instanz
**Rückgabewert** (array): Folgende Informationen stehen als __key => value__ Paare zur Verfügung:
| Index | Typ | Beschreibung |
| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| __Address__ | string | Adresse des betreffenden Geräts |
| __Message__ | string | Kryptische Beschreibung der Fehlermeldung. Text kann teilweise der stringtable_de.txt aus dem HomeMatic Konfigurationstool entnommen werden. |
| __Value__ | variant | Wert der Fehlermeldung |
ID der HomeMatic Socket Instanz
**Beispiel**
```php
//Erstellt eine Variable die in der Visualisierung alle ServiceMeldungen anzeigt. Einfach in ein Skript kopieren und ausführen.
//Ab hier nichts mehr ändern
$object = IPS_GetObject($_IPS['SELF']);
$parentID = $object['ParentID'];
//Installer
if ($_IPS['SENDER'] == "Execute")
{
IPS_SetHidden($_IPS['SELF'], true);
IPS_SetName($_IPS['SELF'], "Auslese-Skript");
$parentObject = IPS_GetObject($parentID);
if ($parentObject['ObjectType'] !== 1)
{
$instanceID = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
IPS_SetParent($instanceID, $parentID);
$parentID = $instanceID;
IPS_SetParent($_IPS['SELF'], $parentID);
IPS_SetName($instanceID, "Servicemeldungen");
}
IPS_SetScriptTimer($_IPS['SELF'], 300);
}
$texte = Array(
"CONFIG_PENDING" => "Konfigurationsdaten stehen zur Übertragung an",
"LOWBAT" => "Batterieladezustand gering",
"STICKY_UNREACH" => "Gerätekommunikation war gestört",
"UNREACH" => "Gerätekommunikation aktuell gestört"
);
$str = "
"; // Farbe anpassen oder style entfernen
$str .= "
";
$vid = CreateVariableByName($parentID, "Content", 3);
IPS_SetIcon($vid, "Information");
IPS_SetVariableCustomProfile($vid, "~HTMLBox");
SetValue($vid, $str);
function GetInstanceIDFromHMID($sid)
{
$ids = IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");
foreach($ids as $id)
{
$a = explode(":", IPS_GetProperty($id, 'Address'));
$b = explode(":", $sid);
if($a[0] == $b[0])
{
return $id;
}
}
return 0;
}
function CreateVariableByName($id, $name, $type)
{
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
}
return $vid;
}
```
## HM_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/hm-requeststatus/
`bool HM_RequestStatus(int $InstanzID, string $Parameter)`
fragt den Ist-Wert vom Gerät ab
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Parameter` (string)
| Wert | Beschreibung |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| STATE | Status eines Aktors |
| LEVEL | Dimmwert |
| ... | Eine Übersicht aller abfragbaren "lesend" Parameter kann der Dokumentation der [Homematic Datenpunkte](https://www.symcon.de/de/llms/modules/homematic.md) unter Tipps & Tricks entnommen werden. |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Wert | Beschreibung |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| STATE | Status eines Aktors |
| LEVEL | Dimmwert |
| ... | Eine Übersicht aller abfragbaren "lesend" Parameter kann der Dokumentation der [Homematic Datenpunkte](https://www.symcon.de/de/llms/modules/homematic.md) unter Tipps & Tricks entnommen werden. |
**Beispiel**
```php
//Dies fragt eine Aktualisierung aller Parameter aller Homematic-Instanzen an.
//Dies belastet den Funkverkehr extrem und ist nicht als allgemeine Aktualisierung empfohlen.
$ids = IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");
echo "Geräte: ".sizeof($ids)."\n";
foreach($ids as $id)
{
$cids = IPS_GetChildrenIDs($id);
foreach($cids as $cid)
{
$o = IPS_GetObject($cid);
if($o['ObjectIdent'] != "") {
if(@HM_RequestStatus($id, $o['ObjectIdent']) === false) {
echo "Fehler: ".IPS_GetLocation($id)."\n";
}
break;
}
}
}
```
## HM_WriteValueBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/hm-writevalueboolean/
`bool HM_WriteValueBoolean(int $InstanzID, string $Parameter, bool $Wert)`
sendet einen neuen Soll-Wert vom Typ Boolean an die CCU
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Parameter` (string): Parameter welcher gesetzt werden soll. Der Name des Parameters kann in der [Datenpunktliste](https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf) oder als "Ident" im Reiter "Statusvariablen" in IP-Symcon nachgesehen werden.
- `$Wert` (bool): true oder false
**Rückgabewert** (bool): default
true oder false
**Beispiel**
```php
//Gerät einschalten
HM_WriteValueBoolean(12345, "STATE", true);
//Gerät sperren
HM_WriteValueBoolean(12345, "INHIBIT", true);
//Display Beleuchtung einschalten
HM_WriteValueBoolean(12345, "BACKLIGHT", true);
```
## HM_WriteValueFloat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/hm-writevaluefloat/
`bool HM_WriteValueFloat(int $InstanzID, string $Parameter, float $Wert)`
sendet einen neuen Soll-Wert vom Typ Float an die CCU
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Parameter` (string): Parameter welcher gesetzt werden soll. Der Name des Parameters kann in der Datenpunktliste oder als "Ident" im Reiter "Statusvariablen" in IP-Symcon gefunden werden.
- `$Wert` (float): Fließkommazahl die gesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Fließkommazahl die gesetzt werden soll.
**Beispiel**
```php
//Gerät auf 25% dimmen. Werte erlaubt zwischen 0.0 und 1.0
HM_WriteValueFloat(12345, "LEVEL", 0.25);
// Setzt die Einschaltdauer auf 1 Stunde. Werte erlaubt zwischen 0 und 85825945.6 in Sekunden
HM_WriteValueFloat(12345, "ON_TIME", 3600);
```
## HM_WriteValueInteger
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/hm-writevalueinteger/
`bool HM_WriteValueInteger(int $InstanzID, string $Parameter, int $Wert)`
sendet einen neuen Soll-Wert vom Typ Integer an die CCU
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Parameter` (string): Parameter welcher gesetzt werden soll. Der Name des Parameters kann in der Datenpunktliste oder als "Ident" im Reiter "Statusvariablen" in IP-Symcon gefunden werden.
- `$Wert` (int): Ganzzahliger Wert der gesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Ganzzahliger Wert der gesetzt werden soll.
**Beispiel**
```php
// Setzt die Anzahl der Alarme auf den Wert 25. Werte erlaubt zwischen 0 und 255.
HM_WriteValueInteger(12345, ALARM_COUNT, 25);
// Setzt die Anzahl der Service auf den Wert 78. Werte erlaubt zwischen 0 und 255.
HM_WriteValueInteger(12345, SERVICE_COUNT, 78);
```
## HM_WriteValueString
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-ccu/hm-writevaluestring/
`bool HM_WriteValueString(int $InstanzID, string $Parameter, string $Wert)`
sendet einen neuen Soll-Wert vom Typ String an die CCU
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Parameter` (string): Parameter welcher gesetzt werden soll. Der Name des Parameters kann in der Datenpunktliste oder als "Ident" im Reiter "Statusvariablen" in IP-Symcon gefunden werden.
- `$Wert` (string): String der gesetzt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
String der gesetzt werden soll.
**Beispiel**
```php
//Übermittelt den Wert "Hallo Welt". Beliebige Zeichenkette erlaubt.
HM_WriteValueString(12345, SUBMIT, "Hallo Welt");
```
## HomeMatic HCU (Beta)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/homematic/homematic-hcu/
_Benötigt Symcon >= 8.1_
> **Hinweis:** Dieses Modul befindest sich aktuell noch in der Betaphase. Um es nutzen zu können muss der Entwicklermodus über HCUWeb aktiviert werden. Wenn der Modus aktiviert ist, kann eQ-3 keinen technischen Support mehr leisten. Mehr Informationen: [Connect API FAQ](https://homematic-ip.com/de/home-control-unit-mit-plugin-support-und-connect-api)
> **Hinweis:** Aufgrund einer Limitation der Connect API der HCU entsprechen einige Kanalzuordnungen von Tastern nicht denen in der Homematic IP App angezeigten.
### Einbindung in IP-Symcon
Die HCU kann über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "HomeMatic HCU Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines HomeMatic HCU [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können über diesen die einzelnen Geräte und Gruppen wie unten beschrieben eingebunden werden.

Innerhalb des Konfigurators kann über "Konfigurieren" die Konfigurationsseite des "HomeMatic HCU Gateway" geöffnet werden. Dort muss der Aktivierungsschlüssel aus der HCUWeb eingetragen werden. Hierfür muss in der HCUWeb der Entwicklermodus aktiviert und der WebSocket freigegeben werden. Nachdem der Schlüssel generiert und im Gateway eingetragen wurde, kann die Einrichtung über einen Klick auf "Änderungen übernehmen" abgeschlossen werden.

Sollte zu einen späteren Zeitpunkt die HCU erneut registriert werden sollen, kann ein neuer Aktivierungsschlüssel generiert und in das entsprechende Feld eingegeben werden. Zum Abschluss des Vorgangs muss die Schaltfläche "Erneut Registrieren" in den Expertenoptionen des Gateways betätigt werden.
Im Konfigurator sind jetzt verschiedene Geräte sichtbar und in Räume aufgeteilt. Die Gruppen sind unter einem eigenen Punkt zusammengefasst. Nach der Auswahl eines Geräts oder einer Gruppe kann eine Instanz mit "Erstellen" erstellt und anschließend die Konfigurationsseite über "Konfigurieren" aufgerufen werden.
### Gerätekonfiguration

Auf der Konfigurationsseite wird neben der Geräte-ID auch der Verbindungstyp angezeigt. Aktuell gibt es nur die Verbindung über die HCU. Die "Erweiterten Einstellungen" erlauben es die Erstellung der Datenpunkte eines Gerätes zu beeinflussen. Standardmäßig ist die Option "Erstelle nur ausgewählte" aktiv. Sollte das Gerät Symcon nicht bekannt sein, werden alle Datenpunkte erstellt.
| Option | Beschreibung |
| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Erstelle nur ausgewählte | Wenn das Gerät Symcon bekannt ist, können die erstellten Datenpunkte auf die eingegrenzt werden, die für die Funktion des Gerätes am relevantesten sind. |
| Erstelle nur ausgewählte und von Whitelist | Zusätzlich zu den von Symcon gewählten Datenpunkten können aus einer Liste aller weitere Datenpunkte ausgewählt werden. |
| Erstelle nur von Whitelist | Jeder Datenpunkt, der erstellt werden soll, kann einzeln angewählt werden. |
| Alle erstellen | Es werden alle verfügbaren Datenpunkte erstellt. Diese Option wird gewählt, wenn das Gerät Symcon nicht bekannt ist |
Unten im Aktionsbereich werden alle schaltbaren Werte des Gerätes angezeigt.
> **Hinweis:** Die Konfiguration von Gruppen ist identisch aufgebaut
---
# Image Grabber
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/image-grabber/
Der Image Grabber speichert von einer bestimmten Adresse Webcam-Bilder. Diese werden automatisch als Medien-Objekte hinzugefügt und stehen somit auch in der Visualisierung zur Verfügung.
> **Achtung:** Ab IP-Symcon 4.0 werden die vom Image Grabber erstellten Medien nur noch beim Beenden von IP-Symcon auf die Festplatte geschrieben. Durch das intelligente Caching wird die Festplatte/Flashspeicher geschont, und der Inhalt nur im Arbeitsspeicher vorgehalten. Über [IPS_GetMediaContent](https://www.symcon.de/de/llms/functions/management-media.md) kann zur Laufzeit auf den aktuellen Inhalt zugegriffen werden.
### Einbindung in IP-Symcon
Eine neue Instanz über "Objekt hinzufügen" -> "Instanz hinzufügen" -> Hersteller: "(Sonstige)" einrichten.
Im Konfigurationreiter können folgende Einstellungen vorgenommen werden.
> **Hinweis:** Mit einem [MJPG-Stream](https://www.symcon.de/de/llms/concepts.md) ist es möglich eine WebCam mit bewegten Bildern anzuzeigen.
> **Hinweis:** Im Gegensatz zu den meisten anderen Instanzen, braucht dieses Modul keine übergeordnete Instanz
### Einstellungen
| Option | Beschreibung |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Adresse | Die Adresse der Webcam und Pfad/URL zum Bild. Siehe Liste unten |
| Typ | In welchem Format das Bild gespeichert werden soll. Sollte die Dateiendung in der Adresse nicht ".jpg", ".gif", ".bmp", ".png" sein, muss das Dateiformat explizit angegeben werden. |
| Intervall | In welchem Zyklus in Sekunden das Bild abgefragt soll |
| Benutze Authentifizierung | Ob eine Authentifizierung genutzt werden soll: Ja/Nein |
| Benutzername | Benutzername zur Authentifizierung |
| Passwort | Passwort zur Authentifizierung |
### Adressen
Unter dem hier aufgeführten Link sind alle gängigen Hersteller/Modelle angegeben. Unter dem jeweiligen Modell sind auch die Standard-Stream-Adressen zu erkennen, welche gegebenfalls über einen [Stream](https://www.symcon.de/de/llms/concepts.md) eingebunden werden müssen.
[Liste der Hersteller](https://www.ispyconnect.com/cameras)
### Beispiel

## IG_UpdateImage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/image-grabber/ig-updateimage/
`bool IG_UpdateImage(int $InstanzID)`
aktualisiert das Bild der Instanz
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz des zu schaltenden Gerätes
**Beispiel**
```php
// Das Bild der Instanz 12345 wird aktualisiert
IG_UpdateImage(12345);
```
---
# IPS-868
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/
Das IP-Symcon Funksystem 868 ergänzt mit seinen bidirektionalen Funkkomponenten Anwendungsbereiche, die von anderen Systemen oft nicht zufriedenstellend abgedeckt werden. Hierzu zählen die Verbrauchserfassung per S0-Eingang, die Anwesenheitskontrolle per AnwesehenheitsKontrollModul mitsamt Tracker, die Analyse der Raumluft via LuftGüteSensor, sowie die Ansteuerung von LED-Stripes.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/ips-868.md)
### Installation
Das __USB Gateway__ wird per USB mit dem PC verbunden. Die notwendigen Treiber stehen bei SiLabs zum [Download](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers) bereit. Nach dessen Installation ist das Gateway einsatzbereit.
Das __LAN Gateway__ wird per LAN mit dem PC verbunden. Standardmäßig ist DHCP und Port 5000 eingerichtet. Sollte eine individuelle IP Adresse gefordert sein, so wird das IP-Symcon "Network Configuration Tool" benötigt. Dieses steht zum [Download](https://support.symcon.de/lan-gct) bereit. Eine einfache [Beschreibung zur Konfiguration des Gateways](https://www.symcon.de/assets/files/service/NetworkConfigurationTool.pdf) steht zur Verfügung. Im Anschluss ist das Gateway über die entsprechende IP-Adresse und Port erreichbar.
> **Hinweis:** Wenn kein IP-Symcon Haus auf der Vorderseite des LAN-Gateways abgedruckt ist, ist dies ein altes Modell des Gateways. Die Installationsanleitung für dieses Modell kann [hier](https://www.symcon.de/assets/files/service/IPS868LAN-Gatewayrev.vor2015.pdf) gefunden werden.
### Einbindung in IP-Symcon
Bei Verwendung des LAN-Gateways kann dies über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "IPS-868 Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines IPS-868 [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können dort die einzelnen Geräte wie unten beschrieben eingebunden werden.
Das USB-Gateway wird direkt als Konfigurator angelegt, da es über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) nicht gefunden werden kann. Hierfür wird im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) ein "IPS-868 Configurator" erstellt. Bei der Konfiguration der Schnittstelle muss der Modus "IPS-868 USB Gateway" gewählt und anschließend der pasende Port ausgewählt und geöffnet werden.
### Konfigurator
Über den IPS-868 Konfigurator können alle IPS-868-Geräte als [Instanz](https://www.symcon.de/de/llms/concepts.md) erstellt werden. Dazu muss "Neues Gerät" aus der Liste ausgewählt und auf "Erstellen" geklickt werden.

Neue [Instanzen](https://www.symcon.de/de/llms/concepts.md) werden im [Objektbaum](https://www.symcon.de/de/llms/components/management-console.md) in der Hauptkategorie erstellt. Diese erstellten Instanzen können dann entsprechend umbenannt und an anderer Stelle einsortiert werden. Über "Konfigurieren" kann ein neu eingelegtes Gerät konfiguriert werden.
Hier muss zum einen die Geräte-ID eingetragen und je nach Gerät möglicherweise noch weitere gereätespezifische Eigenschaften definiert werden. Das genaue Verfahren und die Geräte-ID kann der Dokumentation des jeweiligen Gerätes entnommen werden. ([Geräteliste](https://www.symcon.de/de/llms/modules/ips-868.md) )

### Konfiguration
Auf der Konfigurationsseite des Gerätes können verschiedene Eigenschaften eingestellt werden.
Diese können genauer beschrieben den jeweiligen Gerätedokumentationen entnommen werden.
| Geräte Instanz | Gerätbeschreibung |
| ------------------------ | -------------------------------------------------------- |
| ACC-868 | -------------------------------------------------------- |
| AKM-868 (Tracker) | [AKM-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| ANA-868 (Analog-Ausgang) | [ANA-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| ANA-868 (Analog-Eingang) | [ANA-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| DATA-868 | -------------------------------------------------------- |
| EKM-868 (Counter) | [EKM-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| FD-868 (Display Input) | [FD-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| FD-868 (Display Output) | [FD-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| FD-868 (Display) | [FD-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| JKM-868 (LevelJET) | [JKM-868-LevelJET](https://www.symcon.de/de/llms/modules/ips-868.md) |
| JKM-868 (ThermoJET) | [JKM-868-ThermoJET](https://www.symcon.de/de/llms/modules/ips-868.md) |
| LGS-868 (Luftgütesensor) | [LGS-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| RGBW-868 (Stripe) | [RGBW-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| RGBW-868 (Stripe Input) | [RGBW-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| SERVO-868 | [SERVO-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| SERVO-868 (Input) | [SERVO-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
| TFK-868 (Input) | -------------------------------------------------------- |
| WDT-868 (WatchDog) | [WDT-868](https://www.symcon.de/de/llms/modules/ips-868.md) |
## AKM-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/akm-868/
Das Anwesenheitskontrollmodul (AKM-868) registriert die Anwesenheit beliebig vieler Tracker in seiner Nähe.
Dafür verbindet das AKM die Tracker mit IP-Symcon.
### Tracker
Der Tracker ist eine kleine Fernbedienung im Schlüsselanhängerformat in einem ovalen Gehäuse (Größe: 55* 44 *15 mm). Dieser besitzt eine Taste mit einer Doppelfunktion: kurzer und langer Tastendruck. Somit lassen sich zwei Geräte (z.B. Licht und ein Garagentor) ein- oder ausschalten. Das Besondere des Trackers ist, dass er ca. alle 75 Sekunden einen "Ping" sendet. Dieser besteht aus einer eindeutigen ID, die wiederum von IP-Symcon ausgewertet wird. Befindet sich der Tracker nicht mehr in Reichweite, so wird nach fünf Minuten eine entsprechende Variable auf FALSE gesetzt. Somit können bestimmte Szenarien beim Verlassen oder Betreten der Wohnung gestartet werden.
Die Batterie hält mindestens sechs Monate – nach heutigen Erkenntnissen sogar über ein Jahr (reiner Ping-Betrieb). Die Datenübermittlung erfolgt über das 868 MHz Frequenzband.
### Installation
Um Daten empfangen zu können, muss zuvor ein 868 Gateway (LAN oder USB) angeschlossen und eingerichtet werden. In IP-Symcon muss "AKM-868 (Tracker)" hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt.
### Konfiguration
Um das Gerät in IP-Symcon verwenden zu können, muss eine neue AKM-868 Instanz (Hersteller: IP-Symcon / ProJet) hinzugefügt werden:
* __GeräteID:__
Standardmäßig wird 0 vorgegeben. Dies bedeutet, dass von allen AKM Daten empfangen werden können. Um gezielt ein Gerät auszuwählen, kann z.B die 160 gewählt werden.
Jumper-Belegung (Blick in das Gerät, Antenne oben, untere 2 Jumper-Paare):
160: beide offen
161: rechter geschlossen
162: linker geschlossen
163: beide geschlossen
* __TrackerID:__
Um die ID zu ändern, muss beim einlegen der Batterie die Taste gedrückt gehaltenwerden.
Die ID wird von der Tracker automatisch generiert. Diese bleibt auch nach einem Batteriewechsel erhalten.
Meistens ist die TrackerID: 8191 (Vorgabe)
Wird ein "Ping" empfangen, wird "Available" automatisch auf TRUE gesetzt und zusätzlich der Zeitstempel in "Update" aktualisiert. Werden keine "Ping"-Signale über eine Dauer von mehr als fünf Minuten (fest, nicht änderbar) empfangen, wird "Available" auf FALSE gesetzt. Zusätzlich können noch die Tasten-Impulse ausgewertet werden. (Bei "Special" wurden beide Tasten gleichzeitig gedrückt – alte Version: mit zwei Tasten.)
> **Hinweis:** Es ist zu beachten, dass die Key-Variablen immer auf TRUE verbleiben und sich nur der Zeitstempel ändert.

### Tipps & Tricks
* Die Empfangsempfindlichkeit des AKM lässt sich auf “HI / LO” einstellen. Dazu muss der Jumper neben dem ATMEL Prozessor gebrückt werden (niedrige Empfangsempfindlichkeit).
Ist die Sendeleistung niedrig (LO) gewählt, kann mit einem zweiten oder dritten AKM die ungefähre Position der Fernbedienung bestimmt werden. Dies ist natürlich stark von den jeweiligen örtlichen Gegebenheiten abhängig. Eine Unterscheidung - wie z.B. Keller, Garten oder Obergeschoss - sollte jedoch möglich sein.
* Um die Reichweite der Fernbedienung nochmals deutlich zu erhöhen, kann die SMD-Antenne durch eine Drahtantenne (_Lambda-Viertel: 87mm_) ersetzt werden. Auf Anfrage ist diese bei uns erhältlich.
### Problemlösung
* Wird trotz einer neuen Batterie der Tracker nicht erkannt, dann muss die TrackerID neu vergeben (siehe oben) und anschließend im Tracker-Modul mit “Suchen” neu eingelernt werden.
## ANA-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/ana-868/
Das Analog-Digital/Digital-Analog-Wandler-Modul hat 2 Analog-Eingänge (10V, Eingangsimpedanz 10kOhm) und 2 Analog-Ausgänge (10V/10mA).
### Installation
Um die Daten von gemessenen Spannungen einlesen oder um Spannungen an den Ausgängen setzen zu können, muss zuvor ein 868 Gateway angeschlossen und eingerichtet werden. In IP-Symcon muss ein "ANA-868 (Analog-Eingang/ Analog-Ausgang)" Modul hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt/verbunden.
### Konfiguration
| Wert | Beschreibung |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Geräte-Adresse | Standardmäßig wird die ID:184 vorgegeben. Sind mehr Controller in einem System vorhanden, muss eine neue ID vergeben werden. Die Jumper-Belegung kann der Bedienungsanleitung entnommen werden. |
| Kanal-Adresse | (1-4) Gibt an welcher der jeweils zwei Ausgangs-/Eingangskanäle benutzt werden soll. |
## PJ_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/ana-868/pj-requeststatus/
`bool PJ_RequestStatus(int $InstanzID)`
Frage den Status von Variablen ab und setzt diese
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
//Fragt die aktuellen Werte der Instanz 12345 ab.
PJ_RequestStatus(12345);
```
## PJ_SetVoltage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/ana-868/pj-setvoltage/
`bool PJ_SetVoltage(int $InstanzID, float $Volt)`
Setzt den Ausgang auf eine bestimmte Spannung
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Volt` (float): Spannung auf den der Ausgang gesetzt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Spannung auf den der Ausgang gesetzt werden soll
**Beispiel**
```php
//Setzt die Ausgangsspannung auf 5,30 Volt
PJ_SetVoltage(12345, 5.30);
```
## EKM-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/ekm-868/
### Beschreibung
Das Energiekontrollmodul (EKM-868) ist ein 4-Kanal-Zählermodul mit je 32 Bit, das Zählimpulse von vier Eingängen sowie deren Dauer erfasst. Die bidirektionale Datenübermittlung erfolgt über einen USB-Funktransceiver im 868 MHz Frequenzband. Es dient der Visualisierung und Hochrechnung von Verbrauchskosten im Zusammenspiel mit IP-Symcon. Der Zählerstand bleibt solange erhalten, wie eine Spannungsversorgung (9V= Steckernetzteil) besteht. Eine Löschung (Reset) des Zählerstand durch eine Spannungsunterbrechung wird durch IP-Symcon erkannt; eine Batterie-Pufferung ist somit nicht erforderlich. Den eingeschalteten PC benötigt man nur, um einzelne Werte mit einem Zeitstempel zu versehen und Grafiken zu generieren. Eine Besonderheit des EKM 868 ist es, dass zusätzlich die aktuelle Leistung (Verbrauch) erfasst wird.
### Installation
Um Zählerdaten abfragen zu können, muss zuvor unter Windows der virtuelle COM-Port Treiber installiert werden und der USB-Funktransceiver angeschlossen werden.
### Konfiguration
Es muss eine neue Instanz EKM-868 (Hersteller: IP-Symcon / ProJet) erstellt werden:

| Wert | Beschreibung |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GeräteID | Standardmäßig wird 128 vorgegeben. Sind zwei EKM in einen System vorhanden, kann im Gerät ein Jumper gesetzt werden: die beiden unteren Pins (Richtung Steckleiste, obere PIN: NC). Die neue ID ist dann 129. ACHTUNG: Sind rote LEDs verbaut (1 bis 4), so ist die ID 129 bei geöffnetem Jumper ! Geräte mit der ID 130/131 usw. sind auf Anfrage erhältlich. |
| ZählerID | Die ID entspricht den jeweiligen Eingängen (Kanälen): 1,2,3,4 |
| Modus: Lese Zähler | Es wird der Zählerstand (Variable: Counter) sowie der zeitliche Abstand in 1/100 Sekunden zwischen zwei Impulsen (Current) ausgelesen. |
| Modus: Lese An-Zeit | Die Einschaltdauer (Kontakt geschlossen) wird in 1/10 Sekunden zurückgegeben (bei 32 Bit ergibt dies eine Zeitspanne von mehr als 13 Jahren!) |
| Modus: Lese Aus-Zeit | Die Ausschaltdauer (Kontakt geöffnet) wird in 1/10 Sekunden zurückgegeben |
| Impulse | Bei Stromzählern werden hier die Impulse pro kWh eingetragen. Die Einheit der Variable “Current” ist dann ebenfalls kWh. Bei einer 0 ist die Einheit 1/100 Sekunde – also ideal um z.B. den Volumenstrom bei Gas- oder Wasser-Zähler zu ermitteln. |
| Timer aktiviert | Bei einem gesetztem Häkchen werden Werte im angegebenen Zeitintervall abgefragt. Diese ist auf ein Minimum von 60 Sekunden limitiert. |
| Test Center | Ein Befehl zur Ausgabe von Werten wird an das EMK gesendet. Bei ordnungsgemäßer Installation werden die Variablen im Objektbaum entsprechend aktualisiert. |
> **Achtung:** Achtung:
> Die Eingänge sind nicht galvanisch getrennt – sie dürfen nicht +5V überschreiten. Bei Draufsicht ist die gemeinsame Masse der vier Eingänge jeweils der rechte Anschluss. An jedem Eingang wurde ein RC-Glied verbaut: 1K als Pull-Up und 100nF an Masse. Ein Schalten z.B. mit einem Reed-Kontakt gegen Masse bewirkt einen Zählimpuls. Die Spannungsversorgung darf =12V nicht überschreiten. Höhere Spannungen oder eine Verpolung führen zu einer Zerstörung des Gerätes. Dann ist eine externe Schutzschaltung (Z-Diode, Vorwiderstand) vorzusehen.
### Tipps & Tricks
* Der interne Zeitmessung (Current) hat eine Auflösung von 16-Bit und 1/100 Taktung.
Dies bedeutet, es können Impulsfolgen von einer Länge von maximal 655 Sekunden (fast 11 Minuten) erfasst werden.
Bei einem Überlauf wird eine -0- zurückgegeben.
* Intern wird folgende Formel für die Umrechnung der aktuellen Leistung in Watt verwendet:
P = (3600 * 1000) / (Current / 100 * Impulses) [Watt]
Wobei “Current” die Zeit zwischen zwei Impulsen in 1/100 Sekunden ist.
* Zur Anzeige des aktuellen Energieverbrauchs (Energie-Ampel) haben sich in der Praxis Intervalle von 20 Minuten als optimal herausgestellt.
* Wird der Zähler z.B. durch eine Spannungsunterbrechung gelöscht, so ist dies nicht relevant, da IP-Symcon dies automatisch erkennt und bei der Generierung der Grafiken berücksichtigt.
> **Hinweis:** Problem: LED leuchtet permanent
> Lösung: Ggf. die Adern des betreffenden Zählereingangs tauschen (elektronisch)
> oder warten bis der Zähler sich weiter dreht und den Reed-Kontakt freigibt (mechanisch).
### Technische Daten
* Abmessungen (ohne Antenne): 70 * 70 * 25 mm
* Gewicht: 100g
* Stromversorgung: 9V bis 12V DC / 100 mA / Anschluss: DC-Buchse für Hohlstecker 2,1mm, der innere Kontakt der DC-Buchse ist der Pluspol
* 4 * S0 Eingänge / 4 * 32-Bit Zähler (TTL – 5V)
* maximale Zähl-Frequenz: 100 Hz
* minimale Impulslänge: 20 msec (intern für mechanische Kontakte entprellt)
* Schutzklasse: IP 20
* Funkmodul: 868MHz (IPS-868 Gateway (LAN oder USB) ist nicht im Lieferumfang enthalten)
## PJ_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/ekm-868/pj-requeststatus/
`bool PJ_RequestStatus(int $InstanzID)`
Frage den Status von Variablen ab und setzt diese
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
//Fragt die aktuellen Werte der Instanz 12345 ab.
PJ_RequestStatus(12345);
```
## FD-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/fd-868/
### Funktion
Das Funkdisplay 868 dient der Anzeige von Text-Meldungen auf einem 2*16-stelligen LC-Display.
Zusätzlich können drei LEDs und ein Tongeber geschaltet werden.
Optional ist eine IO-Box (Relais-Platine) mit zwei Ausgängen (10A/250V) sowie zwei Eingängen (TTL +5V) erhältlich.
Die bidirektionale Datenübermittlung erfolgt über einen USB-Funktransceiver im 868 MHz Frequenzband.
Dabei können alle Tastendrücke ausgewertet werden und zusätzlich die Displaybeleuchtung an/-ausgeschaltet werden.
### Installation
Um Daten empfangen zu können, muss zuvor unter Windows der virtuelle COM-Port Treiber von Silicon Labs (CP210x) installiert und der USB-T 868 Funktransceiver angeschlossen werden. In IP-Symcon muss "FD-868 (Display)" hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt.
### Konfiguration
Die folgenden Eigenschaften können wie folgt verändert werden (nicht per Befehl): linke Taste am Display gedrückt halten und Gerät dabei einschalten. Weitere Anweisungen erscheinen auf dem Display.
| Wert | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Geräte-Adresse | Standardmäßig wird die ID:1 vorgegeben. Sind mehr Displays in einem System vorhanden, muss eine neue ID vergeben werden. |
| Gruppen-Adresse | Hier können alle Displays z.B. des Erdgeschoss gemeinsam angesprochen werden. Diese Funktion ist bei der ersten Generation nicht verfügbar. |
| Broadcast-Adresse | Fest: 255 – es werden alle Displays gemeinsam angesprochen |
| Tastenklick | Ein / Aus |
> **Achtung:** Es darf nur jeweils ein Gerät mit derselben ID in einem Funknetzwerk vorhanden sein.
> **Hinweis:** Optional ist eine externe IO-Box (Relais-Platine) mit zwei Ausgängen (10A/250V) sowie zwei Eingängen (TTL +5V) erhältlich. RJ-11-Buchse-Belegung (Display):
> 1 – Eingang 1 / TTL
> 2 – GND
> 3 – Ausgang 1 / Open Collector
> 4 – Ausgang 2 / Open Collector
> 5 – VCC /+5V
> 6 – Eingang 2 / TTL
> IO-BOX Buchse über der Klemme von ‘Ausgang 1′
### Tipps & Tricks
Skripte für eine Menü-Steuerung sind in unserem Forum verfügbar:
[Link zum Forenbeitrag](https://community.symcon.de/t/v2-3-first-steps/17234/15)
> **Achtung:** Der Tasten-Klick lässt sich bei der ersten Generation nicht abstellen.
> Er signalisiert dem Bediener, dass der Befehl vom USB-Funk-Transceiver angenommen worden ist (Quittierung).
## PJ_Backlight
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/fd-868/pj-backlight/
`bool PJ_Backlight(int $InstanzID, bool $Status)`
schaltet die Displaybeleuchtung An oder Aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
PJ_Backlight(12345, true);
```
## PJ_Beep
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/fd-868/pj-beep/
`bool PJ_Beep(int $InstanzID, int $ZehntelSekunden)`
gibt ein Tonsignal aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$ZehntelSekunden` (int): Länge des Tones in 1/10 Sekunden
**Rückgabewert** (bool): default
Länge des Tones in 1/10 Sekunden
**Beispiel**
```php
PJ_Beep($id_lcd, 50); // Beep fuer 0,5 Sekunden
```
## PJ_LCDText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/fd-868/pj-lcdtext/
`bool PJ_LCDText(int $InstanzID, int $Line, string $Text)`
sendet einen Text an das Display
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Line` (int): Zeilennummer des Display (1 oder 2)
- `$Text` (string): Zeilentext, maximal 16 Zeichen – der Rest wird abgeschnitten
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeilentext, maximal 16 Zeichen – der Rest wird abgeschnitten
**Beispiel**
```php
PJ_LCDText($id_lcd, 1, "ALARM - Meldung"); // Text in Zeile 1 ausgeben
```
## PJ_SwitchLED
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/fd-868/pj-switchled/
`bool PJ_SwitchLED(int $InstanzID, int $LED, bool $Status)`
schaltet einen LED vom Display
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$LED` (int): 1
- `$Status` (bool): True = Ein / False = Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
True = Ein / False = Aus
**Beispiel**
```php
PJ_SwitchLED($id_lcd,1,False); // Rot
PJ_SwitchLED($id_lcd,3,True); // Gruen
```
## PJ_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/fd-868/pj-switchmode/
`bool PJ_SwitchMode(int $InstanzID, bool $Status)`
schaltet ein FS20 Gerät ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Relais
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
PJ_SwitchMode($id_lcd, True); //Relais einschalten
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/geraeteliste/
### Unterstützte Gateways
| Gateway | | Beschreibung |
| ---------------- | ----------------------------------------------------------------------------- | ----------------------------- |
| Symcon LAN-T 868 | [Produktinformation](https://www.symcon.de/assets/files/product/ips-868-lan-gateway.pdf) | IP Gateway mit LAN-Anschluss |
| Symcon USB-T 868 | | USB Gateway mit USB-Anschluss |
### Unterstützte Komponenten
| Komponenten | | Beschreibung |
| -------------------------------------------------------- | ---------------------------------------------------------------------- | --------------------------------------------------------------- |
| [AKM-868](https://www.symcon.de/de/llms/modules/ips-868.md) | [Produktinformation](https://www.symcon.de/assets/files/product/ips-868-akm.pdf) | AnwesenheitsKontrollModul |
| [EKM-868](https://www.symcon.de/de/llms/modules/ips-868.md) | [Produktinformation](https://www.symcon.de/assets/files/product/ips-868-ekm.pdf) | EnergieKontrollModul (4-Kanal-Zählermodul) |
| [FD-868](https://www.symcon.de/de/llms/modules/ips-868.md) | | Funkdisplay |
| [JKM-868 LevelJET](https://www.symcon.de/de/llms/modules/ips-868.md) | | LevelJET |
| [JKM-868 ThermoJET](https://www.symcon.de/de/llms/modules/ips-868.md) | | ThermoJET |
| [LGS-868](https://www.symcon.de/de/llms/modules/ips-868.md) | [Produktinformation](https://www.symcon.de/assets/files/product/ips-868-lgs.pdf) | LuftGüteSensor |
| [RGBW-868](https://www.symcon.de/de/llms/modules/ips-868.md) | [Produktinformation](https://www.symcon.de/assets/files/product/ips-868-rgbw.pdf) | LED-Stripe Controller (12V/24V) |
| [SERVO-868](https://www.symcon.de/de/llms/modules/ips-868.md) | | 4-fach Servocontroller |
| Tracker-868 | [Produktinformation](https://www.symcon.de/assets/files/product/ips-868-akm.pdf) | Schlüsselanhänger (wird in Kombination mit dem AKM-868 genutzt) |
| [WDT-868](https://www.symcon.de/de/llms/modules/ips-868.md) | | Watch-Dog-Timer |
## JKM-868 LevelJET
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/jkm-868-leveljet/
### Beschreibung
Der JKM-868 mit angeschlossenem LevelJET dient dem Auslesen der einzelnen Werte der LevelJET Füllstandsanzeige.
### Installation
Um Daten empfangen zu können, muss zuvor unter Windows der virtuelle COM-Port Treiber von Silicon Labs (CP210x) installiert und der USB-T 868 Funktransceiver angeschlossen werden. In IP-Symcon muss "JKM-868 (LevelJET)" hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt.
Alternativ kann auch das 868-LAN-Gateway verwendet werden. Als "Übergeordnete Instanz" muss ein Client Socket mit den entsprechenden Einstellungen ausgewählt werden.
### Konfiguration
Bei der GeräteID wird standardmäßig 166 vorgegeben und muss zu der Adresse des jeweiligen Gerät hinzuaddiert werden. Beispiel: der LevelJET hat die Adresse 12 - also muss hier die 178 eingetragen werden. Die Parametrisierung der Adresse im LevelJET erfolgt gemäß der Anleitung des Herstellers.
| Variable | Beschreibung |
| ---------- | --------------------- |
| Distance | Abstand in cm |
| Output (1) | Zustand des 1. Relais |
| Output (2) | Zustand des 2. Relais |

> **Achtung:** Der Distance-Wert (Eingang) wird zyklisch im eingestellten „Intervall“ abgefragt. Der Status beider Ausgänge kann nicht aktiv abgefragt werden. Er wird automatisch gesendet, nachdem die im LevelJET eingestellten Distanzschwellen über- bzw. unterschritten wurden.
### Tipps & Tricks
Um das Volumen in Liter zu berechnen müssen eigene PHP-Skripte erstellt werden.
## PJ_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/jkm-868-leveljet/pj-requeststatus/
`bool PJ_RequestStatus(int $InstanzID)`
Frage den Status von Variablen ab und setzt diese
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
//Fragt die aktuellen Werte der Instanz 12345 ab.
PJ_RequestStatus(12345);
```
## JKM-868 ThermoJET
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/jkm-868-thermojet/
### Beschreibung
Der JKM-868 mit angeschlossenem ThermoJET dient dem Auslesen der einzelnen Werte des ThermoJET Temperaturreglers.
### Installation
Um Daten empfangen zu können, muss zuvor unter Windows der virtuelle COM-Port Treiber von Silicon Labs (CP210x) installiert und der USB-T 868 Funktransceiver angeschlossen werden. In IP-Symcon muss "JKM-868 (ThermoJET)" hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt.
Alternativ kann auch das 868-LAN-Gateway verwendet werden. Als "Übergeordnete Instanz" muss ein "Client Socket" mit den entsprechenden Einstellungen ausgewählt werden.
### Konfiguration
Bei der GeräteID wird standardmäßig 166 vorgegeben und muss zu der Adresse des jeweiligen Gerät hinzuaddiert werden. Beispiel: der ThermoJET hat die Adresse 17 - also muss hier die 183 eingetragen werden. Der ThermoJET besitzt 8 Eingänge - sind mehr als 4 Temperaturführer angeschlossen, so muss eine zweite JKM-Instanz mit der Modus-Einstellung: "Eingang (5-8)" in IP-Symcon hinzugefügt werden.
| Variable | Beschreibung |
| ----------------- | --------------------- |
| Output (1) | Zustand des 1. Relais |
| Output (2) | Zustand des 2. Relais |
| Temperature(1..4) | Temperatur-Wert in °C |
> **Achtung:** Hinweis: Ist kein Fühler angeschlossen, wird -99,9°C ausgegeben
> **Hinweis:** Wird eine zweite Instanz für den Eingang 5-8 erstellt, so heißen die neuen Variablen dennoch Temperatur 1-4. Diese können bei Bedarf umbenannt werden. Die Variablen für die Ausgänge 1+2 sind in beiden Modi gleich.

> **Achtung:** Die vier Temperatur-Kanäle (Eingänge) werden zyklisch im eingestellten „Intervall“ abgefragt. Der Status beiden Ausgänge kann nicht aktiv abgefragt werden. Dieser wird automatisch gesendet, nachdem die im ThermoJET eingestellten Temperaturschwellen über- bzw. unterschritten wurden.
## PJ_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/jkm-868-thermojet/pj-requeststatus/
`bool PJ_RequestStatus(int $InstanzID)`
Frage den Status von Variablen ab und setzt diese
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
//Fragt die aktuellen Werte der Instanz 12345 ab.
PJ_RequestStatus(12345);
```
## LGS-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/lgs-868/
Der Luftgütesensor (LGS-868) analysiert die Raumluft und fasst die Konzentration von Mischgasen in der Luft zu einem verwertbaren Wert (ppm - parts per million) zusammen.
> **Hinweis:** Technische Hinweise sowie Ratschläge zum richtigen Lüften können in der folgenden Broschüre gefunden werden: [Download](https://www.symcon.de/assets/files/product/IPS-868-lgs-ds.pdf)
### Installation
Um Daten empfangen zu können, muss zuvor ein IPS-868 Gateway (LAN oder USB) angeschlossen und eingerichtet werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt.
### Konfiguration
Um das Gerät in IP-Symcon verwenden zu können, muss eine neue LGS-868 Instanz (Hersteller: IP-Symcon / ProJet) hinzugefügt werden.
Falls übergeordnete Instanzen noch nicht vorhanden sind, werden diese automatisch angelegt.
| Wert | Beschreibung |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Geräte-Adresse | Standardmäßig wird die ID:176 vorgegeben. Sind mehrere Controller in einem System vorhanden, muss eine neue ID vergeben werden. Die Jumper-Belegung kann der Bedienungsanleitung entnommen werden. |
> **Achtung:** Es darf nur jeweils ein Gerät mit der selben ID in einem Funknetzwerk vorhanden sein.
### Anwendung
Das Gerät liefert einen Integer Wert zurück, welcher die gemessenen ppm (parts per million / millionstel Anteil) zurückgibt. Die offiziellen Grenzwerte können der folgenden Tabelle entnommen werden.
Der LGS-868 besitzt 3 LEDs (grün/gelb/rot), welche automatisch bei den Grenzwerten (450-1000 / 1001-1500 / 1501-2100) von IP-Symcon geschaltet werden. Die Automatik kann abgeschaltet werden, indem "Limit (Gelb)" und "Limit (Rot)" in der Konfigurationsseite auf 0 gesetzt werden.
| ppm | Luftqualität |
| ------------- | ----------------------------------------------------------------- |
| >2100 | Sehr Schlecht (stark verschmutzte Raumluft; Lüftung erfolderlich) |
| 2100 ... 1501 | Schlecht (stark verschmutzte Raumluft; Lüftung erforderlich) |
| 1500 ... 1001 | Mittel (verschmutzte Raumluft; Lüftung empfohlen) |
| 1000 ... 801 | Befriedigend |
| 800 ... 601 | Gut |
| 600 ... 450 | Hervorragend |
> **Hinweis:** Extrem hohe Werte über 2100 ppm enstehen selten und beruhen auf z.B. mögliche Alkohole in Putzmitteln oder typische Gerüche auf einer Toilette.
## PJ_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/lgs-868/pj-requeststatus/
`bool PJ_RequestStatus(int $InstanzID)`
Frage den Status von Variablen ab und setzt diese
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
//Fragt die aktuellen Werte der Instanz 12345 ab.
PJ_RequestStatus(12345);
```
## PJ_SetLEDs
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/lgs-868/pj-setleds/
`bool PJ_SetLEDs(int $InstanzID, bool $Grün, bool $Gelb, bool $Rot)`
schaltet LEDs am LuftGüteSensor
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Grün` (bool): Schaltet die grüne LED
- `$Gelb` (bool): Schaltet die gelbe LED
- `$Rot` (bool): Schaltet die rote LED
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Schaltet die rote LED
**Beispiel**
```php
//Schaltet die grüne und gelbe LED ein und die rote LED aus.
PJ_SetLEDs(12345,true,true,false);
```
## RGBW-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/rgbw-868/
### Beschreibung
Der LED-Stripe Controller dient der Ansteuerung von LED-Stripes, um unterschiedliche Licht-Szenarien und Stimmungen in Wohnräumen zu ermöglichen.
> **Hinweis:** [Bedienungsanleitung als PDF](http://projet.de/Datasheets/RGBW868_24V.pdf)
### Installation
Um mit dem Controller zu kommunizieren, muss zuvor der virtuellen COM-Port Treiber installiert und der USB-Funktransceiver angeschlossen werden. In IP-Symcon muss "RGBW-868 (Stripe)" hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt. Es muss geprüft werden, ob der richtige COM-Port ausgewählt wurde.
### Konfiguration
| Wert | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Geräte-Adresse | Standardmäßig wird die ID:144 vorgegeben. Sind mehr Controller in einem System vorhanden, muss eine neue ID vergeben werden. Die Jumper-Belegung kann der Bedienungsanleitung entnommen werden. Hinweis: Ggf. sind die Adressen: 149,150 und 151 vom System belegt. |
| Broadcast-Adresse | Fest: 254 – Es werden alle Controller gemeinsam angesprochen. |
> **Achtung:** Es darf nur jeweils ein Gerät mit der selben ID in einem Funknetzwerk vorhanden sein.
### Ein erster Test
Für einen Funktionstest kann in IP-Symcon die Konfigurationsseite mit einem Rechtsklick (oder per Doppelklick) auf die "RGBW-868 (Stripe)" Instanz und anschließend auf "Objekt öffnen" geöffnet werden. Dort kann eine Farbe, bzw. (wenn angeschlossen) ein Helligkeitswert für den Weiß-Kanal gewählt werden. Anschließend muss auf "RGBW setzen" geklickt werden. Die LED-Stripe leuchtet nun in der gewünschten Farbe.

### Bei Problemen überprüfen
* Beim Einschalten der 12V Spannungsversorgung blitzt der LED-Stripe kurz auf.
* Die LED auf der Platine, sichtbar durch die Lüftungsschlitze, leuchtet ebenfalls hell auf und blinkt dann gleichmäßig (sehr) schwach weiter.
* Alle Jumper offen bedeutet Adresse 144.
* Werden Befehle empfangen, leuchtet die LED zusätzlich.
* Der Splitter "ProJet Gateway" muss mit dem richtigen COM-Port (USB-T) bzw. der richtigen IP-Adresse (LAN-T) verbunden sein
### Tipps & Tricks
Zusätzlich zu den Lichtstimmungen lassen sich auch z.B. blinkende Warnmeldungen oder blitzende Hinweis ausgeben. Da das Funksystem Bidirektional ist können durch die beiden Tasteingänge des Controllers solche Meldungen quittiert werden. Für diese Funktionalität muss die "RGBW-868 (Stripe) Eingang" Instanz in IP-Symcon hinzugefügt werden.
## PJ_DimRGBW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/rgbw-868/pj-dimrgbw/
`bool PJ_DimRGBW(int $InstanzID, int $R, int $RZeit, int $G, int $GZeit, int $B, int $BZeit, int $W, int $WZeit)`
dimmt einen LED Stripe
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$R` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$RZeit` (int): In Sekunden in die der gewünschte Helligkeitswert erreicht werden soll
- `$G` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$GZeit` (int): In Sekunden in die der gewünschte Helligkeitswert erreicht werden soll
- `$B` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$BZeit` (int): In Sekunden in die der gewünschte Helligkeitswert erreicht werden soll
- `$W` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$WZeit` (int): In Sekunden in die der gewünschte Helligkeitswert erreicht werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
In Sekunden in die der gewünschte Helligkeitswert erreicht werden soll
**Beispiel**
```php
//in 2 Sekunden auf Gelb dimmen
PJ_DimRGBW(12345,255,2,255,2,0,0,0,0);
```
## PJ_RunProgram
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/rgbw-868/pj-runprogram/
`bool PJ_RunProgram(int $InstanzID, int $Programm)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Programm` (int): 0 – alle RGBW auf Aus; 1 – alle RGBW auf den letzten Helligkeits-Wert; 2- Blinken langsam; 3- Blinken schnell; 4- Blitzen (Flash) langsam; 5- Blitzen (Flash) schnell; 6- An- u. Abschwellen (Fade) langsam
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 – alle RGBW auf Aus; 1 – alle RGBW auf den letzten Helligkeits-Wert; 2- Blinken langsam; 3- Blinken schnell; 4- Blitzen (Flash) langsam; 5- Blitzen (Flash) schnell; 6- An- u. Abschwellen (Fade) langsam
**Beispiel**
```php
//LEDs schnell blinken lassen
PJ_RunProgram(12345, 3);
```
## PJ_SetRGBW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/rgbw-868/pj-setrgbw/
`bool PJ_SetRGBW(int $InstanzID, int $R, int $G, int $B, int $W)`
setzt einen Farbwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$R` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$G` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$B` (int): Helligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
- `$W` (int): Gesamthelligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gesamthelligkeitswert 0 (aus) bis 255 (an, maximale Helligkeit)
**Beispiel**
```php
// Auf Gelb bei voller Helligkeit schalten
PJ_SetRGBW(12345,255,255,0,255);
```
## SERVO-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/servo-868/
### Beschreibung
Der 4-fach Servocontroller dient der Ansteuerung von handelsüblichen Modellbauservos mit dem RJ-Stecksystem. Als zweite Funktion können bis zu vier Taster als Steuereingänge angeschlossen werden.
### Installation
Um mit dem Controller zu kommunizieren, muss zuvor das USBT-868 oder LAN-T-868 Gateway installiert worden sein. In IP-Symcon muss die Instanz "Servo-868" hinzugefügt werden. Die übergeordneten Instanzen z.B. das "ProJetGateway" werden automatisch angelegt. Es muss überprüft werden, ob der richtige virtuelle COM-Port vom USB Gateway ausgewählt wurde. Beim LAN-T-868 Gateway muss im "Client Socket" die korrekte IP-Adresse und der Port angegeben werden.
### Konfiguration
Als Geräte-Adresse wird standardmäßig die ID:160 vorgegeben. Sind mehr Controller in einem System vorhanden, muss eine neue ID vergeben werden. Die Jumper-Belegung kann der Bedienungsanleitung entnommen werden.
### Ein erster Test
Für einen schnellen ersten Funktionstest muss das Gerät an eine passende Stromquelle angeschlossen werden. Es ist auf die richtige Polung zu achten. Anschließend wird ein Servo mit Flachbahnkabel und einem Stecker im Rastermaß 2,54 mm mit dem Servo-Ausgang verbunden. In der Regel ist die braune Litze "Minus", rot "Plus" und orange das "PWM" Signal. In IP-Symcon kann die Konfigurationsseite mit einem Rechtsklick (oder per Doppelklick) auf die "Servo-868" Instanz und anschließend auf "Objekt öffnen" geöffnet werden. In der 'Testumgebung' geben kann in dem jeweiligen "Channel" ein Wert zwischen 0 und 255 eingegeben werden. Nach "Set Channel n" bewegt sich der Servo in eine neue Position.
### Tipps & Tricks
[https://de.wikipedia.org/wiki/Servo](https://de.wikipedia.org/wiki/Servo)
[https://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung](https://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung)
[http://www.electronicsplanet.ch/Roboter/Servo/intern/intern.htm](http://www.electronicsplanet.ch/Roboter/Servo/intern/intern.htm)
## PJ_DimServo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/servo-868/pj-dimservo/
`bool PJ_DimServo(int $InstanzID, int $Kanal, int $Wert, int $Schritte)`
setzt Schrittweise einen Servo-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Kanal` (int): Servo-Kanal 1..4
- `$Wert` (int): Wert von 0..255
- `$Schritte` (int): Schritte von 0 (sofort) über 1 (langsam) bis 255 (schnell)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Schritte von 0 (sofort) über 1 (langsam) bis 255 (schnell)
**Beispiel**
```php
// Setzt sofort den ServoKanal 1 auf den Wert 255
PJ_DimServo(12345, 1, 255, 0);
```
## PJ_SetServo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/servo-868/pj-setservo/
`bool PJ_SetServo(int $InstanzID, int $Kanal, int $Wert)`
setzt einen Servo Kanal
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Kanal` (int): Servo-Kanal 1..4
- `$Wert` (int): Wert von 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert von 0..255
**Beispiel**
```php
PJ_SetServo(12345, 1, 255);
```
## WDT-868
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/wdt-868/
### Beschreibung
Der Watch-Dog-Timer dient der Überwachung von PC-Systemen bzw. einzelnen Programmen. Hierzu wird zyklisch ein “Lebenszeichen” vom PC an den WDT gesendet. Wird dies nicht korrekt empfangen, kann über einen potentialfreien Kontakt z.B. eine Sirene angesteuert oder ein Hardware-Reset ausgeführt werden.
Zusätzlich kann das UM-Relais (5A/230V) ein- und ausgeschaltet oder über einen Timer (bis 65.535 Sek.) angesprochen werden. Das Gerät verfügt außerdem über einen Tast-Eingang zur freien Verfügung. Dessen Status wird als Variable in IP-Symcon dargestellt.
### Installation
Um Daten empfangen zu können, muss zuvor unter Windows der virtuelle COM-Port Treiber von Silicon Labs (CP210x) installiert und der USB-T 868 Funktransceiver angeschlossen werden. In IP-Symcon muss "WDT-868" hinzugefügt werden. Die übergeordneten Instanzen (z.B. das Gateway) werden automatisch angelegt.
### Konfiguration
Bei der GeräteID wird standardmäßig 165 vorgegeben (Position 0). Diese kann durch Drehen des Codier-Schalters bis 174 (Position 9) verändert werden.

| Variable | Beschreibung |
| -------- | ------------------------------------------------------------ |
| Input | False: Taster offen / True: Taster gedrückt |
| Status | False: Relais stromlos / True: Relais angezogen |
| Timer | Zeit in Sekunden, nach der das Relais seinen Status wechselt |
> **Hinweis:** Nach Ablauf des Timers sendet der WDT den neuen Zustand des Relais. Die Status-Variable wird entsprechend aktualisiert (keine Simulation).
> Bei einem aktiven Timer blinkt die LED im Sekundentakt.
> Ein kurzes Blitzen signalisiert Funkbefehle im IP-Symcon-868-Funksystem.
> **Achtung:** Es darf nur jeweils ein Gerät mit derselben ID in einem Funknetzwerk vorhanden sein.
### Tipps & Tricks
An die beiden Kontakte das Tasters kann z.B. auch ein externer Schalter (Klingel, Bewegungsmelder, Lichtschranke usw.) angeschlossen werden.
## PJ_SwitchDuration
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/wdt-868/pj-switchduration/
`bool PJ_SwitchDuration(int $InstanzID, bool $Status, int $Dauer)`
schaltet ein Relais
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
- `$Dauer` (int): Ein- oder Ausschaltdauer in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Ein- oder Ausschaltdauer in Sekunden
**Beispiel**
```php
//Der folgende Befehl schaltet das Relais 60 Sekunden ein:
PJ_SwitchDuration(12345, True, 60);
```
## PJ_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ips-868/wdt-868/pj-switchmode/
`bool PJ_SwitchMode(int $InstanzID, bool $Status)`
sendet einen Schaltbefehl
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
PJ_SwitchMode(12345, True);
```
---
# IR Trans
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/irtrans/
IRTrans ist ein Infarotgerät, welches via USB, LAN oder WLAN mit IP-Symcon verbunden wird.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/irtrans.md)
### Beschreibung
Mit Hilfe von Infrarotsignalen lassen sich existierende Audio- und Videogeräte preiswert und problemlos in die Hausautomation einbinden. Außerdem können z.B. Licht-Szenarien über die Infrarotfernbedienung aktiviert oder die Rollläden heruntergelassen werden. Dazu ist im Prinzip nur eine Sende- und Empfangsdiode notwendig – je nach Wunsch als Fertiggerät oder zum Basteln…
Hersteller: IRTrans: "… macht Ihren PC zu einer programmierbaren Fernbedienung"
[http://www.irtrans.de/de/index.php](http://www.irtrans.de/de/index.php)
### Installation
Um IR-Signale über IRTrans empfangen/senden zu können, wird ein IRTrans kompatibles Gerät, wie die USB, LAN oder WLAN Variante, benötigt. Sobald die Geräte innerhalb der IRTrans Tray Software funktionieren, kann die Installation innerhalb von IP-Symcon beginnen. [www.irtrans.de/download/setup.exe](http://www.irtrans.de/download/setup.exe)
Über das IRTrans Tray Icon (Rechte Maustaste -> Diagnostics) können die Geräte IDs abgefragt werden, die von der IRTrans Server Applikation gefunden wurden und die dann über IP-Symcon angesteuert werden können. Das folgende Bild zeigt ein IRTrans LAN Gerät, welches die ID 0 hat.

### Einlernen der Fernbedienung
Der Hersteller empfiehlt das Einlernen der Befehle über den ”IRTrans GUI Client”. Dazu muss zunächst der Name der Fernbedienung eingegeben werden (z.B. “sat”) und die betreffende Taste (z.B. “power”). Ein Einlernen über IP-Symcon ist nicht möglich.
### Einbindung in IP Symcon

> **Achtung:** Wenn ein Gerät eine IRDB besitzt, kann statt dem localhost auch direkt die IP-Adresse des Geräts angeben werden. Die Kommunikation mit dem IRTrans Server ist nicht ziwngend notwendig. Anderfalls muss __localhost__ angegeben werden!
In der Konfiguration der IRTrans Instanz muss die GeräteID angegeben werden, die aus dem oberen Diagnose Fenster entnommen werden kann. Jede Instanz kann nur ein einzelnes Gerät ansteuern. Es können jedoch beliebig viele IRTrans Instanzen erstellt werden. Wenn später an mehrere Geräte gesendet werden soll, können einfach mehrere PHP Befehle an mehrere Instanzen hintereinander versendet werden. Über das Test-Center kann die Funktion überprüft werden.

Das IRTrans Modul stellt im Objektbaum zwei Variablen bereit, über die auf die aktuell gedrückte Fernbedienung und Taste reagiert werden kann. Dazu muss ein ausgelöstes Ereignis erstellt werden, dass auf die Aktualisierung der “Taste”-Variable reagiert.

## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/irtrans/geraeteliste/
### Unterstützte Gateways
| Gateway | Beschreibung |
| ---------------------- | --------------------- |
| IRTrans Ethernet Modul | IR-Trans LAN-Adapter |
| IRTrans USB Modul | IR-Trans USB-Adapter |
| IRTrans WLAN Modul | IR-Trans WLAN-Adapter |
### Unterstützte Komponenten
Die Liste der unterstützten Infrarot Geräte kann der Homepage [HIER](http://www.irtrans.de/de/technicalinfo/ir.php) entnommen werden.
> **Achtung:** Die SymBox unterstützt nur IR-Trans Geräte mit IR Datenbank.
## IRT_SendOnce
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/irtrans/irt-sendonce/
`bool IRT_SendOnce(int $InstanzID, string $Fernbedienung, string $Knopf)`
sendet einen IR Befehl
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Fernbedienung` (string): Name der Fernbedienung, der in der Fernbedienungsdatenbank eingetragen ist/wurde.
- `$Knopf` (string): Name der Fernbedienungsfunktion, die in der Fernbedienungsdatenbank eingetragen ist/wurde.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name der Fernbedienungsfunktion, die in der Fernbedienungsdatenbank eingetragen ist/wurde.
**Beispiel**
```php
IRT_SendOnce(37279,"ccf", "v+");
```
---
# KEBA
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/keba/
KEBA bietet verschiedene Wallboxen/Ladesäulen an. Über ModBus RTU/TCP können diese ausgelesen werden. Eine Verbindung mit IP-Symcon ist über ein LAN oder RS485, je nach Ausführung, möglich.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Komponenten](https://www.symcon.de/de/llms/modules/keba.md)
### Installation
Um KEBA Wallboxen/Ladesäulen in IP-Symcon nutzen zu können, muss eine Verbindung via Ethernet oder RS485 zur Wallbox vorhanden sein.
### Einbindung IP-Symcon
Zuerst muss eine "ModBus Gerät" Instanz innerhalb des Objektbaums von IP-Symcon hinzugefügt werden. Dabei muss die DeviceID auf 255 gestellt werden und im folgenden Dialog muss die IP-Adresse der Wallbox eingetragen werden. Der Port ist Standardmässig 502. Beide Informationen können auf der Weboberfläche/App der WallBox/Ladesäule eingesehen werden.


Im Anschluss kann die ModBus Vorlage für KEBA Wallboxen/Ladesäulen heruntergeladen werden. Diese beinhaltet die ganze Konfiguration des ModBus Geräts. Nach dem Herunterladen, kann die "KebaModBus_vx.json" über "Importieren" geladen werden. Anschließend sind alle ModBus Adressen der gängigen KEBA Wallboxen/Ladesäulen eingerichtet.
> **Hinweis:** ModBus Vorlage für KEBA Wallboxen/Ladesäulen: [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/keba/95f894dbf9-1790424938/kebamodbus_v1.json)

### Hinzufügen von Adressen
Sollen weitere Adressen hinzugefügt werden, kann dies über "Hinzufügen" realisiert werden.
Je nach Ausführung der Wallbox kann es sein, dass einzelne Adressen de-/aktiviert werden müssen. Dies kann über die Aktiv Spalte gesteuert werden.
### Protokollbeschreibung
> **Hinweis:** Protokollbeschreibung für KEBA Wallboxen/Ladesäulen:
> * KEBA KeContact P30: [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/keba/dafc7da7e7-1790424938/keba-p30-wallbox-modbus.pdf)
> * KEBA KeContact P40: [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/keba/8ad234ed8e-1790424938/keba-p40-wallbox-modbus.pdf)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/keba/geraeteliste/
_Benötigt Symcon >= 7.0_
### Unterstützte Komponenten
| System | Modell | Beschreibung |
| ------------------ | ---------------------| ------------------------------ |
| KEBA KeContact P30 | Alle, außer a-series | In allen Versionen unterstützt |
| KEBA KeContact P40 | Alle | In allen Versionen unterstützt |
---
# KNX
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/
KNX ist ein kabelgebundenes sowie funkbasierendes System (KNX-RF). Eine Verbindung mit IP-Symcon ist über ein serielles oder KNX IP Interface möglich. Zur Konfiguration des Systems wird eine Engineering-Tool-Software (kurz "ETS") benötigt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Komponenten (Auszug)](https://www.symcon.de/de/llms/modules/knx.md)
>
> KNX Data Secure und KNX IP Secure werden unterstützt!
### Einleitung
KNX ist eine Vernetzung von Haus- und Gebäudesystemtechnik gemäß EN 50090 und ISO/IEC 14543. Es werden gewerkeübergreifend zum Beispiel Heizung, Beleuchtung, Jalousien, Belüftung und Sicherheitstechnik gesteuert. Das System nutzt in der Regel Leitungen (Bezeichnung u.a. J-Y (St) Y 2x2x0,8 EIB bzw. YCYM 2x2x0,8) mit zwei Aderpaaren (rot-schwarz und weiß-gelb). Die KNX-Anlage wird von einer Spannungsversorgung mit 30 V Nennspannung [Gleichspannung] versorgt. Diese Spannung versorgt die Busankoppler, über die jedes KNX-Gerät mit den anderen vernetzten KNX-Geräten kommuniziert. Der Datenaustausch zwischen den KNX-Geräten erfolgt über Telegramme.
Die Programmierung der Teilnehmer und das Zuweisen der Gruppenadressen erfolgt mit der Engineering-Tool-Software (ETS). Die ETS wird von der Dachorganisation Konnex bereitgestellt und sichert die problemlose Zusammenarbeit von Komponenten verschiedener Hersteller.
Die Anbindung an IP-Symcon erfolgt über ein serielles oder IP-Gateway.
Als Regel gilt, dass alle seriellen Gateways “PEI Typ 10″ mit FT1.2 Protokoll (Interfaces des Typs PEI 16 funktionieren nicht) unterstützt werden und alle KNX/IP Gateways, die das Tunneling Protokoll anbieten. Sollte ein KNX Gateway diese Voraussetzungen erfüllen und nicht funktionieren, ist der Symcon Support zu kontaktieren. Das Problem wird so schnell wie möglich gelöst.
Seit IP-Symcon 6.4 wird ebenfalls KNX Data Secure und KNX IP Secure vollständig unterstützt. Zusätzlich unterstützen alle KNX IP Secure Interface auch das neue KNX/IP over TCP, welches wesentlich robuster als das ältere KNX/IP over UDP ist.
### Installation
Wenn alle KNX-Geräte korrekt aufgestellt und angeschlossen sind, müssen diese mit der ETS konfiguriert werden. Dazu wird die dreistufige Adressvergabe genutzt.
> **Achtung:** Zur Zeit werden nur dreistufige Adressen (z.B. 10/2/5) unterstützt. Zweistufige oder freie Adressen unterstützt IP-Symcon zur Zeit nicht. Über die Umrechnung kann jede zweistufige Adresse über die übersetzte dreistufige Adresse Angesteuert werden.
Falls die Installation durch einen Elektriker vorgenommen wurde, so sollte dieser den nachfolgend erklärten OPC/XML Export und die damit verbundene Datei vom Typ XML mitliefern.
Um KNX in IP-Symcon nutzen zu können, ist entweder ein serielles FT1.2 Gateway oder ein kompatibles KNX/IP Gateway notwendig. Die Einrichtung der verschiedenen Gateways unterscheidet sich geringfügig. Es kann direkt eine KNX Instanz in IP-Symcon erstellt und von dieser aus das Gateway konfiguriert werden. Alternativ kann der XML Export aus der ETS genutzt werden.

Die Nutzung des XML Exports mit Hilfe des IP-Symcon Konfigurators erlaubt eine schnelle Einbindung aller KNX Komponenten.
> **Hinweis:** Ab IP-Symcon 5.3 wird der Export als XML empfohlen, da dieser die neuen KNX DPT-Instanzen unterstützt.
#### XML Export in ETS
Ein XML-Export kann innerhalb der ETS im geöffneten Projekt via Rechtsklick auf die Gruppenadressen gespeichert werden.

Videoanleitung zum Export:
Ab Version 6.0.0
[Video](https://www.youtube.com/embed/-hdo5nrTr3Y?rel=0&cc_load_policy=1)
Ab Version 5.6.5
[Video](https://www.youtube.com/embed/DeGCLestF_I?rel=0&cc_load_policy=1)
#### Einbindung in IP-Symcon
Die KNX Schnittstelle kann über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "KNX Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines KNX [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können über diesen die einzelnen Geräte wie unten beschrieben hinzugefügt werden.

Bevor mit dem Import der Gruppenadressen begonnen werden kann, muss die Schnittstelle korrekt ausgwählt und konfiguriert werden. Dazu muss im oberen Bereich der Konfiguration auf das "Zahnrad" geklickt werden. Es sollte sich nachfolgender Dialog öffnen.

> **Hinweis:** Wenn KNX Data Secure genutzt werden soll, kann im Kapitel KNX Data Secure weitergelesen werden.
#### Einbindung ohne KNX Data Secure
Unter Modus muss der Typ des Gateways ausgewählt werden. Für alle gängigen IP-Gateways kann der Modus "KNX/IP (UDP)" ausgewählt werden. Für die KNX IP Interfaces mit Secure Unterstützung kann auch der zuverlässigere Modul "KNX/IP (TCP)" gewählt werden oder das passende Secure equivalent. Änderungen werden mit dem Button "Übernehmen" gespeichert werden. Um für die Schnittstelle die Adresse eintragen zu können, muss erneut auf das "Zahnrad" im oberen Bereich geklickt werden. Je nach Modus muss entweder die IP-Adresse eingetragen oder der serielle Port der zu der Schnittstelle gehört eingetragen werden. Im Zweifelsfall kann die IP-Adresse auch mit Hilfe der ETS herausgefunden werden. Weitere Einstellungen sind nicht notwendig. Die Änderungen werden mit "Übernehmen" bestätigt. In der Konfiguration des Gateways können nun über "Informationen neu laden" die Parameter des Gateways ausgelesen werden. Wenn diese korrekt Ausgelesen wurden, ist die Konfiguration vollständig.
Videoanleitung:
[Video](https://www.youtube.com/embed/hgz7nv0SC-Q?rel=0&cc_load_policy=1)
#### Einbindung in IP-Symcon mit KNX IP Secure / KNX Data Secure
Um KNX IP Secure und/oder KNX Data Secure in IP-Symcon zu nutzen, wird zusätzlich zu der XML Datei ein Backup von einem Schlüsselbund benötigt.
Videoanleitung zum Exportieren des Schlüsselbundes:
[Video](https://www.youtube.com/embed/R8BTUxpIDUc?rel=0&cc_load_policy=1)
Im KNX Gateway muss der Modus "KNX/IP Secure (TCP)" ausgewählt werden. In das Feld "Schlüsselbund auswählen" wird die Schlüsselbund-Datei importiert und das Kennwort in das Feld "Schlüsselbund Kennwort" eingeben. Änderungen werden mit dem Button "Übernehmen" gespeichert werden. Nun erscheint das Feld "Sicherer Tunnel" über welchem der konfigurierte Tunnel des Interfaces ausgewählt werden kann. Um für die Schnittstelle die Adresse eintragen zu können, muss erneut auf das "Zahnrad" im oberen Bereich geklickt werden. Hier muss die IP-Adresse eingetragen gehört eingetragen werden. Im Zweifelsfall kann die IP-Adresse auch mit Hilfe der ETS herausgefunden werden. Weitere Einstellungen sind nicht notwendig. Die Änderungen werden mit "Übernehmen" bestätigt. In der Konfiguration des Gateways können nun über "Informationen neu laden" die Parameter des Gateways ausgelesen werden. Wenn diese korrekt Ausgelesen wurden, ist die Konfiguration vollständig.
Videoanleitung für KNX Data Secure mit KNX IP Secure Interface:
[Video](https://www.youtube.com/embed/AZo_TwAyn-U?rel=0&cc_load_policy=1)
Videoanleitung für KNX Data Secure mit SymBox mit KNX Erweiterung:
[Video](https://www.youtube.com/embed/aA8mcKEyHOY?rel=0&cc_load_policy=1)
#### IP-Adresse herausfinden
[Video](https://www.youtube.com/embed/0nEpt1Y_2nc?rel=0&cc_load_policy=1)
#### Einzelne Aktoren einrichten
Im KNX Konfigurator können nach dem Hochladen der XML-Datei alle zuvor konfigurierten KNX-Aktoren in IP-Symcon eingebunden und visualisiert werden.
Dazu müssen Geräte durch drücken von "Erstellen" erstellt werden. Die Geräte sind jetzt bedienbar.
Bei der danach erscheinenden ID auf der rechten Seite handelt es sich um die von IP-Symcon zugeordnete InstanzID. Diese ist einmalig und unveränderbar.
Nach einem Klick auf ein ausgewähltes KNX-Gerät und dann einen Klick auf “Konfigurieren” kann die Funktionalität jedes einzelnen Gerätes getestet werden.
Die Geräte sind im Objektbaum wieder zu finden.
Über die Visualisierung können nun die erstellten Geräte geschaltet werden.
#### Automatische Erkennung von Rückmeldeadressen
Wenn ein Gerät eine Rückmeldeadresse eingerichtet hat, kann diese automatisch erkannt und als Rückmeldeadresse gesetzt werden. Dazu muss im KNX Konfigurator auf den Button "Erkenne Rückmelde-GA automatisch" geklickt und über den Punkt "Aktiviere Erkennung" muss dies aktiviert werden.
Danach muss ausgewählt werden über welche Ebenen die Gruppenadressen verknüpft werden sollen. Liegt die Rückmeldeadresse und das Gerät in der selben Mittelgruppe, so wird der Punkt "Verknüpfe auf der selben Ebene (1/1/x)" ausgewählt. Liegen Rückmeldeadresse und Gerät in unterschiedlichen Mittelgruppen so wird der Punkt "Verknüpfe über zwei Ebenen (1/x/x)" ausgewählt. Liegen die Adressen in verschiedenen Hauptgruppen wird der Punkt "Verknüpfe auf allen Ebenen (x/x/x)" ausgewählt.
Die Verknüpfung der Gruppenadressen erfolgt über die angegebenen Schlüsselwörter. Ist der Name einer Rückmeldeadresse nach Entfernen des Schlüsselwortes identisch mit dem Namen einer Gruppenadressen so werden diese miteinander verknüpft. Die Groß-/Kleinschreibung wird dabei ignoriert. Die Rückmeldeadresse wird dann als Rückmeldeadresse der Gruppenadresse gesetzt.
Video zur Einrichtung mit automatischen Rückmeldeadressen:
[Video](https://www.youtube.com/embed/hDwXGSwMjvc?rel=0&cc_load_policy=1)
### Beispiele
#### Temperaturwerte auf den KNX-Bus senden
Um Werte wie z.B. die Temperatur auf den KNX-Bus senden zu können, ist ein Aktionsskript erforderlich. Dieses bildet die Verknüpfung zwischen der Visualisierung und den Aktoren. Es muss ein Skript mit folgendem Inhalt erstellt werden:
```php
EIB_Value(IPS_GetParent($_IPS['VARIABLE']), $_IPS['VALUE']);
```
Für jedes gewünschte Gerät, dass veränderbar sein soll, muss die entsprechende Variable mit diesem Aktionsskript verknüpft werden. Dies muss in der Konfiguration der jeweiligen Variable geschehen. Dazu muss die Variable doppelt angeklickt werden. Im Bereich "Profileinstellungen" befindet sich die Auswahl des Aktionsskripts. Hier muss das eben erstelle Skript ausgewählt werden. Über "Eigenes Profil" sollte zusätzlich ein passendes Profil (z.B. ~Temperature) ausgewählt werden.

> **Hinweis:** Der letzte Schritt ist beliebig oft wiederholbar. Es ist nur erforderlich, das Skript einmalig mit den o.g. Inhalt anzulegen.
#### Bessere Rollladensteuerung mit KNX Shutter
Aufgrund der vielen Einstellungsmöglichkeiten und verknüpften Adressen können Shutter nicht über den Konfigurator hinzugefügt werden.

#### Bewegen
Hier muss die Adresse für die Auf- und Abbewegung des Rollladen eingetragen werden. Im Bereich "Mehr?" können weitere Adressen eingetragen werden, auf welche die Instanz zum Auf-/Abbewegen hören soll.
#### Stop
Hier muss die Adresse für das Stoppen des Rollladen eingetragen werden. Im Bereich "Mehr?" können weitere Adressen eingetragen werden, auf welche die Instanz zum Stoppen hören soll.
#### Aktiviere Schritte/Lamelle
Diese Adresse kann zugeschaltet werden und steuert das Schrittweise bewegen des Rollladen. Dies dient dazu, die Lamellen des Rollladen zu verstellen. Im Bereich "Mehr?" können weitere Adressen eingetragen werden, auf welche die Instanz zur Schrittsteuerung hören soll.
#### Aktiviere prozentuale Positionierung
Diese zwei Adressen können zugeschaltet werden und steuern entweder das prozentuale Positionieren des Rollladen oder der Lamellen.
#### Test Center
Im Test Center können grundlegende Funktionen adhoc getestet werden.
### Tipps und Tricks
* [Ist die ETS zwingend notwendig?](/forum/f18/ets-zwingend-notwendig-7102/)
* [Uhrzeit mit KNX Synchronisieren](/forum/f53/datum-uhrzeit-knx-synchronisieren-senden-12064/)
#### Umrechnen von Gruppenadressen
##### Umrechnen von zweistufigen Gruppenadressen zu dreistufigen Gruppenadressen
Falls in der ETS eine zweistufige Darstellung der Gruppenadressen gewählt wurde, können die Adressen mit Hilfe dieses Tools umgerechnet werden. Wenn der OPC-Export genutzt wird, übernimmt die ETS diesen Prozess automatisch.
##### Umrechnen von freien Gruppenadressen zu dreistufigen Gruppenadressen
Falls Sie in der ETS die freie Darstellung der Gruppenadressen gewählt wurde, so ist leider ein OPC-Export nicht möglich. Mit Hilfe dieses Tools können die Adressen umgerechnet werden.
#### KNX mit QNAP, Synology oder Docker
Soll KNX mit QNAP, Synology oder Docker verwendet werden, so muss der NATSupport eingerichtet werden um Antworten des Systems zu erhalten. Dieser Vorgang ist [hier](https://www.symcon.de/de/llms/getting-started.md) erklärt.
#### Skript zum Auslesen der Zustände vom Bus
Da nur Variablenänderungen von IP-Symcon wahrgenommen werden ist beim Neustart von von IP-Symcon abzufragen ob es Statusänderungen gab, um eine konsistente Darstellung zu ermöglichen.
Hierzu kann ein Startskript im [Event-Control](https://www.symcon.de/de/llms/modules/event-control.md) hinzugefügt werden.
```php
$gatewayIDs = IPS_GetInstanceListByModuleID("{1C902193-B044-43B8-9433-419F09C641B8}");
$instanceIDs = IPS_GetInstanceList();
foreach($gatewayIDs as $gatewayID) {
foreach($instanceIDs as $instanceID) {
$i = IPS_GetInstance($instanceID);
if($i['ConnectionID'] == $gatewayID) {
switch($i['ModuleInfo']['ModuleID']) {
case "{24A9D68D-7B98-4D74-9BAE-3645D435A9EF}": //Shutter
case "81F54858-72B1-4C2C-8CE3-7E00A3168378": //RGB (Legacy until IP-Symcon 5.0)
case "{81F54858-72B1-4C2C-8CE3-7E00A3168378}": //RGB (IP-Symcon 5.1+)
case "4D7F7548-0979-4ABD-9BB3-81F9477C0903": //RGBW (Legacy until IP-Symcon 5.0)
case "{4D7F7548-0979-4ABD-9BB3-81F9477C0903}": //RGBW (IP-Symcon 5.1+)
EIB_RequestStatus($instanceID);
break;
case "{D62B95D3-0C5E-406E-B1D9-8D102E50F64B}": //Group
if(IPS_GetProperty($instanceID, "GroupCapabilityRead")) {
EIB_RequestStatus($instanceID);
}
break;
case "{FB223058-3084-C5D0-C7A2-3B8D2E73FE8A}": //Device
KNX_RequestStatus($instanceID);
break;
default:
//DPTs
if(strpos($i['ModuleInfo']['ModuleName'], "DPT") !== false) {
if(IPS_GetProperty($instanceID, "CapabilityRead")) {
KNX_RequestStatus($instanceID);
}
}
break;
}
}
}
}
```
#### Skript zur Ausgabe der Gruppenadressen
Das folgende Skript kann dazu genutzt werden die Gruppenadressen samt Id, Name und Location auszugeben.
```php
echo "ID,Name,Location,GA,MoreGA" . PHP_EOL;
$gatewayIDs = IPS_GetInstanceListByModuleID("{1C902193-B044-43B8-9433-419F09C641B8}");
$instanceIDs = IPS_GetInstanceList();
foreach($gatewayIDs as $gatewayID) {
foreach($instanceIDs as $instanceID) {
$i = IPS_GetInstance($instanceID);
if($i['ConnectionID'] == $gatewayID) {
switch($i['ModuleInfo']['ModuleID']) {
case "{24A9D68D-7B98-4D74-9BAE-3645D435A9EF}": //Shutter
printGA($instanceID, "GroupMove");
if (IPS_GetProperty($instanceID, "EnableStep")) {
printGA($instanceID, "GroupStep");
}
printGA($instanceID, "GroupStop");
if (IPS_GetProperty($instanceID, "EnablePosition")) {
printGA($instanceID, "GroupPosition");
}
if (IPS_GetProperty($instanceID, "EnableBladePosition")) {
printGA($instanceID, "GroupBladePosition");
}
break;
case "81F54858-72B1-4C2C-8CE3-7E00A3168378": //RGB (Legacy until IP-Symcon 5.0)
case "{81F54858-72B1-4C2C-8CE3-7E00A3168378}": //RGB (IP-Symcon 5.1+)
case "4D7F7548-0979-4ABD-9BB3-81F9477C0903": //RGBW (Legacy until IP-Symcon 5.0)
case "{4D7F7548-0979-4ABD-9BB3-81F9477C0903}": //RGBW (IP-Symcon 5.1+)
case "{D62B95D3-0C5E-406E-B1D9-8D102E50F64B}": //Group
printGA($instanceID, "Group");
break;
case "{FB223058-3084-C5D0-C7A2-3B8D2E73FE8A}": //Device
printGAs($instanceID);
break;
default:
//DPTs
if(strpos($i['ModuleInfo']['ModuleName'], "DPT") !== false) {
printGA($instanceID, "");
}
break;
}
}
}
}
function printGA($id, $prefix) {
$c = json_decode(IPS_GetConfiguration($id), true);
echo sprintf("%d,%s,%s,", $id, IPS_GetName($id), IPS_GetLocation($id));
echo sprintf("%d/%d/%d", $c[$prefix . "Address1"], $c[$prefix . "Address2"], $c[$prefix . "Address3"]);
foreach (json_decode($c[$prefix . "Mapping"], true) as $a) {
echo "," . sprintf("%d/%d/%d", $a[$prefix . "Address1"], $a[$prefix . "Address2"], $a[$prefix . "Address3"]);
}
echo PHP_EOL;
}
function printGAs($id) {
$c = json_decode(IPS_GetConfiguration($id), true);
foreach(json_decode($c['GroupAddresses'], true) as $ga) {
echo sprintf("%d,%s,%s,", $id, IPS_GetName($id), IPS_GetLocation($id));
echo sprintf("%d/%d/%d", $ga["Address1"], $ga["Address2"], $ga["Address3"]);
foreach ($ga["Mapping"] as $a) {
echo "," . sprintf("%d/%d/%d", $a["Address1"], $a["Address2"], $a["Address3"]);
}
echo PHP_EOL;
}
}
```
### Legacy
##### OPC Export in ETS

Videoanleitung zum Export:[Video](https://www.youtube.com/embed/WnJ3qRI0qVE?rel=0&cc_load_policy=1)
##### Einrichten mit OPC[Video](https://www.youtube.com/embed/kfv0HSX9PVM?rel=0&cc_load_policy=1)
#### Zuordnung der einzelnen Funktionen zum EIS-Typ/DPT
| Funktion | EIS-Typ | DPT |
| ------------------------------------------------------------ | ------- | ------------ |
| [EIB_Char](https://www.symcon.de/de/llms/modules/knx.md) | EIS13 | DPT4 |
| [EIB_Counter8bit](https://www.symcon.de/de/llms/modules/knx.md) | EIS14 | DPT5, DPT6 |
| [EIB_Counter16bit](https://www.symcon.de/de/llms/modules/knx.md) | EIS10 | DPT7, DPT8 |
| [EIB_Counter32bit](https://www.symcon.de/de/llms/modules/knx.md) | EIS11 | DPT12, DPT13 |
| [EIB_Date](https://www.symcon.de/de/llms/modules/knx.md) | EIS4 | DPT11 |
| [EIB_DimControl](https://www.symcon.de/de/llms/modules/knx.md) | EIS2 | DPT3 |
| [EIB_DimValue](https://www.symcon.de/de/llms/modules/knx.md) | EIS6 | DPT5 |
| [EIB_DriveBladeValue](https://www.symcon.de/de/llms/modules/knx.md) | EIS6 | DPT5 |
| [EIB_DriveMove](https://www.symcon.de/de/llms/modules/knx.md) | EIS7 | DPT1 |
| [EIB_DriveShutterValue](https://www.symcon.de/de/llms/modules/knx.md) | EIS6 | DPT5 |
| [EIB_DriveStep](https://www.symcon.de/de/llms/modules/knx.md) | EIS7 | DPT1 |
| [EIB_FloatValue](https://www.symcon.de/de/llms/modules/knx.md) | EIS9 | DPT14 |
| [EIB_Move](https://www.symcon.de/de/llms/modules/knx.md) | EIS7 | DPT1 |
| [EIB_Position](https://www.symcon.de/de/llms/modules/knx.md) | EIS6 | DPT5 |
| [EIB_PriorityControl](https://www.symcon.de/de/llms/modules/knx.md) | EIS8 | DPT2 |
| [EIB_PriorityPosition](https://www.symcon.de/de/llms/modules/knx.md) | EIS1 | DPT1 |
| [EIB_Scale](https://www.symcon.de/de/llms/modules/knx.md) | EIS6 | DPT5 |
| [EIB_Str](https://www.symcon.de/de/llms/modules/knx.md) | EIS15 | DPT16 |
| [EIB_Switch](https://www.symcon.de/de/llms/modules/knx.md) | EIS1 | DPT1 |
| [EIB_Time](https://www.symcon.de/de/llms/modules/knx.md) | EIS3 | DPT10 |
| [EIB_Value](https://www.symcon.de/de/llms/modules/knx.md) | EIS5 | DPT9 |
| N/A | EIS12 | DPT15 |
## EIB_Char
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-char/
`bool EIB_Char(int $InstanzID, string $Buchstabe)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Buchstabe` (string): Einzelner Buchstabe
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Einzelner Buchstabe
**Beispiel**
```php
EIB_Char(12345, "A"); //Sendet den Buchstaben A auf den Bus
```
## EIB_Counter8Bit
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-counter8bit/
`bool EIB_Counter8Bit(int $InstanzID, float $Wert)`
sendet einen 8bit Zählerwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): Standard = 0..255; Signed = -127..127
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard = 0..255; Signed = -127..127
**Beispiel**
```php
EIB_Counter8Bit(12345, 10); //Sendet den Wert 10 auf den Bus
```
## EIB_Counter16Bit
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-counter16bit/
`bool EIB_Counter16Bit(int $InstanzID, float $Wert)`
sendet einen 16bit Zählerwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): Standard = 0..65535; Signed = -32768..32767
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard = 0..65535; Signed = -32768..32767
**Beispiel**
```php
EIB_Counter16Bit(12345, 10); //Sendet den Wert 10 auf den Bus
```
## EIB_Counter32Bit
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-counter32bit/
`bool EIB_Counter32Bit(int $InstanzID, float $Wert)`
sendet einen 32bit Zählerwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): Standard = -2147483648..2147483647
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard = -2147483648..2147483647
**Beispiel**
```php
EIB_Counter32Bit(12345, 10); //Sendet den Wert 10 auf den Bus
```
## EIB_Date
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-date/
`bool EIB_Date(int $InstanzID, string $Datum)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Datum` (string): Standard = yyyymmdd
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard = yyyymmdd
**Beispiel**
```php
EIB_Date(12345, date("Ymd")); //Sendet das aktuelle Datum auf den Bus
```
## EIB_DimControl
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-dimcontrol/
`bool EIB_DimControl(int $InstanzID, int $Wert)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): Dimmwertverstellung zwischen 0..15 oder -7..7
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Dimmwertverstellung zwischen 0..15 oder -7..7
**Beispiel**
```php
EIB_DimControl(12345, 0);
```
## EIB_DimValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-dimvalue/
`bool EIB_DimValue(int $InstanzID, int $Wert)`
sendet einen Dimmwert als Zahl oder Prozent
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): Wert 0..255, 0..100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert 0..255, 0..100%
**Beispiel**
```php
EIB_DimValue(12345, 100); //Auf 100% dimmen
```
## EIB_DriveBladeValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-drivebladevalue/
`bool EIB_DriveBladeValue(int $InstanID, int $Wert)`
sendet einen Positionswert als Zahl oder Prozent
**Parameter**
- `$InstanID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): Wert 0..255, 0..100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert 0..255, 0..100%
**Beispiel**
```php
EIB_DriveBladeValue(12345, 100); //Auf 100% fahren
```
## EIB_DriveMove
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-drivemove/
`bool EIB_DriveMove(int $InstanzID, bool $Richtung)`
bewegt ein Gerät Hoch oder Runter
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Richtung` (bool): Standart
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standart
**Beispiel**
```php
```
## EIB_DriveShutterValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-driveshuttervalue/
`bool EIB_DriveShutterValue(int $InstanzID, int $Wert)`
sendet einen Positionswert als Zahl oder Prozent
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): Wert 0..255, 0..100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert 0..255, 0..100%
**Beispiel**
```php
EIB_DriveShutterValue(12345, 100); //Auf 100% fahren
```
## EIB_DriveStep
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-drivestep/
`bool EIB_DriveStep(int $InstanzID, bool $SchrittRichtung)`
bewegt ein Gerät schrittweise
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$SchrittRichtung` (bool): Standard
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard
**Beispiel**
```php
EIB_DriveStep(12345, true); //Rollladen schrittweise bewegen
```
## EIB_FloatValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-floatvalue/
`bool EIB_FloatValue(int $InstanzID, float $Wert)`
sendet einen Floatwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): Fließkommawert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Fließkommawert
**Beispiel**
```php
EIB_FloatValue(12345, 22.1); //Sendet 22.1°C an den Regler
```
## EIB_Move
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-move/
`bool EIB_Move(int $InstanzID, int $Richtung)`
bewegt einen Rollladen
**Parameter**
- `$InstanzID` (int): ID der KNX Shutter Instanz
- `$Richtung` (int): 0 = Hoch, 1 = Schritt (Hoch), 2 = Stop, 3 = Schritt (Runter), 4 = Runter
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = Hoch, 1 = Schritt (Hoch), 2 = Stop, 3 = Schritt (Runter), 4 = Runter
**Beispiel**
```php
EIB_Move(12345, 3); //Rollladen anhalten
```
## EIB_Position
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-position/
`bool EIB_Position(int $InstanzID, int $Position)`
bewegt einen Rollladen auf eine Position
**Parameter**
- `$InstanzID` (int): ID der KNX Shutter Instanz
- `$Position` (int): 0-100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-100%
**Beispiel**
```php
EIB_Position(12345, 50); //Rollladen auf 50% fahren
```
## EIB_PriorityControl
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-prioritycontrol/
`bool EIB_PriorityControl(int $InstanzID, int $Zustand)`
setzt einen Gerätezustand
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Zustand` (int): Standard
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard
**Beispiel**
```php
EIB_PriorityControl(12345, 0);
```
## EIB_PriorityPosition
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-priorityposition/
`bool EIB_PriorityPosition(int $InstanzID, bool $Richtung)`
setzt ein Gerät in eine bestimmte Richtung
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Richtung` (bool): Standard
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard
**Beispiel**
```php
EIB_PriorityPosition(12345, true); //Bewegt Gerät
```
## EIB_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-requeststatus/
`bool EIB_RequestStatus(int $InstanzID)`
schickt eine Leseanfrage für EIB-Instanzen auf den Bus
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
EIB_RequestStatus(12345); //Leseanfrage abschicken
```
## EIB_Scale
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-scale/
`bool EIB_Scale(int $InstanzID, int $Wert)`
sendet einen Zahl-, Prozent- oder Gradwert.
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): Wert 0..255, 0..100, 0..360
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert 0..255, 0..100, 0..360
**Beispiel**
```php
EIB_Scale(12345, 360);
```
## EIB_SetRGB
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-setrgb/
`bool EIB_SetRGB(int $InstanzID, int $Rot, int $Grün, int $Blau)`
setzt einen RGB Stripe auf einen bestimmten Farbton
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Rot` (int): 0 .. 255 (0 = aus, 255 = hell)
- `$Grün` (int): 0 .. 255 (0 = aus, 255 = hell)
- `$Blau` (int): 0 .. 255 (0 = aus, 255 = hell)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 .. 255 (0 = aus, 255 = hell)
**Beispiel**
```php
EIB_SetRGB(12345, 255, 0, 0); //Setzt den RGB Stripe auf Rot
```
## EIB_SetRGBW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-setrgbw/
`bool EIB_SetRGBW(int $InstanzID, int $Rot, int $Grün, int $Blau, int $Weiss)`
setzt einen RGBW Stripe auf einen bestimmten Farbton
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Rot` (int): 0 .. 255 (0 = aus, 255 = hell)
- `$Grün` (int): 0 .. 255 (0 = aus, 255 = hell)
- `$Blau` (int): 0 .. 255 (0 = aus, 255 = hell)
- `$Weiss` (int): 0 .. 255 (0 = aus, 255 = hell)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 .. 255 (0 = aus, 255 = hell)
**Beispiel**
```php
EIB_SetRGBW(12345, 255, 0, 0, 0); //Setzt den RGB Stripe auf Rot
```
## EIB_Str
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-str/
`bool EIB_Str(int $InstanzID, string $Zeichenkette)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Zeichenkette` (string): Zu sendender Text (maximal 14 Zeichen)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zu sendender Text (maximal 14 Zeichen)
**Beispiel**
```php
EIB_Str(12345, "Es klingelt!"); //Sendet die Zeichenkette auf den Bus
```
## EIB_Switch
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-switch/
`bool EIB_Switch(int $InstanzID, bool $Status)`
schaltet ein Gerät Ein/Aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
EIB_Switch(12345, true); //Schaltet das Gerät ein
```
## EIB_Time
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-time/
`bool EIB_Time(int $InstanzID, string $Zeit)`
sendet einen Zeitwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Zeit` (string): Standard = dhhmmss; TimeOnly = hhmmss
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Standard = dhhmmss; TimeOnly = hhmmss
**Beispiel**
```php
EIB_Time(12345, date("NHis")); //Sendet die aktuelle Zeit auf den Bus (Standard)
EIB_Time(12345, date("His")); //Sendet die aktuelle Zeit auf den Bus (TimeOnly)
```
## EIB_Value
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/eib-value/
`bool EIB_Value(int $InstanzID, float $Wert)`
sendet einen Floatwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): -671088,63 .. 670760,96
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-671088,63 .. 670760,96
**Beispiel**
```php
EIB_Value(12345, 22.1); //Sendet 22.1°C an den Regler
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/geraeteliste/
### Unterstützte Gateways
Es werden alle seriellen Gateways mit FT1.2 Protokoll (und cEMI Nachrichten) und alle KNX/IP Gateways, die das Tunneling Protokoll anbieten, unterstützt. Bei KNX Gateways, welche diese Voraussetzungen erfüllen und nicht funktionieren, kontaktieren Sie bitte unseren Support. Wir lösen das Problem schnellstmöglich.
Seit IP-Symcon 6.4 wird ebenfalls KNX Data Secure und KNX IP Secure unterstützt.
| Komponente | Hersteller | Anschlussart. | Beschreibung |
| ------------------------------- | -------------------------- | ---------------- | ------------------------------------------------- |
| SymBox mit KNX Erweiterung | Symcon GmbH | Seriell (Secure) | integriertes Modul von Weinzierl Engineering GmbH |
| 1a EIB KNX IP Schnittstelle PoE | EIBMARKT | IP | EIB KNX IP Schnittstelle PoE (ArtNr. N000401) |
| i-bus® KNX / IP-Schnittstelle | ABB | IP | REG IPS/S 2.1, 2CDG 110 098 R0011 |
| MDT SCN-IP000.02 | MDT | IP | |
| MDT SCN-IP000.03 | MDT | IP (Secure) | |
| 1168 KNX IP Secure Interface | Enertex | IP (Secure) | |
| KNX BAOS Module 838 kBerry | Weinzierl Engineering GmbH | IP (Secure) | |
| KNX BAOS Module 838 kBerry | Weinzierl Engineering GmbH | Seriell | |
| KNX IP Interface 730 | Weinzierl Engineering GmbH | IP | |
| KNX IP Interface 731 | Weinzierl Engineering GmbH | IP | |
| KNX IP Interface 732 Secure | Weinzierl Engineering GmbH | IP (Secure) | |
| KNX IP Interface 740 wireless | Weinzierl Engineering GmbH | IP | |
| KNX Router Weinzierl 750 | Weinzierl Engineering GmbH | IP | |
| N146 | Siemens | IP | |
| N148 | Siemens | IP | |
### Unterstützte DPT
ab Version 5.0
| DPT-Typ | Version |
| ---------------------------------- | ------- |
| DPT 001.x | ab 5.0 |
| DPT 002.x | ab 5.0 |
| DPT 003.x | ab 5.0 |
| DPT 004.x | ab 5.0 |
| DPT 005.x | ab 5.0 |
| DPT 006.x | ab 5.0 |
| DPT 007.x | ab 5.0 |
| DPT 008.x | ab 5.0 |
| DPT 009.x | ab 5.0 |
| DPT 010.x | ab 5.0 |
| DPT 011.x | ab 5.0 |
| DPT 012.x | ab 5.0 |
| DPT 013.x | ab 5.0 |
| DPT 014.x | ab 5.0 |
| DPT 015.x | ab 5.0 |
| DPT 016.x | ab 5.0 |
| DPT 017.x | ab 5.0 |
| DPT 018.x | ab 5.0 |
| DPT 019.x | ab 5.0 |
| DPT 020.x | ab 5.0 |
| DPT 021.x | ab 5.0 |
| DPT 022.x | ab 5.0 |
| DPT 023.x | ab 5.0 |
| DPT 024.x | ab 5.0 |
| DPT 025.x | ab 5.0 |
| DPT 026.x | ab 5.0 |
| DPT 027.x | ab 5.0 |
| DPT 028.x | ab 5.0 |
| DPT 029.x | ab 5.0 |
| DPT 030.x | ab 5.0 |
| DPT 031.x | ab 5.0 |
| DPT 200.x | ab 5.0 |
| DPT 201.x | ab 5.0 |
| DPT 202.x | ab 5.0 |
| DPT 203.x | ab 5.0 |
| DPT 204.x | ab 5.0 |
| DPT 205.x | ab 5.0 |
| DPT 206.x | ab 5.0 |
| DPT 207.x | ab 5.0 |
| DPT 209.x | ab 5.0 |
| DPT 210.x | ab 5.0 |
| DPT 211.x | ab 5.0 |
| DPT 212.x | ab 5.0 |
| DPT 213.x | ab 5.0 |
| DPT 214.x | ab 5.0 |
| DPT 215.x | ab 5.0 |
| DPT 216.x | ab 5.0 |
| DPT 217.x | ab 5.0 |
| DPT 218.x | ab 5.0 |
| DPT 219.x | ab 5.0 |
| DPT 220.x | ab 5.0 |
| DPT 221.x | ab 5.0 |
| DPT 222.x | ab 5.0 |
| DPT 223.x | ab 5.0 |
| DPT 224.x | ab 5.0 |
| DPT 225.x | ab 5.0 |
| DPT 229.x | ab 5.0 |
| DPT 230.x | ab 5.0 |
| DPT 231.x | ab 5.0 |
| DPT 232.x | ab 5.0 |
| DPT 234.x | ab 5.0 |
| DPT 235.x | ab 5.0 |
| DPT 236.x | ab 5.0 |
| DPT 237.x | ab 5.0 |
| DPT 238.x | ab 5.0 |
| DPT 239.x | ab 5.0 |
| DPT 240.x | ab 5.0 |
| DPT 241.x | ab 5.0 |
| DPT 242.x | ab 5.0 |
| DPT 249.x | ab 5.0 |
| DPT 251.x | ab 5.0 |
#### DPT 001.x
| DPT | DPT_Name |
| ----- | ---------------------- |
| 1.001 | DPT_Switch |
| 1.002 | DPT_Bool |
| 1.003 | DPT_Enable |
| 1.004 | DPT_Ramp |
| 1.005 | DPT_Alarm |
| 1.006 | DPT_BinaryValue |
| 1.007 | DPT_Step |
| 1.008 | DPT_UpDown |
| 1.009 | DPT_OpenClose |
| 1.010 | DPT_Start |
| 1.011 | DPT_State |
| 1.012 | DPT_Invert |
| 1.013 | DPT_DimSendStyle |
| 1.014 | DPT_InputSource |
| 1.015 | DPT_Reset |
| 1.016 | DPT_Ack |
| 1.017 | DPT_Trigger |
| 1.018 | DPT_Occupancy |
| 1.019 | DPT_Window_Door |
| 1.021 | DPT_LogicalFunction |
| 1.022 | DPT_Scene_AB |
| 1.023 | DPT_ShutterBlinds_Mode |
| 1.024 | DPT_DayNight |
| 1.100 | DPT_Heat/Cool |
#### DPT 002.x
| DPT | DPT_Name |
| ----- | ----------------------- |
| 2.001 | DPT_Switch_Control |
| 2.002 | DPT_Bool_Control |
| 2.003 | DPT_Enable_Control |
| 2.004 | DPT_Ramp_Control |
| 2.005 | DPT_Alarm_Control |
| 2.006 | DPT_BinaryValue_Control |
| 2.007 | DPT_Step_Control |
| 2.008 | DPT_Direction1_Control |
| 2.009 | DPT_Direction2_Control |
| 2.010 | DPT_Start_Control |
| 2.011 | DPT_State_Control |
| 2.012 | DPT_Invert_Control |
#### DPT 003.x
| DPT | DPT_Name |
| ----- | ------------------- |
| 3.007 | DPT_Control_Dimming |
| 3.008 | DPT_Control_Blinds |
#### DPT 004.x
| DPT | DPT_Name |
| ----- | --------------- |
| 4.001 | DPT_Char_ASCII |
| 4.002 | DPT_Char_8859_1 |
#### DPT 005.x
| DPT | DPT_Name |
| ----- | ------------------ |
| 5.001 | DPT_Scaling |
| 5.003 | DPT_Angle |
| 5.004 | DPT_Percent_U8 |
| 5.005 | DPT_DecimalFactor |
| 5.006 | DPT_Tariff |
| 5.010 | DPT_Value_1_Ucount |
#### DPT 006.x
| DPT | DPT_Name |
| ----- | ----------------- |
| 6.001 | DPT_Percent_V8 |
| 6.010 | DPT_Value_1_Count |
| 6.020 | DPT_Status_Mode3 |
#### DPT 007.x
| DPT | DPT_Name |
| ----- | --------------------- |
| 7.001 | DPT_Value_2_Ucount |
| 7.002 | DPT_TimePeriodMsec |
| 7.003 | DPT_TimePeriod10MSec |
| 7.004 | DPT_TimePeriod100MSec |
| 7.005 | DPT_TimePeriodSec |
| 7.006 | DPT_TimePeriodMin |
| 7.007 | DPT_TimePeriodHrs |
| 7.010 | DPT_PropDataType |
| 7.011 | DPT_Length_mm |
| 7.012 | DPT_UElCurrentmA |
| 7.013 | DPT_Brightness |
#### DPT 008.x
| DPT | DPT_Name |
| ----- | -------------------- |
| 8.001 | DPT_Value_2_Count |
| 8.002 | DPT_DeltaTimeMsec |
| 8.003 | DPT_DeltaTime10MSec |
| 8.004 | DPT_DeltaTime100MSec |
| 8.005 | DPT_DeltaTimeSec |
| 8.006 | DPT_DeltaTimeMin |
| 8.007 | DPT_DeltaTimeHrs |
| 8.010 | DPT_Percent_V16 |
| 8.011 | DPT_Rotation_Angle |
| 8.012 | DPT_Length_m |
#### DPT 009.x
| DPT | DPT_Name |
| ----- | --------------------- |
| 9.001 | DPT_Value_Temp |
| 9.002 | DPT_Value_Tempd |
| 9.003 | DPT_Value_Tempa |
| 9.004 | DPT_Value_Lux |
| 9.005 | DPT_Value_Wsp |
| 9.006 | DPT_Value_Pres |
| 9.007 | DPT_Value_Humidity |
| 9.008 | DPT_Value_AirQuality |
| 9.010 | DPT_Value_Time1 |
| 9.011 | DPT_Value_Time2 |
| 9.020 | DPT_Value_Volt |
| 9.021 | DPT_Value_Curr |
| 9.022 | DPT_PowerDensity |
| 9.023 | DPT_KelvinPerPercent |
| 9.024 | DPT_Power |
| 9.025 | DPT_Value_Volume_Flow |
| 9.026 | DPT_Rain_Amount |
| 9.027 | DPT_Value_Temp_F |
| 9.028 | DPT_Value_Wsp_kmh |
#### DPT 010.x
| DPT | DPT_Name |
| ------ | ------------- |
| 10.001 | DPT_TimeOfDay |
#### DPT 011.x
| DPT | DPT_Name |
| ------ | -------- |
| 11.001 | DPT_Date |
#### DPT 012.x
| DPT | DPT_Name |
| ------- | ---------------------- |
| 12.001 | DPT_Value_4_Ucount |
| 12.1200 | DPT_VolumeLiquid_Litre |
| 12.1201 | DPT_Volume_m3 |
#### DPT 013.x
| DPT | DPT_Name |
| ------- | --------------------------- |
| 13.001 | DPT_Value_4_Count |
| 13.002 | DPT_FlowRate_m3/h |
| 13.010 | DPT_ActiveEnergy |
| 13.011 | DPT_ApparantEnergy |
| 13.012 | DPT_ReactiveEnergy |
| 13.013 | DPT_ActiveEnergy_kWh |
| 13.014 | DPT_ApparantEnergy_kVAh |
| 13.015 | DPT_ReactiveEnergy_kVARh |
| 13.100 | DPT_LongDeltaTimeSec |
| 13.1200 | DPT_DeltaVolumeLiquid_Litre |
| 13.1201 | DPT_DeltaVolume_m3 |
| 13.16 | DPT_ActiveEnergy_MWh |
#### DPT 014.x
| DPT | DPT_Name |
| ------- | -------------------------------------- |
| 14.000 | DPT_Value_Acceleration |
| 14.001 | DPT_Value_Acceleration_Angular |
| 14.002 | DPT_Value_Activation_Energy |
| 14.003 | DPT_Value_Activity |
| 14.004 | DPT_Value_Mol |
| 14.005 | DPT_Value_Amplitude |
| 14.006 | DPT_Value_AngleRad |
| 14.007 | DPT_Value_AngleDeg |
| 14.008 | DPT_Value_Angular_Momentum |
| 14.009 | DPT_Value_Angular_Velocity |
| 14.010 | DPT_Value_Area |
| 14.011 | DPT_Value_Capacitance |
| 14.012 | DPT_Value_Charge_DensitySurface |
| 14.013 | DPT_Value_Charge_DensityVolume |
| 14.014 | DPT_Value_Compressibility |
| 14.015 | DPT_Value_Conductance |
| 14.016 | DPT_Value_Electrical_Conductivity |
| 14.017 | DPT_Value_Density |
| 14.018 | DPT_Value_Electric_Charge |
| 14.019 | DPT_Value_Electric_Current |
| 14.020 | DPT_Value_Electric_CurrentDensity |
| 14.021 | DPT_Value_Electric_DipoleMoment |
| 14.022 | DPT_Value_Electric_Displacement |
| 14.023 | DPT_Value_Electric_FieldStrength |
| 14.024 | DPT_Value_Electric_Flux |
| 14.025 | DPT_Value_Electric_FluxDensity |
| 14.026 | DPT_Value_Electric_Polarization |
| 14.027 | DPT_Value_Electric_Potential |
| 14.028 | DPT_Value_Electric_PotentialDifference |
| 14.029 | DPT_Value_ElectromagneticMoment |
| 14.030 | DPT_Value_Electromotive_Force |
| 14.031 | DPT_Value_Energy |
| 14.032 | DPT_Value_Force |
| 14.033 | DPT_Value_Frequency |
| 14.034 | DPT_Value_Angular_Frequency |
| 14.035 | DPT_Value_Heat_Capacity |
| 14.036 | DPT_Value_Heat_FlowRate |
| 14.037 | DPT_Value_Heat_Quantity |
| 14.038 | DPT_Value_Impedance |
| 14.039 | DPT_Value_Length |
| 14.040 | DPT_Value_Light_Quantity |
| 14.041 | DPT_Value_Luminance |
| 14.042 | DPT_Value_Luminous_Flux |
| 14.043 | DPT_Value_Luminous_Intensity |
| 14.044 | DPT_Value_Magnetic_FieldStrength |
| 14.045 | DPT_Value_Magnetic_Flux |
| 14.046 | DPT_Value_Magnetic_FluxDensity |
| 14.047 | DPT_Value_Magnetic_Moment |
| 14.048 | DPT_Value_Magnetic_Polarization |
| 14.049 | DPT_Value_Magnetization |
| 14.050 | DPT_Value_MagnetomotiveForce |
| 14.051 | DPT_Value_Mass |
| 14.052 | DPT_Value_MassFlux |
| 14.053 | DPT_Value_Momentum |
| 14.054 | DPT_Value_Phase_AngleRad |
| 14.055 | DPT_Value_Phase_AngleDeg |
| 14.056 | DPT_Value_Power |
| 14.057 | DPT_Value_Power_Factor |
| 14.058 | DPT_Value_Pressure |
| 14.059 | DPT_Value_Reactance |
| 14.060 | DPT_Value_Resistance |
| 14.061 | DPT_Value_Resistivity |
| 14.062 | DPT_Value_SelfInductance |
| 14.063 | DPT_Value_SolidAngle |
| 14.064 | DPT_Value_Sound_Intensity |
| 14.065 | DPT_Value_Speed |
| 14.066 | DPT_Value_Stress |
| 14.067 | DPT_Value_Surface_Tension |
| 14.068 | DPT_Value_Common_Temperature |
| 14.069 | DPT_Value_Absolute_Temperature |
| 14.070 | DPT_Value_TemperatureDifference |
| 14.071 | DPT_Value_Thermal_Capacity |
| 14.072 | DPT_Value_Thermal_Conductivity |
| 14.073 | DPT_Value_ThermoelectricPower |
| 14.074 | DPT_Value_Time |
| 14.075 | DPT_Value_Torque |
| 14.076 | DPT_Value_Volume |
| 14.077 | DPT_Value_Volume_Flux |
| 14.078 | DPT_Value_Weight |
| 14.079 | DPT_Value_Work |
| 14.1200 | DPT_Volume_Flux_Meter |
| 14.1201 | DPT_Volume_Flux_ls |
#### DPT 015.x
| DPT | DPT_Name |
| ------ | --------------- |
| 15.000 | DPT_Access_Data |
#### DPT 016.x
| DPT | DPT_Name |
| ------ | ----------------- |
| 16.000 | DPT_String_ASCII |
| 16.001 | DPT_String_8859_1 |
#### DPT 017.x
| DPT | DPT_Name |
| ------ | --------------- |
| 17.001 | DPT_SceneNumber |
#### DPT 018.x
| DPT | DPT_Name |
| ------ | ---------------- |
| 18.001 | DPT_SceneControl |
#### DPT 019.x
| DPT | DPT_Name |
| ------ | ------------ |
| 19.001 | DPT_DateTime |
#### DPT 020.x
| DPT | DPT_Name |
| ------- | ------------------------------- |
| 20.001 | DPT_SCLOMode |
| 20.002 | DPT_BuildingMode |
| 20.003 | DPT_OccMode |
| 20.004 | DPT_Priority |
| 20.005 | DPT_LightApplicationMode |
| 20.006 | DPT_ApplicationArea |
| 20.007 | DPT_AlarmClassType |
| 20.008 | DPT_PSUMode |
| 20.011 | DPT_ErrorClass_System |
| 20.012 | DPT_ErrorClass_HVAC |
| 20.013 | DPT_Time_Delay |
| 20.014 | DPT_Beaufort_Wind_Force_Scale |
| 20.017 | DPT_SensorSelect |
| 20.020 | DPT_ActuatorConnectType |
| 20.100 | DPT_FuelType |
| 20.101 | DPT_BurnerType |
| 20.102 | DPT_HVACMode |
| 20.103 | DPT_DHWMode |
| 20.104 | DPT_LoadPriority |
| 20.105 | DPT_HVACContrMode |
| 20.106 | DPT_HVACEmergMode |
| 20.107 | DPT_ChangeoverMode |
| 20.108 | DPT_ValveMode |
| 20.109 | DPT_DamperMode |
| 20.110 | DPT_HeaterMode |
| 20.111 | DPT_FanMode |
| 20.112 | DPT_MasterSlaveMode |
| 20.113 | DPT_StatusRoomSetp |
| 20.120 | DPT_ADAType |
| 20.121 | DPT_BackupMode |
| 20.122 | DPT_StartSynchronization |
| 20.600 | DPT_Behaviour_Lock_Unlock |
| 20.601 | DPT_Behaviour_Bus_Power_Up_Down |
| 20.602 | DPT_DALI_Fade_Time |
| 20.603 | DPT_BlinkingMode |
| 20.604 | DPT_LightControlMode |
| 20.605 | DPT_SwitchPBModel |
| 20.606 | DPT_PBAction |
| 20.607 | DPT_DimmPBModel |
| 20.608 | DPT_SwitchOnMode |
| 20.609 | DPT_LoadTypeSet |
| 20.610 | DPT_LoadTypeDetected |
| 20.801 | DPT_SABExceptBehaviour |
| 20.802 | DPT_SABBehaviour_Lock_Unlock |
| 20.803 | DPT_SSSBMode |
| 20.804 | DPT_BlindsControlMode |
| 20.1000 | DPT_CommMode |
| 20.1001 | DPT_AddInfoTypes |
| 20.1002 | DPT_RF_ModeSelect |
| 20.1003 | DPT_RF_FilterSelect |
#### DPT 021.x
| DPT | DPT_Name |
| ------- | -------------------------- |
| 21.001 | DPT_StatusGen |
| 21.002 | DPT_Device_Control |
| 21.100 | DPT_ForceSign |
| 21.101 | DPT_ForceSignCool |
| 21.102 | DPT_StatusRHC |
| 21.103 | DPT_StatusSDHWC |
| 21.104 | DPT_FuelTypeSet |
| 21.105 | DPT_StatusRCC |
| 21.106 | DPT_StatusAHU |
| 21.601 | DPT_LightActuatorErrorInfo |
| 21.1000 | DPT_RF_ModeInfo |
| 21.1001 | DPT_RF_FilterInfo |
| 21.1010 | DPT_Channel_Activation_8 |
#### DPT 022.x
| DPT | DPT_Name |
| ------- | ------------------------- |
| 22.100 | DPT_StatusDHWC |
| 22.101 | DPT_StatusRHCC |
| 22.1000 | DPT_Media |
| 22.1010 | DPT_Channel_Activation_16 |
#### DPT 023.x
| DPT | DPT_Name |
| ------ | ------------------ |
| 23.001 | DPT_OnOff_Action |
| 23.002 | DPT_Alarm_Reaction |
| 23.003 | DPT_UpDown_Action |
| 23.102 | DPT_HVAC_PB_Action |
#### DPT 024.x
| DPT | DPT_Name |
| ------ | -------------------- |
| 24.001 | DPT_VarString_8859_1 |
#### DPT 025.x
| DPT | DPT_Name |
| ------- | ---------------- |
| 25.1000 | DPT_DoubleNibble |
#### DPT 026.x
| DPT | DPT_Name |
| ------ | ------------- |
| 26.001 | DPT_SceneInfo |
#### DPT 027.x
| DPT | DPT_Name |
| ------ | --------------------- |
| 27.001 | DPT_CombinedInfoOnOff |
#### DPT 028.x
| DPT | DPT_Name |
| ------ | --------- |
| 28.001 | DPT_UTF-8 |
#### DPT 029.x
| DPT | DPT_Name |
| ------ | ---------------------- |
| 29.010 | DPT_ActiveEnergy_V64 |
| 29.011 | DPT_ApparantEnergy_V64 |
| 29.012 | DPT_ReactiveEnergy_V64 |
#### DPT 030.x
| DPT | DPT_Name |
| ------- | ------------------------- |
| 30.1010 | DPT_Channel_Activation_24 |
#### DPT 031.x
| DPT | DPT_Name |
| ------ | --------------------------- |
| 31.101 | DPT_PB_Action_HVAC_Extended |
#### DPT 200.x
| DPT | DPT_Name |
| ------- | ----------------- |
| 200.100 | DPT_Heat/Cool_Z |
| 200.101 | DPT_BinaryValue_Z |
#### DPT 201.x
| DPT | DPT_Name |
| ------- | ------------------------------------- |
| 201.100 | DPT_HVACMode_Z |
| 201.102 | DPT_DHWMode_Z |
| 201.104 | DPT_HVACContrMode_Z |
| 201.105 | DPT_EnablH/Cstage_Z DPT_EnablH/CStage |
| 201.107 | DPT_BuildingMode_Z |
| 201.108 | DPT_OccMode_Z |
| 201.109 | DPT_HVACEmergMode_Z |
#### DPT 202.x
| DPT | DPT_Name |
| ------- | ------------------ |
| 202.001 | DPT_RelValue_Z |
| 202.002 | DPT_UCountValue8_Z |
#### DPT 203.x
| DPT | DPT_Name |
| ------- | ----------------------------- |
| 203.002 | DPT_TimePeriodMsec_Z |
| 203.003 | DPT_TimePeriod10Msec_Z |
| 203.004 | DPT_TimePeriod100Msec_Z |
| 203.005 | DPT_TimePeriodSec_Z |
| 203.006 | DPT_TimePeriodMin_Z |
| 203.007 | DPT_TimePeriodHrs_Z |
| 203.011 | DPT_UFlowRateLiter/h_Z |
| 203.012 | DPT_UCountValue16_Z |
| 203.013 | DPT_UElCurrentμA_Z |
| 203.014 | DPT_PowerKW_Z |
| 203.015 | DPT_AtmPressureAbs_Z |
| 203.017 | DPT_PercentU16_Z |
| 203.100 | DPT_HVACAirQual_Z |
| 203.101 | DPT_WindSpeed_Z DPT_WindSpeed |
| 203.102 | DPT_SunIntensity_Z |
| 203.104 | DPT_HVACAirFlowAbs_Z |
#### DPT 204.x
| DPT | DPT_Name |
| ------- | -------------------- |
| 204.001 | DPT_RelSignedValue_Z |
#### DPT 205.x
| DPT | DPT_Name |
| ------- | ---------------------- |
| 205.002 | DPT_DeltaTimeMsec_Z |
| 205.003 | DPT_DeltaTime10Msec_Z |
| 205.004 | DPT_DeltaTime100Msec_Z |
| 205.005 | DPT_DeltaTimeSec_Z |
| 205.006 | DPT_DeltaTimeMin_Z |
| 205.007 | DPT_DeltaTimeHrs_Z |
| 205.017 | DPT_Percent_V16_Z |
| 205.100 | DPT_TempHVACAbs_Z |
| 205.101 | DPT_TempHVACRel_Z |
| 205.102 | DPT_HVACAirFlowRel_Z |
#### DPT 206.x
| DPT | DPT_Name |
| ------- | -------------------- |
| 206.100 | DPT_HVACModeNext |
| 206.102 | DPT_DHWModeNext |
| 206.104 | DPT_OccModeNext |
| 206.105 | DPT_BuildingModeNext |
#### DPT 207.x
| DPT | DPT_Name |
| ------- | -------------------------- |
| 207.100 | DPT_StatusBUC |
| 207.101 | DPT_LockSign |
| 207.102 | DPT_ValueDemBOC |
| 207.104 | DPT_ActPosDemAbs |
| 207.105 | DPT_StatusAct |
| 207.600 | DPT_StatusLightingActuator |
#### DPT 209.x
| DPT | DPT_Name |
| ------- | ------------------ |
| 209.100 | DPT_StatusHPM |
| 209.101 | DPT_TempRoomDemAbs |
| 209.102 | DPT_StatusCPM |
| 209.103 | DPT_StatusWTC |
#### DPT 210.x
| DPT | DPT_Name |
| ------- | ----------------------- |
| 210.100 | DPT_TempFlowWaterDemAbs |
#### DPT 211.x
| DPT | DPT_Name |
| ------- | ------------------ |
| 211.100 | DPT_EnergyDemWater |
#### DPT 212.x
| DPT | DPT_Name |
| ------- | --------------------------- |
| 212.100 | DPT_TempRoomSetpSetShift[3] |
| 212.101 | DPT_TempRoomSetpSet[3] |
#### DPT 213.x
| DPT | DPT_Name |
| ------- | --------------------------- |
| 213.100 | DPT_TempRoomSetpSet[4] |
| 213.101 | DPT_TempDHWSetpSet[4] |
| 213.102 | DPT_TempRoomSetpSetShift[4] |
#### DPT 214.x
| DPT | DPT_Name |
| ------- | ------------------------ |
| 214.100 | DPT_PowerFlowWaterDemHPM |
| 214.101 | DPT_PowerFlowWaterDemCPM |
#### DPT 215.x
| DPT | DPT_Name |
| ------- | ------------- |
| 215.100 | DPT_StatusBOC |
| 215.101 | DPT_StatusCC |
#### DPT 216.x
| DPT | DPT_Name |
| ------- | ---------------- |
| 216.100 | DPT_SpecHeatProd |
#### DPT 217.x
| DPT | DPT_Name |
| ------- | ----------- |
| 217.001 | DPT_Version |
#### DPT 218.x
| DPT | DPT_Name |
| ------- | ------------------- |
| 218.001 | DPT_VolumeLiter_Z |
| 218.002 | DPT_FlowRate_m3/h_Z |
#### DPT 219.x
| DPT | DPT_Name |
| ------- | ------------- |
| 219.001 | DPT_AlarmInfo |
#### DPT 220.x
| DPT | DPT_Name |
| ------- | ------------------- |
| 220.100 | DPT_TempHVACAbsNext |
#### DPT 221.x
| DPT | DPT_Name |
| ------- | ---------- |
| 221.001 | DPT_SerNum |
#### DPT 222.x
| DPT | DPT_Name |
| ------- | ------------------------------ |
| 222.100 | DPT_TempRoomSetpSetF16[3] |
| 222.101 | DPT_TempRoomSetpSetShiftF16[3] |
#### DPT 223.x
| DPT | DPT_Name |
| ------- | ---------------- |
| 223.100 | DPT_EnergyDemAir |
#### DPT 224.x
| DPT | DPT_Name |
| ------- | ------------------------- |
| 224.100 | DPT_TempSupply AirSetpSet |
#### DPT 225.x
| DPT | DPT_Name |
| ------- | --------------------- |
| 225.001 | DPT_ScalingSpeed |
| 225.002 | DPT_Scaling_Step_Time |
| 225.003 | DPT_TariffNext |
#### DPT 229.x
| DPT | DPT_Name |
| ------- | ----------------- |
| 229.001 | DPT_MeteringValue |
#### DPT 230.x
| DPT | DPT_Name |
| -------- | ---------------- |
| 230.1000 | DPT_MBus_Address |
#### DPT 231.x
| DPT | DPT_Name |
| ------- | ---------------- |
| 231.001 | DPT_Locale_ASCII |
#### DPT 232.x
| DPT | DPT_Name |
| ------- | -------------- |
| 232.600 | DPT_Colour_RGB |
#### DPT 234.x
| DPT | DPT_Name |
| ------- | ---------------------------- |
| 234.001 | DPT_LanguageCodeAlpha2_ASCII |
| 234.002 | DPT_RegionCodeAlpha2_ASCII |
#### DPT 235.x
| DPT | DPT_Name |
| ------- | ----------------------- |
| 235.001 | DPT_Tariff_ActiveEnergy |
#### DPT 236.x
| DPT | DPT_Name |
| ------- | ---------------------------- |
| 236.001 | DPT_Prioritised_Mode_Control |
#### DPT 237.x
| DPT | DPT_Name |
| ------- | -------------------------------- |
| 237.600 | DPT_DALI_Control_Gear_Diagnostic |
#### DPT 238.x
| DPT | DPT_Name |
| ------- | -------------------- |
| 238.001 | DPT_SceneConfig |
| 238.600 | DPT_DALI_Diagnostics |
#### DPT 239.x
| DPT | DPT_Name |
| ------- | ------------------ |
| 239.001 | DPT_FlaggedScaling |
#### DPT 240.x
| DPT | DPT_Name |
| ------- | -------------------- |
| 240.800 | DPT_CombinedPosition |
#### DPT 241.x
| DPT | DPT_Name |
| ------- | ------------- |
| 241.800 | DPT_StatusSAB |
#### DPT 242.x
| DPT | DPT_Name |
| ------- | -------------- |
| 242.600 | DPT_Colour_xyY |
#### DPT 249.x
| DPT | DPT_Name |
| ------- | -------------------------------------------- |
| 249.600 | DPT_Brightness_Colour_Temperature_Transition |
#### DPT 251.x
| DPT | DPT_Name |
| ------- | --------------- |
| 251.600 | DPT_Colour_RGBW |
### Unterstützte EIS
| EIS-Typ | Version | Passende DPT |
| ------- | ------- | ----------------------------------------------------------------------- |
| EIS1 | ab 3.4 | DPT 001.x |
| EIS2 | ab 3.4 | DPT 003.x |
| EIS3 | ab 3.4 | DPT 010.x |
| EIS4 | ab 3.4 | DPT 011.x |
| EIS5 | ab 3.4 | DPT 009.x |
| EIS6 | ab 3.4 | DPT 005.x |
| EIS7 | ab 3.4 | DPT 001.x |
| EIS8 | ab 3.4 | DPT 002.x |
| EIS9 | ab 3.4 | DPT 014.x |
| EIS10 | ab 3.4 | DPT 007.x , DPT 008.x |
| EIS11 | ab 3.4 | DPT 012.x , DPT 013.x |
| EIS12 | ab 3.4 | DPT 015.x |
| EIS13 | ab 3.4 | DPT 004.x |
| EIS14 | ab 3.4 | DPT 005.x , DPT 006.x |
| EIS15 | ab 3.4 | DPT 016.x |
## KNX_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/knx/knx-requeststatus/
`bool KNX_RequestStatus(int $InstanzID)`
schickt eine Leseanfrage für DPT-Instanzen auf den Bus
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
KNX_RequestStatus(12345); //Leseanfrage abschicken
```
---
# LCN
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/
LCN (Local Control Network) ist ein kabelgebundenes Bussystem.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/lcn.md)
> **Hinweis:** Die neuen Module mit 12 Variablen (ab Firmware 160B13) werden ab IP-Symcon 3.0 unterstützt.
### Installation
Um einen LCN-Bus an IP-Symcon anschließen zu können, wird ein Bus-Koppler ([LCN-PKU](https://www.lcn.eu/?wpdmdl=8100) ) mit Koppelprogramm [PCHK](https://www.lcn.eu/?wpdmdl=8106) oder ein Ethernet-Koppler ([LCN-VISU](https://www.lcn.eu/?wpdmdl=8100) ) benötigt.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/tZMETUfw-_M?rel=0&cc_load_policy=1)
### Einbindung in IP-Symcon
Über die Verwaltungskonsole kann ein Konfigurator für das LCN System erstellt werden.
Nachdem ein Konfigurator erstellt wurde, kann unter Umständen eine rote Meldung erscheinen. Diese weist auf eine fehlerhafte oder unvollständige Konfiguration hin. Um den Fehler zu beheben muss in der übergeordneten Instanz der Benutzername und das Passwort angegeben werden. Mit einem Klick auf "Übernehmen" wird die Änderung gespeichert.

Falls nach dem Übernehmen kein Einloggen möglich ist, muss die Netzwerkkonfiguration innerhalb Schnittstelle überprüft werden. Auch kann im Gateway der Ausgabemodus zwischen 50 und 200 Schritten ausgewählt werden.
Nach dem erfolgreichen Einloggen, kann im Konfigurator auf dem Bus nach Modulen gesucht, diese in IP-Symcon erstellt und die einzelnen Module als IP-Symcon Splitter-Instanzen anlegt werden.

### Module konfigurieren
Sobald im Konfigurator ein Modul erstellt und auf die Konfigurationstaste gedrückt wurde, öffnet sich ein neuer Dialog.

Um die einzelnen Instanzen zu erstellen, müssen die gewünschten Relais, Ein-/Ausgänge, etc ausgewählt und auf "Erstellen" geklickt werden.
Neue Geräte werden im Objektbaum in der Kategorie erstellt und einsortiert, welches namentlich zum Modul passt. Diese erstellten Instanzen können dann entsprechend umbenannt und an anderer Stelle einsortiert werden. Auch besteht die Möglichkeit via "Konfigurieren" die jeweilige Instanzkonfiguration aufzurufen.

## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/geraeteliste/
### Unterstützte Gateways
| Gateway | Beschreibung |
| ----------------------- | ---------------------------------------------------------- |
| LCN-PK (über LCN PCHK) | Serieller Anschluss, Kommunikation über PCHK mit IP-Symcon |
| LCN-PKU (über LCN PCHK) | USB Anschluss, Kommunikation über PCHK mit IP-Symcon |
| LCN-PKE | Ethernet Anschluss, Kommunikation direkt mit IP-Symcon |
| LCN-VISU | Ethernet Anschluss, Kommunikation direkt mit IP-Symcon |
### Unterstützte Komponenten
IP-Symcon unterstützt alle Komponenten.
> **Hinweis:** Beim LCN-HL4 wird ausschließlich das RGB Farbmodell (Schalterstellung 2) unterstützt
## LCN_AddGroup
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-addgroup/
`bool LCN_AddGroup(int $InstanzID, int $Gruppe)`
fügt ein Gerät zu einer Gruppe hinzu
**Parameter**
- `$InstanzID` (int): ID der Instanz; die ID der Splitter-Instanz, nicht der Geräte-Instanz
- `$Gruppe` (int): Gruppennummer (1..255)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gruppennummer (1..255)
**Beispiel**
```php
//Das Gerät mit der ID 12345 wird der Gruppe 123 hinzugefügt
LCN_AddGroup(12345, 123);
```
## LCN_AddIntensity
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-addintensity/
`bool LCN_AddIntensity(int $InstanzID, int $Intensität)`
erhöht die Leuchtintensität ein Gerät
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): 0-100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-100%
**Beispiel**
```php
LCN_AddIntensity(12345, 50); //Gerät um 50 Prozentpunkte heller dimmen
```
## LCN_AddThresholdCurrent
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-addthresholdcurrent/
`bool LCN_AddThresholdCurrent(int $InstanzID, int $Register, int $Schwellwert, float $Wert)`
addiert Schwellwert zu aktuellen Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Register` (int): Register des zu schaltenden Schwellwerts (1x5
- `$Schwellwert` (int): zu setzender Schwellwert (1x5
- `$Wert` (float): Wert des Schwellwerts (0..1000)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Schwellwerts (0..1000)
**Beispiel**
```php
// 1x5 Schwellwert
// Addiert den Wert 2,5 zu dem Schwellwert 2 der Instanz mit der ID 12345
LCN_AddThresholdCurrent(12345, 0, 2, 2.5);
// 4x4 Schwellwert
// Addiert den Wert 2,5 zu dem Schwellwert 2 im Register 3 der Instanz mit der ID 12345
LCN_AddThresholdCurrent(12345, 3, 2, 2.5);
```
## LCN_AddThresholdDefined
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-addthresholddefined/
`bool LCN_AddThresholdDefined(int $InstanzID, int $Register, int $Schwellwert, float $Wert)`
addiert Schwellwert zu vordefinierten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Register` (int): Register des zu schaltenden Schwellwerts (1x5
- `$Schwellwert` (int): zu setzender Schwellwert (1x5
- `$Wert` (float): Wert des Schwellwerts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Schwellwerts
**Beispiel**
```php
// 1x5 Schwellwert
// Addiert den Wert 2,5 relativ zum programmierten Wert in den Schwellwert 2 der Instanz mit der ID 12345
LCN_AddThresholdDefined(12345, 0, 2, 2.5);
// 4x4 Schwellwert
// Addiert den Wert 2,5 relativ zum programmierten Wert in den Schwellwert 2 im Register 3 der Instanz mit der ID 12345
LCN_AddThresholdDefined(12345, 3, 2, 2.5);
```
## LCN_Beep
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-beep/
`bool LCN_Beep(int $InstanzID, bool $SonderTon, int $Anzahl)`
lässt ein Gerät piepen
**Parameter**
- `$InstanzID` (int): ID der Instanz; die ID der Splitter-Instanz, nicht der Geräte-Instanz
- `$SonderTon` (bool): __TRUE__ für An, __FALSE__ für Aus
- `$Anzahl` (int): Anzahl zwischen 1..15
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Anzahl zwischen 1..15
**Beispiel**
```php
LCN_Beep(12345, true, 1); //Ein Mal piepen (Sonderton)
```
## LCN_DeductIntensity
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-deductintensity/
`bool LCN_DeductIntensity(int $InstanzID, int $Intensität)`
veringert die Leuchtintensität ein Gerät
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): 0-100%
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-100%
**Beispiel**
```php
LCN_DeductIntensity(12345, 10); //Gerät um 10 Prozentpunkte dunkler dimmen
```
## LCN_DeductThresholdCurrent
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-deductthresholdcurrent/
`bool LCN_DeductThresholdCurrent(int $InstanzID, int $Register, int $Schwellwert, float $Wert)`
subtrahiert Schwellwert zu aktuellen Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Register` (int): Register des zu schaltenden Schwellwerts (1x5
- `$Schwellwert` (int): zu setzender Schwellwert (1x5
- `$Wert` (float): Wert des Schwellwerts (0..1000)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Schwellwerts (0..1000)
**Beispiel**
```php
// 1x5 Schwellwert
// Subtrahiert den Wert 2,5 zu dem Schwellwert 2 der Instanz mit der ID 12345
LCN_DeductThresholdCurrent(12345, 0, 2, 2.5);
// 4x4 Schwellwert
// Subtrahiert den Wert 2,5 zu dem Schwellwert 2 im Register 3 der Instanz mit der ID 12345
LCN_DeductThresholdCurrent(12345, 3, 2, 2.5);
```
## LCN_DeductThresholdDefined
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-deductthresholddefined/
`bool LCN_DeductThresholdDefined(int $InstanzID, int $Register, int $Schwellwert, float $Wert)`
subtrahiert Schwellwert zu vordefinierten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Register` (int): Register des zu schaltenden Schwellwerts (1x5
- `$Schwellwert` (int): zu setzender Schwellwert (1x5
- `$Wert` (float): Wert des Schwellwerts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des Schwellwerts
**Beispiel**
```php
// 1x5 Schwellwert
// Subtrahiert den Wert 2,5 relativ zum programmierten Wert in den Schwellwert 2 der Instanz mit der ID 12345
LCN_AddThresholdDefined(12345, 0, 2, 2.5);
// 4x4 Schwellwert
// Subtrahiert den Wert 2,5 relativ zum programmierten Wert in den Schwellwert 2 im Register 3 der Instanz mit der ID 12345
LCN_AddThresholdDefined(12345, 3, 2, 2.5);
```
## LCN_FadeOut
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-fadeout/
`bool LCN_FadeOut(int $InstanzID, int $Intensität, int $Rampe)`
setzt ein Gerät auf eine feste Intensität und dimmt dann auf 0%
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): 0-100%
- `$Rampe` (int): 0-200 Sekunde
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-200 Sekunde
**Beispiel**
```php
LCN_FadeOut(12345, 100, 5); //Gerät von 100% in 5 sekunden runterdimmen auf 0%
```
## LCN_FlipRelay
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-fliprelay/
`bool LCN_FlipRelay(int $InstanzID)`
schaltet ein Relais um
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Relais
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Relais
**Beispiel**
```php
LCN_FlipRelay(12345); //Relais umschalten
```
## LCN_LimitOutput
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-limitoutput/
`bool LCN_LimitOutput(int $InstanzID, int $Wert, int $Zeit, string $ZeitTyp)`
begrenzt einen Ausgang für einen bestimmten Zeitraum
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Ausgangs
- `$Wert` (int): Prozentualer Wert auf den begrenzt werden soll (0..100)
- `$Zeit` (int): Zeitraum wielange der Ausgang begrenzt werden soll
- `$ZeitTyp` (string): Gibt an ob die Begrenzung für Sekunden, Minuten, Stunden oder Tage gelten soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gibt an ob die Begrenzung für Sekunden, Minuten, Stunden oder Tage gelten soll
**Beispiel**
```php
//Begrenzt den Ausgang mit der ID 12345 für 8 Stunden auf 36%
LCN_LimitOutput(12345, 36, 8, 'H');
```
## LCN_LoadScene
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-loadscene/
`bool LCN_LoadScene(int $InstanzID, int $Szene)`
ruft eine Szene für einen Ausgang auf
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Ausgangs
- `$Szene` (int): Welche Szene geladen werden soll (0..9, 15)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Welche Szene geladen werden soll (0..9, 15)
**Beispiel**
```php
// Ruft die Szene 5 des Ausgangs mit der ID 12345 auf
LCN_LoadScene(12345, 5);
```
## LCN_LockTargetValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-locktargetvalue/
`bool LCN_LockTargetValue(int $InstanzID, int $Ziel)`
sperrt einen Regler des Geräts
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Ziel` (int): Welcher Regler gesperrt werden soll (0,1,2,3)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Welcher Regler gesperrt werden soll (0,1,2,3)
**Beispiel**
```php
//Sperrt den Regler 0 des Geräts 12345
LCN_LockTargetValue(12345, 0);
```
## LCN_RampStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-rampstop/
`bool LCN_RampStop(int $InstanzID)`
stoppt einen Dimmvorgang
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
LCN_RampStop(12345);
```
## LCN_ReleaseTargetValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-releasetargetvalue/
`bool LCN_ReleaseTargetValue(int $InstanzID, int $Ziel)`
entsperrt einen Regler des Geräts
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Ziel` (int): Welcher Regler entsperrt werden soll (0,1,2,3)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Welcher Regler entsperrt werden soll (0,1,2,3)
**Beispiel**
```php
// Entsperrt den Regler 0 des Geräts 12345
LCN_ReleaseTargetValue(12345, 0);
```
## LCN_RemoveGroup
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-removegroup/
`bool LCN_RemoveGroup(int $InstanzID, int $Gruppe)`
entfernt ein Gerät aus einer Gruppe
**Parameter**
- `$InstanzID` (int): ID der Instanz; die ID der Splitter-Instanz, nicht der Geräte-Instanz
- `$Gruppe` (int): Gruppennummer (0..255)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Gruppennummer (0..255)
**Beispiel**
```php
//Das Gerät mit der ID 12345 wird aus der Gruppe 123 entfernt
LCN_RemoveGroup(12345, 123);
```
## LCN_RequestLights
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-requestlights/
`bool LCN_RequestLights(int $InstanzID)`
fragt die LEDs des Tableaus ab
**Parameter**
- `$InstanzID` (int): ID des abzufragenden Tableaus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des abzufragenden Tableaus
**Beispiel**
```php
//Die LEDs des Tableau mit der ID 12345 werden abgefragt
LCN_RequestLights(12345);
```
## LCN_RequestRead
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-requestread/
`bool LCN_RequestRead(int $InstanzID)`
fragt die Werte ab
**Parameter**
- `$InstanzID` (int): ID des abzufragenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des abzufragenden Geräts
**Beispiel**
```php
//Das Gerät mit der ID 12345 abfragen
LCN_RequestRead(12345);
```
## LCN_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-requeststatus/
`bool LCN_RequestStatus(int $InstanzID)`
fragt alle Status des Moduls ab
**Parameter**
- `$InstanzID` (int): ID des abzufragenden Moduls
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des abzufragenden Moduls
**Beispiel**
```php
// Abfragen aller Status des Moduls mit der ID 12345 ab
LCN_RequestStatus(12345);
```
## LCN_RequestThresholds
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-requestthresholds/
`bool LCN_RequestThresholds(int $InstanzID)`
fragt Schwellenwerte und Hysterese ab
**Parameter**
- `$InstanzID` (int): ID des abzufragenden Thresholds
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des abzufragenden Thresholds
**Beispiel**
```php
//Die Schwellenwerte und Hysterese des Thresholds 12345 abfragen
LCN_RequestThresholds(12345);
```
## LCN_SaveScene
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-savescene/
`bool LCN_SaveScene(int $InstanzID, int $Szene)`
speichert eine Szene für einen Ausgang
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Ausgangs
- `$Szene` (int): In welcher Szene gespeichert werden soll (0..9, 15)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
In welcher Szene gespeichert werden soll (0..9, 15)
**Beispiel**
```php
// Speichert die Szene 5 des Ausgangs mit der ID 12345
LCN_SaveScene(12345, 5);
```
## LCN_SelectSceneRegister
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-selectsceneregister/
`bool LCN_SelectSceneRegister(int $InstanzID, int $Register)`
wählt ein Register aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Register` (int): welches Register ausgewählt werden soll (0..9)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
welches Register ausgewählt werden soll (0..9)
**Beispiel**
```php
// Wählt das Register 2 des Geräts mit der ID 12345
LCN_SelectSceneRegister(12345, 2);
```
## LCN_SendCommand
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-sendcommand/
`bool LCN_SendCommand(int $InstanzID, string $Funktion, string $Daten)`
**Parameter**
- `$InstanzID` (int): ID der Instanz; die ID der Splitter-Instanz, nicht der Geräte-Instanz
- `$Funktion` (string): Die ersten beiden (2) Zeichen des PCHK Befehls (z.B. A1)
- `$Daten` (string): Die restlichen Zeichen des PCHK Befehls (z.B. DI000000). Eventuelle Zahlen müssen in der dezimalen Darstellung (3 Zeichen) gesendet werden.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Die restlichen Zeichen des PCHK Befehls (z.B. DI000000). Eventuelle Zahlen müssen in der dezimalen Darstellung (3 Zeichen) gesendet werden.
**Beispiel**
```php
LCN_SendCommand(12345, "A1", "DI000000"); //Ausgang 1 sofort auf 0% dimmen.
```
## LCN_SetDisplayText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-setdisplaytext/
`bool LCN_SetDisplayText(int $InstanzID, int $Zeile, string $Text)`
Zeigt einen Text auf einer Zeile des Displays an
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Zeile` (int): Displayzeile zwischen 1..4
- `$Text` (string): Text mit maximal 60 Zeichen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Text mit maximal 60 Zeichen
**Beispiel**
```php
//Zeigt auf Zeile 1 des Displays, mit der InstanzID 12345, "Hallo Welt" an.
LCN_SetDisplayText(12345, 1, "Hallo Welt");
```
## LCN_SetDisplayTime
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-setdisplaytime/
`bool LCN_SetDisplayTime(int $InstanzID, int $Zeile, int $Anzeigedauer)`
setzt die Anzeigedauer einer Zeile im Display
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Zeile` (int): Displayzeile zwischen 1..4
- `$Anzeigedauer` (int): Zeiteinheiten zwischen 1..30
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeiteinheiten zwischen 1..30
**Beispiel**
```php
//Konfiguriert die Zeile 1 der Displayinstanz 12345 auf 30 Zeiteinheiten
LCN_SetDisplayTime(12345, 1, 30);
```
## LCN_SetIntensity
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-setintensity/
`bool LCN_SetIntensity(int $InstanzID, int $Intensität, int $Rampe)`
dimmt ein Gerät in einer bestimmten Zeit
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): 0-100%
- `$Rampe` (int): 0 = Sofort; n = Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = Sofort; n = Sekunden
**Beispiel**
```php
LCN_SetIntensity(12345, 100, 0); //Gerät auf 100% sofort dimmen
```
## LCN_SetLamp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-setlamp/
`bool LCN_SetLamp(int $InstanzID, int $Lampe, string $Aktion)`
schalten einer LED
**Parameter**
- `$InstanzID` (int): ID der Instanz; die ID der Splitter-Instanz, nicht der Geräte-Instanz
- `$Lampe` (int): Auswahl der zu schaltenden Tableau-Lämpchen (1..12)
- `$Aktion` (string): Welche Aktion ausgeführt werden soll.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Welche Aktion ausgeführt werden soll.
**Beispiel**
```php
// Das Tableau-Lämpchen 2 des Moduls mit der ID 12345 blinken lassen.
LCN_SetLamp(12345, 2, 'B');
```
## LCN_SetRelay
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-setrelay/
`bool LCN_SetRelay(int $InstanzID, string $Wert)`
setzt alle Relais in einem Modul (8Bit)
**Parameter**
- `$InstanzID` (int): ID der Instanz; die ID der Splitter-Instanz, nicht der Geräte-Instanz
- `$Wert` (string): 8fache Zeichenkombination der folgenden Werte
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
8fache Zeichenkombination der folgenden Werte
**Beispiel**
```php
LCN_SetRelay(12345, "--1100UU");
```
## LCN_SetRGBW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-setrgbw/
`bool LCN_SetRGBW(int $InstanzID, int $Rot, int $Grün, int $Blau, int $Weiß)`
setzt eine Instanz auf einen RGBW Farbwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Rot` (int): Intensität zwischen 1..100
- `$Grün` (int): Intensität zwischen 1..100
- `$Blau` (int): Intensität zwischen 1..100
- `$Weiß` (int): Intensität zwischen 1..100
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Intensität zwischen 1..100
**Beispiel**
```php
//Setz die Instanz 12345 auf Rot mit voller Intensität.
LCN_SetRGBW(12345, 100, 0, 0, 100);
```
## LCN_SetTargetValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-settargetvalue/
`bool LCN_SetTargetValue(int $InstanzID, int $Ziel, float $Wert)`
setzt einen Regler auf einen bestimmten Wert
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Ziel` (int): 0 = Regler R1; 1 = Regler R2; 2 = Regler S1; 3 = Regler S2
- `$Wert` (float): Wert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert
**Beispiel**
```php
LCN_SetTargetValue(12345, 2, 24.3); //Regler S1 auf 24.3°C setzen
```
## LCN_ShiftTargetValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-shifttargetvalue/
`bool LCN_ShiftTargetValue(int $InstanzID, int $Ziel, float $RelativerWert)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Ziel` (int): Welcher Regler geshiftet werden soll (0,1,2,3)
- `$RelativerWert` (float): Wert um den geshiftet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert um den geshiftet werden soll
**Beispiel**
```php
// Shiftet den Sollwert des Reglers 1 um -1,7°C
LCN_ShiftTargetValue(12345, 1, -1.7);
```
## LCN_ShutterMove
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-shuttermove/
`bool LCN_ShutterMove(int $InstanzID, int $Position)`
startet eine Rollladenbewegung auf prozentuale Position
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Position` (int): Prozentuale Position des Rollladen (0-100%)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Prozentuale Position des Rollladen (0-100%)
**Beispiel**
```php
//Rollladenbewegung auf 80% (zu 20% geschlossen)
LCN_ShutterMove(12345, 80);
```
## LCN_ShutterMoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-shuttermovedown/
`bool LCN_ShutterMoveDown(int $InstanzID)`
startet eine Rollladenbewegung nach unten
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
//Rollladenbewegung nach unten starten
LCN_ShutterMoveDown(12345);
```
## LCN_ShutterMoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-shuttermoveup/
`bool LCN_ShutterMoveUp(int $InstanzID)`
startet eine Rollladenbewegung nach oben
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
//Rollladenbewegung nach oben starten
LCN_ShutterMoveUp(12345);
```
## LCN_ShutterStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-shutterstop/
`bool LCN_ShutterStop(int $InstanzID)`
stoppt eine Rollladenbewegung
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
//Rollladen stoppen
LCN_ShutterStop(12345);
```
## LCN_StartFlicker
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-startflicker/
`bool LCN_StartFlicker(int $InstanzID, string $FlackerTiefe, string $Geschwindigkeit, int $AnzahlFlackerhübe)`
ein Gerät flackern lassen
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$FlackerTiefe` (string): G = Gering; M = Mittel; S = Start
- `$Geschwindigkeit` (string): L = Langsam (ca. 0,5x / Sek); M = Mittel (ca. 1x / Sek); S = Schnell (ca. 2x / Sek)
- `$AnzahlFlackerhübe` (int): Anzahl zwischen 1..15
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Anzahl zwischen 1..15
**Beispiel**
```php
LCN_StartFlicker(12345, "G", "L", 5);
```
## LCN_StopFlicker
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-stopflicker/
`bool LCN_StopFlicker(int $InstanzID)`
stoppt das Flackern eines Geräts
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
LCN_StopFlicker(12345);
```
## LCN_SwitchDurationMin
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-switchdurationmin/
`bool LCN_SwitchDurationMin(int $InstanzID, int $Minuten, string $Abdimmzeit, bool $Erhaltend)`
nach wievielen Minuten abgedimmt werden soll
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Minuten` (int): Nach wievielen Minuten Abgedimmt werden soll
- `$Abdimmzeit` (string): Wie schnell abgedimmt werden soll
- `$Erhaltend` (bool): Das Gerät wird nach Ablauf der Zeit nur ausgeschaltet, wenn vorher noch nicht an war
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Das Gerät wird nach Ablauf der Zeit nur ausgeschaltet, wenn vorher noch nicht an war
**Beispiel**
```php
// Das Gerät 12345 langsam nach 10 Minuten dimmen
LCN_SwitchDurationMin(12345, 10, 'L', false);
```
## LCN_SwitchDurationSec
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-switchdurationsec/
`bool LCN_SwitchDurationSec(int $InstanzID, int $Sekunden, string $Abdimmzeit, bool $Erhaltend)`
nach wie vielen Sekunden abgedimmt werden soll
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Sekunden` (int): Nach wie vielen Sekunden Abgedimmt werden soll
- `$Abdimmzeit` (string): Wie schnell abgedimmt werden soll
- `$Erhaltend` (bool): Das Gerät wird nach Ablauf der Zeit nur ausgeschaltet, wenn vorher noch nicht an war
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Das Gerät wird nach Ablauf der Zeit nur ausgeschaltet, wenn vorher noch nicht an war
**Beispiel**
```php
// Das Gerät 12345 schnell nach 5 Sekunden dimmen
LCN_SwitchDurationSec(12345, 5, 'K', false);
```
## LCN_SwitchMemory
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-switchmemory/
`bool LCN_SwitchMemory(int $InstanzID, int $Rampe)`
setzt das Gerät auf einen gespeicherten Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Rampe` (int): Anzahl Sekunden, 0 = Sofort
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Anzahl Sekunden, 0 = Sofort
**Beispiel**
```php
LCN_SwitchMemory(12345, 0); //Gerät sofort schalten
```
## LCN_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-switchmode/
`bool LCN_SwitchMode(int $InstanzID, int $Rampe)`
schaltet ein Gerät an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Rampe` (int): Anzahl Sekunden, 0 = Sofort
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Anzahl Sekunden, 0 = Sofort
**Beispiel**
```php
LCN_SwitchMode(12345, 0); //Gerät sofort umschalten
```
## LCN_SwitchRelay
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-switchrelay/
`bool LCN_SwitchRelay(int $InstanzID, bool $Status)`
schaltet ein Relais An/Aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
LCN_SwitchRelay(12345, true); //Relais einschalten
```
## LCN_SwitchRelayTimer
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/lcn/lcn-switchrelaytimer/
`bool LCN_SwitchRelayTimer(int $InstanzID, int $Zeitfaktor)`
schaltet ein Relais auf einen Zeitfaktor
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Zeitfaktor` (int): Zeitfaktor zwischen 1..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeitfaktor zwischen 1..255
**Beispiel**
```php
//Relais Zeitfaktor auf 255 stellen.
LCN_SwitchRelayTimer(12345, 255);
```
---
# LJQuick
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ljquick/
_Benötigt Symcon >= 7.2_
Das KNX quick (Lingg&Janke) Modul hilft dabei die KNX quick Instanzen schnell und unkompliziert hinzuzufügen. Durch auswählen einer Gruppe, Kanal und einem Klick auf den Button 'Erstellen' werden die Instanzen mit den richtigen Adressen erstellt. Datum und Uhrzeit werden alle 10 Minuten an die KNX Adresse 30/3/254 gesendet.
### Funktionsumfang
- Erstellung von Instanzen anhand eines Konfigurators
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'KNX quick (Lingg&Janke)'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'KNX quick (Lingg&Janke)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
Der Konfigurator ist als Baum auf gebaut. Zuerst die Geräteart, darunter die verschiedenen Gruppen unter denen die verschiedenen Kanäle sind. Ist ein oder mehrere Kanäle ausgewählt, können die dazugehörigen KNX Geräte Instanzen mit den dazugehörigen Gruppenaddressen mit einem Klick auf den Button 'Erstellen' erstellt werden.
Verfügbare Geräte:
- Schalter
- Dimmen
- Beschattung
- Energie
- Wasser, Gas, Öl
- Wärmemengenzähler
- Temperatur
- Temperatur/Luftfeuchtigkeit
Jedes Gerät beinhaltet die Gruppe 1-F.
Jede Gruppe enthält die Kanäle 1-9.
Die Gerätegruppen Schalter, Dimmen, Beschattung, Temperatur und Temperatur/Luftfeuchtigkeit enthalten ebenfalls den Kanal 0.
## LJ_SendDateTime
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ljquick/lj-senddatetime/
`bool LJ_SendDateTime(int $InstanzID)`
_Benötigt Symcon >= 7.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
LJ_SendDateTime(12345);
```
---
# Matter
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/matter/
_Benötigt Symcon >= 8.2_
> **Hinweis:** Die Matter-Integration befindet sich noch in der Entwicklung und wird mit der Version 8.2 veröffentlicht. Zurzeit wird Matter unter Windows nicht unterstützt.
> **Achtung:** Generell empfehlen wir die Matter-Integration nicht unter Docker zu verwenden, da es hier diverse Anforderungen und Einschränkungen gibt, die teilweise sehr technisch und spitzfindig sind. Für erfahrene Nutzer haben wir einen [Leitfaden](https://www.symcon.de/de/llms/modules/matter.md) zusammengestellt.
#### Einbindung in Symcon
Um Matter Geräte in Symcon einzubinden wird ein Matter Konfigurator benötigt. Dieser kann im Objektbaum über "+"->"Instanz" via Schnellfilter "Matter Konfigurator" hinzugefügt werden.
### Einrichtung
Um Matter Geräte mit Symcon zu verbinden gibt es 2 Möglichkeiten.

#### 1. Die Symcon Visualization App
Wenn das Gerät brandneu ist oder auf den Werkszustand zurückgesetzt wurde, kann es über die Symcon App dem Server hinzugefügt werden.
Hierfür muss der Matter Konfigurator geöffnet und über die Schaltfläche "Gerät koppeln" die Option "Koppeln über App" gewählt werden. Daraufhin kann die App geöffnet werden. Wenn die App mit dem Server verbunden ist, kann in den Einstellungen über den Menüpunkt Matter die Einrichtungsseite geöffnet werden. Über das Plus in der unteren rechten Ecke kann der Kopplungsvorgang des jeweiligen Betriebssystems gestartet werden. Nachdem der QR-Code gescannt oder der Kopplungscode manuell eingegeben wurde, wird das Gerät für den Symcon Server freigegeben. Wenn der Konfigurator signalisiert, dass das Gerät erfolgreich verbunden wurde, können die verfügbaren Instanzen erstellt werden.

#### 2. Teilen durch anderen Controller
Ist das Gerät bereits mit einem anderen Controller verbunden (IKEA DIRIGERA Hub, Aqara Hub M3, Google Nest Hub oder Apple Home Pod) kann über die jeweiligen Apps ein Kopplungscode generiert werden, um das Gerät für andere Systeme freizugeben. Im Konfigurator kann über die Schaltfläche "Gerät koppeln" die Option "Gerät hinzufügen" gewählt werden. In diesem Dialog kann der Kopplungscode eingetragen werden. Daraufhin wird das Gerät eingerichtet und die verfügbaren Instanzen können erstellt werden.
> **Hinweis:** Einige Geräte (etwa Shelly), die ohne das Einrichten durch einen Controller im selben Netzwerk wie der Symcon Server sind, können wie in Möglichkeit 2 beschrieben eingerichtet werden. Der Kopplungscode entspricht dem, der direkt auf Gerät unter dem Matter-QR gedruckt ist.

### Konfigurator
Über den Konfigurator können die bereits hinzugefügten Geräte verwaltet werden.
#### Abonnements
In der Abonnement Spalte wird der Verbindungsstatus der einzelnen Knoten angezeigt. Durch einen Klick auf den Text kann ein Dialog geöffnet werden, der die vergangenen und die Aktuelle Verbindung und deren Zustand auflistet. Außerdem kann über die Schaltfläche "Abonnement erzwingen" eine neue Verbindung manuell aufgebaut werden. Dies ist nur in Ausnahmefällen notwendig, da die Wiederaufnahme von unterbrochenen Verbindungen automatisiert erfolgt.

#### Gerät Aktualisieren
Alle Informationen eines Gerätes können über einen Klick auf das runde Pfeil Symbol erneut abgerufen werden. Dies ist notwendig, wenn an einer eingebundenen Bridge (Hue Bridge, IKEA DIRIGERA) neue Geräte hinzugefügt wurden, die noch nicht im Konfigurator aufgelistet sind.
#### Erweiterte Informationen anzeigen
Über das "i" im Konfigurator kann ein Dialog angezeigt werden, der verschiedene Informationen über den Hauptknoten und die einzelnen Endpunkte anzeigt. Dazu gehört die Art der Verbindung (Ethernet, Wifi, Thread), die Software- und Hardwareversion sowie alle Controller mit denen das Gerät verbunden ist. Außerdem werden alle Cluster des gewählten Gerätes angezeigt.

#### Geräte entfernen
Über das "x" im Konfigurator kann die Verbindung mit dem Gerät getrennt werden.
### Matter Gerät Instanz
Ein Matter Gerät besteht aus einem oder mehreren Endpunkten. Für jeden Endpunkt wird eine Instanz des Typs "Matter Gerät" erstellt. Ein Endpunkt mehrere Cluster, welche die verschiedenen Funktionen eines Gerätes abbilden.

Über die Schaltfläche "Unterstützte Cluster anzeigen" wird ein Dialog geöffnet, welcher die Cluster anzeigt über die der Endpunkt verfügt, und ob diese von Symcon unterstützt werden. Außerdem wird die "Feature Map" angezeigt, welche Aufschluss über den Funktionsumfang der einzelnen Cluster gibt.
Über "Werte aktualisierten" werden die einzelnen Werte des Gerätes ausgelesen und in die Variablen geschrieben.
Wenn ein Gerät die Funktion unterstützt, kann über die Schaltfläche "Gerät Identifizieren", eine Zeit festgelegt werden. Beim Bestätigen meldet sich das physikalische Gerät für die angegebene Dauer, beispielsweise über ein Blinken oder Summen.
Im unteren Bereich der Instanzkonfiguration werden alle schaltbaren Variablen angezeigt und können verändert werden.
### Batteriebetriebene Geräte
Einige batteriebetriebenen Geräte gelten als Intermittently Connected Devices (ICD). Diese Geräte können über einen längeren Zeitraum nicht verfügbar sein. Daher können sie von Symcon nicht zuverlässig abonniert werden. Die Werte der ICDs können trotzdem manuell aktualisiert werden, solange Symcon das Gerät erreichen kann. Auch wenn das Gerät mit Symcon gekoppelt ist, kann es sein, dass es im Konfigurator übergangsweise nicht angezeigt wird.
### Unterstützte Cluster
Es werden noch nicht alle Funktionen, welche die einzelnen Cluster bieten unterstützt.
- OnOff
- LevelControl
- ColorControl
- OccupancySensing
- TemperatureMeasurement
- RelativeHumidityMeasurement
- IlluminanceMeasurement
- Switch
- BooleanState
- Pm25ConcentrationMeasurement
- FanControl
- RvcCleanMode
- RvcOperationalState
- RvcRunMode
- ServiceArea
- AirQuality
- PowerSource
- DoorLock
- Thermostat
- HepaFilterMonitoring
- ElectricalEnergyMeasurement
- ElectricalPowerMeasurement
- WindowCovering
- Descriptor
- Identify
## Hinweis zur Verwendung von Matter unter Docker
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/matter/docker/
- Generell empfehlen wir die Matter-Integration nicht unter Docker zu verwenden, da es hier diverse Anforderungen und Einschränkungen gibt, die teilweise auch sehr technisch und spitzfindig sind.
- **Synology/QNAP NAS** haben einen zu alten Kernel, sodass dort Thread Geräte gar nicht, und LAN/WLAN Geräte nur im Host/MacVLAN Netzwerk-Modus laufen können.
Wenn Matter unter Docker verwendet werden soll, **muss** eine der beiden Voraussetzungen erfüllt sein:
- Docker läuft im MacVLAN Netzwerk-Modus, sodass der Container eine eigene IP-Adresse im Netzwerk hat.
- Docker läuft im Host Netzwerk-Modus. Der Host darf dabei kein Avahi installiert haben. Ansonsten gibt es Server-Collision Fehlermeldungen und die mDNS Netzwerkauflösung wird nicht zuverlässig sein, da zwei Avahi-Stacks parallel laufen.
Bei folgenden Einschränkungen funktioniert Matter trotzdem nicht zuverlässig:
- Docker im Bridge Netzwerk-Modus funktioniert gar nicht, da mDNS dadurch nicht verfügbar ist.
- Docker läuft zwar korrekt im Host Netzwerk-Modus, aber Avahi läuft ebenfalls auf dem Host. Dadurch läuft Avahi doppelt. Dies ist insbesondere bei **Synology/QNAP NAS** der Fall. Dadurch wird das Finden der Geräte über mDNS gestört und Geräte werden sporadisch nicht erreichbar bzw. unzuverlässig sein.
- Wenn der Kernel zu alt ist werden keine Router Announcements unterstützt. Dies ist insbesondere bei **Synology/QNAP NAS** der Fall. In diesem Fall funktioniert die Matter-Integration nur für LAN/WLAN Geräte und für Thread Geräte nur, wenn ein IPv6-DHCP-Server verfügbar ist, der alle Adressen/Routen korrekt an alle Geräte/Thread Border Router vergibt.
- Falsch oder nicht gesetzte Sysctl-Einstellungen. Darauf weist der Konfigurator auch entsprechend hin. Dadurch werden insbesondere die Router Announcements konfiguriert, sodass Thread Geräte zuverlässig funktionieren.
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/matter/geraeteliste/
_Benötigt Symcon >= 8.2_
### Matter over Thread
Wenn Matter Geräte über Thread angebunden werden sollen wird ein Thread Border Router (TBR) benötigt. Um ein "Matter over Thread" Gerät zu Symcon hinzufügen zu können müssen dem Betriebssystem (iOS oder Android) die Thread Credentials des TBR bekannt sein. Alternativ können angelernte Geräte über die App des Herstellers für Symcon freigegeben werden.
Die TBRs der folgenden Hersteller wurden getestet:
| Hersteller | Produkt |
| ---------- | ---------------------------- |
| IKEA | DERIGERA Hub |
| Apple | z.B. HomePod mini |
| Google | z.B. Google TV Streamer (4K) |
| Aeotec | z.B. Smart Home Hub |
---
# M-Bus
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mbus/
M-Bus ist ein standartisiertes Protokoll und Bussystem zur Verbrauchsdatenerfassung. Zur Verbindung mit IP-Symcon wird ein LAN-, seriell- oder USB-Gateway benötigt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/mbus.md)
### Installation
Das __M-Bus LAN Gateway__ wird per LAN mit dem PC verbunden. Standardmäßig ist DHCP und Port 5000 eingerichtet. Sollte eine individuelle IP Adresse gefordert sein, so wird das IP-Symcon "Network Configuration Tool" benötigt. Dieses steht zum [Download](https://support.symcon.de/lan-gct) bereit. Eine einfache [Beschreibung zur Konfiguration des Gateways](https://www.symcon.de/assets/files/service/NetworkConfigurationTool.pdf) steht zur Verfügung. Im Anschluss ist das Gateway über die eingerichtete IP-Adresse und Port erreichbar.
### Einbindung in IP-Symcon
Das LAN-Gateway kann über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "M-Bus Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines M-Bus [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können dort Geräte gesucht und eingebunden werden.
### Konfigurator
Im Konfigurator können Standardeinstellungen für neu erstellte Geräte definiert werden:
| Eigenschaft | Beschreibung |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Standard Adressierung | Auswahl ob Geräte über die Primäradresse oder Sekundäradresse angesprochen werden sollen, bei "Automatisch" wird die Sekundäradresse verwendet, falls die Primäradresse 0 ist, ansonsten die Sekundäradresse |
| Standard Intervall | In welchen Abständen die Werte in Minuten abgefragt werden sollen |
Die Standardeinstellungen werden nur bei der Erstellung von neuen [Instanzen](https://www.symcon.de/de/llms/concepts.md) angewandt. Eine Änderung wirkt sich also nicht auf bereits existierende [Instanzen](https://www.symcon.de/de/llms/concepts.md) aus.
Nach der Definition der Standardeinstellungen kann durch einen Klick auf den Button "Suche nach Geräten" die Suche nach M-Bus-Geräten gestartet werden. Die Suche kann einige Minuten dauern.
Nach der Suche erscheinen die gefundenen Geräte als erstellbare Instanzen im Konfigurator. Dazu muss ein Gerät aus der Liste ausgewählt und auf "Erstellen" geklickt werden.

Neue Instanzen werden im Objektbaum in der Hauptkategorie erstellt. Diese erstellten Instanzen können dann entsprechend umbenannt und an anderer Stelle einsortiert werden. Auch besteht die Möglichkeit via "Konfigurieren" im Konfigurator die jeweilige Instanzkonfiguration aufzurufen.
### Konfiguration
Auf der Konfigurationsseite des Gerätes können verschiedene Eigenschaften eingestellt werden.
| Eigenschaft | Beschreibung |
| ------------------------ | ----------------------------------------------------------------------------------------- |
| Adressierung | Auswahl ob das Gerät über die Primäradresse oder Sekundäradresse angesprochen werden soll |
| Adresse | Adresse bzw. ID den Geräts |
| Aktualisierungsintervall | In welchen Abständen die Werte in Minuten abgefragt werden sollen |
| Limitierung | Limitierung der Pakete auf dem Bus (0 = Unlimitiert) |

## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mbus/geraeteliste/
### Unterstützte Gateways
Generell werden alle M-Bus Gateways unterstützt.
Explizit getestete Gateways:
| Hersteller | Beschreibung |
| ------------------------------------------------------------------------------------- | -------------------------- |
| SymBox mit M-Bus Erweiterung [Jetzt bestellen](https://www.symcon.de/de/shop/symbox/bundle-symbox/) | Seriell integriertes Modul |
| Symcon M-Bus LAN Gateway [Jetzt bestellen](https://www.symcon.de/de/shop/gateways/lan-m-bus/) | IP Gateway |
| PiiGAB | M-Bus 800 |
| Relay | M-Bus Micro-Master |
| Relay | Pegelwandler PW3 |
| Relay | Pegelwandler PW20 |
| Relay | Pegelwandler PW60 |
| Relay | RelAir R2M HOME |
| Relay | RelAir R2M Pro |
### Unterstützte Komponenten
IP-Symcon unterstützt alle Geräte, die das M-Bus Protokoll nutzen.
## MBUS_UpdateValues
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mbus/mbus-updatevalues/
`bool MBUS_UpdateValues(int $InstanzID)`
aktualisiert alle gerätespezifischen Werte
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu aktualisierenden Geräts
**Beispiel**
```php
MBUS_UpdateValues(12345);
```
---
# Mennekes
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mennekes/
_Benötigt Symcon >= 7.0_
Mennekes bietet verschiedene Wallboxen/Ladesäulen an. Über ModBus TCP können diese ausgelesen werden. Eine Verbindung mit Symcon ist über ein LAN-IP Gateway oder W-LAN, je nach Ausführung, möglich.
> **Hinweis:** Folgende Geräte werden von Symcon unterstützt:
>
> [Unterstützte Komponenten](https://www.symcon.de/de/llms/modules/mennekes.md)
### Installation
Um Mennekes Wallboxen/Ladesäulen in Symcon nutzen zu können, muss eine Verbindung via Ethernet oder W-LAN zur Wallbox vorhanden sein. Innerhalb der Wallbox/Ladesäulen ist für eine kabelgebundene Lösung ein USB->LAN Converter nötig, welcher im Lieferumfang der Wallbox/Ladesäulen mitgeliefert wird.
### Einbindung IP-Symcon
Zuerst muss eine "ModBus Gerät" Instanz innerhalb des Objektbaums von IP-Symcon hinzugefügt werden. Im folgenden Dialog muss die IP-Adresse der Wallbox eingetragen werden. Der Port ist Standardmässig 502. Beide Informationen können auf der Weboberfläche der WallBox/Ladesäule eingesehen werden.


Im Anschluss kann die ModBus Vorlage für Mennekes Wallboxen/Ladesäulen heruntergeladen werden. Diese beinhaltet die ganze Konfiguration des ModBus Geräts. Nach dem Herunterladen, kann die "MennekesModBusx_vx.json" über "Importieren" geladen werden. Anschließend sind alle ModBus Adressen der gängigen Mennekes Wallboxen/Ladesäulen eingerichtet.
> **Hinweis:** Vorlagen in der [Geräteübersicht](https://www.symcon.de/de/llms/modules/mennekes.md)

### Hinzufügen von Adressen
Sollen weitere Adressen hinzugefügt werden, kann dies über "Hinzufügen" realisiert werden.
Je nach Ausführung der Wallbox kann es sein, dass einzelne Adressen de-/aktiviert werden müssen. Dies kann über die Aktiv Spalte gesteuert werden.
### Protokollbeschreibung
> **Hinweis:** Protokollbeschreibung in der [Geräteübersicht](https://www.symcon.de/de/llms/modules/mennekes.md)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/
_Benötigt Symcon >= 7.0_
### Unterstützte Komponenten
#### AMEDIO Professional
Alle Variationen der Produktfamilie werden unterstützt.
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/1e9bcc3e26-1790424938/ecu_modbus_tcp_server_spec_rev_1.07.pdf) aller Datenpunkte.
| System | Modbus Vorlage |
| ---------------------------------- | -------------------------------------------------------- |
| AMEDIO Professional 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMEDIO Professional PnC 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMEDIO Professional+ 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMEDIO Professional+ PnC 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMEDIO Professional PnC 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMEDIO Professional+ PnC 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
#### AMTRON Charge Control
Alle Variationen der Produktfamilie werden unterstützt.
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/1e9bcc3e26-1790424938/ecu_modbus_tcp_server_spec_rev_1.07.pdf) aller Datenpunkte.
| System | Modbus Vorlage |
| ---------------------------------- | -------------------------------------------------------- |
| AMTRON Charge Control 11 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Charge Control 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
#### AMTRON Professional
Alle Variationen der Produktfamilie werden unterstützt.
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/1e9bcc3e26-1790424938/ecu_modbus_tcp_server_spec_rev_1.07.pdf) aller Datenpunkte.
| System | Modbus Vorlage |
| ---------------------------------- | -------------------------------------------------------- |
| AMTRON Professional 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional PnC 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional PnC 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ PnC 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ PnC 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional TCX 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional TCX 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional TCX PnC 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional TCX PnC 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ TCX 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ TCX 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ TCX PnC 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
| AMTRON Professional+ TCX PnC 22 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/88badc7d15-1790424938/mennekesmodbusall_v2.json) |
#### AMTRON Xtra
Alle Variationen der Produktfamilie werden unterstützt.
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/98fae657f7-1790424938/amtron_modbus_description_extern_v0.1_premium-xrta.pdf) aller Datenpunkte.
| System | Modbus Vorlage |
| ---------------------------------- | -------------------------------------------------------- |
| AMTRON Xtra 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/ab710611ca-1790424938/mennekesmodbusamtronxtra_v1.json) |
| AMTRON Xtra 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/ab710611ca-1790424938/mennekesmodbusamtronxtra_v1.json) |
| AMTRON Xtra E 11/22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/ab710611ca-1790424938/mennekesmodbusamtronxtra_v1.json) |
| AMTRON Xtra R 11 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/ab710611ca-1790424938/mennekesmodbusamtronxtra_v1.json) |
| AMTRON Xtra R 3,7/7,4 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/ab710611ca-1790424938/mennekesmodbusamtronxtra_v1.json) |
#### AMTRON 4You
Alle Variationen der Produktfamilie werden unterstützt.
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/7227d0b91e-1790424938/amtron-4you500-4business700-modbus-tcp-register-v1.5.pdf) aller Datenpunkte.
| System | Modbus Vorlage |
| ---------------------------------- | -------------------------------------------------------- |
| AMTRON 4You 410 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 410 7.4/22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 410 7.4/22 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 460 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 510 7.4 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 510 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 510 11 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 510 7.4/22 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 510 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 560 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4You 560 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
#### AMTRON 4Business
Alle Variationen der Produktfamilie werden unterstützt.
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/7227d0b91e-1790424938/amtron-4you500-4business700-modbus-tcp-register-v1.5.pdf) aller Datenpunkte.
| System | Modbus Vorlage |
| ---------------------------------- | -------------------------------------------------------- |
| AMTRON 4Business 610 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 610 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 610 22 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 620 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 630 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 630 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 630 22 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 710 7.4 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 710 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 710 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 710 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 710 22 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 730 7.4 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 730 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 730 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 730 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 730 22 T2S | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 760 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 760 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 760 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 780 11 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 780 22 C2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
| AMTRON 4Business 780 22 T2 | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/mennekes/geraeteliste/edbd7a1913-1790424938/mennekesmodbus4you4business.json) |
---
# Modbus RTU/TCP
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/
ModBus ist ein Protokoll welches auf RTU (seriell binär) und TCP/IP Paketen basiert. Eine Verbindung mit IP-Symcon ist via LAN- oder Seriell-Gateway möglich.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md)
### Einbindung in IP-Symcon
Zuerst muss eine "ModBus" Instanz innerhalb von IP-Symcon hinzugefügt werden. Dabei gibt es verschiedene Varianten, die erstellt werden können:
| Instanz | Beschreibung |
| -------------- | ------------------------------------------------------------------------------------------------- |
| ModBus Gerät | Instanz, welche mehrere Adressen (Coils/Register) abbilden kann und Vorlagen unterstützt (ab 7.0) |
| ModBus Coil | Instanz, welche eine einzelne Adresse (Coil) darstellt |
| ModBus Adresse | Instanz, welche eine einzelne Adresse (Register) darstellt |
> **Hinweis:** Viele Vorlagen sind in unserer Community zu finden: [Vorlagen anzeigen](https://community.symcon.de/c/ip-symcon/vorlagen-modbus/86)
Anschließend muss die Konfiguration des übergeordneten Gateways und I/O Instanz an das angeschlossene Gerät angepasst werden. Es muss ausgewählt werden über welches Protokoll und Geräte-ID das Gerät angesprochen wird. Die Geräte-ID ist vorallem bei RTU angeschlossenen Geräten wichtig. Bei TCP angeschlossenen Geräten ist diese oftmals die Geräte-ID 1.

Um eine Verbindung zum Gerät herstellen zu können, müssen in der dem Gateway übergeordneten I/O Instanz, IP-Adressse und Port (Default: 502) eingetragen werden.
Weitere Konfiguration (Screenshot siehe unten) ist wiefolgt.
| Option | Beschreibung |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Einheit | Datentyp der Variable des Devices |
| Funktion (Lesen) | Funktion nach der die Werte gelesen werden sollen |
| Adresse (Lesen) | Geräteadresse des Registers aus dem gelesen werden soll |
| Funktion (Schreiben) | Funktion nach der die Werte geschrieben werden sollen |
| Adresse (Schreiben) | Geräteadresse des Registers in das Geschrieben werden soll |
| Faktor (Zahlenwerte) | Der Faktor multipliziert oder teilt den empfangenen Wert und schreibt diesen in die Variable des Devices |
| Länge (Strings) | Wenn die Länge größer 0 gesetzt ist, bestimmt es die Anzahl der Zeichen (Byte), welche abgefragt werden. Hinweis: 1 Register = 2 Zeichen (Byte) |
| Byte-Reihenfolge | Je nach Gerät muss die Byte-Reihenfolge angepasst werden. Oft wird dies nicht dokumentiert, sondern muss ausprobiert werden. Big Endian und Little Endian (Bytes vertauscht) sind die gängigen Werte. |
| Status emulieren | "Status emulieren" bedeutet, dass der Wert der Variable bei erfolgreichem Schreibbefehl auf den neuen Wert gesetzt wird und nicht auf einen Lesebefehl angewiesen ist. |
| Intervall | Wenn das Intervall größer 0 gesetzt ist, wird die Adresse (Lesen) beim ModBus-Gerät zyklisch abgefragt und die Variable des Devices aktualisiert. |

> **Hinweis:** Durch die Tatsache, dass wir noch 32 Bit Systeme unterstützen werden Int64 Werte als Float64 abgebildet.
### Modbus Gerät
Sollen mehrere Adressen für ein Gerät abgefragt werden, sollte das Modbus-Gerät genutzt werden. Hier können mehrere Adressen als Tabelle eigetragen werden, sowie virtuelle Adressen definiert werden.
Konfiguration:
| Name | Beschreibung |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Adressen | Tabellarische Aufführung der definierten Adressen |
| Virtuelle Adressen konfigurieren | Button mit dem eine Liste virtueller Adressen definiert werden kann |
| Byte-Reihenfolge | Je nach Gerät muss die Byte-Reihenfolge angepasst werden. Oft wird dies nicht dokumentiert, sondern muss ausprobiert werden. Big Endian und Little Endian (Bytes vertauscht) sind die gängigen Werte. |
| Intervall | Wenn das Intervall größer 0 gesetzt ist, wird die Adresse (Lesen) beim ModBus-Gerät zyklisch abgefragt und die Variable des Devices aktualisiert. |
| Vorlage importieren | Durch diesen Button, kann eine Vorlage der Tabellen schnell eingefügt werden. |
| Vorlage exportieren | Durch diesen Button, kann eine Vorlage aus den vorgenommenen Einstellungen erstellt werden. Die Profile werden dabei ebenfalls exportiert. |
> **Hinweis:** Der Aufbau der Vorlagen-Dateien ist unter [Vorlagen (Dateiformat)](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md) ausführlich beschrieben.
Inhalt der Adressen-Liste:
| Name | Beschreibung |
| --------------------- | ----------------------------------------------------- |
| Aktiv | Gibt an, ob die Variable erstellt werden soll |
| Name | Name, der als Variablenname genutzt wird |
| Einheit | Datentyp des Registers |
| Funktion (Lesen) | Funktion nach der die Werte gelesen werden sollen |
| Adresse (Lesen) | Registers aus dem gelesen werden soll |
| Funktion (Schreiben) | Funktion nach der die Werte geschrieben werden sollen |
| Adresse (Schreiben) | Registers in das Geschrieben werden soll |
| Profil | Profil, welches die Variable bekommen soll |
Unter den Expertenoptionen kann der Ident individuell angepasst und auch eine Übersetzung für den Variablennamen mitgegeben werden.
Inhalt der virtuellen Adressen Liste:
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------- |
| Aktiv | Die Variable wird erstellt |
| Name | Name der als Variablenname genutzt wird |
| Variablentyp | Typ der Variable |
| Profil | Profil der Variable |
| Lesen | Skript, welches die Werte der virtuelle Adresse zu Verfügung stellt |
| Schreiben | Skript, welches die Werte an die Variablen weitergibt. |
Beim Lese-Skript sind in $VALUES alle Werte mit den jeweiligen Idents verfügbar. Der neue Wert, der in der Variable der virtuellen Adresse laden soll, wird einfach mit return zurückgegeben. Sofern kein Wert geschrieben werden soll (z.B. weil ungültig) kann null zurückgegeben werden. (ab 7.1)
```php
return ($VALUES["A_3_3_23296"] + $VALUES["A_3_3_23298"] + $VALUES["A_3_3_23300"])/3;
```
Beim Schreibt-Skript wird ein Assoziatives Array als return erwartet, welches alle Ident enthält, in die geschrieben werden soll. $VALUE enthält den neuen Wert, der per RequestAction angefordert wurde.
```php
return ["A_3_3_23296" => $VALUE];
```
### FunctionCodes
Je nach FunctionCode muss auch eine passende Adresse eingetragen werden. Diese kann der Tabelle entnommen werden.
Die nachfolgende Tabelle bietet ebenfalls einen Überblick, welcher FunctionCode bei welcher Parameterierung innerhalb von IP-Symcon gesendet wird:
| FunctionCode | Geräteadresse | Lese-/ Schreibadresse | Name |
| ------------ | ------------- | --------------------- | ------------------------ |
| 0x01 (1) | 1 - 10000 | Geräteadresse - 1 | Read Coils |
| 0x05 (5) | 1 - 10000 | Geräteadresse - 1 | Write Single Coil |
| 0x02 (2) | 10001 - 20000 | Geräteadresse - 10001 | Read Discrete Inputs |
| 0x03 (3) | 40001 - 50000 | Geräteadresse - 40001 | Read Holding Registers |
| 0x10 (16) | 40001 - 50000 | Geräteadresse - 40001 | Write Multiple registers |
| 0x04 (4) | 30001 - 40000 | Geräteadresse - 30001 | Read Input Registers |
> **Hinweis:** Wenn Beispielsweise auf der Adresse 40123 geschrieben (FunctionCode = 0x10) werden soll, muss der passende Datentyp (Einheit) ausgewählt werden und die Schreibadresse 122 (40123 - 40001) eingetragen werden.
> **Achtung:** Manche Hersteller halten sich nicht an diese Konvention. Es muss in der jeweiligen Anleitung oder Datenblätter nachgesehen werden, ob die Geräteadresse je nach Functioncode abgezogen werden muss oder absolute Adressen gelten
### Datentypen
| Datentyp | Vorzeichen | Bits |
| -------- | ------------------ | ---- |
| BOOL | vorzeichenlos | 1 |
| UINT8MSB | vorzeichenlos | 8 |
| UINT8LSB | vorzeichenlos | 8 |
| UINT16 | vorzeichenlos | 16 |
| UINT32 | vorzeichenlos | 32 |
| UINT64 | vorzeichenlos | 64 |
| INT8MSB | vorzeichenbehaftet | 8 |
| INT8LSB | vorzeichenbehaftet | 8 |
| INT16 | vorzeichenbehaftet | 16 |
| INT32 | vorzeichenbehaftet | 32 |
| INT64 | vorzeichenbehaftet | 64 |
| FLOAT32 | vorzeichenbehaftet | 32 |
| FLOAT64 | vorzeichenbehaftet | 64 |
| STRING | | |
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/geraeteliste/
### Unterstützte Gateways/Komponenten
IP-Symcon unterstützt alle Geräte, die das ModBus RTU oder ModBus TCP Protokoll nutzen.
Insbesondere Geräte und SPS von [Wago/Beckhoff/ABB](https://www.symcon.de/de/llms/modules/sps-wago-beckhoff-abb.md).
### Unterstützte Komponenten
IP-Symcon unterstützt alle Komponenten.
| Hersteller | Beschreibung |
| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| SymBox mit RS485 (ModBus RTU) Erweiterung [Jetzt bestellen](https://www.symcon.de/de/shop/symbox/bundle-symbox/) | Seriell integriertes Modul |
| Exsys EX-6051 (unverbindliche Empfehlung) | Seriell auf LAN Wandler für Modus "ModBus RTU über TCP" |
| Waveshare RS485 to Ethernet Converter (unverbindliche Empfehlung) | Seriell auf LAN Wandler für Modus "ModBus RTU über TCP" |
## ModBus_RequestRead
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-requestread/
`bool ModBus_RequestRead(int $InstanzID)`
führt einen Lesevorgang auf einem Gerät aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
ModBus_RequestRead(12345); //Gerät auslesen
```
## ModBus_WriteCoil
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writecoil/
`bool ModBus_WriteCoil(int $InstanzID, bool $Status)`
setzt eine Adresse auf An/Aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
//Schaltet die Instanz mit der ID 12345 ein
ModBus_WriteCoil(12345, true);
```
## ModBus_WriteRegister
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregister/
`bool ModBus_WriteRegister(int $InstanzID, float $Wert)`
schreibt einen Wert in die Schreiben-Adresse
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): 32Bit Gleitkommawert nach IEEE754 oder Ganzzahlig
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
32Bit Gleitkommawert nach IEEE754 oder Ganzzahlig
**Beispiel**
```php
////Schreibt auf das Register der Instanz mit der ID 12345 den Wert 23,5
ModBus_WriteRegister(12345, 23.5);
////Schreibt auf das Register der Instanz mit der ID 23456 den Wert 12
ModBus_WriteRegister(23456, 12);
```
## ModBus_WriteRegisterByte
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterbyte/
`bool ModBus_WriteRegisterByte(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten Byte-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-255
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert 123
ModBus_WriteRegisterByte(12345, 123);
```
## ModBus_WriteRegisterChar
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterchar/
`bool ModBus_WriteRegisterChar(int $InstanzID, int $Wert)`
_Benötigt Symcon >= 4.4_
setzt eine Adresse auf einen bestimmten Char-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): -128 bis 127
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-128 bis 127
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert -123
ModBus_WriteRegisterChar(12345, -123);
```
## ModBus_WriteRegisterDWord
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterdword/
`bool ModBus_WriteRegisterDWord(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten DWord-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-4294967295
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-4294967295
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert 123
ModBus_WriteRegisterDWord(12345, 123);
```
## ModBus_WriteRegisterInt64
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterint64/
`bool ModBus_WriteRegisterInt64(int $InstanzID, float $Wert)`
setzt eine Adresse auf einen bestimmten Int64-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): -9223372036854775808 bis 9223372036854775807
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-9223372036854775808 bis 9223372036854775807
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert 235689
ModBus_WriteRegisterInt64(12345, 235689);
```
## ModBus_WriteRegisterInteger
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterinteger/
`bool ModBus_WriteRegisterInteger(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten Integer-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): -2147483648 bis 2147483647
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-2147483648 bis 2147483647
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert -123
ModBus_WriteRegisterInteger(12345, -123);
```
## ModBus_WriteRegisterReal
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterreal/
`bool ModBus_WriteRegisterReal(int $InstanzID, float $Wert)`
setzt eine Adresse auf einen bestimmten Float-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): 32Bit Gleitkommawert nach IEEE754
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
32Bit Gleitkommawert nach IEEE754
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert 23,5
ModBus_WriteRegisterReal(12345, 23.5);
```
## ModBus_WriteRegisterReal64
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterreal64/
`bool ModBus_WriteRegisterReal64(int $InstanzID, float $Wert)`
setzt eine Adresse auf einen bestimmten Float-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): 64Bit Gleitkommawert nach IEEE754
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
64Bit Gleitkommawert nach IEEE754
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert 23,5
ModBus_WriteRegisterReal64(12345, 23.5);
```
## ModBus_WriteRegisterShort
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregistershort/
`bool ModBus_WriteRegisterShort(int $InstanzID, int $Wert)`
_Benötigt Symcon >= 4.4_
setzt eine Adresse auf einen bestimmten Short-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): -32768 bis 32767
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-32768 bis 32767
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert -123
ModBus_WriteRegisterShort(12345, -123);
```
## ModBus_WriteRegisterString
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterstring/
`bool ModBus_WriteRegisterString(int $InstanzID, string $Wert)`
setzt eine Adresse auf einen bestimmten String
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (string): String, welcher auf Register geschrieben werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
String, welcher auf Register geschrieben werden soll
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den String "Hallo Welt"
ModBus_WriteRegisterString(12345, "Hallo Welt");
```
## ModBus_WriteRegisterWord
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/modbus-writeregisterword/
`bool ModBus_WriteRegisterWord(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten Word-Wert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-65535
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-65535
**Beispiel**
```php
//Schreibt auf das Register der Instanz mit der ID 12345 den Wert 123
ModBus_WriteRegisterWord(12345, 123);
```
## Vorlagen (Dateiformat)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/modbus-rtu-tcp/vorlagen/
_Benötigt Symcon >= 7.0_
Die Instanz "ModBus Gerät" kann ihre komplette Konfiguration als Vorlage exportieren und wieder importieren. Eine Vorlage ist eine JSON-Datei, die alle Adressen, virtuellen Adressen, benötigten Variablenprofile, die Byte-Reihenfolge und die Abfrageeinstellungen enthält. So kann ein einmal eingerichtetes Gerät mit wenigen Klicks auf weiteren Systemen eingerichtet oder mit anderen Nutzern geteilt werden.
> **Hinweis:** Viele fertige Vorlagen sind in unserer Community zu finden: [Vorlagen anzeigen](https://community.symcon.de/c/symcon/vorlagen-modbus/86)
Auf dieser Seite wird das Dateiformat vollständig beschrieben, damit Vorlagen auch direkt aus dem Datenblatt eines Herstellers erstellt oder per Skript erzeugt werden können.
### Import und Export
| Aktion | Beschreibung |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Vorlage exportieren | Erzeugt eine JSON-Datei aus der aktuellen Konfiguration. Alle verwendeten Profile, die nicht mit "~" beginnen, werden mit exportiert. |
| Vorlage importieren | Ersetzt Adressen, virtuelle Adressen, Byte-Reihenfolge und Abfrageeinstellungen im Konfigurationsformular. Die Änderungen werden erst mit "Übernehmen" gespeichert. Fehlende Profile werden dabei angelegt, bestehende Profile werden nicht verändert. |
Vor dem Import wird die Datei geprüft. Enthält sie nicht die drei Schlüssel "Addresses", "VirtualAddresses" und "Profiles", wird der Import mit der Meldung "This is not a valid ModBus template!" abgebrochen. Existiert ein Profil bereits mit anderen Einstellungen, wird ein Hinweis angezeigt (z.B. "2 profiles do not match!"). Das vorhandene Profil wird in diesem Fall weiterverwendet.
> **Achtung:** Beim Import wird die bestehende Konfiguration der Instanz überschrieben. Variablen, deren Ident in der neuen Konfiguration nicht mehr vorkommt, werden beim Übernehmen gelöscht - inklusive ihrer Archivdaten.
### Aufbau
Eine Vorlage ist ein JSON-Objekt mit folgenden Schlüsseln:
| Schlüssel | Typ | Pflicht | Beschreibung |
| ---------------- | ------ | ------- | ----------------------------------------------------------------------------------------------------- |
| Addresses | Array | Ja | Liste der Modbus-Adressen, siehe Adressen |
| VirtualAddresses | Array | Ja | Liste der virtuellen Adressen, siehe Virtuelle Adressen, ggf. leer |
| Profiles | Objekt | Ja | Variablenprofile, die beim Import angelegt werden, siehe Profile, ggf. leer |
| ByteOrder | Zahl | Nein | Byte-Reihenfolge der Instanz, siehe Byte-Reihenfolge |
| Requests | Objekt | Nein | Abfrageeinstellungen, siehe Abfrage |
Die Reihenfolge der Schlüssel ist beliebig. Unbekannte Schlüssel werden ignoriert. Eine minimale, gültige Vorlage mit einer einzigen Adresse sieht so aus:
```php
{
"Addresses": [
{
"Active": true,
"Name": "Battery state of charge",
"Ident": "battery_soc",
"Translation": [
{ "Language": "de", "Name": "Batterieladezustand" }
],
"DataType": 2,
"ReadFunctionCode": 4,
"ReadAddress": 33139,
"WriteFunctionCode": 0,
"WriteAddress": 0,
"Factor": 0,
"Length": 0,
"ByteOrder": -1,
"Profile": "~Battery.100"
}
],
"VirtualAddresses": [],
"Profiles": {},
"ByteOrder": 0,
"Requests": {
"Type": 0,
"Interval": 5000,
"DataBlocks": []
}
}
```
### Adressen
Jeder Eintrag in "Addresses" beschreibt einen Wert des Geräts. Für jeden aktiven Eintrag wird eine Variable unterhalb der Instanz angelegt.
| Feld | Typ | Beschreibung |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Active | Bool | Legt fest, ob die Variable angelegt und der Wert gelesen wird. Inaktive Einträge bleiben in der Vorlage erhalten und können später vom Nutzer aktiviert werden. |
| Name | String | Name der Variable. Empfohlen wird ein englischer Name, der über "Translation" übersetzt wird. |
| Ident | String | Ident der Variable. Ist das Feld leer, wird der Ident automatisch gebildet, siehe Ident. |
| Translation | Array | Übersetzungen des Namens als Liste von Objekten mit "Language" (z.B. "de") und "Name". |
| DataType | Zahl | Datentyp des Registers, siehe Datentypen. |
| ReadFunctionCode | Zahl | Funktionscode zum Lesen: 0 (nicht lesen), 1, 2, 3 oder 4, siehe Funktionscodes. |
| ReadAddress | Zahl | Leseadresse (Startregister bzw. Coil), siehe Adressierung. |
| WriteFunctionCode | Zahl | Funktionscode zum Schreiben: 0 (nicht schreiben), 5, 6, 15 oder 16. Ist ein Funktionscode gesetzt, erhält die Variable eine Standardaktion. |
| WriteAddress | Zahl | Schreibadresse. Meist identisch mit der Leseadresse. |
| Factor | Zahl | Faktor, mit dem der gelesene Wert multipliziert wird. 0 bedeutet "kein Faktor", siehe Faktor. |
| Length | Zahl | Nur für Strings: Länge in Byte (2 Byte pro Register). Bei allen anderen Datentypen 0. |
| ByteOrder | Zahl | Byte-Reihenfolge dieser Adresse. -1 übernimmt die Einstellung der Instanz, siehe Byte-Reihenfolge. |
| Profile | String | Name des Variablenprofils oder leer. Der Typ des Profils muss zum Variablentyp passen, siehe Datentypen. |
> **Achtung:** Alle Felder sollten immer vollständig und mit dem richtigen JSON-Typ angegeben werden. Zahlen dürfen nicht als String ("3") und nicht als null angegeben werden, sonst schlägt das Übernehmen der Konfiguration fehl. Ausnahme ist "Active": fehlt es, gilt die Adresse als aktiv.
Ältere Exporte enthalten teilweise zusätzliche Felder wie "SwapBytes" oder "CustomFactor". Diese werden ignoriert und können entfallen. Der Wert eines eigenen Faktors steht immer im Feld "Factor".
### Datentypen in Vorlagen
In der Vorlage wird der Datentyp als Zahl gespeichert. Die Zahlen sind aus Kompatibilitätsgründen nicht fortlaufend nach Größe sortiert.
| DataType | Anzeige in der Konsole | Register | Variablentyp (ohne Faktor) |
| -------- | ---------------------- | -------- | -------------------------- |
| 0 | BOOL | 1 Bit | Boolean |
| 1 | UINT8 (MSB) | 1 | Integer |
| 12 | UINT8 (LSB) | 1 | Integer |
| 2 | UINT16 | 1 | Integer |
| 3 | UINT32 | 2 | Integer |
| 11 | UINT64 | 4 | Float |
| 4 | INT8 (MSB) | 1 | Integer |
| 13 | INT8 (LSB) | 1 | Integer |
| 5 | INT16 | 1 | Integer |
| 6 | INT32 | 2 | Integer |
| 8 | INT64 | 4 | Float |
| 7 | FLOAT32 | 2 | Float |
| 9 | FLOAT64 | 4 | Float |
| 10 | STRING (PLAIN) | Length/2 | String |
| 14 | STRING (HEX) | Length/2 | String |
- __MSB/LSB:__ UINT8/INT8 lesen ein ganzes Register und verwenden das höherwertige (MSB) bzw. das niederwertige Byte (LSB). So lassen sich zwei 8-Bit-Werte aus einem Register mit zwei Einträgen auf derselben Adresse auslesen.
- __64 Bit:__ INT64 und UINT64 werden als Float-Variable abgebildet, da Symcon auch 32-Bit-Systeme unterstützt.
- __STRING (PLAIN):__ Die Bytes werden als Text interpretiert. Leerzeichen und Null-Bytes am Anfang und Ende werden entfernt.
- __STRING (HEX):__ Die Bytes werden als Hex-Zeichenkette (Großbuchstaben) dargestellt, z.B. "0A1B". Das ist nützlich für Bitfelder, Versionsnummern oder MAC-Adressen.
- __Faktor:__ Sobald ein Faktor ungleich 0 gesetzt ist, wird die Variable immer als Float angelegt - auch bei ganzzahligen Datentypen und auch beim Faktor 1.
> **Achtung:** Der Typ eines Profils muss zum Variablentyp passen. Ein UINT16-Register ohne Faktor ergibt eine Integer-Variable und kann daher z.B. nicht das Float-Profil "~Watt" bekommen. Soll ein ganzzahliger Wert ein Float-Profil erhalten, kann der Faktor 1 gesetzt werden.
### Funktionscodes und Adressen
| Funktionscode | Richtung | Name | Erlaubte Datentypen |
| ------------- | --------- | ------------------------ | --------------------- |
| 1 | Lesen | Read Coils | BOOL |
| 2 | Lesen | Read Discrete Inputs | BOOL |
| 3 | Lesen | Read Holding Registers | alle außer BOOL |
| 4 | Lesen | Read Input Registers | alle außer BOOL |
| 5 | Schreiben | Write Single Coil | BOOL |
| 15 | Schreiben | Write Multiple Coils | BOOL |
| 6 | Schreiben | Write Single Register | nur 8/16-Bit-Typen |
| 16 | Schreiben | Write Multiple Registers | alle außer BOOL |
Ungültige Kombinationen werden beim Übernehmen mit einer Fehlermeldung abgelehnt, z.B. "Non-Bit values must use function Read Holding Registers/Read Input Registers" oder "Writing in only one register is not possible for multi register values like Int32/UInt32, Int64/UInt64, Float32/Float64, String".
__Adressierung:__ "ReadAddress" und "WriteAddress" sind die Adressen, die tatsächlich im Modbus-Telegramm übertragen werden, beginnend bei 0. Viele Datenblätter verwenden stattdessen die klassische Schreibweise mit Präfix (z.B. 40001 für das erste Holding Register). In diesem Fall muss der Präfix abgezogen werden, siehe [Funktionscodes](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md). Andere Hersteller geben die Adressen bereits direkt an (z.B. Solis mit 33000 für ein Input Register). Im Zweifel hilft ein Test mit einem bekannten Wert wie der Seriennummer oder der Netzfrequenz.
### Byte-Reihenfolge
Die Byte-Reihenfolge wird für die gesamte Instanz im Schlüssel "ByteOrder" auf oberster Ebene festgelegt. Einzelne Adressen können sie mit ihrem eigenen Feld "ByteOrder" überschreiben. Der Wert -1 übernimmt die Einstellung der Instanz. Die Beispiele zeigen, wie der 32-Bit-Wert 0x11223344 im Gerät übertragen wird:
| ByteOrder | Bezeichnung | Übertragene Bytes | Typische Beschreibung im Datenblatt |
| --------- | -------------------------- | ----------------- | ------------------------------------------------------ |
| -1 | Von Instanz übernehmen | - | nur auf Adressebene |
| 0 | Big-Endian (Standard) | 11 22 33 44 | "High Word first", "ABCD", Modbus-Standard |
| 1 | Little-Endian | 44 33 22 11 | "DCBA" |
| 2 | Big-Endian (Byte Swap) | 22 11 44 33 | "BADC" |
| 3 | Little-Endian (Byte Swap) | 33 44 11 22 | "Low Word first", "Word Swap", "CDAB" |
Bei 16-Bit-Werten wirken sich nur 1 und 2 aus (Bytes innerhalb des Registers vertauscht). Für BOOL-Werte ist die Byte-Reihenfolge ohne Bedeutung.
### Faktor
Der gelesene Rohwert wird mit "Factor" multipliziert, bevor er in die Variable geschrieben wird. Beim Schreiben wird der Wert vorher durch den Faktor geteilt. Der Faktor ist immer ein Multiplikator: Eine Division durch 10 wird als 0.1 angegeben.
| Datenblatt | Factor |
| --------------------- | ------- |
| Einheit 0.1 V | 0.1 |
| Einheit 0.01 Hz | 0.01 |
| Einheit 10 W | 10 |
| Wh, gewünscht in kWh | 0.001 |
| kein Faktor | 0 |
Für BOOL- und String-Adressen muss der Faktor 0 sein. Besitzt das Gerät einen eigenen Skalierungsfaktor in einem Register (z.B. SunSpec "Scale Factor"), kann dieser über eine virtuelle Adresse verrechnet werden.
### Ident
Der Ident identifiziert die Variable dauerhaft. Ist "Ident" leer, wird er aus Datentyp, Funktionscode und Leseadresse gebildet: A_[DataType]_[ReadFunctionCode]_[ReadAddress], z.B. "A_7_3_100". Für virtuelle Adressen wird der Name verwendet, wobei alle Zeichen außer Buchstaben, Ziffern und Unterstrich durch "_" ersetzt werden.
> **Achtung:** Ohne festen Ident ändert sich der Ident, sobald Datentyp, Funktionscode oder Adresse (bzw. bei virtuellen Adressen der Name) angepasst werden. Die alte Variable wird dann samt Archivdaten gelöscht und eine neue angelegt. Vorlagen sollten daher immer einen festen, sprechenden Ident wie "battery_soc" setzen. Jeder Ident darf nur einmal vorkommen - auch nicht zwischen Adressen und virtuellen Adressen.
Der Ident wird außerdem in den Skripten der virtuellen Adressen verwendet, um auf die Werte zuzugreifen.
### Virtuelle Adressen
Virtuelle Adressen berechnen eine Variable per PHP aus den Werten der übrigen Adressen oder verteilen einen geschriebenen Wert auf eine oder mehrere Adressen.
| Feld | Typ | Beschreibung |
| ------------ | ------ | ---------------------------------------------------------------------------------------------- |
| Active | Bool | Legt fest, ob die Variable angelegt und die Skripte ausgeführt werden. |
| Name | String | Name der Variable |
| Ident | String | Ident der Variable. Ist das Feld leer, wird der Ident aus dem Namen gebildet. |
| Translation | Array | Übersetzungen des Namens, wie bei den Adressen |
| VariableType | Zahl | 0 = Boolean, 1 = Integer, 2 = Float, 3 = String |
| Profile | String | Name des Variablenprofils oder leer. Der Profiltyp muss dem VariableType entsprechen. |
| ReadAction | String | PHP-Code zum Berechnen des Werts, leer für keine Berechnung |
| WriteAction | String | PHP-Code zum Schreiben. Ist er gesetzt, erhält die Variable eine Standardaktion. |
Die Skripte enthalten nur den Inhalt einer Funktion, also ohne ` ($current & ~0x0F) | ($VALUE & 0x0F)];
```
> **Hinweis:** Der Operator ?? 0 verhindert Fehler, solange eine Adresse noch nicht gelesen wurde oder inaktiv ist. Gibt ein Skript Fehler aus, sind diese im Debug der Instanz unter dem Ident der virtuellen Adresse zu sehen.
Werte werden nur geschrieben, wenn sie sich ändern oder die Variable älter als 60 Sekunden ist. Das gilt sowohl für gelesene Adressen als auch für virtuelle Adressen.
### Profile
"Profiles" ist ein Objekt mit dem Profilnamen als Schlüssel. Profile, deren Name mit "~" beginnt, sind Systemprofile. Sie werden nicht exportiert und müssen nicht in der Vorlage enthalten sein. Eigene Profile sollten einen eindeutigen Präfix erhalten (z.B. "Hersteller.Name"), damit sie nicht mit Profilen anderer Vorlagen kollidieren.
| Feld | Typ | Beschreibung |
| ------------ | ------ | ----------------------------------------------------------------------------- |
| Type | Zahl | 0 = Boolean, 1 = Integer, 2 = Float, 3 = String |
| Prefix | String | Präfix |
| Suffix | String | Suffix, inkl. führendem Leerzeichen, z.B. " W" |
| MinValue | Zahl | Minimalwert |
| MaxValue | Zahl | Maximalwert |
| StepSize | Zahl | Schrittweite. Bei schaltbaren Variablen bestimmt sie die Darstellung als Slider. |
| Digits | Zahl | Anzahl der Nachkommastellen |
| Icon | String | Name des Icons oder leer |
| Associations | Array | Assoziationen, jeweils mit "Value", "Name", "Icon" und "Color" (-1 = keine Farbe) |
Alle Felder müssen angegeben werden. Der JSON-Typ von "Value" in den Assoziationen sollte zum Profiltyp passen (true/false bei Boolean, ganze Zahl bei Integer).
```php
"Profiles": {
"Vendor.OperatingMode": {
"Type": 1,
"Prefix": "",
"Suffix": "",
"MinValue": 0.0,
"MaxValue": 0.0,
"StepSize": 0.0,
"Digits": 0,
"Icon": "Information",
"Associations": [
{ "Value": 0, "Name": "Standby", "Icon": "", "Color": -1 },
{ "Value": 1, "Name": "Running", "Icon": "", "Color": 65280 }
]
}
}
```
> **Hinweis:** Beim Import werden nur fehlende Profile angelegt. Ein bestehendes Profil mit gleichem Namen wird nicht verändert, auch wenn es abweicht.
### Abfrage
Der Schlüssel "Requests" enthält die Abfrageeinstellungen:
| Feld | Typ | Beschreibung |
| ---------- | ----- | ----------------------------------------------------------------------------------------------------- |
| Type | Zahl | 0 = Einzelne Adressen, 1 = Datenblöcke |
| Interval | Zahl | Abfrageintervall in Millisekunden für den Typ "Einzelne Adressen". 0 deaktiviert die Abfrage. |
| DataBlocks | Array | Datenblöcke für den Typ "Datenblöcke" |
__Einzelne Adressen:__ Im Intervall wird jede aktive Adresse mit gesetztem Lese-Funktionscode einzeln abgefragt. Das ist einfach, erzeugt bei vielen Adressen aber sehr viele Anfragen. Gerade bei Modbus RTU oder langsamen Datenloggern reicht die Zeit dann oft nicht aus.
__Datenblöcke:__ Jeder Datenblock liest einen zusammenhängenden Bereich mit einer einzigen Anfrage und hat ein eigenes Intervall. Anschließend werden alle Adressen aktualisiert, die vollständig im Block liegen und denselben Funktionscode verwenden. So können z.B. Messwerte alle 5 Sekunden und Zählerstände nur jede Minute gelesen werden.
| Feld | Typ | Beschreibung |
| -------- | ---- | ---------------------------------------------------- |
| Function | Zahl | Funktionscode 1, 2, 3 oder 4 |
| Address | Zahl | Startadresse |
| Quantity | Zahl | Anzahl der Register bzw. Coils (maximal 125 Register) |
| Poller | Zahl | Intervall in Millisekunden |
```php
"Requests": {
"Type": 1,
"Interval": 5000,
"DataBlocks": [
{ "Function": 4, "Address": 33049, "Quantity": 10, "Poller": 5000 },
{ "Function": 4, "Address": 33161, "Quantity": 20, "Poller": 60000 },
{ "Function": 3, "Address": 43110, "Quantity": 1, "Poller": 10000 }
]
}
```
> **Achtung:** Adressen, die in keinem Datenblock liegen, werden beim Typ "Datenblöcke" nicht aktualisiert. Ein Datenblock sollte nur Register umfassen, die das Gerät auch unterstützt - viele Geräte beantworten eine Anfrage mit einer Lücke im Registerbereich mit einem Fehler (ILLEGAL_DATA_ADDRESS) für den gesamten Block.
### Checkliste
- Alle drei Pflichtschlüssel "Addresses", "VirtualAddresses" und "Profiles" sind vorhanden, auch wenn sie leer sind.
- Jede Adresse enthält alle Felder mit dem korrekten JSON-Typ (keine Strings oder null statt Zahlen).
- Jede Adresse und virtuelle Adresse hat einen festen, eindeutigen Ident.
- Namen sind englisch und haben eine deutsche Übersetzung in "Translation".
- Adressen werden so angegeben, wie sie im Telegramm übertragen werden (ohne 30001/40001-Präfix).
- Funktionscode und Datentyp passen zusammen (BOOL nur mit 1, 2, 5, 15; Mehr-Register-Werte nicht mit 6).
- Der Profiltyp passt zum Variablentyp (Faktor ungleich 0 ergibt immer Float).
- Eigene Profile haben einen eindeutigen Präfix und sind vollständig in "Profiles" enthalten.
- Selten benötigte Werte sind mit "Active": false enthalten, statt sie wegzulassen.
- Bei vielen Adressen werden Datenblöcke verwendet und jede aktive Adresse liegt in einem Block.
- Die Vorlage wurde einmal importiert, übernommen und wieder exportiert. Der Export muss dieselben Adressen enthalten.
---
# Möhlenhoff Alpha 2
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/moehlenhoff-alpha-2/
_Benötigt Symcon >= 4.0_
Das Modul dient zum Empfangen und Schalten von Möhlenhoff Alpha2 Daten.
### Funktionsumfang
- Setzen von Variablen via Skriptbefehl oder Visualisierung.
- Auslesen der Daten der Möhlenhoff Alpha 2
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Möhlenhoff Alpha 2 installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Möhlenhoff Alpha 2'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------- | --------------------------------------------------------------------------------------------------------- |
| IP-Adresse | IP-Adresse der Alpha 2 |
| Intervall | Einstellbares Intervall in Sekunden in denen die Daten der Alpha 2 abgefragt werden sollen. (Standard: 0) |
| Heizzone 1..12 | Aktiviert das Auslesen der jeweiligen Heizzone. (Die Heizkreise werden immer alle ausgelesen) |
| "Gerät auslesen" | Liest die Daten manuell aus. Muss auch einmalig zu Beginn gemacht werden. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die Variablen werden automatisch angelegt.
| Name (Basis) | Typ | Beschreibung |
| -------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Basis Absenkdifferenztemperatur | Float | Dient als "Kategorie" in der sich alle überwachten Standorte, sowie der Zeitstempel und Längen-/Breitengrad befinden. Wird pro Gerät erstellt. |
| Basis Absenkeingang | Boolean | |
| Basis Automatische Zeitumstellung | Boolean | Ein/Aus der automatischen Zeitumstellung |
| Basis Betriebsart Heizen/Kühlen (CO-Eingang) | Boolean | Steuert die Betriebsart (Ein = Kühlen, Aus = Heizen) |
| Basis Frostschutz | Boolean | Ein/Aus des Frostschutzes |
| Basis Frostschutz Temperatur | Integer | Temperatur des Frostschutzes |
| Basis HW Version | String | Hardware Version der Basis |
| Basis ID | String | ID der Basis |
| Basis Kühlen-Modus | Boolean | Ein/Aus des Kühlenmodus |
| Basis Rang im Systemverbund | Integer | Rand der Basis (0 = Standalone, 1 = Master, 2 = Slave) |
| Basis Smartstart ein/aus | Boolean | Ein/Aus des Smartstart |
| Basis SW ETH Version | String | Software Version Ethernet |
| Basis SW STM Version | String | Software Version STM |
| Basis Taupunktsensor | Boolean | Ein/Aus des Taupunktsensors |
| Basis Temperaturbegrenzer | Boolean | Ein/Aus des Temperaturbegrenzers |
| Basis Temperatureinheit | Integer | Einstellung ob Fahrenheit oder Celsius (0 = °C, 1 = °F) |
| Basis Urlaub Status | Integer | Urlaubstatus (0 = aus, 1 = geplant, 2 = aktiv) |
| Basis Urlaub Temperatur Heizen | Float | Temperatur während des Urlaubs |
####
| Name (Heizzone 1..12) | Typ | Beschreibung |
| --------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Heizzone 01..12 Ist Temperatur | Float | Aktuelle Ist Temperatur |
| Heizzone 01..12 Soll Temperatur | Float | Soll Temperatur |
| Heizzone 01..12 Betriebsmodus | Integer | Betriebsmodus der Heizzone (0 = Auto, 1 = Tag, 2 = Nacht) |
| Heizzone 01..12 Ist Temperatur Ext. Sensor | Float | Aktuelle Ist Temperatur des externen Sensors |
| Heizzone 01..12 Anwesenheit | Boolean | Ein/Aus der Anwesenheit |
| Heizzone 01..12 Heizsystem | Integer | Das verwendete Heizsystem (0 = FBH-Standard, 1 = FHB-Niedrigenergie, 2 = Radiator, 3 = Konvektor passiv, 4 = Konvektor aktiv) |
| Heizzone 01..12 Korrektur Ist-Werterfassung | Float | Korrektur des Ist-Werts (-2.0 .. +2.0) |
| Heizzone 01..12 Name | String | Name der Heizzone |
| Heizzone 01..12 Partyschaltung (Stunden) | Integer | Wieviele Stunden die Partyschaltung laufen soll |
| Heizzone 01..12 Partyschaltung Restzeit (min) | Integer | Wielange die Partyschaltung noch aktiv ist |
| Heizzone 01..12 Programm Wochenende | Integer | Welches Zeitprogramm am Wochenende aktiv ist |
| Heizzone 01..12 Programm wochentags | Integer | Welches Zeitprogramm unter der Woche aktiv ist |
| Heizzone 01..12 Soll Temperatur Max | Float | Einstellbereich Soll-Temperatur (maximal) |
| Heizzone 01..12 Soll Temperatur Min | Float | Einstellbereich Soll-Temperatur (minimal) |
| Heizzone 01..12 Status | Boolean | Statusanzeige (0 = OK, 1 = Error) |
####
| Name (Heizkreis 1..12) | Typ | Beschreibung |
| ------------------------------------ | ------- | ------------------------------------------------------------------------- |
| Heizkreis 1..12 Aktiv | Boolean | Ob der Heizkreis aktiv ist (0 = Nein, 1 = Ja) |
| Heizkreis 1..12 Aktor | Boolean | Ein/Aus des Stellantriebs |
| Heizkreis 1..12 Aktor Prozent | Integer | Prozentuale Aktivität des Aktors (Nur bei SW STM Version 2.02 oder höher) |
| Heizkreis 1..12 Status | Integer | Status (0 = Aus, 1 = An, 2 = Fehler) |
| Heizkreis 1..12 zugewiesene Heizzone | Integer | Welche Heizzone mit dem Heizkreis verbunden ist |
#### Profile:
| Name | Typ |
| ----------------------------- | ------- |
| MH.AntifreezeTemp | Integer |
| MH.TemperatureUnit | Integer |
| MH.SummerWinter | Boolean |
| MH.ChangeOver | Boolean |
| MH.Mode | Integer |
| MH.EcoDiff | Float |
| MH.VacationState | Integer |
| MH.PumpTime | Integer |
| MH.RelaisTime | Integer |
| MH.EmergencyTime | Integer |
| MH.PWMCycle | Integer |
| MH.PWMPercent | Integer |
| MH.HeatAreaMode | Integer |
| MH.HeatAreaProgram | Integer |
| MH.HeatAreaParty | Integer |
| MH.HeatAreaPartyRemainingTime | Integer |
| MH.HeatAreaState | Boolean |
| MH.HeatAreaRPMMotor | Integer |
| MH.HeatingSystem | Integer |
| MH.HeatAreaTActualTemp | Float |
| MH.HeatAreaTTarget | Float |
| MH.HeatAreaTHeatCool | Float |
| MH.HeatAreaOffset | Float |
| MH.HeatAreaBlockHC | Integer |
| MH.HeatAreaHeatCTRLState | Integer |
| MH.HeatAreaNr | Integer |
| MH.HeatCtrlActorPercent | Integer |
### Visualisierung
Über die Visualisierung oder in den mobilen Apps werden Werte angezeigt und können wenn möglich geändert werden.
Wir empfehlen aufgrund der Menge der Variablen die Anzeige der gesamten Alpha 2 in der Verwaltungskonsole zu deaktivieren und alle gewünschten Variablen via Links in einer eigenen Kategorie anzeigen zu lassen.
## MA2_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/moehlenhoff-alpha-2/ma2-requeststatus/
`bool MA2_RequestStatus(int $InstanzID)`
_Benötigt Symcon >= 4.0_
Ruft die in der Alpha2 mit der InstanzID gespeicherten Werte auf und setzt die dazugehörigen Variablen.
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
MA2_RequestStatus(12345);
```
## MA2_WriteValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/moehlenhoff-alpha-2/ma2-writevalue/
`bool MA2_WriteValue(int $InstanzID, string $Ident, mixed $Wert)`
_Benötigt Symcon >= 4.0_
Schreibt den Wert in die Variable mit dem Ident in der Möhlenhoff Alpha 2 mit der InstanzID.
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Ident` (string): Ident der Variable
- `$Wert` (mixed): Wert der Variable
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert der Variable
**Beispiel**
```text
MA2_WriteValue(12345 , "HEATAREA1_T_TARGET", 23.3);
```
---
# MQTT
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mqtt/
MQTT ist ein offenes Nachrichtenprotokoll für Machine-to-Machine-Kommunikation (M2M).
IP-Symcon agiert in diesem Zusammenhang sowohl als Server (Broker) als auch Client.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/mqtt.md)
### Einbindung in IP-Symcon
Zur Verwendung von MQTT stehen IP-Symcon sowohl Clients als auch Server (Broker) zur Verfügung.
[Einrichtung von MQTT-Server](https://www.symcon.de/de/llms/modules/mqtt.md)
[Einrichtung von MQTT-Client](https://www.symcon.de/de/llms/modules/mqtt.md)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mqtt/geraeteliste/
### Unterstützte Gateways/Komponenten
IP-Symcon unterstützt alle MQTT Client Geräte.
### Unterstützte Funktionen
#### Ab IP-Symcon 5.1
* MQTT 3.1/3.1.1 kompatibel
* Clients können sich verbinden/trennen
* Clients können Nachrichten auf Topics schicken (QoS 0-2)
* Clients können Topics (inkl. Filter +/#) abonnieren (Diese werden immer mit QoS 0 gesendet)
* Clients können sich mit Benutzername/Kennwort authentifizieren
#### Ab IP-Symcon 5.3
* Retain (ab 5.5 auch Persistent)
* Session Management (Siehe Timeout und Queue Limit Einstellungen im Server)
* Last Will/Testament
* Publish eines Clients wird nur in IP-Symcon ausgewertet und nicht an die anderen Clients weitergeleitet
#### Ab IP-Symcon 5.5
* Persistentes Retain
* MQTT Client
* TLS (Server Socket)
* Keep Alive (+ Last Will bei Timeout versenden)
#### Noch fehlende Funktionen
Folgende Funktionen fehlen und sind geplant
* QoS 1-2 beim Senden
## MQTT Client
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mqtt/mqtt-client/
MQTT Clients haben einen MQTT Server abonniert und können Werte von diesem Empfangen und darstellen.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/dVMgHm5LeX0?rel=0&cc_load_policy=1)
### Einbindung in IP-Symcon
Um eine einfache und komfortable Einbindung zu ermöglichen, wird empfohlen den [Konfigurator](https://www.symcon.de/de/llms/concepts.md) für MQTT Client zu nutzen. Dieser kann im Objektbaum über "+"->"Instanz" via Schnellfilter "MQTT Konfigurator" hinzugefügt werden.
In der Instanzkonfiguration des dazughörigen MQTT Client (Gateway) können die gewünschten Subskriptions angelegt werden. Eine "#" ist der Standard und es werden alle Daten des MQTT Servers abonniert.
In der Instanzkonfiguration des dazugehörigen Client Sockets kann die Hostadresse und der Port definiert sowie die Verbindung aktiv gesetzt werden. Der Port muss identisch mit dem Port des MQTT-Servers sein.
Nach der Einrichtung des MQTT-Client Konfigurators ist der nächste Schritt das Hinzufügen und Erstellen von Geräteinstanzen.
#### Hinzufügen von Geräten
Der Client empfängt die Werte der abonnierten Themen des MQTT Servers. Der Konfigurator kann diese Daten lesen und zeigt alle Themen, welche sich gemeldet haben an.
Über "Aktualisieren" wird die Anzeige aller empfangenen Themen und deren zuletzt empfangenen Nutzdaten aktualisiert.
Über "Erstellen" kann die ausgewählte Instanz erstellt werden.
Der MQTT Client hat eine voreingerichtete ClientID. Der Benutzername und das Passwort müssen mit denen des Servers übereinstimmen.

> **Hinweis:** Wenn als Subkription die "#" eingetragen wird, werden alle Themen eines MQTT Servers Empfangen.
Es können dann über den Konfigurator oder manuell erstellten Devices Nachrichten an den MQTT Server gesendet werden. Dieser leitet diese dann alle anderen Clients weiter.

### Beispiel
Skriptbeispiel für das Publishen eines Wertes auf ein Thema.
Das Thema ist durch die MQTT Device Instanz definiert.
```php
//Publishen von "EinTollerWertZumPublishen" auf die Variable mit der ID 12345
RequestAction(12345, "EinTollerWertZumPublishen");
```
## MQTT-Server
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/mqtt/mqtt-server/
Der MQTT-Server in IP-Symcon agiert als sogenannter MQTT-Broker. Clients können sich bei diesem anmelden und bekommen ihre Daten über diesen.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/5msmo1JSxSo?rel=0&cc_load_policy=1)
### Einbindung in IP-Symcon
Um eine einfache und komfortable Einbindung zu ermöglichen, wird empfohlen den [Konfigurator](https://www.symcon.de/de/llms/concepts.md) für MQTT-Server zu nutzen. Dieser kann im Objektbaum über "+"->"Instanz" via Schnellfilter "MQTT Server" hinzugefügt werden.
IP-Symcon agiert als MQTT-Server (Broker) und benötigt dafür eine geöffnete Server Socket Schnittstelle. In der Instanzkonfiguration des dazughörigen Server Sockets kann der Port definiert und die Verbindung aktiv gesetzt werden.
Des Weiteren kann in der Instanzkonfiguration des MQTT-Servers ein Benutzername und festgelegt werden. Die MQTT Clients müssen dann auf den eingerichteten Port senden.
Nach der Einrichtung des MQTT Konfigurators ist der nächste Schritt das Hinzufügen und Erstellen von Geräteinstanzen.
#### Hinzufügen von Geräten
Der Server (Broker) empfängt die Werte und Eigenschaften der MQTT Geräte. Der Konfigurator kann diese Daten lesen und zeigt alle Geräte, welche sich gemeldet haben an.
Sollte ein Gerät nicht angezeigt werden, muss sichergestellt werden, dass dieses Gerät eine Nachricht an den Server geschickt hat.
Über "Aktualisieren" wird die Anzeige aller empfangenen Themen und deren zuletzt empfangenen Nutzdaten aktualisiert.
Über "Erstellen" kann die ausgewählte Instanz erstellt werden.

Der Konfigurator erstellt den Pfad des Themas mit den passenden Kategorien und die Nutzdatenvariable vom Datentyp "String". Sofern ein anderer Datentyp gewünscht wird, kann dieser in der Instanz umgestellt werden.


> **Hinweis:** Geräte, welche selbst nur Empfangen ("Subscriben") und nicht senden ("Publishen") können, können nicht über den Konfigurator erstellt werden, da dieser niemals etwas von den Geräten empfängt. Für diese Geräte muss ein MQTT-Device erstellt, ein Thema eingetragen und Datentyp festgelegt werden. (Siehe auch: [Instanz erstellen](https://www.symcon.de/de/llms/how-to.md))
### Beispiel
Skriptbeispiel für das Publishen eines Wertes auf ein Thema.
Das Thema ist durch die MQTT Device Instanz definiert.
```php
//Publishen von "EinTollerWertZumPublishen" auf die Variable mit der ID 12345
RequestAction(12345, "EinTollerWertZumPublishen");
```
---
# NEA Smart
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/nea-smart/
_Benötigt Symcon >= 4.0_
> **Achtung:** Dieses Modul ist nur kompatibel mit der NEA Smart 1.0
> und nicht kompatibel mit der NEA Smart 2.0 oder neuer
Das Modul dient zum Empfangen und Schalten von NEA Smart Daten.
### Funktionsumfang
- Setzen von Variablen via Skriptbefehl oder Visualisierung.
- Auslesen der Daten der NEA Smart
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul REHAU Nea Smart installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'NEA Smart'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------- | ----------------------------------------------------------------------------------------------------------- |
| IP-Adresse | IP-Adresse der NEA Smart |
| Intervall | Einstellbares Intervall in Sekunden in denen die Daten der NEA Smart abgefragt werden sollen. (Standard: 0) |
| Heizzone 1..12 | Aktiviert das Auslesen der jeweiligen Heizzone. (Die Heizkreise werden immer alle ausgelesen) |
| "Gerät auslesen" | Liest die Daten manuell aus. Muss auch einmalig zu Beginn gemacht werden. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die Variablen werden automatisch angelegt.
| Name (Basis) | Typ | Beschreibung |
| -------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Basis Absenkdifferenztemperatur | Float | Dient als "Kategorie" in der sich alle überwachten Standorte, sowie der Zeitstempel und Längen-/Breitengrad befinden. Wird pro Gerät erstellt. |
| Basis Absenkeingang | Boolean | |
| Basis Automatische Zeitumstellung | Boolean | Ein/Aus der automatischen Zeitumstellung |
| Basis Betriebsart Heizen/Kühlen (CO-Eingang) | Boolean | Steuert die Betriebsart (Ein = Kühlen, Aus = Heizen) |
| Basis Frostschutz | Boolean | Ein/Aus des Frostschutzes |
| Basis Frostschutz Temperatur | Integer | Temperatur des Frostschutzes |
| Basis HW Version | String | Hardware Version der Basis |
| Basis ID | String | ID der Basis |
| Basis Kühlen-Modus | Boolean | Ein/Aus des Kühlenmodus |
| Basis Rang im Systemverbund | Integer | Rand der Basis (0 = Standalone, 1 = Master, 2 = Slave) |
| Basis Smartstart ein/aus | Boolean | Ein/Aus des Smartstart |
| Basis SW ETH Version | String | Software Version Ethernet |
| Basis SW STM Version | String | Software Version STM |
| Basis Taupunktsensor | Boolean | Ein/Aus des Taupunktsensors |
| Basis Temperaturbegrenzer | Boolean | Ein/Aus des Temperaturbegrenzers |
| Basis Temperatureinheit | Integer | Einstellung ob Fahrenheit oder Celsius (0 = °C, 1 = °F) |
| Basis Urlaub Status | Integer | Urlaubstatus (0 = aus, 1 = geplant, 2 = aktiv) |
| Basis Urlaub Temperatur Heizen | Float | Temperatur während des Urlaubs |
###
| Name (Heizzone 1..12) | Typ | Beschreibung |
| --------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Heizzone 01..12 Ist Temperatur | Float | Aktuelle Ist Temperatur |
| Heizzone 01..12 Soll Temperatur | Float | Soll Temperatur |
| Heizzone 01..12 Betriebsmodus | Integer | Betriebsmodus der Heizzone (0 = Auto, 1 = Tag, 2 = Nacht) |
| Heizzone 01..12 Ist Temperatur Ext. Sensor | Float | Aktuelle Ist Temperatur des externen Sensors |
| Heizzone 01..12 Anwesenheit | Boolean | Ein/Aus der Anwesenheit |
| Heizzone 01..12 Heizsystem | Integer | Das verwendete Heizsystem (0 = FBH-Standard, 1 = FHB-Niedrigenergie, 2 = Radiator, 3 = Konvektor passiv, 4 = Konvektor aktiv) |
| Heizzone 01..12 Korrektur Ist-Werterfassung | Float | Korrektur des Ist-Werts (-2.0 .. +2.0) |
| Heizzone 01..12 Name | String | Name der Heizzone |
| Heizzone 01..12 Partyschaltung (Stunden) | Integer | Wieviele Stunden die Partyschaltung laufen soll |
| Heizzone 01..12 Partyschaltung Restzeit (min) | Integer | Wielange die Partyschaltung noch aktiv ist |
| Heizzone 01..12 Programm Wochenende | Integer | Welches Zeitprogramm am Wochenende aktiv ist |
| Heizzone 01..12 Programm wochentags | Integer | Welches Zeitprogramm unter der Woche aktiv ist |
| Heizzone 01..12 Soll Temperatur Max | Float | Einstellbereich Soll-Temperatur (maximal) |
| Heizzone 01..12 Soll Temperatur Min | Float | Einstellbereich Soll-Temperatur (minimal) |
| Heizzone 01..12 Status | Boolean | Statusanzeige (0 = OK, 1 = Error) |
###
| Name (Heizkreis 1..12) | Typ | Beschreibung |
| ------------------------------------ | ------- | ------------------------------------------------------------------------- |
| Heizkreis 1..12 Aktiv | Boolean | Ob der Heizkreis aktiv ist (0 = Nein, 1 = Ja) |
| Heizkreis 1..12 Aktor | Boolean | Ein/Aus des Stellantriebs |
| Heizkreis 1..12 Aktor Prozent | Integer | Prozentuale Aktivität des Aktors (Nur bei SW STM Version 2.02 oder höher) |
| Heizkreis 1..12 Status | Integer | Status (0 = Aus, 1 = An, 2 = Fehler) |
| Heizkreis 1..12 zugewiesene Heizzone | Integer | Welche Heizzone mit dem Heizkreis verbunden ist |
#### Profile:
| Name | Typ |
| ------------------------------- | ------- |
| NEAS.AntifreezeTemp | Integer |
| NEAS.TemperatureUnit | Integer |
| NEAS.SummerWinter | Boolean |
| NEAS.ChangeOver | Boolean |
| NEAS.Mode | Integer |
| NEAS.EcoDiff | Float |
| NEAS.VacationState | Integer |
| NEAS.PumpTime | Integer |
| NEAS.RelaisTime | Integer |
| NEAS.EmergencyTime | Integer |
| NEAS.PWMCycle | Integer |
| NEAS.PWMPercent | Integer |
| NEAS.HeatAreaMode | Integer |
| NEAS.HeatAreaProgram | Integer |
| NEAS.HeatAreaParty | Integer |
| NEAS.HeatAreaPartyRemainingTime | Integer |
| NEAS.HeatAreaState | Boolean |
| NEAS.HeatAreaRPMMotor | Integer |
| NEAS.HeatingSystem | Integer |
| NEAS.HeatAreaTActualTemp | Float |
| NEAS.HeatAreaTTarget | Float |
| NEAS.HeatAreaTHeatCool | Float |
| NEAS.HeatAreaOffset | Float |
| NEAS.HeatAreaBlockHC | Integer |
| NEAS.HeatAreaHeatCTRLState | Integer |
| NEAS.HeatAreaNr | Integer |
| NEAS.HeatCtrlActorPercent | Integer |
### Visualisierung
Über die Visualisierung oder in den mobilen Apps werden Werte angezeigt und können wenn möglich geändert werden.
Wir empfehlen aufgrund der Menge der Variablen die Anzeige der gesamten NEA Smart in der Verwaltungskonsole zu deaktivieren und alle gewünschten Variablen via Links in einer eigenen Kategorie anzeigen zu lassen.
## NEAS_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/nea-smart/neas-requeststatus/
`bool NEAS_RequestStatus(int $InstanzID)`
_Benötigt Symcon >= 4.0_
Ruft die in der NEA Smart mit der InstanzID gespeicherten Werte auf und setzt die dazugehörigen Variablen.
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
NEAS_RequestStatus(12345);
```
## NEAS_WriteValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/nea-smart/neas-writevalue/
`bool NEAS_WriteValue(int $InstanzID, string $Ident, mixed $Wert)`
_Benötigt Symcon >= 4.0_
Schreibt den Wert in die Variable mit dem Ident in der NEA Smart mit der InstanzID.
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Ident` (string): Ident der Variable
- `$Wert` (mixed): Wert der Variable
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert der Variable
**Beispiel**
```text
NEAS_WriteValue(12345 , "HEATAREA1_T_TARGET", 23.3);
```
---
# OCPP
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ocpp/
Über das OCPP Protokoll können Wallboxen bequem über Symcon überwacht und geschaltet werden.
### Funktionsumfang
* Anzeige des Verbrauchs einzelner Ladepunkte
* Anzeige, ob gerade eine Transaktion läuft bei Ladepunkten
* Ladevorgang per Id Tag, typischerweise RFID Karte, freischalten
### Softwareinstallation
- Über den Module Store das 'OCPP'-Modul installieren.
- Unter 'Instanz hinzufügen' kann das 'OCPP Configurator'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
- Auf der Konfigurationsseite des Splitters können die Informationen zum Einrichten eines Ladepunktes entnommen werden.
Je nach Wallbox müssen die Parameter einzeln oder als komplette URL angegeben werden.
- Ist die Verbindung hergestellt werden die Ladepunkte im Konfigurator angezeigt und können erstellt werden.
#### Konfigurationsseite (Ladepunkt)
| Name | Beschreibung |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ladestationsidentifikator | Identifikator der Ladestation |
| Transaktion starten... | Definiert, wann der Ladevorgang automatisch gestartet werden soll: "... automatisch bei Verbindung": Der Ladevorgang wird direkt beim Anschließen eines Fahrzeuges gestartet. "... wenn ein Id Tag validiert wird - Alle Id Tags erlauben": Der Ladevorgang wird gestartet, wenn ein beliebiger Id Tag gescannt wird. Der Tag selbst wird nicht weiter validiert. "... wenn ein Id Tag validiert wird - Nur zentrale Id Tag Liste erlauben": Der Ladevorgang wird gestartet, wenn ein Id Tag der zentralen Id Tag Liste gescannt wird. Diese Liste kann im Splitter konfiguriert werden. "... wenn ein Id Tag validiert wird - Nur lokale Id Tag Liste erlauben": Der Ladevorgang wird gestartet, wenn ein Id Tag der lokalen Id Tag Liste gescannt wird. Diese Liste kann direkt unterhalb dieser Auswahl konfiguriert werden. "... wenn ein Id Tag validiert wird - Beide Id Tag Listen erlauben": Der Ladevorgang wird gestartet, wenn ein Id Tag der lokalen oder zentralen Id Tag Liste gescannt wird. Die lokale Liste kann direkt unterhalb dieser Auswahl und die zentrale Liste im Splitter konfiguriert werden. |
| Lokale Liste der gültigen Id Tags (z.B. RFID Karten) | Die lokale Liste für Id Tags bei welchen der Ladevorgang gestartet werden soll. Neben dem Id Tag können Vorname, Nachname, E-Mail und allgemeine Informationen zum Id Tag angegeben werden. Diese helfen dabei, den Tag zuzuweisen. (Wird nur angzeigt, falls "Transaktion starten..." auf "... wenn ein Id Tag validiert wird - Nur lokale Id Tag Liste erlauben" oder "... wenn ein Id Tag validiert wird - Beide Id Tag Listen erlauben" steht.) |
#### Konfigurationsseite (Splitter)
| Name | Beschreibung |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Zentrale Liste der gültigen Id Tags (z.B. RFID Karten) | Die zentrale Liste für Id Tags welche zum automatischen Start des Ladevorgangs verwendet werden können. Neben dem Id Tag können Vorname, Nachname, E-Mail und allgemeine Informationen zum Id Tag angegeben werden. Diese helfen dabei, den Tag zuzuweisen. |
__Hinweise__
* Die genauen Id Tags einer RFID Karte können ermittelt werden, indem diese einmal bei der Ladestation gescannt wird. Danach kann der Id Tag der Statusvariablen "Letzter Id Tag" entnommen werden.
* Bei der Pulsar Plus müssen alle Zeitpläne vor der Aktivierung von OCPP entfernt werden. Die Ansteuerung über OCPP kann die konfigurierten Zeitpläne nicht überschreiben, da diese immer Vorrang haben.
### Statusvariablen: Ladepunkt
#### Allgemeine Statusvariablen
Diese Statusvariablen gibt es einmal, unabhängig von den Anschlüssen des Ladepunkts.
| Name | Typ | Beschreibung |
| --------------------- | ------- | --------------------------------------------- |
| Hersteller | string | Name des Herstellers |
| Model | string | Modell des Ladepunktes |
| Seriennummer | string | Seriennummer des Ladepunktes |
| Letzter Id Tag | string | Letzter gelesener Id Tag |
#### Statusvariablen pro Anschluss
Ein Ladepunkt kann mehrere Anschlüsse verwalten. In diesem Fall erstellt ggfs. jeder Anschluss seine eigenen Statusvariablen. Diese werden zur Laufzeit basierend auf der Interaktion mit dem Anschluss erstellt. Es müssen also nicht alle Variablen existieren.
| Name | Typ | Beschreibung |
| ----------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------- |
| Zählerstand | float | Der Zählerstand des Anschlusses |
| Verfügbar | boolean | Die Verfügbarkeit des Anschlusses - Wurde der Anschluss auf nicht verfügbar gestellt, kann dort nicht geladen werden |
| Status | string | Aktueller Status des Anschlusses |
| Fehlercode | string | Aktueller Fehlercode, "" falls es aktuell keinen Fehler gibt |
| Transaktion | boolean | Bei true ist eine Transaktion aktiv, das angeschlossene Fahrzeug wird also geladen. |
| Transaktion Id | integer | ID der aktuellen bzw. letzten Transaktion |
| Transaktion Zählerstand Start | integer | Zählerstand in Wh beim Start der aktuellen bzw. letzten Transaktion |
| Transaktion Zählerstand Ende | integer | Zählerstand in Wh beim Ende der aktuellen bzw. letzten Transaktion |
| Transaktion Id Tag | string | Id Tag der aktuellen bzw. letzten Transaktion |
| Transaktion Verbrauch | integer | Energieverbrauch in Wh der aktuellen bzw. letzten Transaktion |
## OCPP_RemoteStartTransaction
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ocpp/ocpp-remotestarttransaction/
`bool OCPP_RemoteStartTransaction(int $InstanzID, int $ConnectorID)`
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$ConnectorID` (int): ID des Connectors
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Connectors
**Beispiel**
```text
OCPP_RemoteStartTransaction(12345, 1);
```
## OCPP_RemoteStopCurrentTransaction
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ocpp/ocpp-remotestopcurrenttransaction/
`bool OCPP_RemoteStopCurrentTransaction(int $InstanzID, int $ConnectorID)`
Wenn der Zustand auf 'Charging' steht, kann durch diesen Befehl das Laden beendet werden.
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$ConnectorID` (int): ID des Connectors
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Connectors
**Beispiel**
```php
OCPP_RemoteStopCurrentTransaction(12345, 1);
```
## OCPP_RemoteStopTransaction
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/ocpp/ocpp-remotestoptransaction/
`bool OCPP_RemoteStopTransaction(int $InstanzID, int $TransactionID)`
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$TransactionID` (int): ID der Transaction
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Transaction
**Beispiel**
```php
OCPP_RemoteStopTransaction(12345, 4479);
```
---
# OPC UA
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/opc-ua/
_Benötigt Symcon >= 6.4_
> **Hinweis:** Das OPC UA Modul ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden IP-Symcon Lizenz im [Shop](https://www.symcon.de/de/shop/enterprise/bundle-ips-enterprise-opcua) erworben werden kann. Bei jeder Symcon Lizenz können bis zu 3 OPC UA Knoten kostenlos erstellt werden.
Die OPC UA (Client) Anbindung erlaubt das komfortable Einrichten von OPC UA Geräten innerhalb von IP-Symcon. Dabei kann über einen OPC UA Konfigurator der OPC UA Address Space eines Geräts ermittelt und traversiert werden. Es können beliebige OPC UA Adressen (Knoten) erstellt werden. Die Knoten zeigen dabei den aktuellen Wert an, welcher über auch automatisch überwacht und aktualisiert wird, sofern das Gerät dies unterstützt. Alternativ kann der Wert auch zyklisch abgefragt werden. Der Wert kann zusätzlich per Visualisierung, Skript und Ablaufplan verändert werden.
### Video-Tutorial zur Einrichtung
- Folgt
#### Unterstütztes Protokoll
* OPC UA (Binary Encoding)
#### Unterstützter Transport
* TCP/IP
#### Unterstützte Security Modes
* None
* Sign
* SignAndEncrypt
#### Unterstützte Authentifizierungsmethoden
* Anonymous
* Username/Password
#### Unterstützte SecurityPolicies
* None
* Basic256
* Basic256Sha256
#### Unterstützte Datentypen
* Boolean, SByte, Byte, Int16, UInt16, Int32, UIn32, Int64, UIn64, Float, Double, String, DateTime, GUID, ByteString, XMLElement, NodeId, StatusCode, QualifiedName, LocalizedText, Variant
* Array von den jeweiligen Typen (werden als eigene Variablen dargestellt)
---
# SageGlass (BACnet)
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sageglass-bacnet/
_Benötigt Symcon >= 6.0_
Dieses Modul erlaubt die Einbindung SageGlass SIM II Controller über BACnet/IP.
### Funktionsumfang
- Integriert die Ansteuerung von SageGlass Zonen und zeigt den aktuellen Zustand inkl. der übermittelten Lux-Werte an.
### Voraussetzungen
- IP-Symcon Enterprise ab Version 6.0 mit BACnet Erweiterung
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'SageGlass'-Modul installieren.
### Einrichten in IP-Symcon
- Es wird empfohlen alle BACnet Objekte auf dem SageGlass SIM II Controller automatisch erstellen zu lassen, wodurch die einzelnen Datenpunkte in IP-Symcon verfügbar gemacht werden. Im zweiten Schritt kann nachfolgendes Skript verwendet werden, um die SageGlass Instanzen für die Zonen zu erstellen, welche die Informationen schöner aufbereiten. Es ist auch möglich die Verknüpfungen manuell durchzuführen, indem alle Eigenschaften auf die korrekten BACnet Objekte verknüpft werden. Die Namen der Eigenschaften entsprechen dabei den Beschreibungen der BACnet Objekte und sollten auf die "Preset Value" Variable verknüpft werden.
```php
zone information
// e.g. Sensor 1 (Vertical) is used for Zone 10, Zone 20 and Zone 25
$sensorVertical = [
1 => [10, 20, 25]
];
$sensorHorizontal = [];
$zones = 250;
for ($i = 1; $i <= $zones; $i++) {
$variableTintID = searchBACnet(2 /* Analoge Value */, $i + 1 /* Zone 1 = 2 */);
$automodeStateID = searchBACnet(2 /* Analoge Value */, $i + 2001 /* Zone 1 = 2002 */);
$luxLevelSetPointID = searchBACnet(2 /* Analoge Value */, $i + 4001 /* Zone 1 = 4002 */);
$statusID = searchBACnet(0 /* Analoge Input */, $i + 4000 /* Zone 1 = 4001 */);
// Search for the our sensor the vertical sensor matrix
$verticalSensorID = searchSensorID($i, $sensorVertical);
if ($verticalSensorID) {
$verticalSensorID = searchBACnet(0 /* Analoge Input */, $verticalSensorID + 2000 /* Sensor 1 = 2001 */);
}
// Search for the our sensor the vertical sensor matrix
$horizontalSensorID = searchSensorID($i, $sensorHorizontal);
if ($horizontalSensorID) {
$horizontalSensorID = searchBACnet(0 /* Analoge Input */, $horizontalSensorID + 2000 /* Sensor 1 = 2001 */);
}
if (!@IPS_GetObjectIDByIdent("SageGlassZone" . $i)) {
if ($variableTintID && $automodeStateID && $luxLevelSetPointID && $verticalSensorID && $horizontalSensorID && $statusID) {
echo "Creating Zone " . $i . "..." . PHP_EOL;
$id = IPS_CreateInstance("{67CEA419-A625-703E-2BE6-BF51B3C913B9}");
IPS_SetName($id, "Zone " . $i);
IPS_SetIdent($id, "SageGlassZone" . $i);
IPS_SetProperty($id, "VariableTint", $variableTintID);
IPS_SetProperty($id, "AutomodeState", $automodeStateID);
IPS_SetProperty($id, "LuxLevelSetPoint", $luxLevelSetPointID);
IPS_SetProperty($id, "Status", $statusID);
IPS_SetProperty($id, "SensorVertical", $verticalSensorID);
IPS_SetProperty($id, "SensorHorizontal", $horizontalSensorID);
IPS_ApplyChanges($id);
}
}
}
function searchSensorID($zone, $sensorMatrix) {
foreach($sensorMatrix as $sensor => $matrix) {
foreach($matrix as $sensorZone) {
if ($zone == $sensorZone) {
return $sensor;
}
}
}
return 0;
}
function searchBACnet($objectType, $instanceNumber) {
$ids = IPS_GetInstanceListByModuleID("{CD5D5D10-3743-DA88-F16C-8B65CF4103F9}");
foreach ($ids as $id) {
if ((IPS_GetProperty($id, "ObjectType") == $objectType) && (IPS_GetProperty($id, "InstanceNumber") == $instanceNumber)) {
return IPS_GetObjectIDByIdent("PresentValue", $id);
}
}
return 0;
}
```
---
# Shutter Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/shutter-control/
_Benötigt Symcon >= 5.0_
Das "Shutter Control" bietet die Möglichkeit einen Rollladen/Markise auf eine bestimmte prozentuale Position zu fahren.
Desweiteren wird die Position aktualisiert, wenn der Shutter via Befehl oder Manuell angesteuert wird.
Im Gegensatz zum Shutter Control (legacy) kann auch während der Fahrt die Position angepasst werden.
### Voraussetzungen
Das IP-Symcon Shutter-Modul benötigt eine Variable oder eine Instanz mit einer Statusvariable, welche das Profil ~ShutterMoveStop oder ~ShutterMoveStep nutzt.
Auch müssen die Fahrzeiten und Anfahrverzögerung in das Modul eingetragen werden. Dies funktioniert am einfachsten mit einer Stoppuhr.
> **Hinweis:** Standardmäßig unterstützen dS Shutter, EnOcean Shutter, KNX Shutter, LCN Shutter, xComfort Shutter und Z-Wave Shutter diese Profile. Das heißt bei deren Erstellung ist eine Variable mit dem benötigten Profil vorhanden.
### Einstellungen
| Option | Position | Beschreibung |
| -------------------------- | -------- | -------------------------------------------------------------------------- |
| Typ | -------- | Rollladen oder Markise |
| Verzögerung | -------- | Anfahrverzögerung des Motors nach dem Schalten |
| Ziel | -------- | Aktorvariable, welcher angesteuert werden soll |
| Runterfahren (Mitte) | 50% | Gemessene Zeit von Offen zu Mitte. |
| Runterfahren (Unten) | 99% | (nur Rollladen) Gemessene Zeit von Offen zu Unten. (Stäbe noch offen) |
| Runterfahren (Geschlossen) | 100% | Gemessene Zeit von Offen bis Endposition erreicht. Lamellen geschlossen. |
| Hochfahren (Unten) | 99% | (nur Rollladen) Gemessene Zeit von Geschlossen bis Stäbe geöffnet |
| Hochfahren (Mitte) | 50% | Gemessene Zeit von Geschlossen bis Mitte erreicht. |
| Hochfahren (Offen) | 0% | Gemessene Zeit von Geschlossen bis Endposition erreicht. Komplett geöffnet |
### Eigenes Gerät hinzufügen
Falls das Gerät nicht zu einem der untersützten Varianten gehört, kann selber eine Integervariable angelegt werden.
Diese muss das Profil ~ShutterMoveStop oder ~ShutterMoveStep zugewiesen haben.
Desweiteren muss folgendes Aktionsskript hinterlegt werden.
```php
// Vorlage für Aktionsskript
switch($_IPS['VALUE']) {
case 0:
// Hier der Befehl für Öffnen
break;
case 1: // Nur bei ~ShutterMoveStep
// Hier der Befehl für Schritt-Öffnen
break;
case 2:
// Hier der Befehl für Stoppen
break;
case 3: // Nur bei ~ShutterMoveStep
// Hier der Befehl für Schritt Schließen
break;
case 4:
// Hier der Befehl für Schließen
break;
}
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
```
## SC_Move
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/shutter-control/sc-move/
`bool SC_Move(int $InstanzID, int $Position)`
bewegt den Rollladen an eine bestimmte Position
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
- `$Position` (int): 0%-100%, 99% = Auf Spalt fahren
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0%-100%, 99% = Auf Spalt fahren
**Beispiel**
```php
SC_Move(12345, 50); //Auf 50% fahren
```
## SC_MoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/shutter-control/sc-movedown/
`bool SC_MoveDown(int $InstanzID, int $Dauer)`
bewegt den Rollladen bis zu Endposition runter
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
- `$Dauer` (int): 0 = Endlagenschalter, >1 = Dauer in ms
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = Endlagenschalter, >1 = Dauer in ms
**Beispiel**
```php
SC_MoveDown(12345, 0); //Nach unten fahren
```
## SC_MoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/shutter-control/sc-moveup/
`bool SC_MoveUp(int $InstanzID, int $Dauer)`
bewegt den Rollladen bis zu Endposition hoch
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
- `$Dauer` (int): 0 = Endlagenschalter, >1 = Dauer in ms
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = Endlagenschalter, >1 = Dauer in ms
**Beispiel**
```php
SC_MoveUp(12345, 0); //Nach oben fahren
```
## SC_Stop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/shutter-control/sc-stop/
`bool SC_Stop(int $InstanzID)`
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Shutter Control Instanz
**Beispiel**
```php
SC_Stop(12345); //Anhalten
```
---
# Siemens OZW
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/siemens-ozw/
Siemens OZW ist ein Web-Server, welcher via Web eine Fernbedienung und Fernüberwachung von KNX Geräten ermöglicht. IP-Symcon wird via LAN(IP) mit Siemens OZW verbunden.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/siemens-ozw.md)
### Einleitung
Diese Anleitung soll helfen, einen __Siemens OZW 672 / Siemens OZW 772 Web-Server__ möglichst schnell und unkompliziert mit dem Computer zu verbinden. Dies soll die Voraussetzung schaffen, mit IP-Symcon verschiedenste Anwendungsbereiche abzudecken und diese zu visualisieren. Der Web-Server OZW ermöglicht die Fernbedienung und Fernüberwachung von Anlagen über das Web. Er ist in vier Ausführungen erhältlich: für den Anschluss von eins, vier, 16 oder 250 KNX Geräten der Sortimente Synco 700, Synco RXB/RXL, Raumthermostaten RDG/RDF/RDU und der Synco living Wohnungszentralen QAX9.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/2VoOVEPpbY0?rel=0&cc_load_policy=1)
### Anschluss
Es sollten alle KNX-Geräte korrekt angeschlossen sein bevor das Gerät durch ein Netzwerkkabel mit dem Netzwerk und schließen Sie es an die Spannungsversorgung an.
Auch eine Verbindung mit dem PC per USB ist möglich, sofern eine Verbindung zum Internet gegeben ist, damit der RNDIS-Treiber beim Verbinden via USB automatisch installiert werden kann (sofern der Microsoft online update Dienst freigeschaltet ist). Ein manuelles Installieren des Treibers ist ebenfalls möglich.
### Installation
Wenn der OZW korrekt angeschlossen ist und ein DHCP-Server verwendet wird, ist jener nun mit dem lokalen Netzwerk verbunden. _(Der DHCP-Server übernimmt automatisch die Adressvergabe für die Netzwerkteilnehmer.)_
Unter den Netzwerkgeräten erscheint nun der OZW erscheint in der Kategorie "Andere Geräte".
Durch anklicken des "OZW..." öffnet sich ein Fenster, in dessen unteren Bereich die IP-Adresse des OZWs angezeigt wird. Durch Kopieren dieser Adresse in einen beliebigen Browser öffnet sich die Siemens Webpage.
Beim ersten Login gilt: __"Username" = "Administrator" und "Password" = "Password"__.
Das Passwort sollte nach dem ersten Login geändert werden.
Groß- und Kleinschreibung muss beachtet werden. Nach dem ersten Login ist die Web-Server-Sprache "Englisch", die sich aber anpassen lässt. Auf der linken Seite sind alle angeschlossenen KNX-Geräte.
Sofern kein DHCP-Server benutzet wird, ist die IP-Adresse des OZWs im Auslieferungszustand 192.168.2.10 (USB: 192.168.250.1 (nicht veränderbar)).
### Einbindung in IP-Symcon
In der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) kann über "Konfigurator erstellen" ein "OZW Konfigurator" erstellt werden. Dazu muss zweimal auf „Weiter“, einmal auf „OK“ geklickt werden. Zur folgenden Konfigurationsseite gelangt man via Zahnrad (unten links).

Es öffnet sich die Konfiguration des "OZW Splitters". Hier sind bereits die Standardwerte von Siemens voreingestellt. Gegebenfalls können hier veränderte Passwörter oder eine andere IP eingestellt werden. Mit dem Klick auf "Übernehmen" werden die Änderungen erst gespeichert. Im OZW Konfigurator kann jetzt auf "Suchen" geklickt werden. Anschließend erscheinen der OZW und alle an diesen angeschlossenen KNX-Geräte.

Bei der ID auf der linken Seite handelt es sich um die Identifikationsnummer, die sich auch auf der Rückseite der einzelnen Geräte wiederfinden lässt. Im Falle einer großen Anzahl von installierten KNX-Geräten ist damit eine problemlose Zuordnung und Konfiguration gewährleistet.
Bei der ID auf der rechten Seite handelt es sich um die von IP-Symcon zugeordnete InstanzID. Diese ist einmalig und unveränderbar.
Jedes Gerät muss nacheinander ausgewählt und durch "Erstellen" in IP-Symcon eingerichtet werden.
Diese Geräte stehen nun innerhalb von IP-Symcon zur Verfügung und sind bedienbar.
Nach einem Klick auf ein ausgewähltes KNX-Gerät und dann einen Klick auf "Konfigurieren" kann darüber hinaus das Gerät genau eingestellt werden. Auch kann eingestellt werden, was in der Visualisierung angezeigt werden soll.

Dafür muss auf das "+" geklickt und der jeweilige Datenpunkt ausgewählt werden, der in der Visualisierung angezeigt werden soll. Durch ein Klicken auf "Erstellen", wird dieser in IP-Symcon eingerichtet. Die Ansicht kann nun geschlossen werden.
### Abfrageintervalle konfigurieren
Sobald die einzelnen gewünschten Datenpunkte ausgewählt wurden, können diese über "Konfigurieren" geöffnet und ein Abfrageintervall eingestellt werden. Dieses ist notwendig, da IP-Symcon die Werte aktiv vom OZW abfragen muss.
> **Hinweis:** Eine Abfrage dauert ca. 800ms. Es können also z.B. 13 Datenpunkte alle 10 Sekunden abgefragt werden. Wenn die Intervalle zu kurz sind, werden die Abfragen nacheinander, verzögert abgearbeitet.
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/siemens-ozw/geraeteliste/
### Unterstützte Gateways/Komponenten
Es werden alle KNX Geräte, die mit dem Siemens OZW 672 / Siemens OZW 772 Web-Server kompatibel sind, unterstützt.
## OZW_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/siemens-ozw/ozw-requeststatus/
`bool OZW_RequestStatus(int $InstanzID)`
fragt den Status eines Geräts ab
**Parameter**
- `$InstanzID` (int): ID des abzufragenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des abzufragenden Geräts
**Beispiel**
```php
OZW_RequestStatus(12345);
```
## OZW_WriteDataPoint
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/siemens-ozw/ozw-writedatapoint/
`bool OZW_WriteDataPoint(int $InstanzID, mixed $Wert)`
schreibt einen bestimmten Wert in einen Datenpunkt
**Parameter**
- `$InstanzID` (int): ID des zu verändernden Geräts
- `$Wert` (mixed): z.B. 23.5
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
z.B. 23.5
**Beispiel**
```php
OZW_WriteDataPoint(12345, 1);
```
---
# SNMP
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/snmp/
_Benötigt Symcon >= 6.0_
Das SMNP Modul liest alle verfügbaren OIDs eines Geräts aus und stellt beliebige davon als Variable in IP-Symcon dar. Diese werden zyklisch Aktualisierung und können bei Bedarf auch beschrieben werden. Unterstützung für OIDLib Dateien gibt den OIDs mehr Informationen/Kontext, um die Einrichtung zu vereinfachen.
### Funktionsumfang
* Automatischer Walk aller OIDs einges Geräts
* Erstellung einzelner OIDs als Variable
* Schreiben von Werten auf die OIDs
* Weitere Informationen sofern OIDLib Dateien vorhanden
* SNMPv1/SNMPv2/SNMPv3 inkl. Authentifizerung und Verschlüsselung werden unterstützt
### Software-Installation
* Über den Module Store das 'SMNP'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'SMNP'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
#### Konfigurationsseite
| Name | Beschreibung |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Host | Adresse des Host |
| Version | Auswahl zwischen den Versionen SNMPv1, SNMPv2, SNMPv3 |
| Starte bei | OID bei dem der Walk starten soll |
| Benutzer | Benutzername |
| Community | Für SNMPv1, SNMPv2 nötig |
| Authentifizierung aktivieren | Aktiviert die Möglichkeit der Authentifizierung |
| Authentifizierungspasswort | Passwort für die Authentifizierung |
| Autentifizierungsart | Auswahl der Autentifizierungsart: MD5, SHA1, SHA224, SHA256, SHA384, SHA512 |
| Verschlüsselung aktivieren | Aktiviert die Verschlüsselung |
| Verschlüsselungspasswort | Passwort für die Verschlüsselung |
| Verschlüsselungsart | Auswahl für die Verschlüsselungsart: DES, AES128, 3DES, AES192, AES256, AES192blue, AES256blue |
| Zeige nur bekannte OIDs aus den OIDLibs an | Bei Aktivierung werdern nur OIDs angezeigt, welche in den OIDLibs vorhanden sind |
| OIDLibs | Liste von Dateien, welche die OIDs mit Beschreibung und Namen versieht. ÜBer folgendes Tool können MIB Dateien in OIDLib Dateien konvertiert werden: [MIB-Dateien zu OIDLibs](https://www.paessler.com/tools/mibimporter) |
| Aktualisierungsintervall | Intervall in Sekunden, in welchem zeitlichen Abstand die Werte aktualisiert werden |
| Name | Beschreibung |
| --------------------------- | ---------------------------------------------------- |
| Walk starten / Walk stoppen | Button um den Walk zu starten und zu stoppen |
| OID | Anzeige der OID |
| Name | Name, welcher durch die OIDLib gegeben wurde |
| Beschreibung | Beschreibung , welche durch die OIDLib gegeben wurde |
| Wert | Wert der OID, welcher zum Zeitpunkt des Walks |
| Aktiv? | Erstellt eine Variable für die gewählte OID |
| Schreibbar? | Aktiviert das Schreiben für die gewählte OID |
## SNMP_UpdateValues
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/snmp/snmp-updatevalues/
`bool SNMP_UpdateValues(int $InstanzID)`
_Benötigt Symcon >= 6.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
SNMP_UpdateValues(12345);
```
---
# Snom
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/snom/
_Benötigt Symcon >= 7.0_
> **Hinweis:** Das Snom Modul wurde in Kooperation zwischen Symcon und Snom erstellt. Das Modul ist als Open Source verfügbar und die aktuelle [Dokumentation](https://github.com/symcon/Snom) steht auf GitHub bereit.
---
# SPS: Siemens, Vipa, Logo
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/
### Beschreibung
Speicherprogrammierbare Steuerungen (SPS, engl. Programmable Logic Controller, PLC) sind eigenständige elektronische Baugruppen zur Steuerung von Maschinen und Anlagen. Diese arbeiten unabhängig von einem PC. Die Befehle zum Steuern und Regeln sind direkt in der SPS abgelegt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md)
> **Hinweis:** Durch die Tatsache, dass PHP Integer als größten ganzzahligen Wert anbietet, können DWORDs (unsigend ints) in IP-Symcon zwar gelesen werden, sie werden jedoch auf Integer abgebildet, was bedeutet, nur die unteren 31Bit können ausgewertet werden.
### Einbindung in IP-Symcon
Die Siemens PLCs können nur via Ethernet Anschluss eingebunden werden.
> **Hinweis:** Die Unterstützung von MPI und ProfiBus via LIBNODAVE wurde ab Version 4.0 eingestellt
> **Achtung:** Bei neueren S7 (1200/1500) muss das "Optimized block access" Attribut deaktiviert werden. Weitere Informationen befinden sich [HIER](https://snap7.sourceforge.net/snap7_client.html#1200_1500)
#### S7 Verbindungskonfiguration
Die Verbindungskonfiguration erfolgt via "TIA Portal"-Software (Totally Integrated Automation) von Siemens.
Folgende Einstellungen müssen gemacht werden.
* IP-Adresse in PROFINET Schnittstelle eintragen (Siehe Screenshot)
* PN/IE Subnetz anbinden
* S7-Verbindung an PROFINET einfügen und folgende Punkte konfigurieren (Siehe Screenshot)
* Verbindungsdaten in IP-Symcon eintragen (Siehe Screenshot)
__PROFINET Schnittstelle__

__S7 Verbindung__

__S7 Verbindung Secure__
Wenn eine Siemens SPS mit zusätzlichen Sicherheitseinstellungen genutzt wird (z.B. S7-1517f), kann eine Verbindung nur mit aktivierten SIMATIC-ACC auf der SPS Seite genutzt werden. Das heißt in der S7-Verbindung der SPS muss für die lokale TSAP die Option "SIMATIC-ACC" aktiviert werden. Daraus resultiert in der Gatewaykonfiguration in IP-Symcon die Remote TSAP 03.01.


#### Logo 7/8 Konfiguration
Die Konfiguration der SPS und des Gateways muss wie folgt eingerichtet werden.
Konfiguration über LOGO!Soft Comfort 8.1.

Im Anschluss können die Befehle getestet werden. Zur einfachen Übersicht ob alles korrekt funktioniert, bietet die SoftComfort Software eine Übersicht der E/A-Zustände.
Diese kann wiefolgt aufgerufen werden.

#### Logo 7/8 Konfigurator
Wenn die Logo korrekt eingebunden wurde, können über den Konfigurator die jeweiligen Speicheradressen via Logo 7/8 Konfigurator als Instanz erstellt werden. Dazu muss die der jeweilige Eingang, Ausgang oder Merker ausgewählt und auf "Erstellen" geklickt werden.

Sobald im Konfigurator ein Modul erstellt und auf die Konfigurationstaste gedrückt wurde, öffnet sich ein neuer Dialog.
Neue Instanzen werden im Objektbaum in der Hauptkategorie erstellt. Diese erstellten Instanzen können dann entsprechend umbenannt und an anderer Stelle einsortiert werden. Auch besteht die Möglichkeit via "Konfigurieren" im Konfigurator die jeweilige Instanzkonfiguration aufzurufen.

### Beispiel mit TIA Portal
Dieses Beispiel auf der S7-1200 spiegelt 2 Taster, welche unabhängig voneinander ein Licht ein-/ausschalten sollen. Gleichzeitig soll es möglich sein, das Licht ebenfalls via IP-Symcon zu steuern.
* Main (OB1) wie auf dem Screenshot konfigurieren. (Siehe Screenshot)
* Programm auf die SPS laden und starten
* In IP-Symcon "Siemens S7" Instanz hinzufügen
* Konfigurationsseite der "Siemens S7" Instanz konfigurieren (Siehe Screenshot)
* Adresse und Bit ergeben sich aus dem TIA Portal (Siehe Screenshot)
* Der Typ wird unter dem dem Feld "Area" angegeben (Siehe Screenshot)
* Die Art der Variable in IP-Symcon wird über Einheit angegeben (Siehe Screenshot)
* Der Status des Merkers wird im eingetragengen Intervall abgefragt. (Siehe Screenshot)
* Über Testumgebung (AN/AUS) kann direkt getestet werden, ob der Merker korrekt geschaltet wird
Durch die XOR-Schaltung und den Merker ist es per Taster möglich umzuschalten und IP-Symcon bekommt die Variablenänderung mit. Somit zeigt IP-Symcon immer den Status des Lichtes an, ohne das eine seperate Variable zum Auslesen des SPS-Ausgangs genutzt werden muss. Auch ist es IP-Symcon möglich direkt über den Merker das Licht zu schalten.
Teils bessere Ergebnisse erzielt man bei diesem Beispiel, wenn man ein AND (Flanke) vor das jeweilige XOR setzt um nur einen Zyklus zu bekommen. Ob dies benötigt wird muss aber vor Ort getestet werden und wird in diesem Beispiel nicht mit angeführt.

### Beispiel mit Logo Soft Comfort
Dieses Beispiel auf der Logo 8 spiegelt 2 Taster, welche unabhängig voneinander ein Licht ein-/ausschalten sollen. Gleichzeitig soll es möglich sein, das Licht ebenfalls via IP-Symcon zu steuern.
* 2 Taster Schaltplan wie auf dem Screenshot konfigurieren. (Siehe Screenshot)
* Programm auf die SPS laden und starten
* In IP-Symcon "Logo Configurator" Instanz hinzufügen und Schnittstelle wie oben beschrieben konfigurieren
* Die gewünschten Variablen über den Konfigurator erstellen
* Beim schalbaren Merker M2 die Option "Nur-Lesen" deaktivieren
* Die Art der Variable in IP-Symcon wird über Einheit angegeben
* Der Status des Merkers wird im eingetragengen Intervall abgefragt. (Siehe Screenshot)
* Über Testumgebung (AN/AUS) kann direkt getestet werden, ob der Merker korrekt geschaltet wird
Durch die XOR-Schaltung und den Merker ist es per Taster möglich umzuschalten und IP-Symcon bekommt bei eingerichtetem Q2 die Variablenänderung mit. Auch ist es IP-Symcon möglich direkt über den Merker M2 das Licht zu schalten. Dies ist nicht über den Merker M1 möglich, da die Logo das in dieser Konfiguration nicht unterstützt. Der Merker M2 fungiert in IP-Symcon als Schalter und in der Logo als Taster.


### Datentypen
| Datentyp | Vorzeichen | Bit | Name IP-Symcon |
| -------- | ---------- | --- | -------------- |
| BOOL | unsigned | 1 | Bit |
| BYTE | abhängig | 8 | Char/Byte |
| WORD | abhängig | 16 | Short/Word |
| DWORD | abhängig | 32 | Integer/DWord |
| SINT | signed | 8 | Char |
| INT | signed | 16 | Short |
| DINT | signed | 32 | Integer |
| USINT | unsigned | 8 | Byte |
| UINT | unsigned | 16 | Word |
| UDINT | unsigned | 32 | DWord |
| REAL | signed | 32 | Real |
### Logo VM-Adressen
Die Logo hat für Ein-/Ausgänge und Merker feste Speicheradressen im VM-Speicher oberhalb des 850sten Bytes reserviert.
Diese sind je nach vorliegendem Modell (Logo7/8) unterschiedlich.
Wenn die Logo mit IP-Symcon ausgelesen werden soll, ist es hilfreich diese Adressen zu kennen.
Eine gesamte Liste befindet sich hier: [LogoVMAdressen](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/geraeteliste/
### Unterstützte Gateways/Komponenten
| Hersteller | Gerätename | Beschreibung |
| ---------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Siemens | Logo 7 | |
| Siemens | Logo 8 | |
| Siemens | S7 200/300/400 | Über Ethernet angeschlossen |
| Siemens | S7 1200/1500 | Weitere Informationen können [HIER](https://snap7.sourceforge.net/snap7_client.html#1200_1500) gefunden werden |
| Siemens | S7 1517f | Weitere Informationen können [HIER](https://snap7.sourceforge.net/snap7_client.html#1200_1500) gefunden werden. Des Weiteren ist die besondere [S7 Konfiguration](https://www.symcon.de/de/llms/modules/sps-siemens-vipa-logo.md) der S7 zu beachten |
## Logo-VM-Adressen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/logovmadressen/
Die Logo hat für Ein-/Ausgänge und Merker feste Speicheradressen.
Diese sind je nach vorliegendem Modell (Logo7/8) unterschiedlich. ([Quelle LOGO!Soft Comfort Online Hilfe](https://cache.industry.siemens.com/dl/files/807/100782807/att_924631/v1/Help_de-DE_de-DE.pdf#page=119) )
> **Hinweis:** Diese Adressen müssen innnerhalb der Logokonfiguration in IP-Symcon unter "Bereichsadresse" eingetragen werden. Die jeweiligen Bits unter "Bit"
### Logo 7
Eingänge Bit
Ausgänge Bit
Analoge Eingänge Word
Analoge Ausgänge Word
Merker Bit
Analoge Merker Word
### Logo 8
Eingänge Bit
Ausgänge Bit
Analoge Eingänge Word
Analoge Ausgänge Word
Merker Bit
Analoge Merker Word
Netzwerkeingänge Bit
Netzwerkausgänge Bit
Analoge Netzwerkeingänge Word
Analoge Netzwerkausgänge Word
#### Logo 7 Eingänge Bit
| Eingang | Adresse | Bit |
| ------- | ------- | --- |
| I1 | 923 | 0 |
| I2 | 923 | 1 |
| I3 | 923 | 2 |
| I4 | 923 | 3 |
| I5 | 923 | 4 |
| I6 | 923 | 5 |
| I7 | 923 | 6 |
| I8 | 923 | 7 |
| I9 | 924 | 0 |
| I10 | 924 | 1 |
| I11 | 924 | 2 |
| I12 | 924 | 3 |
| I13 | 924 | 4 |
| I14 | 924 | 5 |
| I15 | 924 | 6 |
| I16 | 924 | 7 |
| I17 | 925 | 0 |
| I18 | 925 | 1 |
| I19 | 925 | 2 |
| I20 | 925 | 3 |
| I21 | 925 | 4 |
| I22 | 925 | 5 |
| I23 | 925 | 6 |
| I24 | 925 | 7 |
#### Logo 7 Ausgänge Bit
| Ausgang | Adresse | Bit |
| ------- | ------- | --- |
| Q1 | 942 | 0 |
| Q2 | 942 | 1 |
| Q3 | 942 | 2 |
| Q4 | 942 | 3 |
| Q5 | 942 | 4 |
| Q6 | 942 | 5 |
| Q7 | 942 | 6 |
| Q8 | 942 | 7 |
| Q9 | 943 | 0 |
| Q10 | 943 | 1 |
| Q11 | 943 | 2 |
| Q12 | 943 | 3 |
| Q13 | 943 | 4 |
| Q14 | 943 | 5 |
| Q15 | 943 | 6 |
| Q16 | 943 | 7 |
#### Logo 7 Analoge Eingänge Word
| Eingang | Adresse | Bit |
| ------- | ------- | --- |
| AI1 | 926 | 0 |
| AI2 | 928 | 0 |
| AI3 | 930 | 0 |
| AI4 | 932 | 0 |
| AI5 | 934 | 0 |
| AI6 | 936 | 0 |
| AI7 | 938 | 0 |
| AI8 | 940 | 0 |
#### Logo 7 Analoge Ausgänge Word
| Word | Adresse | Bit |
| ---- | ------- | --- |
| AQ1 | 944 | 0 |
| AQ2 | 946 | 0 |
#### Logo 7 Merker Bit
| Merker | Adresse | Bit |
| ------ | ------- | --- |
| M1 | 948 | 0 |
| M2 | 948 | 1 |
| M3 | 948 | 2 |
| M4 | 948 | 3 |
| M5 | 948 | 4 |
| M6 | 948 | 5 |
| M7 | 948 | 6 |
| M8 | 948 | 7 |
| M9 | 949 | 0 |
| M10 | 949 | 1 |
| M11 | 949 | 2 |
| M12 | 949 | 3 |
| M13 | 949 | 4 |
| M14 | 949 | 5 |
| M15 | 949 | 6 |
| M16 | 949 | 7 |
| M17 | 950 | 0 |
| M18 | 950 | 1 |
| M19 | 950 | 2 |
| M20 | 950 | 3 |
| M21 | 950 | 4 |
| M22 | 950 | 5 |
| M23 | 950 | 6 |
| M24 | 950 | 7 |
| M25 | 951 | 0 |
| M26 | 951 | 1 |
| M27 | 951 | 2 |
#### Logo 7 Analoge Merker Word
| Merker | Adresse | Bit |
| ------ | ------- | --- |
| AM1 | 952 | 0 |
| AM2 | 954 | 0 |
| AM3 | 956 | 0 |
| AM4 | 958 | 0 |
| AM5 | 960 | 0 |
| AM6 | 962 | 0 |
| AM7 | 964 | 0 |
| AM8 | 966 | 0 |
| AM9 | 968 | 0 |
| M10 | 970 | 0 |
| AM11 | 972 | 0 |
| AM12 | 974 | 0 |
| AM13 | 976 | 0 |
| AM14 | 978 | 0 |
| AM15 | 980 | 0 |
| AM16 | 982 | 0 |
### Logo 8
#### Logo 8 Eingänge Bit
| Eingang | Adresse | Bit |
| ------- | ------- | --- |
| I1 | 1024 | 0 |
| I2 | 1024 | 1 |
| I3 | 1024 | 2 |
| I4 | 1024 | 3 |
| I5 | 1024 | 4 |
| I6 | 1024 | 5 |
| I7 | 1024 | 6 |
| I8 | 1024 | 7 |
| I9 | 1025 | 0 |
| I10 | 1025 | 1 |
| I11 | 1025 | 2 |
| I12 | 1025 | 3 |
| I13 | 1025 | 4 |
| I14 | 1025 | 5 |
| I15 | 1025 | 6 |
| I16 | 1025 | 7 |
| I17 | 1026 | 0 |
| I18 | 1026 | 1 |
| I19 | 1026 | 2 |
| I20 | 1026 | 3 |
| I21 | 1026 | 4 |
| I22 | 1026 | 5 |
| I23 | 1026 | 6 |
| I24 | 1026 | 7 |
#### Logo 8 Ausgänge Bit
| Ausgang | Adresse | Bit |
| ------- | ------- | --- |
| Q1 | 1064 | 0 |
| Q2 | 1064 | 1 |
| Q3 | 1064 | 2 |
| Q4 | 1064 | 3 |
| Q5 | 1064 | 4 |
| Q6 | 1064 | 5 |
| Q7 | 1064 | 6 |
| Q8 | 1064 | 7 |
| Q9 | 1065 | 0 |
| Q10 | 1065 | 1 |
| Q11 | 1065 | 2 |
| Q12 | 1065 | 3 |
| Q13 | 1065 | 4 |
| Q14 | 1065 | 5 |
| Q15 | 1065 | 6 |
| Q16 | 1065 | 7 |
| Q17 | 1066 | 0 |
| Q18 | 1066 | 1 |
| Q19 | 1066 | 2 |
| Q20 | 1066 | 3 |
#### Logo 8 Analoge Eingänge Word
| Eingang | Adresse | Bit |
| ------- | ------- | --- |
| AI1 | 1032 | 0 |
| AI2 | 1034 | 0 |
| AI3 | 1036 | 0 |
| AI4 | 1038 | 0 |
| AI5 | 1040 | 0 |
| AI6 | 1042 | 0 |
| AI7 | 1044 | 0 |
| AI8 | 1046 | 0 |
#### Logo 8 Analoge Ausgänge Word
| Ausgänge | Adresse | Bit |
| -------- | ------- | --- |
| AQ1 | 1072 | 0 |
| AQ2 | 1074 | 0 |
| AQ3 | 1076 | 0 |
| AQ4 | 1078 | 0 |
| AQ5 | 1080 | 0 |
| AQ6 | 1082 | 0 |
| AQ7 | 1084 | 0 |
| AQ8 | 1086 | 0 |
#### Logo 8 Merker Bit
| Merker | Adresse | Bit |
| ------ | ------- | --- |
| M1 | 1104 | 0 |
| M2 | 1104 | 1 |
| M3 | 1104 | 2 |
| M4 | 1104 | 3 |
| M5 | 1104 | 4 |
| M6 | 1104 | 5 |
| M7 | 1104 | 6 |
| M8 | 1104 | 7 |
| M9 | 1105 | 0 |
| M10 | 1105 | 1 |
| M11 | 1105 | 2 |
| M12 | 1105 | 3 |
| M13 | 1105 | 4 |
| M14 | 1105 | 5 |
| M15 | 1105 | 6 |
| M16 | 1105 | 7 |
| M17 | 1106 | 0 |
| M18 | 1106 | 1 |
| M19 | 1106 | 2 |
| M20 | 1106 | 3 |
| M21 | 1106 | 4 |
| M22 | 1106 | 5 |
| M23 | 1106 | 6 |
| M24 | 1106 | 7 |
| M25 | 1107 | 0 |
| M26 | 1107 | 1 |
| M27 | 1107 | 2 |
| M28 | 1107 | 3 |
| M29 | 1107 | 4 |
| M30 | 1107 | 5 |
| M31 | 1107 | 6 |
| M32 | 1107 | 7 |
| M33 | 1108 | 0 |
| M34 | 1108 | 1 |
| M35 | 1108 | 2 |
| M36 | 1108 | 3 |
| M37 | 1108 | 4 |
| M38 | 1108 | 5 |
| M39 | 1108 | 6 |
| M40 | 1108 | 7 |
| M41 | 1109 | 0 |
| M42 | 1109 | 1 |
| M43 | 1109 | 2 |
| M44 | 1109 | 3 |
| M45 | 1109 | 4 |
| M46 | 1109 | 5 |
| M47 | 1109 | 6 |
| M48 | 1109 | 7 |
| M49 | 1110 | 0 |
| M50 | 1110 | 1 |
| M51 | 1110 | 2 |
| M52 | 1110 | 3 |
| M53 | 1110 | 4 |
| M54 | 1110 | 5 |
| M55 | 1110 | 6 |
| M56 | 1110 | 7 |
| M57 | 1111 | 0 |
| M58 | 1111 | 1 |
| M59 | 1111 | 2 |
| M60 | 1111 | 3 |
| M61 | 1111 | 4 |
| M62 | 1111 | 5 |
| M63 | 1111 | 6 |
| M64 | 1111 | 7 |
#### Logo 8 Analoge Merker Word
| Merker | Adresse | Bit |
| ------ | ------- | --- |
| AM1 | 1118 | 0 |
| AM2 | 1120 | 0 |
| AM3 | 1122 | 0 |
| AM4 | 1124 | 0 |
| AM5 | 1126 | 0 |
| AM6 | 1128 | 0 |
| AM7 | 1130 | 0 |
| AM8 | 1132 | 0 |
| AM9 | 1134 | 0 |
| AM10 | 1136 | 0 |
| AM11 | 1138 | 0 |
| AM12 | 1140 | 0 |
| AM13 | 1142 | 0 |
| AM14 | 1144 | 0 |
| AM15 | 1146 | 0 |
| AM16 | 1148 | 0 |
| AM17 | 1150 | 0 |
| AM18 | 1152 | 0 |
| AM19 | 1154 | 0 |
| AM20 | 1156 | 0 |
| AM21 | 1158 | 0 |
| AM22 | 1160 | 0 |
| AM23 | 1162 | 0 |
| AM24 | 1164 | 0 |
| AM25 | 1166 | 0 |
| AM26 | 1168 | 0 |
| AM27 | 1170 | 0 |
| AM28 | 1172 | 0 |
| AM29 | 1174 | 0 |
| AM30 | 1176 | 0 |
| AM31 | 1178 | 0 |
| AM32 | 1180 | 0 |
| AM33 | 1182 | 0 |
| AM34 | 1184 | 0 |
| AM35 | 1186 | 0 |
| AM36 | 1188 | 0 |
| AM37 | 1190 | 0 |
| AM38 | 1192 | 0 |
| AM39 | 1194 | 0 |
| AM40 | 1196 | 0 |
| AM41 | 1198 | 0 |
| AM42 | 1200 | 0 |
| AM43 | 1202 | 0 |
| AM44 | 1204 | 0 |
| AM45 | 1206 | 0 |
| AM46 | 1208 | 0 |
| AM47 | 1210 | 0 |
| AM48 | 1212 | 0 |
| AM49 | 1214 | 0 |
| AM50 | 1216 | 0 |
| AM51 | 1218 | 0 |
| AM52 | 1220 | 0 |
| AM53 | 1222 | 0 |
| AM54 | 1224 | 0 |
| AM55 | 1226 | 0 |
| AM56 | 1228 | 0 |
| AM57 | 1230 | 0 |
| AM58 | 1232 | 0 |
| AM59 | 1234 | 0 |
| AM60 | 1236 | 0 |
| AM61 | 1238 | 0 |
| AM62 | 1240 | 0 |
| AM63 | 1242 | 0 |
| AM64 | 1244 | 0 |
#### Logo 8 Netzwerkeingänge Bit
| Eingang | Adresse | Bit |
| ------- | ------- | --- |
| NI1 | 1246 | 0 |
| NI2 | 1246 | 1 |
| NI3 | 1246 | 2 |
| NI4 | 1246 | 3 |
| NI5 | 1246 | 4 |
| NI6 | 1246 | 5 |
| NI7 | 1246 | 6 |
| NI8 | 1246 | 7 |
| NI9 | 1247 | 0 |
| NI10 | 1247 | 1 |
| NI11 | 1247 | 2 |
| NI12 | 1247 | 3 |
| NI13 | 1247 | 4 |
| NI14 | 1247 | 5 |
| NI15 | 1247 | 6 |
| NI16 | 1247 | 7 |
| NI17 | 1248 | 0 |
| NI18 | 1248 | 1 |
| NI19 | 1248 | 2 |
| NI20 | 1248 | 3 |
| NI21 | 1248 | 4 |
| NI22 | 1248 | 5 |
| NI23 | 1248 | 6 |
| NI24 | 1248 | 7 |
| NI25 | 1249 | 0 |
| NI26 | 1249 | 1 |
| NI27 | 1249 | 2 |
| NI28 | 1249 | 3 |
| NI29 | 1249 | 4 |
| NI30 | 1249 | 5 |
| NI31 | 1249 | 6 |
| NI32 | 1249 | 7 |
| NI33 | 1250 | 0 |
| NI34 | 1250 | 1 |
| NI35 | 1250 | 2 |
| NI36 | 1250 | 3 |
| NI37 | 1250 | 4 |
| NI38 | 1250 | 5 |
| NI39 | 1250 | 6 |
| NI40 | 1250 | 7 |
| NI41 | 1251 | 0 |
| NI42 | 1251 | 1 |
| NI43 | 1251 | 2 |
| NI44 | 1251 | 3 |
| NI45 | 1251 | 4 |
| NI46 | 1251 | 5 |
| NI47 | 1251 | 6 |
| NI48 | 1251 | 7 |
| NI49 | 1252 | 0 |
| NI50 | 1252 | 1 |
| NI51 | 1252 | 2 |
| NI52 | 1252 | 3 |
| NI53 | 1252 | 4 |
| NI54 | 1252 | 5 |
| NI55 | 1252 | 6 |
| NI56 | 1252 | 7 |
| NI57 | 1253 | 0 |
| NI58 | 1253 | 1 |
| NI59 | 1253 | 2 |
| NI60 | 1253 | 3 |
| NI61 | 1253 | 4 |
| NI62 | 1253 | 5 |
| NI63 | 1253 | 6 |
| NI64 | 1253 | 7 |
#### Logo 8 Netzwerkausgänge Bit
| Ausgang | Adresse | Bit |
| ------- | ------- | --- |
| NQ1 | 1390 | 0 |
| NQ2 | 1390 | 1 |
| NQ3 | 1390 | 2 |
| NQ4 | 1390 | 3 |
| NQ5 | 1390 | 4 |
| NQ6 | 1390 | 5 |
| NQ7 | 1390 | 6 |
| NQ8 | 1390 | 7 |
| NQ9 | 1391 | 0 |
| NQ10 | 1391 | 1 |
| NQ11 | 1391 | 2 |
| NQ12 | 1391 | 3 |
| NQ13 | 1391 | 4 |
| NQ14 | 1391 | 5 |
| NQ15 | 1391 | 6 |
| NQ16 | 1391 | 7 |
| NQ17 | 1392 | 0 |
| NQ18 | 1392 | 1 |
| NQ19 | 1392 | 2 |
| NQ20 | 1392 | 3 |
| NQ21 | 1392 | 4 |
| NQ22 | 1392 | 5 |
| NQ23 | 1392 | 6 |
| NQ24 | 1392 | 7 |
| NQ25 | 1393 | 0 |
| NQ26 | 1393 | 1 |
| NQ27 | 1393 | 2 |
| NQ28 | 1393 | 3 |
| NQ29 | 1393 | 4 |
| NQ30 | 1393 | 5 |
| NQ31 | 1393 | 6 |
| NQ32 | 1393 | 7 |
| NQ33 | 1394 | 0 |
| NQ34 | 1394 | 1 |
| NQ35 | 1394 | 2 |
| NQ36 | 1394 | 3 |
| NQ37 | 1394 | 4 |
| NQ38 | 1394 | 5 |
| NQ39 | 1394 | 6 |
| NQ40 | 1394 | 7 |
| NQ41 | 1395 | 0 |
| NQ42 | 1395 | 1 |
| NQ43 | 1395 | 2 |
| NQ44 | 1395 | 3 |
| NQ45 | 1395 | 4 |
| NQ46 | 1395 | 5 |
| NQ47 | 1395 | 6 |
| NQ48 | 1395 | 7 |
| NQ49 | 1396 | 0 |
| NQ50 | 1396 | 1 |
| NQ51 | 1396 | 2 |
| NQ52 | 1396 | 3 |
| NQ53 | 1396 | 4 |
| NQ54 | 1396 | 5 |
| NQ55 | 1396 | 6 |
| NQ56 | 1396 | 7 |
| NQ57 | 1397 | 0 |
| NQ58 | 1397 | 1 |
| NQ59 | 1397 | 2 |
| NQ60 | 1397 | 3 |
| NQ61 | 1397 | 4 |
| NQ62 | 1397 | 5 |
| NQ63 | 1397 | 6 |
| NQ64 | 1397 | 7 |
#### Logo 8 Analoge Netzwerkeingänge Word
| Eingang | Adresse | Bit |
| ------- | ------- | --- |
| NAI1 | 1262 | 0 |
| NAI2 | 1264 | 0 |
| NAI3 | 1266 | 0 |
| NAI4 | 1268 | 0 |
| NAI5 | 1270 | 0 |
| NAI6 | 1272 | 0 |
| NAI7 | 1274 | 0 |
| NAI8 | 1276 | 0 |
| NAI9 | 1278 | 0 |
| NAI10 | 1280 | 0 |
| NAI11 | 1282 | 0 |
| NAI12 | 1284 | 0 |
| NAI13 | 1286 | 0 |
| NAI14 | 1288 | 0 |
| NAI15 | 1290 | 0 |
| NAI16 | 1292 | 0 |
| NAI17 | 1294 | 0 |
| NAI18 | 1296 | 0 |
| NAI19 | 1298 | 0 |
| NAI20 | 1300 | 0 |
| NAI21 | 1302 | 0 |
| NAI22 | 1304 | 0 |
| NAI23 | 1306 | 0 |
| NAI24 | 1308 | 0 |
| NAI25 | 1310 | 0 |
| NAI26 | 1312 | 0 |
| NAI27 | 1314 | 0 |
| NAI28 | 1316 | 0 |
| NAI29 | 1318 | 0 |
| NAI30 | 1320 | 0 |
| NAI31 | 1322 | 0 |
| NAI32 | 1324 | 0 |
#### Logo 8 Analoge Netzwerkausgänge Word
| Ausgang | Adresse | Bit |
| ------- | ------- | --- |
| NAQ1 | 1406 | 0 |
| NAQ2 | 1408 | 0 |
| NAQ3 | 1410 | 0 |
| NAQ4 | 1412 | 0 |
| NAQ5 | 1414 | 0 |
| NAQ6 | 1416 | 0 |
| NAQ7 | 1418 | 0 |
| NAQ8 | 1420 | 0 |
| NAQ9 | 1422 | 0 |
| NAQ10 | 1424 | 0 |
| NAQ11 | 1426 | 0 |
| NAQ12 | 1428 | 0 |
| NAQ13 | 1430 | 0 |
| NAQ14 | 1432 | 0 |
| NAQ15 | 1434 | 0 |
| NAQ16 | 1436 | 0 |
## S7_RequestRead
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-requestread/
`bool S7_RequestRead(int $InstanzID)`
führt einen Lesevorgang auf einem Gerät aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
// Gerät auslesen
S7_RequestRead(12345);
```
## S7_Write
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-write/
`bool S7_Write(int $InstanzID, float $Wert)`
schreibt einen Wert in die konfigurierte Adresse
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): 32Bit Gleitkommawert nach IEEE754 oder Ganzzahlig
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
32Bit Gleitkommawert nach IEEE754 oder Ganzzahlig
**Beispiel**
```php
// Gleitkommawert
S7_Write(12345, 23.5);
// Ganzzahlig
S7_Write(12345, 123);
```
## S7_WriteBit
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writebit/
`bool S7_WriteBit(int $InstanzID, bool $Wert)`
setzt eine Adresse auf An/Aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
S7_WriteBit(12345, true); //Gerät einschalten
```
## S7_WriteByte
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writebyte/
`bool S7_WriteByte(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten Bytewert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-255
**Beispiel**
```php
S7_WriteByte(12345, 123);
```
## S7_WriteChar
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writechar/
`bool S7_WriteChar(int $InstanzID, int $Wert)`
_Benötigt Symcon >= 4.4_
setzt eine Adresse auf einen bestimmten Char
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): -128 bis 127
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-128 bis 127
**Beispiel**
```php
S7_WriteChar(12345, -123);
```
## S7_WriteDWord
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writedword/
`bool S7_WriteDWord(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten unsigned Integerwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-4294967295
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-4294967295
**Beispiel**
```php
S7_WriteDWord(12345, 123);
```
## S7_WriteInteger
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writeinteger/
`bool S7_WriteInteger(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten Integerwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): -2147483648 bis 2147483647
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-2147483648 bis 2147483647
**Beispiel**
```php
S7_WriteInteger(12345, -123);
```
## S7_WriteReal
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writereal/
`bool S7_WriteReal(int $InstanzID, float $Wert)`
setzt eine Adresse auf einen bestimmten Floatwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): 64Bit Gleitkommawert nach IEEE754
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
64Bit Gleitkommawert nach IEEE754
**Beispiel**
```php
S7_WriteReal(12345, 23.5);
```
## S7_WriteShort
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writeshort/
`bool S7_WriteShort(int $InstanzID, int $Wert)`
_Benötigt Symcon >= 4.4_
setzt eine Adresse auf einen bestimmten Shortwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): -32768 bis 32767
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
-32768 bis 32767
**Beispiel**
```php
S7_WriteShort(12345, -123);
```
## S7_WriteWord
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-siemens-vipa-logo/s7-writeword/
`bool S7_WriteWord(int $InstanzID, int $Wert)`
setzt eine Adresse auf einen bestimmten unsigned Smallintegerwert
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): 0-65535
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-65535
**Beispiel**
```php
S7_WriteWord(12345, 123);
```
---
# SPS: Wago, Beckhoff, ABB
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sps-wago-beckhoff-abb/
SPS die ModBus RTU/TCP unterstützen, können in IP-Symcon eingebunden werden. Eine Verbindung wird über [ModBus RTU/TCP](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md) hergestellt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md)
Zum Beispiel
* Wago 750-841 – Der Anschluss an IP-Symcon erfolgt über die LAN Schnittstelle.
### Beschreibung
Speicherprogrammierbare Steuerungen (SPS, engl. Programmable Logic Controller, PLC) sind eigenständige elektronische Baugruppen zur Steuerung von Maschinen und Anlagen. Diese arbeiten unabhängig von einem PC. Die Befehle zum Steuern und Regeln sind in einem Programm hinterlegt. IP-Symcon dient zur Visualisierung sowie des Human-Maschine Interface (HMI), also der Schnittstelle zwischen dem Bediener und der Maschine.
### Einrichtung in IP-Symcon
Die Wago, Beckhoff und ABB SPS können über das IP-Symcon ModBus RTU/TCP Modul angesteuert werden. Da ModBus das übergeordnete Protokoll zur Ansteuerung ist, werden die Namen der Endgerätehersteller nicht mehr explizit in dem Ansteuerungsmodul erwähnt. Die Dokumentation dazu befindet sich hier: [ModBus RTU/TCP](https://www.symcon.de/de/llms/modules/modbus-rtu-tcp.md)
### IEC 61131 nach ModBus Register umrechnen
Sie können mit diesem Tool die WAGO (IEC 61131) Adressen schnell in die jeweilige ModBus Adresse umrechnen.
### Tipps & Ticks
* [WAGO ModBus Register Mapping Tabelle](https://www.symcon.de/assets/files/service/ModBusRegisterMapping.pdf)
---
# Sync Remote
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/sync-remote/
_Benötigt Symcon >= 7.1_
> **Hinweis:** Das Sync Remote Modul ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz erworben werden kann. Bei jeder Symcon Lizenz kann 1 Remote System kostenlos integriert werden. Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/bundle-ips-enterprise-sync-remote) erworben werden.
Das Sync Remote ermöglicht es einem Server sich mit einem entfernten Client zu synchronisieren. Dabei wird der gesamte Inhalt des Objektbaums des Client in den Objektbaum des Servers integriert. Der Server kann dann den Objektbaum des Clients nutzen als wäre es Teil des eigenen Objektbaums und kann die Objekte darin sowohl auslesen als auch modifizieren.
[Video](https://www.youtube.com/embed/jNmV3x5tZeg?rel=0&cc_load_policy=1)
### Funktionsumfang
- Vollzugriff auf den Client vom Server aus
- Objektbaum des Clients nahtlos in den des Servers integriert
- Server kann Client auslesen und modifizieren
### Software-Installation
- Sofern die kostenpflichtige Erweiterung für die Lizenz des Servers erworben wurde, kann das Modul dort verwendet werden.
### Einrichten der Instanzen in Symcon
- Unter "Instanz hinzufügen" kann das 'Sync Remote'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen in der [Dokumentation der Instanzen](https://www.symcon.de/de/llms/concepts.md).
#### Konfiguration
Auf dem Client muss zur Synchronisation der [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) aktiviert werden. Auf dem Server muss das Sync Remote konfiguriert werden.
| Name | Beschreibung |
| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktiviere Synchronisation von entferntem Symcon | Die Synchronisation wird durchgeführt, sofern dieser Schalter aktiv ist |
| Host | Die URL unter welcher der Client erreichbar ist |
| Port | Der Port unter welchem der Client Symcon bereitstellt |
| Benutze SSL | Ist der Schalter gesetzt, wird die Verbindung zum Client via SSL verschlüsselt |
| Überprüfe Peer | Verifiziere, dass das SSL Zertifikat des Hosts korrekt ist (nur sichtbar falls Benutze SSL aktiv ist) |
| Überprüfe Host | Verifiziere, dass die Host URL aus dem SSL Zertifikat mit dem Host aus der Eigenschaft übereinstimmt (nur sichtbar falls Benutze SSL aktiv ist) |
| Benutzername | Der Benutzername, also die Lizenzadresse, des Client |
| Passwort | Das Passwort für den Fernzugriff des Client |
| Timeout | Der Timeout bei Anfragen an den Client in Millisekunden. Benötigt eine Anfrage länger, wird die Verbindung als fehlerhaft markiert und keine Synchronisation durchgeführt |
| Strategie (Profile) | Auswahl zur Strategie zur Synchronisation von [Variablenprofilen](https://www.symcon.de/de/llms/concepts.md) des Client __Ausschließlich vorhandene Profile zuweisen__: Es werden keine neuen Profile auf dem Server erstellt oder existierende modifiziert. Somit erfolgt die Darstellung von Variablen auf Basis der Profile des Servers und kann von der des Clients abweichen __Erstelle Profile nur sofern nicht existent__: Profile des Clients, welche nicht auf dem Server existieren, werden auch auf dem Server erstellt. Damit werden Variablen mit vorher unbekannten Profilen wie auf dem Client dargestellt. Existierende Profile werden allerdings beibehalten. Somit können diese Variablen unter Umständen unterschiedlich dargestellt werden __Erstelle/Aktualisiere passende Profile__: Erstelle Profile des Clients welche auf dem Server fehlen und modifiziere existierende Profile des Servers, damit Sie dem Client entsprechen. Damit ist sichergestellt, dass die Darstellung von Variablen der des Clients entspricht. Dies könnte allerdings Darstellung von Variablen außerhalb des synchronisierten Bereichs ungewollt modifizieren |
| Intervall | Diese Option gibt an, wie häufig der Server sich mit dem Client synchronisiert |
| Reduzierung der Protokollierung für zyklische Aktualisierungen | Ist dieser Schalter aktiviert, werden die Protokollierungen im Meldungsfenster reduziert |
| Nur Änderungen laden um Datentransferkosten zu sparen (Benutzt mehr CPU Resourcen auf beiden Seiten) | Ist dieser Schalter aktiviert, sendet der Client nur die Änderungen seit der letzten Synchronisation an den Client. Dies verringert die Datenmenge welche übertragen wird, erfordert aber zur Berechnung und Integration der Änderungen mehr Rechenleistung bei beiden Systemen (ab Symcon 7.2) |
| Burst Intervall, wenn Aktionen stattfinden | Falls der Server eine synchronisierte Variable schaltet, so wird kurzzeitig die Synchronisation häufiger durchgeführt, damit die dazugehörigen Änderungen schneller sichtbar werden. Diese Option gibt an wie kurz für diesen Burst das Aktualisierungsintervall ist (ab Symcon 7.2) |
| Anzahl der Burst Aktualisierungen nach einer Aktion | Falls der Server eine synchronisierte Variable schaltet, so gibt diese Option an, wie viele Aktualisierungsanfragen während des Bursts durchgeführt werden (ab Symcon 7.2) |
| Button "Aktualisieren" | Bei Betätigung des Buttons wird sofort eine Synchronisation durchgeführt |
> **Hinweis:** Die Systeme sollten die gleiche Version von Symcon verwenden. Bei einem Upgrade der Systeme ist es empfohlen zuerst den Server und dann den Client zu aktualisieren. Ansonsten kann es zu ungewollten Wechselwirkungen kommen.
---
# Technische Alternative
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/technische-alternative/
Technische Alternative bietet eine Steuerung von verschiedenen Reglern und Anlagenüberwachung. Eine Verbindung zu IP-Symcon wird mithilfe von CMI oder BL-NET hergestellt.
### Beschreibung
IP-Symcon unterstützt, sowohl die BL-NET (UVR1611), als auch die CMI Varianten von der Technischen Alternative.
CMI Installation
BL-NET Installation
### CMI
Die Anbindung an IP-Symcon erfolgt über LAN.
#### Einbindung in IP-Symcon
Nachdem eine passende CMI Instanz erstellt wurde, muss die IP-Adresse des C.M.I. eingetragen werden.
Ebenso muss das Device, Knotennummer und das Intervall angeben werden.
Ist eine Authentifizierung nötig, muss diese in der übergeordnete Instanz des WWW Reader eingetragen werden.
Über "Update" kann die Verbindung getestet werden.
Variablen werden automatisch bei erstmaligen Abfragen erstellt und bei jedem Intervall aktualisiert.
### BL-NET
Die Anbindung an IP-Symcon erfolgt über LAN oder USB mit Hilfe des "BOOTLOADER" (BL-NET).
In jeden Falle muss die DL (Datenleitung) benutzt werden.
> **Achtung:** Das Auslesen über den CAN-Bus ist nicht möglich.
#### Einbindung in IP-Symcon
Nachdem eine Instanz in IP-Symcon erstellt wurde, muss die IP-Adresse des BL-NET angegeben werden. Falls die USB Version genutzt werden soll, muss eine neue übergeordnete Instanz erstellt und bei der Auswahl der SerialPort ausgewählt werden.
Um eine oder mehrere Variablen in der Visualisierung anzeigen zu lassen, muss diesen jeweils ein Profil (z.B. Temperatur) zugeordnet werden um der Visualisierung dadurch erkennbar zu machen, um welche Art von Wert es sich handelt. Da die Regelung und die Eingänge der UVR1611 vom Benutzer definiert werden, kann dies nicht automatisch vom System vorgenommen werden. Mehr Informationen über Variablenprofile kann hier nachgelesen werden: [Variablenprofile](https://www.symcon.de/de/llms/concepts.md)
Sollen __zwei (2)__ UVR1611 angeschlossen werden, so müssen zwei Instanzen erstellt werden. Einmal mit der ID = 1 und einmal mit der ID = 2. Der Timer darf jedoch nur in einer der beiden Instanzen aktiviert werden, da eine Anfrage beide Datenpakete liefert und somit beide Instanzen aktualisiert.
### Tipps & Tricks
Da der BL-NET nicht sehr belastbar ist, sollten so wenig Applikationen wie möglich auf das Gerät zugreifen. Andernfalls kann es zu Ausfällen kommen, in denen der BL-NET nicht erreichbar ist.
Folgende Einträge im Logfile sind normal und kein Fehler:
```php
Client Socket | Socket: Verbinde…. #1
Client Socket | Socket: Verbunden
Client Socket | Socket: Getrennt
```
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/technische-alternative/geraeteliste/
### CMI
| Geräte | Beschreibung |
| --------- | ---------------------------------------------------------------------------------------- |
| CAN-BC2 | Schnittstellengerät für CAN-Bus Geräte |
| CAN-EZ2 | Energiezähler, Wärmemengenzähler |
| CAN-EZ3 | Energiezähler, Wärmemengenzähler |
| CAN-I/O45 | RSM610/UVR16x2 Erweiterungsgerät für weitere Ein-/Ausgänge |
| CAN-MTx2 | RSM610/UVR16x2 Erweiterungsgerät mit 4,3“ Touch-Display, eine Bedien- und Anzeigeeinheit |
| RSM610 | Frei programmierbare Regel- und Schaltmodul. Mögliche Erweiterung von UVR1611/16x2 |
| UVR1611 | Universalregelung |
| UVR16x2 | Frei programmierbare Universalregelung |
| UVR610 | Frei programmierbare Universalregelung |
| UVR65* | Universalregelung |
| UVR67* | Universalregelung |
### BL-NET
| Geräte | Beschreibung |
| ------- | ----------------- |
| UVR1611 | Universalregelung |
---
# Türsprechanlagen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/
_Benötigt Symcon >= 8.0_
> **Hinweis:** Das Türstationen Modul ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz im [Shop](https://www.symcon.de/de/shop/enterprise/ips-extension-doorip/) erworben werden kann. Bei jeder Symcon Lizenz kann das Türstationen Modul kostenlos ausprobiert werden.
### Funktionsumfang
- Unterstützung von Direct SIP und SIP mit Registrierung an PBX
- Gegensprechen mit SIP kompatiblen Türstationen
- Auswahl an Audio/Video, Nur Audio oder Audio mit externem Video (RTSP)
- Video von Türstation oder RTSP zur Visualisierung weiterleiten (Web + App)
- Audio inkl. Gegensprechen von Türstation zur Visualisierung (Web + App) und zurück
- Wird auch über den Connect-Dienst unterstützt
- Unterstützung von mehreren parallel geführten Calls mit unterschiedlichen Türstationen
- Klingelt es, wird ein Dialog angezeigt und es kann angenommen oder abgelehnt werden
- Die Visualisierung kann als Telefon, welches angerufen werden kann, verwenden
- Wenn nur Audio verfügbar ist, kann ein RTSP Stream als externe Videoquelle angeben werden
- Zustand Variablen (Warten, Klingeln, Sprechen)
- Es können Variablen mit einem Wert als Aktion konfiguriert werden
- Benachrichtigungen und Anrufe werden auch bei geöffneten Objekten und in den Einstellungen angezeigt.
- Bei einem Anruf wird ein Klingelton in der Visualisierung abgespielt
- Anrufe werden beim öffnen von Benachrichtigungen angezeigt
### Notwendige technische Parameter
- SIP: Direct SIP oder SIP an mit Registrierung an einer PBX
- Video: H264 (VoIP/SIP oder RTSP als externe Quelle wie bei den Streams)
- Audio: G711 (PCMA, PCMU)
### Einrichtung
- Neue Instanz Namens "Türsprechanlage" erstellen. Diese muss im sichtbaren Bereich der Visualisierung sein, damit der Call korrekt in die Visualisierung geroutet wird.
- Zum Klingeln muss dann z.B. "sip:symcon_12345@192.168.1.5:5060" angerufen werden
- Bei Anmeldung an einer externen PBX werden alle ankommenden Anrufe an die Visualisierung weitergeleitet
### Gerätespezifische Einrichtung
- [2N](https://www.symcon.de/de/llms/modules/door-intercom.md)
- [FANVIL](https://www.symcon.de/de/llms/modules/door-intercom.md)
- [DoorBird](https://www.symcon.de/de/llms/modules/door-intercom.md)
- [FRITZ!Box](https://www.symcon.de/de/llms/modules/door-intercom.md)
#### Konfigurationsseite
| Name | Beschreibung |
| ------------ | ---------------------------------------------------------------------------------------- |
| Aktiv | Schaltet das Module aktiv |
| Modus | Direktes SIP oder SIP mit Registrierung |
| Domain | Nur für SIP mit Registrierung |
| Benutzername | Der Benutzername, der für die Anmeldung genutzt werden |
| AuthID | Nur sichtbar für SIP mit Registrierung |
| Passwort | Password kann für eine weniger sichere Authentifizierung leer gelassen werden |
| Spuren | Audio/Video, Nur Audio, Audio mit externem Video |
| Media Stream | Bei externem Video kann hier ein Stream ausgewählt werden, der beim Anruf angezeigt wird |
| Aktionen | Aktionen können direkt auf dem Anrufbildschirm ausgeführt werden |
### Aktionen
| Feld | Beschreibung |
| ------ | ----------------------------------------------------------------------- |
| Name | Der Text, der auf dem Button in der Visualisierung angezeigt wird |
| Aktion | Die Variable die geschaltet oder die Aktion, die ausgeführt werden soll |
| Wert | Der Wert, auf den eine ausgewählte Variable gesetzt werden soll |
### Statusvariablen
| Name | Typ | Beschreibung |
| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Anrufliste | String | JSON kodierte Liste, der letzten Anrufe, die in der Visualisierung dargestellt werden kann |
| Nicht Stören | Boolean | Wenn aktiv wird bei einem Anruf kein Dialog im Vollbild angezeigt. Über die Kachel kann der Anruf trotzdem noch angenommen werden |
| Türklingel | Integer | Status der Türklingel | (0: Warten, 1: Klingeln, 2: Sprechen ) |
| Verpasste Anrufe | Integer | Anzahl der verpassten Anrufe. Werden mit in der Kachel angezeigt |
### Visualisierung
Die Türsprechanlage verfügt über eine eigene Darstellung in der Visualisierung.
In der Kachel wird eine Liste mit den vergangenen Anrufen angezeigt.

Wenn die Türsprechanlage Instanz angerufen wird, wird ein Dialog angezeigt, um den Anruf anzunehmen oder abzulehnen.

Ist die Verbindung aufgebaut können aus dem Dialog die konfigurierten Aktionen ausgeführt werden.

> **Hinweis:** Intern trägt die Integration der Türstationen den Code-Namen: DoorIP
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/geraeteliste/
### Unterstützte Komponenten
> **Hinweis:** Generell sollten alle Türstationen, die SIP unterstützen integrierbar sein. Wir garantieren die Funktionalität mit den folgenden Komponenten. Der [Support](https://www.symcon.de/de/kontakt/#Türsprechanlagen) unterstützt, sollte die Einrichtung anderer Geräten Schwierigkeiten bereiten.
| System | Beschreibung |
| ------------ | ------------ |
| 2N IP Verso | |
| 2N IP Style | |
| 2N IP One | |
| FANVIL I10SV | |
| DoorBird | |
## 2N
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/2n/
### Einstellungen in der 2N Oberfläche
- Domain: Die IP-Adresse der 2N
- Proxy-Adresse: Die IP-Adresse des Symcon Servers
- Display Name und Phone Number können frei gewählt werden.

- Use sendrecv Attribute for Video: Aktiviert

- Die Codec Einstellungen müssen wie folgt gesetzt werden


- User Phone Numbers → Number 1: BenutzernameVonTürsprechanlage@IPvomSymconServer:5060
- In dem Beispiel: sip:symcon_28735@172.17.31.170
Damit beim Betätigen der Klingel muss der zuvor eingerichtete Benutzer angerufen werden.

## DoorBird
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/doorbird/
### Einstellungen in der Doorbird Oberfläche
- Experteneinstellung → SIP Einstellungen → NUR den SIP Benutzer eintragen. In diesem Fall "symcon_28735"
> **Hinweis:** Es dürfen keine weiteren Settings gesetzt werden, damit Direktes SIP korrekt funktioniert
- Favoriten → SIP Nummern → Hinzufügen → Name SYMCON-Direkt → SIP Adresse: BenutzernameVonTürsprechanlage@IPvomSymconServer. In diesem Fall symcon_28735@172.17.31.170
- Tastenkonfiguration → Einstellungen → Taste → Den "SYMCON-Direkt" Favoriten hinterlegen
- Gibt es den Punkt Tastenkonfiguration nicht befindet sich die Einstellung in Experteneinstellungen → Zeitplan für Türklingel → SIP Anruf
### Einstellungen in der Türsprechanlage Instanz
- Modus: Direktes SIP
- Benutzername: symcon_28735
- Passwort: *leer lassen*
- Spuren: Audio/Video
## FANVIL
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/fanvil/
Die Firmware aktualisieren. Getestet mit 2.12.48.14
### Einstellungen in der Web Oberfläche
Username/Display: Kann frei gewählt werden
Server Address: Die IP-Adresse des Symcon Servers

- Dial Without Registered: Aktiviert

#### Funktion Key Settings
- Type: Memory Key
- Name: Darf frei gewählt werden
- Value: Benutzername in der Türsprechanlage Instanz

## FRITZ!Box
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/fritz-box/
In der Fritzbox angemeldete Telefone können Symcon angerufen. Dabei wird nur die Audio-Übertragung unterstützt.
### Einstellungen in der FRITZ!Box
Es muss ein neues Telefoniegerät mit den folgenden Einstellungen hinzugefügt werden:


Der Benutzername entspricht dem in der Türsprechanlage Instanz.

### Einstellungen in der Türsprechanlage Instanz

## DoorIP_Accept
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/doorip-accept/
`void DoorIP_Accept(int $InstanzID)`
_Benötigt Symcon >= 8.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
**Rückgabewert** (void): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz des zu schaltenden Gerätes
**Beispiel**
```text
DoorIP_Accept(12345);
```
## DoorIP_Decline
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/doorip-decline/
`void DoorIP_Accept(int $InstanzID)`
_Benötigt Symcon >= 8.0_
lehnt den aktuellen Anruf ab.
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
**Rückgabewert** (void): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz des zu schaltenden Gerätes
**Beispiel**
```text
DoorIP_Decline(12345);
```
## DoorIP_SendDTMF
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/tuersprechanlagen/doorip-senddtmf/
`void DoorIP_SendDTMF(int $InstanzID, string $Digits)`
_Benötigt Symcon >= 8.0_
sendet DTMF Zeichen auf die aktuelle Verbindung.
**Parameter**
- `$InstanzID` (int): ID der Instanz des zu schaltenden Gerätes
- `$Digits` (string)
Zeichen, welche als DTMF gesendet werden sollen
> **Hinweis:** Es sind ausschließlich diese Zeichen erlaubt: 0-9, *, #
**Rückgabewert** (void): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeichen, welche als DTMF gesendet werden sollen
> **Hinweis:** Es sind ausschließlich diese Zeichen erlaubt: 0-9, *, #
**Beispiel**
```text
DoorIP_SendDTMF(12345, '*123#');
```
---
# Voice over IP
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/
Das VoIP Modul kann Telefonverbindungen aufbauen/entgegennehmen, DTMF Signale verarbeiten, Verbindungsgebundene Daten buffern und Sounds abspielen.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> __[Unterstützte Geräte](https://www.symcon.de/de/llms/modules/voip.md) __
### Voraussetzungen
Es wird ein aktives Portal zur Telefonie benötigt. Dies kann eine Fritzbox oder ein Dienst wie Sipgate sein.
### Einbindung in IP-Symcon
Zur Einbindung kann via Objekt hinzufügen im Objektbaum ein "VoIP" Gerät hinzugefügt werden.
In der Instanzkonfiguration müssen Domain und Benutzername zum Telefonservice angegeben werden.
Falls benötigt müssen noch AuthID und Passwort eingetragen werden.
> **Hinweis:** Wenn der Rechner mehrere Netzwerkkarten oder -interfaces hat (z.B. auch virtuelle Adapter wie VPN, Docker, Hyper-V) kann es erforderlich sein die IP-Adresse über die die VoIP Verbindung aufgebaut wird zu definieren. Dazu gibt es den passenden [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) "VoIPInterface"

Um zu verwalten was bei einer aktiven Verbindung passieren soll, muss ein Abarbeitungsskript hinzugefügt werden.
### Abarbeitungsskript
Das Abarbeitungsskript bestimmt das Verhalten bei jeder eingehenden Verbindung. Dazu sind auch die [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) wichtig.
### Beispiele
#### Skript für eingehende Anrufe (Abarbeitungsskript)
```php
if($_IPS['SENDER'] == "VoIP") {
// Wir wollen nur eingehende Anrufe verarbeiten
// $_IPS["INSTANCE"] ist ab IP-Symcon 5.4 verfügbar
if(VoIP_GetConnection($_IPS["INSTANCE"], $_IPS["CONNECTION"])["Direction"] == 1 /* Ausgehend */) {
return;
}
switch($_IPS["EVENT"]) {
case "Incoming":
IPS_LogMessage("VoIP", "Ein eingehender Anruf");
break;
case "Connect":
IPS_LogMessage("VoIP", "Es wurde eine Verbindung aufgebaut");
break;
case "Disconnect":
IPS_LogMessage("VoIP", "Es wurde eine Verbindung beendet");
break;
case "DTMF":
IPS_LogMessage("VoIP", "Es wurde ein DTMF Signal empfangen");
switch($_IPS["DATA"]) {
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
IPS_LogMessage("VoIP", "Es wurde eine der Tasten 1 bis 6 gedrückt");
break;
case '#':
IPS_LogMessage("VoIP", "Es wurde die Taste # gedrückt");
break;
default:
IPS_LogMessage("VoIP", "Es wurde die Taste ". $_IPS["DATA"] ." gedrückt");
break;
}
break;
case "PlayFinish":
IPS_LogMessage("VoIP", "Es wurde eine Sounddatei abgespielt");
break;
default:
IPS_LogMessage("VoIP", "Ein unbekanntes Event wurde ausgelöst");
break;
}
}
```
#### Skript für ausgehende Anrufe mit TTS-Module "AWS Polly" aus dem Module Store
```php
if($_IPS['SENDER'] == "Execute") {
$id = VoIP_Connect(12345, "0451305005xx");
//Maximal 10 Sekunden warten, dass einer abnimmt
for($i = 0; $i < 10; $i++) {
IPS_Sleep(1000);
$c = VoIP_GetConnection(12345, $id);
if($c['Connected']) {
// VoIP_Playwave() unterstützt ausschließlich WAV im Format: 16 Bit, 8000 Hz, Mono.
VoIP_PlayWave(12345, $id, TTSAWSPOLLY_GenerateFile(23456, "IP-Symcon wünscht einen wunderbaren Tag"));
return;
}
}
//Auflegen, falls keiner abnimmt
VoIP_Disconnect(12345, $id);
}
```
### Beispieleinrichtung in der FritzBox
Mithilfe der FritzBox kann das VoIP-Modul genutzt werden. Hierzu ist eine seperate freie Telefonnummer in der FritzBox empfohlen und folgende Schritte sind zu beachten.
> **Hinweis:** Gegebenfalls muss unter "Telefonie" -> "Eigene Rufnummer" -> "Neue Rufnummer" eine neue Rufnummer eingerichtet werden
Als erster Schritt muss in der FritzBox unter "Telefonie" -> "Telefoniegeräte" ein neues Telefoniegerät hinzugefügt werden.
Dieses muss als neues "Telefon" hinzugefügt werden.

Da IP-Symcon als IP-Telefon fungiert, muss dieses und anschließend eine seperate Telefonnummer ausgewählt werden. Es sollte ein sprechender Name für das Telefoniegerät gewählt werden.

Anschließend müssen ein Benutzername und Passwort festegelegt werden, diese werden später in das VoIP in IP-Symcon eingetragen.

Das einzurichtende Telefoniegerät muss bestätigt und dessen Einrichtung im Anschluss abgeschlossen werden.


Nun kann das Telefoniegerät in IP-Symcon innerhalb des VoIP Modul übernommen werden.
Wenn alles geklappt hat wird der Status "Registrierung war erfolgreich" angezeigt.

Mit eingerichtetem [Abarbeitungsskript](https://www.symcon.de/de/llms/modules/voip.md) kann ein Testanruf getätigt werden. In den [Meldungen](https://www.symcon.de/de/llms/components/management-console.md) sollten folgende Nachrichten beim Drücken von Zifferntasten auf dem Telefon ersichtlich werden.

## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/geraeteliste/
### Unterstützte Komponenten
Ein Auszug unterstützter Komponenten.
* Fritzbox
* Sipgate
> **Hinweis:** Dies sind nur die getesteten Geräte. Es können auch weitere Geräte funktionieren.
## VoIP_AcceptCall
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-acceptcall/
`bool VoIP_AcceptCall(int $InstanzID, int $VerbindungsID)`
_Benötigt Symcon >= 5.4_
akzeptiert eine Verbindung
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu schaltenden Verbindung
**Beispiel**
```php
// Akzeptiert die Verbindung mit der ID 3 der Instanz mit der ID 12345
VoIP_AcceptCall(12345, 3);
```
## VoIP_Connect
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-connect/
`int VoIP_Connect(int $InstanzID, string $Nummer)`
_Benötigt Symcon >= 5.2_
baut eine Verbindung auf
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Nummer` (string): Telefonnummer mit der eine Verbindung aufgebaut werden soll
**Rückgabewert** (int): Gibt die ID der Verbindung zurück
Telefonnummer mit der eine Verbindung aufgebaut werden soll
**Beispiel**
```php
// Baut eine Verbindung mit der Telefonnummer 0451305005xx auf
VoIP_Connect(12345, "0451305005xx");
```
## VoIP_Disconnect
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-disconnect/
`bool VoIP_Disconnect(int $InstanzID, int $VerbindungsID)`
_Benötigt Symcon >= 5.2_
beendet eine Verbindung
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu schaltenden Verbindung
**Beispiel**
```php
// Trennt die Verbindung mit der ID 3 der Instanz mit der ID 12345
VoIP_Disconnect(12345, 3);
```
## VoIP_GetConnection
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-getconnection/
`array VoIP_GetConnection(int $InstanzID, int $VerbindungsID)`
_Benötigt Symcon >= 5.2_
gibt Informationen zu einer Verbindung wieder
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
**Rückgabewert** (array): Array mit folgenden Informationen
| Feld | Datentyp | Beschreibung |
| ------------ | -------- | ------------------------------------------------------------ |
| ID | integer | VerbindungsID |
| TimeStamp | integer | Zeitstemmpel des Anrufs |
| Number | string | Nummer mit der eine Verbindung aufgebaut wurde |
| Direction | integer | Anrufrichtung: 0 = Eingehender Anruf, 1 = Ausgehender Anruf |
| Connected | boolean | Verbindungsstatus: FALSE = nicht Verbunden, TRUE = Verbunden |
| Disconnected | boolean | Trennungssstatus: FALSE = nicht Getrennt, TRUE = Getrennt |
ID der zu schaltenden Verbindung
**Beispiel**
```php
// Gibt Informationen der Verbindung mit der ID 3 wieder.
print_r(VoIP_GetConnection(12345, 3));
//Beispielausgabe
/*
Array
(
[ID] => 3
[TimeStamp] => 1566915689
[Number] => 045130500511
[Data] =>
[Direction] => 1
[Connected] => 1
[Disconnected] =>
)
*/
```
## VoIP_GetData
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-getdata/
`string VoIP_GetData(int $InstanzID, int $VerbindungsID)`
_Benötigt Symcon >= 5.2_
gibt Daten einer Verbindung zurück
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
**Rückgabewert** (string): Inhalt der Daten der Verbindung als String
ID der zu schaltenden Verbindung
**Beispiel**
```php
// Gibt den Inhalt der Daten der Verbindung mit der ID 3 zurück.
VoIP_SetData(12345, 3, "Hallo Welt");
print_r(VoIP_GetData(12345, 3));
//Beispielausgabe
/*
Hallo Welt
*/
```
## VoIP_PlayWave
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-playwave/
`bool VoIP_PlayWave(int $InstanzID, int $VerbindungsID, string $Dateiname)`
_Benötigt Symcon >= 5.2_
spielt eine Wavedatei ab
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
- `$Dateiname` (string): Pfad und Name der Datei, welche abgespielt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Pfad und Name der Datei, welche abgespielt werden soll
**Beispiel**
```php
// Spielt auf der Verbindung mit der ID 3 die Sounddatei "willkommen.wav" ab
VoIP_PlayWave(12345, 3, IPS_GetKernelDir() . "/media/willkommen.wav");
```
## VoIP_RejectCall
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-rejectcall/
`bool VoIP_RejectCall(int $InstanzID, int $VerbindungsID)`
_Benötigt Symcon >= 5.4_
lehnt eine Verbindung ab
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der zu schaltenden Verbindung
**Beispiel**
```php
// Lehnt die Verbindung mit der ID 3 der Instanz mit der ID 12345 ab
VoIP_RejectCall(12345, 3);
```
## VoIP_SendDTMF
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-senddtmf/
`bool VoIP_SendDTMF(int $InstanzID, int $VerbindungsID, string $DTMF)`
_Benötigt Symcon >= 5.3_
sendet eine Abfolge von Zeichen als DTMF
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
- `$DTMF` (string): Zeichen, welche als DTMF gesendet werden sollen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeichen, welche als DTMF gesendet werden sollen
**Beispiel**
```php
// Sendet auf der Verbindung mit der ID 3 die DTMF Signale für "*123#"
VoIP_SendDTMF(12345, 3, "*123#");
```
## VoIP_SetData
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/voip/voip-setdata/
`bool VoIP_SetData(int $InstanzID, int $VerbindungsID, string $Daten)`
_Benötigt Symcon >= 5.2_
setzt die Daten einer Verbindung
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$VerbindungsID` (int): ID der zu schaltenden Verbindung
- `$Daten` (string): Daten, für die Verbindung gesetzt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Daten, für die Verbindung gesetzt werden soll
**Beispiel**
```php
// Setzt den Inhalt der Daten der Verbindung mit der ID 3 auf "Hallo Welt"
VoIP_SetData(12345, 3, "Hallo Welt");
```
---
# Weishaupt
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/weishaupt/
_Benötigt Symcon >= 7.0_
Weishaupt bietet verschiedene Wärmepumpen an. Über ModBus TCP können diese ausgelesen werden. Eine Verbindung mit Symcon ist über ein MobBus Gateway von Weishaupt möglich.
> **Hinweis:** [Liste der unterstützten Komponenten](https://www.symcon.de/de/llms/modules/weishaupt.md)
### Installation
Um Weishaupt Wärmepumpen in Symcon nutzen zu können, muss eine Verbindung via Ethernet oder W-LAN zur Wärmepumpe vorhanden sein.
### Einbindung Symcon
Zuerst muss eine "ModBus Gerät" Instanz innerhalb des Objektbaums von Symcon hinzugefügt werden. Im folgenden Dialog muss die IP-Adresse der Wärmepumpe eingetragen werden. Der Port ist standardmäßig 502. Beide Informationen können auf der Weboberfläche der Wärmepumpe eingesehen werden.


Im Anschluss kann die ModBus Vorlage für Weishaupt Wärmepumpen [heruntergeladen](https://www.symcon.de/de/llms/modules/weishaupt.md) werden. Diese beinhaltet die ganze Konfiguration des ModBus Geräts. Nach dem Herunterladen, kann die "WeishauptModBusx_vx.json" über "Importieren" geladen werden. Anschließend sind alle ModBus Adressen der gängigen Weishaupt Wärmempumpe eingerichtet.
> **Hinweis:** Vorlagen in der [Geräteübersicht](https://www.symcon.de/de/llms/modules/weishaupt.md)

### Hinzufügen von Adressen
Sollen weitere Adressen hinzugefügt werden, kann dies über "Hinzufügen" realisiert werden.
Je nach Ausführung der Wallbox kann es sein, dass einzelne Adressen de-/aktiviert werden müssen. Dies kann über die Aktiv Spalte gesteuert werden.
### Protokollbeschreibung
> **Hinweis:** Protokollbeschreibung in der [Geräteübersicht](https://www.symcon.de/de/llms/modules/weishaupt.md)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/weishaupt/geraeteliste/
_Benötigt Symcon >= 7.0_
### Unterstützte Gateways
| Produkt | Beschreibung |
| ---------------- | --------------------------- |
| Modbus TCP (WWP) | IP Gateway für ModBus TCP |
### Unterstützte Geräte
[Protokollbeschreibung](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/weishaupt/geraeteliste/2ce580e739-1790424938/modbus_tcp_wwp_3259_d_11_20225.pdf) aller Datenpunkte.
| Produkt | Beschreibung | ModBus Vorlage |
| ---------------- | ---------------------- | ----------------------------------------- |
| Aeroblock (WAB) | Luft/Wasser Wärmepumpe | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/weishaupt/geraeteliste/52ea62c57c-1790424938/weishaupt-wem.json) |
| Biblock (WBB) | Luft/Wasser Wärmepumpe | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/weishaupt/geraeteliste/52ea62c57c-1790424938/weishaupt-wem.json) |
| Splitblock (WSB) | Luft/Wasser Wärmepumpe | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/weishaupt/geraeteliste/52ea62c57c-1790424938/weishaupt-wem.json) |
| Geoblock (WGB) | Sole/Wasser Wärmepumpe | [Download](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/weishaupt/geraeteliste/52ea62c57c-1790424938/weishaupt-wem.json) |
---
# WinLIRC
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/winlirc/
Mit Hilfe von Infrarotsignalen lassen sich existierende Audio und Video Geräte in die Hausautomation einbinden. Außerdem können z.B. Licht-Szenarien über die Infrarotfernbedienung aktiviert oder die Rollläden herunter gelassen werden. Dazu ist nur eine Sende- und Empfangsdiode notwendig – je nach Wunsch als Fertiggerät oder zum Basteln…
Wissenswertes über WinLIRC:
[http://winlirc.sourceforge.net](https://winlirc.sourceforge.net)
Für alle, die gern mal wieder zum Lötkolben greifen wollen, finden sich hier weitere Informationen:
[https://www.lirc.org/receivers.html](https://www.lirc.org/receivers.html)
[https://www.lirc.org/transmitters.html](https://www.lirc.org/transmitters.html)
### Installation
Um IR-Signale über IP-Symcon empfangen/senden zu können, wird ein LIRC kompatibles Gerät benötigt.
* WinLIRC Applikation muss installiert und gestartet sein
* Download: [winlirc.sourceforge.net/de/](https://winlirc.sourceforge.net/de/)
* Fernbedienung/Tasten müssen in der WinLIRC Applikation angelernt sein
* WinLIRC Modul in IP-Symcon anlegen.
* Host: localhost
* Port: 8765
### Einbindung in IP-Symcon
Das WinLIRC Modul stellt sich folgendermaßen im Objektbaum dar:

Eine erfolgreiche Installation ist an dem geöffnetem Socket zu erkennen.

Um IR-Befehle von IP-Symcon auszugeben, wird die WinLIRC_SendOnce-Funktion verwendet.
```php
$id = 18076 /*[Media IR\WinLIRC]*/;
// ZDF einschalten
WinLIRC_SendOnce($id, "humax", "power");
IPS_Sleep(1000);
WinLIRC_SendOnce($id, "humax", "power");
IPS_Sleep(200);
WinLIRC_SendOnce($id, "sat", "power");
// hier können noch Befehle zur Beleuchtung stehen ...
```
## WinLIRC_SendOnce
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/winlirc/winlirc-sendonce/
`bool WinLIRC_SendOnce(int $InstanzID, string $Fernbedienung, string $Knopf)`
sendet einmalig einen Fernbedienungsbefehl
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Fernbedienung` (string): Name der Fernbedienung, der in der Fernbedienungsdatenbank eingetragen ist/wurde.
- `$Knopf` (string): Name der Fernbedienungsfunktion, die in der Fernbedienungsdatenbank eingetragen ist/wurde.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name der Fernbedienungsfunktion, die in der Fernbedienungsdatenbank eingetragen ist/wurde.
**Beispiel**
```php
WinLIRC_SendOnce(37279,"soundmaster", "power");
```
---
# Wireless M-Bus
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/wireless-m-bus/
Wireless M-Bus ist ein von der OMS Group standartisiertes Protokoll zur Verbrauchsdatenerfassung. Zur Verbindung mit IP-Symcon wird ein LAN-, seriell- oder USB-Gateway benötigt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/wireless-m-bus.md)
### Installation
Das __Wireless M-Bus LAN Gateway__ wird per LAN mit dem PC verbunden. Standardmäßig ist DHCP und Port 5000 eingerichtet. Sollte eine individuelle IP Adresse gefordert sein, so wird das IP-Symcon "Network Configuration Tool" benötigt. Dieses steht zum [Download](https://support.symcon.de/lan-gct) bereit. Eine einfache [Beschreibung zur Konfiguration des Gateways](https://www.symcon.de/assets/files/service/NetworkConfigurationTool.pdf) steht zur Verfügung. Im Anschluss ist das Gateway über die eingerichtete IP-Adresse und Port erreichbar.
### Einbindung in IP-Symcon
Das LAN-Gateway kann über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "Wireless M-Bus Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines Wireless M-Bus [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, werden alle empfangenen Geräte gezeigt, welche eingebunden werden.
### Konfigurator
Der Konfigurator zeigt alle empfangenen Geräte an den öffentlichen Informationen an. In den jeweiligen Spalten werden Informationen wie Hersteller, Geräteart, Verschlüsselung und das letzte Empfangsdatum angezeigt. In der Spalte Daten können die empfangenen Rohdaten angesehen werden, um diese ggf. dem Symcon Support zukommen zu lassen.

Neue Instanzen werden im Objektbaum in der Hauptkategorie erstellt. Diese erstellten Instanzen können dann entsprechend umbenannt und an anderer Stelle einsortiert werden. Auch besteht die Möglichkeit via "Konfigurieren" im Konfigurator die jeweilige Instanzkonfiguration aufzurufen.
### Konfiguration
Auf der Konfigurationsseite des Gerätes kann der Geräteschlüssel eingegeben werden. Dieser muss aus 32 Zeichen bestehen und darf nur Großbuchstaben/Zahlen ohne Leerzeichen enthalten. Alternativ können auch Schlüssellisten in der Wireless M-Bus Gateway Instanz importiert werden, welche dann von der Instanz direkt genutzt werden.
### Konfiguration
In der Wireless M-Bus Gateway Instanz können Schlüssellisten importiert werden, sodass dieser schneller und automatisierter dem Symcon System zur Verfügung stehen. Dabei werden folgende Formate unterstützt:
```
012345678;00000000000000000000000000000000 (Adresse;Schlüssel)
012345678;TESTTEST;00000000000000000000000000000000 (Beliebige weitere Spalten)
SOX;012345678;00000000000000000000000000000000 (Beliebige weitere Spalten)
012345678;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (Leerzeichen dürfen beliebig im Schlüssel vorkommen)
012345678,00000000000000000000000000000000 (Komma und Semikolon sind als Trennzeichen erlaubt)
0SOX012345678;00000000000000000000000000000000 (Adresse im DIN Format)
```
Eine Unterstützung für das OMS SecProfile A Format ist in Planung.
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/wireless-m-bus/geraeteliste/
### Unterstützte Gateways
Folgende Wireless M-Bus Gateways sind kompatibel:
| Hersteller | Beschreibung |
| ------------------------------------------------------------------------------------------- | -------------------------------------------- |
| SymBox mit Wireless M-Bus Erweiterung [Jetzt bestellen](https://www.symcon.de/de/produkt/symbox/) | Seriell integriertes Modul |
| Wireless M-Bus LAN Gateway [Jetzt bestellen](https://www.symcon.de/de/shop/gateways/) | IP Gateway |
| Würth Elektronik 2605056083001 | METIS I, USB, AMB8465-M, integrierte Antenne |
| Würth Elektronik 2607056283001 | METIS II, USB, AMB8665-M, externe Antenne |
| IMST iU891A-XL | Neues Modell mit externer Antenne |
| IMST iM871-A | Altes Modell |
| WEPTECH SWAN2 | Über HTTP/HTTPS |
| WEPTECH SWAN3 | Über HTTP/HTTPS |
### Unterstützte Komponenten
IP-Symcon unterstützt die folgenden Verschlüsselungsmodi nach DIN EN 13757-7
- Mode 0 (Keine Verschlüsselung)
- Mode 5 (OMS)
- Mode 7 (BSI)
IP-Symcon unterstützt die folgenden Verschlüsselungsmodi nach DIN EN 13757-4
- AES-128-CTR
IP-Symcon unterstützt das Frame-Format A/B und als Empfangsmodus C/T. Zusätzlich werden die etwas spezielleren Compact Frames, welche die Kamstrup Geräte oft verwenden, unterstützt.
---
# WMRS200
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/wrms200/
WMRS200 ist ein Wetterstationsystem und nutzt funkbasierende Sensorkomponenten. Eine Verbindung mit IP-Symcon ist über ein USB-Gateway möglich.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
>
> [Unterstützte Komponenten](https://www.symcon.de/de/llms/modules/wmrs200.md)
### Installation
Voraussetzung für den Betrieb mit IP-Symcon ist ein korrekt angeschlossener USB-Kommunikationshub.
### Einbindung in IP-Symcon
Im Objektbaum kann über das "+" -> "Instanz hinzufügen" oder über Rechtsklick -> "Objekt hinzufügen" -> Instanz im erscheinenden Dialog nach WMRS gesucht werden. Es stehen die einzelnen Geräte zur Auswahl.
Gateway und I/O Instanzen werden automatisch erstellt und es muss einzig der richtige USB Anschluss im Gateway, der Gerätetyp in der Instanz ausgewählt und die passende Geräte-ID eingtragen werden. Über die "Suchen" Funktion innerhalb der Instanzkonfiguration kann die Geräte-ID eingetragen werden.
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/wrms200/geraeteliste/
### Unterstützte Gateways
| Gateway | Hersteller | Anschlussart | Beschreibung |
| --------------------- | ----------------- | ------------- | ---------------------------------------------- |
| USB Kommunikationshub | Oregon Scientific | Seriell / USB | USB-Schnittstelle aus Bundle der Wetterstation |
### Unterstützte Komponenten
| Komponente | Hersteller | Anschlussart | Beschreibung |
| ----------------------------- | ----------------- | ------------ | ------------------------------------------------------- |
| Windsensor | Oregon Scientific | Funk | Aus Bundle der Wetterstation |
| Regensensor | Oregon Scientific | Funk | Aus Bundle der Wetterstation |
| Luftdrucksensor | Oregon Scientific | Funk | Aus Bundle der Wetterstation |
| Temperatur / Luftfeuchtigkeit | Oregon Scientific | Funk | Aus Bundle der Wetterstation |
| THGR800 | Oregon Scientific | Funk | Thermo-Hygro (3-Kanal) - Temperatur / Luftfeuchtigkeit |
| THGR810 | Oregon Scientific | Funk | Thermo-Hygro (10-Kanal) - Temperatur / Luftfeuchtigkeit |
| UVN800 | Oregon Scientific | Funk | Pyranometer - Remote-UV-Sensor |
---
# W&T
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/wut/
Über eine TCP/IP-Ethernet 10/100BaseT Schnittstelle erlauben die W&T Web-IO Digital Boxen den Zugriff über eine Vielzahl von Protokollen und Anwendungen.
### Installation
Voraussetzung für den Betrieb mit IP-Symcon ist ein korrekt angeschlossenes Web-IO und ein DHCP-Server. (Der DHCP-Server übernimmt automatisch die Adressvergabe für die Netzwerkteilnehmer)
Erste Konfigurationsmöglichkeiten und Einstellmöglichkeiten (z.B. Neuvergabe der IP-Adresse) ist mithilfe der __Wutility-Software__ möglich. Steht diese nicht zur Verfügung, so kann diese unter [www.wut.de](https://www.wut.de) heruntergeladen werden. Nach der Installation der Software kann das Web-IO erkannt und genutzt werden.
> **Hinweis:** Sofern kein DHCP Server zur Verfügung steht, kann die IP Adresse auch mit der Wutility-Software konfiguriert werden

Im Browser kann die Konfigurations-Webpage des Web-IOs durch Eingabe der IP aufgerufen werden. Hier sind erste Einstellungen, vor allem zu Testzwecken, möglich.
### Einbindung in IP-Symcon

Es muss in IP-Symcon aus Counter, Input und Ouput, eine dem angeschlossenen Geräten entsprechende Funktion, ausgewählt werden. Wenn mehrere Kanäle des Gerätes eingebunden werden sollen, so kann der Schritt der Anleitung beliebig oft wiederholt werden. Nun muss zweimal auf “Weiter” und einmal auf “OK” geklickt werden. Es öffnet sich beispielsweise die Konfiguration des “WuT Outputs“. Hier sind Einstellungen zum Kanal des Gerätes möglich. Die genaue Belegung der Kanäle kann der Anleitung des W&T Gerätes entnommen werden.
Anschließend muss die IP-Adresse des Web-IOs auf der Konfigurationsseite eingetragen werden. Diese kann durch Klicken auf das Zahnrad (unten links) geöffnet werden.

> **Hinweis:** Ein Passwort ist optional. Die Werkseinstellung beinhaltet kein Passwort.
Der Timer muss aktiviert sein, damit IP-Symcon innerhalb einer manuell eingegebenen Zeit neue Daten vom Web-IO erhält und eine Veränderung sichtbar wird.
(Die beschriebene Konfiguration des Wut Gateways ist nur bei erstmaliger Installation nötig. Beim Hinzufügen weiterer Geräte kann dieser Schritt übersprungen werden.)
## WUT_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/wut/wut-switchmode/
`bool WUT_SwitchMode(int $InstanzID, bool $Status)`
schaltet einen Kanal An/Aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
WUT_SwitchMode(12345, true); //Kanal einschalten
```
---
# XBee
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xbee/
XBee ist ein auf dem ZigBee Funkstandard basierendes Modul. Es ermöglicht als Funkbrücke für eigentlich festverdrahtete Systeme zu dienen.
### Installation
Zur Verbindung mit IP-Symcon wird ein XBee-Coordinator(Gateway) benötigt, der via Seriell oder Seriell-USB angeschlossen ist.
### Einbindung in IP-Symcon
Das XBee-Gateway(Coordinator) wird via Serial Port an IP-Symcon eingebunden.
Zu jedem End-Gerät muss eine XBee Splitter Instanz erstellt werden. Diese beinhaltet lediglich die Geräte ID zur Kommunikation innerhalb von XBee.
Für die End-Geräte-Gateways dienen die XBee-Splitter Instanzen als Ersatz übergeordnete Instanz. (Siehe ["Beispiel Objektbaum"](https://www.symcon.de/de/llms/modules/xbee.md) )
### Beispiel
#### Datenfluss
Zum besseren Verständnis kann man hier die abstrakte Darstellung des Datenflusses sehen.

#### Beispiel Objektbaum
In diesem Beispiel sind an einem Coordinator ein Z-Wave Gateway und eine Register Variable angeschlossen.
XBee kümmert sich mithilfe der GeräteID darum, dass sowohl die Daten von der Register Variable im dazugehörigen Skript als [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) zur Verfügung gestellt werden, als auch die Z-Wave Geräte Daten via Z-Wave Gateway (übergeordnete Instanz: XBee Splitter Z-Wave)aktualisiert werden.

Daraus ergibt sich in diesem Beispiel folgende Topologie:
```php
Serial Port -> XBee Gateway -> XBee Splitter Z-Wave -> Z-Wave Gateway -> Z-Wave Dimmer
|
-> XBee Splitter RegVar -> Register Variable -> RegVarSkript (Systemvariable)
```
## XBee_SendBuffer
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xbee/xbee-sendbuffer/
`bool XBee_SendBuffer(int $InstanzID, int $ZielGerät, string $Buffer)`
sendet einen Datenstring an ein bestimmtes Gerät
**Parameter**
- `$InstanzID` (int): ID des abzufragenden Geräts
- `$ZielGerät` (int): ID des ZielGeräts
- `$Buffer` (string): Datenbuffer der versendet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Datenbuffer der versendet werden soll
**Beispiel**
```php
XBee_SendBuffer(12345, 2, "Beliebiger DatenString");
```
## XBee_SendCommand
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xbee/xbee-sendcommand/
`bool XBee_SendCommand(int $InstanzID, string $Befehl)`
sendet einen Befehl an einen bestimmten XBee-Splitter
**Parameter**
- `$InstanzID` (int): ID des zu verändernden Geräts
- `$Befehl` (string): Befehl der gesendet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Befehl der gesendet werden soll
**Beispiel**
```php
XBee_SendCommand(12345, "Beliebiger CommandString");
```
---
# xComfort
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/
Eaton xComfort ist ein bidirektionales funkbasierendes System. Um eine Einrichtung in Symcon zu ermöglichen wird die Konfigurationsdatei der Installation oder die Programmierschnittstelle (CRSZ-00/01) benötigt. Die Verbindung zu Symcon wird mit der Kommunikationsschnittstelle CKOZ-00/03 oder einem Eaton USB- bzw. LAN-Gateway hergestellt.
> **Hinweis:** Folgende Geräte werden von Symcon unterstützt:
>
> [Unterstützte Geräte](https://www.symcon.de/de/llms/modules/xcomfort.md)
### Installation
Zur Anbindung an Symcon nutzt Eaton (ehemals Moeller) die __xComfort Kommunikations-Schnittstelle (CKOZ-00/03)__.
Zur Programmierung des Systems im Eaton Komfort-Modus wird die Eaton __xComfort Programmier-Schnittstelle (CRSZ-00/01)__ genutzt.
Alternativ ist auch der Anschluss eines Eaton USB-Gateways oder eines LAN-Gateways zur Anbindung an Symcon möglich.
Durch das Eaton xComfort Funksystem lässt sich die Überwachung von Fenstern, Klima- und Beleuchtungsanlagen sowie viele andere Gebäudefunktionen automatisiert steuern. Das System lässt sich nachträglich installieren, ohne dass neue Leitungen verlegt werden müssen. Es handelt sich dabei um ein bidirektionales System, d.h. alle Sensoren und Aktoren (Schalter) können untereinander kommunizieren, da sie je eine Sende- und eine Empfangseinheit enthalten.
### Video-Tutorial zur Einrichtung
[Video](https://www.youtube.com/embed/VC8fYf9LB-g?rel=0&cc_load_policy=1)
### Anschluss
Um das Eaton Xcomfort System mit Symcon verbinden zu können, wird ein entsprechendes Gateway benötigt. In diesem Beispiel ist dies die Kommunikations-Schnittstelle CKOZ-00/03. Die Programmier-Schnittstelle CRZ-00/01 für den Comfort-Modus ist nicht dazu geeignet, wird aber ebenfalls benötigt, da diese zur Programmierung des Systems im Komfort-Modus von Eaton gebraucht wird.
> **Achtung:** Bei Benutzung des RS232-Anschlusses ist zu beachten, dass zusätzlich Strom über den USB-Port zugeführt werden muss. Dies ist über einen passenden Adapter (230V->USB) möglich.
Die Programmier-Schnittstelle CRZ-00/01 kann ebenfalls über die USB-Schnittstelle (optionales Kabel: RS232->USB) oder über den RS232-Anschluss angeschlossen werden.
### Installation
Nach dem korrekten Anschluss des/der Geräts/-e, muss "Systemsteuerung -> Hardware und Sounds -> Geräte und Drucker" geöffnet werden. Dort muss nach "Prolific USB-to-Serial Comm Port" geguckt werden. In der Klammer dahinter kann der genutzte Port (z.B.: COM4) gefunden werden, dieser sollte notiert oder gemerkt werden.
Es muss die [Eaton Firmware / MRF Software](https://www.eaton.com/content/dam/eaton/products/residential/xcomfort/software/setup-mrf-de.exe) heruntergeladen und installiert werden. Nach dem Start der Software muss auf “Bearbeiten -> Optionen” geklickt, der korrekte Port (z.B. COM4) ausgewählt und die passenden Optionen aktiviert werden.

Im oberen Reiter kann nun auf “Gateway -> Einlesen” geklickt werden. Das System kann nun im Komfort-Modus programmiert werden.
### Hinzufügen sekundärer Geräte
Mit der Eaton Firmware können nun sekundäre Geräte der Firma Eaton (z.B. Zwischenstecker, Raumcontroller, Fernbedienung, usw.) in das System eingebunden werden.
Dies kann im oberen Reiter via “Aktionen -> 2x Einlesen” getan werden.
Jetzt wird zuerst nach den netzversorgten Geräten gesucht. Ggf. muss man sich zum Scannen in die Nähe der sekundären Geräte begeben, falls sich diese nicht im unmittelbaren Empfangsbereich befinden.

Wenn alle netzversorgten Geräte eingelesen worden sind, muss auf "Weiter zu den batterieversorgten Geräten" geklickt werden. Es müssen nun die batterieversorgten Geräte betätigt werden, damit eine Verbindung zum Gateway hergestellt werden kann. Nachdem dies geschehen ist, muss auf "Beenden" geklickt werden. Jetzt wird eine Passworteingabe verlangt. Es sollte als __Passwort "0000"__ eingegeben und bestätigt werden.
Im oberen Reiter "Aktionen" sollte danach auf "Empfangsqualität einlesen..." und dann nochmals auf “Einlesen” geklickt werden.
> **Hinweis:** Sollten noch Geräte mit Fragezeichen angezeigt werden, aber alle sekundären Geräte bereits einem anderen Symbol zugeordnet sein, so können diese gelöscht werden. Dies kann via rechter Maustaste auf das zu löschende Symbol und dann mit der linken auf "Entfernen" getan werden. Der folgende Dialog muss mit "Ja" und dann "Nein" bestätigt werden.
> Auch Umbenennungen sind mit einem Klick auf die rechte Maustaste und danach auf "Umbenennen" möglich.
Nun werden die Geräte in der Eaton Firmware angezeigt. Jetzt muss auf das Bleistift-Symbol geklickt und die Geräte via virtuellem Bleistift mit dem Gateway verbunden werden. Danach muss unter "Aktionen" auf "Änderungen laden" geklickt werden.
Damit Symcon später weiß, was beispielsweise auf Datenpunkt 1 oder auf Datenpunkt 2 ist, muss mit der rechten Maustaste auf das Gateway und nachfolgend mit der linken auf "Datenpunktliste erstellen" geklickt werden. Diese muss gespeichert werden. Zum Abschluss muss das gesamte Projekt gespeichert werden. Die Eaton Firmware wird nicht weiter benötigt.

### Einbindung in Symcon
In der Verwaltungskonsole kann im Objektbaum über "Objekt hinzufügen -> Instanz" ein "xComfort Konfigurator" erstellt werden. Nach Wahl des Modus passend zum verwendeten Gateway, wird die Verbindung zum Gateway konfiguriert.
Hier muss je nach Modus die IP-Adresse eingegeben, der Comport ausgewählt oder das passende USB-Gerät ausgewählt werden sowie der I/O aktiviert werden. Schließlich wird der Dialog noch bestätigt und der Konfigurator öffnet sich. Über die Dateiauswahl "Datenpunktliste" wird anschließend die zuvor gespeicherte Datenpunktlisten hochgeladen und nachdem die Änderungen übernommen wurden, können die Geräte erstellt werden.
> **Hinweis:** Für den Empfang von routingfähigen Rückmeldungen, muss die Datenpunktliste im Konfigurator geladen worden sein. Nur so ist eine Seriennummerzuweisung zu einer Datenpunktnummer möglich.


### Tipps & Tricks
* Neue Versionen der Firmware/MRF Software kann hier heruntergeladen werden:
[Eaton Downloads](https://www.eaton.com/content/dam/eaton/products/residential/xcomfort/software/setup-mrf-de.exe)
* Das Gateway ist mit allen gängigen USB->LAN Umwandlern kompatibel (z.B. von Silex, Lantronix).
* Statusvariablen werden vom Eaton Xcomfort System nicht geroutet. Das bedeutet, dass das Gateway an einem Ort positioniert sein muss, dass alle relevanten Geräte in Reichweite sind.
* Es können in Symcon mehrere Gateways gleichzeitig verwendet und über Skripte auch Befehle weitergeleitet werden. So ist es üblich, pro Etage ein Gateway zu platzieren.
* Erst ab der RF Version __9.2__ (ca. Juli/2008) werden die auf der Protokollebene versendeten "Acknowledges" vom USB-Gateway ausgewertet. In den vorherigen Versionen ist im System nicht erkennbar, ob ein Befehl erfolgreich an ein Gerät übermittelt worden ist. Die RF Version ist ein Hardware-Upgrade und darf nicht mit der FW Version verwechselt werden, die per Software aktualisiert werden kann. (Betrifft nur PC-Manager CKOZ-00/03)
* Das neue Thermostat benötigt ein ECI LAN Gateway oder ein USB-Gateway mit mindestens Firmware 2.6 und RF Version 9.2. Falls das Gerät zu alt sein sollte, kann im Meldungsfenster folgende Fehlermeldungen auftreten: "Invalid RF-firmware revision"
* Der Port für die ClientSocket-Konfiguration vom ECI ist 7153
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/geraeteliste/
### Unterstützte Schnittstellen
| Produkt | Beschreibung |
| ---------- | ------------------------------------------- |
| CCIA-01/01 | Eaton ECI WLAN Interface |
| CCIA-02/01 | Eaton ECI LAN Interface |
| CCIA-03/01 | Eaton ECI LAN Interface Power over Ethernet |
| CKOZ-00/03 | Kommunikationsschnittstelle (USB/RS232) |
| CKOZ-00/11 | Kommunikationsschnittstelle (USB/RS232) |
| CKOZ-00/14 | USB Kommunikations-Stick |
### Unterstützte Komponenten
| Produkt | Beschreibung |
| -------------------------- | ---------------------------------------- |
| CAAE* | Analogaktor |
| CAEE* | Analogeingang |
| CBEU* | Binäreingang |
| CBMA* | Bewegungsmelder |
| CDAE* | Dimmaktor |
| CDAE* | Schaltaktor |
| CDAP* | Schalt-/Dimmaktor |
| CDAU* | Dimmaktor |
| CDWA*(ab Version 5.4) | Fenster-/Türkontakt |
| CEMU* | Energiemesssensor |
| CHAP* | Heizungsaktor |
| CHAU* | Heizungsaktor |
| CHAZ* | Heizungsaktor für Elektropanele |
| CHAZ* | Heizungsaktor 12-fach |
| CHSZ* | Fernbedienungen |
| CHVZ* | Heizkörperventil |
| CIZE* | Impulszähleingang |
| CJAU* | Jalousieaktor |
| CJAE* | Jalousieaktor Stecktyp |
| CRCA* | Raumcontroller |
| CRMA* | Room-Manager |
| CROU* | Router |
| CSAE* | Schaltaktor |
| CSAP* | Schaltaktor |
| CSAU* | Schaltaktor |
| CSEZ* | Fensterkontakt (über Binäreingang) |
| CSEZ* | Feuchtesensor (über Analogeingang) |
| CSEZ* | Helligkeitssensor (über Analogeingang) |
| CSEZ* | Luftqualitätssensor (über Analogeingang) |
| CSEZ* | Präsenzmelder (über Binäreingang) |
| CSEZ* | Rauchmelder (über Binäreingang) |
| CSEZ* | Temperatursensor |
| CSEZ* | Wasser Leckagensensor (über Binärsensor) |
| CSGZ* | Signalgeber (über Schaltaktor) |
| CTAA* | Taster |
| CTEU* | Temperatureingang |
## MXC_DimBrighter
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-dimbrighter/
`bool MXC_DimBrighter(int $InstanzID)`
fängt einen Dimmvorgang auf eine hellere Stufe an
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_DimBrigther(12345); //Heller dimmen
IPS_Sleep(1000): //1sek warten
MXC_DimStop(12345);
```
## MXC_DimDarker
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-dimdarker/
`bool MXC_DimDarker(int $InstanzID)`
fängt einen Dimmvorgang auf eine dunklere Stufe an
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_DimDarker(12345); //Dunkler dimmen
IPS_Sleep(1000);
MXC_DimStop(12345);
```
## MXC_DimSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-dimset/
`bool MXC_DimSet(int $InstanzID, int $Intensität)`
dimmt ein xComfort Gerät auf eine bestimmte Stufe
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): Wert von 0-100 (in %)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert von 0-100 (in %)
**Beispiel**
```php
MXC_DimSet(12345, 50); //Auf 50% dimmen
```
## MXC_DimStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-dimstop/
`bool MXC_DimStop(int $InstanzID)`
hält einen Dimmvorgang an
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_DimStop(12345, true); //Gerät einschalten
```
## MXC_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-requeststatus/
`bool MXC_RequestStatus(int $InstanzID)`
sende eine Statusmeldungsanfrage an ein Gerät
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
MXC_RequestStatus(12345); //Statusmeldung anfordern
```
## MXC_SendBoolean
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-sendboolean/
`bool MXC_SendBoolean(int $InstanzID, bool $Wert)`
sendet einen Boolean-Wert an den Room-Mananger
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (bool): True für An, False für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
True für An, False für Aus
**Beispiel**
```php
MXC_SendBoolean(12345, true);
```
## MXC_SendFloat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-sendfloat/
`bool MXC_SendFloat(int $InstanzID, float $Wert)`
sendet einen Float-Wert an den Room-Mananger
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (float): Zahlenwert mit Nachkommastelle
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zahlenwert mit Nachkommastelle
**Beispiel**
```php
MXC_SendFloat(12345, 35.34); //35.34 als Wert senden
```
## MXC_SendInteger
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-sendinteger/
`bool MXC_SendInteger(int $InstanzID, int $Wert)`
sendet einen Integer-Wert an den Room-Mananger
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Wert` (int): Zahlenwert ohne Nachkommastellen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zahlenwert ohne Nachkommastellen
**Beispiel**
```php
MXC_SendInteger(12345, 40); //Wert 40 senden
```
## MXC_SetTemperature
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-settemperature/
`bool MXC_SetTemperature(int $InstanzID, float $Temperatur)`
sendet einen Sollwert an den Stellantrieb
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Temperatur` (float): Temperatur in °C
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Temperatur in °C
**Beispiel**
```php
MXC_SetTemperature(12345, 21.5); //Auf 21.5°C stellen
```
## MXC_ShutterMoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-shuttermovedown/
`bool MXC_ShutterMoveDown(int $InstanzID)`
bewegt den Rollladen nach unten bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_ShutterMoveDown(12345); //Nach unten bewegen
```
## MXC_ShutterMoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-shuttermoveup/
`bool MXC_ShutterMoveUp(int $InstanzID)`
bewegt den Rollladen nach oben bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_ShutterMoveUp(12345); //Nach oben bewegen
```
## MXC_ShutterStepDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-shutterstepdown/
`bool MXC_ShutterStepDown(int $InstanzID)`
bewegt den Rollladen ein Stück nach unten
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_ShutterStepDown(12345); //Einen Schritt nach unten bewegen
```
## MXC_ShutterStepUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-shutterstepup/
`bool MXC_ShutterStepUp(int $InstanzID)`
bewegt den Rollladen ein Stück nach oben
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_ShutterStepUp(12345); //Einen Schritt nach unten bewegen
```
## MXC_ShutterStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-shutterstop/
`bool MXC_ShutterStop(int $InstanzID)`
stoppt einen Bewegungsvorgang
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
MXC_ShutterStop(12345); //Anhalten
```
## MXC_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/xcomfort/mxc-switchmode/
`bool MXC_SwitchMode(int $InstanzID, bool $Status)`
schaltet ein xComfort Gerät an/aus
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
MXC_SwitchMode(12345, true); //Gerät einschalten
```
---
# Z-Wave
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/
Z-Wave ist ein funkgebundenes System, welches von mehreren Herstellern genutzt wird. Zur Verbindung mit IP-Symcon wird entweder ein [LAN oder USB Gateway](https://www.symcon.de/de/llms/modules/z-wave.md) benötigt.
> **Hinweis:** Folgende Geräte werden von IP-Symcon unterstützt:
> [__Unterstützte Geräte__](https://www.symcon.de/de/llms/modules/z-wave.md)
### Einbindung in IP-Symcon
Bei Verwendung des LAN-Gateways kann dies über die [Gerätesuche](https://www.symcon.de/de/llms/components/management-console.md) eingebunden werden. Hierfür muss als System "Z-Wave Discovery" gewählt werden. Die Discovery-Instanz bietet dann die Erstellung eines Z-Wave [Konfigurators](https://www.symcon.de/de/llms/concepts.md) an. Nachdem der Konfigurator erstellt wurde, können dort die einzelnen Geräte wie unten beschrieben eingebunden werden.
Soll ein Z-Wave Konfigurator manuell erstellt werden kann im "Instanz hinzufügen" Dialog nach "Z-Wave Configurator" gesucht werden.
Nach der Einrichtung eines Z-Wave Konfigurators ist der nächste Schritt das Anlernen von Geräten.
> **Achtung:** Es ist darauf zu achten, dass das [passende Gateway](https://www.symcon.de/de/llms/modules/z-wave.md) ausgewählt, der passende Client Socket (Standard-Port: 5000) oder Serial Port eingerichtet und konfiguriert ist.
Dies geschieht innerhalb des Konfigurators durch die "Gerät hinzufügen"-Taste und anschließend mindestens drei Mal schnell hintereinander drücken der Anlerntaste des Geräts.
IP-Symcon findet automatisch das Gerät und zeigt diese Grün in der Liste an.
Wenn dieses ausgewählt und der "Erstellen"-Button gedrückt wird, erstellt IP-Symcon eine Instanz des Gerätes, welches dann konfiguriert werden kann.
Das Konfigurationsfenster der Instanz lässt sich per "Konfigurieren" im Z-Wave Konfigurator oder im Objektbaum per Doppelklick auf die Instanz aufrufen.
Die Eigenschaften ([Command-Klassen siehe Geräteliste](https://www.symcon.de/de/llms/modules/z-wave.md) ) des Geräts lassen sich nach dem "Laden" unter "Zeigen" anzeigen. Statusvariablen werden automatisch hinzugefügt und können im Objektbaum überprüft werden.
> **Hinweis:** Um IP-Symcon den Zugriff auf bestimmte Funktionen (z.B. Z-Wave Gerätedatenbank) von Außerhalb zu gewähren ist es gegebenenfalls nötig diese in der Firewall einzurichten. Weitere Informationen können unter [Firewall](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.
### Video-Tutorial zur Einrichtung[Video](https://www.youtube.com/embed/7jFMxEpCGxU?rel=0&cc_load_policy=1)
### Spezialgeräte – Einrichtung
[Link zum Forenbeitrag](https://community.symcon.de/t/einrichtung-und-beschreibung-von-z-wave-geraeten/19688)
## Geräteliste
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/geraeteliste/
### Unterstützte Gateways
| Produkt | Beschreibung |
| ------------------------------------------------------------------------------------------------------------------ | ----------------------------------- |
| Symcon Z-Wave-Plus LAN Gateway | [Produktinformation](https://www.symcon.de/assets/files/product/z-wave-lan-gateway.pdf) | IP Gateway |
| 300ZW-US-W | TrickleStar USB Stick |
| AEO_USB | USB Stick von Aeon Labs |
| ZW090 | USB Z-Stick von Aeotec |
| RaZberry | Z-Wave Transceiver für Rasperrry PI |
| VIS_ZU1401 | Vision USB Stick |
| ZME_Serial | Serieller Adapterplatte |
| ZME_UZB1 | USB-Stick |
| ZME_ZSTICKC | Z-Wave.Me USB Stick |
### Geräte
Alle aufgelisteten Command-Klassen werden von IP-Symcon unterstützt. Zusätzlich bieten wir eine Liste mit Geräten, welche von uns oder unseren Kunden erfolgreich getestet wurden.
Auf [Anfrage](https://www.symcon.de/de/kontakt/) überprüfen wir gerne weitere, nicht aufgelistete, Geräte auf ihre Kompatibilität.
### Unterstützte Command-Klassen
Jedes Z-Wave-Gerät besitzt verschiedene Command-Klassen. Diese Klassen geben an, welche Funktionen von dem jeweiligen Gerät unterstützt werden. In IP-Symcon stehen alle Funktionen mit den folgenden gelisteten Command-Klassen zur Verfügung.
| Command Class | Class Version | IP-Symcon Version |
| -------------------------- | ------------- | ---------------------------- |
| ALARM | ------------- | Abgelöst durch NOTIFICATION |
| ASSOCIATION | 2 | |
| ASSOCIATION_GRP_INFO | 2 | ab 5.1 |
| BASIC | 2 | |
| BASIC_WINDOW_COVERING | 1 | |
| BATTERY | 1 | |
| CENTRAL_SCENE | 1 | ab 4.1 |
| CLOCK | 1 | |
| COLOR | 1 | ab 4.1 |
| CONFIGURATION | 1 | |
| CRC_16 | 1 | |
| DOOR_LOCK | 2 | ab 4.1 |
| LOCK | 2 | |
| MANUFACTURER_SPECIFIC | 2 | |
| METER | 5 | |
| MULTI_CHANNEL | 4 | |
| MULTI_CHANNEL_ASSOCIATION | 3 | ab 5.1 |
| MULTI_CMD | 1 | |
| MULTI_INSTANCE | ------------- | Abgelöst durch MULTI_CHANNEL |
| NOTIFICATION | 8 | ab 4.3 |
| PROTECTION | 2 | |
| SCENE_ACTIVATION | 1 | ab 4.1 |
| SECURITY | 1 | ab 4.1 |
| SENSOR_ALARM | 1 | |
| SENSOR_BINARY | 2 | |
| SENSOR_MULTILEVEL | 11 | |
| SWITCH_ALL | 1 | ab 4.1 |
| SWITCH_BINARY | 2 | |
| SWITCH_MULTILEVEL | 4 | |
| SWITCH_SHUTTER | 1 | |
| THERMOSTAT_FAN_MODE | 1 | |
| THERMOSTAT_FAN_STATE | 1 | |
| THERMOSTAT_MODE | 1 | |
| THERMOSTAT_OPERATING_STATE | 1 | |
| THERMOSTAT_SETPOINT | 1 | |
| TIME | 2 | ab 4.1 |
| USER_CODE | 1 | ab 4.1 |
| Unknown | 1 | |
| VERSION | 2 | |
| WAKE_UP | 2 | |
| ZWAVEPLUS_INFO | 2 | ab 5.1 |
### Getestete Komponenten
nach Alphabet sortiert
#### ACT
| Produkt | Beschreibung |
| ------- | -------------------------------- |
| ZRM230 | Wall Switch/Transmitter (2-gang) |
| ZTM230 | RF Wall Transmitter (2-gang) |
#### Aeon Labs
| Produkt | Beschreibung |
| -------------- | ------------------------- |
| AEO_DSC20-EU | Door/Window Sensor |
| AEO_DSB54 | Recessed Door Sensor |
| AEO_DSD31 | Siren |
| AEO_EXTENDER | Extender |
| AEO-HEM2, HEM3 | Clamp Meter 40 |
| AEO_KFOB | Key Fob |
| AEO-MEI | Micro Dimmer |
| AEO-MES | Micro Switch |
| AEO-MSEI | Micro Smart Energy Dimmer |
| AEO-MSES | Micro Smart Energy Switch |
| AEO_MULTISENS | Multisensor |
| AEO-SES3 | Smart Energy Switch 3 |
| AEO_ZW088 | Key Fob Gen 5 |
| AEO_ZW089 | recessed Doorsensor |
| DSD31 | Outlet Plugable Siren |
#### AeoTec
| Produkt | Beschreibung |
| ------- | -------------------------------------------- |
| ZW078 | Heavy Duty Smart Switch |
| ZW080 | Siren 5 |
| ZW095 | Home Energy Meter |
| ZW096 | Smart Switch 6 |
| ZW100 | MultiSensor 6 |
| ZW111 | Nano Dimmer |
| ZW112 | Door/Window Sensor 6 |
| ZW116 | Nano Switch with Power Metering |
| ZW117 | Range Extender 6 |
| ZW120 | Door/Window Sensor Gen5 with Tamper Sensor |
| ZW121 | LED Strip |
| ZW122 | Water Sensor 6 |
| ZW129 | WallMote |
| ZW130 | WallMote Quad |
| ZW132 | Dual Nano Switch with Power Metering |
| ZW139 | Nano Switch |
| ZW140 | Dual Nano Switch |
| ZW141 | Nano Shutter |
| ZW158 | WallSwipe |
| ZW160 | Water Sensor 6 Dock |
| ZW162 | Doorbell 6 |
| ZW166 | Button |
| ZW164 | Siren 6 |
| ZW175 | Smart Switch 7 |
| ZW189 | Range Extender 7 |
| ZWA001 | LED Bulb 6 Multi-White |
| ZWA002 | LED Bulb 6 Multi-Colour |
| ZWA003 | NanoMote Quad |
| ZWA004 | NanoMote One |
| ZWA005 | TriSensor |
| ZWA006 | Smart Boost Timer Switch |
| ZWA008 | Door/Window Sensor 7 |
#### Danfoss
| Produkt | Beschreibung |
| ----------------------- | ------------------------- |
| DAN_LC-13 (014G0013) | Thermostat Radiator Valve |
| DAN_LIVC_RAK (014G0012) | Thermostat Radiator Valve |
#### Everspring
| Produkt | Beschreibung |
| --------- | ----------------------------- |
| EVR_AD142 | Dimmer Plug |
| EVR_AN145 | Screw-In Lamp Holder |
| EVR_AN157 | On/Off Plug |
| EVR_AN158 | On/Off Plug with power meter |
| EVR_HSM02 | Door/Window Detector |
| EVR_HSP02 | Motion Detector |
| EVR_SE812 | Siren |
| EVR_SF812 | Smoke Detector with Alarm |
| EVR_SP103 | Motion Sensor |
| EVR_SP814 | Motion Detector |
| EVR_ST812 | Flood Sensor |
| EVR_ST814 | Temperature & Humidity Sensor |
#### Fibaro
| Produkt | Beschreibung |
| ---------------------------------- | ----------------------- |
| FGBS-001 | Universal Binary Sensor |
| FGD-211 | Universal Dimmer |
| FGFS-101 | Flood Sensor |
| FGK 101-107 Door/Window Sensor 2.5 | Door/Window Sensor |
| FGK-001 | Door/Window Sensor |
| FGMS-001 | Motion Sensor |
| FGRGB-101 | RGBW Controller |
| FGRGBWM-441 | RGBW Controller |
| FGRM-222 | Roller Shutter 2 |
| FGS-211 | 1x3KW Relay |
| FGS-221 | 2x1.5KW Relay |
| FGSS-001 | Smoke Sensor |
| FGSS-101 | Smoke Sensor |
| FGWPE/F-101 | Wall Plug |
#### NorthQ
| Produkt | Beschreibung |
| ----------------------------- | ---------------------------------------- |
| Energy Guard Electrical Meter | Meter (unvollständige Unterstützung) |
| Energy Guard Gas Meter | Gas Meter (unvollständige Unterstützung) |
#### Philio
| Produkt | Beschreibung |
| --------------------------- | -------------------------------------------------------------- |
| In Wall Dual Relay (1 Way) | 230VAC powered static controller with binary switch capability |
| In Wall Dual Relay(1 Way) | In-wall switch module |
| In Wall Dual Relay(1 Way) | In-wall dual relay switch module |
| In Wall Single Relay(1 way) | In-wall switch module |
| PAN04 | 2 x 1.5Kw Relay with Power Measurement |
| PAN06 | 2 x 1.5Kw Relay |
| PAN08 | In-Wall Roller Shutter Controller |
| PAN11-1 | Plugin Switch with meter functionality PAN11-1 |
| PAT02-1A | Flood multisensor (flood, temperature and humidity) |
| PSE02 | Wireless multiple sound siren |
| PSG01 | Smoke Sensor |
| PSM01 | 3-in-1 Sensor (Door, Light, Temp) |
| PSM02 | 4-in-1 Sensor (PIR, Door, Light, Temp) |
| PSM02-1 | PIR, door/window, temperature and illumination Sensor |
| PSP01 | 3-in-1 Sensor (PIR, Light, Temp) |
| PSR03 | Remote |
| PST02 | Slim Multisensor |
#### Polycontrol
| Produkt | Beschreibung |
| --------------- | ---------------- |
| Danalock Circle | Z-Wave Door Lock |
| Danalock Square | Z-Wave Door Lock |
#### Popp
| Produkt | Beschreibung |
| ------------- | ------------------------------ |
| POP_004308 | Smoke Detector and Temp Sensor |
| POP_123610 | Plug-in Switch |
| POP_123658 | Plug-in Switch with Meter |
| POP_123665-58 | Wall Plug Switch/Meter |
| POP_123xxx | On/Off Plug |
| POP_123xxx | Dimmer Plug |
#### Vision
| Produkt | Beschreibung |
| ----------------- | ------------------------------------------------------------- |
| PIR Sensor | PIR Motion Sensor |
| Plugin ON/OFF | Light Relay |
| Power Monitor | Power Monitor |
| VIS_ZD2102EU 2013 | Door Window Sensor with external digital input |
| VIS_ZD3102EU 2013 | Motion detector with Temperature sensor and temper protection |
| VIS_ZG8101 | Garage Door Detector |
| VIS_ZL7432 | In-Wall Dual Relay Switch |
| VIS_ZM1601 | Siren (Battery) |
| VIS_ZM1602 | Siren (Mains) |
| VIS_ZS5102 | Shock & Vibration Sensor |
| VIS_ZS6101 | Smoke Detector |
| VIS_ZS6301 | CO Detector |
#### Zipato
| Produkt | Beschreibung |
| ----------------------- | ---------------------------------- |
| Mini Keypad RFID/Z-Wave | Mini Keypad mit RFID Unterstützung |
| RGBW bulb | RGBW Bulb |
#### Z-Wave.ME
| Produkt | Beschreibung |
| ----------------------- | ------------------------------------------------------------ |
| Mini-Fernbedienung KFOB | Mini-Fernbedienung 4 Tasten Z-Wave KFOB, Version 2 Z-WAVE.ME |
#### Sonstige
| Hersteller | Produkt | Beschreibung |
| --------------- | -------- | -------------------------------------------------- |
| Express Control | EZMotion | Motion detector, luminosity and temperature sensor |
> **Achtung:** Es folgen die zur Zeit definitiv nicht unterstützten Geräte
### Nicht unterstützte Komponenten
nach Alphabet sortiert
#### Merten
| Produkt | Beschreibung |
| ------- | -------------------------------------------------------------------------------------------- |
| Alle | Fast alle Merten Produkte können nicht über den normalen Z-Wave Standard angesprochen werden |
## ZW_Basic
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-basic/
`bool ZW_Basic(int $InstanzID, int $Wert)`
bient ein Gerät über die Basisfunktion
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Wert` (int): 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..255
**Beispiel**
```php
ZW_Basic(12345, 255); //z.B. Anschalten
```
## ZW_ColorCW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-colorcw/
`bool ZW_ColorCW(int $InstanzID, int $KaltWeiß)`
_Benötigt Symcon >= 5.4_
setzt den KaltWeiß Kanal eines RGBWW Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$KaltWeiß` (int): KaltWeiß Intensität von 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
KaltWeiß Intensität von 0..255
**Beispiel**
```php
// KaltWeiß auf 50% setzen
ZW_ColorCW(12345, 128);
```
## ZW_ColorRGB
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-colorrgb/
`bool ZW_ColorRGB(int $InstanzID, int $Rot, int $Grün, int $Blau)`
_Benötigt Symcon >= 5.4_
setzt die Farbe eines Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Rot` (int): Rot Intensität von 0..255
- `$Grün` (int): Grün Intensität von 0..255
- `$Blau` (int): Blau Intensität von 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Blau Intensität von 0..255
**Beispiel**
```php
// Dunkles Rot setzen
ZW_ColorRGB(12345, 255, 0, 0);
```
## ZW_ColorRGBWW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-colorrgbww/
`bool ZW_ColorRGBWW(int $InstanzID, int $Rot, int $Grün, int $Blau, int $WarmWeiß, int $KaltWeiß)`
_Benötigt Symcon >= 4.1_
setzt die Farben und Intensität eines RGBWW Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Rot` (int): Rot Intensität von 0..255
- `$Grün` (int): Grün Intensität von 0..255
- `$Blau` (int): Blau Intensität von 0..255
- `$WarmWeiß` (int): WarmWeiß Intensität von 0..255
- `$KaltWeiß` (int): KaltWeiß Intensität von 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
KaltWeiß Intensität von 0..255
**Beispiel**
```php
// Dunkles Rot setzen
ZW_ColorRGBWW(12345, 255, 0, 0, 0, 50);
// Warmweiß setzen
ZW_ColorRGBWW(12345, 0, 0, 0, 255, 0);
```
## ZW_ColorWW
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-colorww/
`bool ZW_ColorWW(int $InstanzID, int $WarmWeiß)`
_Benötigt Symcon >= 4.1_
setzt den WarmWeiß Kanal eines Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$WarmWeiß` (int): WarmWeiß Intensität von 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
WarmWeiß Intensität von 0..255
**Beispiel**
```php
// WarmWeiß auf 50% setzen
ZW_ColorWW(12345, 128);
```
## ZW_DimDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimdown/
`bool ZW_DimDown(int $InstanzID)`
beginnt ein Runterdimmen
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
//Das Gerät mit der ID 12345 beginnt runterzudimmen
ZW_DimDown(12345);
```
## ZW_DimDownEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimdownex/
`bool ZW_DimDownEx(int $InstanzID, int $Duration)`
beginnt mit einer Laufzeit Runterzudimmen
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Duration` (int): Laufzeit bis komplett heruntergedimmt wird (0..255) (Siehe Tabelle)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Laufzeit bis komplett heruntergedimmt wird (0..255) (Siehe Tabelle)
**Beispiel**
```php
//Das Gerät mit der ID 12345 beginnt über eine Laufzeit von 10 Minuten runterzudimmen
ZW_DimDownEx(12345, 138);
//Das Gerät mit der ID 12345 beginnt über eine Laufzeit von 5 Sekunden runterzudimmen
ZW_DimDownEx(12345, 5);
```
## ZW_DimSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimset/
`bool ZW_DimSet(int $InstanzID, int $Intensität)`
dimmt ein Z-Wave Gerät auf eine bestimmte Stufe
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): Wert von 0-100 (in %)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert von 0-100 (in %)
**Beispiel**
```php
ZW_DimSet(12345, 50); //Auf 50% dimmen
```
## ZW_DimSetEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimsetex/
`bool ZW_DimSetEx(int $InstanzID, int $Intensität, int $Duration)`
dimmt ein Z-Wave Gerät in einer Laufzeit auf eine bestimmte Stufe
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Intensität` (int): Wert von 0-100 (in %)
- `$Duration` (int): Laufzeit bis die Intensität erreicht wird (0..255) (Siehe Tabelle)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Laufzeit bis die Intensität erreicht wird (0..255) (Siehe Tabelle)
**Beispiel**
```php
//Dimmt das Gerät mit der ID 12345 in 10 Minuten auf 50%
ZW_DimSetEx(12345, 50, 138);
//Dimmt das Gerät mit der ID 12345 in 5 Sekunden auf 30%
ZW_DimSetEx(12345, 30, 5);
```
## ZW_DimStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimstop/
`bool ZW_DimStop(int $InstanzID)`
stoppt die Dimmung eines Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
ZW_DimStop(12345);
```
## ZW_DimUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimup/
`bool ZW_DimUp(int $InstanzID)`
beginnt ein Hochdimmen
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
//Das Gerät mit der ID 12345 beginnt hochzudimmen
ZW_DimUp(12345);
```
## ZW_DimUpEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-dimupex/
`bool ZW_DimUpEx(int $InstanzID, int $Duration)`
beginnt mit einer Laufzeit Hochzudimmen
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Duration` (int): Laufzeit bis komplett hochgedimmt wird (0..255) (Siehe Tabelle)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Laufzeit bis komplett hochgedimmt wird (0..255) (Siehe Tabelle)
**Beispiel**
```php
//Das Gerät mit der ID 12345 beginnt über eine Laufzeit von 10 Minuten hochzudimmen
ZW_DimUpEx(12345, 138);
//Das Gerät mit der ID 12345 beginnt über eine Laufzeit von 5 Sekunden hochzudimmen
ZW_DimUpEx(12345, 5);
```
## ZW_DoorLockOperation
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-doorlockoperation/
`bool ZW_DoorLockOperation(int $InstanzID, int $Modus)`
_Benötigt Symcon >= 4.1_
Setzt den Door Lock Operation Modus eines Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Modus` (int): Modus auf den das Z-Wave Gerät eingestellt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Modus auf den das Z-Wave Gerät eingestellt werden soll
**Beispiel**
```php
//z.B. Schaltet den Door Lock Operation Mode auf Ungesichert mit Timeout
ZW_DoorLockOperation(12345,1);
```
## ZW_LockMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-lockmode/
`bool ZW_LockMode(int $InstanzID, int $Wert)`
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Wert` (int): 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..255
**Beispiel**
```php
ZW_LockMode(12345, 0);
```
## ZW_MeterReset
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-meterreset/
`bool ZW_MeterReset(int $InstanzID)`
resetet das Meter
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
ZW_MeterReset(12345);
```
## ZW_Optimize
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-optimize/
`bool ZW_Optimize(int $InstanzID)`
_Benötigt Symcon >= 4.1_
Startet den Optimierugnsprozess des Funknetzwerks für ein Z-Wave Gerät
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
ZW_Optimize(12345);
```
## ZW_ProtectionSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-protectionset/
`bool ZW_ProtectionSet(int $InstanzID, int $Mode)`
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Mode` (int): 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..255
**Beispiel**
```php
ZW_ProtectionSet(12345, 1);
```
## ZW_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-requeststatus/
`bool ZW_RequestStatus(int $InstanzID)`
sende eine Statusmeldungsanfrage an ein Gerät
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
ZW_RequestStatus(12345);
```
## ZW_ShutterMoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-shuttermovedown/
`bool ZW_ShutterMoveDown(int $InstanzID)`
bewegt den Rollladen nach unten bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
ZW_ShutterMoveDown(12345); //Nach unten bewegen
```
## ZW_ShutterMoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-shuttermoveup/
`bool ZW_ShutterMoveUp(int $InstanzID)`
bewegt den Rollladen nach oben bis zur Endposition/Stop
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
ZW_ShutterMoveUp(12345); //Nach oben bewegen
```
## ZW_ShutterStop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-shutterstop/
`bool ZW_ShutterStop(int $InstanzID)`
stoppt einen Bewegungsvorgang
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
ZW_ShutterStop(12345); //Anhalten
```
## ZW_SwitchAllMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-switchallmode/
`bool ZW_SwitchAllMode(int $InstanzID, int $Modus)`
_Benötigt Symcon >= 4.1_
Setzt den Switch All Modus eines Z-Wave Geräts
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Modus` (int): Modus auf den das Z-Wave Gerät eingestellt werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Modus auf den das Z-Wave Gerät eingestellt werden soll
**Beispiel**
```php
//Modus wird auf Only On gesetzt
ZW_SwitchAllMode(12345, 2);
```
## ZW_SwitchMode
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-switchmode/
`bool ZW_SwitchMode(int $InstanzID, bool $Status)`
schaltet ein Z-Wave Gerät an/aus
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Status` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
ZW_SwitchMode(12345, true); //Gerät einschalten
```
## ZW_Test
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-test/
`bool ZW_Test(int $InstanzID)`
_Benötigt Symcon >= 4.1_
Testet ob eine Verbindung zu einem Z-Wave Gerät funktioniert
**Parameter**
- `$InstanzID` (int): ID des Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Geräts
**Beispiel**
```php
ZW_Test(12345);
```
## ZW_ThermostatFanModeSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-thermostatfanmodeset/
`bool ZW_ThermostatFanModeSet(int $InstanzID, int $FanMode)`
Setzt den FanMode für Thermostat
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$FanMode` (int): 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..255
**Beispiel**
```php
ZW_ThermostatFanModeSet(12345,1); //z.B. Schaltet den FanMode auf OnLow
```
## ZW_ThermostatModeSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-thermostatmodeset/
`bool ZW_ThermostatModeSet(int $InstanzID, int $Mode)`
Setzt den Thermostat Mode
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$Mode` (int): 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..255
**Beispiel**
```php
ZW_ThermostatModeSet(12345, 1); //z.B. Setzt den Mode auf Heat
```
## ZW_ThermostatSetPointSet
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/z-wave/zw-thermostatsetpointset/
`bool ZW_ThermostatSetPointSet(int $InstanzID, int $SetPoint, float $Value)`
Setzt den PointSet Value
**Parameter**
- `$InstanzID` (int): ID des Geräts
- `$SetPoint` (int): 0..255
- `$Value` (float): 0..255
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0..255
**Beispiel**
```php
ZW_ThermostatSetPointSet(12345, 1, 20); //z.B. Anschalten
```
---
# Zevvy
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/zevvy/
_Benötigt Symcon >= 7.0_
Dieses Module schickt die Daten ausgewählter Variablen zu einem Zevvy Konto, welche dann und unter "Einstellungen" -> "Geräteliste" mit der ID der Variable auftaucht.
### Funktionsumfang
- Verschicken der Werte
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Zevvy'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
Bevor die Variablen eingerichtet werden können, muss auf den Registrieren-Button geklickt werden. Im Browser öffnet sich nun ein neuer Tab im Browser mit der Anmeldungsmaske von Zevvy.

Nach Eingabe der Anmeldedaten wird bei Erfolg folgender Dialog angezeigt.

Nun kann zu IP-Symcon zurückgekehrt werden. In der Zevvy Instanz sollte nun ein Token vorhanden sein.
__Konfigurationsseite__:
| Name | Beschreibung |
| ---------------- | ------------------------------------------------------------- |
| Geräte Liste | Liste mit den Variablen IDs, welche verschickt werden sollen. |
| Intervall | Intervall fürs automatische verschicken der Daten |
| Übermittle Daten | Button, welcher die Daten manuell verschickt |
| Registrierung | Verknüpft den Zevvy Account mittels OAuth mit IP-Symcon |
## ZY_SendMeasurements
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/geraete/zevvy/zy-sendmeasurements/
`bool ZY_SendMeasurements(int $InstanzID)`
_Benötigt Symcon >= 7.0_
**Parameter**
- `$InstanzID` (int): Id der Zevvy Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Id der Zevvy Instanz
**Beispiel**
```php
ZY_SendMeasurements(12345);
```
---
# Aktivliste
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/aktivliste/
_Benötigt Symcon >= 5.0_
Die Aktivliste zeigt alle aktiven Variablen in der Visualisierung an und bietet die Möglichkeit diese simultan auszuschalten.
Hierzu müssen sie zuvor der Liste auf der Konfigurationsseite hinzugefügt wurden.
### Funktionsumfang
- Zeigt alle aktiven Variablen in der Visualisierung an und erlaubt das Ausschalten dieser.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Aktivliste installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Aktivliste'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/)
#### Konfigurationsseite
| Name | Beschreibung |
| ---------------------- | ------------------------------------------------------------ |
| Aktion zum Ausschalten | Erstellt eine Aktion zum simultanen Auschalten der Variablen |
| Variablen | Eine Liste mit Variablen, deren Status überprüft wird. |
Variablen gelten als aktiv, wenn ...
- der Wert einer Integer oder Float Variable größer als der Minimalwert ist. Sollte die Variable ein .Reversed Profil haben gilt sie als aktiv, wenn der Wert kleiner als der Maximalwert ist.
- der Wert einer Boolean Variable true ist. Sollte die Variable ein .Reversed Profil haben ist false der aktive Zustand.
- der Wert einer String Variable nicht leer ist.
###
Dementsprechend gelten Variablen als inaktiv, wenn ...
- der Wert einer Integer oder Float Variable der Minimalwert ist. Sollte die Variable ein .Reversed Profil haben gilt sie als inaktiv, wenn der Wert der Maximalwert ist.
- der Wert einer Boolean false ist. Sollte die Variable ein .Reversed Profil haben ist true der inaktive Zustand.
- der Wert einer String Variable leer ist.
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----------- | ------ | --------------------------------------------- |
| Ausschalten | Skript | Schaltet alle noch aktiven Variablen inaktiv. |
### Visualisierung
In der Visualisierung werden alle aktiven Variablen angezeigt. Mit einem Klick auf "Ausschalten" werden alle angezeigten Variablen auf inaktiv geschaltet.
## AL_SwitchOff
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/aktivliste/al-switchoff/
`bool AL_SwitchOff(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```text
AL_SwitchOff(12345);
```
---
# Anwesenheits-Simulation
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/anwesenheitssimulation/
_Benötigt Symcon >= 5.0_
Simuliert die Anwesenheit von Personen im Haushalt. Das Modul bezieht dafür zufällig die Tagesdaten von einem der letzten 4 identischen Wochentagen. Sind an keinem dieser 4 Tage genug Schaltvorgänge geloggt, wird zufällig einer der letzten 30 Tage gewählt.
Ist auch innerhalb dieser 30 Tage kein gültiger Tagesdatensatz vorhanden, ist keine Simulation möglich. Sollte keine Simulation möglich sein, wird dies als Nachricht in der Stringvariable "Simulationsquelle (Tag)" angezeigt.
### Funktionsumfang
- Schalten von ausgewählten Aktoren/Variablen über geloggte Werte.
- Einstellbarkeit der benötigen durchschnittlichen Schaltvorgänge, bevor ein Tag als Quelle zur Simulation zugelassen wird.
- Ein-/Ausschaltbarkeit via Visualisierungsbutton oder Skript-Funktion.
- Anzeige welcher Tag zur Simulation genutzt wird.
- Automatische Aktualisierung bei Tageswechsel.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Anwesenheits-Simulation installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'AnwesenheitsSimulation'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/).
- Alle zu schaltenden Variablen müssen der Variablen Liste in der Instanzkonfiguration hinzugefügt werden.
#### Konfigurationsseite
| Name | Beschreibung |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Variablen | Eine Liste der Variablen, welche für die Simulation der Anwesenheit genutzt werden sollen. Die hinzugefügten Variablen benötigen eine Aktion und müssen geloggt sein. |
| Mindestanzahl | Dies beschreibt die durchschnittliche Mindestanzahl von Variablenschaltungen aller ausgewählten Variablen, die vorhanden sein müssen. |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
| Name | Typ | Beschreibung |
| ----------------------- | ------- | ---------------------------------------------------------------------------------------------- |
| Simulation aktiv | Boolean | Zeigt an ob ob die Simulation aktiviert ist oder nicht. True = Aktiviert; False = Deaktiviert; |
| Simulationsquelle (Tag) | String | Der String beinhaltet das Datum, nach dem die Simulationsdaten ausgewählt wurden. |
| Simulationsvorschau | String | Zeigt eine Tabelle welche eine Übersicht über die zukünftigen Schaltvorgänge gibt. |
### Visualisierung
Über die Visualisierung kann die Simulation de-/aktiviert werden.
Es wird zusätzlich die Information angezeigt, welcher Tag zur Simulation genutzt wird.
Falls nicht genügend oder ungültige Daten vorhanden sind, wird dieses ebenfalls hier angezeigt. Es wird eine Liste mit allen ausgewählten Variablen angezeigt, welche den aktuellen und nächsten Wert, sowie die Uhrzeit der Schaltung beinhaltet.
## AS_SetSimulation
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/anwesenheitssimulation/as-setsimulation/
`bool AS_SetSimulation(int $InstanzID, bool $SetActive)`
_Benötigt Symcon >= 5.0_
De-/Aktiviert die Anwesenheits-Simulation
**Parameter**
- `$InstanzID` (int): ID der Anwesenheits-Simulation
- `$SetActive` (bool): Aktiviert/Deaktiviert Anwesenheits-Simulation
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__
Aktiviert/Deaktiviert Anwesenheits-Simulation
**Beispiel**
```text
AS_SetSimulation(12345, true);
```
---
# Bild-Archiv
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/bildarchiv/
_Benötigt Symcon >= 4.2_
Das Modul kopiert bei Auslösung durch eine gewählte Variable ein Bild. Es ist einstellbar wieviele Bilder gespeichert werden sollen.
### Funktionsumfang
- Auswählbares Quellbild und auswählbare Auslöservariable
- Einstellbare Anzahl von Bildern, welche gespeichert werden sollen
- Wenn eine Auslöservariable ausgewählt ist wird ein Ereignis erstellt, welches auf die Aktualisierung dieser reagiert
- Das Ereignis kann bis auf die Auslöservariable vollständig personalisiert werden
- Bilder bekommen den Zeitpunkt des Auslösens als Namen
- Bilder werden chronologisch von alt -> neu in der Kategorie Bilder angezeigt
- Automatisches Löschen der ältesten Bilder, beim Erreichen der eingestellten maximalen Bilderanzahl
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Bild-Archiv installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Bild-Archiv'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/#Instanz_erstellen)
#### Konfigurationsseite
| Name | Beschreibung |
| --------------- | ------------------------------------------------------------------------ |
| Bild | Quellbild, welches kopiert werden soll |
| Anzahl | Maximale Anzahl an Bildern, die gespeichert werden sollen |
| Auslösevariable | Variable bei deren Änderung das Quellbild ins Archiv kopiert werden soll |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------- | --------- | ---------------------------------------------------------------------------------- |
| Bilder | Kategorie | Hier werden die Quellbilder hineinkopiert |
| AddImage | Ereignis | Wird durch die Auslösevariable ausgelöst und stößt das Kopieren des Quellbildes an |
### Visualisierung
Über die Visualisierung werden die Medienobjekte als Liste angezeigt. Es ist keine weitere Steuerung oder gesonderte Darstellung integriert.
## BA_AddImage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/bildarchiv/ba-addimage/
`bool BA_AddImage(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
BA_AddImage(12345);
```
---
# Countdown
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/countdown/
_Benötigt Symcon >= 5.0_
Das Modul ermöglicht es einen Countdown bis zu einem Event im Webfront anzuzeigen.
### Funktionsumfang
- Ermöglicht es einen Countdown im Webfront anzuzeigen, der sich minütlich aktualisiert
- Festlegung eines Zeitpunktes und Namen eines Ereignis
### Software-Installation
- Über den Modul Store das Modul Countdown installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Countdown'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
#### Konfigurationsseite
| Name | Beschreibung |
| ----------------- | ---------------------------------------------------- |
| Datum und Uhrzeit | Datum und Uhrzeit |
| Ereignis | Name der in der Visualisierung angezeigt werden soll |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----------------- | ------- | --------------------------------------- |
| Ereignis erreicht | Boolean | Zeigt an ob das Ereignis erreicht wurde |
| Verbleibende Zeit | String | Beinhaltet die verbleibende Zeit |
### Visualisierung
Hier wird der Countdown angezeigt und, sowie eine Nachricht, wenn das Ereignis eingetreten ist.
---
# CSV ZIP Export
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/csv-zip-export/
_Benötigt Symcon >= 5.5_
Dieses Modul bietet die Möglichkeit, die aggregierten Werte einer Variable als CSV-Datei in einem ZIP-Archiv zu exportieren.
### Funktionsumfang
- Exportieren von aggregierten Daten einer oder mehreren Variablen
- Daten in CSV-Datei ein einem ZIP-Archiv exportieren
- Auflistung aller geloggten Variablen
- Zeitraum der Aggregierung frei wählbar
- Aggregierungsstufe kann ausgewählt werden
- Zyklisches erstellen und versenden eines Archivs per Mail oder FTP/FTPS/SFTP
### Software-Installation
- Über den Module Store das 'CSVZipExport'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'CSV-ZIP-Export'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/#Instanz_erstellen)
#### Konfigurationsseite
| Name | Beschreibung |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Export Optionen | Option ob eine oder mehrere Variablen pro Datei exportiert werden sollen, oder eine einzelne vom MySQL genutzt Variable exportiert werden soll |
| Ausgewählte Variablen | [Export Optionen: Eine Datei pro Variable, Eine Datei mit mehreren Variablen] Liste an Variablen mit setzbaren für die CSV Spalte |
| Filter | [Export Option: MySQL] Filtriert die Auswahl der geloggten Variablen |
| Geloggte Variablen | [Export Option: MySQL] Auswahl der Variable welche exportiert werden soll |
| Zip Datei erstellen | Checkbox, ob die Datei in ein Zip-Archiv komprimiert werden soll |
| Dezimaltrennzeichen | Wählbar, ob Punkt oder Komma als Dezimaltrennzeichen genutzt werden soll |
| Start der Aggregation | Beginn des Aggregationszeitraums |
| Ende der Aggregation | Ende des Aggregationszeitraums |
| Dezimaltrennzeichen | Auswahl vom Dezimaltrennzeichen Komma oder Punkt. |
| Aggregationsstufe | Stufe der Aggregation |
| Exportieren | Die aggregierten Daten der Variable werden exportiert |
| Zyklischen senden | |
| Zyklisches senden aktivieren | Aktiviert die zyklische Versendung der Daten |
| Intervall | Intervall in welchem versendet wird. Bei "Wöchentlich" wird am Montag versendet und bei "Monatlich" wird jeweils am 1. des Monats versendet zum jeweilig gewählten Zeitpunkt |
| Zeitpunkt | Zeitpunkt zu welchem versendet werden soll |
| Mail | |
| Per Mail senden | Checkbox, ob die Daten über Mail versendet werden soll |
| SMPT-Instanz | Auswahl der E-Mail-Instanz |
| Jetzt Mail senden | Sendet manuell eine Mail |
| FTP, FTPS, SFTP | |
| Per SFTP/FTP/FTPS senden | Checkbox, ob die Daten über SFTP, FTP oder FTPS versendet werden sollen |
| Verbindungstyp | Verbindung ob über SFTP, FTP oder FTPS versendet werden soll |
| Host | IP Adresse des Servers |
| Port | Port auf dem der Client sich auf den Server verbindet. Bei FTPS und FTP ist dies normalerweise 21. Bei SFTP ist dies der Port 22 |
| Benutzername | Benutzernamen für die SFTP Verbindung |
| Passwort | Passwort für die SFTP Verbindung |
## CSV_DeleteZip
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/csv-zip-export/csv-deletezip/
`bool CSV_DeleteZip(int $InstanzID)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
CSV_DeleteZip(12345);
```
## CSV_Export
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/csv-zip-export/csv-export/
`string CSV_Export(int $InstanzID, int $ArchiveVariable, int $AggregationStage, int $AggregationStart, int $AggregationEnd)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$ArchiveVariable` (int): Variablen ID, welche exportiert werden soll
- `$AggregationStage` (int): Aggregationsstufe analog zu [AC_GetAggregatedValues](https://www.symcon.de/de/service/dokumentation/modulreferenz/archive-control/ac-getaggregatedvalues/)
- `$AggregationStart` (int): Datum/Zeit als Unix Zeitstempel (0 = von Anfang an)
- `$AggregationEnd` (int): Datum/Zeit als Unix Zeitstempel (0 = bis jetzt)
**Rückgabewert** (string): Der relative Pfad des Zip-Archivs.
Datum/Zeit als Unix Zeitstempel (0 = bis jetzt)
**Beispiel**
```text
CSV_Export(12345, 54321, 4, 2293574400, 3127161600);
```
## CSV_SendMail
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/csv-zip-export/csv-sendmail/
`bool CSV_SendMail(int $InstanzID)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
CSV_SendMail(12345);
```
---
# Dummy Modul
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/dummy-modul/
Das Dummy Modul ist eine Instanz, die keine eigenen Funktion oder Status Variablen beinhaltet. Das Modul kann nur als Platzhalter verwendet werden, um als Gerät in der Visualisierung dargestellt zu werden.
### Beispiel
Mehrere erstellte Variablen gehören zu einem Gerät, welches IP-Symcon nicht nativ unterstützt. Um dennoch die Visualisierung als ein Gerät (z.B. in der Visualisierung) zu erhalten, können die erstellten Variablen unter der Dummy Instanz zusammengefasst werden.
In Kombination mit den Variablenprofilen und Variablenaktionen können eigene "Instanzen" erstellt werden, die in der Funktion und automatischen Visualisierung nativer Instanzen eine ähnliche Funktionsvielfalt beinhalten.
### Darstellung
Wie das Modul dargestellt wird kann man hier nachsehen:
[Dummy Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md)
---
# Eieruhr
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/eieruhr/
_Benötigt Symcon >= 5.0_
Eine Eieruhr, die eine gewisse Zeit läuft und jederzeit wieder aufgezogen werden kann. Ideal für die Verwendung in Ereignissen und Skripten.
### Funktionsumfang
- Eine einfache Eieruhr
- Jederzeit wieder aufziehbar
- Läuft eine einstellbare Zeit
- Kontrollierbar über die Visualisierung
- Einfache Integration in Ereignisse und Skripte über die Aktiv-Variable
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Eieruhr'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' ist das 'Eieruhr'-Modul unter dem Hersteller '(Gerät)' aufgeführt.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktualisierungsintervall | Das Intervall in dem die verbleibende Zeit aktualisiert wird (Wenn das gewählte Intervall größer als die verbleibende Zeit ist, wird "Aktiv" erst dann wieder auf false gesetzt, wenn das Intervall abgelaufen ist) |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ---------------- | ------- | -------------------------------------------------------------------------------------------------------------- |
| Aktiv | boolean | Legt fest ob die Eieruhr läuft oder nicht; Erneutes Setzen startet die Uhr neu |
| Zeit in Sekunden | integer | Die Dauer in Sekunden welche die Eieruhr läuft; Nach Ablauf der Zeit wird "Aktiv" auf false gesetzt |
| Verbleibend | string | Zeigt die verbleibende Zeit der laufenden Eieruhr an |
| Abgebrochen | integer | Zeigt an ob die Variable Aktiv vor Ablauf der Zeit wieder ausgeschaltet und somit der Timer abgebrochen wurde. |
### Visualisierung
In der Visualisierung kann die Laufzeit der Eieruhr eingestellt und de-/aktiviert werden
---
# Gruppensteuerung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/gruppensteuerung/
_Benötigt Symcon >= 5.0_
Mithilfe der Gruppensteuerungen können Variablen in Gruppen zusammen geschaltet werden.
### Funktionsumfang
- Wenn eine Variable in der Gruppe geschaltet wird, werden alle verbleibenden in der Gruppe ebenso geschaltet
- Alle Variablen, welche einer Liste hinzugefügt werden, können mit einer separaten Variable gleichzeitig geschaltet werden
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Gruppensteuerung'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Gruppensteuerung'-Modul mithilfe des Schnellfilters gefunden werden. - Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Variablen | Die in dieser Liste vorhandenen Variablen gehören zu der Gruppe; Alle Variablen müssen vom gleichen Typ sein und das gleiche Profil haben sowie eine Aktion |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------ | ------- | ---------------------------------------- |
| Status | variant | Zeigt den Status der aktuellen Gruppe an |
### Visualisierung
Hier wird die Statusvariable angezeigt, welche die Gruppe schalten kann.
---
# JSON Decoder
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/json-decoder/
_Benötigt Symcon >= 6.0_
Der JSON Decoder ist ein Modul, welches einen JSON-kodierten Inhalt in seine Bestandteile zerlegt und die Elemente als Variablen zur Verfügung stellt.
### Einbindung in IP-Symcon
Der JSON Decoder kann als Instanz über das "+" im Objektbaum gesucht und hinzugefügt werden.
Standardmäßig wird ein [HTTP Client](https://www.symcon.de/de/llms/modules/httpclient.md) erstellt und als Quelle genutzt. Innerhalb der Konfiguration des JSON Decoders kann über "Gateway ändern" ein Gateway, welches den zu bearbeitenden Text zur Verfügung stellt, ausgewählt werden.
### Beispiel
Als Beispiel soll die Seite [https://filesamples.com/samples/code/json/sample4.json](https://filesamples.com/samples/code/json/sample4.json) eingelesen und über den JSON Decoder dekodiert werden.
Dazu muss die URL der Seite im HTTP Client eingetragen werden und anschließend eingelesen werden.
Die Seite beinhaltet folgende JSON.
```php
{
"people" : [
{
"firstName": "Joe",
"lastName": "Jackson",
"gender": "male",
"age": 28,
"number": "7349282382"
},
{
"firstName": "James",
"lastName": "Smith",
"gender": "male",
"age": 32,
"number": "5678568567"
},
{
"firstName": "Emily",
"lastName": "Jones",
"gender": "female",
"age": 24,
"number": "456754675"
}
]
}
```
Die über den HTTP Client eingelesene JSON wird nun mit dem JSON Decoder verarbeitet und folgende Informationen werden als Variablen im Objektbaum zur Verfügung gestellt.

---
# JSON Exporter
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/json-exporter/
_Benötigt Symcon >= 5.5_
Das Modul bietet die Möglichkeiten, die aktuelle Werte von Variablen als JSON Export darzustellen. Dabei kann die Objektstruktur vorab definiert werden, sodass z.B. ein Array von Objekten mit ID, Name, Wert und Profilsuffix zurückgegeben wird. Es können im Anschluss beliebig der Objekte in dieser Struktur zurückgegeben werden, wobei die einzelnen Felder mit Variablen verknüpft oder als Freitext definiert werden.
### Funktionsumfang
* Individuelle Struktur der Objekte kann definiert werden
* Ausgabe der aktuellen Werte im JSON Format, wobei ein Array von Objekten zurückgegeben wird
### Software-Installation
* Über den Module Store das 'JSON Exporter'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' ist das 'JSON Exporter'-Modul unter dem Hersteller '(Kern)' aufgeführt.
#### Konfigurationsseite
| Name | Beschreibung |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Konfiguriere Struktur | Über __Konfiguriere Struktur__ kann der bereitzustellende Datensatz konfiguriert werden. Jeder Wert wird in die Tabelle __Zu exportierende Variablen__ eingetragen |
| Ident | Auswählbarer Name |
| Wert | __Benutzerdefiniert__ Auswahl, was von der Variable ausgewählt werden soll |
| Zu exportierende Variablen | Liste, in dem die Variablen nach der Struktur aufgelistet und hinzugefügt werden kann |
| Im Browser öffnen | Öffnet die JSON Struktur in einem Browser |
---
# Logik Gatter
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/logik-gatter/
_Benötigt Symcon >= 5.0_
Dieses Modul ermöglicht die Bestimmungen logischer Verknüpfung zwischen mehreren Variablen. Hierbei wird die boolsche Interpretation der Eingangsvariablen verwendet.
### Funktionsumfang
- Bestimmung der logischen Verknüpfung von Variablenwerten
- Unterstützte Operationen:
- OR
- AND
- NOR
- NAND
- Ausgang wird aktuell gehalten und aktualisiert sich sobald eine der Eingangsvariablen sich ändert
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'LogikGatter'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" ist das 'LogikGatter'-Modul unter dem Hersteller '(Sonstige)' aufgeführt
- Bei 'Berechnung' die gewünschte Operation auswählen
- In der Liste 'Eingabe' die gewünschten Eingabevariablen auswählen
- 'Invertieren' kann aktiviert werden um den Eingabewert dieser Variable zu negieren
- Wird eine nicht-Boolean Variable ausgewählt, so wird diese als boolscher Wert interpretiert, z.B. 0 als false
### Statusvariablen
Die Statusvariable "Ausgabe" beinhaltet das aktuelle Ergebnis der logischen Operation
### Visualisierung
Die aktuelle Ausgabe wird angezeigt.
---
# Rechenmodule
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/
Module, welche verschiedene Berechnungen innerhalb von IP-Symcon ermöglicht
## Rechen-Modul
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/rechen-modul/
_Benötigt Symcon >= 4.3_
Dieses Modul kann verschiedene Hilfsberechnungen auf einer Menge von Variablen durchführen, beispielsweise die Summe oder den Durchschnitt.
### Funktionsumfang
- Berechnungen verschiedener Werte basierend auf einer Gruppe von Variablen:
- Summe
- Minimum
- Maximum
- Durchschnitt
- Anzahl der Variablen
- Ausgabe der berechneten Werte in Variablen
- Aktualisierung der Werte sobald sich eine der Variablen ändert
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Rechenmodule installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Rechen-Modul' mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Berechnung | Auswahl der durchgeführten Berechnung(en) |
| Variablen | VariablenIDs der Variablen auf denen die Berechnung(en) durchgeführt werden; Für alle Berechnungen außer Anzahl müssen alle Variablen vom Typ Float oder Integer sein |
#### _Mögliche Berechnungen:_
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------------------------------------ |
| Alles | Alle in dieser Tabelle vorgestellten Berechnungen werden durchgeführt |
| Summe | Die Summe aller ausgewählten Variablen wird in der Statusvariablen Summe gespeichert |
| Minimum | Der minimale Wert der ausgewählten Variablen wird in der Statusvariablen Minimum gespeichert |
| Maximum | Der maximale Wert der ausgewählten Variablen wird in der Statusvariablen Maximum gespeichert |
| Durchschnitt | Der Durchschnitt der ausgewählten Variablen wird in der Statusvariablen Durchschnitt gespeichert |
| Anzahl | Die Anzahl der ausgewählten Variablen wird in der Statusvariablen Anzahl gespeichert |
### Statusvariablen
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Für jede Berechnung wird eine dazugehörige Statusvariable angelegt.
| Name | Typ | Beschreibung |
| ------------ | ----- | -------------------------------------------- |
| Summe | Float | Die Summe aller ausgewählten Variablen |
| Minimum | Float | Der minimale Wert der ausgewählten Variablen |
| Maximum | Float | Der maximale Wert der ausgewählten Variablen |
| Durchschnitt | Float | Der Durchschnitt der ausgewählten Variablen |
| Anzahl | Float | Die Anzahl der ausgewählten Variablen |
## RM_Update
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/rechen-modul/rm-update/
`bool RM_Update(int $InstanzID)`
_Benötigt Symcon >= 4.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
RM_Update(12345);
```
## Umrechnen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/umrechnen/
_Benötigt Symcon >= 4.3_
### Funktionsumfang
- Berechnet über eine eingerichtete Formel einen Wert aus einer ausgewählten Quellvariable.
- Bei Variablenänderung der Quellvariable wird der Wert automatisch neuberechnet.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Rechenmodule installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Umrechnen'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| -------- | -------------------------------------------------- |
| Quelle | Quellvariable, die Berechnung genutzt werden soll. |
| Formel | Formel, bei der Rechnung genutzt werden soll. |
| Wert | Testwert um die Formel zu Testen |
| Berechne | Berechnet den Wert anhand des Test-"Wert" |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----- | ----- | ----------------------------------------------------------------- |
| Value | Float | Beinhaltet den anhand der eingerichteten Formel berechneten Wert. |
## UMR_Calculate
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/umrechnen/umr-calculate/
`float UMR_Calculate(int $InstanzID, float $Value)`
_Benötigt Symcon >= 4.3_
Berechnet die Rückgabe der Formel für den Wert und gibt diesen zurück.
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Value` (float): Einzusetzender Wert in die Formel
**Rückgabewert** (float): Umgerechneter Wert __Value__
Einzusetzender Wert in die Formel
**Beispiel**
```text
//Funktion in der Konfiguration: $Value/10\n$ausgabe = UMR_Calculate(12345, 50);\nvar_dump($ausgabe) //Ausgabe ist 5
```
## UmrechnenMultiGrenzen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/umrechnenmultigrenzen/
_Benötigt Symcon >= 4.3_
### Funktionsumfang
- Berechnet über eingerichtete Formeln einen Wert aus einer ausgewählten Quellvariable.
- Welche Formel genutzt werden soll, wird über einrichtbare Grenzwerte entschieden.
- Bei Variablenänderung der Quellvariable wird der Wert automatisch neuberechnet.
- Wenn keine Berechnung/Grenzen zutrifft/zutreffen, wird der Originalwert eingetragen.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Rechenmodule installieren.
### Einrichten der Instanzen in IP-Symcon)
- Unter "Instanz hinzufügen" kann das 'UmrechnenMultiGrenzen'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ----------- | ---------------------------------------------------------------- |
| Quelle | Quellvariable, die zur Berechnung genutzt werden soll. |
| Formel 1-10 | Formel, die auf die Quellvariable angewendetet werden soll. |
| Grenze 0-10 | Grenzwerte zwischen denen die eingerichtete Formel genutzt wird. |
| Wert | Testwert um die Formel zu Testen |
| Berechne | Berechnet den Wert anhand des Test-"Wert" |
Der Wert der Quellvariable kann innerhalb der Formel mit "$Value" implementiert werden. Beispiel:
```php
10*$Value+20
```
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----- | ----- | ----------------------------------------------------------------- |
| Value | Float | Beinhaltet den anhand der eingerichteten Formel berechneten Wert. |
## UMG_Calculate
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/umrechnenmultigrenzen/umg-calculate/
`float UMG_Calculate(int $InstanzID, float $Value)`
_Benötigt Symcon >= 4.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Value` (float): In die Formel einzusetzender Wert
**Rückgabewert** (float): Ergebnis der Berechnung.
In die Formel einzusetzender Wert
**Beispiel**
```text
//Funktion in der Konfiguration: $Value/10\n$ausgabe = UMG_Calculate(12345, 50);\nvar_dump($ausgabe) //Ausgabe ist 5
```
## WertebereichSkalieren
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/wertebereichskalieren/
_Benötigt Symcon >= 4.3_
### Funktionsumfang
* Eingabe vom Eingabewertebereich
* Eingabe vom Ausgabewertebereich
* Umrechnung von einem Eingabewert
* Berechnung bei Wertänderung des Eingabewertes
### Software-Installation
* Über den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) das 'WertebereichSkalieren'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'WertebereichSkalieren'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/llms/concepts.md)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------------------- | -------------------------------------- |
| Eingabevariable | Variable, welche als Eingabewert dient |
| Minimaler Eingabewert | Die untere Wertgrenze der Eingabe |
| Maximaler Eingabewert | Die obere Wertgrenze der Eingabe |
| Minimaler Ausgabewert | Die untere Wertgrenze der Ausgabe |
| Maximaler Ausgabewert | Die obere Wertgrenze der Ausgabe |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------- | ----- | -------------------------- |
| Ausgabe | float | Ausgabewert der Berechnung |
## VRC_Scale
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rechenmodule/wertebereichskalieren/vrc-scale/
`bool VRC_Scale(int $InstanzID)`
_Benötigt Symcon >= 4.3_
Skaliert den Eingabevariablenwert
**Parameter**
- `$InstanzID` (int): Id der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Id der Instanz
**Beispiel**
```php
VRC_Scale(12345)
```
---
# RGBMultiplexer
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rgbmultiplexer/
_Benötigt Symcon >= 4.2_
### Funktionsumfang
- Bietet ein Farbrad, welches im Hintergrund drei einzelne R, G, B Kanäle ansteuert
- Sollten die R, G, B Kanäle den Wert ändern wird der neue Zustand auch ins Farbrad übertragen
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul RGB-Multiplexer installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'RGB Multiplexer'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------- | --------------------------------- |
| Variable (R) | Variable für den Rot Kanal |
| Variable (G) | Variable für den Grün Kanal |
| Variable (B) | Variable für den Blau Kanal |
| Button "RGB setzen" | Sendet den RGB-Wert an die Kanäle |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----- | ------- | ----------------------------------- |
| Color | Integer | Beinhaltet Wert passend zum Farbrad |
### Visualisierung
Über die Visualisierung werden die Variablen angezeigt. Über das Farbrad kann die Farbe eingestellt werden.
## RGBM_RequestStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rgbmultiplexer/rgbm-requeststatus/
`bool RGBM_RequestStatus(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
RGBM_RequestStatus(12345);
```
## RGBM_SetRGB
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/rgbmultiplexer/rgbm-setrgb/
`bool RGBM_SetRGB(int $InstanzID, int $Rot, int $Grün, int $Blau)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Rot` (int): Wert des roten Farbkanals
- `$Grün` (int): Wert des grünen Farbkanals
- `$Blau` (int): Wert des blauen Farbkanals
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert des blauen Farbkanals
**Beispiel**
```text
RGBM_SetRGB(12345, 255, 255, 255);
```
---
# Schleppzeiger
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/schleppzeiger/
_Benötigt Symcon >= 6.0_
Eine Variable, welche auf dem höchsten oder niedrigsten Wert bis zum Reset stehen bleibt.
### Funktionsumfang
* Variable, welche den höchsten/niedrigsten Wert seit dem letztem Reset anzeigt
* Reset via Timer oder manuel möglich
### Software-Installation
* Über den Module Store das 'Schleppzeiger'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Schleppzeiger'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ------------ | ---------------------------------------------------------------------------------------------- |
| Zielvariable | Variable, deren Werte ausgelesen werden |
| Optionen | __Maximum__ Gibt an ob der Schleppzeigen den höchsten oder niedrigsten Wert anzeigen soll |
| Intervall | Zeitangabe in Sekunden bis der Schleppzeiger auf den Wert der Zielvariable zurückgesetzt wird. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------- | ------- | ------------------------------------------------------------- |
| Schleppzeiger | float | Zeigt den höchsten/niedrigsten Wert seit dem letzten Reset an |
| Zurücksetzen | boolean | Assoziation zum Zurücksetzen des Schleppzeigers |
#### Profile
| Name | Typ |
| -------- | ---- |
| SZ.Reset | bool |
### Visualisierung
Anzeige des Schleppzeigers, sowie Zurücksetzen des Schleppzeigers
## SZ_Reset
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/schleppzeiger/sz-reset/
`bool SZ_Reset(int $InstanzID)`
_Benötigt Symcon >= 6.0_
**Parameter**
- `$InstanzID` (int): ID der Schleppzeiger Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**.
ID der Schleppzeiger Instanz
**Beispiel**
```text
SZ_Reset(12345);
```
---
# Spielesammlung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/spielesammlung/
Eine Sammlung kleiner Spiele, welche über das Webfront gespielt werden können.
## Schere Stein Papier
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/spielesammlung/schere-stein-papier/
_Benötigt Symcon >= 5.0_
### Funktionsumfang
- Schere, Stein, Papier in IP-Symcon
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Spielesammlung installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'SchereSteinPapier'-Modul mithilfe der Schnellsuche einfach gefunden werden.
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------------- | ------- | ----------------------------- |
| Deine Wahl | Integer | Wahl des Spielers. |
| Computer wählte | Integer | Zeigt die Wahl des Computers. |
| Ergebnis | String | Zeigt das Ergebnis. |
#### Profile:
| Name | Typ |
| ---------- | ------- |
| SSP.Choice | Integer |
### Visualisierung
Hier wird gespielt.
## Zahlenraten
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/spielesammlung/zahlenraten/
_Benötigt Symcon >= 5.0_
### Funktionsumfang
- Ein kleines Spiel, bei dem eine zufällige Zahl erraten werden muss.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Spielesammlung installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Zahlenraten'-Modul mithilfe der Schnellsuche einfach gefunden werden.
#### Konfigurationsseite:
| Name | Typ | Beschreibung |
| ----------------------------- | ------- | ------------------------------------------------------------------ |
| Minimum der generierten Zahl | Integer | Das Minimum der Zahl die generiert wird. |
| Maximum der generierten Zahl | Integer | Maximum der generierten Zahl. |
| Anzahl der erlaubten Versuche | Integer | Die Anzahl der Versuche, die der Spieler zum Erraten der Zahl hat. |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------- | ------- | ----------------------------------------------------------------------- |
| Züge übrig | Integer | Zeigt die Anzahl der verbleibenden Versuche. |
| Deine Zahl ist | String | Zeigt an ob der Tipp größer oder kleiner als die zu erratende Zahl ist. |
| Dein Tipp | Integer | Das Eingabefeld für den Tipp des Spielers. |
### Visualisierung
Hier wird gespielt.
## ZR_Generate
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/spielesammlung/zahlenraten/zr-generate/
`bool ZR_Generate(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
ZR_Generate(12345);
```
---
# Szenensteuerung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/szenensteuerung/
_Benötigt Symcon >= 5.0_
Die Szenensteuerung speichert Werte von in einer Liste gespeicherten Variablen in Szenen und kann diese via Knopfdruck aus der Visualisierung und mobilen Apps wieder aufrufen.
Die zu schaltenden Variablen müssen dazu in der Instanzkonfiguration der Liste "Variablen" hinzugefügt werden. Sind alle für eine Szene gewünschten Variablen hinzugefügt und auf den gewünschten Wert gesetzt, können diese mit dem "Speichern"-Knopf (in der Visualisierung) der entsprechenden Szene hinzugefügt werden. Nun kann die Szene mit dem entsprechenden "Ausführen"-Knopf jederzeit abgerufen werden. Die Variablen werden auf die zuvor gespeicherten Werte gesetzt.
### Funktionsumfang
- Ermöglicht das Speichern und Aufrufen von in einer Liste gespeicherten Variablen über Szenen.
- Die aktuell aktive Szene wird angezeigt
- Darstellung und Bedienung via Visualisierung und mobilen Apps
- Wenn eine Variable ausgetauscht wird, bleiben bereits erstellte Szenen erhalten und schalten das neue Gerät
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Szenen-Steuerung installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Szenensteuerung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | ---------------------------------------------------- |
| Szenen | Anzahl der Szenen die zur Verfügung gestellt werden. |
| Variablen | Liste mit den zu schaltenden Variablen. |
### Statusvariablen und Profile
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die Szenen werden 1,2..n aufsteigend durchnummeriert.
| Name | Typ | Beschreibung |
| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Aktive Szene | String | Zeigt den Namen der gerade Aktiven Szene an. Wenn die Werte der Variablen einer Szene zugeornet werden können wird diese ebenfalls angezeigt. Entsprechen die Werte der Variablen keiner Szene wird 'Unbekann' angezeigt |
| Szene 1..n | Integer | Zur Anzeige in der Visualisierung und den mobilen Apps. Ruft "Speichern" oder "Aufrufen" auf. |
#### Profile:
| Name | Typ |
| ---------------- | ------- |
| SZS.SceneControl | Integer |
### Visualisierung
Über die Visualisierung können die momentanen Werte der gelisteten Zielvariablen in einer Scene gespeichert werden. Über "Ausführen" können bereits gespeicherte Szenen aufgerufen werden.
## SZS_CallScene
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/szenensteuerung/szs-callscene/
`bool SZS_CallScene(int $InstanzID, int $SceneNumber)`
_Benötigt Symcon >= 5.0_
Ruft die Szene auf und setzt sie dazugehörigen Variablen
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$SceneNumber` (int): Nummer der Szene
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Nummer der Szene
**Beispiel**
```text
SZS_CallScene(12345, 1);
```
## SZS_GetActiveScene
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/szenensteuerung/szs-getactivescene/
`int SZS_GetActiveScene(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (int): Nummer der aktiven Szene. Wenn eine unbekannte Szene aktiv ist wird 0 zurückgegeben.
ID der Instanz
**Beispiel**
```text
SZS_GetActiveScene(12345);
```
## SZS_SaveScene
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/szenensteuerung/szs-savescene/
`bool SZS_SaveScene(int $InstanzID, int $SceneNumber)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$SceneNumber` (int): Nummer der Szene
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Nummer der Szene
**Beispiel**
```text
SZS_SaveScene(12345, 1);
```
---
# Taupunkt berechnen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/taupunkt-berechnen/
Berechnung des Taupunktes mit der relativen Luftfeuchtigkeit und Raumtemperatur.
Die Berechnung basiert auf den Formeln von der Seite [Wetterochs](https://www.wetterochs.de/wetter/feuchte.html).
### Funktionsumfang
* Berechnung der Taupunkttemperatur
* Berechnung der Temperatur ab dem das Risiko zum Schimmelbefall steigt
### Software-Installation
* Über den Module Store das 'TaupunktBerechnung'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'TaupunktBerechnung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ---------------- | ------------------------------------------ |
| Raumtemperatur | Temperatur, welche im Raum herrscht in °C |
| Luftfeuchtigkeit | Relative Luftfeuchtigkeit, welche herrscht |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Taupunkt | float | Temperatur, bei unterschreiten wird überschüssiger Wasserdampf sich in Wasser wandeln |
| Temperatur für Schimmelgefahr | float | Temperatur, bei unterschreiten dieser steigt das Risiko des Schimmelbefalls |
| Alarm für Schimmelgefahr | boolean | Alarm, welcher auslöst wenn die Temperatur für Schimmelgefahr unterschritten wird. Ausgeschaltet wird dieser, wenn die Raumtemperatur 1°C über der Temperatur für Schimmelgefahr ist. |
---
# Treppenhauslichtsteuerung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/treppenhauslichtsteuerung/
_Benötigt Symcon >= 5.0_
Nachdem ein Auslöser aktiviert wird, geht das Licht im Treppenhaus an. Wird der Auslöser wiederholt aktiviert bleibt das Licht an und der Timer wird zurückgesetzt. Erst wenn für eine vorgegebene Zeit keine weitere Auslösung stattfindet wird das Licht ausgeschaltet.
### Funktionsumfang
- Auswahl von Ein- und Ausgabevariablen in einer Liste.
- Auswahl der Dauer bevor das Licht ausgeschaltet wird.
- Angabe der Helligkeit in Abhängigkeit einer Nacht-Modus Variable
- .Reversed Profile werden sowohl für Ein- als auch Ausgabevariablen unterstützt
- Möglichkeit die verbleibende Zeit bis zum Auschalten anzuzeigen.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Treppenhauslichtsteuerung installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Treppenhauslicht'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der Dokumentation der Instanzen
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Eingabesensoren | Liste der Eingabesensoren, bei deren Aktivierung das Licht aktiviert werden soll, z.B. Bewegungssensoren oder Taster - Das Licht wird aktiviert sobald eine Variable auf aktiv gesetzt wird. Als aktiv gelten hierbei Variablen mit einem Wert, der nicht false, 0, oder "" ist. Sollte die Variable ein .Reversed Profil haben gelten die genannten Werte als aktiv. |
| Ausgabevariablen | Liste der Variablen, welche aktiv, also auf ihren Maximalwert geschaltet werden und das Licht darstellen. Sollte eine Variable ein .Reversed Profil haben wird diese auf den Minimalwert geschaltet. Variablen des Typs String werden nicht geschaltet. Die Variablen werden akiv geschaltet, wenn ein Sensor aus der Eingabesensor Liste ausgelöst wird. |
| Dauer | Nachdem die ausgewählte Dauer ohne weitere Auslösung eines Eingabesensors vergeht, wird das Licht deaktiviert. |
| Aktion erneut senden | Wenn ein unzuverlässiges Funk-System verwendet wird, so ist es ggf. erforderlich bei jedem Impuls die Aktion zu senden. Im Normalfall sollte diese Option deaktiviert bleiben, da ständiges senden der Aktion bei Funk-Aktoren ggf. den Duty-Cycle aufbrauchen kann. |
| Restlaufzeit anzeigen | Wenn aktiv wird die verbleibende Zeit bis zum Ausschalten in einer Variable angezeigt. |
| Aktualisierungsintervall | Das Intervall, in dem die "Restzeit" Variable aktualisiert wird. |
| Nacht-/Tag-Modus | Ermöglicht es die gewählten Variablen basiernd auf der Tageszeit, oder der Umgebungshelligkeit auf unterschiedliche Werte zu schalten |
#### Nacht-/Tag-Modus - Nacht-/Tag Varaible
| Name | Beschreibung |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Tag/Nacht | Eine Variable, die angibt ob Nacht oder Tag ist. |
| Invertiert | Gibt an, ob der Wert der Nacht-Modus Variable invertiert werden soll. Dies ist notwendig, wenn die Ist-Tag Variable von der Location Instanz verwendet werden soll. Diese ist nämlich FALSE, wenn es Dunkel ist. |
| Helligkeit (Nacht-Modus) | Gibt die Helligkeit in Prozent an, die Nachts geschaltet werden soll. |
| Helligkeit (Tag-Modus) | Gibt die Helligkeit in Prozent an, auf die am Tag geschaltet werden soll. |
#### Nacht-/Tag-Modus - Umgebungshelligkeitsvariable
| Name | Beschreibung |
| ---------------------------- | ------------------------------------------------------------------------------------------------- |
| Umgebungshelligkeit | Die Variable, die als Umgebungshelligkeit genutzt wird. |
| Umgebungshelligkeitsschwelle | Der Grenzwert, bei dem zwischen den Werten für Tag und Nacht gewechselt wird. |
| Helligkeit (Nacht-Modus) | Gibt die Helligkeit in Prozent an, die bei Unterschreitung der Helligkeit geschaltet werden soll. |
| Helligkeit (Tag-Modus) | Gibt die Helligkeit in Prozent an, die bei Überschreitung der Helligkeit geschaltet werden soll. |
### Statusvariablen
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| Treppenhaussteuerung aktiv | Boolean | Die Variable gibt an, ob die Treppenhaussteuerung aktiviert ist |
| Restzeit | String | Wenn "Restlaufzeit anzeigen" aktiv ist wird hier die verbleibende Zeit bis zum Auschalten angezeigt |
## THL_SetActive
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/treppenhauslichtsteuerung/thl-setactive/
`bool THL_SetActive(int $InstanzID, bool $Wert)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Wert` (bool): __TODO__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TODO__
**Beispiel**
```text
THL_SetActive(12345, true);
```
## THL_Start
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/treppenhauslichtsteuerung/thl-start/
`bool THL_Start(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
THL_Start(12345);
```
## THL_Stop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/treppenhauslichtsteuerung/thl-stop/
`bool THL_Stop(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
THL_Stop(12345);
```
---
# Umbennener
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/umbennener/
_Benötigt Symcon >= 4.4_
Ermöglicht das umbenennen von Objekten aus der Visualisierung heraus.
### Funktionsumfang
- Erlaubt es mehrere Objekte aus der Visualisierung heraus umzubenennen.
- Namensänderungen der Objekte, die nicht durch das Modul gemacht werden, werden nicht an die Statusvariaben weiter gegeben.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul 'Umbennener' installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Umbenenner'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------- | ---------------------------------------------------------------------------------------------------------- |
| Objekte | Eine Liste, zu der alle Objekte hinzugefügt werden müssen, die im Webfront umbenannt werden können sollen. |
### Statusvariablen
#### Statusvariablen
Für jedes in der Instanzkonfiguration ausgewähltes Objekt wird eine Statusvariable vom Typ String erstellt. Der Name der Variablen ist der aktuelle Ort des Objektes welches umbenannt wird.
### Visualisierung
Hier können die zuvor ausgewählten Objekte umbenannt werden.
---
# Unwetterzentrale
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/unwetterzentrale/
_Benötigt Symcon >= 4.2_
Das Modul berechnet einen gewichteten Regenwert in einem ausgewählten Bereich des Radarbilds.
### Funktionsumfang
- Berechnet in einem selbstbestimmten Bereich des Regenradars die momentane Regenmenge.
- Auswahl zwischen bundesländischen oder bundesweiten Radarbildern.
- Das Radarbild und die Berechnung findet alle 15 Min automatisch statt.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Unwetterzentrale installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Unwetterzentrale'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------ | ------------------------------------------------------------------ |
| Gebiet | Auswahl des bundesländischen oder bundesweiten Kartenauschschnitts |
| X | X-Position vom Mittelpunkt des Karrees |
| Y | Y-Position vom Mittelpunkt des Karrees |
| Radius | Kantenlänge des Karrees in Pixel |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Regenwert | Integer | Gewichteter Wert der ausgewerteten Regenmenge. 8-stufige Gewichtung: Leichter Regen = Hellblau = 1 -> ... -> Starker Regen = Dunkelblau = 8 |
| Radarbild | Medien | Radarbild des ausgewählten Kartenausschnitts |
### Visualisierung
Über die Visualisierung werden die Variablen und das Radarbild angezeigt. Es ist keine weitere Steuerung oder gesonderte Darstellung integriert. Ebenfalls ist auf dem Radarbild der ausgewertete Karreeausschnitt eingezeichnet.
## UWZ_RequestInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/unwetterzentrale/uwz-requestinfo/
`bool UWZ_RequestInfo(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
UWZ_RequestInfo(12345);
```
---
# VariablenVergleich
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/variablenvergleich/
_Benötigt Symcon >= 6.0_
Dieses Modul wurde gefördert durch [IB-Jaetzel](https://ib-jaetzel.de/).
Das Modul erstellt anhand einer oder mehreren Variablenpaaren ein Diagramm mit Puktewolken und mit Hilfe von einfacher Liniaren Regression eine Linie durch die Punktewolke. Das Diagramm kann als SVG oder PNG ausgegeben werden.
### Funktionsumfang
- Erstellung eines Diagramms mit ein oder mehreren Wertepaaren
- Ausgabe des Diagramms in SVG oder PNG
- Ausgabe von Steigung, Y-Achsenabschnitt, Funktion und Bestimmtheitsmaß des Graphen
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'VariablenVergleich'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'VariablenVergleich'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
Werte:
| Name | Beschreibung |
| ----------------- | ---------------------------------------------------------- |
| X Wert | Variablenauswahl für die X-Achse |
| Y Wert | Variablenauswahl für die Y-Achse |
| Punkt | Farbauswahl für die Punktemakierung |
| Linie | Farbauswal für die Linie |
| Aggregationsstufe | Stufe wie detailiert die Daten aus dem Achiv geholt werden |
Diagramm Einstellungen:
| Name | Beschreibung |
| ---------------------- | --------------------------------------------------------------- |
| Achsen kleine Schritte | Gibt an in welchen Schritten kleine Makierungen sein sollen |
| Achsen große Schritte | Gibt an in welchen Schritten die Makierung mit Beschriftung ist |
| Breite | Gibt an wie breit das Diagramm ist |
| Höhe | Gibt an wie hoch das Diagramm ist |
| Y - Min | Gibt den minimalen Wert auf der Y-Achse an |
| Y - Max | Gibt den maximalen Wert auf der Y-Achse an |
| X - Min | Gibt den minimalen Wert auf der X-Achse an |
| X - Max | Gibt den maximalen Wert auf der X-Achse an |
| Digramm Format | Gibt an ob das Diagramm als SVG oder PNG ausgegeben werden soll |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ---------------- | -------------- | ------------------------------------------------------- |
| Funktion | String | Gibt die mathematische Funktion des Graphen wieder |
| b | Float | Beschreibt den y-Achsenabschnitt des Graphen |
| m | Float | Beschreibt die Steigung des Graphen |
| Bestimmtheitsmaß | Float | Beschreibt wie genau der Graph zu der Punktewolke passt |
| Startdatum | Integer | Datum, ab welchem die Punktewolke starten soll |
| Enddatum | Integer | Datum, bis zu welchem die Punktewolke geht |
| Chart | String / Media | Gibt das Diagramm je nach Einstellung als PNG oder SVG |
## LR_Download
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/variablenvergleich/lr-download/
`void LR_Download(int $InstanzID)`
_Benötigt Symcon >= 6.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (void): Keine Rückgabe.
ID der Instanz
**Beispiel**
```text
LR_Download(12345);
```
## LR_GenerateChart
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/variablenvergleich/lr-generatechart/
`array LR_GenerateChart(int $InstanzID)`
_Benötigt Symcon >= 6.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (array): SVG und PNG Diagramm
ID der Instanz
**Beispiel**
```text
LR_GenerateChart(12345);
```
## LR_UpdateChart
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/variablenvergleich/lr-updatechart/
`void LR_UpdateChart(int $InstanzID)`
_Benötigt Symcon >= 6.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (void): Keine Rückgabe.
ID der Instanz
**Beispiel**
```text
LR_UpdateChart(12345);
```
---
# Virtuelle Geräte
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/
Die virtuellen Geräte simulieren verschieden funktionsweisen von verschiedenen Geräten.
## E-Auto (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/e-auto-simulation/
_Benötigt Symcon >= 6.0_
Das E-Auto simuliert einen Ladevorgang eines E-Autos.
### Funktionsumfang
- Simuliert den Ladevorgang über eine Wallbox
- Simuliert vereinfacht einen Ladevorgang mit vorgegebener Leistung
### Sofware-Instalation
- Über den Module Store das 'Virtuelle Geräte'- Modul installieren
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'E-Auto (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/llms/concepts.md)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Modus | Optionen: 'Simpel', in der nur die Leistung angegeben wird. 'Wallbox', mit umfangreicher Konfiguration um den Ladevorgang an einer Wallbox zu simulieren |
| Varianz | Angabe wie stark der Verbrauch schwanken soll |
| Intervall | Zeit zwischen den Aktualisierungen |
##### Modus: Simpel
| Name | Beschreibung |
| -------- | ------------------------------------ |
| Leistung | Maximale Leistung die gebraucht wird |
##### Modus: Wallbox
| Name | Beschreibung |
| ------------------------------------------------------------------------- | ------------------------------------------- |
| Phasen | Über wie viele Phasen die Wallbox läd |
| Teile die Phasen auf einzelne Variablen auf (Simuliert die Alfen Wallbox) | Aufteilung der Phasen in einzelne Variablen |
| Minimale Stromstäkre (pro Phase) | Stromstärke die minimal pro Phase anliegt |
| Maximale Stromstärke (pro Phase) | Stromstärke die maximal pro Phase anliegt |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| Status | Boolean | Staus, ob der Ladevorgang momentan läuft |
| Intensität | Integer | Im Simpel-Modus verfügbar und schaltet die Stärke des Verbrauchs |
| Verbrauch | Float | Maximale Ladeleistung |
| Akkuladestand (Ist) | Integer | Aktueller Ladestand |
| Leistung (Soll) | Float | Schaltet den Verbrauch des Ladevorganges |
| Stromstärke | Float | Im Wallbox-Modus verfügbar und schaltet die aktuelle Stromstärke der Phasen. Kann sich auf mehrere Variablen aufteilen |
## Heizstab (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/heizstab-simulation/
Simuliert einen Heizstab.
### Funktionsumfang
- Simuliert einen Heizstab.
### Software-Installation
Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Heizstab (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| --------- | --------------------------------------------- |
| Leistung | Angabe wie viel der Heizstab verbrauchen soll |
| Varianz | Angabe wie stark der Verbrauch schwanken soll |
| Intervall | Zeitinterval der Aktualisierungen |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ---------- | ------- | ---------------------------------- |
| Status | Boolean | Schaltet den Heizstab an/aus |
| Intensität | Integer | Schaltet die Stärke des Heizstabes |
| Verbrauch | Float | Zeigt den aktuellen Verbrauch an |
## Licht (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/licht-simulation/
Simuliert ein Licht.
### Funktionsumfang
- Simuliert eine Licht
### Software-Installation
Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Licht (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------- | ------- | --------------------------------------- |
| Status | Boolean | Schaltet das Licht an/aus. |
| Helligkeit | Integer | Schaltet die Helligkeit des Lichtes |
| Farbe | Integer | Schaltet die Farbe des Lichtes |
| Farbtemperatur | Integer | Schaltet die Farbtemperatur des Lichtes |
### Visualisierung
Zeigt in der Kachel-Visualisierung initial die Lichtkachel mit mehreren Möglichkeiten an.
## Mediaplayer (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/mediaplayer-simulation/
Simuliert einen Mediaplayer.
### Funktionsumfang
- Simuliert einen Mediaplayer
### Software-Installation
Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Mediaplayer (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----------------- | ------- | ---------------------------------------------------------------------- |
| Fortschritt | Float | Zeigt den Fortschritt des Liedes an |
| Künstler | String | Zeigt den Künstler des aktuellen Liedes an |
| Lautstärke | Integer | Zeigt die Lautstärke an |
| Song | String | Zeigt das aktuelle Lied an |
| Stummschaltung | Boolean | Zeigt an ob die Ausgabe de-/aktiviert ist |
| Wiedergabe | Integer | Zeigt den momentanen Status der Wiedergabe an |
| Wiedergabeliste | String | JSON codierter String mit den nächsten Liedern und ihren Informationen |
| Wiederholen | Integer | Zeigt an ob die Playlist, Lied oder nichts wiederholt wird |
| Zufallswiedergabe | Boolean | Schaltet die zufällige Wiedergabe der Lieder ein/aus |
| Cover | Bild | Zeigt das Cover des Liedes |
### Visualisierung
Zeigt in der Kachel-Visualisierung die Mediaplayer-Kachel mit ihren Funktionen an.
## PV-Anlage (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/pv-anlage-simulation/
Simulation einer PV-Anlage
### Funktionsumfang
* Simulation einer PV-Anlage
### Software-Installation
* Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'PV-Anlage (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| -------- | ---------------------------------------------- |
| Leistung | Angabe wie viel die PV Anlage verbrauchen soll |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------- | ----- | -------------------------------------- |
| Erzeugung | Float | Gibt an wie viel die PV Anlage erzeugt |
#### Profile
| Name | Typ |
| ------------- | ----- |
| WattSlider.10 | float |
## Rollladen (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/rollladen-simulation/
Simuliert einen Rollladen.
### Funktionsumfang
* Simuliert einen Rollladen
### Software-Installation
* Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Rollo (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------- | ------- | ----------------- |
| Jalousie | Integer | Höhe der Jalousie |
| Lamella | Integer | Höhe der Lamellen |
### Visulisierung
In der Kachel-Visualisierung wir die Shutter-Kachel angezeigt.
## Thermostat (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/thermostat-simulation/
Simuliert ein Thermostat.
### Funktionsumfang
* Simuliert ein Thermostat
### Software-Installation
* Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Thermostat (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| --------------------------------------------------- | ----------------------------------- |
| Erstelle geloggte Werte für die aktuelle Temperatur | |
| Stunde Wert | Tabelle mit den zu loggenden Werten |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------------- | ----- | -------------------------------------- |
| Soll Temperatur | Float | Variable zum Einstellen der Temperatur |
| Ist Temperatur | Float | Momentane Temperatur |
### Visualisierung
In der Kachel-Visualisierung wird die Heizungskachel angezeigt.
## Verbrauch/Kosten
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/verbrauch-kosten/
Errechnet die Kosten mit Verbrauch im Standby.
### Funktionsumfang
* Errechnen der Kosten anhand des gegebenen Verbrauchs
### Software-Installation
* Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Verbrauch/Kosten'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------------------- | ----- | -------------------------- |
| StandBy Verbrauch | Float | Verbrauch im StandBy-Modus |
| Kosten pro kWh | Float | Kosten pro kWh |
| Gesamtkosten pro Jahr | Float | Gesamtkosten pro Jahr |
#### Profile
| Name | Typ |
| ---------- | ----- |
| WattSlider | float |
| EuroCent | float |
## Zähler (Simulation)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/virtuelle-geraete/zaehler-simulation/
Simuliert eine einstellbare Anzahl an Zählern.
### Funktionsumfang
- Simuliert mehrere Zähler
### Software-Installation
Über den Module Store das 'Virtuelle Geräte'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Zähler (Simulation)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ------------------------------------------------ | --------------------------------------------- |
| Anzahl Zähler | Anzahl der Zähler, die simuliert werden soll. |
| Minimaler Wert pro Stunde | |
| Maximaler Wert pro Stunde | |
| Maximaler Abstand zwischen zwei folgenden Werten | |
| Verwende für jede Variable ein anderes Profil | Jeder Zähler erhält ein anderes Profil |
| Erstelle Graph | Erstellt einen Multigraphen |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------- | ---------- | -------------------------------------------------------------- |
| Zähler x | Float | Eine Zähler -Variable. x Steht hier für die Nummer des Zählers |
| Graph | Multigraph | Ein Multigraph der Zähler |
---
# Zufällige Beleuchtung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/zufaellige-beleuchtung/
_Benötigt Symcon >= 5.0_
Das Modul ermöglicht es den Farbwert von Lampen zufällig zwischen verschiedenen Farben zu schalten.
### Funktionsumfang
- Farbvariablen können in einer Liste hinzugefügt werden
- Eine Liste mit Farben aus denen gewählt wird, welche erweitert werden kann
- Wenn das Modul deaktiviert wird, werden die ausgewählten Farbvariablen auf den Wert vor der Aktivierung gesetzt
- Einstellung des Intervalls in dem die Farben gewechselt werden sollen
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Zufällige Beleuchtung'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Zufällige Beleuchtung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ----------------------- | ------------------------------------------------------------------------------------------ |
| Farbvariablen | Liste mit Farbvariablen, welche geschaltet werden sollen |
| Farben | Farben von denen eine zufällig zum Schalten ausgewählt wird |
| Änderungsintervall | Abstand zwischen den einzelenen Schaltungen in Sekunden |
| Gleichzeitiges Schalten | Legt fest ob alle Farbvariablen auf die gleiche Farbe gesetzt werden oder auf verschiedene |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----- | ------- | ------------------------------ |
| Aktiv | Boolean | Schaltet das Modul an oder aus |
## ZB_ChangeLight
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/logiken/zufaellige-beleuchtung/zb-changelight/
`bool ZB_ChangeLight(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
ZB_ChangeLight(12345);
```
---
# Arbeitszahl
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/arbeitszahl/
_Benötigt Symcon >= 6.3_
Der Wirkungsgrad wird berechnet.
### Funktionsumfang
* Der Wirkungsgrad für die vergangenen 365 Tage
* Der Wirkungsgrad für die vergangenen 30 Tage
### Software-Installation
Über den Module Store das 'Arbeitszahl'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Arbeitszahl'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
#### Konfigurationsseite
| Name | Beschreibung |
| ------------------------- | --------------------------------------- |
| Wärmeenergie (kWh) | Variable, welche als Zähler geloggt ist |
| Elektrische Energie (kWh) | Variable, welche als Zähler geloggt ist |
### Statusvariablen
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
| Name | Typ | Beschreibung |
| -------- | ---------------- | ----------------------------------------------------------- |
| MAZ | Float | Steht für die Monatsarbeitszahl |
| JAZ | Float | Steht für die Jahresarbeitszahl |
| Ereignis | zyklisches Event | Event, damit der Wirkungsgrad um Mitternacht berechnet wird |
## ARZ_Calculation
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/arbeitszahl/arz-calculation/
`bool ARZ_Calculation(int $InstanzID)`
_Benötigt Symcon >= 6.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```php
ARZ_Calculation(12345)
```
---
# Betriebsstundenzähler
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/betriebsstundenzaehler/
_Benötigt Symcon >= 5.2_
Mithilfe des Betriebsstundenzähler-Moduls kann die Betriebszeit eines Gerätes ermittelt und angezeigt werden.
### Funktionsumfang
- Anzeige der Stunden, welche ein Gerät aktiv ist
- Hinzufügen des Geräts durch eine Variable vom Typ Boolean
- Anzeigen der Kosten für den aktuellen, den letzten Zeitraum und Vorhersage für das Ende des Zeitraums
- Möglichkeit die Kosten mit einem dynamischen Preis zu berechnen
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Betriebsstundenzähler'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Betriebsstundenzähler'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
#### Konfigurationsseite
| Name | Beschreibung |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Aktiv | Legt fest ob die Rechnung auf Basis des eingestellten Intervalls aktualisiert wird |
| Quelle | Die Variable vom Typ Boolean, welche den Aktivitätsstatus eines Gerätes anzeigt, wobei true als aktiv angesehen wird. Um die Betriebsstunden zu errechnen muss diese Variable geloggt sein |
| Stufe | Die Stufe legt den Beginn des Zeitraums fest welcher betrachtet wird (Beginn des Tages, Woche, Monat, Jahr) sowie die Aggregationsstufe |
| Aktualisierungsintervall | Das Intervall in Minuten in dem die Betriebszeit erneut berechnet wird |
| Kostenberechnung | Legt fest ob die Kostenberechnung ausgeführt werden |
| Preistyp | Option, ob der Preis fest gelegt ist oder dynamisch über eine Variable berechnet werden soll |
| Preis | Der Preis welcher pro Betriebsstunde berechnet wird |
| Berechnen | Berechnet die Betriebszeit mit allen angegebenen Parametern |
Ist im Preistyp die Option "Dynamisch" eingestellt, wird eine geloggte Variable gefordert, welche den Kostenpreis beinhaltet.
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------------------------- | ----- | -------------------------------------------------------------------------- |
| Betriebsstunden | float | Die berechneten Betriebsstunden der Quellvariable im ausgewählten Zeitraum |
| Kosten des jetzigen Zeitraums | float | Die berechneten Kosten des laufenden Zeitraums |
| Kosten des letzten Zeitraums | float | Die berechneten Kosten des letzten abgeschlossenen Zeitraums |
| Vorhersge zum Ende des Zeitraums | float | Vorhersage der Kosten zum Ende des laufenden Zeitraums |
#### Profile
| Name | Typ |
| ------------------ | ----- |
| BSZ.OperatingHours | float |
### Visualisierung
Im Webfront werden die Betriebsstunden angezeigt.
## BSZ_Calculate
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/betriebsstundenzaehler/bsz-calculate/
`void BSZ_Calculate(int $InstanzID)`
_Benötigt Symcon >= 5.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (void): Keine Rückgabe.
ID der Instanz
**Beispiel**
```text
BSZ_Calculate(12345);
```
---
# Energie Dashboard
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energie-dashboard/
_Benötigt Symcon >= 8.1_
Das Energie Dashboard dient als Übersicht über mehrere Zähler mit mehreren Diagrammen.
> **Hinweis:** Das Energie Dashboard ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz erworben werden kann. Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/ips-enterprise-edb) erworben werden.
> **Achtung:** Nachfolgend werden die Enterprise-Features erklärt. Die Features für alle Nutzer sind noch in der Entwicklung.
### Einrichtung des Energie-Dashboards
Um das Energie-Dashboard zu nutzen, muss dieses zuerst eingerichtet werden. Hierfür wird in der Konsole die Instanz einer "Kachel-Visualisierung" aufgerufen. Hier sollte sichergestellt werden, dass im Abschnitt "Appbar" die Checkbox mit dem Label "Energie-Dashboard anzeigen" aktiviert ist. Damit wird in der Visualisierung der Blitz und somit der Zugang angezeigt.
Im Abschnitt "Energie-Dashboard" können nun die Typen und Areale definiert werden.

#### Definition der Typen
Initial sind die Typen Elektrizität, Wasser und Gas definiert.
| Name | Art | Beschreibung |
| ---------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Freitext | Der Name des Typs, welcher durch den Nutzer frei angegeben werden kann. |
| Grundfarbe | Farbauswahl | Auswahl einer Grundfarbe für die Diagramme. Alle Areale des gleichen Typs werden in einer Variation der Farbe in den Diagrammen dargestellt. |
| Profil | Profilauswahl | Auswahl eines Profils. Hiermit können die Werte der Diagramme mit Suffix/Prefix formatiert werden. |
#### Konfiguration der Areale

Die Areale werden als Baum aufgebaut. Mit einem Klick auf Hinzufügen wird ein Areal auf der obersten Ebene erstellt.
Mit einem Klick auf einen Areal und dann einen Klick auf Hinzufügen wird ein Areal unterhalb des ausgewählten Areals erstellt.
Jeder Areal hat folgende Konfigurationen:
| Name | Art | Beschreibung |
| --------- | ------------------- | --------------------------------------------------------------------------------------- |
| Arealname | Freitext | Frei vergebbarer Name für das Areal. Dieser wird später im Energie-Dashboard angezeigt. |
| Standort | Koordinaten Auswahl | Optionale Auswahl der Koordinaten des Areals. |
| Zähler | Liste | Konfiguration der relevanten Zähler |
#### Konfiguration der Zähler
Die Zähler können optional hinzugefügt werden.
| Name | Art | Beschreibung |
| ------ | ---------------- | ------------------------------------------------------------------------------------------------ |
| Zähler | Variablenauswahl | Auswahl der Zählervariable, welche die aggregierten Werte für diesen Areal zur Verfügung stellt. |
| Typ | Typenauswahl | Der Typ des Zählers basierend auf den vorher definierten Typen |
### Nutzung des Energie-Dashboards
Wurde das Energie-Dashboard aktiviert, so erscheint in der Appbar der Visualisierung ein Blitz-Symbol. Durch einen Klick darauf wir das Energie-Dashboard geöffnet.
#### Das Energie-Dashboard

##### Baum
Der Baum spiegelt die Konfiguration der Areale durch Namen wieder.
Initial ist das erste Areal ausgewählt. Ist neben dem Areal ein Pfeil, so kann das Areal ausgeklappt werden, wodurch man auf untergeordnete Areale zugreifen kann.
Mit einem Klick auf die verschiedenen Areale werden die Werte der Diagramme sowie der Karte aktualisiert.
##### Diagramme
Beim Aufrufen des Energie-Dashboards wird der aktuelle Tag als Zeitraum und die Zeitspanne Stunde ausgewählt.
###### Detailansicht
In der Detailansicht wird der ausgewählte Zeitraum angezeigt.
###### Verbrauchsdiagramm

Im Verbrauchsdiagramm wird der ausgewählte Zeitraum mit der Zeitspanne vom Tag angezeigt. Der äußere Donut zeigt den ausgewählten Zähler, wenn nötigt, an, dazu die direkt untergeordneten Zähler. Der innere Donut wird angezeigt, wenn unterhalb des ausgewählten Areales noch eine Ebene vorhanden ist.

Mit einem Klick auf den maximieren Button wird der Doughnut vergrößert und eine detaillierte Auflistung der Einträge angezeigt.
###### Bedingte Anzeige der Zähler
Bei der Detailansicht, wie auch dem Doughnut-Diagramm werden Zähler bedingt angezeigt.
- Hat das ausgewählte Areal einen Zähler und keine Areale unter sich, so wird dieser angezeigt.
- Hat das ausgewählte Areal keinen Zähler und keine Areale unter sich, so wird dieser nicht angezeigt.
- Hat das ausgewählte Areal Areale unter sich, so werden die unterhalbliegenden Arealzähler angezeigt.
- Falls der Areal einen Zähler hat und dessen Summe nicht zu den untergeordneten Arealzählern passt, so wird zusätzlich zu den untergeordneten Arealzählern die Differenz in grau angezeigt.
###### Trend-Diagramm

Im Trend-Diagramm wird der prozentuale Zusammenhang zwischen dem obersten Areal und dem ausgewählten Areal dargestellt.
##### Karte

Die Karte listet die konfigurierten Koordinaten auf. Sind keine Koordinaten beim ausgewählten Areal konfiguriert, so werden die untergeordneten Areale nach Koordinaten durchsucht. Somit können auch mehrere Markierungen auf der Karte sein. Wird kein Areal gefunden wird ein Text anstatt der Karte angezeigt. Für die Karte wird OpenStreetMap genutzt.
---
# Energie Manager
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energie-manager/
_Benötigt Symcon >= 6.3_
Das Modul schaltet automatisch Variablen, wenn eine Quellenergie unterschritten ist.
### Funktionsumfang
- Anschalten eines Gerätes, wenn genügend Energie vorhanden ist
- Ausschalten eines Gerätes, wenn nicht mehr genügend Energie vorhanden ist
- Nächtliches Laden von Geräten um sicherzustellen, dass ein E-Auto oder ein Energiespeicher morgens geladen ist
- Günstiges Laden um Geräte automatisch bei niedrigen Strompreisen zu aktivieren
- Restriktion von Geräten konform zu §14a EnWG und §9 EEG
- Verwaltung von Energiespeichern zum Ausgleichen von Defiziten
- Verschiedene Rechenoptionen
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Energie Manager'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Energie Manager'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Modus | Auswahl der Rechenoption Absolut: Geräte werden solange angeschaltet, bis die Quellenergie erreicht ist und abgeschaltet, wenn die Leistung die Quellenergie übersteigt Relativ: Geräte werden angeschaltet, wenn die Quellenergie über null liegt und ausgeschaltet, wenn die Quellenergie unter null fällt |
| Hysterese | Toleranz bei der nicht geschalten wird |
| Konstellation für Überschuss/Defizit | Auswahl ob Überschuss und Defizit über eine geteilte oder zwei separate Variablen angegeben wird (nur bei Modus Relativ, ab Symcon 8.1) |
| Verfügbare Leistung (W) | Referenzvariable, welche die absolute verfügbare Leistung für den Manager beinhaltet (nur bei Modus Absolut) |
| Überschuss (W) | Referenzvariable, welche den aktuellen Überschuss beinhaltet (nur bei Modus Relativ) |
| Defizit (W) | Referenzvariable, welche den aktuellen Defizit beinhaltet (nur bei Modus Relativ und Konstellation "Zwei Variablen, eine pro Funktion", ab Symcon 8.1) |
| Invertieren | Auswahl ob Verfügbare Leistung bzw. Überschuss positiv oder negativ ist (nicht verfügbar, falls Modus Relativ und Konstellation für Überschuss Defizit auf "Zwei Variablen, eine pro Funktion" |
| Aktualisierungsmodus | Nach Timer: Der Zustand wird in einem festen Intervall aktualisiert Bei Änderung der Quelle: Der Zustand wird immer aktualisiert, wenn Verfügbare Leistung bzw. Überschuss aktualisiert wird |
| Intervall | Aktualisierungsintervall des Zustands (nur bei Aktualisierungsmodus Nach Timer) |
| Energiepreise | Referenzvariable, welche die aktuellen Strompreise beinhaltet, bereitgestellt vom Modul [Strompreis](https://www.symcon.de/de/llms/modules/power-price.md) oder einem anderen Modul, welches dessen Format verwendet. Diese Variable wird nur für das Nachtladen bzw. Nächtliche Laufzeit benötigt. Ist sie nicht ausgewählt, kann Nachtladen bzw. Nächtliche Laufzeit nicht verwendet werden |
| Verbraucher | Liste aller Verbraucher, siehe Verbraucher |
| Energiespeicher | Liste aller Energiespeicher, siehe Energiespeicher |
| Elektrofahrzeuge | Liste aller Elektrofahrzeuge, siehe Elektrofahrzeuge |
| Konfiguration für §14a und §9 | Bereich um Restriktionen entsprechend §14a EnWG und §9 EEG zu konfigurieren, siehe Konfiguration für §14a und §9 (ab Symcon 8.1) |
#### Verbraucher
| Name | Beschreibung |
| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verbraucher | Die Variable um den Verbraucher zu schalten. Ist die Variable vom Typ Integer oder Float, so versucht der Energie Manager diese bei Bedarf zu skalieren. Bei Boolean kann der Verbraucher lediglich An und Aus geschaltet werden. |
| Maximaler Verbrauch | Verbrauch in Watt, wenn der Verbraucher komplett angeschaltet ist |
| Aktueller Verbrauch (Optional) | Variable mit dem aktuellen Verbrauch des Geräts in Watt. Ist keine gesetzt, so wird der Verbrauch auf Basis der Variable Verbraucher und dem Maximalen Verbrauch berechnet (ab Symcon 8.1) |
| Name (Optional) | Der angezeigte Name des Verbrauchers. Ist kein Name angegeben, so wird der Name der Verbraucher Variablen verwendet |
| Bedingung (Optional) | Falls eine Bedingung angegeben ist, wird der Verbraucher nur aktiviert, falls die hier definierte Bedingung erfüllt ist. |
| Hinweis für Blockierung durch Bedingung (Optional) | Ist die Bedingung nicht erfüllt, wird dieser Text in der Visualisierung angezeigt. Ist kein Hinweis definiert, so wird ein Standardtext angezeigt. |
| Mindestlaufzeit | Wird der Verbraucher aktiviert, so läuft er mindestens die hier definierte Zeit in Sekunden. Erst nach Ablauf der Mindestlaufzeit nach der initialen Aktivierung kann der Energie Manager den Verbraucher wieder deaktivieren. Ist der Verbraucher skalierbar, so kann er bei nicht ausreichend vorhandener Energie passend skaliert werden, wird allerdings nie komplett deaktiviert. |
| Nachlaufzeit | Sollte nicht mehr genug Energie für den Verbraucher verfügbar sein, so wird er erst deaktiviert, falls die Energie für die hier definierte Dauer in Sekunden nicht vorhanden ist. So können kurze Einbrüche der verfügbaren Energie überbrückt werden. Ist der Verbraucher skalierbar, so kann er bei nicht ausreichend vorhandener Energie passend skaliert werden, wird allerdings nie komplett deaktiviert. |
| Falls Mindestlaufzeit/Nachlaufzeit noch aktiv sind, aber die Bedingung nicht mehr erfüllt ist... | Definiere das Verhalten des Geräts falls die Bedingung während der Mindestlaufzeit oder Nachlaufzeit nicht mehr erfüllt ist ...sofort anhalten: Das Gerät wird bei der nächsten Aktualisierung des Zustands deaktiviert obwohl die Zeit noch läuft ...erst anhalten sobald Mindestlaufzeit/Nachlaufzeit abgelaufen ist: Die aktuelle Zeit läuft weiter ab. Erst nach Ablauf wird das Gerät deaktiviert. (nur falls sowohl eine Bedingung gesetzt als auch Mindest- oder Nachlaufzeit positiv sind, ab Symcon 8.1) |
#### Energiespeicher
| Name | Beschreibung |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Vorlage | Auswahl einer Vorlage, über welche die technischen Parameter des Geräts automatisch eingetragen werden können. Wurde "Benutzerdefiniert" gewählt, so sind alle Parameter freigegeben und können manuell angepasst werden, ansonsten werden diese gesperrt und durch die Vorlage gesetzt (ab Symcon 8.1) |
| Instanz | Auswahl der Instanz passend zur gewählten Vorlage. Nach Wahl einer Instanz werden alle Parameter der Vorlage in der Konfiguration eingetragen. In manchen Vorlagen bleiben spezifische Parameter editierbar, da diese nicht explizit in der Vorlage enthalten sind. In diesem Fall erscheint eine entsprechende Information. (nur falls die Vorlage nicht auf "Benutzerdefiniert" steht, ab Symcon 8.1) |
| Energiespeicher schatbar? | Angabe ob der Energiespeicher über Variablen zum schalten verfügt Direkt schaltbar: Die Variablen sind direkt schaltbar. Möchte der Energie Manager Anpassungen vornehmen, werden die entsprechenden Variablen geschaltet Durch Freilassen von Energie indirekt schalten: Die Variablen sind nicht schaltbar, der aktuelle Zustand allerdings lesbar. Möchte der Energie Manager Änderungen am Energiespeicher vornehmen, so geschieht dies indirekt, beispielsweise indem bewusst Energie freigelassen und nicht verbraucht wird, sodass die Automatik des Energiespeichers diese zum Laden abgreift (ab Symcon 8.1) |
| Konstellation für Laden/Entladen | Auswahl ob Laden und Entladen über eine geteilte oder zwei separate Variablen geschaltet werden (nur falls Energiespeicher schaltbar, ab Symcon 8.1) |
| Lade Variable | Die Variable um die Ladung des Energiespeichers zu schalten. Ist die Variable vom Typ Integer oder Float, so versucht der Energie Manager diese bei Bedarf zu skalieren. Bei Boolean kann die Ladung lediglich aktiviert oder deaktiviert werden. (nur falls Energiespeicher schaltbar ist) |
| Entlade Variable | Die Variable um die Entladung des Energiespeichers zu schalten. Ist die Variable vom Typ Integer oder Float, so versucht der Energie Manager diese bei Bedarf zu skalieren. Bei Boolean kann die Entladung lediglich aktiviert oder deaktiviert werden. (nur falls Energiespeicher schaltbar ist und Konstellation "Zwei Variablen, eine pro Funktion", ab Symcon 8.1) |
| Invertieren | Angabe ob Entladung als positiver oder negativer Variablenwert dargestellt wird. Ladung wird entsprechend durch das gegensätzliche Vorzeichen dargestellt. (nur falls Energiespeicher schaltbar ist und Konstellation "Eine kombinierte Variable für beides", ab Symcon 8.1) |
| Schalte Entladung um Einkauf von Energie zu verhindern | Ist dieser Schalter gesetzt, so aktiviert der Energie Manager die Entladung dieses Energiespeichers, falls es einen Defizit gibt und der Energiespeichers noch über Ladung verfügt (nur falls Energiespeicher schaltbar ist, ab Symcon 8.1) |
| Variable zum Umschalten zwischen Laden/Entladen | Falls das Gerät nicht nur über die Variable zum Laden/Entladen geschaltet wird, sondern zusätzlich über eine Statusvariable verfügt, welche auf einen spezifischen Wert für Laden oder Entladen geschaltet werden muss, so kann diese hier angegeben werden. (nur falls Energiespeicher schaltbar ist, ab Symcon 8.1) |
| Wert für Laden | Wert auf den die Variable zum Umschalten zwischen Laden/Entladen zum Laden geschaltet werden muss (nur falls Variable zum Laden/Entladen gesetzt, ab Symcon 8.1) |
| Wert für Entladen | Wert auf den die Variable zum Umschalten zwischen Laden/Entladen zum Entladen geschaltet werden muss (nur falls Variable zum Laden/Entladen gesetzt, ab Symcon 8.1) |
| Ladestand Variable | Variable, welche den aktuellen Ladestand beinhaltet. Dabei wird der Minimalwert der Variable als komplett leer und der Maximalwert als komplett voll interpretiert. Somit können sowohl prozentuale als auch absolute Darstellungen verwendet werden. |
| Maximaler Verbrauch | Verbrauch in Watt, wenn der Energiespeicher maximal geladen wird. |
| Aktuelle Ladung/Einspeisung | Variable mit der aktuellen Ladung bzw. Einspeisung des Energiespeichers. Für schaltbare Energiespeicher ist diese Variable optional. Wurde sie nicht gesetzt, so wird der aktuelle Wert basierend auf der Lade/Entlade-Variable und dem maximalen Verbrauch berechnet (ab Symcon 8.1) |
| Invertiere aktuelle Ladung/Einspeisung? | Gibt an, ob Ladung positiv und Einspeisung negativ ist oder anders herum (nur falls Aktuelle Ladung/Einspeisung gesetzt, ab Symcon 8.1) |
| Starte Ladevorgang unter | Unterschreitet der Ladestand des Energiespeichers diesen prozentualen Wert, so wird der Energiespeicher bei verfügbarer Energie geladen bis sie den Ladestand "Stoppe Ladevorgang über" erreicht. |
| Stoppe Ladevorgang über | Erreicht der Ladestand diesen prozentualen Wert, so wird der Energiespeicher nicht mehr geladen bis sie wieder den Ladestand "Starte Ladevorgang unter" unterschreitet. |
| Weiterladen, wenn jedes andere Gerät fertig ist | Ist dieser Schaltet gesetzt, so wird der Energiespeicher unabhängig von den Einstellungen "Starte Ladevorgang unter" und "Stoppe Ladevorgang über" geladen, falls es keine anderen Verbraucher gibt und ein Energieüberschuss ansonsten ungenutzt bleiben würde. |
| Name (Optional) | Der angezeigte Name des Energiespeichers. Ist kein Name angegeben, so wird der Name der Instanz für die Vorlage verwendet. Ist keine Instanz gewählt, so wird der Name der Lade Variablen verwendet. Sollte diese auch nicht gesetzt sein, so wird der Name der Variablen für die aktuelle Ladung/Einspeisung verwendet. |
| Kapazität (Optional, benötigt zum Nachtladen) | Die Kapazität des Energiespeichers in kWh. Dieser Wert wird lediglich fürs Nachtladen benötigt. Ist er nicht gesetzt, kann Nachtladen bei dem Energiespeicher nicht verwendet werden. |
| Bedingung (Optional) | Falls eine Bedingung angegeben ist, wird der Energiespeicher nur geladen, falls die hier definierte Bedingung erfüllt ist. |
| Hinweis für Blockierung durch Bedingung (Optional) | Ist die Bedingung nicht erfüllt, wird dieser Text in der Visualisierung angezeigt. Ist kein Hinweis definiert, so wird ein Standardtext angezeigt. |
| Mindestlaufzeit | Wird ein Ladevorgang gestartet, so läuft er mindestens die hier definierte Zeit in Sekunden. Erst nach Ablauf der Mindestlaufzeit nach der initialen Aktivierung kann der Energie Manager den Ladevorgang wieder stoppen. Ist die Ladung skalierbar, so kann er bei nicht ausreichend vorhandener Energie passend skaliert werden, wird allerdings nie komplett deaktiviert. |
| Nachlaufzeit | Sollte nicht mehr genug Energie für einen Ladevorgang verfügbar sein, so wird er erst gestoppt, falls die Energie für die hier definierte Dauer in Sekunden nicht vorhanden ist. So können kurze Einbrüche der verfügbaren Energie überbrückt werden. Ist die Ladung skalierbar, so kann er bei nicht ausreichend vorhandener Energie passend skaliert werden, wird allerdings nie komplett deaktiviert. |
| Falls Mindestlaufzeit/Nachlaufzeit noch aktiv sind, aber die Bedingung nicht mehr erfüllt ist... | Definiere das Verhalten des Geräts falls die Bedingung während der Mindestlaufzeit oder Nachlaufzeit nicht mehr erfüllt ist ...sofort anhalten: Das Gerät wird bei der nächsten Aktualisierung des Zustands deaktiviert obwohl die Zeit noch läuft ...erst anhalten sobald Mindestlaufzeit/Nachlaufzeit abgelaufen ist: Die aktuelle Zeit läuft weiter ab. Erst nach Ablauf wird das Gerät deaktiviert. (nur falls sowohl eine Bedingung gesetzt als auch Mindest- oder Nachlaufzeit positiv sind, ab Symcon 8.1) |
#### Elektrofahrzeuge
| Name | Beschreibung |
| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Vorlage | Auswahl einer Vorlage, über welche die technischen Parameter des Geräts automatisch eingetragen werden können. Wurde "Benutzerdefiniert" gewählt, so sind alle Parameter freigegeben und können manuell angepasst werden, ansonsten werden diese gesperrt und durch die Vorlage gesetzt (ab Symcon 8.1) |
| Instanz | Auswahl der Instanz passend zur gewählten Vorlage. Nach Wahl einer Instanz werden alle Parameter der Vorlage in der Konfiguration eingetragen. In manchen Vorlagen bleiben spezifische Parameter editierbar, da diese nicht explizit in der Vorlage enthalten sind. In diesem Fall erscheint eine entsprechende Information. (nur falls die Vorlage nicht auf "Benutzerdefiniert" steht, ab Symcon 8.1) |
| Leistung (Soll) | Die Variable um die Sollleistung des Elektrofahrzeuges zu schalten. |
| Einheit für Leistung | Angabe ob die Sollleistung in Watt oder Ampere angegeben wird (ab Symcon 8.1) |
| Variable für An/Aus (Optional) | Falls das Gerät nicht nur über den Sollwert geschaltet wird, sondern zusätzlich über eine Variable verfügt welche das Gerät An oder Aus schaltet, so kann diese hier angegeben werden. (ab Symcon 8.1) |
| Phasen | Auswahl, wie viele Phasen das Elektrofahrzeug unterstützt. |
| Setze Leistung | Auswahl, ob die Leistung pro Phase oder insgesamt geschaltet wird (nur falls mindestens 2-phasig, ab Symcon 8.1) |
| Unterstütze Umschaltung zwischen 1-phasigem und mehr-phasigem Laden | Der Schalter gibt an, ob das Elektrofahrzeug eine Umschaltung der Phasen aus der obigen Auswahl zu einer Phase und zurück unterstützt. (nur falls mindestens 2-phasig) |
| Min. Ladestrom pro Phase | Minimaler Ladestrom pro Phase in Ampere |
| Max. Ladestrom pro Phase | Maximaler Ladestrom pro Phase in Ampere |
| Aktueller Verbrauch (Optional) | Variable mit dem aktuellen Verbrauch des Geräts in Watt. Ist keine gesetzt, so wird der Verbrauch in Höhe der Sollleistung angenommen (ab Symcon 8.1) |
| Name (Optional) | Der angezeigte Name des Elektrofahrzeuges. Ist kein Name angegeben, so wird der Name der Instanz zur verwendeten Vorlage verwendet. Wurde keine Vorlage benutzt, so wird der Name der Leistung Variablen verwendet |
| Verzögerung | Wird die Soll-Leistung des Elektrofahrzeuges durch den Energie Manager angepasst, so werden für die hier angegebene Dauer in Sekunden keine weiteren Schaltvorgänge durchgeführt. |
| Ladestand | Variable, welche den aktuellen Ladestand beinhaltet. Dabei wird der Minimalwert der Variable als komplett leer und der Maximalwert als komplett voll interpretiert. Somit können sowohl prozentuale als auch absolute Darstellungen verwendet werden. Die Variable wird nur fürs Nachtladen benötigt. Ist sie nicht gesetzt, so ist Nachtladen nicht möglich. |
| Kapazität | Die Kapazität des Elektrofahrzeuges in kWh. Dieser Wert wird lediglich fürs Nachtladen benötigt. Ist er nicht gesetzt, kann Nachtladen bei dem Elektrofahrzeug nicht verwendet werden. |
| Definiere Ziel für Nachtladen in... | Auswahl ob der Zielwert fürs Nachtladen in Prozent oder Kilometern angegeben werden soll (ab Symcon 8.1) |
| Energie pro km | Die Energie in Wh, welche das Elektrofahrzeug pro Kilometer verbraucht. Dieser Wert wird lediglich fürs Nachtladen benötigt. Ist er nicht gesetzt, kann Nachtladen bei dem Elektrofahrzeug nicht verwendet werden. (nur falls Ziel für Nachtladen in Kilometern angegeben werden soll) |
| Bedingung (Optional) | Falls eine Bedingung angegeben ist, wird das Elektrofahrzeug nur geladen, falls die hier definierte Bedingung erfüllt ist. |
| Hinweis für Blockierung durch Bedingung (Optional) | Ist die Bedingung nicht erfüllt, wird dieser Text in der Visualisierung angezeigt. Ist kein Hinweis definiert, so wird ein Standardtext angezeigt. |
| Mindestlaufzeit | Wird ein Ladevorgang gestartet, so läuft er mindestens die hier definierte Zeit in Sekunden. Erst nach Ablauf der Mindestlaufzeit nach der initialen Aktivierung kann der Energie Manager den Ladevorgang wieder stoppen. Ist nicht mehr ausreichend Energie verfügbar, kann das Elektrofahrzeug dennoch auf das Minimum innerhalb der aktuellen Phasenanzahl skaliert werden. |
| Nachlaufzeit | Sollte nicht mehr genug Energie für einen Ladevorgang verfügbar sein, so wird er erst gestoppt, falls die Energie für die hier definierte Dauer in Sekunden nicht vorhanden ist. So können kurze Einbrüche der verfügbaren Energie überbrückt werden. Ist nicht mehr ausreichend Energie verfügbar, kann das Elektrofahrzeug dennoch auf das Minimum innerhalb der aktuellen Phasenanzahl skaliert werden. |
| Falls Mindestlaufzeit/Nachlaufzeit noch aktiv sind, aber die Bedingung nicht mehr erfüllt ist... | Definiere das Verhalten des Geräts falls die Bedingung während der Mindestlaufzeit oder Nachlaufzeit nicht mehr erfüllt ist ...sofort anhalten: Das Gerät wird bei der nächsten Aktualisierung des Zustands deaktiviert obwohl die Zeit noch läuft ...erst anhalten sobald Mindestlaufzeit/Nachlaufzeit abgelaufen ist: Die aktuelle Zeit läuft weiter ab. Erst nach Ablauf wird das Gerät deaktiviert. (nur falls sowohl eine Bedingung gesetzt als auch Mindest- oder Nachlaufzeit positiv sind, ab Symcon 8.1) |
#### Konfiguration für §14a und §9 (ab Symcon 8.1)
| Name | Beschreibung |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Variable für Einschränkung (§14a) | Auswahl einer Variable vom Typ Boolean. Ist diese gesetzt, so wird eine Einschränkung entsprechend §14a EnWG vorgenommen und verifiziert. Während die Variable aktiv ist wird außerdem das gesamte Verhalten des Energie Managers in einer Mediendatei gespeichert |
| Variable für maximale Einspeisung (§9) | Auswahl einer Variable vom Typ Integer oder Float. Ist diese gesetzt, so gibt sie die maximale Einspeisung entsprechend §9 EEG an. Liegt eine Einschränkung vor, so wird der Energie Manager die Einspeisung einschränken um konform zu §9 EEG zu bleiben. |
| Energieproduktion | Liste aller Energieproduzenten, siehe Energieproduktion |
| Simuliere Einschränkungen nach §14a | Ist dieser Schalter gesetzt, so wird eine Einschränkung entsprechend §14a EnWG angewandt, unabhängig des tatsächlichen Wertes der Variable für Einschränkung |
| Aktueller Verbrauch | Auflistung aller Verbraucher und den relevanten Parametern nach §14a EnWg um zu verifizieren, dass sich der Energie Manager korrekt verhält |
#### Energieproduktion (ab Symcon 8.1)
| Name | Beschreibung |
| ------------------------------ | ------------------------------------------------------------------------------------------- |
| Variable mit Energieproduktion | Variable, welche die aktuelle Energieproduktion des Geräts in Watt angibt |
| Variable für Einschränkung | Variable, über welche die maximale Einspeisung des Geräts in Watt eingeschränkt werden kann |
| Maximale Produktion | Maximale Produktion des Geräts in Watt |
### Statusvariablen und Profile
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Der Begriff "Gerät" fasst hier Verbraucher, Energiespeicher und Elektrofahrzeuge zusammen.
| Name | Typ | Beschreibung |
| -------------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Geplanter Verbrauch | Float | Der aktuelle vom Energie Manager berechnete Verbrauch aller eingetragenen Geräte |
| PMin (§14a) | Float | Der berechnete Wert PMin für Anwendung der Restriktion im Sinne von §14a EnWG (nur falls Variable für Einschränkung (§14a) gesetzt ist, ab Symcon 8.1) |
| Protokoll zu Einschränkungen (§14a/§9) | Medien - Dokument | Protokoll mit allen Operationen während eine Einschränkung durch §14a EnWG aktiv ist sowie sämtlichen Einschränkungen welche nach §9 EEG vorgenommen werden (ab Symcon 8.1) |
Alle weiteren Statusvariablen werden pro Gerät angelegt. Sind also 3 Geräte im Modul, werden je nach Konfiguration 12 bis 27 Variablen angelegt.
| Name | Typ | Beschreibung |
| -------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Priorität | Integer | Reihenfolge in der die Geräte betrachtet werden, dabei werden niedrigere Prioritätswerte bevorzugt aktiv geschaltet |
| Status | Link | Verlinkung zum Status des Gerätes, also "Verbraucher" für Verbraucher, "Lade Variable" für Energiespeicher und "Leistung (Soll)" für Elektrofahrzeuge (nicht für nicht schaltbare Energiespeicher) |
| Modus | Integer | Bei "Automatisch" wird das Gerät vom Energie Manager verwaltet, ansonsten kann es hiermit übersteuert werden |
| Aktueller Verbrauch | Link | Verlinkung zur Variable mit dem aktuellen Verbrauchs des Gerätes (nur wenn Variable für das Gerät gesetzt wurde, ab Symcon 8.1) |
| Ladung | Link | Verlinkung zur Variable mit dem aktuellen Ladestand des Energiespeichers (nur wenn Variable für den Energiespeicher gesetzt wurde, ab Symcon 8.1) |
| Betriebsmodus | Integer | Angabe ob der Energiespeicher aktuell lädt, entlädt oder passiv ist (nur für Energiespeicher, ab Symcon 8.1) |
| Bedingung | String | Aktueller Zustand der Bedingung des Gerätes |
| Gesperrt | Boolean | Ist diese Variable gesetzt, so ist das Gerät aufgrund von Mindestlaufzeit oder Nachlaufzeit gesperrt und darf nicht deaktiviert werden. Die Variable wird nur erstellt, falls das Gerät eine Mindestlaufzeit oder Nachlaufzeit hat. |
| Gesperrt bis | Integer | Ist das Gerät gesperrt, so beinhaltet diese Variable den Zeitpunkt, wann diese Sperrung wieder aufgehoben wird. Die Variable wird nur erstellt, falls das Gerät eine Mindestlaufzeit oder Nachlaufzeit hat. |
| Nachtladen/Nächtliche Laufzeit | Boolean | Aktiviert Nachtladen (für Energiespeicher und Elektrofahrzeug) bzw. Nächtliche Laufzeit (für Verbraucher). Diese Variable wird nur erstellt, falls das Gerät Nachtladen bzw. Nächtliche Laufzeit unterstützt. |
| Nachtladen: Reichweite | Float | Gewünschte Reichweite nach dem Nachtladen für das Elektrofahrzeug. Diese Variable wird nur für Elektrofahrzeuge erstellt, die Nachtladen unterstützen und für die das Ziel zum Nachtladen in Kilometer angegeben werden soll. |
| Nachtladen: Reichweite verfügbar um | Integer | Uhrzeit zu welcher die gewünschte Reichweite am nächsten Tag verfügbar sein soll. Diese Variable wird nur für Elektrofahrzeuge erstellt, die Nachtladen unterstützen und für die das Ziel zum Nachtladen in Kilometer angegeben werden soll. |
| Nachtladen: Ladung | Float | Gewünschter prozentualer Füllstand nach dem Nachtladen für den Energiespeicher oder das Elektrofahrzeug. Diese Variable wird nur für Energiespeicher oder Elektrofahrzeuge erstellt, die Nachtladen unterstützen. Elektrofahrzeugen müssen zusätzlich so konfiguriert sein, dass das Ziel zum Nachtladen in Prozent angegeben werden soll. |
| Nachtladen: Ladung verfügbar um | Integer | Uhrzeit zu welcher die gewünschte Ladung am nächsten Tag verfügbar sein soll. Diese Variable wird nur für Energiespeicher oder Elektrofahrzeuge erstellt, die Nachtladen unterstützen. Elektrofahrzeugen müssen zusätzlich so konfiguriert sein, dass das Ziel zum Nachtladen in Prozent angegeben werden soll. |
| Nächtliche Laufzeit: Dauer | Float | Dauer in Sekunden, die der Verbraucher über Nacht aktiv sein soll. Diese Variable wird nur für Verbraucher erstellt, die Nächtliche Laufzeit unterstützen |
| Nächtliche Laufzeit: Fertig bis | Integer | Uhrzeit zu welcher die gewünschte nächtliche Laufzeit abgeschlossen sein soll. Diese Variable wird nur für Verbraucher erstellt, die Nächtliche Laufzeit unterstützen |
| Günstiges Laden/Günstige Laufzeit: Aktiv | Boolean | Aktiviert Günstiges Laden (für Energiespeicher und Elektrofahrzeug) bzw. Günstige Laufzeit (für Verbraucher). Diese Variable wird nur erstellt, falls eine Variable für Energiepreise gesetzt ist. Nicht schaltbare Energiespeicher unterstützen diese Funktion nicht. (ab Symcon 8.1) |
| Günstiges Laden/Günstige Laufzeit: Maximal Preis pro kWh | Float | Angabe des Maximalpreises in Cent bis zu dem Günstiges Laden aktiviert werden soll (ab Symcon 8.1) |
#### Profile
| Name | Typ |
| -------------- | ------- |
| EO.Mode | Integer |
| EO.Priority | Integer |
| EO.Range | Float |
| EO.Percentage | Float |
| EO.Duration | Float |
| EO.Cents | Float |
| EO.BatteryMode | Float |
Assoziationen EO.Mode
| Name | Beschreibung |
| ----------- | ------------------------------------------------------------------------------ |
| Aktiv | Die Variable wird aktiv geschaltet und wird von der Betrachtung ausgeschlossen |
| Inaktiv | Die Variable wird ausgeschaltet und wird von der Betrachtung ausgeschlossen |
| Automatisch | Die Variable wird je nach Priorität und Energie geschaltet. |
### Funktionsweise
#### Optimierung
Während des Betriebs des Energie Managers wird die Energie in einzelnen Schritten optimiert, sodass die produzierte Energie möglichst sinnvoll verwendet wird. Je nach Konfiguration erfolgen Schritte in einem festen Zeitintervall oder bei Aktualisierung der verfügbaren Leistung. In jedem Schritt wird nur ein Gerät geschaltet, damit Differenzen zwischen eingetragenen und tatsächlichen Verbräuchen früh erkannt und gehändelt werden können. Im Energie Manager kann jedes Gerät durch den Benutzer mit einer Priorität eingestuft werden.
In jedem Schritt wird initial geprüft, ob es eine "Lücke" bei den aktivierten Geräten gibt, also ob Geräte mit niedrigerer Priorität aktiv sind, obwohl Geräte mit höherer Priorität noch inaktiv sind und genug Energie zur Verfügung stehen würde um sie zu aktivieren. In diesem Fall wird ein Gerät mit niedrigerer Priorität deaktiviert um die Energie im nächsten Schritt für Geräte mit höherer Priorität freizugeben.
Ansonsten wird der aktuelle Überschuss ermittelt. Ist dieser positiv, so wird ein Gerät mit höchster Priorität ermittelt, welches den Überschuss aufnehmen kann. Das Gerät wird dann entsprechend aktiviert oder skaliert.
Ist der Überschuss negativ, so wird ein Gerät mit der niedrigsten Priorität deaktiviert oder herunter skaliert um die fehlende Energie auszugleichen.
#### Nachtladen/Nächtlicher Überschuss
Nachtladen bzw. Nächtlicher Überschuss wird betrachtet, sobald der Tag laut [Location Control](https://www.symcon.de/de/llms/modules/location-control.md) endet. Ist für Geräte Nachtladen bzw. Nächtlicher Überschuss aktiviert, so berechnet der Energie Manager, wie lange das entsprechende Gerät aktiviert sein muss. Diese Dauer wird mit den Energiepreisen vom aktuellen Zeitpunkt bis zur entsprechenden Zielzeit verglichen und bestimmt, zu welchen Zeitpunkten diese Laufzeit am günstigsten genutzt werden kann. Liegt bei einem Optimierungsschritt solch ein günstigster Preis vor, so wird das Gerät auf maximaler Skalierung aktiviert, ansonsten wird es deaktiviert.
#### Günstiges Laden/Günstige Laufzeit
Günstiges Laden bzw. Günstige Laufzeit kann genutzt werden, um ein Gerät zu aktivieren, sobald der Strompreis unter einen selbst gewählten Wert fällt. Ist bei einer Aktualisierung der Strompreis ausreichend niedrig, so wird primär eines der betroffenen Geräte aktiviert, unabhängig von dessen eingestellter Priorität und des aktuellen Überschusses. Erst wenn alle entsprechenden Geräte bereits aktiv sind, so wird in einem Aktualisierungsdurchlauf wie gewohnt vorgegangen.
#### Einschränkung nach §14a EnWG
Wird die Einschränkung nach §14a aktiv, so wird sofort eine Aktualisierung durchgeführt. Diese erfolgt zusätzlich zur üblichen Aktualisierung im Intervalls bzw. bei Aktualisierung der Quellvariable. Ist bei einer Aktualisierung die Einschränkung aktiv, so wird der erlaubte Maximalverbrauch "PMin" für Energiespeicher und Elektrofahrzeuge berechnet. Verbrauchen die Energiespeicher und Elektrofahrzeuge aktuell mehr, so werden diese umgehend herunter geregelt. Hierbei werden bevorzugt Geräte deaktiviert, die nicht per Mindestlaufzeit oder Nachlaufzeit gesperrt sind. Sollte dies allerdings nicht ausreichen, so werden auch Geräte mit aktiver Mindestlaufzeit oder Nachlaufzeit deaktiviert. Für Geräte, welche nicht im automatischen Modus sind, wird der Wert vor der Einschränkung abgespeichert und wiederhergestellt sobald die Einschränkung endet. Bei einem Versuch Energiespeicher oder Elektrofahrzeuge über PMin aus manuell zu aktivieren, werden die Schaltungen rückgängig gemacht. Sie werden allerdings gespeichert, damit diese bei einem Ende der Einschränkung auf den gewünschten Wert geschaltet werden. Für mehr Informationen zu §14a EnWG, siehe [hier](https://www.gesetze-im-internet.de/enwg_2005/__14a.html).
#### Einschränkung nach §9 EEG
Ist eine Einschränkung nach §9 gegeben, diese also unter 100%, so werden die Energieproduzenten im Anschluss jeden Aktualisierungsschrittes entsprechend eingeschränkt. Hierfür wird die maximale erlaubte Energieproduktion berechnet. Diese setzt sich aus der erlaubten Einspeisung, also der Einschränkungswert multipliziert mit der maximalen Gesamtproduktion, sowie der aktuell selbst verbrauchten Energie zusammen, welche über alle Geräte berechnet wird. Ist die aktuelle Einschränkung der Energieproduzenten über der erlaubten Einschränkung, so wird diese reduziert. Hierbei wird bevorzugt eine Einschränkung bei Geräten angewandt, welche sowieso nicht produzieren. Reicht dies nicht aus, so werden Energieproduzenten eingeschränkt, die aktuell Energie produzieren. Für mehr Informationen zu §9 EEG, siehe [hier](https://www.gesetze-im-internet.de/eeg_2014/__9.html).
### Visualisierung
Der Energie Manager verfügt über eine eigene [Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md) in der Visualisierung.
---
# Energieverteilung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energieverteilung/
_Benötigt Symcon >= 7.0_
Die Energieverteilung bietet eine Darstellung, welche einen Überblick über erzeugte/verbrauchte und eingespeiste/bezogene Energie ermöglicht.

### Funktionsumfang
- Grafische Darstellung des Energieflusses zwischen verschiedenen Geräten
- Aufteilung von Geräten nach Erzeuger und Verbraucher
- Spezielle Darstellungen für Netz und Speicher
- Berechnung von Gesamtverbrauch, Gesamterzeugung, Bezug und Überschuss
- Gruppierung mehrerer Geräte des gleichen Typs
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Energieverteilung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite
> **Hinweis:** Alle ausgewählten Variablen sollten die Werte in der gleichen Einheit anbieten, um eine fehlerfreie Darstellung und Funktion zu gewährleisten.
| Name | Beschreibung |
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Zusammenfassende Werte berechnen | Wenn aktiviert, werden Statusvariablen erstellt, die anhand der hinzugefügten Variablen Erzeugungs-, Verbrauchs-, Bezugs- und Überschusswerte berechnen. |
##### Konfigurations-Liste
| Name | Beschreibung |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Typ | Die Auswahl des Typs entscheidet ob das Gerät als Erzeuger oder Verbraucher behandelt wird und bietet entsprechend [weitere Konfigurationsmöglichkeiten](#Typ-Konfiguration) |
| Name | Der für die Darstellung genutzte Name. Bleibt dieser leer, wird der Variablenname genutzt. |
| Gruppieren | Alle Geräte des selben Typs werden in der Visualisierung zusammengefasst. |
| Zusatzinformation | Ein Variable deren Wert hinter dem eigentlichen Variablenwert in Klammern angezeigt werden kann. Beispielsweise der prozentuale Ladestand eines E-Fahrzeuges oder ein Zählerstand |
| Berechnungstyp | Aus den Werten der Zusatzinformation Variablen einer Gruppe wird entweder die Summe oder der Mittelwert gebildet. (nur wenn 'Gruppieren' aktiviert ist) |
##### Typ-Konfiguration
Wind/Solar
| Name | Beschreibung |
| --------- | ------------------------------------------------ |
| Erzeugung | Die Variable, welche die erzeuge Energie angibt. |
Verbraucher/Wallbox/Wärme/Wärmepumpe
| Name | Beschreibung |
| --------- | ---------------------------------------------------- |
| Verbrauch | Die Variable, welche die verbrauchte Energie angibt. |
Netz
| Name | Beschreibung |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Konfigurationstyp | Bestimmt ob der Wert sich aus einer oder zwei Variablen ergibt. |
| Bezug / Überschuss | Ist der Wert der Variable positiv so wird er als Bezug gezählt. Ist er negativ gilt zählt er zu Überschuss. (nur bei Konfigurationstyp 'Einzelne Variable') |
| Invertiert | Invertiert das Verhalten der einzelnen Variable. (nur bei 'Konfigurationstyp' 'Einzelne Variable') |
| Bezug | Die Variable, welche die bezogene Energie angibt. (nur bei 'Konfigurationstyp' 'Zwei Variablen') |
| Überschuss | Die Variable, welche die überschüssige Energie angibt. (nur bei 'Konfigurationstyp' 'Zwei Variablen') |
Speicher
| Name | Beschreibung |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Konfigurationstyp | Bestimmt, ob der Wert sich aus einer oder zwei Variablen ergibt. |
| Laden / Entladen | Ist der Wert der Variable positiv so wird er als Laden gezählt. Ist er negativ zählt er als Entladen. (nur bei Konfigurationstyp 'Einzelne Variable') |
| Invertiert | Invertiert das Verhalten der einzelnen Variable. (nur bei 'Konfigurationstyp' 'Einzelne Variable') |
| Laden | Die Variable, welche die geladene Energie angibt. (nur bei 'Konfigurationstyp' 'Zwei Variablen') |
| Entladen | Die Variable, welche die entladene Energie angibt. (nur bei 'Konfigurationstyp' 'Zwei Variablen') |
##### Layout
Das Haus in der Mitte als zentraler Punkt des Energieaustausches ist fest. Die Objekte darum herum richten sich nach der Position in der obigen Liste. Die Positionierung ergibt sich wie folgt:
- Oben links
- Oben rechts
- Unten links
- Unten rechts
- Oben Mitte
- Unten Mitte
- Links Mitte
- Rechts Mitte
#### Statusvariablen
Die Statusvariablen werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
##### Statusvariablen
Die Statusvariablen werden nur angelegt, wenn die entsprechende Einstellung auf der [Konfigurationsseite]( #Zusammenfassende_Werte_berechnen) aktiviert wurde
| Name | Typ | Beschreibung |
| ------------------ | ----- | ----------------------------------------------------------------------------- |
| Verbrauch (Gesamt) | Float | Die Summe der Verbräuche des Typs Verbraucher, Wallbox, Wärmepumpe und Wärme. |
| Erzeugung (Gesamt) | Float | Die Summe der Erzeugung des Typs Solar und Wind. |
| Bezug | Float | Differenz zwischen verbrauchter Energie und erzeugter Energie. |
| Überschuss | Float | Differenz zwischen erzeugter Energie und verbrauchter Energie. |
### Visualisierung

Jedes Gerät und jede Gruppe kann angeklickt werden, um eine Aufschlüsselung der einzelnen Werte anzuzeigen. Sind die gewählten Variablen geloggt kann das entsprechende Diagramm direkt geöffnet werden.
Über einen Klick auf das Haus in der Mitte kann bei bedarf ein Ressourcen schonender Modus aktiviert werden, der die bewegten Punkte durch statische Pfeile ersetzt.
> **Hinweis:** Die Energieverteilung hat im WebFront keine eigene Darstellung
---
# Energiezähler
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energiezaehler/
Berechnet den Verbrauch
## Energiezähler Impuls
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energiezaehler/energiezaehler-impuls/
_Benötigt Symcon >= 4.2_
Das Modul berechnet via eines Stromzählers (z.B. S0-Anschluss) den momentanen und kumlativen Stromverbrauch.
### Funktionsumfang
- Berechnet den momentanen Stromverbrauch in Watt und den gesamten Stromverbrauch in kWh.
- Einstellbarkeit der Impulse des zählenden Geräts.
- Einstellbarkeit der Intervalhäufigkeit in Sekunden zur Neuberechnung des Verbrauchs
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Energiezähler installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'EnergiezählerImpuls'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Quelle | Quellvariable (Impulszähler), welche für die Berechnung genutzt werden soll. |
| Impulse | Wieviele Impulse das Gerät pro Kilowatt sendet. Dies muss der jeweiligen Betriebsanleitung des Geräts entnommen werden. |
| Intervall | In welchem Sekunden-Intervall automatisch neuberechnet werden soll. (Hinweis: Zu kurz eingestellte Intervalle (schneller als einkommende Impulse), können zu starken Schwankungen bei der Angabe des aktuellen Verbrauch führen. Es hat keinen Einfluss auf den berechneten Gesamtverbrauch. => Empfehlung: mind. 300 Sekunden) |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ---------------------- | ----- | ---------------------------------------------------------------------- |
| Current | Float | Angabe in W |
| Counter | Float | Angabe in kWh |
| Last Value (Temporary) | Float | Hilfsvariable für letzten Wert. Wird zur Differenzberechnung benötigt. |
## EZI_Update
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energiezaehler/energiezaehler-impuls/ezi-update/
`bool EZI_Update(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
EZI_Update(12345);
```
## Energiezähler Strom
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energiezaehler/energiezaehler-strom/
_Benötigt Symcon >= 4.2_
Das Modul berechnet via eines Stromzählers (Strom oder Leistung) den momentanen und kumulativen Stromverbrauch.
### Funktionsumfang
- Berechnet den momentanen Stromverbrauch in Watt und den gesamten Stromverbrauch in kWh.
- Einstellbarkeit von Typ und Quelle des zählenden Geräts.
- Einstellbarkeit der Intervalhäufigkeit in Sekunden zur Neuberechnung des Verbrauchs, sofern sich die Quellvariable nicht geändert haben sollte.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Energiezähler installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'EnergiezählerStrom'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Typ | Ist die Quellvariable vom Typ Leistung (W) oder Strom (A). |
| Quelle | Quellvariable, welche für die Berechnung genutzt werden soll. |
| Spannung | Spannung (V), welche beim Umrechnen angenommen werden soll. |
| Intervall | In welchem Sekunden-Intervall automatisch neuberechnet werden soll, sofern sich die Quellvariable nicht geändert haben sollte. |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Beschreibung |
| --------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Typ | Ist die Quellvariable vom Typ Leistung (W) oder Strom (A). |
| Quelle | Quellvariable, welche für die Berechnung genutzt werden soll. |
| Spannung | Spannung (V), welche beim Umrechnen angenommen werden soll. |
| Intervall | In welchem Sekunden-Intervall automatisch neuberechnet werden soll, sofern sich die Quellvariable nicht geändert haben sollte. |
## EZS_Update
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/energiezaehler/energiezaehler-strom/ezs-update/
`bool EZS_Update(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
EZS_Update(12345);
```
---
# Stromabrechnungsmodul
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/stromabrechnungsmodul/
_Benötigt Symcon >= 5.0_
Das Modul liefert eine Kosten-Aufstellung ähnlich der Jahresabrechnung vom Energieversorger.
### Funktionsumfang
- Erzeugt eine Kosten-Aufstellung mithilfe einiger Eckdaten.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul "Stromabrechnung"-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'StromAbrechnung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------- | ------------------------------------------------------------- |
| Quelle | Die Variable des Hauptzählers, welche als Zähler geloggt wird |
| Grundpreis | Der Grundpreis |
| Arbeitspreis | Der Arbeitspreis |
| Ablesedatum | Datum der letzen Zählerstandsablesung |
| letzter Zählerstand | Der Zählerstand am lezten Ablesetermin |
| geplanter Verbrauch | Der geplante Stromverbrauch/Jahr |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------------------------------------------ | ------- | ------------------------------------------------------------------------------ |
| Energiepreis | Float | Energiepreis mit einbezug des Grundpreises |
| Tage bis zur nächsten Ablesung | Integer | Tage bis zur nächsten Ablesung (1 Jahr ausgehend von der letzten Ablesung) |
| Tage seit letzter Ablesung | Integer | Tage seit letzter Ablesung |
| Zählerstand(Soll) | Float | Der Soll-Wert des heutigen Zählerstandes basierend auf dem geplanten Verbrauch |
| Geplanter Verbrauch/Tag | Float | Der Geplante Verbrauch pro Tag basierend auf dem geplanten Jahresverbrauch |
| durchschnittlicher Verbrauch der letzten 30 Tage | Float | Der Mittelwert des Verbrauches der letzten 30 Tage |
| Abweichung | Float | Die Abweichung des tatsächlichen Zählerstandes zum Soll-Wert |
| Gutschrift/Rückzahlung | Float | Menge der Rückzahlung bzw. Gutschrift berechnet durch die Abweichung |
#### Profile:
| Name | Typ |
| -------------- | ------- |
| SAM.EuroRating | Float |
| SAM.PowerPrice | Float |
| SAM.Calendar | Integer |
### Visualisierung
Hier werden alle wichtigen errechneten Werte angezeigt.
## SAM_UpdateCalculations
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/stromabrechnungsmodul/sam-updatecalculations/
`bool SAM_UpdateCalculations(int $InstanzID)`
_Benötigt Symcon >= 5.0_
Berechnet alle angezeigten Werte
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SAM_UpdateCalculations(12345);
```
---
# Strompreis
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/strompreis/
_Benötigt Symcon >= 7.1_
Liest die aktuellen/vorhergesagten Strompreise von aWATTar, Tibber oder Epex Spot (über ENTSO-E) aus.
### Funktionsumfang
* Auslesen von Strompreisen verschiedener Anbieter
* Visueller Verlauf der Marktdaten
* Manuelle Eingabe von Steuern, Aufschlag und Grundpreis
### Software-Installation
* Über den Module Store das 'Strompreis'-Modul installieren.
* Alternativ über das Module Control folgende URL hinzufügen
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Strompreis'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Anbieter | Stromanbieter, von dem die Daten bezogen werden sollen |
| Postleitzahl | Postleitzahl zur Bestimmung der Strompreise (nur bei Anbieter "Tibber") |
| ENTSO-E Security Token | Sicherheitstoken von ENTSO-E, welcher für die Abfrage verwendet wird. Ein Token kann kostenlos beantragt werden. Der Vorgang ist hier erklärt: [Anleitung](https://transparencyplatform.zendesk.com/hc/de/articles/12845911031188-How-to-get-security-token) (nur bei Anbieter "EPEX Spot (über ENTSO-E)" |
| Markt | Auswahl des Landes (nicht bei Anbieter "Tibber") |
| Grundpreis | Grundpreis des Stromes (nicht bei Anbieter "Tibber") |
| Aufschlag | Prozentualer Aufschlag zum Marktpreis (nicht bei Anbieter "Tibber") |
| Steuersatz | Steuersatz, welcher auf den Strom hinzukommt (nicht bei Anbieter "Tibber") |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------------- | ------ | ----------------------------- |
| Marktdaten | String | Daten zum anzeigen der Grafik |
| Aktueller Preis | Float | Aktueller Strompreis |
#### Profile
| Name | Typ |
| ---- | ----- |
| Cent | Float |
### Visualisierung
In der Kachelvisualisierung bietet das Module ein Balkendiagramm, welches den Verlauf des Strompreises darstellt.
## SPX_Update
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/strompreis/spx-update/
`bool SPX_Update(int $InstanzID)`
_Benötigt Symcon >= 7.1_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SPX_Update(12345)
```
---
# Verbrauch in Kategorie
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/verbrauch-in-kategorie/
_Benötigt Symcon >= 6.3_
Berechnet den Verbrauch in Prozent pro frei wählbarer Kategorie nach angegebener Start- und Enddatum. Die Berechnung basiert auf der täglichen Aggregation.
### Funktionsumfang
* Auswahl mehrere Variablen
* Freitext für Kategorie
### Software-Installation
* Über den Module Store das 'Verbrauch in Kategorie'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Verbrauch in Kategorie'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| --------- | --------------------------------------------------------------------- |
| Intervall | Intervall, in welchem die Berechnung ausgeführt wird. 0 = Deaktiviert |
| Quellen | Liste der Variablen und Kategorien |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Kategorie | Float | Pro Kategorie wird eine Variable angelegt, in welchem der Prozentuale Verbrauch angezeigt wird. Der Kategoriename wird intern auf A-Z, a-z, 0-9 und _ (Unterstrich) reduziert. Das bedeutet, dass die Kategorie "Test" und "Test €" ebenfalls auf "Test" kategorisiert werden. |
| Startzeit | Integer | Datum von wann die Berechnung starten soll |
| Endzeit | Integer | Datum bis wann die Berechnung gehen soll |
## VIK_CalculationConsumption
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/verbrauch-in-kategorie/vik-calculationconsumption/
`bool VIK_CalculateConsumption(int $InstanzID)`
_Benötigt Symcon >= 6.3_
Berechnet die Kategorien neu
**Parameter**
- `$InstanzID` (int): Id der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis** TRUE**, andernfalls **FALSE**.
Id der Instanz
**Beispiel**
```php
VIK_CalculateConsumption(12345);
```
---
# Verbrauch in Zeitspanne
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/verbrauch-in-zeitspanne/
_Benötigt Symcon >= 4.2_
### Funktionsumfang
- Berechnet für eine Zeitspanne den Verbrauch anhand der Aggregation der ausgewählten Quellvariable.
- Bei Änderung der Zeitspanne wird der Verbrauch neu ermittelt
- Verschiedene Detailgerade für Start- und End-Datum
- Einstellbares Intervall für die Aktualisierung der Berechnung
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Verbrauch in Zeitspanne installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Verbrauch in Zeitspanne'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Quelle | Quellvariable, die für Verbrauch genutzt werden soll |
| Detailgrad | Legt fest wie genau der Start- und Endzeitpunkt festgelegt werden kann (Datum, Uhrzeit, Datum/Uhrzeit) |
| Intervall zum Aktualisieren nutzen | Wenn aktiv, wird ein Intervall zum Aktualisieren der Berechnung genutzt |
| Intervall | Das Intervall in Minuten, in dem die Berechnung aktualisiert wird |
> **Hinweis:** Wird im Detailgrad Datum ausgewählt, wird das Startdatum mit der Uhrzeit 00:00 und das Enddatum mit der Uhrzeit 23:59:59 genutzt.
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| --------- | ------- | ------------------------------------------------------------------------- |
| Start | Integer | Start-Datum/Start-Zeit für den Verbrauch (Sekunden werden nicht beachtet) |
| Ende | Integer | End-Datum/End-Zeit für den Verbrauch (Sekunden werden nicht beachtet) |
| Verbrauch | Float | Verbrauch zwischen Start- und End-Datum |
## VIZ_Calculate
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/verbrauch-in-zeitspanne/viz-calculate/
`bool VIZ_Calculate(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
VIZ_Calculate(12345);
```
---
# Verbrauchsverhalten
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/verbrauchsverhalten/
_Benötigt Symcon >= 6.0_
Das Modul errechnet den wahrscheinlichen Verbrauch für die Periode auf Basis einer Außentemperatur-Variable und einer Zähler-Variable mithilfe der Linearen Regression. Je mehr Werte für die Außentemperatur und den Zähler verfügbar sind, desto genauer kann der erwartete Verbrauch ermittelt werden.
### Funktionsumfang
- Errechnet aus zwei Variablen einen wahrscheinlichen Verbrauch
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Verbrauchsverhalten'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Verbrauchsverhalten'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------------------- | -------------------------------------------------------------------------------------------------- |
| Variable für Außentemperatur | Geloggte Variable für die Außentemperatur |
| Variable für den Zähler | Geloggte Variable für den Zähler |
| Periode | Zeitraum für den die Berechnung durchgeführt werden soll |
| Limit | Maximale Anzahl der Datensätze die für die Regression genutzt werden sollen. 0 = Keine Limitierung |
| Intervall | Zeitintervall des Timers in dem die Variable erneut berechnet werden soll |
| Berechnen | Button, um die Variablen neu zu berechnen |
Für die Zählervariable müssen mindestens 2 Datensätze für 3 aufeinderfolgenden Perioden vorhanden sein, damit eine Berechnung erfolgen kann. Für Periode Tag wird die stündliche Aggregation der Variablen genutzt. Für alle anderen Perioden wird die tägliche Aggregation der Variablen genutzt.
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------------------------------- | ----- | ------------------------------------------------------------------------------------------------ |
| Erwartung der aktuelle Periode | float | Zeigt den erwarteten Verbrauch auf Basis der Außentemperatur der laufenden Periode an |
| Erwartung der letzten Periode | float | Zeigt den erwarteten Verbrauch auf Basis der Außentemperatur der letzten Periode an |
| Hochrechnung der aktuelle Periode | float | Zeigt den hochgerechneten Verbrauch der laufenden Periode an |
| Hochrechnung der letzten Periode | float | Zeigt den hochgerechneten Verbrauch der letzten Periode an |
| Wert der aktuellen Periode | float | Zeigt den aktuellen Verbrauch der laufenden Periode an |
| Wert der letzten Periode | float | Zeigt den Verbrauch der letzten Periode an |
| Prozent der aktuellen Periode | float | Zeigt in wie weit sich der hochgerechnete Verbrauch vom erwarteten Wert prozentual unterscheiden |
| Prozent der letzten Periode | float | Zeigt in wie weit sich der hochgerechnete Verbrauch vom erwarteten Wert prozentual unterscheiden |
| Bestimmtheitsmaß der aktuellen Periode | float | Genauigkeit der Erwartungsberechnung der laufenden Periode an |
| Bestimmtheitsmaß der letzten Periode | float | Genauigkeit der Erwartungsberechnung der letzten Periode an |
#### Mathematische Formeln
Die Erwartung erfolgt anhand der einfachen linearen Regression. [Mathematisch Erklärt](https://de.wikipedia.org/wiki/Lineare_Einfachregression). Hier wird die Summe des positiven Ergebnis aus der Rechnung m * Temperaturdurchschnit (je nach Periodendauer) * b errechnet. m und b werden durch die linearen Regression bestimmt.
Die Hochrechnung besteht wiederrum aus dem Durchschnittswert der Periode multipliziert mit der Periodenlänge.
## VBV_UpdateCalculation
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/verbrauchsverhalten/vbv-updatecalculation/
`bool VBV_UpdateCalculation(int $InstanzID)`
_Benötigt Symcon >= 5.0_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
VBV_UpdateCalculation(12345);
```
---
# VirtuelleMessstelle
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/virtuellemessstelle/
_Benötigt Symcon >= 5.5_
Rechnet positive Variablenänderungen nach einstellbaren Regeln mit Veränderungen einer Hauptvariable zusammen und addiert dieses mit dem Wert einer Variable.
*Das Modul „Smart Energy Box“ wurde in Kooperation zwischen der Symcon GmbH, Stark Elektronik GmbH und der Hochschule Biberach (Institut IGE) im Rahmen des Landesprojektes EnMa HAW: Konzept für automationsgestütztes Energiemanagement an nicht-universitären Hochschulen in Baden-Württemberg entwickelt.*
### Funktionsumfang
- Auswahl einer geloggten Variable als primären Messstelle
- Auswahl beliebig vieler Variablen als sekundären Messstellen
- Einstellbar, ob die Veränderungen der sekundären Messtellen zu den Veränderungen der primären Messstellen addiert oder subtrahiert werden sollen
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Virtuelle Messstelle'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Virtuelle Messstelle'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
### Konfigurationsseite:
| Name | Beschreibung |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Primäre Messstelle | Auswahl einer geloggten Variable |
| Sekundäre Messstelle | Mehrfachauswahl von Variablen |
| Operation | Addieren/Subtrahieren Option, ob die positive Veränderung der sekundären Messstelle zu der primären Messstelle hinzugefügt oder abgezogen werden soll |
| Variable | Auswahl einer geloggte Variable als sekundäre Messstelle |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------- | ----- | -------------------- |
| Ergebnis | Float | Errechnetes Ergebnis |
## VM_Update
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/virtuellemessstelle/vm-update/
`bool VM_Update(int $InstanzID, float $PrimaryDelta)`
_Benötigt Symcon >= 5.5_
Berechnet die Steigung der sekundären Messstellen und addiert dieses mit dem Ergebnis
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$PrimaryDelta` (float): Positive Veränderung der Hauptmessstelle
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Positive Veränderung der Hauptmessstelle
**Beispiel**
```text
VM_Update(12345, 5.3);
```
---
# Virtueller Zähler
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/virtueller-zaehler/
_Benötigt Symcon >= 6.0_
Das Modul stellt eine Eingabemaske für manuell abgelesene Zählerstände bereit. Es übernimmt den manuellen Eintrag, prüft diesen auf Plausibilität und übergibt den Wert an eine Zählervariable. Um auf Plausibilität zu prüfen kann ein Grenzwert eingestellt werden.
### Funktionsumfang
- Prüfung auf Plausibilität
- Anzeige des zuletzt eingegebenen Zählerstandes
- Eingabemaske für neuen Zählerstand
### Software-Instalation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Virtueller Zähler installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Virtueller Zähler'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| Grenzwert | Zahl, um die ein neuer Zählerwert maximal steigen darf. Ist der Grenzwert 0 wird nicht auf diesen überprüft |
| Erfordere Bestätigung zum Übernehmen | Wenn Aktiviert, muss ein Script ausgeführt werden um die Plausibilitätsprüfung anzustoßen |
| Logging Aktivieren | Button, welcher das Logging der Zählervariable aktiviert. Er wird ausgeblendet, wenn das Logging aktiviert ist. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktueller Zählerstand | Float | Zeigt den zuletzt eingetragenen Zählerstand an |
| Neuer Zählerstand | String | Eingabevariable für neuen Zählerstand |
| Sicher neuen Zählerstand zu setzen: Eingabe des neuen Zählerstandes | Boolean | Erscheint, wenn der neue Zählerstand den Aktuellen um den Grenzwert überschreitet. Der Wert kann mit der Bestätigung trotzdem übernommen werden |
#### Profile
| Name | Typ |
| -------------------- | ------- |
| VZ.Confirm | Boolean |
| VZ.NewCounterReading | String |
#### Skripte
| Bezeichnung | Beschreibung |
| ------------------ | ------------------------------------------------------------------------------------------------------------------ |
| Zählerstand setzen | Führt die Überprüfung auf Plausibilität aus und schiebt den Wert bei Erfolg in die Vaiable "Aktueller Zählerstand" |
### Visualisierung
Über die Visualisierung kann der neue Zählerstand eingegeben werden und das Skript ausgeführt werden, zudem wird der zuletzt übernommene Zählerstand angezeigt.
## VZ_WriteNewCounterValue
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/virtueller-zaehler/vz-writenewcountervalue/
`void VZ_WriteNewCounterValue(int $InstanzID)`
_Benötigt Symcon >= 6.0_
Setzt nach Überprüfung den aktuellen Zählerstand
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (void): Die Funktion liefert keinerlei Rückgabewert.
ID der Instanz
**Beispiel**
```php
VZ_WriteNewCounterValue(12345);
```
---
# Zählerstand (Tag)
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/zaehlerstand-tag/
_Benötigt Symcon >= 4.2_
Das Modul erlaubt die Auswahl eines Datums und zeigt dann den jeweiligen (Ersten/Letzten) Zählerwert dieses Tages an.
### Funktionsumfang
- Bei Änderung des Datums wird je nach Wert-Auswahl der Erste/Letzte gelesene Zählerwert der geloggten Variable ausgegeben.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Zählerstand (Tag) installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Zählerstand (Tag)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------ | ---------------------------------------------------------- |
| Quelle | Quellvariable, welche als Datenquelle genutzt werden soll. |
| Wert | Erster/Letzter Wert des Tages. |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----------- | ------------- | ------------------------------- |
| Zählerstand | Integer/Float | Wert für das ausgewählte Datum. |
### Visualisierung
Über die Visualisierung wird die Variable angezeigt. Es kann ein Datum gewählt werden für das der Zählerstand (jeweils der Erste/Letzte des Tages) angezeigt wird.
## ZST_Calculate
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/zaehlerstand-tag/zst-calculate/
`bool ZST_Calculate(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
ZST_Calculate(12345);
```
---
# Zählerüberlauf
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/energie/zaehlerueberlauf/
_Benötigt Symcon >= 4.2_
Das Modul stellt überlaufende Zähler als kontinuierliche Zähler dar.
### Funktionsumfang
- Berechnet den Gesamtwert einer Variable und zählt diese hoch, obwohl das Gerät einen Überlauf hat.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Zähler-Überlauf installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Zählerüberlauf'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ----------- | ------------------------------------------------------------------------------------- |
| Quelle | Quellvariable, welche für die Berechnung genutzt werden soll. |
| Maximalwert | Ab welchem Wert ein Überlauf stattfindet. Der maximale Wert, welcher das Gerät zählt. |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------ | ----- | ------------------------------- |
| Zähler | Float | Fortlaufend hochzählender Wert. |
---
# Kachel Visualisierung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/kachel-visualisierung/
_Benötigt Symcon >= 7.0_
> **Hinweis:** Eine generelle Anleitung kann im Bereich [Kachel Visualisierung](https://www.symcon.de/de/llms/components/tile-visualization.md) gefunden werden.
| Funktion | Beschreibung |
| ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| [Benachrichtigung senden](https://www.symcon.de/de/llms/modules/tile-visualization.md) | Push-Benachrichtigungen, können an alle verbundenen Geräte gesendet und mit einem Benachrichtigungstyp versehen werden. |
| [Erweiterte Benachrichtigung senden](https://www.symcon.de/de/llms/modules/tile-visualization.md) | Push-Benachrichtigungen können an alle verbundenen Geräte gesendet und mit einem eigenen Icon und Ton versehen werden. |
## VISU_OpenObject
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/kachel-visualisierung/visu-openproject/
`void VISU_OpenObject(int $InstanzID, int $ObjektID, string $TokenListe)`
_Benötigt Symcon >= 8.2_
öffnet ein bestimmtes Objekt in der Kachel Visualisierung an.
**Parameter**
- `$InstanzID` (int): ID der Kachel Visualisierung
- `$ObjektID` (int): ID des Objektes, welches in der Visualisierung angezeigt werden soll.
- `$TokenListe` (string)
Liste der Tokens der Geräte auf denen das Objekt geöffnet werden kann. Kann leer gelassen werden, um das Objekt auf allen Geräten zu öffnen.
> **Hinweis:** Der TokenListe Parameter wird noch nicht unterstützt und sollte als leerer String übergeben werden.
**Rückgabewert** (void): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis die __TRUE__, andernfalls __FALSE__.
Liste der Tokens der Geräte auf denen das Objekt geöffnet werden kann. Kann leer gelassen werden, um das Objekt auf allen Geräten zu öffnen.
> **Hinweis:** Der TokenListe Parameter wird noch nicht unterstützt und sollte als leerer String übergeben werden.
**Beispiel**
```php
VISU_OpenObject(12345, 54321, '');
```
## VISU_PostNotification
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/kachel-visualisierung/visu-postnotification/
`mixed VISU_PostNotification(int $InstanzID, string $Titel, string $Text, string $Type, int $TargetID)`
_Benötigt Symcon >= 7.0_
sendet eine Push-Benachrichtigung auf die Kachel Visualisierung
**Parameter**
- `$InstanzID` (int): ID der Kachel Visualisierung
- `$Titel` (string): Titel der Meldung (maximal 32 Zeichen). Kann auch leer sein.
- `$Text` (string): Text der Meldung (maximal 256 Zeichen).
- `$Type` (string): Aktuell werden unabhängig vom Typ die Standard-Töne und -Icons des Endgeräts verwendet.
- `$TargetID` (int): Die ID des Objektes welches beim antippen der Meldung geöffnet wird
**Rückgabewert** (mixed): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis die ID der Benachrichtigung, andernfalls __FALSE__.
Die ID des Objektes welches beim antippen der Meldung geöffnet wird
**Beispiel**
```php
VISU_PostNotification(12345, 'Wetter', 'Es regnet bald', 'Info', 54321);
```
## VISU_PostNotificationEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/kachel-visualisierung/visu-postnotificationex/
`mixed VISU_PostNotificationEx(int $InstanzID, string $Titel, string $Text, string $Icon, string $Sound, int $TargetID)`
_Benötigt Symcon >= 7.0_
sendet eine Push-Benachrichtigung auf die Kachel Visualisierung
**Parameter**
- `$InstanzID` (int): ID der Kachel Visualisierung
- `$Titel` (string): Titel der Meldung (maximal 32 Zeichen). Kann auch leer sein.
- `$Text` (string): Text der Meldung (maximal 256 Zeichen).
- `$Icon` (string): Wenn nicht leer, dann wird das Icon angezeigt. Siehe [Icons](https://www.symcon.de/de/llms/components/icons.md)
- `$Sound` (string)
Beim empfangen der Meldung abgespielter Ton. (alarm
bell, boom, buzzer, connected, dark, digital, drums, duck, full, happy, horn, inception, kazoo, roll, siren, space, trickling, turn)
- `$TargetID` (int): Die ID des Objektes welches beim antippen der Meldung geöffnet wird.
**Rückgabewert** (mixed): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis die ID der Benachrichtigung, andernfalls __FALSE__.
Die ID des Objektes welches beim antippen der Meldung geöffnet wird.
**Beispiel**
```php
VISU_PostNotificationEx(12345, 'Haustür', 'Bewegung erkannt', 'Alert', 'alarm', 54321);
```
---
# WebFront Visualisierung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/
> **Hinweis:** Eine generelle Anleitung kann im Bereich[Webfront Visualisierung](https://www.symcon.de/de/llms/components/webfront-visualization.md) gefunden werden.
Ab IP-Symcon Version 2.2 ist es möglich, das WebFront von IP-Symcon aus zu steuern und Meldungen an das WebFront zu senden. Dem Benutzer stehen dabei folgende Funktionen zur Verfügung, um das WebFront zu beeinflussen.
| Funktion | Beschreibung |
| ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Audio-Notification senden](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Audio-Benachrichtigungen können an das WebFront gesendet werden, welche dann vom Web-Browser akustisch wiedergegeben werden. |
| [Notification senden](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Kleine Benachrichtigungen können an das WebFront gesendet werden, die mit einem Icon, Kopfzeile und Text an der rechten Seite im WebFront angezeigt werden. |
| [Popup öffnen](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Um größere Meldungen anzeigen zu können, kann ein Popup geöffnet werden, welches fast den vollständigen Bildschirm ausfüllt und wichtige Meldungen darstellt, die nicht in eine kleine Notification passen. |
| [Push-Notification senden](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Push-Benachrichtigungen können an die Mobilen Apps (iOS/Android) gesendet werden, die direkt auf dem Mobilgerät angezeigt und akustisch signalisiert werden. |
| [WebFront neu laden](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Lädt das WebFront komplett neu (gleicht einem Neuladen der Seite im Browser (F5)). |
| [WebFront Reiter auswählen](https://www.symcon.de/de/llms/modules/webfront-visualization.md) | Wählt den Reiter mit der angegebenen ID aus. Diese Funktion ist nützlich, um z.B. bei einer Bewegung an der Haustür zum Tür-Kamera-Reiter zu springen. |
## WFC_AudioNotification
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-audionotification/
`bool WFC_AudioNotification(int $InstanzID, string $Titel, int $MediaID)`
_Benötigt Symcon >= 3.0_
sendet eine Audio-Meldung auf das WebFront
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
- `$Titel` (string): Titel der Audio-Meldung
- `$MediaID` (int): ID des Media-Objekts, welches vom Typ "Ton" ist
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Media-Objekts, welches vom Typ "Ton" ist
**Beispiel**
```php
WFC_AudioNotification(12345, 'Gong!', 55541); //55541 ist die ID des Media Objekts in IP-Symcon
```
## WFC_OpenCategory
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-opencategory/
`bool WFC_OpenCategory(int $InstanzID, int $KategorieID)`
_Benötigt Symcon >= 4.1_
Öffnet im WebFront eine Kategorie als Popup
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
- `$KategorieID` (int): ID der Kategorie
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Kategorie
**Beispiel**
```php
WFC_OpenCategory(12345, 45678);
```
## WFC_PushNotification
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-pushnotification/
`bool WFC_PushNotification(int $InstanzID, string $Titel, string $Text, string $Sound, int $TargetID)`
_Benötigt Symcon >= 3.4_
sendet eine Push-Nachricht an die mobilen Apps
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
- `$Titel` (string): Titel der Meldung (maximal 32 Zeichen). Kann auch leer sein.
- `$Text` (string): Text der Meldung (maximal 256 Zeichen).
- `$Sound` (string): Wird in den Apps ab Version 3.0.6 ausgewertet
- `$TargetID` (int): Es kann beim Öffnen der Push Nachricht direkt zu einem Objekt gesprungen werden. (ab Version 5.0)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Es kann beim Öffnen der Push Nachricht direkt zu einem Objekt gesprungen werden. (ab Version 5.0)
**Beispiel**
```php
WFC_PushNotification(12345, 'Warnung', 'Es regnet bald!', '', 0);
```
## WFC_Reload
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-reload/
`bool WFC_Reload(int $InstanzID)`
_Benötigt Symcon >= 2.2_
lädt das WebFront auf dem Client-Rechner neu
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der WebFront Visualisierung
**Beispiel**
```php
WFC_Reload(12345);
```
## WFC_SendNotification
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-sendnotification/
`bool WFC_SendNotification(int $InstanzID, string $Titel, string $Text, string $Icon, int $Timeout)`
_Benötigt Symcon >= 2.2_
sendet eine kleine Meldung auf das WebFront
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
- `$Titel` (string): Titel der Meldung
- `$Text` (string): Text der Meldung. Kann auch leer sein.
- `$Icon` (string): Wenn nicht leer, dann wird das Icon angezeigt. Siehe [Icons](https://www.symcon.de/de/llms/components/icons.md)
- `$Timeout` (int): Anzuzeigende Zeit in Sekunden. 0 = Nur ausblenden, wenn der Nutzer auf die Meldung klickt.
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Anzuzeigende Zeit in Sekunden. 0 = Nur ausblenden, wenn der Nutzer auf die Meldung klickt.
**Beispiel**
```php
WFC_SendNotification(12345, 'Test', 'Dies ist ein toller Test', 'Speaker', 4);
```
## WFC_SendPopup
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-sendpopup/
`bool WFC_SendPopup(int $InstanzID, string $Titel, string $Text)`
_Benötigt Symcon >= 2.2_
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
- `$Titel` (string): Angezeigter Titel
- `$Text` (string): Angezeigter Text (HTML wird gefiltert!)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Angezeigter Text (HTML wird gefiltert!)
**Beispiel**
```php
WFC_SendPopup(12345, "Test", "Eine nette Meldung");
// Ausgabe:
// "Eine nette
// Meldung"
```
## WFC_SwitchPage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/visualisierungen/webfront-visualisierung/wfc-switchpage/
`bool WFC_SwitchPage(int $InstanzID, string $PageName)`
_Benötigt Symcon >= 2.2_
wechselt den Reiter im WebFront
**Parameter**
- `$InstanzID` (int): ID der WebFront Visualisierung
- `$PageName` (string): Name des Reiters (z.B. item1234)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Name des Reiters (z.B. item1234)
**Beispiel**
```php
WFC_SwitchPage(12345, "item1234");
```
---
# Amazon Alexa
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/
_Benötigt Symcon >= 5.0_
### Beschreibung
Das Amazon Alexa-Modul ermöglicht die Steuerung von Geräten durch Amazon Alexa. Dies beinhaltet insbesondere die Sprachsteuerung über Echo Dots.
### Einbindung in IP-Symcon
> **Hinweis:** Die Verwendung des Amazon Alexa-Moduls erfordert eine aktivierte Verbindung zum [Connect-Dienst](https://www.symcon.de/de/llms/modules/connect-control.md), welche wiederum eine laufende Subskription erfordert.
[Video](https://www.youtube.com/embed/AbvauPdbLa8?rel=0&cc_load_policy=1)
#### Amazon Alexa-Instanz erstellen
Damit das Amazon Alexa-Modul verwendet werden kann, muss dieses zuerst über den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) installiert werden. Hierfür muss der [Module Store](https://www.symcon.de/de/llms/components/management-console.md) geöffnet werden. Dieser befindet sich im oberen rechten Bereich. Über das Suchfeld kann via "Alexa" das Modul Amazon Alexa gefunden werden. Beim öffnen des gefundenen Modules, kann im folgenden Dialog die Installation des Moduls via "Installieren"-Knopf angestoßen werden.


Im Anschluss öffnet sich der Hinzufügendialog zum Erstellen einer Amazon Alexa Instanz.
Soll die Instanz manuell hinzugefügt werden muss eine [Instanz](https://www.symcon.de/de/llms/concepts.md) vom Amazon Alexa-Modul erstellt werden. Da muss zuerst der Objektbaum geöffnet werden. In diesem den Hinzufügen-Button "+" unten rechts betätigen und [Instanz](https://www.symcon.de/de/llms/concepts.md) auswählen.

In der Modulliste das Gerät "Alexa" vom Hersteller "Amazon" auswählen. Der Ort sollte nicht verändert werden, der Name kann beliebig gewählt werden. Abschließend mit "OK" bestätigen.

Nach der Erstellung der Amazon Alexa-Instanz öffnet sich diese automatisch und kann eingerichtet werden.
#### Amazon Alexa-Instanz einrichten
Das Modul bietet verschiedene Gerätetypen an, welche verwendet werden können. Inbesondere um die initiale Einrichtung zu beschleunigen, sollte die Gerätesuche verwendet werden. Später können weitere Geräte unkompliziert manuell hinzugefügt werden.
Um die Gerätesuche zu starten muss auf den Button "Suche nach Geräten" am oberen Ende der Instanzkonfiguration geklickt werden

Daraufhin öffnet sich ein Dialog, welcher nach einer Ladezeit gefundene Geräte darstellt, welche bisher noch nicht eingebunden wurden. Die Instanzen werden nach Gerätetypen aufgeteilt. Unter jeder Instanz werden die Statusvariablen dargestellt, welche bei einer Einbindung vom Modul verwendet würden. Soll eine Instanz eingebunden werden, so muss die Checkbox in dieser Zeile ausgewählt werden. Standardmäßig wird der Name der Instanz verwendet. Soll dieser angepasst werden, kann dies über das "Bearbeiten"-Symbol rechts im Listeneintrag getan werden. Nachdem alle gewünschten Geräte ausgewählt und ggfs. passend benannt wurden, muss die Auswahl mit "Geräte hinzufügen" bestätigt werden. Dann werden die gewählten Geräte in die dazugehörigen Listen in der Instanzkonfiguration hinzugefügt.

Um ein Gerät manuell einzurichten, wird das dazugehörige Panel ausgeklappt und in der entsprechenden Liste durch einen Klick auf "Hinzufügen" ein neuer Eintrag erstellt.

Jeder Eintrag erfordert einen Namen unter welchem das Gerät bei Amazon Alexa bekannt sein wird. Weitere Parameter hängen vom jeweiligen Gerätetyp ab und können den dazugehörigen Seiten der Dokumentation entnommen werden. Nachdem alle Parameter gesetzt sind, wird das Gerät mit "OK" bestätigt.

#### Mögliche Gerätetypen
* [Licht (Schalter)](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Licht (Dimmer)](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Licht (Farbe)](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Licht (Experte)](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Schloss](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Temperatursensor](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Thermostat](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Lautsprecher](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Lautsprecher mit Stummschaltung](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Fernsehgerät](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Medienabspieler](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Rollladen](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Generischer Schalter](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Generischer Slider](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Szenen](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
* [Szenen (deaktivierbar)](https://www.symcon.de/de/llms/modules/amazon-alexa.md)
Nachdem alle Geräte eingerichtet sind, werden diese mit einem Klick auf "Änderungen übernehmen" bestätigt.

Nach dem Übernehmen sollte sichergestellt werden, dass bei allen Geräten "OK" in der Spalte "Status" steht. Ist dies nicht der Fall, so enthält die Spalte eine Fehlermeldung, welche über die Komplikation informiert.
Ebenfalls sollte geprüft werden, dass oben im Instanzeditor "Status: Symcon Connect ist OK" steht. Sollte dies nicht der Fall sein, muss der [Connect-Dienst](https://www.symcon.de/de/llms/modules/connect-control.md) aktiviert werden.

#### IP-Symcon mit Amazon Alexa verknüpfen
Abschließend muss IP-Symcon noch mit Amazon Alexa verknüpft werden, damit die Amazon Alexa-Instanz die Anfragen von Amazon Alexa empfangen kann. Hierfür muss zuerst der Symcon-Skill für Amazon Alexa installiert werden.
Die Installation erfolgt über die Amazon Alexa App.
Von der Startseite der App wird auf "Mehr" gewechselt und dort der Punkt "Skills und Spiele" angeklickt.

Dort wird in der Suche der Skill "Symcon" gesucht, auf den ersten Eintrag "Symcon" geklickt und der Button "Zur Verwendung aktivieren" gedrückt.

Dann sollte sich der Browser öffnen. Im Feld die E-Mail-Adresse eingeben, auf welche die verwendete IP-Symcon-Lizenz registriert ist, und mit "Send verification code" bestätigen. Es wird eine E-Mail mit einem Code an die angegebene E-Mail-Adresse geschickt. Den Code, der in dieser E-Mail steht, im Popup eintragen und mit "Verify code" bestätigen.

Eine Meldung "Symcon wurde erfolgreich verknüpft" sollte erscheinen. Abschließend müssen noch die eingerichteten Geräte von Amazon Alexa gesucht werden. Dies kann beispielsweise getan werden, indem "Alexa, suche nach Geräten" gesagt wird.
## Expertenoptionen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/expertenoptionen/
_Benötigt Symcon >= 5.0_
> **Achtung:** Die Expertenoptionen müssen üblicherweise nicht angepasst werden. Gehen Sie mit diesen Optionen sorgsam um, damit das Amazon Alexa Modul wie vorgesehen funktioniert.
### Optionen
| Name | Beschreibung |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status emulieren | Ist Status emulieren aktiv, so wartet das Modul nicht auf die Aktualisierung der geschalteten Variablen und gibt stattdessen einen neuen Zustand auf Basis des geschalteten Wertes zurück. |
| Expertengeräte anzeigen | Ist Expertengeräte anzeigen aktiviert, so werden Expertengeräte angezeigt. Expertengeräte sind Geräte, welche in der Konfiguration komplexer sind und ein tieferes Verständniss für IP-Symcon erfordern. |
## Fernsehgerät
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/fernsehgeraet/
_Benötigt Symcon >= 5.3_
> **Hinweis:** Fernsehgerät ist ein Expertengerät und wird nur angezeigt, wenn die entsprechende [Expertenoption](https://www.symcon.de/de/llms/modules/amazon-alexa.md) gesetzt ist.
### Beschreibung
Bei Geräten vom Typ Fernseher können diverse Parameter gesetzt werden. Das Gerät kann an und aus geschaltet werden, den Kanal wechseln, die Lautstärke einstellen, unterstützt Stummschaltung und kann den Eingang umstellen. Unterstützt ein Fernsehgerät nur manche dieser Eigenschaften, muss einfach nur der entsprechende Teil der Variablen definiert werden.
### Parameter
| Name | Beschreibung |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean, über welche das Gerät An oder Aus geschaltet wird (optional) |
| Kanalvariable | Eine schaltbare Variable vom Typ Integer mit einem Profil mit Assoziationen und Schrittweite 0. Die Assoziationen müssen durchnummeriert sein und bei 0 oder 1 beginnen (optional) |
| Lautstärkevariable | Eine schaltbare Variable vom Typ Integer oder Float, welche die Lautstärke kontrolliert (optional) |
| Stummvariable | Eine schaltbare Variable vom Typ Boolean, welche die Stummschaltung kontrolliert (optional) |
| Eingangsvariable | Eine schaltbare Variable vom Typ String, welche den verwendeten Eingang kontrolliert (optional) |
| Unterstützte Eingänge | In dieser Liste können die unterstützten Eingänge für die Eingangsvariable definiert werden. Ist die Eingangsvariable definiert, muss mindestens ein Eingang ausgewählt werden |
Mindestens eine der optionalen Variable muss definiert werden
> **Hinweis:** Werden optionale Variablen nicht gesetzt, so erkennt Alexa, dass das Gerät die dazugehörigen Eigenschaften nicht besitzt. Werden optionale Variablen erst später gesetzt, so muss eine erneute Suche nach Geräten durchgeführt werden bevor die neu freigeschaltete Funktion genutzt werden kann.
#### Mögliche Aktionen
> **Hinweis:** Beim Schalten von Lautstärken versteht Alexa die Anweisung häufig nicht, wenn auf einen prozentualen Wert geschaltet wird obwohl es um Prozentwerte geht. Daher sollte das "Prozent" beim Sprachbefehl weggelassen werden, also "schalte auf 40" statt "schalte auf 40 Prozent".
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| An oder Aus schalten | Schaltet die Schaltervariable auf True oder False | "Alexa, schalte __ an." |
| Auf Kanal schalten | Schaltet die Kanalvariable auf den Wert, dessen Assoziation dem genannten Kanal entspricht. Hierbei wird keine Groß- und Kleinschreibung betrachtet. Auch Leerzeichen werden ignoriert. | "Alexa, schalte __ auf ARD." |
| Kanal weiterschalten | Erhöht die Kanalvariable um 1. Steht die Variable aktuell auf dem letzten Kanal, wird stattdessen zum ersten Kanal gesprungen. | "Alexa, schalte __ einen Kanal weiter." |
| Lautstärke einstellen | Schaltet die Lautstärkevariable auf den angegebenen Wert | "Alexa, schalte die Lautstärke von __ auf 40." |
| Stumm oder Laut schalten | Schaltet die Stummvariable auf True oder False | "Alexa, schalte __ stumm." |
| Eingang umschalten | Schalte die Eingangsvariable auf den Namen des Eingangs | "Alexa, __ auf HDMI 1 umschalten" |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Generischer Schalter
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/generischer-schalter/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ generischer Schalter können An und Aus geschaltet werden. Innerhalb von Amazon Alexa werden die Geräte als allgemeine Schalter interpretiert und können für verschiedenste Geräte verwendet werden.
### Parameter
| Name | Beschreibung |
| ---------------- | ----------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ----------------------------------------- | ------------------------------ |
| An oder Aus schalten | Schaltet die Variable auf True oder False | "Alexa, schalte __ an." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ---------------- | ---------------- |
| Schaltervariable | ~Switch |
## Generischer Schieberegler
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/generischer-schieberegler/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ generischer Slider können auf einen prozentualen Wert geschaltet werden. Innerhalb von Amazon Alexa werden die Geräte als allgemeine Schalter interpretiert und können für verschiedenste Geräte verwendet werden.
### Parameter
| Name | Beschreibung |
| -------------- | ----------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Reglervariable | Eine schaltbare Variable vom Typ Integer oder Float |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ---------------------------------------------- | ----------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf 100% oder 0% | "Alexa, schalte __ an." |
| Wert einstellen | Schaltet die Variable auf den angegebenen Wert | "Alexa, schalte __ auf 40%." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| -------------- | -------------------------------------------- |
| Reglervariable | ~Intensity.100, ~Intensity.255, ~Intensity.1 |
## Lautsprecher
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/lautsprecher/
_Benötigt Symcon >= 5.0_
### Beschreibung
Bei Geräten vom Typ Lautsprecher kann die Lautstärke eingestellt werden.
### Parameter
| Name | Beschreibung |
| ------------------ | --------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Lautstärkevariable | Eine schaltbare Variable vom Typ Integer oder Float, welche die Lautstärke kontrolliert |
#### Mögliche Aktionen
> **Hinweis:** Beim Schalten von Lautstärken versteht Alexa die Anweisung häufig nicht, wenn auf einen prozentualen Wert geschaltet wird obwohl es um Prozentwerte geht. Daher sollte das "Prozent" beim Sprachbefehl weggelassen werden, also "schalte auf 40" statt "schalte auf 40 Prozent".
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| --------------------- | ---------------------------------------------- | ----------------------------------------------------- |
| Lautstärke einstellen | Schaltet die Variable auf den angegebenen Wert | "Alexa, schalte die Lautstärke von __ auf 40." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Lautsprecher mit Stummschaltung
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/lautsprecher-mit-stummschaltung/
_Benötigt Symcon >= 5.3_
### Beschreibung
Bei Geräten vom Typ Lautsprecher mit Stummschaltung kann die Lautstärke eingestellt werden. Zusätzlich kann das Gerät stumm und wieder laut geschaltet werden ohne die eingestellte Lautstärke zu verlieren.
### Parameter
| Name | Beschreibung |
| ------------------ | -------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Lautstärkevariable | Eine schaltbare Variable vom Typ Integer oder Float, welche die Lautstärke kontrolliert (optional) |
| Stummvariable | Eine schaltbare Variable vom Typ Boolean, welche die Stummschaltung kontrolliert (optional) |
Entweder Lautstärkevariable oder Stummvariable muss definiert sein
> **Hinweis:** Werden optionale Variablen nicht gesetzt, so erkennt Alexa, dass das Gerät die dazugehörigen Eigenschaften nicht besitzt. Werden optionale Variablen erst später gesetzt, so muss eine erneute Suche nach Geräten durchgeführt werden bevor die neu freigeschaltete Funktion genutzt werden kann.
#### Mögliche Aktionen
> **Hinweis:** Beim Schalten von Lautstärken versteht Alexa die Anweisung häufig nicht, wenn auf einen prozentualen Wert geschaltet wird obwohl es um Prozentwerte geht. Daher sollte das "Prozent" beim Sprachbefehl weggelassen werden, also "schalte auf 40" statt "schalte auf 40 Prozent".
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ------------------------ | -------------------------------------------------------- | ----------------------------------------------------- |
| Lautstärke einstellen | Schaltet die Lautstärkevariable auf den angegebenen Wert | "Alexa, schalte die Lautstärke von __ auf 40." |
| Stumm oder Laut schalten | Schaltet die Stummvariable auf True oder False | "Alexa, schalte __ stumm." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Licht (Dimmer)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/licht-dimmer/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Dimmer) beschreiben Lampen, welche gedimmt werden können.
### Parameter
| Name | Beschreibung |
| ------------------- | --------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Helligkeitsvariable | Eine schaltbare Variable vom Typ Integer oder Float, über welche das Licht gedimmt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ---------------------------------------------- | --------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf 100% oder 0% | "Alexa, schalte __ an." |
| Dimmen | Schaltet die Variable auf den angegebenen Wert | "Alexa, dimme __ auf 40%." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ------------------- | -------------------------------------------- |
| Helligkeitsvariable | ~Intensity.100, ~Intensity.255, ~Intensity.1 |
## Licht (Experte)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/licht-experte/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Experte) beschreiben Lampen, deren Eigenschaften in verschiedenen Variablen unabhängig voneinander geschaltet werden können.
### Parameter
| Name | Beschreibung |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean, über welche die Lampe An oder Aus geschaltet wird |
| Helligkeitsvariable | Eine schaltbare Variable vom Typ Integer oder Float, über welche das Licht gedimmt wird (optional) |
| Farbvariable | Eine schaltbare Variable vom Typ Integer mit dem Profil ~HexColor, über welche die Farbe des Lichts geschaltet wird (optional) |
| Farbtemperaturvariable | Eine schaltbare Variable vom Typ Integer oder Float, welche die Farbtemperatur in Kelvin darstellt (optional) |
> **Hinweis:** Werden optionale Variablen nicht gesetzt, so erkennt Alexa, dass die Lampe die dazugehörigen Eigenschaften nicht besitzt. Werden optionale Variablen erst später gesetzt, so muss eine erneute Suche nach Geräten durchgeführt werden bevor die neu freigeschaltete Funktion genutzt werden kann.
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ----------------------- | ---------------------------------------------------------- | ----------------------------------------- |
| An oder Aus schalten | Schaltet die Schaltervariable auf True oder False | "Alexa, schalte __ an." |
| Dimmen | Schaltet die Helligkeitsvariable auf den angegebenen Wert | "Alexa, dimme __ auf 40%." |
| Farbe schalten | Schaltet die Farbvariable auf die angegebene Farbe | "Alexa, schalte __ auf rot." |
| Farbtemperatur schalten | Schaltet die Farbtemperaturvariable auf den passenden Wert | "Alexa, schalte __ auf Tageslicht" |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden. Um als Expertenlicht erkannt zu werden, muss mindestens die Schaltervariable und eine weitere Variable erkannt werden.
| Variable | Mögliche Profile |
| ---------------------- | -------------------------------------------- |
| Schaltervariable | ~Switch |
| Helligkeitsvariable | ~Intensity.100, ~Intensity.255, ~Intensity.1 |
| Farbvariable | ~HexColor |
| Farbtemperaturvariable | ~TWColor |
## Licht (Farbe)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/licht-farbe/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Farbe) beschreiben Lampen, welche beliebige Farben annehmen können.
### Parameter
| Name | Beschreibung |
| ------------ | ------------------------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Farbvariable | Eine schaltbare Variable vom Typ Integer mit dem Profil ~HexColor, über welche die Farbe des Lichts geschaltet wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ----------------------------------------------------------------------------- | ----------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf Weiß oder Schwarz | "Alexa, schalte __ an." |
| Dimmen | Schaltet Helligkeit der aktuellen Farbe der Variable auf den angegebenen Wert | "Alexa, dimme __ auf 40%." |
| Farbe schalten | Schaltet die Variable auf die angegebene Farbe | "Alexa, schalte __ auf rot." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ------------ | ---------------- |
| Farbvariable | ~HexColor |
## Licht (Schalter)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/licht-schalter/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Schalter) beschreiben Lampen, welche an- und ausgeschaltet werden können.
### Parameter
| Name | Beschreibung |
| ---------------- | ------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean, über welche das Licht An oder Aus geschaltet wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ----------------------------------------- | ------------------------------ |
| An oder Aus schalten | Schaltet die Variable auf True oder False | "Alexa, schalte __ an." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ---------------- | ---------------- |
| Schaltervariable | ~Switch |
## Medienabspieler
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/medienabspieler/
_Benötigt Symcon >= 5.4_
### Beschreibung
Bei Geräten vom Typ Medienabspieler können diverse Parameter gesetzt werden. Das Gerät kann an und aus geschaltet werden, die Lautstärke wechseln, unterstützt Stummschaltung und kann die Wiedergabe steuern. Unterstützt ein Medienabspieler nur manche dieser Eigenschaften, muss einfach nur der entsprechende Teil der Variablen definiert werden.
### Parameter
| Name | Beschreibung |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean, über welche das Gerät An oder Aus geschaltet wird (optional) |
| Lautstärkevariable | Eine schaltbare Variable vom Typ Integer oder Float, welche die Lautstärke kontrolliert (optional) |
| Stummvariable | Eine schaltbare Variable vom Typ Boolean, welche die Stummschaltung kontrolliert (optional) |
| Abspielvariable | Eine schaltbare Variable vom Typ Integer mit dem Profil ~Playback oder ~PlaybackPreviousNext, welche den Zustand der Wiedergabe darstellt; Je nach Profil bietet Alexa auch nur die dazugehörigen Aktionen an, also Stop, Play und Pause für ~Playback und zusätzlich Zurück und Weiter für ~PlackbackPreviousNext (optional) |
Mindestens eine der optionalen Variablen muss definiert werden
> **Hinweis:** Werden optionale Variablen nicht gesetzt, so erkennt Alexa, dass das Gerät die dazugehörigen Eigenschaften nicht besitzt. Werden optionale Variablen erst später gesetzt, so muss eine erneute Suche nach Geräten durchgeführt werden bevor die neu freigeschaltete Funktion genutzt werden kann.
#### Mögliche Aktionen
> **Hinweis:** Beim Schalten von Lautstärken versteht Alexa die Anweisung häufig nicht, wenn auf einen prozentualen Wert geschaltet wird obwohl es um Prozentwerte geht. Daher sollte das "Prozent" beim Sprachbefehl weggelassen werden, also "schalte auf 40" statt "schalte auf 40 Prozent".
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ------------------------ | -------------------------------------------------------- | ----------------------------------------------------- |
| An oder Aus schalten | Schaltet die Schaltervariable auf True oder False | "Alexa, schalte __ an." |
| Lautstärke einstellen | Schaltet die Lautstärkevariable auf den angegebenen Wert | "Alexa, schalte die Lautstärke von __ auf 40." |
| Stumm oder Laut schalten | Schaltet die Stummvariable auf True oder False | "Alexa, schalte __ stumm." |
| Wiedergabe einstellen | Schaltet die Abspielvariable auf den angegebenen Wert | "Alexa, __ abspielen." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden. Um als Medienabspieler erkannt zu werden, muss mindestens die Abspielvariable erkannt werden.
| Variable | Mögliche Profile |
| ------------------ | ----------------------------------------------------- |
| Schaltervariable | ~Switch |
| Lautstärkevariable | Diese Variable wird bei der Gerätesuche nicht erkannt |
| Stummvariable | Diese Variable wird bei der Gerätesuche nicht erkannt |
| Abspielvariable | ~Playback, ~PlaybackPreviousNext |
## Rollladen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/rollladen/
_Benötigt Symcon >= 5.3_
### Beschreibung
Geräte vom Typ Rollladen können geöffnet und geschlossen werden. Unterstützt das Gerät eine prozentuale Öffnung, so ist diese ebenfalls steuerbar.
### Parameter
| Name | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Rollladenvariable | Eine schaltbare Variable vom Typ Integer oder Float, welche das Profil ~ShutterMoveStop oder ~ShutterMoveStep unterstützt. Alternativ kann eine Variable verwendet werden, welcher durch ihr Profil ein Minimal- und Maximalwert zugewiesen wurde |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| Öffnen | Schaltet die Variable bei einem ~ShutterMove-Profil auf "Öffnen". Ansonsten wird die Variable auf den Minimalwert des Profils geschaltet. | "Alexa, öffne __" |
| Schließen | Schaltet die Variable bei einem ~ShutterMove-Profil auf "Schliessen". Ansonsten wird die Variable auf den Maximalwert des Profils geschaltet. | "Alexa, schließe __" |
| Prozentual öffnen | Schaltet die Variable bei einem ~ShutterMove-Profil auf "Öffnen" falls der Prozentsatz größer als 50% ist, sonst auf "Schliessen". Ansonsten wird die Variable entsprechend des Prozentsatzes geschaltet. Es ist zu beachten, dass bei einer vollen Öffnung die Variable auf 0% geschaltet wird und dies bei anderen Prozentwerten auch entsprechend angewandt wird. Wird also beispielsweise zu 30% geöffnet, so wird die Variable auf 70% geschaltet. | "Alexa, öffne __ zu 30%" |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ----------------- | -------------------------------------------------------------------------------- |
| Rollladenvariable | ~ShutterMoveStop, ~ShutterMoveStep, ~Intensity.100, ~Intensity.255, ~Intensity.1 |
## Schloss
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/schloss/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Schloss können verschlossen werden.
### Parameter
| Name | Beschreibung |
| --------------- | --------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schlossvariable | Eine schaltbare Variable vom Typ Boolean, über welche das Schloss geschaltet wird |
#### Mögliche Aktionen
> **Hinweis:** Bevor ein Schloss entriegelt werden kann, muss dies in der Alexa App aktiviert werden.
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ---------- | ------------------------------- | ------------------------------- |
| Verriegeln | Schaltet die Variable auf True | "Alexa, verschließe __." |
| Entriegeln | Schaltet die Variable auf False | "Alexa, entriegle __." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| --------------- | -------------------------------------------- |
| Schlossvariable | ~Lock, ~Lock.Reversed, ~Door, ~Door.Reversed |
## Szenen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/szenen/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Szene können aktiviert werden und beliebige Aktionen auslösen.
### Parameter
| Name | Beschreibung |
| ---------------------- | ----------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Aktion beim Aktivieren | Eine Aktion, welche beim Aktivieren der Szene ausgeführt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ---------------- | -------------------- | ----------------------------- |
| Szene aktivieren | Führt die Aktion aus | "Alexa, aktiviere __." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Szenen (deaktivierbar)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/szenen-deaktivierbar/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Szene können aktiviert und deaktiviert werden und dabei beliebige Aktionen auslösen.
### Parameter
| Name | Beschreibung |
| ------------------------ | ----------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Aktion beim Aktivieren | Eine Aktion, welche beim Aktivieren der Szene ausgeführt wird |
| Aktion beim Deaktivieren | Eine Aktion, welche beim Deaktivieren der Szene ausgeführt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ------------------ | ------------------------------------- | ------------------------------- |
| Szene aktivieren | Führt die Aktion zum Aktivieren aus | "Alexa, aktiviere __." |
| Szene deaktivieren | Führt die Aktion zum Deaktivieren aus | "Alexa, deaktiviere __." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Temperatursensor
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/temperatursensor/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Temperatursensor messen Temperaturen.
### Parameter
| Name | Beschreibung |
| -------------- | ------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Sensorvariable | Eine Variable vom Typ Float, welche die aktuelle Temperatur in °C enthält |
#### Mögliche Aktionen
> **Hinweis:** Momentan scheint Alexa keine direkten Anfragen an den Temperatursensor zu unterstützen. Daher muss für eine sprachliche Abfrage der Umweg über eine [Gruppe](https://www.amazon.de/gp/help/customer/display.html?nodeId=GS8URL9U6PW8SPTA) gegangen werden. Sobald der Temperatursensor Teil einer Gruppe ist, kann die Temperatur der Gruppe abgefragt werden.
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ------------------- | -------------------------------------------- | ------------------------------------------- |
| Temperatur abfragen | Fragt die aktuelle Temperatur des Sensors ab | "Alexa, welche Temperatur hat __?" |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Thermostat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/amazon-alexa/thermostat/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Thermostat können Temperaturen einstellen.
### Parameter
| Name | Beschreibung |
| -------- | ------------------------------------------------------------------------------------ |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Variable | Eine schaltbare Variable vom Typ Float, durch welche die Temperatur eingestellt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| --------------------- | --------------------------------------------------- | ------------------------------------- |
| Temperatur einstellen | Schalte die Variable auf die angegebene Temperatur. | "Alexa, schalte __ auf 35 °C." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| -------- | ------------------------------- |
| Variable | ~Temperature, ~Temperature.Room |
---
# Google Assistant
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/
_Benötigt Symcon >= 5.0_
### Beschreibung
Das Google Assistant-Modul ermöglicht die Steuerung von Geräten durch Google Assistant. Dies beinhaltet insbesondere die Sprachsteuerung über Google Home.
### Einbindung in IP-Symcon
> **Hinweis:** Die Verwendung des Google Assistant-Moduls erfordert eine aktivierte Verbindung zum [Connect-Dienst](https://www.symcon.de/de/llms/modules/connect-control.md), welche wiederum eine laufende Subskription erfordert.
#### Google Assistant-Instanz erstellen
Damit das Google Assistant-Modul verwendet werden kann, muss dieses zuerst über den [Module Store](https://www.symcon.de/de/llms/components/management-console.md) installiert werden. Hierfür muss der [Module Store](https://www.symcon.de/de/llms/components/management-console.md) geöffnet werden. Dieser befindet sich im oberen rechten Bereich. Über das Suchfeld kann via "Assistant" das Modul Google Assistant gefunden werden. Beim öffnen des gefundenen Modules, kann im folgenden Dialog die Installation des Moduls via "Installieren"-Knopf angestoßen werden.


Im Anschluss öffnet sich der Hinzufügendialog zum Erstellen einer Google Assistant Instanz.
Soll die Instanz manuell hinzugefügt werden muss eine [Instanz](https://www.symcon.de/de/llms/concepts.md) vom Google Assistant-Modul erstellt werden. Da muss zuerst der Objektbaum geöffnet werden. In diesem den Hinzufügen-Button "+" unten rechts betätigen und [Instanz](https://www.symcon.de/de/llms/concepts.md) auswählen.

In der Modulliste das Gerät "Google Assistant" oder "Google Home" vom Hersteller "Google" auswählen. Der Ort sollte nicht verändert werden, der Name kann beliebig gewählt werden. Abschließend mit "OK" bestätigen.

Nach der Erstellung der Google Assistant-Instanz öffnet sich diese automatisch und kann eingerichtet werden.
#### Google Assistant-Instanz einrichten
Das Modul bietet verschiedene Gerätetypen an, welche verwendet werden können. Inbesondere um die initiale Einrichtung zu beschleunigen, sollte die Gerätesuche verwendet werden. Später können weitere Geräte unkompliziert manuell hinzugefügt werden.
Um die Gerätesuche zu starten muss auf den Button "Suche nach Geräten" am oberen Ende der Instanzkonfiguration geklickt werden

Daraufhin öffnet sich ein Dialog, welcher nach einer Ladezeit gefundene Geräte darstellt, welche bisher noch nicht eingebunden wurden. Die Instanzen werden nach Gerätetypen aufgeteilt. Unter jeder Instanz werden die Statusvariablen dargestellt, welche bei einer Einbindung vom Modul verwendet würden. Soll eine Instanz eingebunden werden, so muss die Checkbox in dieser Zeile ausgewählt werden. Standardmäßig wird der Name der Instanz verwendet. Soll dieser angepasst werden, kann dies über das "Bearbeiten"-Symbol rechts im Listeneintrag getan werden. Nachdem alle gewünschten Geräte ausgewählt und ggfs. passend benannt wurden, muss die Auswahl mit "Geräte hinzufügen" bestätigt werden. Dann werden die gewählten Geräte in die dazugehörigen Listen in der Instanzkonfiguration hinzugefügt.

Um ein Gerät manuell einzurichten, wird das dazugehörige Panel ausgeklappt und in der entsprechenden Liste durch einen Klick auf "Hinzufügen" ein neuer Eintrag erstellt.

Jeder Eintrag erfordert einen Namen unter welchem das Gerät bei Google Assistant bekannt sein wird. Weitere Parameter hängen vom jeweiligen Gerätetyp ab und können den dazugehörigen Seiten der Dokumentation entnommen werden. Nachdem alle Parameter gesetzt sind, wird das Gerät mit "OK" bestätigt.

#### Mögliche Gerätetypen
* [Licht (Schalter)](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Licht (Dimmer)](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Licht (Farbe)](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Licht (Experte)](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Thermostat](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Rollladen](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Generischer Schalter](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Szenen](https://www.symcon.de/de/llms/modules/google-assistant.md)
* [Szenen (deaktivierbar)](https://www.symcon.de/de/llms/modules/google-assistant.md)
Nachdem alle Geräte eingerichtet sind, werden diese mit einem Klick auf "Änderungen übernehmen" bestätigt.

Nach dem Übernehmen sollte sichergestellt werden, dass bei allen Geräten "OK" in der Spalte "Status" steht. Ist dies nicht der Fall, so enthält die Spalte eine Fehlermeldung, welche über die Komplikation informiert.
Ebenfalls sollte geprüft werden, dass oben im Instanzeditor "Status: Symcon Connect ist OK" steht. Sollte dies nicht der Fall sein, muss der [Connect-Dienst](https://www.symcon.de/de/llms/modules/connect-control.md) aktiviert werden.

#### IP-Symcon mit Google Assistant verknüpfen
Abschließend muss IP-Symcon noch mit Google Assistant verknüpft werden, damit die Google Assistant-Instanz die Anfragen von Google empfangen kann.
Die Installation erfolgt über die Google Home-App.
In der App den Tab zur SmartHome-Steuerung unten links auswählen und dort "Hinzufügen" betätigen.

Bei der Auswahl "Gerät einrichten" auswählen.

Im Einrichten-Dialog "Du hast bereits Geräte eingerichtet?" betätigen.

In der angezeigten Liste auf "Symcon" tippen.

Im Popup die E-Mail-Adresse eingeben, auf welche die verwendete IP-Symcon-Lizenz registriert ist, und mit "Send verification code" bestätigen.

Es wird eine E-Mail mit einem Code an die angegebene E-Mail-Adresse geschickt. Den Code, der in dieser E-Mail steht, im Popup eintragen und mit "Verify code" bestätigen.

Nach erfolgreicher Bestätigung erscheinen die konfigurierten Geräte in der Google Home-App und können verwendet werden.

## Expertenoptionen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/expertenoptionen/
_Benötigt Symcon >= 5.0_
> **Achtung:** Die Expertenoptionen müssen üblicherweise nicht angepasst werden. Gehen Sie mit diesen Optionen sorgsam um, damit das Google Assistant Modul wie vorgesehen funktioniert.
### Optionen
| Name | Beschreibung |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status emulieren | Ist Status emulieren aktiv, so wartet das Modul nicht auf die Aktualisierung der geschalteten Variablen und gibt stattdessen einen neuen Zustand auf Basis des geschalteten Wertes zurück. |
| Geräteupdate anfragen | Mit diesem Button kann ein Geräteupdate bei Google angefragt werden, wodurch die eingestellten Geräte erneut mit dem Google Assistant synchronisiert werden. Dies geschieht üblicherweise automatisch beim Übernehmen der Änderungen. |
## Generischer Schalter
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/generischer-schalter/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ generischer Schalter können An und Aus geschaltet werden. Innerhalb von Google Assistant werden die Geräte als allgemeine Schalter interpretiert und können für verschiedenste Geräte verwendet werden.
### Parameter
| Name | Beschreibung |
| ---------------- | --------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Google Assistant angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ----------------------------------------- | ---------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf True oder False | "Ok Google, schalte __ an." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ---------------- | ---------------- |
| Schaltervariable | ~Switch |
## Licht (Dimmer)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/licht-dimmer/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Dimmer) beschreiben Lampen, welche gedimmt werden können.
### Parameter
| Name | Beschreibung |
| -------- | --------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Google Assistant angesprochen werden kann |
| Variable | Eine schaltbare Variable vom Typ Integer oder Float, über welche das Licht gedimmt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ---------------------------------------------- | ------------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf 100% oder 0% | "Ok Google, schalte __ an." |
| Dimmen | Schaltet die Variable auf den angegebenen Wert | "Ok Google, dimme __ auf 40%." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| -------- | -------------------------------------------- |
| Variable | ~Intensity.100, ~Intensity.255, ~Intensity.1 |
## Licht (Experte)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/licht-experte/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Experte) beschreiben Lampen, deren Eigenschaften in verschiedenen Variablen unabhängig voneinander geschaltet werden können.
### Parameter
| Name | Beschreibung |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Schaltervariable | Eine schaltbare Variable vom Typ Boolean, über welche die Lampe An oder Aus geschaltet wird |
| Helligkeitsvariable | Eine schaltbare Variable vom Typ Integer oder Float, über welche das Licht gedimmt wird (optional) |
| Farbvariable | Eine schaltbare Variable vom Typ Integer mit dem Profil ~HexColor, über welche die Farbe des Lichts geschaltet wird (optional) |
> **Hinweis:** Werden optionale Variablen nicht gesetzt, so erkennt Google, dass die Lampe die dazugehörigen Eigenschaften nicht besitzt. Werden optionale Variablen erst später gesetzt, so muss ein Geräteupdate durchgeführt werden bevor die neu freigeschaltete Funktion genutzt werden kann.
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | --------------------------------------------------------- | --------------------------------------- |
| An oder Aus schalten | Schaltet die Schaltervariable auf True oder False | "Ok Google, schalte __ an." |
| Dimmen | Schaltet die Helligkeitsvariable auf den angegebenen Wert | "Ok Google, dimme __ auf 40%." |
| Farbe schalten | Schaltet die Farbvariable auf die angegebene Farbe | "Ok Google, schalte __ auf rot." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden. Um als Expertenlicht erkannt zu werden, muss mindestens die Schaltervariable und eine weitere Variable erkannt werden.
| Variable | Mögliche Profile |
| ------------------- | -------------------------------------------- |
| Schaltervariable | ~Switch |
| Helligkeitsvariable | ~Intensity.100, ~Intensity.255, ~Intensity.1 |
| Farbvariable | ~HexColor |
## Licht (Farbe)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/licht-farbe/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Farbe) beschreiben Lampen, welche beliebige Farben annehmen können.
### Parameter
| Name | Beschreibung |
| -------- | ------------------------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Google Assistant angesprochen werden kann |
| Variable | Eine schaltbare Variable vom Typ Integer mit dem Profil ~HexColor, über welche die Farbe des Lichts geschaltet wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ----------------------------------------------------------------------------- | --------------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf Weiß oder Schwarz | "Ok Google, schalte __ an." |
| Dimmen | Schaltet Helligkeit der aktuellen Farbe der Variable auf den angegebenen Wert | "Ok Google, dimme __ auf 40%." |
| Farbe schalten | Schaltet die Variable auf die angegebene Farbe | "Ok Google, schalte __ auf rot." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| -------- | ---------------- |
| Variable | ~HexColor |
## Licht (Schalter)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/licht-schalter/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Licht (Schalter) beschreiben Lampen, welche an- und ausgeschaltet werden können.
### Parameter
| Name | Beschreibung |
| -------- | ------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Google Assistant angesprochen werden kann |
| Variable | Eine schaltbare Variable vom Typ Boolean, über welche das Licht An oder Aus geschaltet wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| -------------------- | ----------------------------------------- | ---------------------------------- |
| An oder Aus schalten | Schaltet die Variable auf True oder False | "Ok Google, schalte __ an." |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ---------------- | ---------------- |
| Schaltervariable | ~Switch |
## Rollladen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/rollladen/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Rollladen können geöffnet und geschlossen werden. Unterstützt das Gerät eine prozentuale Öffnung, so ist diese ebenfalls steuerbar.
### Parameter
| Name | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Rollladenvariable | Eine schaltbare Variable vom Typ Integer oder Float, welche das Profil ~ShutterMoveStop oder ~ShutterMoveStep unterstützt. Alternativ kann eine Variable verwendet werden, welcher durch ihr Profil ein Minimal- und Maximalwert zugewiesen wurde |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| Öffnen | Schaltet die Variable bei einem ~ShutterMove-Profil auf "Öffnen". Ansonsten wird die Variable auf den Minimalwert des Profils geschaltet. | "Ok Google, öffne __" |
| Schließen | Schaltet die Variable bei einem ~ShutterMove-Profil auf "Schliessen". Ansonsten wird die Variable auf den Maximalwert des Profils geschaltet. | "Ok Google, schließe __" |
| Prozentual öffnen | Schaltet die Variable bei einem ~ShutterMove-Profil auf "Öffnen" falls der Prozentsatz größer als 50% ist, sonst auf "Schliessen". Ansonsten wird die Variable entsprechend des Prozentsatzes geschaltet. Es ist zu beachten, dass bei einer vollen Öffnung die Variable auf 0% geschaltet wird und dies bei anderen Prozentwerten auch entsprechend angewandt wird. Wird also beispielsweise zu 30% geöffnet, so wird die Variable auf 70% geschaltet. | "Ok Google, öffne __ zu 30%" |
#### Gerätesuche
Eine Instanz muss Statusvariablen mit den passenden Profilen haben, um in der Gerätesuche erkannt zu werden.
| Variable | Mögliche Profile |
| ----------------- | -------------------------------------------------------------------------------- |
| Rollladenvariable | ~ShutterMoveStop, ~ShutterMoveStep, ~Intensity.100, ~Intensity.255, ~Intensity.1 |
## Szenen
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/szenen/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Szene können aktiviert werden und beliebige Aktionen auslösen.
### Parameter
| Name | Beschreibung |
| ------ | --------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Google Assistant angesprochen werden kann |
| Aktion | Eine Aktion, welche beim Aktivieren der Szene ausgeführt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ---------------- | -------------------- | --------------------------------- |
| Szene aktivieren | Führt die Aktion aus | "Ok Google, aktiviere __." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Szenen (deaktivierbar)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/szenen-deaktivierbar/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Szene können aktiviert und deaktiviert werden und dabei beliebige Aktionen auslösen.
### Parameter
| Name | Beschreibung |
| ------------------------ | --------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Google Assistant angesprochen werden kann |
| Aktion beim Aktivieren | Eine Aktion, welche beim Aktivieren der Szene ausgeführt wird |
| Aktion beim Deaktivieren | Eine Aktion, welche beim Deaktivieren der Szene ausgeführt wird |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| ------------------ | ------------------------------------- | ----------------------------------- |
| Szene aktivieren | Führt die Aktion zum Aktivieren aus | "Ok Google, aktiviere __." |
| Szene deaktivieren | Führt die Aktion zum Deaktivieren aus | "Ok Google, deaktiviere __." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
## Thermostat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/sprachassistenten/google-assistant/thermostat/
_Benötigt Symcon >= 5.0_
### Beschreibung
Geräte vom Typ Thermostat können Temperaturen einstellen und Umgebungstemperaturen lesen.
### Parameter
| Name | Beschreibung |
| ------------------- | ---------------------------------------------------------------------------------------------- |
| Name | Name mit dem das Gerät über Amazon Alexa angesprochen werden kann |
| Sollwert | Eine schaltbare Variable vom Typ Float, durch welche die Solltemperatur in °C eingestellt wird |
| Umgebungstemperatur | Eine Variable vom Typ Float, welche die Umgebungstemperatur in °C beinhaltet |
#### Mögliche Aktionen
| Aktion | Beschreibung | Möglicher Satz zum Aktivieren |
| --------------------- | --------------------------------------------------- | --------------------------------------- |
| Temperatur einstellen | Schalte die Variable auf die angegebene Temperatur. | "Ok Google, setze __ auf 35 °C." |
#### Gerätesuche
Dieser Gerätetyp wird nicht von der Gerätesuche unterstützt.
---
# Alarmierung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/alarmierung/
_Benötigt Symcon >= 5.3_
Das Modul löst einen Alarm aus, wenn eine der Sensorenvariablen aktiv wird. Dabei werden Zielvariablen bei einem Alarm auf den maximalen Wert bzw. An (True) gesetzt. Ein einmal geschalteter Alarm wird nicht automatisch deaktiviert, dieser muss manuell zurückgesetzt werden.
### Funktionsumfang
- Konfiguration von Sensor- und Zielvariablen via Listenauswahl, welche den Alarm auslösen oder bei einem Alarm geschaltet werden
- Einstellbare Einschaltverzögerung
- Ein-/Ausschaltbarkeit via Visualisierungsbutton oder Skript-Funktion
- Konvertierungsfunktion für alte Versionen des Alarmierungsmoduls
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul 'Alarmierung' installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Alarmierung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/).
#### Konfigurationsseite
| Name | Beschreibung |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Button "Konvertierung" | (Wird nur angezeigt, wenn die Listen leer und alte Links vorhanden sind) Wenn eine alte Version des Moduls erkannt wurde, können die alten Links in die neuen Listen via Knopfdruck eingepflegt werden. Ist dies Erfolgreich erscheint ein Meldungsfenster. |
| Sensorvariablen | Diese Liste beinhaltet die Variablen, welche bei Aktualisierung auf einen aktiven Wert einen Alarm auslösen. Als aktiv gelten hierbei Variablen mit dem Wert true oder einen Wert ungleich 0. Sollte die Variable ein .Reversed Profil haben gelten die Werte false und 0 als aktiv. |
| Zielvariablen | Diese Liste beinhaltet die Variablen, welche bei Alarm geschaltet werden. Diese müssen eine Standardaktion oder Aktionsskript beinhalten. |
| Einschaltverzögerung | Wenn größer 0 wird die Alarmierung erst nach der eingestellten Zeit aktiv |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktiv | Boolean | De-/Aktiviert die Alarmierung. Wird die Alarmierung deaktiviert, so wird auch der ggf. vorhandene Alarm deaktiviert sowie alle ausgewählten Zielvariablen. |
| Zeit bis Aktivierung | Integer | Zeigt während des Aktivierungs-Vorgangs die noch verbleibende Zeit an. Der Wert enthält den Unix-Zeitstempel der kommenden Aktivierung und wird mit der [Darstellung Dauer](https://www.symcon.de/de/llms/components/object-presentation.md) angezeigt. |
| Alarm | Boolean | De-/Aktiviert den Alarm und alle ausgewählten Zielvariablen. |
| Aktive Sensoren | String | Listet alle aktiven Sensoren auf und wird ausgeblendet, wenn keine Aktiv sind. |
### Visualisierung
Über die Visualisierung kann die Alarmierung de-/aktiviert werden.
Es wird zusätzlich angezeigt, ob ein Alarm vorliegt oder nicht. Es wird eine Liste aller noch aktiven Sensoren angezeigt. Der Alarm kann auch manuell de-/aktiviert werden.
## ARM_GetLastAlertID
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/alarmierung/arm-getlastalertid/
`int ARM_GetLastAlertID(int $InstanzID)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (int): ID der Variable, die als letztes einen Alarm ausgelöst hat.
ID des zu schaltenden Geräts
**Beispiel**
```text
ARM_GetLastAlertID(12345); //Variablen ID abfragen
```
## ARM_SetActive
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/alarmierung/arm-setactive/
`bool ARM_SetActive(int $InstanzID, bool $Value)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Value` (bool): Wert auf den das Alarmierungsmodul geschaltet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert auf den das Alarmierungsmodul geschaltet werden soll
**Beispiel**
```text
ARM_SetActive(12345, true); //Alarmierungsmodul aktivieren
```
## ARM_SetAlert
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/alarmierung/arm-setalert/
`bool ARM_SetAlert(int $InstanzID, bool $Value)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Value` (bool): Wert auf den der Alarm geschaltet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Wert auf den der Alarm geschaltet werden soll
**Beispiel**
```text
ARM_SetAlert(12345, false); //Alarm ausschalten
```
---
# Benachrichtigung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/benachrichtigung/
_Benötigt Symcon >= 5.1_
Dieses Modul ermöglicht eine mehrstufige Benachrichtigung, wobei die Stufe sich nach einer definierten Zeit erhöht und bei einer Quittierung zurückgesetzt wird. Beim Erreichen einer neuen Stufe können verschiedene Aktionen ausgeführt werden.
### Funktionsumfang
- Starten einer mehrstufigen Benachrichtigungskette durch eine Variable
- Auf jeder Stufe können individuell Aktionen festgesetzt werden:
- Skripte ausführen
- Push-Nachrichten, E-Mails oder SMS verschicken
- Telefonanruf mit Ansage durchfügen (sofern "Telefonansage" Modul installiert)
- Durchsage über Lautsprecher durchführen (sofern "Durchsage" Modul installiert)
- Nachricht über Telegram versenden (sofern "TelegramBot" Modul installiert)
- Nach bestimmter Zeit auf nächste Stufe erhöhen
- Quittierung über beigefügtes Skript oder Push-Nachricht beendet Benachrichtigungen
- Einzelne Stufen können bei Bedarf deaktiviert werden
### Software-Installation
Über den [Modul Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Benachrichtigung installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Benachrichtigung'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
- Bei 'Auslöser' eine Variable auswählen
- Nimmt diese Variable einen Wert an, der nicht neutral ist (false bei Boolean, 0 bei Integer und Float, '' bei String), wird die Benachrichtigungskette auf Stufe 1 gestartet
- Der Liste Benachrichtigungsstufen beliebig viele Stufen hinzufügen und konfigurieren
- Dauer definiert die Zeit bis die nächste Stufe aktiviert wird
- Aktionen werden beim Erreichen einer Stufe ausgeführt
- Aktiv definiert, ob die Stufe ausgeführt werden soll. Nicht aktive Stufen werden übersprungen
- 'Status' beinhaltet Fehlermeldungen, falls bei der Konfiguration der Stufe etwas nicht korrekt ist, ansonsten "OK"
#### Aktionen einrichten
Jede Aktion besitzt Parameter für den Aktionstyp, ein Empfängerobjekt, eine Empfängeradresse, einen Titel, eine Nachricht und eine Nachrichtvariable. Die "Aktion" definiert was aufgerufen werden soll. (z.B. Ein Skript oder eine Email versendet)
Dabei werden weitere Informationen wie "Titel" und "Nachricht" an das eingestellte "Empfängerobjekt" geschickt. Der Inhalt der Nachricht wird definiert durch den Text im Konfigurationsfeld "Nachricht". Dieser wird mit dem Text in der "Nachrichtenvariable" verkettet.
Für generische Nachrichten steht der Inhalt der Nachrichtenvariable als '{variable}' zur Verfügung. Ebenso können durch '\n' Zeilenumbrüche eingefügt werden. Die Empfängeradresse hat je nach Aktion eine andere Funktionalität.
#### Skript
Das als Empfängerobjekt ausgewählte Skript wird ausgeführt. Während dieses Aufrufs können folgende Systemvariablen verwendet werden:
| Systemvariable | Beschreibung |
| ------------------------- | ---------------------------------------------- |
| $_IPS['RECIPIENT'] | Der Inhalt des Tabellenfeldes Empfängeradresse |
| $_IPS['TITLE'] | Der Inhalt des Tabellenfeldes Titel |
| $_IPS['MESSAGE'] | Der Inhalt des Tabellenfeldes Nachricht |
| $_IPS['MESSAGE_VARIABLE'] | Die ID der Nachrichtenvariablen |
#### Push
Eine Pushnachricht wird an alle Geräte des gewählten Webfronts geschickt. Diese Nachricht verlinkt das Quittierungsskript. Durch Tippen auf die Pushnachricht kann also die Benachrichtigung quittiert werden. Die Empfängeradresse hat bei diesem Aktionstyp keinen Effekt. Die Nachricht hat eine Maximallänge von 256 Zeichen.
#### E-Mail (SMTP)
Eine E-Mail wird über die gewählte SMTP-Instanz verschickt. Ist eine Empfängeradresse angegeben, so wird die E-Mail an diese Adresse verschickt. Ist keine Empfängeradresse angegeben, so wird die E-Mail an den angegebenen Empfänger der SMTP-Instanz geschickt. Wenn die Option 'Erweiterte Antwort' aktiviert ist kann mit dem Stichwort '{actions}' ein Block mit Links eingefügt werden, über welche die verfügbaren Aktionen ausgeführt werden können.
#### SMS
Eine SMS wird über die gewählte SMS-Instanz an die in der Empfängeradresse angegebene Telefonnummer geschickt. Wenn die Option 'Erweiterte Antwort' aktiviert ist kann mit dem Stichwort '{actions}' ein Link eingefügt werden, über den die verfügbaren Aktionen ausgeführt werden können. Ist eine Nachricht länger als 160 Zeichen (Begrenzung durch SMS), wird diese auf bis zu 2 weitere SMS aufgeteilt (maximal 459 Zeichen).
#### Telefonansage (nur verfügbar, wenn das Modul [Telefonansage](https://www.symcon.de/de/llms/modules/phone-announcement.md) installiert ist)
Die in der Empfängeradresse angegebene Telefonnummer wird angerufen und der Titel sowie die Nachricht vorgelesen. Wenn die Option 'Erweiterte Antwort' aktiviert ist kann mit den Tasten 0-9 die Dazugehörige Aktion ausgeführt werden. Wenn gewünscht können mit dem Stichwort '{actions}' die verfügbaren Aktionen in die Nachricht eingebunden werden.
#### Durchsage (nur verfügbar, wenn das Modul [Durchsage](https://www.symcon.de/de/llms/modules/announcement.md) installiert ist)
Der Titel und die Nachricht werden mithilfe der ausgewählten Instanz vorgelesen. Die Empfängeradresse hat bei diesem Aktionstyp keinen Effekt.
#### Telegram (nur verfügbar, wenn das Modul [TelegramBot](https://www.symcon.de/de/llms/modules/telegrambot.md) installiert ist)
Der Titel und die Nachricht werden mithilfe der ausgewählten Instanz an den Empfänger gesendet. Die Empfängeradresse kann entweder der Name oder die UserID vom Telegram Empfänger sein. Sofern die Empfängeradresse leer gelassen wird, werden alle Empfänger, die im Telegram Bot hinterlegt sind, benachrichtigt.
#### Erweiterte Antwort
Wenn erweiterte Antwort aktiviert ist, können verschiedene Aktionen in der entsprechenden Liste definiert werden. Um festzulegen was bei einer Aktion zusätzlich ausgeführt wird kann ein ausgelöstes Ereignis erstellt werden. Als auslösende Variable wird die Variable 'Antwortaktion' und als Auslöser 'Bei bestimmtem Wert' gewählt. Als Wert kann nun die gewünschte Aktion ausgewählt werden.
### Statusvariablen
| Statusvariable | Beschreibung |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Antwortaktion | Kann über die Visualisierung angeklickt oder per Befehl aufgerufen werden um die Benachrichtigung zurückzusetzen |
| Benachrichtigung aktiv | Steuert ob das Benachrichtigungsmodul aktiv ist oder nicht |
| Benachrichtigungsstufe | Beinhaltet die aktuelle Benachrichtigungsstufe |
### Visualisierung
- Über die Visualisierung kann "Antwortaktion" ausgeführt werden um die Benachrichtigung zu reseten.
- Über die Visualisierung kann über "Benachrichtigung aktiv" die Benachrichtigung An/Aus geschaltet werden.
- Die aktuelle Benachrichtigungsstufe wird angezeigt.
## BN_IncreaseLevel
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/benachrichtigung/bn-increaselevel/
`bool BN_IncreaseLevel(int $InstanzID)`
_Benötigt Symcon >= 5.1_
Erhöht die Stufe und führt die Aktion aus
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
BN_IncreaseLevel(12345);
```
## BN_Reset
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/benachrichtigung/bn-reset/
`bool BN_Reset(int $InstanzID)`
_Benötigt Symcon >= 5.1_
Setzt die Benachrichtigungsstufe zurück und deaktiviert die Kette
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__
ID der Instanz
**Beispiel**
```text
BN_Reset(12345);
```
## BN_SetNotifyLevel
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/benachrichtigung/bn-setnotifylevel/
`bool BN_SetNotifyLevel(int $InstanzID, int $Level)`
_Benötigt Symcon >= 5.1_
Setzt die Benachichtigung auf eine vorgegebene Stufe
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Level` (int): Stufe des Benachrichtigungsmoduls
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Stufe des Benachrichtigungsmoduls
**Beispiel**
```text
BN_SetNotifyLevel(12345, 2);
```
---
# Durchsage
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/durchsage/
_Benötigt Symcon >= 5.4_
Das Durchsage Modul bietet die Möglichkeit von AWS Polly erzeugte Audio Daten über Sonos oder unter Windows den Media Player wiederzugeben.
### Funktionsumfang
- Von AWS Polly erzeugte Audiodaten über ein Sonos Player oder den "Symcon" Media Player wiedergeben
- Lautstärke der Durchsage ist einstellbar
- Durchsage bei Änderung der Text Variable. Alternativ über angebotene Funktion
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Durchsage'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Durchsage'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Text-to-Speeach Instanz | AWS Polly Instanz, welche zum erstellen der Durchsage genutzt werden soll. Als Ausgabeformat muss mp3 ausgewählt sein. Sonos kann nur mit den Abtastraten 16000 Hz, 22050 Hz, 24000 Hz, 32000 Hz, 44100 Hz, 48000 Hz genutzt werden |
| Ausgabegerät | Typ der Ausgabeinstanz |
| Symcon IP | Die IP-Addresse, unter welcher der Sonos Player IP-Symcon erreicht. |
| Sonos/Media Player | Instanz, über welche die Durchsage widergegeben wird |
| Lautstärke | Sonos: Die Lautstärkenänderung der Durchsage (0 → keine Änderung , 50 → 50, +10 → um 10 lauter) Media Player: die Lautstärke der Durchsage in Prozent (wird nicht zurückgesetzt) |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ---- | ------ | ----------------------------------------------------------------------------------------------------------- |
| Text | String | Text welcher für die Durchsage genutzt wird. Bei Aktualisierung der Variable wird der Inhalt wiedergegeben. |
## DS_Play
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/durchsage/ds-play/
`bool DS_Play(int $InstanzID, string $Text)`
_Benötigt Symcon >= 5.4_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Text` (string): Abzuspielender Text
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Abzuspielender Text
**Beispiel**
```text
DS_Play(12345, "Dies ist ein Text");
```
---
# Dynamische E-Mail
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/dynamische-email/
_Benötigt Symcon >= 7.1_
Versendet eine E-Mail mit einem dynamischen Text.
### Funktionsumfang
* Versenden einer E-Mail mit einem festen/dynamischen Text
* Dynamik durch das Ersetzen von Platzhaltern durch die Variablenwerte
### Software-Installation
* Über den Module Store das 'Dynamische E-Mail'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Dynamische E-Mail'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ------------------- | ------------------------------------------------ |
| SMTP Instanz | SMTP Instanz welche vollständig eingerichtet ist |
| Dynamischer Betreff | Texteingabe welche gesetzt werden kann. |
| Dynamischer Text | Mehrzeilige Texteingabe. |
Der Betreff wie auch der Text bekommt eine Dynamik durchs Einsetzen von Variablenwerte. Diese können innerhalb des Textes durch die in geschweifte Klammern gesetzte VariablenID gesetzt werden. Ist die ID zu kurz oder keine Variable, so bleiben die Klammern mit der Nummer bestehen.

__Aktionsbereich__:
| Name | Beschreibung |
| --------------------------- | --------------------------------------------------------- |
| Versenden Testen | Verschickt eine E-Mail mit dem gesetzten Betreff und Text |
| Vorschau E-Mail mit Betreff | Eine Vorschau mit gesetzten Variablewerte |
| Platzhalter Variablen | Tabelle mit den gegebenen Platzhaltern |
Tabelle:
In der Tabelle sind die gefundenen Platzhalter mit ihren aktuellen Wert und ihrem Status aufgelistet. Ist ein Platzhalter nicht verfügbar ist die eingegebene Nummer keine ID. Ist ein Platzhalter ungültig, so ist die gefundene ID keine Variable.
### Statusvariablen und Profile
Es werden keine Variablen oder Profile angelegt.
### Visualisierung
Die Instanz hat keine Funktionalität in der Visualisierung.
## DM_SendMail
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/dynamische-email/dm-sendmail/
`bool DM_SendMail(int $InstanzID)`
_Benötigt Symcon >= 7.1_
**Parameter**
- `$InstanzID` (int): ID der Instanze
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanze
**Beispiel**
```php
DM_SendMail(12345);
```
---
# FertigMelder
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/fertigmelder/
_Benötigt Symcon >= 4.2_
Der FertigMelder meldet ob ein Gerät fertig ist. Dazu wird die Variable der Leistungsaufnahme des Geräts ausgewählt und ein Grenzwert festgelegt. Sobald dieser Grenzwert erstmalig überschritten wird, wird der FertigMelder gestartet. Wird dieser Grenzwert unterschritten und in einer einstellbaren Zeitspanne nicht wieder überschritten, wird die Statusvariable auf "Fertig" gesetzt.
### Funktionsumfang
- Ein/Ausschaltbarkeit des gesamten Moduls
- Auswahl einer Quellvariable
- Setzen des Grenzwerts
- Zeitspanne bis Fertigmeldung nach Grenzwertunterschreitung gesetzt wird
### Software-Installation
- Unter "Instanz hinzufügen" ist kann 'Fertigmelder'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | -------------------------------------------------------------------------------------------------------- |
| Quelle | Quellvariable, welche zum Vergleich mit dem Grenzwert genutzt wird. |
| Grenzwert | Wert bei desssen Unterschreitung eine Fertigmeldung gesetzt wird. |
| Intervall | Zeitraum bis eine Fertigmeldung gesetzt wird. Wird erst aktiv nachdem der Grenzwert unterschritten wird. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------ | ------- | -------------------------------------- |
| Aktiv | boolean | Schaltet das Modul Ein/Aus |
| Status | integer | Zeigt den Status an (Aus/Läuft/Fertig) |
#### Profile:
| Name | Typ |
| --------- | ------- |
| FM.Status | Integer |
---
# IMAP
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/imap/
_Benötigt Symcon >= 2.2_
Das IMAP-Modul kann über die Konfigurationsseite innerhalb des [Objektbaums](https://www.symcon.de/de/llms/components/management-console.md) der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) konfiguriert werden. Die Parameter für Host und Port können der Anleitung des jeweiligen Mail-Providers entnommen werden. Der Benutzername und das Passwort sind die Logindaten des E-Mail Accounts.
> **Achtung:** Seit Oktober 2022 wird die Verbindung zu Microsoft 365 (outlook.office365.com) nicht mehr unterstützt, da Microsoft nur noch OAuth2 als Authentifizierung erlaubt.
Damit die E-Mails in der Visualisierung angezeigt werden, muss das Intervall eingestellt werden. Dieses bestimmt die zyklische Abfrage des Posteingangs des Postfachs. Dabei werden nur die Betreffzeilen abgefragt. Die komplette E-Mail wird erst geladen, wenn die Visualisierung diese anfordert.
Über die Variable "Letzte Nachricht" kann ermittelt werden, ob und wann neue Mails eingetroffen sind. Falls keine E-Mails im Postfach sind, hat die Variable den Wert 0. Die Variable "Ungelesene Nachrichten" gibt die Anzahl der ungelesen Nachrichten zurück.

| Eigenschaft | Bedeutung |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Host | Servername oder IP zum Mail-Provider |
| Port | Port, auf dem der Server arbeitet |
| Benutze SSL | Gibt an, ob SSL genutzt werden soll |
| Überprüfe Peer | Verifiziere, dass das SSL Zertifikat des Hosts korrekt ist (nur sichtbar falls Benutze SSL aktiv ist) |
| Überprüfe Host | Verifiziere, dass die Host URL aus dem SSL Zertifikat mit dem Host aus der Eigenschaft übereinstimmt (nur sichtbar falls Benutze SSL aktiv ist) |
| Benutze Authentifizierung | Gibt an, ob ein Benutzername/Passwort erforderlich ist |
| Benutzername | Benutzername |
| Passwort | Passwort |
| Intervall | Anzahl Sekunden, in der das Postfach abgefragt wird |
> **Hinweis:** Eine Übersicht zu Host, Port und Authentifizierung für viele Provider kann hier gefunden werden: [Tabelle](https://www.arclab.com/en/kb/email/list-of-smtp-and-imap-servers-mailserver-list.html)
## IMAP_DeleteMail
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/imap/imap-deletemail/
`bool IMAP_DeleteMail(int $InstanzID, string $UID)`
_Benötigt Symcon >= 5.0_
löscht eine Mail mit einer bestimmten E-Mail(UID)
**Parameter**
- `$InstanzID` (int): ID der IMAP-Instanz
- `$UID` (string): UID der zu löschenden E-Mail
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
UID der zu löschenden E-Mail
**Beispiel**
```php
// Löscht die Mail mit der E-Mail(UID) 1234
IMAP_DeleteMail(12345, "1234"));
```
## IMAP_GetCachedMails
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/imap/imap-getcachedmails/
`array IMAP_GetCachedMails(int $InstanzID)`
_Benötigt Symcon >= 2.2_
gibt ein Array zu den gecachten E-Mails zurück
**Parameter**
- `$InstanzID` (int): ID der IMAP-Instanz
**Rückgabewert** (array): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis ein Array mit Daten zu den gecacheten E-Mails, andernfalls ein Boolean mit dem Wert __FALSE__.
ID der IMAP-Instanz
**Beispiel**
```php
print_r(IMAP_GetCachedMails(12345));
/* liefert z.B.:
Array
(
[0] => Array
(
[Date] => 1295756412
[Flags] => SEEN
[Recipient] => recipient@test.test
[SenderAddress] => sender@test.test
[SenderName] => Test Sender
[Subject] => 3 2 1 Test
[UID] => 1234
)
)
*/
```
## IMAP_GetMailEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/imap/imap-getmailex/
`array IMAP_GetMailEx(int $InstanzID, string $UID)`
_Benötigt Symcon >= 2.2_
liefert ein Array mit Informationen zu einer bestimmten E-Mail(UID) wieder
**Parameter**
- `$InstanzID` (int): ID der IMAP-Instanz
- `$UID` (string): UID der zu ladenden E-Mail
**Rückgabewert** (array): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis ein Array mit Daten zu den gecacheten E-Mails, andernfalls ein Boolean mit dem Wert __FALSE__.
UID der zu ladenden E-Mail
**Beispiel**
```php
print_r(IMAP_GetMailEx(12345, "1234"));
/* liefert z.B.:
Array
(
[ContentType] => text/plain
[Date] => 1295756412
[Flags] => SEEN
[Recipient] => ips@test.test
[SenderAddress] => sender@test.test
[SenderName] => Test Sender
[Subject] => 3 2 1 Test
[Text] => This is a test!
[UID] => 1234
)
*/
```
---
# MediaPlayer
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/
> **Achtung:** Der MediaPlayer steht momentan nur bei der Windows Installation zur Verfügung.
Mit dem Media PlayerModul können verschiedene Sound-Dateien wie Wave, Midi oder MP3 abgespielt werden. Das Modul erlaubt die Verwendung mehrer Soundkarten. Damit können Sprachausgaben (Hinweise, Warnungen) oder die Lieblingsmusik raumbezogen ausgegeben werden.
> **Achtung:** Bei erstmaligem Anlegen der MediaPlayer-Instanz muss der Dienst neu gestartet werden, damit die Soundausgabe korrekt funktioniert!
### Tipps & Tricks
* Es können beliebig viele Media Player Instanzen erstellt und sogar auf dieselbe Soundkarte konfiguriert werden. Dadurch kann über eine Instanz die Musik im Hintergrund (leise) weiterlaufen, während mit einer zweiten Instanz eine Ansage getätigt wird.
## WAC_AddFile
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-addfile/
`bool WAC_AddFile(int $InstanzID, string $Dateiname)`
fügt Musikdatei zur Playlist hinzu
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
- `$Dateiname` (string): Pfad zur abzuspielenden Datei
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Pfad zur abzuspielenden Datei
**Beispiel**
```php
//Bitte beachten Sie die Slashes im Pfad.
//Die genaue Bedeutung können Sie im PHP Handbuch nachlesen:
//http://de.php.net/manual/de/language.types.string.php
WAC_AddFile(12345, "D:/MP3s/Lieblingssong.mp3");
```
## WAC_ClearPlaylist
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-clearplaylist/
`bool WAC_ClearPlaylist(int $InstanzID)`
löscht die Playlist
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu steuernden Media Players
**Beispiel**
```php
WAC_ClearPlaylist(12345);
```
## WAC_GetPlaylistLength
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-getplaylistlength/
`int WAC_GetPlaylistLength(int $InstanzID)`
liefert die Länge der Playlist
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (int): Anzahl der Tracks, die in der Playlist eingetragen sind.
ID des zu steuernden Media Players
**Beispiel**
```php
$len = WAC_GetPlaylistLength(12345);
if($len > 0)
WAC_Play(12345);
```
## WAC_GetPlaylistPosition
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-getplaylistposition/
`int WAC_GetPlaylistPosition(int $InstanzID)`
liefert die aktuelle Position in der Playlist
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (int): Wert zwischen 1 und [WAC_GetPlayListLength](https://www.symcon.de/de/llms/modules/mediaplayer.md); Falls die Playlist leer sein sollte, wird -1 zurückgegeben.
ID des zu schaltenden Geräts
**Beispiel**
```php
$pos = WAC_GetPlaylistPosition(12345);
```
## WAC_Next
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-next/
`bool WAC_Next(int $InstanzID)`
spielt den nächsten Titel der Playlist ab
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu steuernden Media Players
**Beispiel**
```php
WAC_Next(12345);
```
## WAC_Pause
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-pause/
`bool WAC_Pause(int $InstanzID)`
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__. Es wird auch __TRUE__ zurückgegeben, falls keine aktive Wiedergabe vorhanden ist.
ID des zu steuernden Media Players
**Beispiel**
```php
WAC_Pause(12345);
```
## WAC_Play
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-play/
`bool WAC_Play(int $InstanzID)`
spielt die Playlist ab
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu steuernden Media Players
**Beispiel**
```php
WAC_Play(12345); //Abspielen
```
## WAC_PlayFile
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-playfile/
`bool WAC_PlayFile(int $InstanzID, string $Dateiname)`
spielt eine Musikdatei direkt ab
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
- `$Dateiname` (string): Pfad zur abzuspielenden Datei
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Pfad zur abzuspielenden Datei
**Beispiel**
```php
//Bitte beachten Sie die Slashes im Pfad.
//Die genau Bedeutung können Sie im PHP Handbuch nachlesen: http://de.php.net/manual/de/language.types.string.php
WAC_PlayFile(12345, "D:/MP3s/Lieblingssong.mp3");
```
## WAC_Prev
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-prev/
`bool WAC_Prev(int $InstanzID)`
spielt den vorherigen Titel der Playlist ab
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu steuernden Media Players
**Beispiel**
```php
WAC_Prev(12345);
```
## WAC_SetPlaylistPosition
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-setplaylistposition/
`bool WAC_SetPlaylistPosition(int $InstanzID)`
setzt die Position in der Playlist
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu schaltenden Geräts
**Beispiel**
```php
WAC_SetPlaylistPosition(12345, 0); //An Anfang setzen
```
## WAC_SetPosition
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-setposition/
`bool WAC_SetPosition(int $InstanzID, int $Sekunden)`
setzt den Positionsmarker auf eine bestimmte Sekunde
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
- `$Sekunden` (int): Sprungmarke in Sekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Sprungmarke in Sekunden
**Beispiel**
```php
WAC_PlayFile(12345, "my.mp3"); //Titel abspielen
WAC_SetPosition(12345, 60); //auf die 1 Minutenmarke im Lied springen
```
## WAC_SetRepeat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-setrepeat/
`bool WAC_SetRepeat(int $InstanzID, bool $Wiederholen)`
schaltet die Wiederholung der Playlist ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
- `$Wiederholen` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
WAC_SetRepeat(12345, true); //Playlist wiederholung aktivieren
```
## WAC_SetShuffle
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-setshuffle/
`bool WAC_SetShuffle(int $InstanzID, bool $Zufallswiedergabe)`
schaltet die Zufallswiedergabe ein/aus
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
- `$Zufallswiedergabe` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
WAC_SetShuffle(12345, true); //Zufallswiedergabe einschalten
```
## WAC_SetVolume
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-setvolume/
`bool WAC_SetVolume(int $InstanzID, int $Lautstärke)`
setzt die Lautstärke
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
- `$Lautstärke` (int): 0-100 (%)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0-100 (%)
**Beispiel**
```php
WAC_SetVolume(12345, 85);
```
## WAC_Stop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/mediaplayer/wac-stop/
`bool WAC_Stop(int $InstanzID)`
**Parameter**
- `$InstanzID` (int): ID des zu steuernden Media Players
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__. Es wird auch __TRUE__ zurückgegeben, falls keine aktive Wiedergabe vorhanden ist.
ID des zu steuernden Media Players
**Beispiel**
```php
WAC_Stop(12345);
```
---
# POP3
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/pop3/
_Benötigt Symcon >= 2.2_
Das POP3-Modul kann über die Konfigurationsseite innerhalb des [Objektbaums](https://www.symcon.de/de/llms/components/management-console.md) der [Verwaltungskonsole](https://www.symcon.de/de/llms/components/management-console.md) konfiguriert werden. Die Parameter für Host und Port können der Anleitung des jeweiligen Mail-Providers entnommen werden. Der Benutzername und das Passwort sind die Logindaten des E-Mail Accounts.
Damit die E-Mails in der Visualisierung angezeigt werden, muss das Intervall eingestellt werden. Dieses bestimmt die zyklische Abfrage des Posteingangs des Postfachs. Dabei werden nur die Betreffzeilen abgefragt. Die komplette E-Mail wird erst geladen, wenn die Visualisierung diese anfordert.
Über die Variable "Letzte Nachricht" kann ermittelt werden, ob und wann neue Mails eingetroffen sind. Falls keine E-Mails im Postfach sind, hat die Variable den Wert 0. Im Gegensatz zu IMAP ist die Anzeige der Anzahl der ungelesenen E-Mails für POP3 technisch nicht realisierbar.

| Eigenschaft | Bedeutung |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Host | Servername oder IP zum Mail-Provider |
| Port | Port, auf dem der Server arbeitet |
| Benutze SSL | Gibt an, ob SSL genutzt werden soll |
| Überprüfe Peer | Verifiziere, dass das SSL Zertifikat des Hosts korrekt ist (nur sichtbar falls Benutze SSL aktiv ist) |
| Überprüfe Host | Verifiziere, dass die Host URL aus dem SSL Zertifikat mit dem Host aus der Eigenschaft übereinstimmt (nur sichtbar falls Benutze SSL aktiv ist) |
| Benutze Authentifizierung | Gibt an, ob ein Benutzername/Passwort erforderlich ist |
| Benutzername | Benutzername |
| Passwort | Passwort |
| Intervall | Anzahl Sekunden, in der das Postfach abgefragt wird |
> **Hinweis:** Eine Übersicht zu Host, Port und Authentifizierung für viele Anbieter können Sie hier finden: [Tabelle](https://www.arclab.com/en/kb/email/list-of-smtp-and-imap-servers-mailserver-list.html)
## POP3_DeleteMail
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/pop3/pop3-deletemail/
`bool POP3_DeleteMail(int $InstanzID, string $UID)`
_Benötigt Symcon >= 5.0_
löscht eine Mail mit einer bestimmten E-Mail(UID)
**Parameter**
- `$InstanzID` (int): ID der POP3-Instanz
- `$UID` (string): UID der zu löschenden E-Mail
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
UID der zu löschenden E-Mail
**Beispiel**
```php
// Löscht die Mail mit der E-Mail(UID) 1234
POP3_DeleteMail(12345, "1234");
```
## POP3_GetCachedMails
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/pop3/pop3-getcachedmails/
`array POP3_GetCachedMails(int $InstanzID)`
_Benötigt Symcon >= 2.2_
gibt ein Array zu den gecachten E-Mails zurück
**Parameter**
- `$InstanzID` (int): ID der POP3-Instanz
**Rückgabewert** (array): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis ein Array mit Daten zu den gecacheten E-Mails, andernfalls ein Boolean mit dem Wert __FALSE__.
ID der POP3-Instanz
**Beispiel**
```php
print_r(POP3_GetCachedMails(12345));
/* liefert z.B.:
Array
(
[0] => Array
(
[Date] => 1295756412
[Flags] =>
[Recipient] => recipient@test.test
[SenderAddress] => sender@test.test
[SenderName] => Test Sender
[Subject] => 3 2 1 Test
[UID] => 1234
)
)
*/
```
## POP3_GetMailEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/pop3/pop3-getmailex/
`array POP3_GetMailEx(int $InstanzID, string $UID)`
_Benötigt Symcon >= 2.2_
liefert ein Array mit Informationen zu einer bestimmten E-Mail(UID) wieder
**Parameter**
- `$InstanzID` (int): ID der POP3-Instanz
- `$UID` (string): UID der zu ladenden E-Mail
**Rückgabewert** (array): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis ein Array mit den Daten der E-Mail, andernfalls ein Boolean mit __FALSE__.
UID der zu ladenden E-Mail
**Beispiel**
```php
print_r(POP3_GetMailEx(12345, "1234"));
/* liefert z.B.:
Array
(
[ContentType] => text/plain
[Date] => 1295756412
[Flags] =>
[Recipient] => ips@test.test
[SenderAddress] => sender@test.test
[SenderName] => Test Sender
[Subject] => 3 2 1 Test
[Text] => This is a test!
[UID] => 1234
)
*/
```
---
# Popup Modul
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/popup-modul/
Das Popup Modul ist eine Instanz, die keine eigene Funktion oder Status Variablen beinhaltet. Das Modul kann als stilistisches Mittel verwendet werden, um Objekte innerhalb eines Popups darzustellen.
### Anwendung
Mehrere Objekte gehören zu einer Themengruppe, welche aber nur bei Bedarf schnell eingesehen werden soll. Um die Objekte im Popup anzeigen zu lassen, müssen diese selbst oder via Link in die Popup Instanz kopiert werden.
### Darstellung
Wie das Modul dargestellt wird kann man hier nachsehen:
[Popup Darstellung](https://www.symcon.de/de/llms/components/object-presentation.md)
> **Hinweis:** In den mobilen Apps hat die Popup Instanz die gleiche Darstellung wie ein [Dummy Modul](https://www.symcon.de/de/llms/modules/dummy-module.md), da diese keine Verschachtelung ermöglichen.
---
# SMS
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/sms/
_Benötigt Symcon >= 4.1_
SMS ist ein Modul von IP-Symcon mit dem sich SMS via Clickatell verschicken lassen. Eine Verbindung mit IP-Symcon wird über die REST API hergestellt.
> **Achtung:** Seit November 2016 bietet Clickatell nur noch die REST-API an, welche IP-Symcon mit dem Modul SMS (Clickatell) integriert hat.
### Installation (REST API)
Um das SMS Modul verwenden zu können, wird ein Account bei [https://www.clickatell.com](https://www.clickatell.com) benötigt.
Die nachfolgende Step-By-Step Anleitung erklärt den Anmeldeprozess:
1. Die folgende URL öffnet die Anmeldeseite zur Registrierung am SMS Gateway:
[https://www.clickatell.com/sign-up/](https://www.clickatell.com/sign-up/)
2. Nach dem Bestätigen der Verifizierungs-Mail muss sich unter [https://portal.clickatell.com/#/login](https://portal.clickatell.com/#/login) eingeloggt werden. Es muss "Platform" ausgewählt werden.
3. Über das Dashboard auf der Seite [https://portal.clickatell.com/](https://portal.clickatell.com/) müssen sowohl Telefonnummern verifiziert, als auch eine "Integration" eingerichtet werden.
4. Eine Integration konfiguriert die Art der Kommunikation.
5. Guthaben wird über [https://portal.clickatell.com/#/billing/details](https://portal.clickatell.com/#/billing/details) verwaltet.
Damit IP-Symcon mit dem Gateway kommunizieren kann, muss zusätzlich noch der APIKey der Integration in IP-Symcon eingepflegt werden.
1. Folgende URL muss geöffnet werden:
[https://portal.clickatell.com/#/integrations/sms](https://portal.clickatell.com/#/integrations/sms)
2. Es muss die Option "__API key__" kopiert werden.
3. Der erhaltene APIKey, muss in IP-Symcon auf der Konfigurationsseite des SMS-Modul angegeben werden.
> **Hinweis:** Die Absendernummer muss im Clickatell Account verfiziert worden sein, bevor über diese SMS versendet werden können.
### Installation (veraltet, Https API)
Diese API wird seit November 2016 nicht mehr von Clickatell unterstützt.
Aus dem Grund wurde das Modul überarbeitet.
### Einbindung in IP-Symcon
Die Konfiguration besteht ausschließlich aus dem API-Key, der im Account eingerichtet wurde.
> **Achtung:** Es gibt mit der neuen REST-API bisher keine Möglichkeit das Guthaben abzufragen. SMS_RequestBalance ist nur für die alte API noch funktionial.
### Ländercode Vorwahl Nummer
Es müssen keine führenden Nullen angegeben werden.
Beispiel: +49171123456789
Es gibt auch auf der Clickatell-Homepage auf der Settings-Seite die Möglichkeit eine automatische Ländervorwahl zu integrieren.
"Convert mobile numbers into international format"
Somit entfällt das +49 für die Ländervorwahl.
## SMS_Send
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/sms/sms-send/
`bool SMS_Send(int $InstanzID, string $Nummer, string $Text)`
versendet eine SMS an eine Nummer
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Nummer` (string): Mobilfunknummer des Empfängers
- `$Text` (string): Text der SMS (max. 160 Zeichen)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Text der SMS (max. 160 Zeichen)
**Beispiel**
```php
SMS_Send(12345, "0171123456789", "Alarm!");
```
---
# SMTP
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/
_Benötigt Symcon >= 2.2_
SMTP ist ein Modul von IP-Symcon, welches E-Mails verschicken kann. Das Modul wird als Instanz in IP-Symcon eingerichtet. Es ist unter Hersteller "None" und "E-Mail senden (SMTP)" zu finden. Der Tabelle können die einzelnen Eigenschaften entnommen werden.
> **Hinweis:** Um an eine andere oder mehrere E-Mail Adressen eine Nachricht zu senden muss die Funktion [SMTP_SendMailEx](https://www.symcon.de/de/llms/modules/smtp.md) genutzt werden.
> **Hinweis:** Die Emails können nicht speziell formatiert werden. /n /r sind funktional aber jegliche Formatierung wie z.B. bold, kursiv etc funktionieren nicht. Dazu muss z.B. dann ein PHPMailer genutzt werden.

| Eigenschaft | Bedeutung |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Host | Servername oder IP zum Mail-Provider |
| Port | Port, auf dem der Server arbeitet |
| SSL | Gibt an, ob SSL genutzt werden soll |
| Authentifizierung | Gibt an, ob ein Benutzername/Passwort erforderlich ist |
| Benutzername | Benutzername (Details gibt es beim Mail-Provider) |
| Passwort | Passwort |
| Absender-Name | Der Name, der beim Empfänger sichtbar ist |
| Absender-Adresse | Die Adresse, die beim Empfänger sichtbar ist. Je nach Provider muss die Absender-Adresse der eigenen Adresse entsprechen. |
| Empfänger | Nur erforderlich für die [SMTP_SendMail](https://www.symcon.de/de/llms/modules/smtp.md) Funktion, die automatisch an den Empfänger dieses Feldes sendet. |
> **Hinweis:** Eine Übersicht zu Host, Port und Authentifizierung für viele Provider können hier eingesehen werden: [Tabelle](https://www.arclab.com/en/kb/email/list-of-smtp-and-imap-servers-mailserver-list.html)
### Beispiel mit Gmail
GoogleMail lässt einen direkten Zugriff mit dem Benutzernamen und Passwort nicht ohne weitere Einstellung zu. Bei diesen Einstellungen kommt es darauf an, ob man eine Zwei-Faktor Authentifizierung aktiviert hat.
#### Ohne Zwei-Faktor Authentifizierung
Für die Nutzung ohne Zwei-Faktor Authentifizierung muss in der Verwaltung des Google Kontos unter "Sicherheit" der "Zugriff durch weniger sichere Apps" aktiviert werden. Ein Direktlink wäre [https://myaccount.google.com/lesssecureapps](https://myaccount.google.com/lesssecureapps) .
Wenn der Zugriff aktiviert ist, sieht es wie folgt aus. Es kann sich nun mit Benutzername und Passwort eingeloggt werden.

#### Mit Zwei-Faktor Authentifizierung
Bei der Nutzung mit Zwei-Faktor Authentifizierung muss in der Verwaltung des Google Kontos unter "Sicherheit" im Abschnitt "Bei Google anmelden" ein App-Passwort vergeben werden.
Hier auf die Zeile "App-Passwörter" klicken.

In der Überischt kann ein neues Passwort mit einem individuellen Namen generiert werden.

Das generierte Passwort muss dann in IP-Symcon eingetragen werden.

## SMTP_SendMail
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/smtp-sendmail/
`bool SMTP_SendMail(int $InstanzID, string $Betreff, string $Inhalt)`
_Benötigt Symcon >= 2.2_
versendet eine E-Mail an die Standardadresse
**Parameter**
- `$InstanzID` (int): ID der SMTP Instanz
- `$Betreff` (string): Betreff der E-Mail
- `$Inhalt` (string): Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
**Beispiel**
```php
SMTP_SendMail(12345, "Alarm!", "Die Heizung ist ausgefallen!");
```
## SMTP_SendMailAttachment
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/smtp-sendmailattachment/
`bool SMTP_SendMailAttachment(int $InstanzID, string $Betreff, string $Inhalt, string $Dateipfad)`
_Benötigt Symcon >= 2.2_
versendet eine E-Mail mit Anhang an die Standardadresse
**Parameter**
- `$InstanzID` (int): ID der SMTP Instanz
- `$Betreff` (string): Betreff der E-Mail
- `$Inhalt` (string): Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
- `$Dateipfad` (string): Pfad zur Datei
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Pfad zur Datei
**Beispiel**
```php
SMTP_SendMailAttachment(12345, "Alarm!", "Die Heizung ist ausgefallen!", "media/webcam.jpg");
```
## SMTP_SendMailAttachmentEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/smtp-sendmailattachmentex/
`bool SMTP_SendMailAttachmentEx(int $InstanzID, string $Empfänger, string $Betreff, string $Inhalt, string $Dateipfad)`
_Benötigt Symcon >= 2.2_
versendet eine E-Mail mit Anhang an eine beliebige Adresse
**Parameter**
- `$InstanzID` (int): ID der SMTP Instanz
- `$Empfänger` (string): E-Mail Adresse des Empfängers
- `$Betreff` (string): Betreff der E-Mail
- `$Inhalt` (string): Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
- `$Dateipfad` (string): Pfad zur Datei
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Pfad zur Datei
**Beispiel**
```php
SMTP_SendMailAttachmentEx(12345, "me@example.com", "Alarm!", "Die Heizung ist ausgefallen!", "media/webcam.jpg");
```
## SMTP_SendMailEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/smtp-sendmailex/
`bool SMTP_SendMailEx(int $InstanzID, string $Empfänger, string $Betreff, string $Inhalt)`
_Benötigt Symcon >= 2.2_
versendet eine E-Mail an eine beliebige Adresse
**Parameter**
- `$InstanzID` (int): ID der SMTP Instanz
- `$Empfänger` (string): E-Mail Adresse des Empfängers
- `$Betreff` (string): Betreff der E-Mail
- `$Inhalt` (string): Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
**Beispiel**
```php
//Eine Nachricht an einen Empfänger versenden, welche anders sein kann als die Eingestellte.
SMTP_SendMailEx(12345, "ich@provider.com", "Alarm!", "Die Heizung ist ausgefallen!");
//Eine Nachricht an mehrere Empfängern versenden.
$empfaengerListe = Array("ich@provider.com", "meinpartner@provider.com", "meinhausmeister@provider.com");
foreach($empfaengerListe as $empfaenger) {
SMTP_SendMailEx(12345, $empfaenger, "Alarm!", "Die Heizung ist ausgefallen!");
}
```
## SMTP_SendMailMedia
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/smtp-sendmailmedia/
`bool SMTP_SendMailMedia(int $InstanzID, string $Betreff, string $Inhalt, int $MedienID)`
_Benötigt Symcon >= 4.0_
versendet eine E-Mail mit Anhang eines Medienobjekts vom Typ "Bild/Ton" an die Standardadresse
**Parameter**
- `$InstanzID` (int): ID der SMTP Instanz
- `$Betreff` (string): Betreff der E-Mail
- `$Inhalt` (string): Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
- `$MedienID` (int): ID des Medienobjekts (nur Bild/Ton und Dokument)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Medienobjekts (nur Bild/Ton und Dokument)
**Beispiel**
```php
SMTP_SendMailMedia(12345, "Alarm!", "Da hat jemand an der Tür geklingelt, aber du bist leider nicht da!", 23456);
```
## SMTP_SendMailMediaEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/smtp/smtp-sendmailmediaex/
`bool SMTP_SendMailMediaEx(int $InstanzID, string $Empfänger, string $Betreff, string $Inhalt, int $MedienID)`
_Benötigt Symcon >= 4.0_
versendet eine E-Mail mit Anhang eines Medienobjekts vom Typ "Bild/Ton" an eine beliebige Adresse
**Parameter**
- `$InstanzID` (int): ID der SMTP Instanz
- `$Empfänger` (string): E-Mail Adresse des Empfängers
- `$Betreff` (string): Betreff der E-Mail
- `$Inhalt` (string): Inhalt der E-Mail. Wird als HTML versendet (seit 7.0), sofern und gefunden wird, ansonsten als Text
- `$MedienID` (int): ID des Medienobjekts (nur Bild/Ton und Dokument)
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des Medienobjekts (nur Bild/Ton und Dokument)
**Beispiel**
```php
SMTP_SendMailMediaEx(12345, "me@example.com", "Alarm!", "Da hat jemand an der Tür geklingelt, aber du bist leider nicht da!", 23456);
```
---
# Spotify
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/
_Benötigt Symcon >= 5.3_
Das Spotify-Modul ermöglicht die Verknüpfung mit einem Spotify-Premium-Konto. Darüber kann die Wiedergabe über das Konto gesteuert werden. So ist es möglich, die eine Wiedergabe zu starten oder die aktuelle Wiedergabe zu ändern bzw. zu beenden. Auch Optionen wie Wiederholung oder Zufallswiedergabe können gesetzt werden. Innerhalb des Moduls werden Favoriten gespeichert, welche dann komfortabel aus der Visualisierung abgerufen werden können.
### Funktionsumfang
- Verknüpfung mit einem Spotify-Premium-Konto
- Wiedergabe abspielen oder pausieren
- Zu nächstem oder vorherigen Song wechseln
- Gerät für Wiedergabe auswählen oder wechseln
- Favoriten abspeichern und wieder aufrufen
- Wiederholung oder Zufallswiedergabe aktivieren
### Voraussetzungen
- Spotify-Premium-Konto
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Spotify'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Spotify'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
Initial muss das Modul durch einen Klick auf den Button "Registrieren" mit einem Spotify-Premium-Konto verknüpft werden. Durch den Klick öffnet sich ein Anmeldungsdialog von Spotify. Nach Eingabe der Benutzerdaten muss die Verknüpfung bestätigt werden. Danach stehen alle Funktionen des Moduls zur Verfügung.
#### _Erweiterte Einstellungen_
| Name | Beschreibung |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktualisierungsintervall | In diesem Intervall werden die Werte der Statusvariablen mit der aktuellen Wiedergabe von Spotify abgeglichen. Dies beinhaltet das Gerät, Wiedergabe oder Pause, Zufallswiedergabe und Wiederholung |
| Cover: Maximale Breite | Maximale Breite des dargestellten Covers |
| Cover: Maximale Höhe | Maximale Höhe des dargestellten Covers |
#### _Suche_
| Name | Beschreibung |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Suche | In diesem Feld wird ein Suchbegriff für eine Suche eingegeben |
| Suche nach Alben | Gibt an ob die nächste Suche Alben beinhalten soll |
| Suche nach Künstlern | Gibt an ob die nächste Suche Künstler beinhalten soll |
| Suche nach Playlists | Gibt an ob die nächste Suche Playlists beinhalten soll |
| Suche nach Songs | Gibt an ob die nächste Suche Songs beinhalten soll |
| Suche starten | Startet eine Suche |
| Suchergebnisse | Diese Liste beinhaltet die Ergebnisse der aktuellen Suche - Durch ein Aktivieren des Feldes "Favorit" kann ein Ergbnis den Favoriten hinzugefügt werden |
Die Liste "Ihre Playlists" beinhaltet die Playlists des verknüpften Spotify-Kontos. Diese können über das Feld "Favorit" den Favoriten hinzugefügt werden. Die Liste "Favoriten" beinhaltet die eingestellten Favoriten. Durch ein Klick auf das Mülleimer-Symbol können Favoriten entfernt werden.
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| -------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aktuelles Cover | HTMLBox | Hier wird das Cover des aktuell abgespielten Albums dargestellt, sofern vorhanden |
| Aktueller Song | string | Hier wird der Name des aktuell abgespielten Songs angezeigt |
| Aktueller Künstler | string | Hier wird der Künstler des aktuell abgespielten Songs angezeigt |
| Aktuelles Album | string | Hier wird das Album des aktuell abgespielten Songs angezeigt |
| Aktion | integer | Hierüber kann eine Wiedergabe gestartet oder pausiert werden. Außerdem ist es möglich auf den vorherigen oder nächsten Song zu wechseln |
| Gerät | integer | Mit dieser Variable kann ein Wiedergabegerät ausgewählt werden. Ist aktuell eine Wiedergabe aktiv, so wird diese auf das neue Gerät gewechselt |
| Favorit | integer | Diese Variable stellt die im Modul konfigurierten Favoriten dar. Durch die Auswahl eines Favoriten wird dieser auf dem aktuell gewählten Gerät abgespielt |
| Wiederholen | integer | Über diese Variable kann die Wiederholung aktiviert werden - "Aus": Keine Wiederholung, "Kontext": Der aktuelle Kontext, also das Album, die Playlist, ... wird wiederholt, "Song": Der aktuelle Song wird wiederholt |
| Zufällige Wiedergabe | boolean | Aktiviert bzw. deaktiviert die zufällige Wiedergabe |
#### Profile:
| Name | Typ |
| ----------------------------- | ------- |
| Spotify.Favorites. | Integer |
| Spotify.Devices | Integer |
| Spotify.Repeat | Integer |
### Visualisierung
Über die Visualisierung oder in den mobilen Apps werden Statusvariablen angezeigt und können geschaltet werden.
## SPO_MakeAPIRequest
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-makeapirequest/
`string SPO_MakeAPIRequest(int $InstanzID, string $Method, string $Url, string $Body)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Method` (string): Art der HTML-Anfrage
- `$Url` (string): Pfad, welcher nach `https://api.spotify.com/v1 ` steht
- `$Body` (string): Nachricht, welche an den Endpunkt gesendet werden soll
**Rückgabewert** (string): Die Funktion gibt die Rückgabe der API als String zurück oder false bei einem Fehler.
Nachricht, welche an den Endpunkt gesendet werden soll
**Beispiel**
```text
SPO_MakeAPIRequest(12345, 'GET', '/me', '');
```
## SPO_NextTrack
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-nexttrack/
`bool SPO_NextTrack(int $InstanzID)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SPO_NextTrack(12345);
```
## SPO_Pause
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-pause/
`bool SPO_Pause(int $InstanzID)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SPO_Pause(12345);
```
## SPO_Play
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-play/
`bool SPO_Play(int $InstanzID)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SPO_Play(12345);
```
## SPO_PlayURI
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-playuri/
`bool SPO_PlayURI(int $InstanzID, string $URI)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$URI` (string): URI der Spotify-Resource
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
URI der Spotify-Resource
**Beispiel**
```text
SPO_PlayURI(12345, 'spotify:artist:1Lw1vZvhgNZk7hVSvdY4OA');
```
## SPO_PreviousTrack
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-previoustrack/
`bool SPO_PreviousTrack(int $InstanzID)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SPO_PreviousTrack(12345);
```
## SPO_ResetToken
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-resettoken/
`bool SPO_ResetToken(int $InstanzID)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
SPO_ResetToken(12345);
```
## SPO_SetRepeat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-setrepeat/
`bool SPO_SetRepeat(int $InstanzID, string $Repeat)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Repeat` (string)
| Wert | Bedeutung |
| ---- | ------------------------ |
| 0 | Wiederholung deaktiviert |
| 1 | Wiederholung des Kontext |
| 2 | Wiederholung des Songs |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Wert | Bedeutung |
| ---- | ------------------------ |
| 0 | Wiederholung deaktiviert |
| 1 | Wiederholung des Kontext |
| 2 | Wiederholung des Songs |
**Beispiel**
```text
SPO_SetRepeat(12345, 2);
```
## SPO_SetShuffle
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/spotify/spo-setshuffle/
`bool SPO_SetShuffle(int $InstanzID, bool $Shuffle)`
_Benötigt Symcon >= 5.3_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Shuffle` (bool): De-/Aktiviert die zufällige Wiedergabe
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
De-/Aktiviert die zufällige Wiedergabe
**Beispiel**
```text
SPO_SetShuffle(12345, true);
```
---
# Störungsmanager
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/stoerungsmanager/
_Benötigt Symcon >= 6.0_
Das Modul dient dazu aktive Variablen im Webfront anzuzeigen und je nach Einstellung nach Eingabe oder Deaktivierung auszublenden.
Wenn 'Automatisches Ausblenden', aber nicht 'Bestätigung' aktiviert wurde, wird ein Link sichtbar, sobald die überwachte Variable aktiv ist. Dieser verschwindet sobald die überwachte Variabel deaktiviert ist.
Wenn 'Bestätigung' und 'Automatisches Ausblenden' aktiviert wurde, wird eine Variable erstellt, sobald die überwachte Variable aktiv ist. Diese verschwindet sobald bei der erstellten Variable der Wert auf 1 bzw. 'In Bearbeitung' geändert wurde und die überwachte Variable inaktiv ist.
Wenn 'Bestätigung' aber nicht 'Automatisches Ausblenden' aktiviert wurde, wird eine Variable erstellt, sobald die überwachte Variable aktiv ist. Diese verschwindet sobald bei der erstellten Variable der Wert auf über 2 bzw. 'Alles in Ordnung' geändert wurde.
### Funktionsumfang
* Anzeige von aktiven Variablen
* Möglichkeit diese je nach Auswahl zu quittieren
### Software-Installation
* Über den Module Store das Modul Störungsmanger installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Störungsmanager'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ------------------------ | ------------------------------------------------------------------------------------------ |
| Variable | Variable, welche überwacht werden sollen. |
| Bestätigung | Checkbox, damit die Meldung bestätigt oder nicht bestätigt werden soll. |
| Automatisches Ausblenden | Checkbox, damit die Meldung bei deaktivierten Zustand wieder automatisch ausgeblendet wird |
| Umgang mit Nachrichten | Auswahl wie mit den Variablen umgegangen werden soll, wenn diese aktiv sind. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
##### Statusvariablen
| Name | Typ | Beschreibung |
| ----------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| Link: Variablennamen | Link | Link, welcher sichtbar oder unsichtbar ist. Wird erstellt, wenn 'Meldung verschwindet automatisch' ausgewählt wird. |
| Variablennamen - Status | Integer | Variable, welche erstellt wird, wenn 'Quittiere Meldung' oder 'Quittiere Meldung, verschwindet, wenn die Störung behoben wurde' ausgewählt wurde. |
##### Profile:
| Bezeichnung | Beschreibung |
| --------------- | -------------------------------------------- |
| STA.Confirm | Profil für erstellte Variablen, mit 3 Stufen |
| STA.ConfirmHide | Profil für erstellte Variablen, mit 2 Stufen |
### Visualisierung
Über die Visualisierung werden die erstellten Variablen angezeigt und können verändert werden, wenn diese quittiert werden müssen.
---
# SymconReport
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/
Erstellt je nach Module ein Report als CSV oder PDF
## MailReport
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/mailreport/
_Benötigt Symcon >= 5.5_
Das Modul verschickt regelmäßig die geloggten aggregierten Daten einer Variablen via E-Mail.
### Funktionsumfang
- Verschicke E-Mails mit aggregierten Daten einer Variablen
- E-Mails werden nach jedem Abschluß des gewählten Zeitintervalls (Täglich, Wöchentlich oder Monatlich)
- E-Mails beinhalten aggregierte Daten, welche auch in einem entsprechenden Graphen dargestellt würden (Stündlich bei täglichem Zeitintervall, Täglich bei wöchentlichem oder monatlichem Zeitintervall)
- Die E-Mail enthält eine CSV-Datei, welche analog zum CSV-Export von Graphen formatiert ist.
### Voraussetzungen
- Eingerichtete SMTP-Instanz zum Versenden von E-Mails
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) kann unter der Kategorie "Informationen"=>"Aufbereitung" oder direkt über die Suche nach "Report Modul" das Modul gefunden werden. Durch den Knopf "Installieren" wird das Modul IP-Symcon zur Verfügung gestellt.
### Einrichten der Instanzen in IP-Symcon
- Über "Instanz hinzufügen" kann das 'Report(Mail)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------- | --------------------------------------------------------------------------------------- |
| E-Mail SMTP | Auswahl der SMTP-Instanz über welche die E-Mails verschickt werden |
| Aggregierte Variable | Auswahl der Variablen wessen aggregierte Daten verschickt werden sollen |
| Dezimaltrennzeichen | Auswahl vom Dezimaltrennzeichen Komma oder Punkt. |
| Intervall der Nachrichten | Auswahl des Zeitintervalls in welchen die Nachrichten verschickt werden sollen |
| Sende Daten | Betätigen um eine Info-Mail über das letzte abgeschlossene Zeitintervall zu verschicken |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ----------------- | -------- | ------------------------------------ |
| Mail Report aktiv | Variable | Aktiviert bzw. deaktiviert das Modul |
### Visualisierung
Über die Visualisierung kann das Modul aktiviert oder deaktiviert werden.
## MR_SendInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/mailreport/mr-sendinfo/
`bool MR_SendInfo(int $InstanzID)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
MR_SendInfo(12345);
```
## MR_SetActive
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/mailreport/mr-setactive/
`bool MR_SetActive(int $InstanzID, bool $Active)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Active` (bool): De-/Aktivieren des Moduls
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
De-/Aktivieren des Moduls
**Beispiel**
```text
// Aktiviere das Modul MR_SetActive(12345, true);
```
## PDFReport (Energie)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-energie/
_Benötigt Symcon >= 5.5_
Dieses Modul bietet die Funktion die Archivwerte zweier Variablen als Graphen dazustellen, und ausgewählte Angabe als PDF für den vergangenen Monat bereitzustellen.
### Funktionsumfang
- Ermöglicht das Erstellen und Download von erstellter PDF.
- Einstellung via Instanzkonfiguration
- Logoauswahl für Header ist möglich
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) kann unter der Kategorie "Informationen"=>"Aufbereitung" oder direkt über die Suche nach "Report Modul" das Modul gefunden werden. Durch den Knopf "Installieren" wird das Modul IP-Symcon zur Verfügung gestellt.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Report (PDF, Energie)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Logo | (optional) Auswählbare Grafik als PNG |
| Verbrauchsart | Freitext welcher unterhalb des Datums steht |
| Dezimaltrennzeichen | Auswahl vom Dezimaltrennzeichen Komma oder Punkt. |
| Verbrauchszähler | Als Zähler geloggte Variable |
| Temperatur | (optional) geloggte Variable |
| Vorhersage | (optional) Variable, welche den Verbrauch aufgrund des Verhaltens vorhersagen kann, zum Beispiel aus dem Modul [Verbrauchsverhalten](https://www.symcon.de/de/service/dokumentation/modulreferenz/verbrauchsverhalten/) |
| CO2 Typ | (optional) CO2 Equivalent für die Verbrauchsart |
#### Beispiel Dokument

### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
### Statusvariablen
Die PDF wird als "Report (PDF)" generiert.
| Name | Typ | Beschreibung |
| ------------ | ------ | ----------------------------------------------------------------------------------------------------- |
| Report (PDF) | Medien | Erstellte PDF, welche über die Visualisierung heruntergeladen oder per E-Mail verschickt werden kann. |
### Visualisierung
Über die Visualisierung kann die generierte PDF heruntergeladen werden.
## RAC_GenerateEnergyReport
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-energie/rac-generateenergyreport/
`bool RAC_GenerateEnergyReport(int $InstanzID)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
RAC_GenerateEnergyReport(12345);
```
## PDFReport (Multi)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-multi/
_Benötigt Symcon >= 5.5_
Dieses Modul bietet die Funktion Archivwerte als Bericht in einer PDF zusammenzufassen.
### Funktionsumfang
- Ermöglicht das Erstellen und Download von erstellter PDF.
- Einstellung via Instanzkonfiguration
- Logoauswahl für Header ist möglich
- Einstellbare Anzahl Datensätze, Aggregationsstärke, Min- und Max-Werte der ausgewählten Variablen
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) kann unter der Kategorie "Informationen"=>"Aufbereitung" oder direkt über die Suche nach "Report Modul" das Modul gefunden werden. Durch den Knopf "Installieren" wird das Modul IP-Symcon zur Verfügung gestellt.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Report (PDF, Multi)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------------- | ---------------------------------------------------------------------------------- |
| Logo | Auswählbare Grafik als PNG |
| Firma | Firmenname |
| Title | Titel der PDF |
| Fußzeile | Fußzeile |
| Datenquelle | Mehrere Variablen aus der die Datensätze pro Spalte erstellt werden |
| Dezimaltrennzeichen | Auswahl vom Dezimaltrennzeichen Komma oder Punkt. |
| Aggregation | Definiert Aggregationsstufe der aufgelisteten Datensätze (Stunde - Jahr) |
| Anzahl | Anzahl der aufgelisteten Datensätze |
| Datensatz überspringen | Ist diese Option aktiviert, wird der aktuellste unvollständige Datensatz verworfen |
#### Beispiel Dokument

### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die PDF wird als "Report (PDF)" generiert.
| Name | Typ | Beschreibung |
| ------------ | ------ | ----------------------------------------------------------------------------------------------------- |
| Report (PDF) | Medien | Erstellte PDF, welche über die Visualisierung heruntergeladen oder per E-Mail verschickt werden kann. |
### Visualisierung
Über die Visualisierung kann die generierte PDF heruntergeladen werden.
## RAC_GenerateReport
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-multi/rac-generatereport/
`bool RAC_GenerateReport(int $InstanzID)`
_Benötigt Symcon >= 5.5_
Generiert ein PDF mit den im Modul mit der InstanzID angegebenen Werten
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
RAC_GenerateReport(12345);
```
## PDFReport (Multi Energie)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-multi-energie/
Dieses Modul bietet die Funktion den Gesamtverbrauch der ausgewählten Variablen als auch den Einzelverbrauch in der Zeitspanne anzuzeigen.
### Funktionsumfang
- Ermöglicht das Erstellen und Download von erstellter PDF.
- Einstellung via Instanzkonfiguration
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) kann unter der Kategorie "Informationen"=>"Aufbereitung" oder direkt über die Suche nach "Report Modul" das Modul gefunden werden. Durch den Knopf "Installieren" wird das Modul IP-Symcon zur Verfügung gestellt.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Report (PDF, Energie)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ----------------- | ---------------------------------------------------------- |
| Aggregation Level | Auswahl des Detailgrades der verwendeten Daten |
| Dezimal Separator | Auswahl, wie der Dezimal Separator dargestellt werden soll |
| Energiezähler | Liste der Energiezähler, welche verwendet werden sollen |
#### Beispiel Dokument

### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
### Statusvariablen
Die PDF wird als "Report (PDF)" generiert.
| Name | Typ | Beschreibung |
| ------------ | ------- | ----------------------------------------------------------------------------------------------------- |
| Start | Integer | Gibt das Startdatum an, ab wann die Daten genutzt werden sollen |
| End | Integer | Gibt das Enddatum an, bis wann die Daten genutzt werden sollen |
| Generate | Skript | Ausführbar, um die PDF zu aktualisieren |
| Report (PDF) | Medien | Erstellte PDF, welche über die Visualisierung heruntergeladen oder per E-Mail verschickt werden kann. |
### Visualisierung
Über die Visualisierung kann Start- und Enddatum eingegeben, die PDF generiert und heruntergeladen werden.
## PDFReport (Single)
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-single/
_Benötigt Symcon >= 5.5_
Dieses Modul bietet die Funktion Archivwerte als Bericht in einer PDF zusammenzufassen. Dabei wird eine einzige Zielvariable dargestellt mit Ihren Min/Max/Avg Werten.
### Funktionsumfang
- Ermöglicht das Erstellen und Download von erstellter PDF.
- Einstellung via Instanzkonfiguration
- Logoauswahl für Header ist möglich
- Einstellbare Anzahl Datensätze, Aggregationsstärke, Min- und Max-Werte der ausgewählten Variablen
### Software-Installation
Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) kann unter der Kategorie "Informationen"=>"Aufbereitung" oder direkt über die Suche nach "Report Modul" das Modul gefunden werden. Durch den Knopf "Installieren" wird das Modul IP-Symcon zur Verfügung gestellt.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Report (PDF, Single)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------------- | ---------------------------------------------------------------------------------------------------- |
| Logo | Auswählbare Grafik als PNG |
| Firma | Firmenname |
| Title | Titel der PDF |
| Fußzeile | Fußzeile |
| Datenquelle | Variable aus der die Datensätze erstellt werden |
| Aggregation | Definiert Aggregationsstufe der aufgelisteten Datensätze (Stunde - Jahr) |
| Dezimaltrennzeichen | Auswahl vom Dezimaltrennzeichen Komma oder Punkt. |
| Anzahl | Anzahl der aufgelisteten Datensätze |
| Datensatz überspringen | Ist diese Option aktiviert, wird der aktuellste unvollständige Datensatz verworfen |
| Toleranz (Min) | Akzeptierter Minimalwert der aggregierten Datensätze. Werte außerhalb der Toleranz werden ignoriert. |
| Toleranz (Max) | Akzeptierter Maximalwert der aggregierten Datensätze. Werte außerhalb der Toleranz werden ignoriert. |
#### Beispiel Dokument

### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
Die PDF wird als "Report (PDF)" generiert.
| Name | Typ | Beschreibung |
| ------------ | ------ | ----------------------------------------------------------------------------------------------------- |
| Report (PDF) | Medien | Erstellte PDF, welche über die Visualisierung heruntergeladen oder per E-Mail verschickt werden kann. |
### Visualisierung
Über die Visualisierung kann die generierte PDF heruntergeladen werden.
## RAC_GenerateReport
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/symconreport/pdfreport-single/rac-generatereport/
`bool RAC_GenerateReport(int $InstanzID)`
_Benötigt Symcon >= 5.5_
Generiert ein PDF mit den im Modul mit der InstanzID angegebenen Werten
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
RAC_GenerateReport(12345);
```
---
# Telefonansage
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/telefonansage/
_Benötigt Symcon >= 5.5_
Das Telefonansage-Modul ermöglicht die komfortable Verknüpfung einer VoIP-Instanz und einer Text-to-Speech-Instanz (Polly) um eine Telefonnummer anzurufen und bei Annahme des Anrufs einen Text auszugeben. Darüber hinaus, kann das Modul auf DTMF-Töne reagieren und weitere Texte ausgeben.
### Funktionsumfang
- Anrufen einer Telefonnummer und Ausgabe eines Textes
- Auswerten von DTMF-Tönen
- Ausgabe von weiteren Texten auf einer bestehenden Verbindung
### Voraussetzungen
- Eingerichtete VoIP-Instanz
- Eingerichtete [Text-to-Speech-Instanz (AWS Polly)](https://www.symcon.de/de/llms/modules/ttsawspolly.md)
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Telefonansage'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Telefonansage'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| -------------------------------------- | -------------------------------------------------------------------- |
| VoIP-Instanz | Die VoIP-Instanz, welche die Anrufe verwaltet |
| Text-to-Speech-Instanz (Polly) | Die Text-to-Speech-Instanz, welche die Texte in Tondaten umwandelt |
| Dauer bis die Verbindung getrennt wird | Die maximale Zeit, die gewartet wird, dass ein Anruf angenommen wird |
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Telefonnummer | String | Die Telefonnummer, welche bei der Betätigung von "Anruf starten" angerufen wird |
| Text | String | Der Text, welcher bei der Betätigung von "Anruf starten" initial ausgegeben wird. Wird diese Variable geschaltet während eine Verbindung besteht, wird der neue Text direkt ausgegeben |
| DTMF-Ton | String | Wird während des Anrufs ein DTMF-Ton verwendet, wird er in dieser Variable gespeichert |
| Anruf starten | Skript | Startet einen Anruf mit der aktuell eingestellten Telefonnummer und dem aktuellen Text |
## TA_StartCall
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/telefonansage/ta-startcall/
`void TA_StartCall(int $InstanzID)`
_Benötigt Symcon >= 5.5_
**Parameter**
- `$InstanzID` (int): ID der Instanz
ID der Instanz
**Beispiel**
```text
TA_StartCall(12345);
```
## TA_StartCallEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/telefonansage/ta-startcallex/
`void TA_StartCallEx(int $InstanzID, string $Telefonnummer, string $Text)`
_Benötigt Symcon >= 5.5_
Startet einen Anruf an eine Telefonnummer und gibt den Text aus
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Telefonnummer` (string): Anzurufende Telefonnummer
- `$Text` (string): Auszugebender Text
Auszugebender Text
**Beispiel**
```text
TA_StartCallEx(12345, "+4945130500511", "Ich liebe IP-Symcon!");
```
---
# Telefonkette
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/telefonkette/
_Benötigt Symcon >= 5.5_
Das Telefonkette-Modul ermöglicht es eine Liste von Telefonnummern nacheinander anzurufen.
### Funktionsumfang
- Eine Liste von Telefonnummern kann absteigend angerufen werden
- Bei Annahme kann eine TTS-Datei abgespielt werden
- Weitere Anrufe werden beendet, wenn ein Angerufener durch ein DTMF-Zeichen bestätigt
- DTMF-Zeichen frei wählbar
- Dauer bis ein Anruf beendet wird frei wählbar
- Bool Variable als Auslöser
### Voraussetzungen
- Eigenes VoIP Abarbeitungsskript für die Audio-Ansage oder eine eingerichtete TTSAWSPOLLY-Instanz
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das 'Telefonkette'-Modul installieren
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'Telefonkette'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| -------------------------------- | ---------------------------------------------------------------------------------------------- |
| Auslöser | Bool Variable die als Auslöser dient |
| VoIP Instanz | VoIP Instanz, welche für die Anrufe genutzt werden soll |
| TTS Instanz | TTSAWSPOLLY Instanz, welche für die Ansage genutzt werden soll |
| TTS Type | __Statisch__, Statischer Text für eine Ansage oder dynamische Ansage über eine String-Variable |
| Telefonnummern in Visu schaltbar | Option um die Telefonnummern in der Visualisierung an und ausschaltbar zu machen |
| Telefonnummern | Liste und Reihenfolge der Nummern mit Beschreibung, welche angerufen werden sollen |
| Anzahl gleichzeitiger Anrufe | Anzahl der Anrufe, welche parallel gemacht werden |
| Anrufdauer | Zeit in Sekunden, welche auf ein Annehmen des Anrufes gewartet wird |
| DTMF Bestätigungstaste | Taste, mit der ein Anruf bestätigt wird |
Anmerkung zu der Option 'Telefonnummern in Visu schalbar': Diese sorgt dafür das die Telefonnummern in der Liste als Variable erstellt werden. Die Telefonnummern werden nur dann angerufen, wenn die dazugehörige Variable den Wert 'True' und in der Visualisierung aktiviert ist.
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------------- | ------- | ----------------------------------------------------- |
| Anruf bestätigt von | String | Beinhaltet die Nummer, welche den Anruf bestätigt hat |
| Status | Integer | Zeigt an welcher stelle die Kette momentan ist |
| Status zurücksetzen | Skript | Setzt den Status zurück |
---
# TelegramBot
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/telegrambot/
_Benötigt Symcon >= 6.0_
Erlaubt das Versenden von Nachrichten an angegebene Personen und Ausführen von Aktionen innerhalb von IP-Symcon.
### Funktionsumfang
- Nachrichten versenden (an alle oder einzelne Personen)
- Bilder (aus Medien) versenden (an alle oder einzelne Personen)
- Auf Chat-Kommandos mit Aktionen reagieren
### Voraussetzungen
- Ein Telegram Bot
### Telegram Bot erstellen
- Im Telegram-Client nach [BotFather](https://t.me/botfather) suchen
- Mit ***/newbot*** wird ein neuer Bot erstellt
- Unter dem Benutzernamen kann der Bot gefunden werden und sollte daher mit beispielsweise zufälligen Zahlen bestückt werden

- Im Telegram-Client nach RawDataBot suchen
- Wenn der Bot angeschrieben wird gibt dieser einige Daten zurück, aus denen die eigene BenutzerID entnommen werden kann
- Dieser Vorgang muss für jeden Benutzer wiederholt werden, der von dem Bot erreicht werden soll

- Den Bot mit ***/start*** anschreiben um ihn zu starten
### Software-Installation
- Über den Module Store das 'TelegramBot'-Modul installieren.
- Alternativ über das Module Control folgende URL hinzufügen
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'TelegramBot'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ---------------- | ----------------------------------------------------------------- |
| Bot API Key | Der API Key des erstellten Bots |
| Bot Benutzername | Der Benutzername des erstellten Bots |
| Benutzer | Eine Liste von Benutzern, die vom Bot angeschrieben werden können |
| Aktionen | List mit Befehlen und den dazugehörigen Aktionen |
### Aktionen
#### Verschicke Bild
Mit dieser Aktion kann ein Bild an den ausgewählten Empfänger gesendet werden
#### _Parameter:_
- Bild: Das Medienobjekt, welches versendet werden soll
- Empfänger: Ein bestimmter oder alle in der Benutzer-Liste definierten Personen
#### Verschicke Nachricht
Mit dieser Aktion kann ein Nachricht an den ausgewählten Empfänger gesendet werden
#### _Parameter:_
- Text: Der Inhalt der Nachricht
- Empfänger: Ein bestimmter oder alle in der Benutzer-Liste definierten Personen
[Mehr Informationen zur Nutzung von Aktionen](https://www.symcon.de/service/dokumentation/konzepte/automationen/ablaufplaene/aktionen/)
---
# Text to Speech
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/text-to-speech/
Das TTS-Modul kann Text in Sprache umwandeln. Dazu wird die systeminterne Speechsoftware oder eine Nachinstallierte genutzt.
> **Achtung:** Das TTS-Modul kann momentan nur in der Windows Installation genutzt werden. Alternativ kann das "[Text to Speech (AWS Polly)](https://www.symcon.de/de/llms/modules/ttsawspolly.md)" - Modul aus dem Module Store genutzt werden. Dies funktioniert auf allen Betriebsystemen.
### Einrichtung in IP-Symcon
Im Konfigurationsreiter kann die Sprach-Engine und das Audio-Ausgabegerät eingestellt werden.
Um eine Sprachausgabe zu tätigen, muss der PHP Befehl [TTS_Speak](https://www.symcon.de/de/llms/modules/text-to-speech.md) oder [TTS_GenerateFile](https://www.symcon.de/de/llms/modules/text-to-speech.md) aus einem Script aufgerufen werden.
> **Achtung:** Der TTS_Speak Befehl ist veraltet und wird ab Windows Vista oder höher nicht mehr unterstützt. TTS_GenerateFile funktioniert in allen Versionen.
Bei der Nutzung von [TTS_GenerateFile](https://www.symcon.de/de/llms/modules/text-to-speech.md) ist die Nutzung vom [MediaPlayer](https://www.symcon.de/de/llms/modules/mediaplayer.md) nötig.
Ein Beispielcode ist unter [TTS_GenerateFile](https://www.symcon.de/de/llms/modules/text-to-speech.md) zu finden.
### Installation
Neben möglichen Standardstimmen können [hier](http://ttssamples.syntheticspeech.de/deutsch/index.html) weitere deutsche und internationale Ausgaben gefunden werden.
#### Besonderheit Windows Vista/7
Um die Sprachausgabe unter Windows Vista/7 nutzen zu können, muss der IP-Symcon Dienst als Lokaler Benutzer ausgeführt werden. Es ist zu beachten, dass dadurch die IPS_ExecuteEx Funktion nicht mehr zur Verfügung steht.
Über Start > Ausführen die Dienstverwaltung aufrufen
_%SystemRoot%\system32\services.msc /s_

Doppelklick auf den Eintrag IP-Symcon Enviroment. Es sollte sich folgender Dialog öffnen und im Reiter "Anmelden" muss das Passwort für den aktuellen Benutzer angegeben werden.

Nach Bestätigen mit Übernehmen/OK muss der IP-Symcon Dienst neu gestartet werden. Dieser ist am einfachsten über den Tray zu stoppen und starten.
## TTS_GenerateFile
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/text-to-speech/tts-generatefile/
`bool TTS_GenerateFile(int $InstanzID, string $Text, string $Dateiname, int $Format)`
generiert eine WAV Datei mit dem gewünschten Text
**Parameter**
- `$InstanzID` (int): ID des Text-To-Speech Moduls
- `$Text` (string): Zu sagender Text
- `$Dateiname` (string): Dateiname/-pfad im System
- `$Format` (int)
| Format | Wert |
| -------------------- | ---- |
| Default | 0 |
| 8kHz, 8Bit, Mono | 4 |
| 8kHz, 8Bit, Stereo | 5 |
| 8kHz, 16Bit, Mono | 6 |
| 8kHz, 16Bit, Stereo | 7 |
| 11kHz, 8Bit, Mono | 8 |
| 11kHz, 8Bit, Stereo | 9 |
| 11kHz, 16Bit, Mono | 10 |
| 11kHz, 16Bit, Stereo | 11 |
| 12kHz, 8Bit, Mono | 12 |
| 12kHz, 8Bit, Stereo | 13 |
| 12kHz, 16Bit, Mono | 14 |
| 12kHz, 16Bit, Stereo | 15 |
| 16kHz, 8Bit, Mono | 16 |
| 16kHz, 8Bit, Stereo | 17 |
| 16kHz, 16Bit, Mono | 18 |
| 16kHz, 16Bit, Stereo | 19 |
| 22kHz, 8Bit, Mono | 20 |
| 22kHz, 8Bit, Stereo | 21 |
| 22kHz, 16Bit, Mono | 22 |
| 22kHz, 16Bit, Stereo | 23 |
| 24kHz, 8Bit, Mono | 24 |
| 24kHz, 8Bit, Stereo | 25 |
| 24kHz, 16Bit, Mono | 26 |
| 24kHz, 16Bit, Stereo | 27 |
| 32kHz, 8Bit, Mono | 28 |
| 32kHz, 8Bit, Stereo | 29 |
| 32kHz, 8Bit, Stereo | 30 |
| 32kHz, 16Bit, Stereo | 31 |
| 44kHz, 8Bit, Mono | 32 |
| 44kHz, 8Bit, Stereo | 33 |
| 44kHz, 16Bit, Mono | 34 |
| 44kHz, 16Bit, Stereo | 35 |
| 48kHz, 8Bit, Mono | 36 |
| 48kHz, 8Bit, Stereo | 37 |
| 48kHz, 16Bit, Mono | 38 |
| 48kHz, 16Bit, Stereo | 39 |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
| Format | Wert |
| -------------------- | ---- |
| Default | 0 |
| 8kHz, 8Bit, Mono | 4 |
| 8kHz, 8Bit, Stereo | 5 |
| 8kHz, 16Bit, Mono | 6 |
| 8kHz, 16Bit, Stereo | 7 |
| 11kHz, 8Bit, Mono | 8 |
| 11kHz, 8Bit, Stereo | 9 |
| 11kHz, 16Bit, Mono | 10 |
| 11kHz, 16Bit, Stereo | 11 |
| 12kHz, 8Bit, Mono | 12 |
| 12kHz, 8Bit, Stereo | 13 |
| 12kHz, 16Bit, Mono | 14 |
| 12kHz, 16Bit, Stereo | 15 |
| 16kHz, 8Bit, Mono | 16 |
| 16kHz, 8Bit, Stereo | 17 |
| 16kHz, 16Bit, Mono | 18 |
| 16kHz, 16Bit, Stereo | 19 |
| 22kHz, 8Bit, Mono | 20 |
| 22kHz, 8Bit, Stereo | 21 |
| 22kHz, 16Bit, Mono | 22 |
| 22kHz, 16Bit, Stereo | 23 |
| 24kHz, 8Bit, Mono | 24 |
| 24kHz, 8Bit, Stereo | 25 |
| 24kHz, 16Bit, Mono | 26 |
| 24kHz, 16Bit, Stereo | 27 |
| 32kHz, 8Bit, Mono | 28 |
| 32kHz, 8Bit, Stereo | 29 |
| 32kHz, 8Bit, Stereo | 30 |
| 32kHz, 16Bit, Stereo | 31 |
| 44kHz, 8Bit, Mono | 32 |
| 44kHz, 8Bit, Stereo | 33 |
| 44kHz, 16Bit, Mono | 34 |
| 44kHz, 16Bit, Stereo | 35 |
| 48kHz, 8Bit, Mono | 36 |
| 48kHz, 8Bit, Stereo | 37 |
| 48kHz, 16Bit, Mono | 38 |
| 48kHz, 16Bit, Stereo | 39 |
**Beispiel**
```php
//Erstellt die Audiodatei
TTS_GenerateFile(16991 /*[Text To Speech]*/ , "Hallo Welt", "C:/ip-symcon-tts.wav", 39);
//Spielt die erstellte Audio-Datei ab
WAC_PlayFile(53825 /*[Media Player]*/ ,"C:/ip-symcon-tts.wav");
```
## TTS_Speak
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/text-to-speech/tts-speak/
`bool TTS_Speak(int $InstanzID, string $Text, bool $Warten)`
spricht einen beliebigen Text auf der gewählten Soundkarte
**Parameter**
- `$InstanzID` (int): ID des Text-To-Speech Moduls
- `$Text` (string): Zu sagender Text
- `$Warten` (bool): __TRUE__ für An, __FALSE__ für Aus
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
__TRUE__ für An, __FALSE__ für Aus
**Beispiel**
```php
TTS_Speak(12345, "Hallo Welt!", true); //Warten bis zu Ende gesprochen wurde
```
---
# TTSAWSPolly
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/ttsawspolly/
_Benötigt Symcon >= 5.1_
Das Text to Speech (AWS Polly) Modul dient dazu Sounddaten-/dateien zu generieren, welche z.B. für Audio Notifications oder VoIP Ansagen genutzt werden können.
### Funktionsumfang
- Erstellen von Sounddaten, die z.B. in einer Medien Datei gespeichert werden können für eine Ausgabe über Audio Notifications
- Erstellen von Sounddateien, die für eine Ausgabe im VoIP Modul verwendet werden können
### Voraussetzungen
- Konto bei Amazon Webservices
- Benutzer mit passendem Access Key/Secret Key und Zugriffsrechten zu Polly (z.B. AmazonPollyFullAccess)
### Software-Installation
Das "Text to Speech (AWS Polly)" Modul kann direkt über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) installiert werden.
### Einrichten des Benutzers im AWS IAM
Auf der Amazon AWS Homepage muss bei den AWS Services nach dem IAM gesucht werden.

Innerhalb des IAM muss ein neuer Benutzer hinzugefügt werden


Anschließend sollte ein sprechender Benutzername vergeben und "Programmgesteuerter Zugriff" aktiviert werden.

Als Richtlinie muss "AmazonPollyFullAccess" aktiviert werden.

Den nächsten Dialog mit "Weiter: Prüfen" überspringen.
Den Benutzer legt man über "Benutzer erstellen" fertig an.
Nach dem Anlegen des Benutzers wird diesem eine ZugriffsschlüsselID und geheimer Zugriffsschlüssel zugewiesen.

### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Text to Speech (AWS Polly)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------- | ----------------------------------------------------------------------- |
| Access Key | Access Key vom AWS Benutzer der Zugriff auf Polly hat |
| Secret Key | Secret Key vom AWS Benutzer der Zugriff auf Polly hat |
| Region | Region in der Polly genutzt werden soll |
| Sprache | Sprache in der die Ausgabe stattfinden soll |
| Ausgabeformat | Format (MP3/WAV/OGG) der Ausgabe |
| Abtastrate | Abtastrate (Standard, 8000 Hz, 16000 Hz, 22050 Hz) der Ausgabe |
| Texttyp | Typ vom Text. Bei SSML können die speziellen SSML Tags verwendet werden |
Nach Eintragung des Access Key/Secret Key muss die Konfiguration gespeichert werden, um die verfügbaren Sprachen zu Laden.
## TTSAWSPOLLY_GenerateData
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/ttsawspolly/ttsawspolly-generatedata/
`string TTSAWSPOLLY_GenerateData(int $InstanzID, string $Text)`
_Benötigt Symcon >= 5.1_
Fragt über AWS den Text an und liefert die Sprachdaten in der Rückgabe zurück.
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Text` (string): Sprachdaten
**Rückgabewert** (string): Base64-kodierte Sprachdaten
Sprachdaten
**Beispiel**
```text
echo TTSAWSPOLLY_GenerateData(12345, "Dies ist ein Test");
```
## TTSAWSPOLLY_GenerateFile
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/ttsawspolly/ttsawspolly-generatefile/
`string TTSAWSPOLLY_GenerateFile(int $InstanzID, string $Text)`
_Benötigt Symcon >= 5.1_
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$Text` (string): Sprachdaten
**Rückgabewert** (string): Sprachdaten Dateiname
Sprachdaten
**Beispiel**
```text
echo TTSAWSPOLLY_GenerateFile(12345, "Dies ist ein Test");
```
---
# VerbrauchsAlarm
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/verbrauchsalarm/
_Benötigt Symcon >= 6.0_
Das Modul dient dazu einen unnatürlich Verbrauch festzustellen. Es reagiert auf eine Zählervariable und schaltet unter bestimmten Bedingungen einen Alarm. Es gibt zwei Zustandsvariablen.
Einen Großverbrauch-Zustand, welcher schaltet wenn ein einstellbarer Grenzwert überschritten wird. Einen Kleinverbrauch-Zustand, welcher in 7 Stufen hochtickt wenn über längeren Zeitraum einen eingestellter Grenzwert (z.B. tropfender Wasserhahn) überschritten wird. Das Intervall für beide Kontrollen kann über die Konfiguration eingestellt werden. Ein Alarm, welche schaltet wenn der Großverbrauch-Zustand auf Alarm geschaltet ist, oder der Kleinverbrauch-Alarm einen eingestellten Wert überschreitet.
### Funktionsumfang
- Auswahl der Zählervariable
- Groß-/Kleinverbrauch Timer in Minuten einstellbar
- Groß-/Kleinverbrauch Grenzwert einstellbar
- 7 Stufen Anzeige für Kleinverbrauch
- Alarmanzeige bei Großverbrauch
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Verbraucher-Alarm installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter 'Instanz hinzufügen' kann das 'VerbrauchsAlarm'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------ | ------------------------------------------------------------------------------------------------------------ |
| Zählervariable | Variable, welche den Zählerwert wiedergibt. |
| Alarmsauslöser | Standard: 6 Kleinverbrauchsstufe bei dem der Alarm ausgelöst wird. |
| Kleinverbrauch Intervall | Standard: 1min Zeitintervall in dem kontrolliert wird, ob der Verbrauch zu hoch ist ist. |
| Kleinverbrauch Grenzwert | Standart: 0 Grenzwert bei dem der Zustand geändert wird. Ist dieser nicht gesetzt wird nicht darauf geprüft. |
| Großverbrauch Intervall | Standard: 5min Zeitintervall in dem kontrolliert wird, ob der Verbrauch zu hoch ist. |
| Großverbrauch Grenzwert | Standart: 0 Grenzwert bei dem der Zustand geändert wird.Ist dieser nicht gesetzt wird nicht darauf geprüft. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen:
| Name | Typ | Beschreibung |
| ---------------------- | ------- | -------------------------------------------------------------------------------- |
| Alarmbenachrichtigung | Boolean | Alarm, wenn Großverbrauch geschaltet oder Kleinverbrauch den Wert überschreitet. |
| Kleinverbrauch Zustand | Integer | 7 Stufenanzeige für den Stand den Alarmlevels. |
| Großverbrauch Zustand | Boolean | Alarm ob der Durchfluss zu hoch ist. |
#### Profile:
| Bezeichnung | Beschreibung |
| ------------------ | ------------------------------------------------------------------------------------- |
| VBA.LeakLevel | Profil für Kleinverbrauch - 7 Alarmstufen mit verschiedenen Symbolen und Farbanzeigen |
| VBA.ThresholdValue | Profil für Klein-/Großverbrauch Grenzwert |
Aufschlüsselung VBA.LeakLevel
| Stufe | Wert |
| ----------------------- | ---- |
| Keine Aktivität | 0 |
| Alles im grünen Bereich | 1 |
| Normale Aktivität | 2 |
| Erhöte Aktivität | 3 |
| Unnormale Aktivität | 4 |
| Vor-Alarm | 5 |
| Alarm | 6 |
### Visualisierung
Über die Visualisierung können die Grenzwerte eingestellt werden.
Es wird zusätzlich angezeigt, ob ein Alarm vorliegt oder nicht.
## VBA_CheckAlert
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/verbrauchsalarm/vba-checkalert/
`void VBA_CheckAlert(int $InstanzID, string $BorderValue, string $OldValue)`
_Benötigt Symcon >= 6.0_
Kontrolliert ob ein Grenzwert überschritten wird
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$BorderValue` (string): Grenzwert
- `$OldValue` (string): Alter Wert
**Rückgabewert** (void): Die Funktion liefert keinerlei Rückgabewert.
Alter Wert
**Beispiel**
```text
VBA_CheckAlert(12345, "SmallUserThreashold", "SmallUserBuffer");
```
---
# Wasser-Alarm
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/wasser-alarm/
_Benötigt Symcon >= 4.2_
Das Modul dient dazu einen unnatürlich hohen Wasserverbrauch festzustellen. Es reagiert auf eine Zählervariable und schaltet unter bestimmten Bedingungen einen Alarm. Es gibt zwei Alarmvariablen.
Einen Rohrbruch-Alarm, welcher schaltet wenn große Mengen auf einmal fließen. Einen Leckage-Alarm, welcher in 7 Stufen hochtickt wenn über längeren Zeitraum eine kleine Menge fließt (z.B. tropfender Wasserhahn). Das Intervall für beide Kontrollen kann über die Konfiguration eingestellt werden.
### Funktionsumfang
- Auswahl der Wasserzählervariable
- Rohrbruch Timer in Minuten einstellbar
- Leckage Timer in Minuten einstellbar
- 7 Stufen Anzeige für Leckage
- Alarmanzeige bei Rohrbruch
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Wasser-Alarm installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'WasserAlarm'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------- | -------------------------------------------------------------------------------------------- |
| Zählervariable | Variable, welche den Zählerwert wiedergibt. |
| Leckage Intervall | Standard: 1min Zeitintervall in dem kontrolliert wird, ob zuviel Wasser durchgeflossen ist. |
| Rohrbruch Intervall | Standard: 15min Zeitintervall in dem kontrolliert wird, ob zuviel Wasser durchgeflossen ist. |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Statusvariablen
| Name | Typ | Beschreibung |
| ------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Leckage Grenzwert | Float | Differenzwert, welcher im eingestellten "Leckage Intervall" überprüft wird und bei Überschreitung wird die "Leckage" um 1 erhöht. Wenn die Differenz unterhalb oder gleich der Grenze ist, wird das Alarmlevel resetet. |
| Leckage | Integer | 7 Stufenanzeige für den Stand den Alarmlevels. |
| Rohrbruch Grenzwert | Float | Grenzwert, welcher geprüft wird und gegebenfalls der Auslöser für einen Alarm ist. |
| Rohrbruch | Boolean | Alarm ob der Durchfluss zu hoch ist. |
#### Profile:
| Bezeichnung | Beschreibung |
| ------------------ | ------------------------------------------------------------------------------ |
| WAA.LeakLevel | Profil für Leckage - 7 Alarmstufen mit verschiedenen Symbolen und Farbanzeigen |
| WAA.ThresholdValue | Profil für Leckage/Rohrbruch Grenzwert |
### Visualisierung
Über die Visualisierung können die Grenzwerte eingestellt werden.
Es wird zusätzlich angezeigt, ob ein Alarm vorliegt oder nicht.
## WAA_CheckAlert
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/wasser-alarm/waa-checkalert/
`bool WAA_CheckAlert(int $InstanzID, string $BorderValue, string $OldValue)`
_Benötigt Symcon >= 4.2_
Kontrolliert ob die Grenzwerte überschritten wurden
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$BorderValue` (string): Grenzwert
- `$OldValue` (string): Alter Wert
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Alter Wert
**Beispiel**
```text
WAA_CheckAlert(12345, "LeakThreashold", "LeakBuffer");
```
---
# Watchdog
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/watchdog/
_Benötigt Symcon >= 5.1_
Überprüft ob in einer Liste definierte Variablen überfällig sind. Sind Variablen überfällig, wird ein Alarm gesetzt und eine Liste dieser in der Visualisierung angezeigt.
### Funktionsumfang
- Überwachen von gelisteten Variablen.
- Einstellbarkeit ob die Variablen auf Änderung oder Aktuallisierung geprüft werden sollen.
- Einstellbarkeit wie lange die gelisteten Variablen überfällig sein dürfen.
- Ein-/Ausschaltbarkeit via Visualisierungsbutton oder Skript-Funktion.
- Anzeige wann die gelisteten Variablen zuletzt überprüft wurden.
- Darstellung des Originalpfades oder eines inndividuellen Namens.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Watchdog installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Watchdog'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
- Alle zu schaltenden Variablen müssen der Liste "Variablen" in der Instanzkonfiguration hinzugefügt werden.
#### Konfigurationsseite:
| Name | Beschreibung |
| --------- | ---------------------------------------------------------------------- |
| Variablen | Dieser Liste werden die zu beobachtenden Variablen hinzugefügt. |
| Zeit | Dauer der Inaktivität bis die gelisteten Variablen den Alarm auslösen. |
| Einheit | Einheit der Zeit. |
Sollten Variablen unterschiedlich lange erlaubt Inaktivität haben, ist es zu empfehlen mehrere Instanzen des Watchdog-Moduls zu verwenden.
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
| Name | Typ | Beschreibung |
| ------------------ | ------- | ----------------------------------------------------------------------------------------- |
| Aktive Alarme | String | Beinhaltet die Tabelle für die Darstellung in der Visualisierung. |
| Alarm | Boolean | Die Variable zeigt an ob ein Alarm vorhanden ist. True = Alarm; False = OK; |
| Letzte Überprüfung | Integer | UnixTimestamp der den Zeitpunkt angibt zu dem zuletzt überprüft wurde. |
| Watchdog aktiv | Boolean | Zeigt an ob der Watchdog aktiviert ist oder nicht. True = Aktiviert; False = Deaktiviert; |
### Visualisierung
Über die Visualisierung kann der Watchdog de-/aktiviert werden.
Es wird zusätzlich die Information angezeigt, zu welchem Zeitpunkt zuletzt überprüft wurde.
## WD_GetAlertTargets
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/watchdog/wd-getalerttargets/
`array WD_GetAlertTargets(int $InstanzID)`
_Benötigt Symcon >= 5.1_
gibt ein Array mit den überfälligen Variablen zurück
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (array): Array der aktiven Alarme der Watchdoginstanz mit der InstanzID **InstanzID**
ID der Instanz
**Beispiel**
```text
WD_GetAlertTargets(12345);
```
## WD_SetActive
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/benachrichtigungen/watchdog/wd-setactive/
`bool WD_SetActive(int $InstanzID, bool $SetActive)`
_Benötigt Symcon >= 5.1_
De-/aktiviert die Instanz
**Parameter**
- `$InstanzID` (int): ID der Instanz
- `$SetActive` (bool): Aktiviert/ Deaktiviert den Watchdog
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Aktiviert/ Deaktiviert den Watchdog
**Beispiel**
```text
WD_SetActive(12345, true);
```
---
# Archive Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/
Das Archive Control Modul kümmert sich um das Speichern der Variablenwerte in einer Datenbank.
### Speicherart
Zur leichteren Handhabe und besseren Verwaltbarkeit wurde ab Version 4.0 die SQLite Datenbank entfernt und stattdesssen CSV eingeführt.
| IPS Version | Speicherart |
| --------------- | ---------------- |
| bis Version 3.4 | SQLite Datenbank |
| ab Version 4.0 | CSV Dateien |
### Logging aktivieren
Um eine Variable in der Datenbank zu loggen, muss per Doppelklick das Fenster "Variable editieren" geöffnet und die Checkbox "Alle Variablenänderungen aufzeichnen" ausgewählt werden. Sofern kein Button für den Graphen dieser Variable in der Visualisierung angezeigt werden soll, kann im Dropdown-Menü "Darstellung" die Option "In Visualisierung verstecken" ausgewählt werden.

| Aggregationstyp | Beschreibung |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Standard | Für alle Aggregationsstufen (Stunde, Tag, Woche, Monat, Jahr) wird Min / Max / Durchschnitt berechnet. |
| Zähler | Für alle Aggregationsstufen (Stunde, Tag, Woche, Monat, Jahr) wird das Delta (der Unterschied) der Werte als Min / Max / Summe berechnet. |
> **Hinweis:** Sofern die Zähleraggregation ausgewählt wurde, wird der erste im Archiv geloggte Wert als Referenzwert genutzt und erst die darauf folgenden Werte zur Summierung der positiven Deltas genutzt. Das heißt eine Variable mit den geloggten Werten 500, 505, 520, 521 wird mit den Werten 0, 5, 15, 1 angezeigt.
| Archiveinstellungen | Beschreibung |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Alle Variablenveränderungen aufzeichnen | Aktiviert das Logging der Variable. |
| Aggregation in Visualisierung anzeigen | Deaktiviert/Versteckt den Button zur Visualisierung der geloggten Variable. Das Aufzeichnen der Datenpunkte der Variable ist immernoch aktiv. |
> **Hinweis:** Wenn der Aggregationstyp einer Variable verändert wird, wird diese automatisch neu aggregiert. Dies kann einige Zeit in Anspruch nehmen.
Sobald das Logging ausgewählt ist, werden alle Daten in der Datenbank abgespeichert. Dabei werden die Daten zweifach gespeichert. Alle Rohdaten werden in der Datenbank abgelegt und diese Daten werden wiederum auf die einzelnen Intervalle (Tag, Woche, Monat, Jahr) zusammengefasst abgespeichert, um ein schnelleres erstellen der Graphen zu ermöglichen. Die Graphen können, wenn für die Variable aktiviert, über die Visualisierung angesehen werden.
### Archive Handler
Der Archive Handler ist eine Funktion zur Verwaltung aller geloggten Variablen. Es können alle Werte betrachtet und bearbeitet werden.


Die Titelzeile bietet folgende Funktionen:
| Funktion | Beschreibung |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aufräumen | Entfernt alle Archivdaten zu nicht mehr existierenden Variablen. Variablen deren Logging nur deaktiviert ist, werden nicht gelöscht. |
| Alle reaggregieren | Aggregiert alle geloggten Variablen neu. Dies kann je nach Umfang sehr lange dauern. Regelmäßige Status-, sowie Abschlussmeldungen, werden im Reiter "Meldungen" angezeigt. |
Ein Klick auf das Auge-Icon öffnet die Ansicht mit gespeicherten Rohdaten der gewählten Variable an und erlaubt das Löschen von einzelnen Datensätzen. __Nach dem Löschen ist es erforderlich, die Variablendaten neu zu aggregieren.__ Diese Funktion steht nicht für Variablen zur Verfügung, welche nicht mehr existieren. Ein Klick auf das Zahnrad öffnet einen Dialog mit weiterführenden Funktionen zur ausgewählten Variablen

| Funktion | Beschreibung |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reaggregieren | Aggregiert die ausgewählte Variable neu. Dies kann je nach Umfang sehr lange dauern. Regelmäßige Status-, sowie Abschlussmeldungen, werden im Reiter "Meldungen" angezeigt. |
| Daten löschen | Löscht alle Rohdaten der gewählten Variable aus dem Archiv. |
| Zeitspanne löschen | Hier kann eine Zeitspanne ausgewählt werden, in der alle Datensätze der gewählten Variable gelöscht werden sollen. |
| Daten transferieren | Die Rohdaten einer Variable werden auf eine andere Variable übertragen. Dies kann Sinnvoll sein wenn eine VariablenID nicht mehr existiert oder ein Sensor ausgetauscht wurde. Hierfür muss eine Variable gewählt werden, welche bisher nicht geloggt wurde und vom Variablentyp her zu den geloggten Werten passt. Die Daten der alten Variable werden dabei automatisch gelöscht. |
| Variable bearbeiten | Öffnet den Variable bearbeiten Dialog im Objektbaum |
| Daten hinzufügen | Hier können der Variablen weitere Datensätze hinzugefügt werden. Datensätze können entweder manuell oder aus Dateien hinzugefügt werden. Bei manuellem Hinzufügen öffnet sich ein weiter Dialog, in welchem in einer Liste Zeiten und Werte eingetragen werden können, welche bei einem Klick auf "Werte hinzufügen" der Variablen hinzugefügt werden. Sollen Datensätze aus Dateien hinzugefügt werden, so sind hierfür vorbereitete csv-Dateien erforderlich. In einem weiteren Schritt können die Werte noch manuell geprüft und schließlich der Variablen hinzugefügt werden. |
#### Mögliche Dateiformate bei "Daten hinzufügen"
In .csv-Dateien für das Hinzufügen von Daten muss je Zeile ein Zeitpunkt zusammen mit einem Datenwert notiert sein. Hier sind zwei grundlegende Notationen möglich:
1. Komma als Trennzeichen und Punkt als Dezimaltrennzeichen (Datum,1.5)
2. Semikolon als Trennzeichen und Komma als Dezimaltrennzeichen (Datum;1,5)
Für das Datum werden mehrere Formate unterstützt:
1. Unix-Timestamp, z.B. 1522527010
2. Deutsches Format, z.B. 31.03.2018 22:10:10
3. Amerikanisches Format, z.B. 03/31/2018 10:10:10 PM
4. RFC2822, z.B. Sat, 31 Mar 2018 22:10:10 +0000
5. ISO8601, z.B. 2018-03-31 22:10:10
#### Dateien aus Excel-Datei hinzufügen
Es ist möglich die .csv-Datei für das Hinzufügen von Daten mit Microsoft Excel vorzubereiten. Hier werden die Zeitpunkte in der ersten Spalte und die Werte in der zweiten Spalte eingetragen. Hierbei ist zu beachten, dass die Zeitpunkte in einem passenden Format formatiert sind. Beispielsweise kann für das deutsche Format das benutzerdefinierte Zahlenformat TT.MM.JJJJ hh:mm:ss verwendet werden.

Abschließend kann die Liste als .csv-Datei abgespeichert werden, indem bei "Speichern unter" der Typ "CSV (Trennzeichen-getrennt)" ausgewählt und danach mit "Speichern" bestätigt wird. Die generierte .csv-Datei kann dann über "Daten hinzufügen" einer [Variable](https://www.symcon.de/de/llms/concepts.md) bei IP-Symcon hinzugefügt werden.
## AC_AddLoggedValues
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-addloggedvalues/
`bool AC_AddLoggedValues(int $InstanzID, int $VariableID, array $Datensätze)`
_Benötigt Symcon >= 5.1_
fügt einer geloggten Variable weitere Datensätze hinzu
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariableID` (int): ID der Variable, welcher die Datensätze hinzugefügt werden sollen
- `$Datensätze` (array)
Ein Array mit Datensätzen, wobei jeder Datensatz ein Array mit folgenden __key => value__ Paaren ist:
| Parameter | Typ | Beschreibung |
| --------- | ------------- | ---------------------------------------------------------------------------------------------- |
| TimeStamp | Integer | Zeitpunkt des neuen Datensatzes als Unix Timestamp |
| Value | nach Variable | Der Wert des neuen Datensatzes - Der Typ des Wertes muss hierbei zum Typen der Variable passen |
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Ein Array mit Datensätzen, wobei jeder Datensatz ein Array mit folgenden __key => value__ Paaren ist:
| Parameter | Typ | Beschreibung |
| --------- | ------------- | ---------------------------------------------------------------------------------------------- |
| TimeStamp | Integer | Zeitpunkt des neuen Datensatzes als Unix Timestamp |
| Value | nach Variable | Der Wert des neuen Datensatzes - Der Typ des Wertes muss hierbei zum Typen der Variable passen |
**Beispiel**
```php
// Füge einer Integer Variable drei zusätzliche Datensätze hinzu
AC_AddLoggedValues(12345, 34567, [
[
'TimeStamp' => 1128255120,
'Value' => 30
],
[
'TimeStamp' => 1128257851,
'Value' => 50
],
[
'TimeStamp' => 1128278514,
'Value' => 130
]
]);
```
## AC_ChangeVariableID
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-changevariableid/
`bool AC_ChangeVariableID(int $InstanzID, int $OldVariableID, int $NewVariableID)`
_Benötigt Symcon >= 3.0_
migriert Daten einer Variable in eine bisher nicht geloggte Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$OldVariableID` (int): ID der zu migrierenden Variable
- `$NewVariableID` (int): ID der neuen Variable
**Rückgabewert** (bool): __True__ wenn erfolgreich, sonst __False__
ID der neuen Variable
**Beispiel**
```php
// Die Daten der Variable 34567 werden migriert in die Variable 56789
AC_ChangeVariableID(12345, 34567, 56789);
```
## AC_DeleteVariableData
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-deletevariabledata/
`int AC_DeleteVariableData(int $InstanzID, int $VariablenID, int $Startzeit, int $Endzeit)`
_Benötigt Symcon >= 3.0_
löscht in einem bestimmten Zeitraum alle Datensätze einer geloggten Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der Variable in der die Datensätze gelöscht werden sollen
- `$Startzeit` (int): Datum/Zeit als Unix Zeitstempel (0 = von Anfang an)
- `$Endzeit` (int): Datum/Zeit als Unix Zeitstempel (0 = bis jetzt)
**Rückgabewert** (int): gibt die Anzahl der gelöschten Datensätze zurück
Datum/Zeit als Unix Zeitstempel (0 = bis jetzt)
**Beispiel**
```php
// Löscht alle Daten der Variable "TestVariable" im Zeitraum 07.10.2015 16:00 UTC+2(CEST) bis 07.10.2015 17:00 UTC+2(CEST)
AC_DeleteVariableData(12345 /*[Archive]*/, 45678 /*[Variable]*/, 1444226400, 1444237200);
// Löscht alle Daten der Variable "TestVariable" im Zeitraum 07.10.2015 16:00 UTC+2(CEST) bis jetzt
AC_DeleteVariableData(12345 /*[Archive]*/, 45678 /*[Variable]*/, 1444226400, 0);
// Restlos löschen und aus dem Archiv Control entfernen
// Löscht alle Daten der Variable und deaktiviert die Variable im Archive Control
AC_DeleteVariableData(12345 /*[Archive]*/, 45678 /*[TestVariable]*/, 0, 0);
```
## AC_GetAggregatedValues
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getaggregatedvalues/
`array AC_GetAggregatedValues(int $InstanzID, int $VariablenID, int $Aggregationsstufe, int $Startzeit, int $Endzeit, int $Limit)`
_Benötigt Symcon >= 3.0_
holt aggregierte Daten aus dem Archiv
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
- `$Aggregationsstufe` (int)
| Aggregationsstufe | Beschreibung |
| ----------------- | ------------------------------------------------------------------------------------ |
| 0 | Stündliche Aggregation (00:00 - 59:59) |
| 1 | Tägliche Aggregation (00:00:00 - 23:59:59) |
| 2 | Wöchentliche Aggregation (Montag 00:00:00 - Sonntag 23:59:59) |
| 3 | Monatliche Aggregation (Erster Monatstag 00:00:00 - Letzter Monatstag 23:59:59) |
| 4 | Jährliche Aggregation (01.01. 00:00:00 - 31.12. 23:59:59) |
| 5 | 5-Minütige Aggregation (Aus Rohdaten berechnet) |
| 6 | 1-Minütige Aggregation (Aus Rohdaten berechnet) |
| 8 | 15-Minütige Aggregation (Aus Rohdaten berechnet) (ab Version 8.1) |
- `$Startzeit` (int): Datum/Zeit als Unix Zeitstempel (0 = von Anfang an)
- `$Endzeit` (int): Datum/Zeit als Unix Zeitstempel (0 = bis jetzt)
- `$Limit` (int): Maximale Anzahl an Datensätzen. (0 = Kein Limit, 10000 ist das harte Limit, welches immer greift)
**Rückgabewert** (array): Ein Array mit folgenden __key => value__ Paaren.
> **Hinweis:** Die Ausgabe startet mit dem neusten Datensatz und dann absteigend mit den älteren Datensätzen.
Bedeutung der Felder beim Aggregationstyp __Standard__
| Index | Typ | Beschreibung |
| ------------- | ------- | ----------------------------------------------------------------- |
| __Avg__ | variant | Durchschnittswert innerhalb dieses Aggregationszeitraums |
| __Duration__ | integer | Dauer des Aggregationszeitraums in Sekunden |
| __Max__ | variant | Größter Wert innerhalb dieses Aggregationszeitraums |
| __MaxTime__ | variant | Datum/Zeit von __Max__ als Unix Timestamp |
| __Min__ | variant | Kleinster Wert innerhalb dieses Aggregationszeitraums |
| __MinTime__ | variant | Datum/Zeit von __Min__ als Unix Timestamp |
| __TimeStamp__ | integer | Datum/Zeit vom Begin des Aggregationszeitraums als Unix Timestamp |
Bedeutung der Felder beim Aggregationstyp __Zähler__
| Index | Typ | Beschreibung |
| ------------- | ------- | ----------------------------------------------------------------- |
| __Avg__ | variant | Summe der positiven Delta innerhalb dieses Aggregationszeitraums |
| __Duration__ | integer | Dauer des Aggregationszeitraums in Sekunden |
| __Max__ | variant | Größter positives Delta innerhalb dieses Aggregationszeitraums |
| __MaxTime__ | variant | Datum/Zeit von __Max__ als Unix Timestamp |
| __Min__ | variant | Kleinstes positives Delta innerhalb dieses Aggregationszeitraums |
| __MinTime__ | variant | Datum/Zeit von __Min__ als Unix Timestamp |
| __TimeStamp__ | integer | Datum/Zeit vom Begin des Aggregationszeitraums als Unix Timestamp |
Maximale Anzahl an Datensätzen. (0 = Kein Limit, 10000 ist das harte Limit, welches immer greift)
**Beispiel**
```php
//Alle Datensätze vom 01.01.2013 bis zum 31.12.2013 abfragen (Tägliche Aggregationsstufe)
//z.B. um den Verbrauch am jeweiligen Tag zu ermitteln oder die Durchschnittstemperatur am jeweiligen Tag
$werte = AC_GetAggregatedValues(12345, 55554, 1 /* Täglich */, mktime(0, 0, 0, 1, 1, 2013), mktime(23, 59, 59, 12, 31, 2013), 0); //55554 ist die ID der Variable, 12345 vom Archiv
//Alle heutigen Datensätze abfragen (Tägliche Aggregationsstufe)
//z.B. um den heutigen Verbrauch er ermitteln oder die heutige Durchschnittstemperatur
$werte = AC_GetAggregatedValues(12345, 55554, 1 /* Täglich */, strtotime("today 00:00"), time(), 0); //55554 ist die ID der Variable, 12345 vom Archiv
//Alle gestrigen Datensätze abfragen (Stündlichen Aggregationsstufe)
//z.B. um den gesterigen Verbrauch oder die durchschittliche Windgeschwindigkeit jeder Stunde zu begutachten
$werte = AC_GetAggregatedValues(12345, 55554, 0 /* Stündlich */, strtotime("yesterday 00:00"), strtotime("today 00:00")-1, 0); //55554 ist die ID der Variable, 12345 vom Archiv
//Dieser Teil erstellt eine Ausgabe im Skriptfenster mit den abgefragten Werten
foreach($werte as $wert) {
echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Avg'] . PHP_EOL;
}
```
## AC_GetAggregationType
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getaggregationtype/
`int AC_GetAggregationType(int $InstanzID, int $VariablenID)`
_Benötigt Symcon >= 3.0_
gibt den Aggregationstyp einer Variable wieder
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
**Rückgabewert** (int): Ein Integer der den Typ der Aggregation wiedergibt.
| Rückgabewert | Beschreibung |
| ------------ | ------------ |
| 0 | Standard |
| 1 | Zähler |
ID der abzufragenden Variablen
**Beispiel**
```php
// Die Variable wird als Zähler aggregiert
echo AC_GetAggregationType(39147 /*[Archive]*/, 53716 /*[TestVariableZähler]*/);
// Ausgabe: 1
```
## AC_GetAggregationVariables
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getaggregationvariables/
`array AC_GetAggregationVariables(int $InstanzID, bool $DatenbankAbfrage)`
_Benötigt Symcon >= 3.0_
gibt ein Array aller geloggten Variablen zurück
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$DatenbankAbfrage` (bool): True, wenn zusätzliche Informationen angezeigt werden sollen, sonst False (ab Version 4.0 unwichtig, Angabe aber nötig)
**Rückgabewert** (array): Ein Array mit folgenden __key => value__ Paaren.
| Index | Typ | Beschreibung |
| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------- |
| FirstTime | integer | Datum/Zeit vom Beginn des Aggregationszeitraums als Unix Zeitstempel |
| LastTime | integer | Datum/Zeit vom letzten Eintrag des Aggregationszeitraums als Unix Zeitstempel |
| RecordCount | integer | Anzahl der Datensätze |
| RecordSize | integer | Größe aller Datensätze in Bytes |
| VariableID | integer | ID der Variable |
| AggregationType | integer | Aggregationstyp als Integer. Siehe auch [AC_GetAggregationType](https://www.symcon.de/de/llms/modules/archive-control.md) |
| AggregationVisible | boolean | Gibt an ob die Variable in der Visualisierung angezeigt wird. Siehe auch [AC_GetGraphStatus](https://www.symcon.de/de/llms/modules/archive-control.md) |
| AggregationActive | boolean | Gibt an ob das Logging für diese Variable Aktiv ist. Siehe auch [AC_GetLoggingStatus](https://www.symcon.de/de/llms/modules/archive-control.md) |
| Compaction | array | Array mit Verdichtungseinträgen. Jeder Eintrag enthält MonthOffset und CompactionType. Siehe auch [AC_SetCompaction](https://www.symcon.de/de/llms/modules/archive-control.md) |
True, wenn zusätzliche Informationen angezeigt werden sollen, sonst False (ab Version 4.0 unwichtig, Angabe aber nötig)
**Beispiel**
```php
// Ausgabe mit zusätzlichen Informationen
var_dump(AC_GetAggregationVariables(39147 /*[Archive]*/, true));
/* Beispielausgabe
array(1) {
[0]=>
array(9) {
["FirstTime"]=>
int(1444221643)
["LastTime"]=>
int(1444221705)
["RecordCount"]=>
int(6)
["RecordSize"]=>
int(78)
["VariableID"]=>
int(53716)
["AggregationType"]=>
int(0)
["AggregationVisible"]=>
bool(true)
["AggregationActive"]=>
bool(true)
["Compaction"]=>
array(1) {
[0]=>
array(2) {
["MonthOffset"]=>
int(-1)
["CompactionType"]=>
int(1)
}
}
}
}
*/
```
## AC_GetCompaction
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getcompaction/
`array AC_GetCompaction(int $InstanzID, int $VariablenID)`
_Benötigt Symcon >= 6.3_
gibt die Verdichtungseinträge einer Variable zurück
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
**Rückgabewert** (array): Ein Array mit den Verdichtungseinträgen der Variable.
Jeder Eintrag enthält folgende Felder:
| Feld | Typ | Beschreibung |
| --------------- | --- | --------------------------------------- |
| MonthOffset | int | Monatsversatz der Verdichtung |
| CompactionType | int | Typ der Verdichtung (siehe unten) |
**Verdichtungstypen**
| Verdichtungstyp | Beschreibung |
| --------------- | --------------------------------------- |
| 0 | Auf einen Wert pro Minute verdichten |
| 1 | Auf einen Wert pro 5 Minuten verdichten |
| 2 | Auf einen Wert pro Stunde verdichten |
| 3 | Auf einen Wert pro Tag verdichten |
| 4 | Auf einen Wert pro Woche verdichten |
| 5 | Auf einen Wert pro Monat verdichten |
| 6 | Auf einen Wert pro Jahr verdichten |
| 7 | Werte löschen |
ID der abzufragenden Variablen
**Beispiel**
```php
// Abfrage der Verdichtungseinträge für "TestVariable"
$compaction = AC_GetCompaction(39147 /*[Archive]*/, 53716 /*[TestVariable]*/);
print_r($compaction);
/* Beispielausgabe:
Array
(
[0] => Array
(
[MonthOffset] => -1
[CompactionType] => 1
)
[1] => Array
(
[MonthOffset] => 3
[CompactionType] => 2
)
)
*/
```
## AC_GetCounterIgnoreZeros
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getcounterignorezeros/
`bool AC_GetCounterIgnoreZeros(int $InstanzID, int $VariablenID)`
_Benötigt Symcon >= 5.5_
holt den Status ob Nullen und negative Werte ignoriert werden
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variable
**Rückgabewert** (bool): True wenn Ignorieren von Nullen und negative Werte für die Variable aktiv ist, sonst False
ID der abzufragenden Variable
**Beispiel**
```php
// Abfrage der Variable "54321" aus dem ArchivControl "12345"
AC_GetCounterIgnoreZeros(12345, 54321);
```
## AC_GetGraphStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getgraphstatus/
`bool AC_GetGraphStatus(int $InstanzID, int $VariablenID)`
_Benötigt Symcon >= 3.0_
fragt ab ob eine Variable visualisiert wird
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
**Rückgabewert** (bool): __True__ wenn die Visualisierung der Variable aktiv ist, sonst __False__
ID der abzufragenden Variablen
**Beispiel**
```php
// Abfrage der Variable "TestVariable"
var_dump(AC_GetGraphStatus(39147 /*[Archive]*/, 53716 /*[TestVariable]*/));
echo AC_GetGraphStatus(39147 /*[Archive]*/, 53716 /*[TestVariable]*/);
/* Beispielausgabe
var_dump:
bool(true)
echo:
1
*/
```
## AC_GetLoggedValues
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getloggedvalues/
`array AC_GetLoggedValues(int $InstanzID, int $VariablenID, int $Startzeit, int $Endzeit, int $Limit)`
_Benötigt Symcon >= 3.0_
holt Rohdaten aus dem Archiv Control
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
- `$Startzeit` (int): Datum/Zeit als Unix Zeitstempel. (0 = von Anfang an)
- `$Endzeit` (int): Datum/Zeit als Unix Zeitstempel. (0 = bis jetzt)
- `$Limit` (int): Maximale Anzahl an Datensätzen. (0 = Kein Limit, 10000 ist das harte Limit, welches immer greift)
**Rückgabewert** (array): Ein Array mit folgenden __key => value__ Paaren.
> **Hinweis:** Die Ausgabe startet mit dem neusten Datensatz und dann absteigend mit den älteren Datensätzen.
| Index | Typ | Beschreibung |
| ------------- | ------- | ------------------------------------------------------------ |
| __Duration__ | integer | Dauer in Sekunden, die der Datensatz gesetzt war |
| __TimeStamp__ | integer | Datum/Zeit beim Erstellen des Datensatzes als Unix Timestamp |
| __Value__ | variant | Wert |
Maximale Anzahl an Datensätzen. (0 = Kein Limit, 10000 ist das harte Limit, welches immer greift)
**Beispiel**
```php
//Den letzten Wert, der in der Datenbank gespeichert wurde, holen
$letzter_Wert = AC_GetLoggedValues(12345, 55554, 0, 0, 1)[0]['Value'];
//Alle Datensätze vom 01.01.2013 bis zum 07.01.2013 abfragen
$werte = AC_GetLoggedValues(12345, 55554, mktime(0, 0, 0, 1, 1, 2013), mktime(23, 59, 59, 1, 7, 2013), 0); //55554 ist die ID der Variable, 12345 vom Archiv Control
//Alle heutigen Datensätze abfragen
$werte = AC_GetLoggedValues(12345, 55554, strtotime("today 00:00"), time(), 0); //55554 ist die ID der Variable, 12345 vom Archiv Control
//Alle gestrigen Datensätze abfragen
$werte = AC_GetLoggedValues(12345, 55554, strtotime("yesterday 00:00"), strtotime("today 00:00")-1, 0); //55554 ist die ID der Variable, 12345 vom Archiv Control
//Dieser Teil erstellt eine Ausgabe im Skriptfenster mit den abgefragten Werten
foreach($werte as $wert) {
echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Value'] . PHP_EOL;
}
//Hilfsfunktion, die die Funktionsweise von IP-Symcon 2.x nachbildet
function AC_GetLoggedValuesCompatibility($instanceID, $variableID, $startTime, $endTime, $limit) {
$values = AC_GetLoggedValues($instanceID, $variableID, $startTime, $endTime, $limit );
if((sizeof($values) == 0) || (end($values)['TimeStamp'] > $startTime)) {
$previousRow = AC_GetLoggedValues($instanceID, $variableID, 0, $startTime - 1, 1 );
$values = array_merge($values, $previousRow);
}
return $values;
}
```
## AC_GetLoggingStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-getloggingstatus/
`bool AC_GetLoggingStatus(int $InstanzID, int $VariablenID)`
_Benötigt Symcon >= 3.0_
fragt ab ob eine Variable geloggt wird
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
**Rückgabewert** (bool): __True__ wenn Logging für die Variable aktiv ist, sonst __False__
ID der abzufragenden Variablen
**Beispiel**
```php
// Abfrage der Variable "TestVariable"
var_dump(AC_GetLoggingStatus(39147 /*[Archive]*/, 53716 /*[TestVariable]*/));
echo AC_GetLoggingStatus(39147 /*[Archive]*/, 53716 /*[TestVariable]*/);
/* Beispielausgabe
var_dump:
bool(true)
echo:
1
*/
```
## AC_ReAggregateVariable
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-reaggregatevariable/
`bool AC_ReAggregateVariable(int $InstanzID, int $VariablenID)`
_Benötigt Symcon >= 3.0_
startet die Reaggregation einer Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der zu reaggregierenden Variable
**Rückgabewert** (bool): __True__ wenn erfolgreich, sonst __False__
ID der zu reaggregierenden Variable
**Beispiel**
```php
// Dies startet die Reaggregation der Variable "Testvariable"
AC_ReAggregateVariable(39147 /*[Archive]*/, 53716 /*[TestVariable]*/);
/* Beispielausgabe im Meldungsfenster
07.10.2015 15:50:05 | Archive Control | Reaggregation for VariableID #53716 is in progress... 10/2015! (6 rows)
07.10.2015 15:50:05 | Archive Control | Reaggregation for VariableID #53716 is complete! (6 rows)
*/
```
## AC_SetAggregationType
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-setaggregationtype/
`bool AC_SetAggregationType(int $InstanzID, int $VariablenID, int $Aggregationstyp)`
_Benötigt Symcon >= 3.0_
setzt den Aggregationstyp einer Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der Variable bei der der Aggregationstyp gesetzt werden soll
- `$Aggregationstyp` (int)
| Aggregationstyp | Description |
| --------------- | ----------- |
| 0 | Standard |
| 1 | Counter |
**Rückgabewert** (bool): __True__ wenn erfolgreich, sonst __False__
| Aggregationstyp | Description |
| --------------- | ----------- |
| 0 | Standard |
| 1 | Counter |
**Beispiel**
```php
// Setzt den Aggregationtyp der Variable "TestVariable" auf 1 (Zähler)
AC_SetAggregationType(39147 /*[Archive]*/, 53716 /*[TestVariable]*/, 1);
```
## AC_SetCompaction
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-setcompaction/
`bool AC_SetCompaction(int $InstanzID, int $VariablenID, int $MonatsVersatz, int $Verdichtungstyp)`
_Benötigt Symcon >= 6.3_
Konfiguriert die Verdichtung der Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der Variablen bei der die Verdichtung angepasst werden soll
- `$MonatsVersatz` (int): Nach wie vielen Monaten die Verdichtung angewandt werden soll; 0 = Nach Abschluß das aktuellen Monats, -1 = Werte direkt verdichten
- `$Verdichtungstyp` (int)
| Verdichtungstyp | Beschreibung |
| --------------- | --------------------------------------- |
| -1 | Verdichtung deaktivieren |
| 0 | Auf einen Wert pro Minute verdichten |
| 1 | Auf einen Wert pro 5 Minuten verdichten |
| 2 | Auf einen Wert pro Stunde verdichten |
| 3 | Auf einen Wert pro Tag verdichten |
| 4 | Auf einen Wert pro Woche verdichten |
| 5 | Auf einen Wert pro Monat verdichten |
| 6 | Auf einen Wert pro Jahr verdichten |
| 7 | Werte löschen |
**Rückgabewert** (bool): **True** wenn erfolgreich, sonst **False**
| Verdichtungstyp | Beschreibung |
| --------------- | --------------------------------------- |
| -1 | Verdichtung deaktivieren |
| 0 | Auf einen Wert pro Minute verdichten |
| 1 | Auf einen Wert pro 5 Minuten verdichten |
| 2 | Auf einen Wert pro Stunde verdichten |
| 3 | Auf einen Wert pro Tag verdichten |
| 4 | Auf einen Wert pro Woche verdichten |
| 5 | Auf einen Wert pro Monat verdichten |
| 6 | Auf einen Wert pro Jahr verdichten |
| 7 | Werte löschen |
**Beispiel**
```text
// Setzt das direkte Verdichten der Variable "TestVariable" auf 1 (Ein Wert pro 5 Minuten)
AC_SetCompaction(39147 /*[Archive]*/, 53716 /*[TestVariable]*/, -1, 1);
```
## AC_SetCounterIgnoreZeros
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-setcounterignorezeros/
`bool AC_SetCounterIgnoreZeros(int $InstanzID, int $VariablenID, bool $NullenIgnorieren)`
_Benötigt Symcon >= 5.5_
setzt den Status ob Nullen und negative Werte ignoriert werden
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variable
- `$NullenIgnorieren` (bool): True, wenn Nullen und negative Werte ignoriert werden sollen, sonst False.
**Rückgabewert** (bool)
True, wenn Nullen und negative Werte ignoriert werden sollen, sonst False.
**Beispiel**
```php
```
## AC_SetGraphStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-setgraphstatus/
`bool AC_SetGraphStatus(int $InstanzID, int $VariablenID, bool $Aktiv)`
_Benötigt Symcon >= 3.0_
setzt die Eigenschaft zur Visualisierung einer Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
- `$Aktiv` (bool): True, wenn das Anzeigen der Variable in der Visualisierung aktiviert werden soll, sonst False.
**Rückgabewert** (bool): __True__ wenn erfolgreich, sonst __False__
True, wenn das Anzeigen der Variable in der Visualisierung aktiviert werden soll, sonst False.
**Beispiel**
```php
// Setzt die Eigenschaft der "Testvariable" zur Visualisierung auf true
AC_SetGraphStatus(39147 /*[Archive]*/, 53716 /*[TestVariable]*/, true);
```
## AC_SetLoggingStatus
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/ac-setloggingstatus/
`bool AC_SetLoggingStatus(int $InstanzID, int $VariablenID, bool $Aktiv)`
_Benötigt Symcon >= 3.0_
setzt die Eigenschaft zum Loggen einer Variable
**Parameter**
- `$InstanzID` (int): ID zum Archiv
- `$VariablenID` (int): ID der abzufragenden Variablen
- `$Aktiv` (bool): True, wenn das Logging der Variable aktiviert werden soll, sonst False.
**Rückgabewert** (bool): __True__ wenn erfolgreich, sonst __False__
True, wenn das Logging der Variable aktiviert werden soll, sonst False.
**Beispiel**
```php
// Setzt die Eigenschaft der "Testvariable" zum Loggen auf true
AC_SetLoggingStatus(39147 /*[Archive]*/, 53716 /*[TestVariable]*/, true);
```
## Datenformat
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/archive-control/datenformat/
> **Hinweis:** Ab Version 4.0 von IP-Symcon werden CSV-Dateien zur Datenspeicherung genutzt. Zuvor wurde dies von einer MySQL Datenbank erledigt.
Das Archiv speichert zwei unterschiedliche Arten der Daten.
* Primär werden die Rohdaten gespeichert.
* Sekündar werden die nach Zeitraum (Jahr, Monat, Woche, Tag, Stunde) aggregierten Daten berechnet und geschrieben.
### CSV Struktur
* Alle Dateien haben die VariablenID im Namen und .csv als Dateiendung
* Rohdaten werden in eigenen Ordnern pro Jahr und pro Monat geschrieben
* Aggregationsdaten werden im DB Hauptordner gespeichert
* Dateien werden erst erstellt, sobald Daten vorhanden sind
* Das Dezimaltrennzeichen ist immer ein Punkt (.)
#### Rohdaten Inhalt
Ein Datensatz pro Zeile.
Daten sind durch Komma (,) voneinander getrennt.
* Unix-Zeitstempel
* Rohwert
> **Hinweis:** Die geloggten Rohwerte werden, unabhängig von der eingestellten Serverzeit, immer in UTC gespeichert.
> **Hinweis:** String-Werte werden Base64 kodiert gespeichert.
#### Rohdaten Verzeichnisstruktur
* db\2010\01\12345.csv
* db\2010\01\23456.csv
* db\2010\02\12345.csv
* db\2010\02\23456.csv
#### Inhalt Aggregationsdaten
Ein Datensatz pro Zeile.
Daten sind durch Komma (,) voneinander getrennt.
* Unix-Zeitstempel für Avg-Wert
* Avg-Wert
* Delta zum Unix-Zeitstempel für Min-Wert
* Min-Wert
* Delta zum Unix-Zeitstempel für Max-Wert
* Max-Wert
#### Aggregationsdaten Verzeichnisstruktur
* db\12345.year.csv
* db\12345.month.csv
* db\12345.week.csv
* db\12345.day.csv
* db\12345.hour.csv
---
# Berechtigungssteuerung
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/berechtigungssteuerung/
_Benötigt Symcon >= 8.0_
> **Hinweis:** Die Berechtigungssteuerung ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz erworben werden kann. Für eine passende Demo-Version wenden Sie sich bitte an unseren [Support](https://www.symcon.de/de/kontakt/#RBAC%20Erweiterung). Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/ips-enterprise-rbac) erworben werden.
Die Berechtigungssteuerung ermöglicht es Benutzer und Rollen zu erstellen und ihnen bestimmte Berechtigungen zuzuweisen. Außerdem können Benutzer mit einem bestehenden LDAP Authentifizierungsserver synchronisiert werden.
### LDAP-Konfiguration (optional)
Nachdem alle Daten zur Verbindung angegeben wurden, können die Nutzer- und Rollenlisten mit einem Klick auf "Jetzt synchronisieren" mit den mit LDAP eingerichteten Äquivalenten gefüllt werden. Wenn die automatische Synchronisation aktiviert ist, werden Benutzer und Rollen in dem angegebenen Intervall synchronisiert.

### Benutzer
Standardmäßig gibt es den @admin Benutzer. Dieser kann nicht editiert werden und hat alle Berechtigungen. Um sich mit diesem anzumelden wird das Kennwort für den Fernzugriff verwendet. Die Berechtigungen für etwa den Zugriff auf eine Visualisierung kann in der entsprechenden [Instanz](https://www.symcon.de/de/llms/components/tile-visualization.md) festgelegt werden. Bei Bedarf kann ein Nutzer deaktiviert werden, ohne ihn direkt zu löschen.

#### Benutzer hinzufügen
Beim Hinzufügen eines Nutzers können neben dem Passwort auch ein Vor- und Nachname angegeben werden. Diese werden unter anderem in der Visualisierung angezeigt. Beim Erstellen kann zwischen den Kontotypen "Lokales Konto" und "LDAP Sync" gewählt werden. Ist "LDAP Sync" gewählt, muss anstelle eines Passworts die UserDN angegeben werden. In der Liste können alle gewünschten Rollen ausgewählt werden.
### Rollen
Standardmäßig gibt es die @admin Rolle. Diese kann nicht editiert werden und hat alle Berechtigungen. Erstellte Rollen können den erstellten Benutzern hinzugefügt werden. Die Berechtigungen für etwa den Zugriff auf eine Visualisierung kann in der entsprechenden [Instanz](https://www.symcon.de/de/llms/components/tile-visualization.md) festgelegt werden.

#### Rollen hinzufügen
Jeder Rolle kann beim Erstellen ein Name gegeben werden.
---
# Calendar Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/calendar-control/
_Benötigt Symcon >= 4.0_
### Beschreibung
Das "Calendar Control" Modul bietet die Möglichkeit Zeiträume zu definieren in denen man voraussichtlich an- oder abwesend ist.
### Einbindung in IP-Symcon

In der Instanz "Kalender" ("Logische Baumansicht"->"Kern Instanzen") können über die Konfigurationsseite neue Zeiträume hinzugefügt werden.
In diesen Zeiträumen wird die jeweils passende Variable auf "True" geschaltet. Wenn beide Variablen auf False geschaltet sind, ist für die jetzige Uhrzeit kein Zeitraum definiert.

### Beispiele
__Geplante Anwesenheit__
Ein Familienbesuch wird als geplante Anwesenheit eingetragen. Zu Zeiten, in denen normalerweise niemand in der Wohnung ist, wird automatisch die Heizung gedrosselt um Energie zu sparen. Durch Berücksichtigung der Variable "geplante Anwesenheit" kann dies verhindert werden, ohne eingerichteten Skripte oder Wochenpläne abzuändern oder manuell auszuschalten.
__Geplante Abwesenheit__
Der Familienurlaub an der Ostsee wird als geplante Abwesenheit eingetragen. Durch die geplante Abwesenheit kann eine eingerichtete Energiesparautomation dauerhaft für den Zeitraum aktiviert werden, welche im Alltagsleben normalerweise nur zu bestimmten Zeiten aktiv wäre.
---
# Connect Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/connect-control/
_Benötigt Symcon >= 4.0_
### Beschreibung
Das Connect Control Modul bietet die Möglichkeit einen gesicherten Zugriff von Außerhalb zu gewährleisten. Diese Verbindung kann dazu genutzt werden von überall via Verwaltungskonsole das System zu verwalten oder über die Visualisierungen und mobilen Apps darauf zuzugreifen.
Es müssen immer zusätzlich die unter [Sicherheit](https://www.symcon.de/de/llms/getting-started.md) angesprochen Maßnahmen ergriffen werden um auch nach Aktivierung des Connect Moduls einen ungewollten Zugriff von Außerhalb zu unterbinden.
Das Modul kommt komplett ohne Portfreigabe oder Einrichtung eines DynDNS aus. Es wird automatisch eine URL über unseren Server bereit gestellt. Durch das gesicherte Tunneling sind keine besonderen Einstellung in der Firewall nötig und auch der Zugriff innerhalb eines Firmennetzwerk kann möglich sein.
> **Achtung:** Im Fehlerfall sind im Meldungfenster weitere Informationen einsehbar. Weitere Informationen sind unter [Lösungen im Fehlerfall](https://www.symcon.de/de/llms/modules/connect-control.md) nachzulesen

### Einbindung in IP-Symcon
> **Hinweis:** Voraussetzung um den Symcon Connect Dienst nutzen zu können, ist eine aktive Subskription. Pro Lizenz ist maximal eine aktive Server-Verbindung möglich

In der Instanz "Connect" ("Logische Baumansicht"->"Kern Instanzen") kann über "Symcon Connect aktivieren" das Modul aktiviert werden.
Die folgenden 3 Zugriffsmethoden sind vorhanden:
__"WebFront öffnen"__
Dies öffnet im Webbrowser die persönliche Internetadresse, welche das folgende Format (http://32-stellige-zeichenfolge.ipmagic.de) aufweist. Über die in der Adressleiste angezeigte Adresse, kann ab sofort von überall auf das WebFront zugegriffen werden. Dazu kann diese in einen beliebigen Browser oder Smartphone eingegeben werden. Es wird folgend eine verschlüsselte Verbindung aufgebaut.
> **Hinweis:** Es ist empfohlen das WebFront mit einem Passwort zu sichern.
__"Auf Smartphone öffnen"__
Auf mobilen Geräten kann die Adresse via QR Code eingelesen werden. (Hierzu wird eine beliebige QR-Code Lesesoftware benötigt. Ab iOS11 kann direkt über die integrierte Kamera App eingescannt werden.) Im QR-Code wird der Link in Form eines [WebFront Freigabelinks](https://www.symcon.de/de/llms/components/webfront-visualization.md) formatiert und öffnet somit automatisch die benötigte IP-Symcon App, inklusive dem gewählten WebFront.
> **Hinweis:** Manche QR-Code Lesesoftware kommt mit den erstellten Links nicht zurecht. In diesem Fall ist eine andere QR-Code Software zu nutzen.
__"Via E-Mail senden"__
Das als Standard eingerichtete E-Mail Programm wird automatisch geöffnet und es muss nur noch die Adresse des Empfängers eingetragen werden.
Auf diesem Wege kann der Link und das damit verknüpfte IP-Symcon, Dritten, zur Verfügung gestellt werden.
> **Achtung:** Um über das Connect Modul auf die Verwaltungskonsole zugreifen zu können, muss der [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) aktiviert und ein Passwort gesetzt sein. Nun kann über eine installierte Verwaltungskonsole und der Angabe der URL, eine verschlüsselte Verbindung aufgebaut und genutzt werden.
### Limitationen
#### Datenmenge
Die Gesamtdatenmenge, die vom Connect Control täglich versendet werden kann, ist 1GB.
#### Tägliche Reconnects
Als Standard sind pro Tag 25 Reconnects zum Connect Dienst möglich. Per [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) (ConnectLimit) sind diese auf 100 erhöhbar.
### Lösungen im Fehlerfall
Im Zusammenhang mit dem Connect Control sind einige Einstellungen zu beachten die zu einem Fehler führen können. Im Fehlerfall werden im Meldungsfenster Hinweise gegeben, an welcher Stelle ein Fehler aufgetreten ist.
#### Status
Der momentane Serverstatus vom Connect Control ist auf dieser [Statusseite](https://status.symcon.de/) einsehbar.
#### Neustart des Dienstes
Ist ein unvorhersehbarer Verbindungsfehler vorgefallen, kann ein Neustart des Dienstes via Tray-Icon oder eine Reaktivierung des Servers Abhilfe schaffen. Informationen dazu können unter Server reaktivieren gefunden werden.
#### Einrichtung in der Firewall
Um IP-Symcon den Zugriff auf bestimmte Funktionen (z.B. Connect Control) außerhalb zu gewähren ist es gegebenenfalls nötig diese in der Firewall einzurichten. Weitere Informationen können unter [Firewall](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.
#### Server reaktivieren
Zur zusätzlichen Sicherheit authentifiziert sich der sendene Server mithilfe eines Tokens, sodass dieser eindeutig als Versender identifiziert werden kann. Wenn der Server geändert, ausgetauscht oder neu installiert wird, ist ggf. eine Reaktivierung erforderlich. Diese Reaktivierung kann alle 24h vorgenommen und über den Button "Server reaktivieren" gestartet werden. Dabei wird zusätzlich per E-Mail über die Änderung benachrichtigt. Dies geschieht um einen Missbrauch einer Lizenz frühzeitig erkennen zu können.
> **Hinweis:** Eine Reaktivierung ist erforderlich, wenn die folgende Fehlermeldung erscheint: Ihr Server-Authentifizierungs-Token hat sich geändert. Bitte reaktivieren Sie Ihren Server.
#### Firewall einstellen
Es müssen die Zugriffe auf live.symcon.de (443/TCP) und ipmagic.de (50000/TCP, 60000/TCP) freigeschaltet werden. Die TTL (Time To Live) für DNS Anfragen muss gleich oder kleiner als 60 Sekunden sein, da AWS (Amazon Web Services) diese jede Minute ändert.
#### Telekom mit DSL und LTE
Bei Telekom Kunden, welche Hybride Lösung mit DSL+LTE nutzen, sollte eine Ausnahme für die SymBox bzw. den IP-Symcon Dienst erstellt werden, sodass dieser nur über DSL Kommuniziert.

---
# Cutter
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/cutter/
Der Cutter dient dazu aus einem einkommenden Datenstrom, anhand von Trennzeichen oder einer festen Schrittanzahl, Abschnitte herauszunehmen und leitet diese weiter.
### Einbindung in IP-Symcon
Der Cutter fungiert als Splitter Instanz und steht somit oftmals zwsichen I/O- und Geräte-Instanz.
Somit nimmt der Cutter den eingehenden Datenstrom auseinander und gibt diesen weiter.
#### Benutze Zeichen für Schnitte
Diese Einstellung setzt Trennzeichen von Links (Anfang des Datenstroms) nach Rechts (Ende des Datenstroms). Alles was sich zwischen den Trennzeichen befindet wird weitergeleitet. Optional können Hexzeichen eingeschaltet werden und somit können die Trennzeichen in Hexadezimal eingegeben werden. Wenn nur linkes oder rechts Trennzeichen eingetragen werden, wird der gesamte Datenstrom davor (nur rechts gesetzt) bzw. danach (nur links gesetzt) weitergeleitet.
Im Dropdown-Menü befinden sich Standard-Steuerbefehle, welche oftmal genutzt werden und das 1:1 weiterleiten.
> **Hinweis:** Die Trennzeichen selbst werden nicht mit weitergeleitet. Diese werden ebenfalls herausgeschnitten, sodass nur die reinen Nutzdaten weitergeleitet werden.
#### Benutze feste Schnitte
Es wird im Datenstrom nach dem Sync Zeichen gesucht. Der anschließende Datenstrom (inklusive Sync Zeichen) wird nach der eingestellten Eingabelänge abgeschnitten und weitergeleitet. Ist Eingabelänge = 0, wird der gesamte Datenstrom mitsamt Sync Zeichen weitergeleitet.
#### In Variable übertragen
Der Datenstrom kann über eine [RegisterVariable](https://www.symcon.de/de/llms/modules/registervariable.md) (mithilfe eines Skripts) in eine Variable übertragen werden.
#### Sonderoption Timeout
Wenn die Verzögerung zweier Datenstrompakete größer als die eingestellte "Timeout"-Zeit ist, dann werden die beiden Pakete nicht als zusammenhängender Datenstrom, sondern als 2 serperate Datenpakete behandelt.

## Cutter_ClearBuffer
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/cutter/cutter-clearbuffer/
`bool Cutter_ClearBuffer(int $InstanzID)`
löscht den Buffer der Cutter Instanz
**Parameter**
- `$InstanzID` (int): ID zum Cutter
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID zum Cutter
**Beispiel**
```php
// Säubert den Buffer von der Clutter Instanz mit der ID 12345
Cutter_ClearBuffer(12345);
```
---
# DNS-SD Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/dnssd-control/
_Benötigt Symcon >= 5.0_
Das DNS-SD Control Modul verwaltet eingerichtete Bonjour Services.
> **Hinweis:** Für weiterführende Informationen kann nach Zeroconf oder mDNS gesucht werden.
### Installation
Das DNS-SD Control wird automatisch als Kern-Instanz installiert. Dieses kann im Objektbaum unter Kern Instanzen gefunden werden.
### Konfiguration
Über die Konfigurationseite des DNS-SD Control können neue Services (Listenelement) hinzugefügt werden.

Diese benötigen einen Namen, RegType und Port. Domain und Host sind optional, genauso wie Werte. Diese werden als Key -> Value Paare gespeichert.
> **Achtung:** Es dürfen bei verschiedenen Listenelementen nicht der gleiche Name und RegType wiederverwendet werden.

Nach erfolgreichem hinzufügen, kann über einen Bonjour Browser direkt der neue RegType und Name gefunden und genutzt werden.

## ZC_QueryService
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/dnssd-control/queryservice/
`array ZC_QueryService(int $InstanzID, string $Name, string $RegType, string $Domain)`
_Benötigt Symcon >= 5.3_
fragt Informationen eines einzelnen Services ab
**Parameter**
- `$InstanzID` (int): ID des anzufragenden DNS-SD Control
- `$Name` (string): Name des Services
- `$RegType` (string): Der RegType des Services
- `$Domain` (string): Domain des Services
**Rückgabewert** (array): Gibt alle Informationen zum gefundenen Service als Array zurück.
Domain des Services
**Beispiel**
```php
ZC_QueryService(12345, "NAS", "_http._tcp", "local.");
// Beispielausgabe
/*
Array
(
[0] => Array
(
[Name] => NAS._http._tcp.local.
[Host] => NAS.local.
[Port] => 5000
[TXTRecords] => Array
(
[0] => vendor=Synology
[1] => model=RS818+
[2] => serial=xxxxx
[3] => version_major=6
[4] => version_minor=2
[5] => version_build=24922
[6] => admin_port=5000
[7] => secure_admin_port=5001
[8] => mac_address=xxxxxx
)
[IPv4] => Array
(
[0] => 192.168.1.105
)
[IPv6] => Array
(
[0] => fe60::cc4b:5ccf:fac7:5d82
)
)
)
*/
```
## ZC_QueryServiceType
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/dnssd-control/queryservicetype/
`array ZC_QueryServiceType(int $InstanzID, string $RegType, string $Domain (optional))`
_Benötigt Symcon >= 5.3_
fragt Informationen von Services eines bestimmten Types ab
**Parameter**
- `$InstanzID` (int): ID des anzufragenden DNS-SD Control
- `$RegType` (string): Der RegType des Services
- `$Domain (optional)` (string): Domain des Services
**Rückgabewert** (array): Gibt alle gefundenen Services als Array zurück.
Domain des Services
**Beispiel**
```php
ZC_QueryServiceType(12345, "_http._tcp", "");
// Beispielausgabe
/*
Array
(
[0] => Array
(
[Name] => NAS
[Type] => _http._tcp.
[Domain] => local.
)
)
*/
```
## ZC_QueryServiceTypes
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/dnssd-control/queryservicetypes/
`array ZC_QueryServiceTypes(int $InstanzID)`
_Benötigt Symcon >= 5.3_
Fragt alle eingerichteten Services ab
**Parameter**
- `$InstanzID` (int): ID des anzufragenden DNS-SD Control
**Rückgabewert** (array): Gibt alle Services und Informationen als Array zurück.
ID des anzufragenden DNS-SD Control
**Beispiel**
```php
// Anfrage der registrierten Services des DNS-SD Control mit der ID 12345
ZC_QueryServiceTypes(12345);
// Beispielausgabe
/*
Array
(
[0] => Array
(
[Name] => _afpovertcp
[Type] => _tcp.local.
[Domain] => .
)
[1] => Array
(
[Name] => _airplay
[Type] => _tcp.local.
[Domain] => .
)
[2] => Array
(
[Name] => _airtame
[Type] => _tcp.local.
[Domain] => .
)
[3] => Array
(
[Name] => _apple-mobdev2
[Type] => _tcp.local.
[Domain] => .
)
[4] => Array
(
[Name] => _axis-video
[Type] => _tcp.local.
[Domain] => .
)
)
*/
```
---
# Event Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/event-control/
Dieses Modul erlaubt dem User auf bestimmte Ereignisse in IP-Symcon zu reagieren und ein Skript zu starten. Es wird automatisch erstellt und steht dem Benutzer jederzeit zur Verfügung. Es kann im Objektbaum an folgender Stelle gefunden werden:
Kern Instanzen -> Events

Folgende Ereignisse stehen zur Verfügung:
| Ereignis | Beschreibung |
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Beim Start (Start-Skript) | Nachdem IP-Symcon gestartet ist, wird dieses Ereignis aufgerufen. Zu diesem Zeitpunkt sollten bereits alle Schnittstellen verfügbar sein und alle Geräte geschaltet werden können. Es stehen folgende [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) innerhalb des Start-Skripts zur Verfügung. |
| Beim Herunterfahren (Herunterfahr-Skript) | Kurz bevor IP-Symcon herunterfährt wird dieses Ereignis aufgerufen. An diesem Zeitpunkt sollten noch alle Geräte schaltbar sein. Es stehen folgende [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) innerhalb des Herunterfahr-Skripts zur Verfügung. |
| Profilgrenzüberschreitung (Watchdog-Skript) | Sobald eine Variable (nur Integer/Float) außerhalb des Grenzbereiches vom dazugehörigen Variablenprofil kommt, wird dieses Ereignis aufgerufen. Eine Variable muss ein Profil haben um überwacht werden zu können. Es stehen folgende [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) innerhalb des Watchdog-Skripts zur Verfügung. |
| Bei Statusaktualisierung (Statusereignis) | Wenn sich der Status einer Instanz aktualisiert, kann in einem angegebenen Skript auf diese Aktualisierung reagiert werden. Es stehen folgende [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) innerhalb des Statusergeinis-Skripts zur Verfügung. |
> **Hinweis:** Dieses Modul sollte nicht gelöscht werden.
> Falls es gelöscht wird, wird es beim nächsten Start wieder neu erstellt.
---
# Location Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/location-control/
_Benötigt Symcon >= 4.0_
### Beschreibung
Das Location Control Modul bietet die Möglichkeit die Dämmerungszeitpunkte berechnen zu lassen. Dazu sind einfach Längen- und Breitengrad von dem zu berechnenden Ort notwendig.
### Einbindung in IP-Symcon

In der Instanz "Location" ("Logische Baumansicht"->"Kern Instanzen") kann der Längengrad N und Breitengrad E, auf 2 Nachkommastellen genau, eingetragen werden. Eine Methode zur Bestimmung des Längen- und Breitengrades ist unter [Tipps & Tricks](https://www.symcon.de/de/llms/modules/location-control.md) zu finden.
Darüber werden dann die Dämmerungswerte für Sonnenaufgang, Sonnenuntergang, bürgerlich, nautisch und astronomisch berechnet.
Die beiden Auswahlmenüs Tagesbeginn und Tagesende bilden die Grenze, zwischen denen die boolsche Variable "Ist es Tag" auf True gesetzt wird.

Die Dämmerungswerte bestimmen auch den Zeitpunkt der Neuberechnung. Das heißt, dass beim Erreichen des Zeitpunkts für den Sonnenaufgang, der neue Wert für den nächsten Sonnenaufgang berechnet wird.
### Beispiel
Ein Beispiel wäre ein Skript zum Herunterfahren der Rolläden. Dieses wird automatisch gestartet, wenn es durch ein Ereignis ausgeführt wird, welches auf die Variablenänderung von "Sonnenuntergang" reagiert.

---
# Module Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/module-control/
_Benötigt Symcon >= 4.0_
### Beschreibung
Das "Module Control" Modul bietet die Möglichkeit selbst erstellte oder von anderen Nutzern bereitgestellte PHP-Module einzubinden.
### Einbindung in IP-Symcon

In der Instanz "Modules" ("Logische Baumansicht"->"Kern Instanzen") kann über "+" ein/-e Git-Repository Link/URL eingetragen werden. Über diesen wird das Modul dann installiert und steht sofort im "Instanz hinzufügen"-Dialog bereit. Welcher Link für welches Modul gebraucht wird, kann im Regelfall in der Dokumentation des Moduls oder Foreneintrag eingesehen werden. Sind die Daten unvollständig kann der jeweilige Modulentwickler über das Forum mithilfe einer privaten Nachricht angeschrieben werden.
### Aktualisierung
Der Button "Auf Aktualisierung prüfen" überprüft ob eine Aktualisierung für bereits hinzugefügte Module vorhanden ist. Wenn eine Aktualisierung möglich ist, kann über den erscheinenden Update Button das jeweilge Modul auf den aktuellsten Stand gebracht werden. Ist ein Modul auf dem aktuellsten Stand, wird stattdessen ein Haken angezeigt.
### Zweig wechseln
Das Zahnrad bei dem jeweiligen Modul ermöglicht es den Zweig des Repositories zu wechseln. Wie diese heißen liegt an der Benennung durch den Repository-Ersteller.

### Eigene Module entwickeln
Im [Entwicklerbereich](https://www.symcon.de/de/llms/developer/index.md) sind alle Informationen vorhanden um eigene Module zu entwickeln.
Weitere Informationen sind direkt im [SDK für PHP](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) zu finden.
### Beispiele
Im Forum ist eine [Linksammlung](https://community.symcon.de/t/archiv-veraltet-uebersicht-der-php-module/37958) vorhanden, welche von Nutzern entwickelte PHP-Module auflistet.
---
# Notification Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/notification-control/
Das Notification Control Modul gibt eine schnelle Übersicht über die zur Zeit für die Push-Benachrichtigung registrierten Geräte. In der Liste werden alle Geräte mit einer eindeutigen ID, dem änderbaren Namen und den zugeordneten Konfiguratoren angezeigt. Durch Auswählen eines Geräts und klicken der "Test-Nachricht senden" Schaltfläche kann eine Test-Nachricht an das gewählte Gerät verschickt werden.
Push-Nachrichten können über [WFC_PushNotification](https://www.symcon.de/de/llms/modules/webfront-visualization.md) versendet werden.
> **Achtung:** Es ist pro Lizenz nur einem IP-Symcon Server möglich Push-Notifications zu senden. Weiterführende Informationen können unter dem Abschnitt [Nutzungsrechte](https://www.symcon.de/de/llms/getting-started.md) nachgeschlagen werden.
> **Hinweis:** Um IP-Symcon den Zugriff auf bestimmte Funktionen (z.B. Push Notifications) außerhalb zu gewähren ist es gegebenenfalls nötig diese in der Firewall einzurichten. Weitere Informationen können unter [Firewall](https://www.symcon.de/de/llms/getting-started.md) gefunden werden.

### Geräte hinzufügen
Neue Geräte können nur über die mobilen Apps hinzugefügt werden. Dazu muss innerhalb der jeweiligen App die Konfiguration des Server erneut ausgeführt werden. Im letzten Schritt besteht die Möglichkeit bei der Auswahl des Konfigurators die Benachrichtigungen jeweils pro Konfigurator zu aktivieren/deaktivieren. Sobald das Gerät dann am Server registriert wurde, erscheint dieses im jeweils registrierten Konfigurator und in der Notification Control Übersicht.
### Geräte umbenennen
Der Name eines Gerätes kann jederzeit geändert werden. Dazu muss in der Liste auf das kleine Pfeil-Icon geklickt werden.
### Geräte entfernen
Im Notification Control können Geräte vollständig von der Benachrichtigung entfernt werden. Sofern Geräte aus einem einzelnen Konfigurator entfernt werden sollen, kann dies im jeweiligen Konfigurator unter dem Reiter "Benachrichtigungen" eingestellt werden.
### Server reaktivieren
Die Push-Benachrichtigungen werden über den IP-Symcon versendet. Als zusätzliche Sicherheit authentifiziert sich der sendene Server, sodass er eindeutig als Versender identifiziert werden kann. Wenn der Server geändert, ausgetauscht oder neu installiert wird, ist ggf. eine Reaktivierung erforderlich. Diese Reaktivierung kann alle 24h vorgenommen und über den Button "Server reaktivieren" gestartet werden. Dabei wird zusätzlich per E-Mail über die Änderung benachrichtigt. Dies geschieht um einen Missbrauch einer Lizenz frühzeitig erkennen zu können.
#### Tägliche Push Nachrichten
Als Standard sind pro Tag 250 Push Nachrichten vom [Notification Control](https://www.symcon.de/de/llms/modules/notification-control.md) möglich. Per [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md) (NotificationLimit) sind diese auf 1000 erhöhbar.
> **Hinweis:** Eine Reaktivierung ist erforderlich, wenn die folgende Fehlermeldung erscheint: "Ihr Server-Authentifizierungs-Token hat sich geändert. Bitte reaktivieren Sie Ihren Server."
---
# Presence Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/presence-control/
_Benötigt Symcon >= 5.1_
Das "Presence Control" bietet die Möglichkeit die Anwesenheit in einem Bereich auszuwerten. Hierfür werden Sensoren in zwei Gruppen eingeordnet. Impulsvariablen geben bei Aktivierung ein Signal ab, welches für eine gewisse Zeit die Anwesenheit bestätigt. Die andere Gruppe sind Zustandsvariablen, welche durch ihren Zustand die aktuelle Anwesenheit im Bereich auswerten.
In der Statusvariablen "Präsenz" wird die aktuelle Anwesenheit wiedergegeben. Diese ist gesetzt, solange mindestens eine Variable die Anwesenheit im Bereich bestätigt. Alternativ kann die Anwesenheit manuell gesetzt werden. In diesem Fall wird die Anwesenheit für eine Totzeit auf dem gesetzten Wert gehalten. Während dieser Zeit werden alle Aktualisierungen von Impuls- und Zustandsvariablen ignoriert. Die Statusvariable "Detektion" informiert, ob die "Präsenz"-Variable aktuell durch die Totzeit nach einer manuellen Schaltung gesperrt ist oder aktiv ist, also durch die Impuls- und Zustandsvariablen berechnet wird.
### Impulsvariablen
| Option | Beschreibung |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Variable | Boolean-Variable, die den Impuls enthält |
| Gültigkeit | Gültigkeit in Sekunden, für welche ein Impuls auf der Variablen die Anwesenheit im Bereich bestätigt |
| Invertieren? | Standardmäßig reagiert das Modul auf Variablenaktualisierungen auf true. Ist "Invertieren?" gesetzt, so reagiert das Modul stattdessen auf false |
Wird eine Impulsvariable auf true (oder false, falls "Invertieren?" gesetzt ist) aktualisiert, so wird die Anwesenheit für die Gültigkeitszeit bestätigt.
> **Hinweis:** Wird die Gültigkeit verändert oder eine Impulsvariable entfernt, wirkt sich dies nicht auf laufende Impulse aus. Für laufende Impulse wird die Einstellung zum Zeitpunkt des Impulses verwendet.
### Zustandsvariablen
| Option | Beschreibung |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Variable | Boolean-Variable, die den Zustand enthält |
| Invertieren? | Standardmäßig wird Anwesenheit bestätigt, sofern die Variable auf true steht. Ist "Invertieren?" gesetzt, so reagiert das Modul stattdessen auf false |
Steht eine Zustandsvariable auf true (oder false, falls "Invertieren?" gesetzt ist), so wird die Anwesenheit bestätigt.
### Totzeit
Hier kann die Totzeit in Sekunden nach einer manuellen Anpassung der Präsenz eingestellt werden. Während der Totzeit bleibt Präsent auf dem eingesetellten Wert stehen. Impulse werden während dieser Zeit ignoriert. Nach der Totzeit wird die Präsenz wieder wie gewohnt bestimmt.
> **Hinweis:** Wird die Totzeit verändert, wird diese erst beim nächsten manuellen Anpassen angewandt. Für laufende Totzeiten wird die Einstellung zum Zeitpunkt der manuellen Anpassung verwendet.
## PC_Enter
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/presence-control/pc-enter/
`bool PC_Enter(int $InstanzID)`
_Benötigt Symcon >= 5.1_
setzt die Anwesenheit auf true
**Parameter**
- `$InstanzID` (int): ID der Presence-Control-Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Presence-Control-Instanz
**Beispiel**
```php
// Setzt die Anwesenheit der Presence Control Instanz 12345 auf "true"
PC_Enter(12345);
```
## PC_Leave
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/presence-control/pc-leave/
`bool PC_Leave(int $InstanzID)`
_Benötigt Symcon >= 5.1_
setzt die Anwesenheit auf false
**Parameter**
- `$InstanzID` (int): ID der Presence-Control-Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Presence-Control-Instanz
**Beispiel**
```php
// Setzt die Anwesenheit der Presence Control Instanz 12345 auf "false"
PC_Leave(12345);
```
---
# RegisterVariable
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/registervariable/
RegisterVariable stellt eine Datenweiterleitungs- und -verarbeitungsschnittstelle zur Verfügung.
### Konfiguration
Das RegisterVariable Modul verbindet sich nicht automatisch mit einer übergeordneten Instanz. Es muss dafür eine übergeordnete Instanz ausgewählt oder eine Neue erstellt werden. Es können auch weitere Splitter (z.B. Cutter) hinzugefügt werden, um die ankommenden Daten vor der Auswertung direkt synchronisieren zu lassen.
Die übergeordnete Instanz kann unkompliziert über die Funktion "Gateway ändern" oben in der Konfiguration angepasst werden.

Die Ausführung der Skripte erfolgt __seriell__. Das Bedeutet, dass die Skripte nicht mit Semaphoren geschützt werden müssen.
### Datenverarbeitung
Werden von der übergeordneten Instanz (Kommunikationsschnittstelle) neue Daten empfangen, wird das Ziel-Skript der RegisterVariable-Instanz ausgeführt. In diesem stehen die empfangenen Daten über $_IPS['VALUE'] zur Verfügung. Sollte die übergeordnete Instanz ein [ServerSocket](https://www.symcon.de/de/llms/modules/serversocket.md) sein, stehen zusätzlich noch die Daten $_IPS['CLIENTIP'] und $_IPS['CLIENTPORT'] zur Verfügung.
> **Hinweis:** Skripte, die durch die RegisterVariable ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
Es gibt Datenquellen, bei denen erst mehrere empfangene Datensendungen eine sinnvolle Auswertung ermöglichen. Daher müssen die empfangenen Daten zwischengespeichert werden. Da Probleme auftreten können, wenn man binäre Daten in einer normalen String-Variable in IP-Symcon speichert (defekte IP-Symcon-Konfiguration), gibt es die Funktion RegVar_SetBuffer(integer $InstanzID, string $Puffer), die Daten im einen zur RegisterVariable-Instanz gehörigen Puffer speichert. Die im Puffer gespeicherten Daten lassen sich mit der Funktion RegVar_GetBuffer(integer $InstanzID) auslesen. Mit der Funktion RegVar_SendText(integer $InstanzID, string $Text) lassen sich Datenstrings über die Kommunikationsschnittstelle senden. Intern wird hierbei die passende Sendefunktion, wie z.B. COMPort_SendText, ausgeführt.
> **Hinweis:** Der Puffer wird nach einem Neustart von IP-Symcon gelöscht!
> **Achtung:** Es soll KEINE VARIABLE als Puffer genutzt werden. Andernfalls kann es zu Instabilitäten innerhalb von IP-Symcon kommen und im schlimmsten Fall eine komplett zerstörte Konfiguration verursachen. Da sich dieses Problem auch inkrementell auf den Backup Ordner auswirken kann, ist dann unter Umständen nicht einmal eine Backup Konfiguration vorhanden. Es sollen die internen Puffer der Instanz genutzt werden, um Daten zwischenzuspeichern.
> [RegVar_SetBuffer](https://www.symcon.de/de/llms/modules/registervariable.md) / [RegVar_GetBuffer](https://www.symcon.de/de/llms/modules/registervariable.md)
### Beispiele
#### Aufbau
Das folgende Bild zeigt den typischen Aufbau und die Schritte für eine Registervariable. So kann die I/O Instanz in Form eines WWW-Readers zum Beispiel eine Webseite einlesen, der Cutter den Datenstrom aufbereiten und und die Registervariable im Skript einzelne Werte einer Homepage nutzbar machen und abspeichern.

#### Skript
Folgendes Beispiel verkettet empfangene Daten und gibt durch ; separierte Datensätze bei Vervollständigung aus:
```php
// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS['SENDER'] == "RegisterVariable") {
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS['INSTANCE']);
// neu empfangene Daten an $data anhängen
$data .= $_IPS['VALUE'];
// wenn das Trennzeichen ; in $data gefunden worden ist
if (strpos($data, ';')) {
// $data in durch ; separierte Datensätze zerlegen
$datasets = explode(';', $data);
// alle nicht durch ; terminierten Datensätze ausgeben
for ($i = 0; $i < count($datasets) - 1; $i++) {
echo "empfangener Datensatz: ".$datasets[$i]."\n";
}
// $data auf den Inhalt des letzten (unvollständigen) Datensatzes setzen
$data = $datasets[count($datasets) - 1];
}
// Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
RegVar_SetBuffer($_IPS['INSTANCE'], $data);
}
```
Folgendes Beispiel verkettet empfangene Daten und gibt Blöcke von einer Länge von genau 16 Zeichen aus:
```php
// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS['SENDER'] == "RegisterVariable") {
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS['INSTANCE']);
// neu empfangene Daten an $data anhängen
$data .= $_IPS['VALUE'];
// wenn $data mindestens 16 Zeichen lang ist
if (strlen($data) >= 16) {
// $data in Blöcke von bis zu 16 Zeichen zerlegen
$datasets = str_split($data, 16);
// $data leeren
$data = "";
// alle Datensätze durcharbeiten
for ($i = 0; $i < count($datasets); $i++) {
// vollständige Datensätze (genau 16 Zeichen lang) ausgeben
if (strlen($datasets[$i]) == 16) {
echo "empfangener Datensatz: ".$datasets[$i]."\n";
} else {
// Unvollständige Datensätze in $data schreiben
$data = $datasets[$i];
}
}
}
// Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
RegVar_SetBuffer($_IPS['INSTANCE'], $data);
}
```
### Tipps & Tricks
#### Sich alle übergeben Variable anzeigen lassen
```php
unset($_SERVER['argv']);
unset($_SERVER['argc']);
foreach ($_SERVER as $key => $value) {
IPS_LogMessage(IPS_GetName($IPS_INSTANCE), "Key: $key; Value: $value");
}
```
## RegVar_GetBuffer
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/registervariable/regvar-getbuffer/
`bool RegVar_GetBuffer(int $InstanzID)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
**Rückgabewert** (bool): String des aktuellen Puffers
ID des zu schaltenden Geräts
**Beispiel**
```php
$buf = RegVar_GetBuffer(12345);
$buf .= $_IPS['VALUE']; //konkatenieren
//verarbeiten ...
RegVar_SetBuffer(12345, $buf); //Restpuffer zurückschreiben
```
## RegVar_SendEvent
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/registervariable/regvar-sendevent/
`bool RegVar_SendEvent(int $InstanzID, int $ReportID, string $Text)`
_Benötigt Symcon >= 4.1_
sendet ein Event an die übergeordnete HID-Instanz
**Parameter**
- `$InstanzID` (int): ID der RegisterVariable-Instanz
- `$ReportID` (int): Der Datensatztyp als ReportID
- `$Text` (string): Zu sendender Puffer
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zu sendender Puffer
**Beispiel**
```php
// Sendet ein Event "Hallo Welt" an die übergeordnete Instanz mit der ReportID 0
RegVar_SendEvent(12345, 0, "Hallo Welt");
```
## RegVar_SendPacket
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/registervariable/regvar-sendpacket/
`bool RegVar_SendPacket(int $InstanzID, string $Text, string $ClientIP, string $ClientPort)`
_Benötigt Symcon >= 4.1_
sendet ein Datenpaket an die angegebene IP-Adresse
**Parameter**
- `$InstanzID` (int): ID der RegisterVariable-Instanz
- `$Text` (string): Zu sendender Puffer
- `$ClientIP` (string): IP-Adresse an die gesendet werden soll
- `$ClientPort` (string): Port an den gesendet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Port an den gesendet werden soll
**Beispiel**
```php
// Sendet via ServerSocket an die IP:Port 192.168.1.2:1234 das Paket "Hallo Welt"
RegVar_SendPacket(12345, "Hallo Welt", "192.168.1.2", 1234);
```
## RegVar_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/registervariable/regvar-sendtext/
`bool RegVar_SendText(int $InstanzID, string $Text)`
sendet Daten an die übergeordnete Instanz
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Text` (string): Zu sendender Puffer
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zu sendender Puffer
**Beispiel**
```php
RegVar_SendText(12345, "Hallo Welt");
```
## RegVar_SetBuffer
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/registervariable/regvar-setbuffer/
`bool RegVar_SetBuffer(int $InstanzID, string $Puffer)`
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Puffer` (string): Daten, die in den Puffer geschrieben werden sollen
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Daten, die in den Puffer geschrieben werden sollen
**Beispiel**
```php
$buf = RegVar_GetBuffer(12345);
$buf .= $_IPS['VALUE']; //konkatenieren
//verarbeiten ...
RegVar_SetBuffer(12345, $buf); //Restpuffer zurückschreiben
```
---
# Skin Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/skin-control/
_Benötigt Symcon >= 4.0_
### Beschreibung
Das "Skin Control" Modul bietet die Möglichkeit selbst erstellte oder von anderen Nutzern bereitgestellte Skins einzubinden.
### Einbindung in IP-Symcon
In der Instanz "Modules" ("Logische Baumansicht"->"Kern Instanzen") kann über "Hinzufügen" ein Git-Repository Link eingetragen werden. Über diesen wird der Skin dann installiert und steht sofort zur Verfügung.

### Aktualisierung
Der Button "Auf Updates prüfen" überprüft ob eine Aktualisierung für bereits hinzugefügte Skins vorhanden ist. Wenn eine Aktualisierung möglich ist, kann über den erscheinenden Update Button der jeweilge Skin auf den aktuellsten Stand gebracht werden. Ist ein Skin auf dem aktuellsten Stand, wird stattdessen ein grüner Haken angezeigt.
### Login Skin auswählen
Seperat zu den jeweiligen WebFront-Skins, welche im jeweiligen WebFront-Konfigurator ausgewählt werden, kann auch der Skin des Login Bereichs des WebFronts geändert werden. Dieser kann via Auswahl im Skin-Control gesetzt werden.
### Eigene Skins entwickeln
Informationen um eigene Skins zu entwickeln befinden sich hier:
[SDK für Skins](https://www.symcon.de/de/llms/developer/sdk-tools.md)
### Beispiele
Folgende Skins werden von uns gepflegt und bereitgestellt:
* DarkSkin: [https://github.com/symcon/SkinDark](https://github.com/symcon/SkinDark)
* LightSkin: [https://github.com/symcon/SkinLight](https://github.com/symcon/SkinLight)
---
# SSDP Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/ssdp-control/
Das SSDP (Simple Service Discovery Protocol) Control Modul ermöglicht das Suchen nach UPnP Geräten im Netzwerk.
SSDP ist ein auf UDP basierendes Protokoll mit dem sich UPnP Geräte im Netzwerk identifizieren und nur die wichtigesten Informationen mitteilen. Dieses beinhalten zum Beispiel Gerätenamen, Gerätetyp oder eine URL zur Beschreibung des Geräts.
> **Hinweis:** Weiterführende Informationen sind beispielsweise bei [Wikipedia](https://de.wikipedia.org/wiki/Simple_Service_Discovery_Protocol) zu finden.
### Installation
Das SSDP Control wird automatisch als Kern-Instanz installiert. Dieses kann im Objektbaum unter Kern Instanzen gefunden werden.
### Konfiguration
Das Modul benötigt keine weitere Konfiguration. Es nutzt standardmäßig den Port 1900 zur Suche von Geräten.
## YC_SearchDevices
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/ssdp-control/yc-searchdevices/
`array YC_SearchDevices(int $InstanzID, string $SuchZiel)`
_Benötigt Symcon >= 5.3_
schickt eine Anfrage ins lokale Netzwerk
**Parameter**
- `$InstanzID` (int): ID des anzufragenden SSDP Control
- `$SuchZiel` (string): .
**Rückgabewert** (array): Gibt alle Informationen zu gefundenen Geräten als Array zurück.
.
**Beispiel**
```php
YC_SearchDevices(27253, "ssdp:all");
// Beispielausgabe
var_dump(YC_SearchDevices(27253, "ssdp:all"));
/*
array(97) {
[...]
[11]=>
array(9) {
["CacheControl"]=>
string(14) "max-age = 1800"
["Date"]=>
string(0) ""
["Ext"]=>
string(0) ""
["Location"]=>
string(52) "http://172.17.31.142:1400/xml/device_description.xml"
["Server"]=>
string(38) "Linux UPnP/1.0 Sonos/53.2-70210 (ZPS5)"
["ST"]=>
string(47) "urn:schemas-upnp-org:service:DeviceProperties:1"
["USN"]=>
string(78) "uuid:RINCON_000E58507DEA01400::urn:schemas-upnp-org:service:DeviceProperties:1"
["Fields"]=>
array(5) {
[0]=>
string(52) "X-RINCON-HOUSEHOLD: HHID_tZkieK2lkPYES3tycishsbwfXIz"
[1]=>
string(21) "X-RINCON-BOOTSEQ: 636"
[2]=>
string(20) "X-RINCON-WIFIMODE: 0"
[3]=>
string(19) "X-RINCON-VARIANT: 0"
[4]=>
string(83) "HOUSEHOLD.SMARTSPEAKER.AUDIO: HHID_tZkieK2lkPYES3tycishsbwfXIz.hPqvaa7W35eMY2P3XidJ"
}
["IPv4"]=>
string(13) "172.17.31.142"
)
[...]
}
*/
```
---
# System Informationen
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/
Über die Systemfunktionen können Informationen über das System und die vorhandene Hardware ausgelesen werden. Die gesammelten Informationen können zur Visualisierung oder anderweitig in Skripten verwendet werden.
## Sys_GetBattery
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getbattery/
`array Sys_GetBattery()`
zeigt Informationen zur Batterie an
**Rückgabewert** (array): Array mit Informationen zur Batterie
Gibt Informationen über das Vorhandensein einer Batterie, ob sie in Gebrauch ist und wieviel Prozent der Batterie noch vorhanden sind. Die Angaben der Restlaufzeit und maximalen Batterielaufzeit werden in Sekunden angegeben.
**Beispiel**
```php
print_r(Sys_GetBattery());
/*
// Beispielausgabe auf einem Desktop PC ohne Batterie
// HasBattery ist verfügbar mit IP-Symcon 7.0+
Array
(
[HasBattery] =>
[OnBattery] =>
[IsCharging] =>
[BatteryLevel] => -1
[BatteryRemainingTime] => -1
[BatteryMaxTime] => -1
)
*/
```
## Sys_GetCPUInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getcpuinfo/
`array Sys_GetCPUInfo()`
zeigt die CPU Auslastung an
**Rückgabewert** (array): Array mit Informationen zur CPU-Auslastung
__Ab Version 4.0__
Liefert für jede CPU die aktuelle Last (CPU_*) und die momentane Durchschnittlast für alle CPU Kerne (CPU_AVG).
__Bis Version 3.4__
Liefert für jede CPU die aktuelle Last (CPU_*) und die Durchschnittlast der letzten 60 Sekunden für alle CPU Kerne (CPU_AVG). Die durchschnittliche Last wird berechnet, indem jeder Sekunde ein Messwert der aktuellen Last genommen und abgespeichert wird. Die durchschnittliche Last wird berechnet, indem die letzten 60 Messwerte addiert und durch 60 geteilt werden.
**Beispiel**
```php
print_r(Sys_GetCPUInfo());
/*
Array
(
[CPU_0] => 3
[CPU_AVG] => 3
)
*/
```
## Sys_GetHardDiskInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getharddiskinfo/
`array Sys_GetHardDiskInfo()`
zeigt den Festplattenspeicherplatz/-verbrauch an
**Rückgabewert** (array): Array mit Informationen zu allen Festplatten
Liefert Informationen zu den vorhandenen Festplatten im System inklusive der Größe und dem bereits verbrauchten Speicher.
**Beispiel**
```php
//Ab Version 4.0
print_r(Sys_GetHarddiskInfo());
/* Beispielausgabe:
Array
(
[0] => Array
(
[LETTER] => c:\
[LABEL] =>
[TOTAL] => 53684989952
[FREE] => 23275171840
)
[NUMDRIVES] => 1
)
*/
// Bis Version 3.4
print_r(Sys_GetHarddiskInfo());
/* Beispielausgabe:
Array
(
[HDD0] => Array
(
[LETTER] => c:\
[LABEL] =>
[TOTAL] => 53684989952
[FREE] => 23275171840
)
[NUMDRIVES] => 1
)
*/
```
## Sys_GetMemoryInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getmemoryinfo/
`array Sys_GetMemoryInfo()`
zeigt den Speicherverbrauch an
**Rückgabewert** (array): Array mit Informationen zum Gesamtspeicherverbrauch und virtuellen Speicherverbrauch
Gibt Informationen zum Speicherverbrauch des Betriebssystems.
**Beispiel**
```php
print_r(Sys_GetMemoryInfo());
/*
Array
(
[TOTALPHYSICAL] => 1072467968
[AVAILPHYSICAL] => 526647296
[TOTALPAGEFILE] => 2420019200
[AVAILPAGEFILE] => 1386422272
[TOTALVIRTUAL] => 2147352576
[AVAILVIRTUAL] => 1906978816
)
*/
```
## Sys_GetNetworkInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getnetworkinfo/
`array Sys_GetNetworkInfo()`
zeigt Informationen zu den Netzwerkadaptern
**Rückgabewert** (array): Array mit Informationen zu allen Netzwerkadaptern
Liefert Informationen über alle Netzwerkadapter
**Beispiel**
```php
print_r(Sys_GetNetworkInfo());
/*
// Beispielausgabe
Array
(
[0] => Array
(
[InterfaceIndex] => 10
[IP] => 192.168.1.2
[MAC] => 00:A0:03:AD:14:BD
[Description] => Siemens I BT USB Remote NDIS Network Device
[Speed] => 9728000
[InTotal] => 40236
[OutTotal] => 247248
)
[1] => Array
(
[InterfaceIndex] => 13
[IP] => 172.12.1.200
[MAC] => 00:A0:03:AD:14:BD
[Description] => Qualcomm Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.30)
[Speed] => 1000000000
[InTotal] => 169987950
[OutTotal] => 86029648
)
)
*/
```
## Sys_GetProcessInfo
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getprocessinfo/
`array Sys_GetProcessInfo()`
listet alle Prozesse auf
**Rückgabewert** (array): Array mit Informationen, wie z.B. Speicherverbrauch und Anzahl der Threads
Gibt Informationen zum Prozess von IP-Symcon.
**Beispiel**
```php
print_r(Sys_GetProcessInfo());
/*
Array
(
[IPS_HANDLECOUNT] => 635
[IPS_NUMTHREADS] => 53
[IPS_VIRTUALSIZE] => 240373760
[IPS_WORKINGSETSIZE] => 32706560
[IPS_PAGEFILE] => 52719616
[PROCESSCOUNT] => 53
)
*/
```
## Sys_GetSpooler
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-getspooler/
`array Sys_GetSpooler()`
zeigt Informationen zu den Druckerwarteschlangen an
**Rückgabewert** (array): Array mit Informationen zu allen Druckerwarteschlagen und den im Druck befindlichen Dokumenten
Gibt Informationen über alle Druckerwarteschlangen aus
> **Achtung:** Diese Funktion funktioniert nur unter Windows
**Beispiel**
```php
print_r(Sys_GetSpooler());
```
## Sys_GetURLContent
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-geturlcontent/
`string Sys_GetURLContent(string $URL)`
liest den Inhalt einer URL als String aus
**Parameter**
- `$URL` (string): Vollständige URL
**Rückgabewert** (string): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis den Inhalt der Webseite (auch Binärcode), andernfalls __FALSE__.
Vollständige URL
**Beispiel**
```php
echo Sys_GetURLContent("http://www.google.de");
```
## Sys_GetURLContentEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-geturlcontentex/
`string Sys_GetURLContentEx(string $URL, array $Parameter)`
liest den Inhalt einer URL als String aus und bietet die Möglichkeit einen Proxy zu spezifizieren
**Parameter**
- `$URL` (string): Vollständige URL
- `$Parameter` (array)
Array mit Index => Value Paaren
| Index | Typ | Beschreibung |
| ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Timeout | Integer | __Default = 10000__. Timeout in Millisekunden |
| AuthUser | String | __Default = ""__. Benutzername für Basis-Authentifizierung |
| AuthPass | String | __Default = ""__. Passwort für Basis-Authentifizierung |
| VerifyPeer | Boolean | __Default = true__. Verifiziere, dass das SSL Zertifikat des Hosts korrekt ist (nur sichtbar falls Benutze SSL aktiv ist) |
| VerifyHost | Boolean | __Default = true__. Verifiziere, dass die Host URL aus dem SSL Zertifikat mit dem Host aus der Eigenschaft übereinstimmt (nur sichtbar falls Benutze SSL aktiv ist) |
**Rückgabewert** (string): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis den Inhalt der Webseite (auch Binärcode), andernfalls __FALSE__.
Array mit Index => Value Paaren
| Index | Typ | Beschreibung |
| ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Timeout | Integer | __Default = 10000__. Timeout in Millisekunden |
| AuthUser | String | __Default = ""__. Benutzername für Basis-Authentifizierung |
| AuthPass | String | __Default = ""__. Passwort für Basis-Authentifizierung |
| VerifyPeer | Boolean | __Default = true__. Verifiziere, dass das SSL Zertifikat des Hosts korrekt ist (nur sichtbar falls Benutze SSL aktiv ist) |
| VerifyHost | Boolean | __Default = true__. Verifiziere, dass die Host URL aus dem SSL Zertifikat mit dem Host aus der Eigenschaft übereinstimmt (nur sichtbar falls Benutze SSL aktiv ist) |
**Beispiel**
```php
// Rückgabe von http://www.google.de mit Basis-Authentifizierung "test", Passwort "test123" und einen Timeout von 20 Sekunden
echo Sys_GetURLContentEx("http://www.google.de", Array("Timeout"=> 20000, "AuthUser"=> "test", "AuthPass"=> "test123"));
```
## Sys_Ping
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/system-informationen/sys-ping/
`bool Sys_Ping(string $Host, int $Timeout)`
sendet einen Ping an ein Netzwerkgerät
**Parameter**
- `$Host` (string): Rechnername oder IP-Adresse
- `$Timeout` (int): Zeit in Millisekunden
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zeit in Millisekunden
**Beispiel**
```php
Sys_Ping("meinrechner", 1000); //Max. 1 Sekunde warten
```
---
# Tailscale VPN
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/tailscale-vpn/
_Benötigt Symcon >= 7.1_
Dieses Modul bietet die Möglichkeit, Tailscale VPN auf der SymBox zu verwenden.
> **Hinweis:** Dieses Modul ist ausschließlich für die SymBox verfügbar!
### Funktionsumfang
- Herunterladen und Aktualisieren von Tailscale VPN
- Authentifizieren über Auth Keys
- Zugriff per VPN auf die SymBox (inkl. SSH)
- Zugriff auf Geräte hinter der SymBox (Subnets)
- VPN aktivieren/deaktivieren per Variable
### Software-Installation
- Über den Module Store das 'Tailscale VPN'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Tailscale VPN'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/de/service/dokumentation/grundlagen/instanzen/#Instanz_erstellen)
### Einrichten von Tailscale
- Auth Key erstellen: https://login.tailscale.com/admin/settings/keys
- Tailscale Instanz öffnen
- Buttons drücken, um Tailscale herunterzuladen, zu installieren und zu starten.
- Danach kann die Authentifizierung durchgeführt werden mit Hilfe des am Anfang erstellen Auth Keys. Der Auth Key wird im Anschluss nicht mehr benötigt und muss nirgends gespeichert werden.
### Netzwerk freigeben
- Das VPN in IP-Symcon einmal aus- und wieder einschalten.
- Um Geräte hinter der SymBox freizugeben, muss die "Advertise Routes" Funktion eingerichtet werden
- Dazu in die Liste das Subnet z.B. 192.168.178.0/24 in der CIDR Notation eintragen und die Konfiguration übernehmen.
- Die Freigabe muss noch im Tailscale Dashboard aktiviert werden. Dazu folgende Seite öffnen: https://login.tailscale.com/admin/machines
- Dort die korrekte Maschine auswählen, Review klicken und die Freigabe des Subnets bestätigen.
#### Konfigurationsseite
| Name | Beschreibung |
| ---------------- | ---------------------------------------------------------------------------------- |
| Advertise Routes | Subnet, welches freigegeben werden soll in der CIDR Notation z.B. 192.168.178.0/24 |
---
# TextParser
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/textparser/
Der TextParser ist ein Modul, welches Textabschnitte aus Webseiten oder Dateien zur Verfügung stellt.
### Einbindung in IP-Symcon
Der Textparser kann als Instanz über das "+" im Objektbaum gesucht und hinzugefügt werden. Innerhalb der Konfiguration des Textparsers kann über "Gateway ändern" ein Gateway, welches den zu bearbeitenden Text zur Verfügung stellt, ausgewählt werden. Dies kann z.B. ein [Http Client](https://www.symcon.de/de/llms/modules/httpclient.md) sein.
### Beschreibung
Der TextParser in IP-Symcon ermöglicht es bestimmte Teile aus z.B. einer Webseite oder eine Datei herauszuschneiden, indem mehrere Regeln hintereinander ausführt werden. Es stehen dabei folgende Regeln zur Verfügung:
| Funktion | Beschreibung |
| --------------------------- | ------------------------------------------------------------------------------ |
| __Text abscheiden vor__ | Schneidet allen Text vor Tag1 ab |
| __Text abschneiden hinter__ | Schneidet allen Text hinter Tag1 ab |
| __Hole Text__ | Holt den Text bis zum Tag1 in die Variable |
| __Text ausschneiden__ | Schneidet den Text zwischen Tag1 und Tag2 aus und schreibt ihn in die Variable |
Es können mehrere Regeln hintereinander angewendet und sogar mehrere “Hole Text”- und “Text ausschneiden”-Operationen verwendet werden.
### Beispiel
Ein kleines Beispiel soll zeigen, wie man den Titel von heise.de auslesen kann.
1. Zuerst muss der Text Parser erstellt werden.
2. Danach muss eine übergeordnete Instanz erstellt werden. In diesem Beispiel ist der [HTTP Client](https://www.symcon.de/de/llms/modules/httpclient.md) erforderlich.
3. Im HTTP Client muss die URL [https://www.heise.de](https://www.heise.de) angeben werden und ggf. der Timer aktiviert werden, der die Seite zyklisch abfragt.
4. Zurück im Text Parser muss der HTTP Client als Gateway eingerichtet werden. Dieser kann über "Gateway ändern" ausgewählt werden.
5. Im Text Parser müssen folgende Regeln angegeben werden, um den Titel auslesen zu können.
Der Weg diese Regeln herauszufinden ist, sich den HTML Code, der durch den HTTP Client eingelesenen wurde, anzusehen. In diesem Code sucht man nach markanten Stellen, welche abgeschnitten werden können. Dies solange wiederholen bis am Ende nur noch der gewünschte Text übrig bleibt. Diese Regeln können dann in IP-Symcon eingetragen werden.
6. Mit "Hole Text" gibt man zusätzlich eine Variable an, in der der fertige ausgeschnitte Text gespeichert werden soll.
#### Regeln
| Beschreibung | Regel |
| -------------------- | --------- |
| Text abschneiden vor | |
| Hole Text | |
#### Screenshot

---
# Translation Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/translation-control/
_Benötigt Symcon >= 7.1_
> **Hinweis:** Das Translation Modul ist eine kostenpflichtige Erweiterung, welche zu jeder bestehenden Symcon Lizenz erworben werden kann. Bei jeder Symcon Lizenz können bis zu 10 Strings je Sprache kostenlos übersetzt werden werden. Die Erweiterung kann direkt im [Shop](https://www.symcon.de/de/shop/enterprise/ips-enterprise-localization) erworben werden.
> **Hinweis:** Es wird empfohlen von Englisch in verschiedene Sprachen zu übersetzen. Daher sollte das Symcon System auf Englisch geführt werden. Hierfür kann die Sprache des Betriebssystems geändert werden. Wenn das Gerät auf dem Symcon installiert ist nicht beeinflusst werden soll, kann der Spezialschalter Locale auf en gesetzt werden
Das Translation Control ermöglicht es jegliche in Symcon vorhandene Text in verschiedene Sprachen zu übersetzen.
Die verschiedenen Übersetzungen können hier jederzeit angepasst werden. Mithilfe des Dienstes [DeepL](https://www.deepl.com/de/translator) kann das gesamte System automatisch übersetzt werden. Hierfür wird ein API-Key von [DeepL](https://www.deepl.com/de/pro-api) benötigt. Die Übersetzungen gelten sowohl für die Konsole als auch für die Visualisierung.

### Sprache hinzufügen
Eine neue Sprache kann mit dem Entsprechenden ISO-Sprachcode hinzugefügt werden.
### Aktionen
| Aktion | Beschreibung |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Automatisch Aktualisieren | Fügt alle Texte, aus dem System in die Übersetzungstabelle hinzu. Diese können manuell oder automatisch übersetzt werden |
| Automatisch Übersetzen | Alle Werte der 'Ursprungstext' Spalter, welche nicht den Status 'Unbenutzt' haben werden mithilfe von DeepL übersetzt und in die Spalte 'Übersetzter Text' übertragen. |
| Aufräumen | Alle Einträge, die im System nicht mehr im System sind, werden entfernt |
| Sprache Löschen | Löscht die Übersetzungstabelle |
### Übersetzungstabelle
| Spalte | Beschreibung |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Ursprungstext | Der Text, der im System gefunden wurde und für die Übersetzung mit DeepL genutzt wird |
| Übersetzter Text | Initial leer. Kann manuell oder durch die automatische Übersetzung gefüllt werden. Ist das Feld leer, wird der Ursprungstext angezeigt. |
| Referenz | Zeigt an ob der Text von einem Profil oder Objekt stammt und ob es sich beispielsweise um einen Objektnamen oder das Suffix eine Profils Handels. Dieser Kontext kann zum Verbessern der Übersetzung genutzt werden. |
| Status (Neu, Unbenutzt, Fertig) | Der aktuell Status der einzelnen Übersetzungen. Neu wird gesetzt, wenn die Übersetzung initial erkannt wird. Wurde die Übersetzung erfolgreich durchgeführt wird der Status auf Fertig gesetzt. Einträge mit dem Status Unbenutzt werden nicht für die Übersetzung übermittelt |
---
# Util Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/util-control/
Dieses Modul ist eine Schnittstelle zwischen dem Dienst und der IP-Symcon Konsole und erlaubt erweiterte Funktionen, wie z.B. Suchen und Ersetzen in Dateien.
Auf der Modulkonfigurationsseite ist die Möglichkeit die Umlaute des Projekts zu überprüfen und zu korrigieren.
> **Hinweis:** Dieses Modul sollte nicht gelöscht werden.
> Falls es gelöscht wird, wird es beim nächsten Start wieder neu erstellt.
---
# WebHook Control
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/webhook-control/
_Benötigt Symcon >= 4.0_
### Beschreibung
Das WebHook Control Modul bietet die Möglichkeit Skripte über einen Browser aufzurufen. Über den Symcon Connect Dienst sind auch Aufrufe außerhalb des lokalen Netzwerks möglich.
Es bietet weitergehend die Möglichkeit dem Skript Daten mitzuliefern.
> **Hinweis:** Skripte, die durch den WebHook ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)

#### Ermitteln des besten WebHooks
Der aufgerufene Hook muss nicht exakt übereinstimmen. Es wird immer der **Beste Treffer** verwendet, der die längste Übereinstimmung hat. Dies bedeutet, das der Hook-Pfad kürzer sein kann, als der z.B. im Browser aufgerufene Hook.
Konfiguration im Beispiel:
- Hook: /hook/ocpp, Ziel: 12345
- Hook: /hook/ocpp/extra, Ziel: 55555
Aufrufe im Beispiel:
- Aufruf: /hook/ocpp, Bester Treffer: 12345
- Aufruf: /hook/ocpppui, Bester Treffer: 12345
- Aufruf: /hook/ocpp/wallbox1, Bester Treffer: 12345
- Aufruf: /hook/ocpp/extra, Bester Treffer: 55555
- Aufruf: /hook/tester, Keine Übereinstimmung
#### WebSocket Support
Ab der Symcon Version 5.2 nutzt das WebHook Control WebSockets und ermöglicht somit Echtzeitübermittlung.
Empfangene Daten können wie folgt erfasst und ausgegeben werden:
```php
// Beim Empfangen landen die Daten im php://input Stream.
IPS_LogMessage("WebSocket", file_get_contents("php://input"));
```
### Einbindung in Symcon
Das WebHook Control gehört zu den Kern Instanzen und ist somit sofort konfigurierbar.
Innerhalb eines Browsers kann das jeweilig verknüpfte Skript mit "IP:PORT/hook/HOOKNAME" aufgerufen werden.
Um einen Hook einzurichten muss in der "WebHook Control" Instanz bei der oberen Liste auf "Hinzufügen" geklickt werden. Folgend muss zuerst der Aufrufname des Hooks eingegeben werden und anschließend das Skript gewählt werden, welches durch den Hook ausgeführt werden soll.
> **Hinweis:** Auch Aufrufe via [Connect Control](https://www.symcon.de/de/llms/modules/connect-control.md) sind möglich.
### Beispiel
#### Skript Aufruf
Das Beispielskript, welches aufgerufen werden soll, ist "WebHook TestSkript" mit der ObjektID "35909".
```php
IPS_LogMessage("WebHook GET", print_r($_GET, true));
IPS_LogMessage("WebHook POST", print_r($_POST, true));
IPS_LogMessage("WebHook IPS", print_r($_IPS, true));
IPS_LogMessage("WebHook RAW", file_get_contents("php://input"));
echo "Meldung: " . $_GET['Meldung'];
```
Der Aufruf und das Ergebnis wären wiefolgt:

An Symcon werden die Daten in Arrays dem Skript übergeben.

#### Authentifizierung
Ein Beispiel wie eine automatische Authentifizierung über das Modul Control verwirklicht wurde.
Als Nutzername wurde "Symcon" und als Passwort wurde "passwort" gewählt.
> **Achtung:** Eine Authentifizierung wird immer empfohlen, damit ein unerlaubter Zugriff von Außen auf Symcon verhindert wird.
___Quellcode___
```php
if(!isset($_SERVER['PHP_AUTH_USER']))
$_SERVER['PHP_AUTH_USER'] = "";
if(!isset($_SERVER['PHP_AUTH_PW']))
$_SERVER['PHP_AUTH_PW'] = "";
if(($_SERVER['PHP_AUTH_USER'] != "Symcon") || ($_SERVER['PHP_AUTH_PW'] != "passwort")) {
header('WWW-Authenticate: Basic Realm="Geofency WebHook"');
header('HTTP/1.0 401 Unauthorized');
echo "Authorization required";
return;
}
echo "Willkommen im geschützten Bereich";
```
Wird der Hook aufgerufen, erscheint die Abfrage nach Nutzername und Passwort. Und die Daten werden via $Post-Array an das Skript verschickt.

### Einbindung via PHP-Modul
Neben dem Aufruf via Skript, ist es auch möglich über die Funktion [ProcessHookData](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) innerhalb eines PHP-Moduls auf Hookaufrufe zu reagieren.
Dazu wird ein Hook per [RegisterHook](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php/module.md) auf die eigene InstanceID registriert. Anschließend wird die Funktion "ProcessHookData()" automatisch durch das Hook Control aufgerufen.
### Beispiel
Dem Beispiel [HookServe](https://github.com/symcon/SymconTest/blob/master/HookServeSimpleStrict/module.php) kann der Quellcode zur gesamten Handhabe eines WebHooks via PHP-Modul mit dem modernen IPSModuleStrict entnommen werden. Die Nutzung mit dem alten IPSModule ist hier aufgeführt: [HookServe (Legacy)](https://github.com/symcon/SymconTest/blob/master/HookServeSimple/module.php)
## WC_PushMessage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/webhook-control/wc-pushmessage/
`bool WC_PushMessage(int $InstanzID, string $Hookpfad, string $Nachricht)`
_Benötigt Symcon >= 5.2_
sendet eine WebSocket-Nachricht an alle verbundenen Clients
**Parameter**
- `$InstanzID` (int): ID des WebHook Control
- `$Hookpfad` (string): Pfad des Hooks
- `$Nachricht` (string): Zu sendene Nachricht
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Zu sendene Nachricht
**Beispiel**
```php
// Sendet "Hallo Welt" auf den hook "test" des WebHook Controls mit der ID 12345
WC_PushMessage(12345, "/hook/test", "Hallo Welt");
```
## WC_PushMessageEx
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/webhook-control/wc-pushmessageex/
`bool WC_PushMessageEx(int $InstanzID, string $Hookpfad, string $Text, string $Zieladresse, int $Zielport)`
_Benötigt Symcon >= 5.3_
sendet eine WebSocket-Nachricht an einen bestimmten Client
**Parameter**
- `$InstanzID` (int): ID des WebHook Control
- `$Hookpfad` (string): Pfad des Hooks
- `$Text` (string): Zu sendene Nachricht
- `$Zieladresse` (string): Adresse an die gesendet werden soll
- `$Zielport` (int): Port auf den gesendet werden soll
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Port auf den gesendet werden soll
**Beispiel**
```php
// Sendet "Hallo Welt zurück" auf den hook "test" des WebHook Controls mit der ID 12345. Zusätzlich wird der Client mit der Adresse $_SERVER["REMOTE_ADDR"] und Port $_SERVER["REMOTE_PORT"] als Empfänger bestimmt.
WC_PushMessageEx(12345, "/hook/test", "Hallo Welt zurück", $_SERVER["REMOTE_ADDR"], $_SERVER["REMOTE_PORT"]);
```
---
# WebServer
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/kern-instanzen/webserver/
Das WebServer Modul in IP-Symcon wird verwendet, um die Visualisierung über einen weiteren Port verfügbar zu machen. Standardmäßig ist die Visualisierung über Port 3777 verfügbar. Insbesondere ist ein weiterer WebServer von Vorteil, wenn eine SSL-Verschlüsselung genutzt werden soll.
Optional ist es möglich die Basis-Authentifizierung zu aktiveren, welche einen zusätzlichen Schutz für den "user"-Ordner gewährt.
> **Hinweis:** Skripte, die durch den WebServer ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md) .
> **Hinweis:** Die JSON-RPC API (/api/) ist auf jedem WebServer verfügbar und wird durch den [Fernzugriff](https://www.symcon.de/de/llms/components/remote-access.md) abgesichert. Ab IP-Symcon 4.0 sind zusätzlich die WebHooks (/hook/) verfügbar, welche jeweils durch die Authentifizierung des jeweiligen WebHooks abgesichert werden.
> **Hinweis:** Ab Version 4.0 wird der WebServer nicht mehr automatisch hinzugefügt. Um diesen nutzen zu können, muss er via "Objekt hinzufügen -> Instanz hinzufügen -> WebServer" hinzugefügt werden.
> **Achtung:** Die Basis-Authentifizierung gilt ausschließlich für den "user"-Ordner. Die Startseite mit der Auflistung der verfügbaren Konfiguratoren ist immer ohne Kennwort erreichbar. Falls je Visualisierungskonfigurator ein Visualsierungskennwort vergeben werden soll, kann dies in der Konfiguration vom jeweiligen Visualisierungskonfigurator eingerichtet werden.
### SSL-Verschlüsselung
Um SSL nutzen zu können, werden mind. das Zertifikat und der private Schlüssel benötigt.
| Option | Beschreibung |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Zertifikat | Auswahl der *.pem Datei, welche das Zertifikat beinhaltet |
| Privater Schlüssel | Auswahl der *.pem Datei, welche den privaten Schlüssel beinhaltet |
| Zertifizierungsstelle (optional) | Auswahl der *.pem Datei, welche die Zertifizierungsstelle für einen vertrauenswürdigen Zugriff beinhaltet |
| DH Parameter (optional) | Auswahl der dhparam.pem Datei für den Diffie-Hellman-Parameter, welcher einen Logjam verhindert. Dies bringt eine erhöhte Sicherheit |

#### Zertifikat erstellen
Mithilfe von OpenSSL können Zertifikat und Private Key erstellt werden.
```php
// Generate a private key
openssl genrsa -out pk.pem 1024
// Create a certificate signing request
openssl req -new -key pk.pem -out req.csr
// Self-sign the csr
openssl x509 -req -days 3650 -in req.csr -signkey pk.pem -out cert.pem
```
> **Hinweis:** Damit Browser ein Zertifikat akzeptiert muss IP-Symcon über eine öffentliche Domain zugreifbar und ein von einer anerkannten Zertifizierungsstelle ausgestelltes Zertifikat vorhanden sein.
### "user" Ordner
Der "user"-Ordner beinhaltet benutzerdefinierte Inhalte von IP-Symcon (z.B. weitere Darstellungskripte).
Der Pfad zu diesem Ordner ist abhängig vom genutzten Betriebssystem.
* SymBox: /var/lib/symcon/user/
* Windows: C:\ProgramData\Symcon\user\
* MacOS: /Library/Application Support/Symcon/user/
* Linux: /var/lib/symcon/user/
* Raspberry Pi: /var/lib/symcon/user/
> **Achtung:** Werden Dateien unterhalb eines anderen Pfads gespeichert, so werden diese beim nächsten Update von IP-Symcon automatisch gelöscht. Nur so ist sicherzustellen, dass die Installation von IP-Symcon stets frei von Dateiversionskonflikten bleibt.
> **Hinweis:** Bis inklusive IP-Symcon 6.4 waren die Pfade wie folgt:
>
> * SymBox: /var/lib/symcon/user/
> * Windows: C:\ProgramData\Symcon\user\
> * MacOS: /Library/Application Support/Symcon/user/
> * Linux: /var/lib/symcon/user/
> * Raspberry Pi: /var/lib/symcon/user/
### "user"-Ordner absichern
Sofern Inhalte im speziellen "user"-Ordner abgelegt wurden, ist es ratsam die Basis-Authentifizierung zu aktivieren. Dadurch werden diese Inhalte zusätzlich geschützt und bei Abruf innerhalb der Visualisierung oder der mobilen Apps nach der jeweiligen Benutzername/Passwort-Kombination gefragt.
Die Einrichtung der Authentifizierung befindet sich bei den [Spezialschalter](https://www.symcon.de/de/llms/developer/special-switches.md).
> **Achtung:** Sollte in einer älteren IP-Symcon Version (bis inkl. 5.0) in einem WebServer die Basis-Authentifizierung aktiviert worden sein, so gilt diese bis zu dessen Deaktivierung.
### Logdateien
Die Option "Logdateien erstellen" erstellt im "logs"-Verzeichnis von IP-Symcon je WebServer eine Datei namens access_12345.log, wobei die Zahl 12345 für die InstanzID des WebServers steht.
Die erstellten Logdateien sind Webalizer-Kompatibel und können somit grafisch ausgewertet werden.
Der Pfad zu diesem Ordner ist abhängig vom genutzten Betriebssystem.
* SymBox: /var/log/symcon/
* Windows: C:\ProgramData\Symcon\logs\
* MacOS: /Library/Logs/Symcon/
* Linux: /var/log/symcon/
* Raspberry Pi: /var/log/symcon/
### Tipps und Tricks
[Forum: "SSL-Zertifikat bestellen und in IP-Symcon einrichten"](https://community.symcon.de/t/ssl-zertifikat-bestellen-und-in-ip-symcon-einrichten/37272)
---
# Client Socket
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/clientsocket/
_Benötigt Symcon >= 2.0_
Der Client Socket öffnet eine Schnittstelle, welche oftmals für die Kommunikation zwischen Gateway/Splitter Instanz und dem angeschlossenen Gerät genutzt wird. Es verwendet das TCP Protokoll.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite muss unter "Host" die IP/Hostname und unter "Port" der Port des anzusteuernden Geräts angegeben werden.
Bei aktiviertem SSL kann noch ausgewählt werden ob Host oder Peer überprüft werden sollen.
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung aufzubauen.

## CSCK_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/clientsocket/csck-sendtext/
`bool CSCK_SendText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 2.0_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Client Sockets
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
CSCK_SendText(12345, "Beliebiger Datensatz"); //Sendet den Text "Beliebiger Datensatz" auf dem Client Socket mit der ID 12345
```
---
# HID
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/hid/
_Benötigt Symcon >= 2.0_
Das HID (Human Interface Device) öffnet eine USB-Schnittstelle, welche oftmals für die Kommunikation zwischen Gateway/Splitter Instanz und dem angeschlossenen Gerät genutzt wird.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite muss unter "Gerät" das anzusteuernden Gerät angegeben werden.
Das Anhaken von "HID Gerät öffnen" setzt die Verbindung nach "Übernehmen" auf aktiv.
Alle Einstellungen/Änderungen werden erst nach "Übernehmen" gespeichert

## HID_SendEvent
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/hid/hid-sendevent/
`bool HID_SendEvent(int $InstanzID, int $ReportID, string $Text)`
_Benötigt Symcon >= 2.0_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden HIDs
- `$ReportID` (int): ID der zu sendenen ReportID
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
HID_SendEvent(12345, 0, "Beliebiger Datensatz"); //Sendet den Text "Beliebiger Datensatz" auf dem HID mit der ID 12345
```
---
# HTTP Client
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/httpclient/
_Benötigt Symcon >= 2.3_
Der HTTP Client liest Daten aus einer URL ein und stellt diese zur Verfügung.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite kann optional eine Authentifizierung über Benutzername und Passwort eingerichtet werden.
#### Webseite einlesen
Wenn eine Webseite eingelesen werden soll, muss die URL eingetragen werden.
Das Intervall bestimmt, wie oft diese Abfrage durchgeführt wird.

## WWW_UpdatePage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/httpclient/www-updatepage/
`bool WWW_UpdatePage(int $InstanzID)`
_Benötigt Symcon >= 2.3_
lässt die konfigurierte URL abfragen
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden HTTP Clients
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID des zu aktualisierenden HTTP Clients
**Beispiel**
```php
//Manuelle Abfrage der konfigurierten URL des HTTP Clients mit der InstanzID 12345
WWW_UpdatePage(12345);
```
---
# Multicast Socket
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/multicastsocket/
_Benötigt Symcon >= 4.1_
Der Multicast Socket öffnet eine Schnittstelle, welche oftmals für die Kommunikation zwischen Gateway/Splitter Instanz und dem angeschlossenen Gerät genutzt wird. Es verwendet das UDP Protokoll.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite kann der Multicast-Socket eingerichtet und aktiviert werden.
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung, bei aktivierten "Socket öffnen", aufzubauen.

#### Sende-Host/Port
IP und Port des anzusteuernden Geräts.
#### Empfangs Host/Port
Bestimmt auf welchem Netzwerk und über welche IP und Port die Daten entgegengenommen werden.
#### Multicast
Multicast Gruppen Adresse bei der sich angemeldet und auf die gehorcht wird.
#### Aktivierbare Optionen
| Option | Beschreibung |
| ------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Broadcast | Erlaubt das Senden von Broadcast Nachrichten |
| Reuse Address | Erlaubt das Anbinden des Sockets an eine Adresse, welche bereits in Benutzung ist. |
| Loopback | Aktiviert das Empfangen von Multicast-Paketen auf dem Sendesocket, sofern dieser ein Mitglied der Multicast Gruppe ist. |
## MSCK_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/multicastsocket/msck-sendtext/
`bool MSCK_SendText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 4.1_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Multicast Sockets
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
//Sendet den String "Beliebiger Datensatz" auf dem Multicast Socket mit der ID 12345
MSCK_SendText(12345, "Beliebiger Datensatz");
```
---
# Serial Port
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serialport/
_Benötigt Symcon >= 2.0_
Der Serial Port öffnet eine Schnittstelle, welche oftmals für die Kommunikation zwischen Gateway/Splitter Instanz und dem angeschlossenen Gerät genutzt wird.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite muss der serielle Anschluss, an dem das anzusteuernde Gerät angeschlossen ist, angegeben werden.
Gegebenfalls können Baudrate, Datenbits, Stopbits und Parität eignestellt werden.
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung aufzubauen.

## SPRT_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serialport/sprt-sendtext/
`bool SPRT_SendText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 2.0_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Serial Ports
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
//Sendet einen den Text "Beliebiger Datensatz" auf dem Serial Port mit der ID 12345
SPRT_SendText(12345, "Beliebiger Datensatz");
```
## SPRT_SetBreak
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serialport/sprt-setbreak/
`bool SPRT_SetBreak(int $InstanzID, bool $AnAus)`
_Benötigt Symcon >= 2.6_
schaltet den Break einer Serial Port Instanz
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Serial Ports
- `$AnAus` (bool): schaltet den Break An __True__ oder Aus __False__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
schaltet den Break An __True__ oder Aus __False__
**Beispiel**
```php
// schaltet den Break der Serial Port Instanz mit der ID 12345 auf "An"
SPRT_SetBreak(12345, true);
```
## SPRT_SetDTR
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serialport/sprt-setdtr/
`bool SPRT_SetDTR(int $InstanzID, bool $AnAus)`
_Benötigt Symcon >= 2.6_
schaltet den DTR einer Serial Port Instanz
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Serial Ports
- `$AnAus` (bool): schaltet den DTR An __True__ oder Aus __False__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
schaltet den DTR An __True__ oder Aus __False__
**Beispiel**
```php
// schaltet den DTR der Serial Port Instanz mit der ID 12345 auf "An"
SPRT_SetDTR(12345, true);
```
## SPRT_SetRTS
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serialport/sprt-setrts/
`bool SPRT_SetRTS(int $InstanzID, bool $AnAus)`
_Benötigt Symcon >= 2.6_
schaltet den RTS einer Serial Port Instanz
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Serial Ports
- `$AnAus` (bool): schaltet den RTS An __True__ oder Aus __False__
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
schaltet den RTS An __True__ oder Aus __False__
**Beispiel**
```php
// schaltet den RTS der Serial Port Instanz mit der ID 12345 auf "An"
SPRT_SetRTS(12345, true);
```
---
# Server Sent Event Client
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serversenteventclient/
Der Server Sent Event Client öffnet eine Schnittstelle, welche automatisch auf Server Event reagiert. Es verwendet eine HTTP Verbindung.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite muss unter "URL" die Adresse des Servers angegeben werden auf den man reagiert.
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung aufzubauen.

---
# Server Socket
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serversocket/
_Benötigt Symcon >= 4.1_
Der Server Socket öffnet auf dem Server einen Port für alle Netzwerke. Es kann dann auf diesem Port gehorcht und Daten empfangen werden.
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend ist der Port geöffnet.
Bei aktiviertem SSL müssen Zertifikat und der private Schlüssel angegegeben werden.

#### Zertifikat erstellen
Mithilfe von OpenSSL können Zertifikat und Private Key erstellt werden.
```php
// Generate a private key
openssl genrsa -out pk.pem 1024
// Create a certificate signing request
openssl req -new -key pk.pem -out req.csr
// Self-sign the csr
openssl x509 -req -days 3650 -in req.csr -signkey pk.pem -out cert.pem
```
> **Hinweis:** Das Zertifikat für die Zertifizierungsstelle ist optional.
## SSCK_SendPacket
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serversocket/ssck-sendpacket/
`bool SSCK_SendPacket(int $InstanzID, string $Text, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 4.1_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Server Sockets
- `$Text` (string): der zusendene String
- `$ClientIP` (string): IP des Empfängers
- `$ClientPort` (int): Port des Empfängers
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Port des Empfängers
**Beispiel**
```php
//Sendet das Packet mit dem Datensatz "Beliebiger Datensatz" auf dem Server Socket mit der ID 12345 an die IP:Port 192.168.1.123:1234
SSCK_SendPacket(12345, "Beliebiger Datensatz", "192.168.1.123", 1234);
```
## SSCK_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/serversocket/ssck-sendtext/
`bool SSCK_SendText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 4.1_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden Server Sockets
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
SSCK_SendText(12345, "Beliebiger Datensatz"); //Sendet einen den Text "Beliebiger Datensatz" auf dem Server Socket mit der ID 12345
```
---
# UDP Socket
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/udpsocket/
_Benötigt Symcon >= 3.3_
Der UDP Socket öffnet eine Schnittstelle, welche oftmals für die Kommunikation zwischen Gateway/Splitter Instanz und dem angeschlossenen Gerät genutzt wird. Es verwendet das UDP Protokoll.
### Einbindung in IP-Symcon
Über "+" im Objektbaum kann eine neue UDP Socket Instanz erstellt werden.
Auf der Konfigurationsseite können folgende Einstellungen vorgenommen werden.
| Option | Beschreibung |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Socket öffnen | Ob der Socket geöffnet oder geschlossen sein soll. |
| Sende-Host | Auf welche IP-Adresse die Daten gesendet werden sollen. |
| Sende-Port | Auf welchen Port die Daten gesendet werden sollen. |
| Empf.-Host | Auf welchem TCP-Interface auf die Daten gelauscht werden soll. |
| Empf.-Port | Auf welchem Port auf die Daten gelauscht werden soll. |
| Aktiviere Broadcast | Bei Aktivierung schickt der UDP Socket an die Broadcast-Adresse des ausgewählten Empf.-Host Interfaces. Die eingetragene Sende-Host Adresse ist dabei unerheblich. |
| Aktiviere Reuse Address | Erlaubt es anderen Programmen bei ebenfalls aktivierten "Reuse address" auf dem Empf.-Port zu lauschen. |
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung aufzubauen.

## USCK_SendPacket
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/udpsocket/usck-sendpacket/
`bool USCK_SendPacket(int $InstanzID, string $Text, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 5.0_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden UDP Sockets
- `$Text` (string): der zusendene String
- `$ClientIP` (string): IP des Empfängers
- `$ClientPort` (int): Port des Empfängers
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
Port des Empfängers
**Beispiel**
```php
//Sendet das Packet mit dem Datensatz "Beliebiger Datensatz" auf dem Server Socket mit der ID 12345 an die IP:Port 192.168.1.123:1234
USCK_SendPacket(12345, "Beliebiger Datensatz", "192.168.1.123", 1234);
```
## USCK_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/udpsocket/usck-sendtext/
`bool USCK_SendText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 3.3_
sendet einen String auf den I/O
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden UDP Sockets
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
USCK_SendText(12345, "Beliebiger Datensatz"); //Sendet einen den Text "Beliebiger Datensatz" auf dem UDP Socket mit der ID 12345
```
---
# Virtual I/O
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/
_Benötigt Symcon >= 3.3_
Der Virtual I/O öffnet eine Schnittstelle, welche für die Kommunikation zwischen Gateway/Splitter Instanz und dem angeschlossenen Gerät genutzt wird. Es verwendet kein bestimmtes Protokoll, sondern dient für Testzwecke um ein korrektes Verhalten der verbundenen Instanzen sicherzustellen.
Das Virtual I/O ist in der Lage Datenpakete vom Typ [Simpel](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) und [Erweitert (Socket)](https://www.symcon.de/de/llms/developer/sdk-tools/sdk-php.md) zu versenden. Es gilt, dass Funktionen mit "Text" solche simplen Datenpakete nutzen. Connect, Disconnect und Funktionen mit "Packet" nutzen das Datenpaket Erweitert (Socket).
### Einbindung in IP-Symcon
Über "+" im Objektbaum kann eine neue Virtual I/O Instanz erstellt werden.
Auf der Konfigurationsseite können folgende Einstellungen vorgenommen werden.
| Option | Beschreibung |
| ------ | --------------------------------------------------------- |
| Aktiv | Ob die Schnittstelle geöffnet oder geschlossen sein soll. |
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung aufzubauen.

Zum weiteren Verständnis zeigt die Grafik auf, welche Richtung und Datenpakettypen die einzelnen Befehle nutzen.

## VIO_Connect
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-connect/
`bool VIO_Connect(int $InstanzID, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 5.1_
sendet ein Connect Datenpaket
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$ClientIP` (string): die zu verbindene ClientIP
- `$ClientPort` (int): der zu verbindene Port
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zu verbindene Port
**Beispiel**
```php
// Schickt ein Datenpaket an die Virtual I/O Instanz mit der ID 12345 mit der IP-Adresse 192.168.0.8 und dem Port 502
VIO_Connect(12345, "192.168.0.8", 502);
```
## VIO_Disconnect
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-disconnect/
`bool VIO_Disconnect(int $InstanzID, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 5.1_
sendet ein Disconnect Datenpaket
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$ClientIP` (string): die zu verbindene ClientIP
- `$ClientPort` (int): der zu verbindene Port
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zu verbindene Port
**Beispiel**
```php
// Schickt ein Datenpaket an die Virtual I/O Instanz mit der ID 12345 mit der IP-Adresse 192.168.0.8 und dem Port 502
VIO_Disconnect(12345, "192.168.0.8", 502);
```
## VIO_GetPacketList
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-getpacketlist/
`array VIO_GetPacketList(int $InstanzID)`
_Benötigt Symcon >= 5.1_
liefert ein Array von erweiterten Datenpaketen
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
**Rückgabewert** (array): liefert ein Array von erweiterten Datenpaketen
ID der zu aktualisierenden Virtual I/O
**Beispiel**
```php
// Liefert eine Array aller erweiterten Datenpakete der Virtual I/O Instanz mit der ID 12345
$allePakete = VIO_GetPacketList(12345);
print_r($allePakete);
/* liefert z.B.:
Array
(
[0] => Array
(
[Type] => 0
[Buffer] => Hallo Welt
[ClientIP] => 192.168.0.8
[ClientPort] => 502
)
[1] => Array
(
[Type] => 0
[Buffer] => IP-Symcon
[ClientIP] => 192.168.0.4
[ClientPort] => 3777
)
...
)
*/
```
## VIO_GetTextList
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-gettextlist/
`array VIO_GetTextList(int $InstanzID)`
_Benötigt Symcon >= 5.1_
liefert ein Array von simplen Datenpaketen
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
**Rückgabewert** (array): liefert ein Array von simplen Datenpaketen
ID der zu aktualisierenden Virtual I/O
**Beispiel**
```php
// Liefert eine Array aller simplen Datenpakete der Virtual I/O Instanz mit der ID 12345
$alleTexts = VIO_GetTextList(12345);
print_r($alleTexts);
/* liefert z.B.:
Array
(
[0] => Hallo Welt
[1] => IP-Symcon
...
)
*/
```
## VIO_PushPacket
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-pushpacket/
`bool VIO_PushPacket(int $InstanzID, string $Text, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 5.1_
sendet ein erweitertes Datenpaket
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$Text` (string): der zusendene String
- `$ClientIP` (string): auf die zusendende ClientIP
- `$ClientPort` (int): auf den zusendenden Port
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
auf den zusendenden Port
**Beispiel**
```php
// Schickt auf die Virtual I/O Instanz mit der ID 12345 den Text "Hallo Welt" mit der IP-Adresse 192.168.0.8 und dem Port 502
VIO_PushPacket(12345, "Hallo Welt", "192.168.0.8", 502);
```
## VIO_PushPacketHEX
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-pushpackethex/
`bool VIO_PushPacketHEX(int $InstanzID, string $Text, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 5.1_
sendet ein erweitertes Datenpaket
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$Text` (string): der zusendene String in HEX
- `$ClientIP` (string): auf die zusendende ClientIP
- `$ClientPort` (int): auf den zusendenden Port
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
auf den zusendenden Port
**Beispiel**
```php
// Schickt auf die Virtual I/O Instanz mit der ID 12345 den Hexstring "1a2fee" mit der IP-Adresse 192.168.0.8 und dem Port 502
VIO_PushPacketHEX(12345, "1A 2F EE", "192.168.0.8", 502);
```
## VIO_PushText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-pushtext/
`bool VIO_PushText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 3.3_
sendet ein simples Datenpaket
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
// Schickt auf die Virtual I/O Instanz mit der ID 12345 den Text "Hallo Welt"
VIO_PushText(12345, "Hallo Welt");
```
## VIO_PushTextHEX
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-pushtexthex/
`bool VIO_PushTextHEX(int $InstanzID, string $Text)`
_Benötigt Symcon >= 3.3_
sendet ein simples Datenpaket
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$Text` (string): der zusendene String in HEX
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String in HEX
**Beispiel**
```php
// Schickt auf die Virtual I/O Instanz mit der ID 12345 den Hexstring "1a2fee"
VIO_PushTextHEX(12345, "1A 2F EE");
```
## VIO_SendPacket
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-sendpacket/
`bool VIO_SendPacket(int $InstanzID, string $Text, string $ClientIP, int $ClientPort)`
_Benötigt Symcon >= 5.1_
sendet ein erweitertes Datenpaket an sich selbst
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$Text` (string): der zusendene String
- `$ClientIP` (string): auf die zusendende ClientIP
- `$ClientPort` (int): auf den zusendenden Port
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
auf den zusendenden Port
**Beispiel**
```php
// Schickt an die Virtual I/O Instanz mit der ID 12345 den Text "Hallo Welt" mit der IP-Adresse 192.168.0.8 und dem Port 502
VIO_PushPacket(12345, "Hallo Welt", "192.168.0.8", 502);
```
## VIO_SendText
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/virtualio/vio-sendtext/
`bool VIO_SendText(int $InstanzID, string $Text)`
_Benötigt Symcon >= 3.3_
sendet ein simples Datenpaket an sich selbst
**Parameter**
- `$InstanzID` (int): ID der zu aktualisierenden Virtual I/O
- `$Text` (string): der zusendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zusendene String
**Beispiel**
```php
// Schickt an die Virtual I/O Instanz mit der ID 12345 den Text "Hallo Welt"
VIO_SendText(12345, "Hallo Welt");
```
---
# WebSocket Client
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/websocketclient/
_Benötigt Symcon >= 5.5_
Der WebSocket Client öffnet eine Schnittstelle, welche oftmals für die bidirektionale Kommunikation mit Webanwendungen/WebServer genutzt wird. Es verwendet das TCP Protokoll.
### Einbindung in IP-Symcon
Auf der Konfigurationsseite muss unter "URL" die Adresse der/des Webanwendung/WebServers angegeben werden. Bei aktiviertem "Zertifikate verifizieren" werden die SSL Zertifikate geprüft.
Erst ein Klick auf "Übernehmen" speichert die Einstellungen und anschließend wird versucht die Verbindung aufzubauen.

## WSC_SendMessage
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/io/websocketclient/wsc-sendmessage/
`bool WSC_SendMessage(int $InstanzID, string $Nachricht)`
_Benötigt Symcon >= 5.5_
sendet eine Nachricht über den WebSocket
**Parameter**
- `$InstanzID` (int): ID des zu aktualisierenden WebSocket Clients
- `$Nachricht` (string): der zu sendene String
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
der zu sendene String
**Beispiel**
```php
// Schickt an die WebSocket Client Instanz mit der ID 12345 die Nachricht "Hallo Welt"
WSC_SendMessage(12345, "Hallo Welt");
```
---
# Backup
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/datensicherung/backup/
_Benötigt Symcon >= 6.3_
Erstellt ein Backup über SFTP, FTP oder FTPS.
### Funktionsumfang
* Erstellt ein Backup über SFTP, FTP oder FTPS auf einem Server
* Aktualisiert ein Backup über SFTP, FTP oder FTPS auf einem Server
### Software-Installation
* Über den Module Store das 'Backup (SFTP/FTP/FTPS)'-Modul installieren.
### Einrichten der Instanzen in IP-Symcon
Unter 'Instanz hinzufügen' kann das 'Backup (SFTP/FTP/FTPS)'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen)
__Konfigurationsseite__:
| Name | Beschreibung |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Verbindungstyp | Auswahl der Verbindungsart |
| Host | IP Adresse des Servers |
| Port | Port auf dem der Client sich auf den Server verbindet. Bei FTPS und FTP ist dies normalerweise 21. Bei SFTP ist dies der Port 22 |
| Benutzername | Benutzernamen für die SFTP Verbindung |
| Passwort | Passwort für die SFTP Verbindung |
| Modus | Modus was für ein Backup erstellt werden soll |
| Wechsel Ordner nach | Zum Anfang der Periode wird ein neuer Ordner erstellt |
| Zielordner | Ordner auf dem Server, in dem das Backup erstellt werden soll |
| Suche Zielordner | Durch die Ordner browsen und ein valider Pfad kann erstellt werden |
| Automatische Backups aktivieren | Aktiviert ein tägliches Update |
| Täglich um | Zeit, wann das Update täglich startet |
| Expertenoptionen | -------------------------------------------------------------------------------------------------------------------------------- |
| Größen Limit | Ist eine Datei Größer als dieses Limit wird sie ignoriert |
| Gefilterte Ordner | Filter um bestimmte Ordner nicht zu übertragen |
| Backup erstellen | Button, welcher sofort ein Update startet. |
| Verbindung testen | Testet, ob eine Verbindung hergestellt werden kann |
__Modus__:
Vollständiges Backup: Erstellt eine vollständige Kopie in einem separaten Ordner nach dem Pattern: symcon-backup-{Jahr}-{Monat}-{Tag}-{Stunde}-{Minute}-{Sekunde}
Inkrementelles Backup: Updatet ein bestehendes Backup.
Steht die Option 'Wechsel nach Ordner' nicht auf 'Niemals', so wird der Ordner nach der eingestellten Zeit gewechselt.
Die Ordner, welche beim inkrementellen Backup erstellt werden, folgen folgenden Pattern:
- Niemals: symcon-backup
- Woche: symcon-backup-{Jahr}-0{Kalenderwoche}
- Monat: symcon-backup-{Jahr}-{Monat}
- Jahr: symcon-backup-{Jahr}
### Statusvariablen
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
| Name | Typ | Beschreibung |
| ------------------------------ | ------- | ------------------------------------------------------ |
| Zuletzt abgeschlossenes Backup | Integer | Zeitpunkt, zudem das letzte Backup abgeschlossen wurde |
| Übertragene Megabytes | Float | Megabytes, welche beim letzten Update übertragen wurde |
## SB_CreateBackup
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/datensicherung/backup/sb-createbackup/
`bool SB_CreateBackup(int $InstanzID)`
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis **TRUE**, andernfalls **FALSE**
ID der Instanz
**Beispiel**
```php
SB_CreateBackup(12345);
```
---
# RRDTool
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/rrdtool/
> **Achtung:** Diese Funktion wurde mit IP-Symcon 2.4 entfernt.
Das RRDTool Modul ist eine direkte Einbindung von RRDTool als PHP Funktion in IP-Symcon.
Es werden keine weiteren Funktionen angeboten.
Somit ist das RRDTool Handbuch die erste Anlaufstelle, um Informationen zur Handhabung dieses Moduls zu finden.
Die aktuelle Versionsnummer können sie folgendermaßen herausfinden:
```php
echo RRD_Execute("version -");
```
## RRD_Execute
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/rrdtool/rrd-execute/
`bool RRD_Execute(int $InstanzID, string $Befehl)`
gibt einen Befehl an die RRDTool Library weiter
**Parameter**
- `$InstanzID` (int): ID des zu schaltenden Geräts
- `$Befehl` (string): RRD Befehl. Siehe
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
RRD Befehl. Siehe
**Beispiel**
```php
//Kein Beispiel vorhanden
```
---
# Shutter Control (legacy)
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/shutter-control-legacy/
> **Achtung:** Dies ist eine veraltete Version. Es ist empfohlen ab Version 5.0 die neue Variante [Shutter Control](https://www.symcon.de/de/produkt/anwendungsbeispiele/rollladensteuerung/) zu nutzen.
Um das IP-Symcon Shutter-Modul hardwareunabhängig zu machen, braucht das Modul ein Skript, welches sich um die Weitergabe der Befehle an Ihre Hardware kümmert.
Alle, die folgende Hardware besitzen, können das Skript einfach kopieren und verwenden. Andere Hardware lässt sich leicht hinzufügen. (Mehr dazu unterhalb des Skripts).
> **Hinweis:** Skripte, die durch das Shutter-Control ausgeführt werden, beinhalten diese [Systemvariablen](https://www.symcon.de/de/llms/concepts/automations.md)
* Eaton Xcomfort Shutter
* 1-Wire Shutter
* Homematic (Dank an [hengesb](https://community.symcon.de/u/hengesb/summary) )
* LCN (Dank an [philipp](https://community.symcon.de/u/philipp/summary) )
* FS20MS
Dieses Skript muss im Normalfall nur einmal in IP-Symcon vorhanden sein und es können beliebig viele Instanzen darauf zugreifen. Es muss Nichts editiert werden.
### Rollladen einmessen
Beim zweiten Schritt werden die Zeiten gemessen, die der Rollladen braucht, um auf die einzelnen Positionen zu fahren. Die Messung muss zweimal durchgeführt werden. Für Auf und Ab. Zum Starten wird der entsprechende Button gedrückt, woraufhin der Rollladen sich in Bewegung setzen sollte. Der Button muss erneut gedrückt werden, wenn die auf ihm stehende Position erreicht wird.
> **Hinweis:** Nach jedem Einlernen müssen die Werte mit dem “Setzen” Button übernommen werden.
### Tipps & Tricks
> **Hinweis:** Bei einer Fahrt auf 0% und 100% werden fünf Sekunden zur Fahrzeit addiert, um eine definierte Position zu erreichen.
> **Achtung:** Sollte die Laufzeit des Rollladens oberhalb des PHP-Skript-Limits liegen (180sek) muss dieses in der php.ini erhöht werden. (siehe [PHP](https://www.symcon.de/de/llms/components/service.md))
### Hinweise für LCN Nutzer
Das Shuttermodul kann mit dem Script universell für die Steuerung des Rollladen/Jalousie über die Ausgänge wie auch über die Relais genutzt werden.
Soll das Shuttermodul einen Rollladen/Jalousie steuern, welche/r an den zwei Ausgängen eines UPP/SH/HU hängt, dann muss unter “Instance1″ die Instanz des Ausgangs 1 des Moduls gewählt werden und für “Instance2″ die Instanz des Ausgangs 2 des Moduls. Diese Belegung entspricht dann der Standardrichtung, wie sie aus der LCN-Pro mit Hoch- bzw. Runterfahren angesteuert wird. Sollte der Anschluss umgekehrt sein, muss nur die Zuordung von Ausgang 1 und Ausgang 2 zu den Einstellungen “Instance1″ und “Instance2″ geändert werden.
Beim Betrieb mit Relais muss für “Instance1″ immer das erste Relais der beiden angegeben werden. Das erste Relais ist das, welches den Strom AN/AUS schaltet. “Instance2″ ist immer das Relais, welches die Richtung steuert.
Sollte die Fahrtrichtung verdreht sein, muss dies manuell im Script geändert werden. Im “case Block für LCN” des Shutter Scriptes findet sich an den beiden Stellen ein entsprechender Kommentar.
Für den Fall, dass man unterschiedlich verdrahtete Rollladen/Jalousien an den Relais nutzt, müssen also für die jeweiligen Konfigurationen zwei Shutterscripte verwendet werden.
### Shutter Skript
```php
//Variables provided by ShutterControl Module
//IPS_LogMessage("InstanceID", $_IPS['INSTANCE']); /* InstanceID */
//IPS_LogMessage("Direction", $_IPS['DIRECTION']); /* {0..2} Stop, Up, Down */
//IPS_LogMessage("Duration", $_IPS['DURATION']); /* ms */
if($_IPS['SENDER'] != "ShutterControl") {
die("This script can only be started by the ShutterControl Module");
}
define("SC_DIRECTION_STOP", 0);
define("SC_DIRECTION_UP", 1);
define("SC_DIRECTION_DOWN", 2);
$instance = IPS_GetInstance($_IPS['INSTANCE']);
switch($instance['ModuleInfo']['ModuleID']) {
//Siemens Device S7/LOGO
case "{932076B1-B18E-4AB6-AB6D-275ED30B62DB}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
S7_WriteBit($_IPS['INSTANCE'], false);
S7_WriteBit($_IPS['INSTANCE2'], false);
break;
case SC_DIRECTION_UP:
S7_WriteBit($_IPS['INSTANCE'], true);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
S7_WriteBit($_IPS['INSTANCE'], false);
}
break;
case SC_DIRECTION_DOWN:
S7_WriteBit($_IPS['INSTANCE2'], true);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
S7_WriteBit($_IPS['INSTANCE2'], false);
}
break;
}
break;
//FS20
case "{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}":
$running = CreateVariableByName($_IPS['INSTANCE'], "Moving", 0);
$value = GetValue(IPS_GetObjectIDByIdent("StatusVariable", $_IPS['INSTANCE']));
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
if(GetValue($running)) {
FS20_SwitchMode($_IPS['INSTANCE'], $value);
SetValue($running, false);
}
break;
case SC_DIRECTION_UP:
if(!GetValue($running)) {
FS20_SwitchMode($_IPS['INSTANCE'], true);
SetValue($running, true);
}
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
FS20_SwitchMode($_IPS['INSTANCE'], true);
SetValue($running, false);
}
break;
case SC_DIRECTION_DOWN:
if(!GetValue($running)) {
FS20_SwitchMode($_IPS['INSTANCE'], false);
SetValue($running, true);
}
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
FS20_SwitchMode($_IPS['INSTANCE'], false);
SetValue($running, false);
}
break;
}
break;
//EnOcean
case "{1463CAE7-C7D5-4623-8539-DD7ADA6E92A9}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
ENO_ShutterStop($_IPS['INSTANCE']);
break;
case SC_DIRECTION_UP:
ENO_ShutterMoveUp($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
ENO_ShutterStop($_IPS['INSTANCE']);
}
break;
case SC_DIRECTION_DOWN:
ENO_ShutterMoveDown($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
ENO_ShutterStop($_IPS['INSTANCE']);
}
break;
}
break;
//digitalStrom
case "{3DDA1E2B-B807-4680-AB6D-E7E8FBD6093A}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
DS_ShutterStop($_IPS['INSTANCE']);
break;
case SC_DIRECTION_UP:
DS_ShutterMoveUp($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
DS_ShutterStop($_IPS['INSTANCE']);
}
break;
case SC_DIRECTION_DOWN:
DS_ShutterMoveDown($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
DS_ShutterStop($_IPS['INSTANCE']);
}
break;
}
break;
//xComfort
case "{1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
MXC_ShutterStop($_IPS['INSTANCE']);
break;
case SC_DIRECTION_UP:
MXC_ShutterMoveUp($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
MXC_ShutterStop($_IPS['INSTANCE']);
}
break;
case SC_DIRECTION_DOWN:
MXC_ShutterMoveDown($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
MXC_ShutterStop($_IPS['INSTANCE']);
}
break;
}
break;
//LCN Unit
case "{2D871359-14D8-493F-9B01-26432E3A710F}":
$type=IPS_GetProperty($_IPS['INSTANCE'],'Unit');
switch($type) {
//Ausgänge
case 0:
switch($_IPS['DIRECTION'])
{
case SC_DIRECTION_STOP:
LCN_SetIntensity($_IPS['INSTANCE'],0,0);
LCN_SetIntensity($_IPS['INSTANCE2'],0,0);
break;
case SC_DIRECTION_UP:
LCN_SetIntensity($_IPS['INSTANCE'],100,4);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
LCN_SetIntensity($_IPS['INSTANCE'],0,0);
}
break;
case SC_DIRECTION_DOWN:
LCN_SetIntensity($_IPS['INSTANCE2'],100,4);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
LCN_SetIntensity($_IPS['INSTANCE2'],0,0);
}
break;
}
break;
//Relais
case 2:
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
LCN_SwitchRelay($_IPS['INSTANCE'],false);
break;
case SC_DIRECTION_UP:
LCN_SwitchRelay($_IPS['INSTANCE2'],false); // Um Relaisrichtung zu ändern bitte auf true
LCN_SwitchRelay($_IPS['INSTANCE'],true);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
LCN_SwitchRelay($_IPS['INSTANCE'],false);
}
break;
case SC_DIRECTION_DOWN:
LCN_SwitchRelay($_IPS['INSTANCE2'],true);// Um Relaisrichtung zu ändern bitte auf false
LCN_SwitchRelay($_IPS['INSTANCE'],true);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
LCN_SwitchRelay($_IPS['INSTANCE'],false);
}
break;
}
break;
}
break;
//LCN Shutter
case "{C81E019F-6341-4748-8644-1C29D99B813E}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
LCN_ShutterStop($_IPS['INSTANCE']);
break;
case SC_DIRECTION_UP:
LCN_ShutterMoveUp($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
LCN_ShutterStop($_IPS['INSTANCE']);
}
break;
case SC_DIRECTION_DOWN:
LCN_ShutterMoveDown($_IPS['INSTANCE']);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
LCN_ShutterStop($_IPS['INSTANCE']);
}
break;
}
break;
//1-Wire Shutter Modul (e-service Online)
case "{BD0F2622-F67C-4248-9A04-316DF13914C3}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
OW_SetPin($_IPS['INSTANCE'], 0, true);
OW_SetPin($_IPS['INSTANCE'], 1, true);
IPS_Sleep(100);
OW_SetPin($_IPS['INSTANCE'], 0, false);
OW_SetPin($_IPS['INSTANCE'], 1, false);
break;
case SC_DIRECTION_UP:
OW_SetPin($_IPS['INSTANCE'], 0, true);
IPS_Sleep(100);
OW_SetPin($_IPS['INSTANCE'], 0, false);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
OW_SetPin($_IPS['INSTANCE'], 0, true);
OW_SetPin($_IPS['INSTANCE'], 1, true);
IPS_Sleep(100);
OW_SetPin($_IPS['INSTANCE'], 0, false);
OW_SetPin($_IPS['INSTANCE'], 1, false);
}
break;
case SC_DIRECTION_DOWN:
OW_SetPin($_IPS['INSTANCE'], 1, true);
IPS_Sleep(100);
OW_SetPin($_IPS['INSTANCE'], 1, false);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
OW_SetPin($_IPS['INSTANCE'], 0, true);
OW_SetPin($_IPS['INSTANCE'], 1, true);
IPS_Sleep(100);
OW_SetPin($_IPS['INSTANCE'], 0, false);
OW_SetPin($_IPS['INSTANCE'], 1, false);
}
break;
}
break;
//1-Wire Shutter (1-wire.de)
case "{6A75828A-25CD-4CF3-83EA-DAAB914030A7}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
OneWireShutter($_IPS['INSTANCE'], 0, $_IPS['DURATION']);
break;
case SC_DIRECTION_UP:
if($_IPS['DURATION'] == 0) {
$_IPS['DURATION'] = 120000;
}
OneWireShutter($_IPS['INSTANCE'], 0, $_IPS['DURATION']);
break;
case SC_DIRECTION_DOWN:
if($_IPS['DURATION'] == 0) {
$_IPS['DURATION'] = 120000;
}
OneWireShutter($_IPS['INSTANCE'], 1, $_IPS['DURATION']);
break;
}
break;
//Homematic Shutter
case "{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
HM_WriteValueBoolean($_IPS['INSTANCE'], "STOP", true);
break;
case SC_DIRECTION_UP:
HM_WriteValueFloat($_IPS['INSTANCE'], "LEVEL", 1.0);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
HM_WriteValueBoolean($_IPS['INSTANCE'], "STOP", true);
}
break;
case SC_DIRECTION_DOWN:
HM_WriteValueFloat($_IPS['INSTANCE'], "LEVEL", 0.0);
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
HM_WriteValueBoolean($_IPS['INSTANCE'], "STOP", true);
}
break;
}
break;
//DMXOUT
case "{E19C2E41-7347-4A3B-B7D9-A9A88E0D133E}":
switch($_IPS['DIRECTION']) {
case SC_DIRECTION_STOP:
DMX_SetValue($_IPS['INSTANCE'],1,0); //Relais Hoch
DMX_SetValue($_IPS['INSTANCE2'],1,0); //Relais Runter
break;
case SC_DIRECTION_UP:
DMX_SetValue($_IPS['INSTANCE2'],1,0); //Relais Runter
DMX_SetValue($_IPS['INSTANCE'],1,255); //Relais Hoch
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
DMX_SetValue($_IPS['INSTANCE'],1,0); //Relais Hoch
}
break;
case SC_DIRECTION_DOWN:
DMX_SetValue($_IPS['INSTANCE'],1,0); //Relais Hoch
DMX_SetValue($_IPS['INSTANCE2'],1,255); //Relais Runter
if($_IPS['DURATION'] > 0) {
IPS_Sleep($_IPS['DURATION']);
DMX_SetValue($_IPS['INSTANCE2'],1,0); //Relais Runter
}
break;
}
break;
default:
die("No Handler for Module ".$instance['ModuleInfo']['ModuleName']." found");
}
function OneWireShutter($ins, $dir, $sec) {
@OW_SetStrobe($ins, True);
$res = ($dir * 128) + ($sec / 1000);
@OW_SetPort((integer)$ins, (integer)$res);
}
function CreateVariableByName($id, $name, $type) {
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid===false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "This Variable was created by Script");
}
return $vid;
}
```
### Informationen zum Erweitern des Skriptes
Es werden bei einem Aufruf immer drei Parameter übergeben.
* Die InstanzID des in dem Shutter Control Instanz eingestellten “Transmit Device”
* Die Richtung, in die gefahren werden soll.
* Die Zeit, die gefahren werden soll. (Dieser Wert ist 0 bei STOP und bei den TEST Buttons in der Eigenschaften-Seite)
In den “Case Statements” müssen die [GUIDs](https://www.symcon.de/de/llms/concepts.md) für das jeweilige Modul eingefügt werden. Alle IP-Symcon Funktionen können verwendet werden. Es darf kein Output generiert werden (echo), andernfalls gilt dies als Fehler und wird im Message-Log angezeigt und der Status der “Position” Variable wird nicht aktualisiert.
## SC_Move
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/shutter-control-legacy/sc-move/
`bool SC_Move(int $InstanzID, int $Position)`
bewegt den Rollladen an eine bestimmte Position
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
- `$Position` (int): 0%-100%, 99% = Auf Spalt fahren
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0%-100%, 99% = Auf Spalt fahren
**Beispiel**
```php
SC_Move(12345, 50); //Auf 50% fahren
```
## SC_MoveDown
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/shutter-control-legacy/sc-movedown/
`bool SC_MoveDown(int $InstanzID, int $Dauer)`
bewegt den Rollladen bis zu Endposition runter
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
- `$Dauer` (int): 0 = Endlagenschalter, >1 = Dauer in ms
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = Endlagenschalter, >1 = Dauer in ms
**Beispiel**
```php
SC_MoveDown(12345, 0); //Nach unten fahren
```
## SC_MoveUp
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/shutter-control-legacy/sc-moveup/
`bool SC_MoveUp(int $InstanzID, int $Dauer)`
bewegt den Rollladen bis zu Endposition hoch
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
- `$Dauer` (int): 0 = Endlagenschalter, >1 = Dauer in ms
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
0 = Endlagenschalter, >1 = Dauer in ms
**Beispiel**
```php
SC_MoveUp(12345, 0); //Nach oben fahren
```
## SC_Stop
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/shutter-control-legacy/sc-stop/
`bool SC_Stop(int $InstanzID)`
**Parameter**
- `$InstanzID` (int): ID der Shutter Control Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Shutter Control Instanz
**Beispiel**
```php
SC_Stop(12345); //Anhalten
```
---
# USBMapper
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/usbmapper/
_Benötigt Symcon >= 5.5_
> **Achtung:** Dieses Modul ist veraltet und sollte nicht mehr verwendet werden.
Das Modul setzt automatisch den korrekten USB-Port zu den eingetragenen Serial-Ports.
### Funktionsumfang
- Das Modul mappt automatisch eingetragene SerialPorts auf den jeweiligen korrekten USB-Port.
- Es können mehere Serial-Ports in der Liste eingetragen werden.
- Es wird bei Start von IP-Symcon und jede Minute kontrolliert ob die SerialPorts korrekt konfiguriert sind.
### Voraussetzungen
- Linux oder Raspberry Pi
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul USB-Mapper installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'USBMapper'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------ | ----------------------------------------------------- |
| Geräte | Liste, welche die zu mappenden SerialPorts beinhaltet |
## USBM_FixPorts
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/usbmapper/usbm-fixports/
`bool USBM_FixPorts(int $InstanzID)`
_Benötigt Symcon >= 5.5_
Kontroliert ob die USB-Ports noch richtig konfiguriert sind
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
USBM_FixPorts(12345);
```
---
# Web Graph
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/web-graph/
_Benötigt Symcon >= 4.3_
Das Modul dient dazu, bereits vorhandene Diagramme via WebHook zur Verfügung zu stellen. Der WebHook ist dann sowohl lokal als auch via Connect Service aufrufbar. Auch stilistische Konfigurationen sind über Parameter in der URL möglich.
### Funktionsumfang
- Erstellt einen eigenen Webhook
- Hinzufügen der erlaubten ObjektIDs für Diagramme via Liste
- Möglichkeit zur Sicherung durch Benutzername und Passwort
- Bereitstellung via WebHook sowohl lokal oder via Connect Service
- Konfiguration der Darstellung via URL Parameter
### Voraussetzungen
- Aktive Subskription bei Nutzung des Connect Services
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul Web Graph installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'Web Graph'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| ------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Access List | Die Liste beinhaltet die ObjektIDs von Diagrammmedien, welche via WebHook bereitgestellt werden dürfen |
| Benutzername/Passwort (Experte) | Begrenzt den Zugang mithilfe eines Benutzernamens und Passwort |
| Testumgebung | Hier können verschiedene Einstellung ausprobiert werden und die passende URL ausgelesen werden |
Nach Eintragung in die "Access List" stehen die Graphen mit ihrer ID zur Verfügung.
#### Beispiel
Diagrammmedia mit der ID 12345 wird in die "Access List" eingetragen. Daraufhin ist diese sichtbar unter:
Lokal:
http://127.0.0.1:3777/hook/webgraph/?id=12345
Symcon Connect Service: https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.ipmagic.de/hook/webgraph/?id=12345
Weitere Einstellungen können an die URL angehangen werden.
/hook/webgraph/?id=12345&startTime=&timeSpan=3&isHighDensity=1&isExtrema=&isDynamic=1&isContinuous=&width=0&height=0&showTitle=&showLegend=
### Statusvariablen und Profile
Es werden keine zusätzlichen Statusvariablen oder Profile erstellt. Es wird lediglich der WebHook "/hook/webgraph/" eingetragen.
### Visualisierung
Über die Visualisierung ist keine weitere Konfiguration ode Anzeige möglich.
---
# Wunderground Weather
> Symcon Dokumentation · Deutsch · erzeugt am 2026-09-26
> Index: https://www.symcon.de/de/llms.txt
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/wunderground-weather/
_Benötigt Symcon >= 4.2_
> **Achtung:** Dieses Modul ist veraltet und sollte nicht mehr verwendet werden.
Das Modul fragt über die Wunderground API Wetterdaten ab.
Dafür ist eine Registrierung auf [Wunderground](https://www.wunderground.com/) nötig, um einen API-Key zu erhalten.
Es können aktuelle Daten, Unwetterwarnungen, sowie stündliche als auch täglichen Vorhersagen abgefragt werden.
### Funktionsumfang
- De-/Aktivierbare Abfrage von gewünschten Wetterdaten.
- Einstellbarkeit der Menge der Unwetter, stündlichen und täglichen Daten.
- Timer für automatische Aktualisierung der Daten.
### Software-Installation
- Über den [Module Store](https://www.symcon.de/de/service/dokumentation/komponenten/verwaltungskonsole/module-store/) das Modul WundergroundWeather installieren.
### Einrichten der Instanzen in IP-Symcon
- Unter "Instanz hinzufügen" kann das 'WundergroundWeather'-Modul mithilfe des Schnellfilters gefunden werden.
- Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzuf%C3%BCgen)
#### Konfigurationsseite:
| Name | Beschreibung |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Standort | Standort, von dem die Daten entnommen werden sollen. Ob ein Standort verfügbar ist, kann auf der [wunderground.com](https://www.wunderground.com/) Seite ausprobiert werden. Sollte ein Standort nicht vorhanden sein, sollte ein nächstgelegener größerer Ort gewählt werden. |
| Land | Hier muss das Land eingetragen werden. |
| PWS-ID | ID der 'Personal Weatherstation' Hiermit kann man eine spezifische Wetterstation abfragen |
| API Key | Wunderground API-Key. Kann auf der Wunderground Homepage nach Registrierung angefordert werden. "More"->"Weather API for Developers". |
| Aktuelle Daten abfragen | Aktiviert die Abfrage der aktuellen Wetterdaten. |
| Stündliche Vorhersage | Aktiviert die Abfrage der stündlichen Vorhersage. |
| 12stündliche Vorhersage | Aktiviert die Abfrage der 12-stündlichen Vorhersage. |
| tägliche Vorhersage | Aktiviert die Abfrage der täglichen Vorhersage. |
| Unwetterwarnung abfragen | Aktiviert die Abfrage der Unwetter Vorhersage. |
| Anzahl Vorhersagen (12-stündlich) | Die Anzahl der 12-stündlichen Vorhersagen. Maximalwert: 8 |
| Anzahl Vorhersagen (täglich) | Die Anzahl der täglichen Vorhersagen. Maximalwert: 4 |
| Anzahl Vorhersagen (stündlich) | Die Anzahl der stündlichen Vorhersagen. Maximalwert: 24 |
| Anzahl Unwetterwarnung | Die Anzahl der Unwetter Vorhersagen. Maximalwert: 6 |
| Update Wetterdaten | Setzt den Timer in Minuten, wie oft die Wetterdaten aktualisiert werden sollen. (aktuell/stündlich/12-stündlich) |
| Update Unwetterwarnungen | Setzt den Timer in Minuten, wie oft die Unwetterwarnungen aktualisiert werden sollen. |
| Button Update Wetter | Aktualisiert die Wetterdaten (aktuell/stündlich/12-stündlich/täglich). Sofern alle drei Abfragen deaktiviert sind oder der Timer auf 0 gesetzt ist => Timer deaktiviert |
| Button Update Unwetterwarnungen | Aktualisiert die Unwetterwarnungen. Sofern die Unwetterwarnungsabfrage deaktiviert oder der Timer auf 0 gesetzt ist => Timer deaktiviert |
### Statusvariablen und Profile
Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
#### Aktuelle Wetterdaten
| Name | Typ | Beschreibung |
| ------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Luftdruck | Float | Angabe in hPa |
| Luftfeuchtigkeit | Float | Angabe in % |
| Niederschlag/h | Float | Angabe in Liter/m² |
| Niederschlag Tag | Float | Angabe in Liter/m² |
| Sichtweite | Float | Angabe in km |
| Sonnenstrahlung | Float | Angabe in W/m² |
| Temperatur | Float | Angabe in °C |
| Temperatur gefühlt | Float | Angabe in °C |
| Temperatur Taupunkt | Float | Angabe in °C |
| UV Strahlung | Integer | Informationen: [UVIndex Erklärung](https://www.wunderground.com/article/science/weather-explainers/news/uv-index-sunburn-skin-dangers) |
| Windböe | Float | Angabe in km/h |
| Windgeschwindigkeit | Float | Angabe in km/h |
| Windrichtung | Float | Angabe in Himmelsrichtungen |
#### Stündliche Vorhersage
Die Variablen werden mit 1..24h gekennzeichnet. (1 = Vorhersage nächste volle Stunde; 24 = Vorhersage der 24ten vollen Stunde)
| Name | Typ | Beschreibung |
| ----------------------- | ------- | ----------------------------------------------------- |
| Gegebenheit | String | Beschreibt das Wetter z.B. "Bedeckt", "Regen möglich" |
| Luftfeuchtigkeit | Float | Angabe in % |
| Luftdruck | Float | Angabe in hPa |
| Regenmenge | Float | Angabe in Liter/m² |
| Regenwahrscheinlichkeit | Integer | Angabe in % |
| Temperatur | Float | Angabe in °C |
| Wolkendecke | Integer | Angabe in % |
| Windgeschwindigkeit | Float | Angabe in km/h |
| Windrichtung | Float | Angabe in Himmelsrichtungen |
#### 12-stündliche Vorhersage
Die Variablen werden mit 12, 24..96h gekennzeichnet (12 = Vorhersage in 12 Stunden; 96 = Vorhersage in 96 Stunden)
**Hinweis: die 12h-stündliche Vorhersage wird von Wunderground nicht mehr geliefert. Die Variablen bleiben aus Kompatibilitätsgründen erhalten, enthalten aber die Werte der täglichen Vorhersage.**
| Name | Typ | Beschreibung |
| ---------------- | ----- | ------------ |
| Höchsttemperatur | Float | Angabe in °C |
| Tiefsttemperatur | Float | Angabe in °C |
#### Tägliche Vorhersage
Die Variablen werden mit 1..4d gekennzeichnet (1 = morgen; 2 = übermorgen ... )
| Name | Typ | Beschreibung |
| ----------------------- | ------- | ----------------------------------------------------- |
| Gegebenheit | String | Beschreibt das Wetter z.B. "Bedeckt", "Regen möglich" |
| Höchsttemperatur | Float | Angabe in °C |
| Tiefsttemperatur | Float | Angabe in °C |
| Luftfeuchtigkeit | Float | Angabe in % |
| Regenmenge | Float | Angabe in Liter/m² |
| Regenwahrscheinlichkeit | Integer | Angabe in % |
| Windgeschwindigkeit | Float | Angabe in km/h |
| Windrichtung | Float | Angabe in Himmelsrichtungen |
#### Unwetterwarnung
| Name | Typ | Beschreibung |
| ------------ | ------- | ------------------------------------------------------------------------------------------------------------- |
| Beschreibung | String | Beschreibt die Warnung mit möglichen weiteren Informationen wie z. B. Windgeschwindigkeiten oder Regenmengen. |
| Datum | Integer | Angabe in UnixTimeStamp. Datum wann die Warnung ausgesprochen wurde. |
| Name | String | Ausgeschriebener Typ. z.B. Gewitter |
| Typ | String | 3-Buchstabenkürzel für die Warnung [Übersicht](https://www.wunderground.com/weather/api/d/docs?d=data/alerts) |
#### Profile:
| Name | Typ |
| --------------------- | ------- |
| WGW.Rainfall | Float |
| WGW.Sunray | Float |
| WGW.Visibility | Float |
| WGW.WindSpeedkmh | Float |
| WGW.UVIndex | Integer |
| WGW.ProbabilityOfRain | Integer |
## WGW_UpdateStormWarningData
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/wunderground-weather/wgw-updatestormwarningdata/
`bool WGW_UpdateStormWarningData(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
WGW_UpdateStormWarningData(12345);
```
## WGW_UpdateWeatherData
Quelle: https://www.symcon.de/de/service/dokumentation/modulreferenz/legacy/wunderground-weather/wgw-updateweatherdata/
`bool WGW_UpdateWeatherData(int $InstanzID)`
_Benötigt Symcon >= 4.2_
**Parameter**
- `$InstanzID` (int): ID der Instanz
**Rückgabewert** (bool): Konnte der Befehl erfolgreich ausgeführt werden, liefert er als Ergebnis __TRUE__, andernfalls __FALSE__.
ID der Instanz
**Beispiel**
```text
WGW_UpdateWeatherData(12345);
```