13.07.2015 Aufrufe

Download - IP-Symcon

Download - IP-Symcon

Download - IP-Symcon

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Skripte wiederverwendenStelle Sie sich vor, Sie hätten eine Flurlicht-Steuerung, die auf allen Etagen gleich ist. Diese möchten Sie natürlich ungerndreimal programmieren.Sie könnten jetzt also dreimal Ihr Skript per Copy & Paste in die einzelnen Skripte kopieren, was für den Anfang aucheine gute Lösung ist. Wenn Sie damit aber irgendwie nicht so ganz glücklich sind und zu der Kategorie User gehören, dieRedundanz vermeiden wollen und/ oder ein System zum Code-Reusing zwischen Projekten brauchen, können Siefolgende Idee verwenden:Sie haben ein Skript mit dem Namen "Lichtsteuerung (xComfort, Flur, Bewegungsmelder, Helligkeitsregelung)". DerName sollte ausdrücken, was dieses tut und welche Systeme/ Geräte/ Stati es verwendet.Folgender Code könnte der Inhalt sein:if(!$_<strong>IP</strong>S['VALUE']) { //Wenn keine Bewegung - siehe Dokumentation für SpezialvariablenMXC_SwitchMode($lampenID, false);} else {if(!GetValueBoolean($istTag)) { //Nur nach Sonnenuntergangif((time() > strtotime("22:30")) || (time() < strtotime("06:00"))) {MXC_DimSet($lampenID, 15);} else {MXC_DimSet($lampenID, 50);}}}Dieses Skript muss von einem "Auslösenden Ereigniss" aufgerufen werden - hier normalerweise von einem/ mehrerenBewegungsmelder. Das Licht wird dann abhängig von der Tageszeit auf eine unterschiedliche Dimmstufe gestellt. Sobaldder Bewegungsmelder keine Bewegung mehr erkennt und den FALSE Impuls sendet, schaltet das Gerät ab.Sie habe nun die Logik ausgelagert und brauchen nur noch Skripte zu erstellen, die die fehlenden Variablen setzen undvon einem Ereignis aufgerufen werden. Nachfolgend ein Beispiel://Trigger durch Bewegungsmelder Variable!//Eindeutige Geräte-ID$lampenID = 53013 /*[Erdgeschoss\Flur\Deckenlampe]*/;//Tag/Nacht Variable$istTag = 31753 /*[IstTag]*/;includeScript(12345 /*[Szenarien\Lichtsteuerung (xComfort, Flur, Bewegungsmelder, Helligkeitsregelung)]*///Copy&Paste aus dem "Wie kann ich...?" Thema der Dokumentationfunction includeScript($scriptID){$s = <strong>IP</strong>S_GetScript($scriptID);include($s['ScriptFile']);}Sie können also "Funktionsvorlagen" erstellen und diese dann nur noch mit den nötigen IDs füttern. In diesen Skriptensind dann die IDs der Geräte/ Variablen, zu denen <strong>IP</strong>-<strong>Symcon</strong> aber immer vollständige und aussagekräftige Namenerstellt (sofern man seine Baumstruktur vernünftig erstellt hat).Bei Bedarf kann das Szenario auch für FS20 angepasst und dynamisch anhand der übergebenen InstanzID die richtigenFunktion aufgerufen oder die systemabhängigen Änderungen vorgenommen werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!