Mit diesem WebUI-Programm kann mit einem einzelnen Tastendruck das Licht im ganzen Haus ausgeschaltet oder auch die Fenster geschlossen werden
![]()
Abends im Bett oder vor Verlassen des Hauses reicht dank der HomeMatic ein einziger Tastendruck, um im ganzen Haus das Licht auszuschalten. Genau dafür hat man eine CCU!
Das gesamte Programm ist sehr einfach und damit auch für Anfänger leicht verständlich.

In der WebUI wird ein Programm erstellt, das bei Tastendruck ein Script ausführt.
Um das folgende Script einzufügen, bitte komplett markieren, in der WebUI auf den den Button "Script" klicken und den gesamten Text einfügen. Nachdem das Script eingefügt wurde, sieht man wie in meinem Screenshot oben den Anfang des Codes.
string l = dom.GetObject("Licht").EnumUsedIDs();
string i;
object o;
foreach (i, l) {
o = dom.GetObject(i);
if ((o.HssType() == "SWITCH") && (o.DPs().GetAt(0).Value())) {
o.State(false);
}
if ((o.HssType() == "DIMMER") && (o.DPs().GetAt(0).Value() > 0)) {
o.State (0.0);
}
}
Das Programm geht alle Kanäle durch, die dem Gewerk "Licht" zugeordnet sind. Alle Geräte, die entweder ein Schaltaktor (Switch) oder ein Dimmer sind, werden ausgeschaltet, wenn sie nicht schon aus sind. Das war's.
Damit das Programm funktioniert, muss natürlich das Gewerk "Licht" vorhanden und die Kanäle korrekt zugeordnet sein. Ist die Beleuchtung in einem anderen Gewerk, kann das Script entsprechend angepasst werden.
Mit wenigen Handgriffen kann man aus dem Licht-aus-Script ein Licht-an-Script machen.
string l = dom.GetObject("Licht").EnumUsedIDs();
string i;
object o;
foreach (i, l) {
o = dom.GetObject(i);
if ((o.HssType() == "SWITCH") && (!o.DPs().GetAt(0).Value())) {
o.State(true);
}
if ((o.HssType() == "DIMMER") && (o.DPs().GetAt(0).Value() == 0)) {
o.State (1.0);
}
}
Auch hier wird das Gewerk der Reihe nach abgearbeitet. Bei Schaltaktoren wird auf false geprüft, bei Dimmern auf 0. In beiden Fällen wird dann jeweils das betreffende Objekt eingeschaltet.
Das Script kann leicht für andere Gewerke und andere Funktionen angepasst werden. Hier ist zum Beispiel die Variante, um alle Fenster im Haus zu schließen.
string s_fenster;
object o_fenster;
foreach (s_fenster, dom.GetObject("Fenster").EnumUsedIDs()) {
o_fenster = dom.GetObject (s_fenster);
if (o_fenster.HssType() == "WINMATIC") {
if (o_fenster.DPByHssDP("LEVEL").Value() >= 0) {
o_fenster.DPByHssDP("SPEED").State (0.25);
o_fenster.DPByHssDP("LEVEL").State (-0.05);
}
}
}
Das Programm bearbeitet alle Objekte im Gewerk "Fenster". Wenn es sich um eine WinMatic handelt, wird der aktuelle Öffnungswinkel geprüft. Ist das Fenster nicht verriegelt (also Öffnungswinkel kleiner als 1), wird eine niedrige Geschwindigkeit gewählt und das Fenster geschlossen.