# 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](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: ![Objekt hinzufügen im Objektbaum](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/objekt-hinzufuegen/d4d178ceca-1790424938/objekt-hinzufuegen-objektbaum.png) 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ü: ![Objekt hinzufügen mithilfe des Kontextmenüs](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/objekt-hinzufuegen/05edd2a7f2-1790424938/objekt-hinzufuegen-kontextmenue.png) ## 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. ![KNX Gerät austauschen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-austauschen/5c50737220-1790424938/knx-geraettauschen.png) 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. ![Homematic Gerät austauschen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-austauschen/3e79d9fb35-1790424938/homematic-konfiguration-geraeteaustauschen.png) 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. ![OneWire Gerät austauschen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-austauschen/9e063ddec7-1790424938/onewire-geraettauschen.png) 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. ![Z-Wave Gerät austauschen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-austauschen/9a593c136d-1790424938/zwave-geraettauschen.png) 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](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](modules/digitalstrom.md) * [Eaton xComfort](modules/xcomfort.md) * [KNX](modules/knx.md) * [HomeMatic](modules/homematic.md) * [LCN](modules/lcn.md) * [MQTT](modules/mqtt.md) * [Siemens OZW](modules/siemens-ozw.md) * [Z-Wave](modules/z-wave.md) * [1-Wire](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](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](concepts.md) der jeweiligen Systeme gesucht werden. ### Beispiele Das folgende Beispiel zeigt die empfangenen Geräte des HomeMatic Systems: ![HM: suchen-gefunden](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-suchen/82c2ebdaec-1790424938/hm-suchen-gefunden.png) > **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: ![HM: suchen Variablen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-suchen/c38362cfec-1790424938/hm-suchen-variablen.png) 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: ![HM: suchen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/geraete-suchen/9a9c5b0075-1790424938/hm-suchen.png) > **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](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. ![Ereigniskonfiguration](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/systeme-verbinden-ueber-ereignisse/7ae8d4ba44-1790424938/systemeverbindenereignisse-konfigereignis.png) 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. ![Objektbaum](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/systeme-verbinden-ueber-ereignisse/b6c5cc13ca-1790424938/systemeverbindenereignisse-objektbaum.png) ## 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](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](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](concepts.md) erstellt wurde). Bei Bedarf kann das Skript auch für andere Systeme angepasst und dynamisch anhand der [übergebenen InstanzID](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](components/webfront-visualization.md) werden. Ist dies geschehen, kann ein beliebiges Passwort in der [Sicherheit des WebFronts](components/webfront-visualization.md) eingerichtet werden. Im zweiten WebFront muss über den [Editor](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. ![WebFront im Editor einrichten](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/passwort-geschuetztes-webfront/92c3e2b82e-1790424938/gesichertekategorie-webfrontkonfig.png) Der Aufruf der Externen Seite sieht dann wiefolgt aus. ![WebFront mit externer Seite](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/passwort-geschuetztes-webfront/6166d27a53-1790424938/gesichertekategorie-webfrontfertig.png) ## Links verwenden Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/links-verwenden/ Im folgenden Beispiel wird dem Prinzip der [Links](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. ![Visualisierung](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/links-verwenden/58da026b05-1790424938/linksverwenden-visualisierung.png) 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. ![Kontextmenü](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/links-verwenden/a2de0470ea-1790424938/linksverwenden-kontextmenue.png) 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](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](concepts.md) benötigt. Ein Beispiel ist unter "[Links verwenden](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](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](functions/index.md)/[Modulreferenz](modules/index.md), wenn Sie die genaue Funktionsweise verstehen wollen. [... ein Gerät einschalten und nach 60 Sekunden wieder aussschalten](how-to.md) [... eine Liste der Modulnamen samt GUID bekommen](how-to.md) [... eine Instanz aus PHP konfigurieren](how-to.md) [... die Anzahl der Sekunden herausfinden, die ein ScriptTimer noch abwartet](how-to.md) [... ein Skript per ID direkt includen](how-to.md) [... UpdateTime in einer eigenen String Variable ausgeben (1 Skript - n Variablen)](how-to.md) [... aus PHP einen Timer & Variable anlegen](how-to.md) [... eine Datei aus dem Internet herunterladen](how-to.md) [... einen Ordner rekursiv in die MediaPlayer Playlist laden](how-to.md) [... ein Variablenprofil exportieren](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. ![CSV Export](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/21860e14ac-1790424938/csvexcel-csvexport.png) #### 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. ![Einfügen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/d3e1d1d038-1790424938/csvexcel-einfuegen.png) #### 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. ![Text in Spalten](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/63313e31d7-1790424938/csvexcel-textinspalten.png) #### Schritt 4 - Dialog Der Dialog verläuft in 3 Schritten. ![Dialogschritt 1](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/826a9be282-1790424938/csvexcel-dialog1.png) "Weiter" klicken. ![Dialogschritt 2](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/15fb0bdc6a-1790424938/csvexcel-dialog2.png) Semikolon auswählen, da die Datensätze durch dieses getrennt werden. "Weiter" klicken. ![Dialogschritt 3](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/db14c45fe7-1790424938/csvexcel-dialog3.png) "Fertig stellen" klicken. #### Ergebnis So sollte die Tabelle dann aussehen. ![Ergebnis](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/csv-daten-aus-webfront-speichern/c829898a41-1790424938/csvexcel-ergebnis.png) ## 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. ![Verbindung zum Server](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/600e64f15e-1790424938/ftp-serververbindung.png) 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. ![Gruppe editieren](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/a54204aed0-1790424938/ftp-gruppe-editieren.png) ![Gruppe hinzufügen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/351db9ab50-1790424938/ftp-gruppe-hinzufuegen.png) ![Gruppenname auswählen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/b67d49ce4c-1790424938/ftp-gruppe-name.png) 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. ![Geteilte Ordner hinzufügen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/47e3b91f1f-1790424938/ftp-gruppe-ordner.png) ![Ordner auswählen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/bdcec6b5c9-1790424938/ftp-gruppe-ordnerauswahl.png) 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. ![Rechte konfigurieren](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/377142e6ae-1790424938/ftp-gruppe-ordnereinstellungen.png) Nachdem ein gemeinsamer Ordner ausgewählt wurde können die Zugriffsrechte eingestellt werden. Standardmäßig ist nur Lesen und nicht Schreiben erlaubt. #### Benutzer anlegen ![Benutzer editieren](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/766708f4c7-1790424938/ftp-benutzer-editieren.png) ![Benutzer hinzufuegen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/5511883b61-1790424938/ftp-benutzer-hinzufuegen.png) ![Wähle Benutzername und Gruppe](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/e935e74fc0-1790424938/ftp-benutzer-namen-gruppe.png) 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. ![Passwort setzen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/ftp-benutzen/9a2284feee-1790424938/ftp-benutzer-passwort.png) 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](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. ![Gateway Konfigurationsseite](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/io-eines-gateways-austauschen/e75cc5940f-1790424938/io-austauschen-gateway.png) ![I/O Austausch Menü](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/io-eines-gateways-austauschen/d1d1cc53ff-1790424938/io-austauschen-iotausch.png) ## Email Benachrichtigung Quelle: https://www.symcon.de/de/service/dokumentation/vorgehensweisen/email-benachrichtigung/ IP-Symcon beinhaltet die Möglichkeit E-Mails via [SMTP-Instanz](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](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](components/management-console.md) der [Verwaltungskonsole](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. ![SMTP hinzufügen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/fd70761349-1790424938/emailbenachrichtigung-smtpadd.png) Innerhalb der Konfigurationsseite "E-Mail, Send (SMTP)" müssen die persönlichen Zugangsdaten eintragen werden. ![SMTP Konfigurationsseite](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/ffd14d8b86-1790424938/emailbenachrichtigung-smtpconfig.png) "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](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](components/management-console.md) der [Verwaltungskonsole](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. ![Zyklisches Ereignis hinzufügen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/10551167c5-1790424938/emailbenachrichtigung-periodiceventadd.png) 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. ![Ereignis konfigurieren](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/40387e047f-1790424938/emailbenachrichtigung-periodiceventconfig.png) 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](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](components/management-console.md) der [Verwaltungskonsole](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. ![Variable erstellen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/3846586585-1790424938/emailbenachrichtigung-variableadd.png) 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. ![Ausgelöstes Ereignis hinzufügen](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/6a7e8d931d-1790424938/emailbenachrichtigung-triggereventadd.png) “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. ![Ereignis konfigurieren](https://www.symcon.de/media/pages/service/dokumentation/vorgehensweisen/email-benachrichtigung/df94204496-1790424938/emailbenachrichtigung-triggereventconfig.png) 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.