Alle Lichter aus - der einfache Weg

  • Author(en): Maik B.
  • Stand: Montag, 27 Januar 2014
  • Artikel:
Das WebUI bietet die Möglichkeit, sämtliche Sensoren und Aktoren einem oder mehreren Räumen bzw. Gewerken zuzuordnen. Gerade bei größeren Installation macht es Sinn, diese Zuordnungen auch zu nutzen, bieten sie doch bei der Steuerung (über das WebUI oder entsprechende Apps auf einem Smartphone) eine bessere Übersicht. Damit, und mit Hilfe des hier vorgestellten Skripts, kann man dann z.Bsp. auch alle Lichter im Haus auf einen Schlag ausschalten.
Das Skript holt sich dabei alle Aktoren, die dem Gewerk »Licht« zugeordnet sind. Hierbei ist zu beachten, dass sich kein anderes Objekt innerhalb der HomeMatic-Installation so nennt, da das Skript sonst nicht funktioniert. Über die »Find«-Funktion werden dann die gängisten Bezeichnungen für Aktoren und Dimmer überprüft, und mit der Eigenschaft »state« entsprechend ausgeschaltet.

Die eigentliche Ansteuerung realisiert man über ein Programm, das entweder per Hand - z.Bsp. über einen Wandtaster - oder per Zeitmodul ausgelöst wird, und im »Dann«-Abschnitt das nachfolgende Skript enthält:
var i = dom.GetObject("Licht");

string itemID;

foreach(itemID, i.EnumUsedIDs()) 
{
    var item = dom.GetObject(itemID);
    if (item.IsTypeOf(OT_CHANNEL)) 
    {
        var device = dom.GetObject(item.Device());
        if ((device.HssType().Find("HM-LC-Sw") >= 0) && (item.State())) { item.State(0); }
        if ((device.HssType().Find("HM-LC-Dim") >= 0) && (item.State())) { item.State(0.00); }
    }
}
Wichtiger Hinweis für den Einsatz auf einer CCU2:

Die CCU2 unterstützt als erste HomeMatic-Zentrale mehr als eine Sprache für die Benutzerführung. Diese Mehrsprachigkeit hat auch Einfluß auf die Namen von Räumen und Gewerken. Zwar wird bei Auslieferung das Gewerk "Licht" auch als solches dargestellt, intern über diesen Namen aber nicht gefunden.

Damit das Skript das Gewerk "Licht" finden kann, ist dieses zunächst umzubennen und anschließend wieder in "Licht" zu ändern.

Kommentare (8)

  • Herrenbauer

    Herrenbauer

    10 Oktober 2012 um 08:11
    Ich habe mal gelesen dass es Probleme gibt alle Befehle gleichzeitig zu senden. Ich lasse bei mir immer ca. 2-3 Sekunden Luft.
    Ist meine Info falsch ?

    antworten

  • ocrho

    ocrho

    01 Oktober 2013 um 21:34
    Wieso gibt es auch im Jahre 2013, also gut fünf Jahre nach dem Start von HomeMatic, immer noch keinen Befehl dafür? Die Skriptlösung ist gut, aber nicht mehr zeitgemäß.

    Die WebGUI müsste nur erlauben, dass man über die GUI auch eine Liste definieren kann und dort beliebig viele Geräte reinwerfen kann. Anschließend sagt man, dass alle Listeneinträge die Eigenschaft X haben sollen und priorisiert sollten zuerst die Geräte geändert werden, welche noch nicht den Zielzustand haben. Zuletzt sollte die CCU auch die übersprungenen Geräte umstellen (Sicherheitshalber).

    Gerade die Abfrage des Gerätestatus ist wichtig, weil das HomeMatic-Protokoll wird durch die BNetzA-Vorgabe ausgebremst dass nur so eine sehr begrenzte Zeit pro Sekunde senden darf, damit andere Nutzer ebenfalls im gleichen Frequenzband auch noch zum Zuge kommen. Nur wenn der Gerätestatus durch die CCU bekannt ist und dann entsprechend priorisiert Geräte die schon den Zielzustand haben übersprungen werden, kann dieser Laufzeitnachteil vermieden werden.

    Der Vorteil dieses Vorgehens ist, dass damit die zuerst mit hoher Wahrscheinlichkeit das Licht etc. ausgeht und nicht Wartesekunden vertrödelt werden mit Geräten die schon im Zielzustand sind und dann für die Benutzer scheinbar nichts passiert nach dem Knopfdruck.

    antworten

  • Kofl

    Kofl

    17 November 2013 um 17:33
    Wichtig für die CCU2:

    im WebUI wird zwar als Gewerk-Name "Licht" angezeigt, so heisst es aber gar nicht. Benenn das Gewerk mal um.
    Referenz: http://homematic-forum.de/forum/viewtopic.php?f=26&t=14579

    antworten

  • HomeMatic-INSIDE

    HomeMatic-INSIDE

    18 November 2013 um 10:48
    Ich habe diese Info mal direkt in den Artikel aufgenommen - Danke.

    antworten

    • Gonzalo Jacob

      Gonzalo Jacob

      31 Dezember 2016 um 15:33
      Hallo, Admin !
      vielleicht können Sie mir helfen, Ich habe keine Ahnung, wie ich einen Anwesenheitsimulator zum Ein- und Ausschalten der im CCU-2 gebundenen Schalter hinkriegen kann.
      Gibt es so ein fertiges Skript ?
      Vielen Dank im Voraus.
      Gon

      antworten

  • Eckart Köhler

    Eckart Köhler

    21 Oktober 2014 um 15:11
    Dieses Skript ist überflüssig, dafür gibt es die internen "virtuelle Fernbedienung"-Kanäle. Ich habe leider im Moment keinen Zugriff auf meine CCU, aber wenn ich mich recht erinnere geht das über Direktverknüpfungen, "Neue Verknüpfung", unten "Virtuelle Kanäle anzeigen" klicken. Einen freien virtuellen Kanal aussuchen, alle Lampen verküpfen und diesen Kanal mit irgendeinem Taster oder Programm ansteuern. Es können sehr viele Aktoren angeschlossen werden, da ein besonders sparsames Protokoll verwendet wird, das den Funkverkehr wenig belastet, Ich habe so menen "Gute Nacht"-Schalter realisiert, der diverse Geräte, Lampen, Heizungsteuerung, Rolläden, Türschlösser etc. in den Nachtzustand befördert. Zur Zeit ca. 15 Geräte.

    antworten

  • Rhadamanthys

    Rhadamanthys

    07 November 2014 um 13:44
    Jein.
    Das Script hat den Vorteil, daß alles im Gewerk erfasst wird, ohne daß man extra Programme pflegen muß. Nachteilig erscheint mir der "Rundschlagcharakter"; also mehr was für den Urlaub, wenn man nicht mehr sicher ist ob alles aus ist. Ich frage mich auch, ob die CCU selbst für einen geordneten Ablauf sorgt oder ob ein Schnelldurchlauf der Schleife zu Kollisionen im Funkkanal führt.

    Der Vorschlag von ocrho ergäbe insbesondere dann Sinn, wenn das Funkprotokoll Adressgruppen unterstützte und die Geräte das auch verstünden. Dann müßte die CCU nur ein einziges Telgramm senden, um alle Gruppenmitglieder anzusprechen. Das scheint aber nicht im Konzept vorgesehen zu sein
    Ich habe auch die Lösung von Eckart Köhler gewählt, weil ich 1. die Reihenfolge bestimmen und 2. nicht auf einen Schlag im Dunkeln stehen will.

    antworten

  • Ingo Hartmann

    Ingo Hartmann

    28 Mai 2015 um 22:11
    HALLO & DANKE
    für dieses tolle Script!

    Ich habe noch eine Frage:
    kann man auf diese Weise auch alle Lichter eines Gewerkes einschalten?

    Gruß

    antworten

Einen eigenen Kommentar verfassen

Du musst auf dieser Seite angemeldet sein, um einen Kommentar für diesen Artikel verfassen zu können.
Soll es schnell gehen? Dann melde Dich jetzt einfach über Dein soziales Netzwerk an:

Kommentare // TecBase

Ralph Punga-Kronbergs

Ralph Punga-Kronbergs

10. April, 2017 |

Kurze Frage: In welchem Wertebereich (Min/Max) befindet sich der Wert der Variable _RANDOM_ nach Generierung?

Gonzalo Jacob

Gonzalo Jacob

31. Dezember, 2016 |

Hallo, Admin !
vielleicht können Sie mir helfen, Ich habe keine Ahnung, wie ich einen Anwesenheitsimulator zum Ein- und Ausschalten...