Heute mochte ich Euch einen Quicktipp zum Schalten mehrere Aktoren über einen Taster geben. Hier kurz die Beschreibung des Aufbaus: Ihr hat zwei Lampen, die über zwei unabhängige Aktoren parallel geschaltet werden sollen. Für beide Aktoren habt Ihr eine Direktverknüpfung angelegt, die jeweils das Licht schaltet. Wenn nun der Taster betätigt wird, werden auch beide Lichter parallel eingeschaltet. Wenn jetzt aber ein Licht manuell z.B. per Pocket Control ausgeschaltet wird und im Anschluss der Taster erneut betätigt wird zu einem ungewünschten Verhalten. Das geschaltete Licht erlischt und das inaktive Licht geht an. So ist der Aufbau nun „aus dem Takt“ erst wenn erneut ein Verbraucher manuell wieder per App geschaltet wird, laufen beide Verbraucher wieder parallel. Um dieses Problem zu lösen gibt es eine sehr einfache und auch effektive Möglichkeit. Hier nutzen wir eine Systemvariable. Das Vorgehen habe ich Euch hier kurz zusammengefasst.

Zuerst müssen die zuvor angelegten Direktverknüpfungen gelöscht werden. Danach legen wir eine neue Systemvariable an. In meinem Beispiel sollen zwei Lichter in der Küche immer zusammen mit einem Taster geschaltet werden. Hier nun die neue Systemvariable:

Die Variable habe ich „Licht Küche an“ genannt und die Zustände mit „an“ und „aus“ deklariert.

Nun erzeugen wir unser kleines Programm um die Lichter zu schalten:

Dieses Programm dient dazu, dass die Lichter immer parallel laufen. Bevor der Schaltzustand geändert wird, wird geprüft, in welchem Zustand sich das Licht befindet. Wenn die Variabel auf „aus“ steht, dann werden alle Lichter, die in der „Dann…Schleife“ integriert sind in den Schaltzustand „aus“ verseht. In der zweiten Schleife „Sonst, wenn..“ ist es genau umgekehrt. Hier werden die Lichter bei einem Wechsel der Variable in den Zustand „an“ ebenfalls eingeschaltet.

Ihr könnt dies nun testen, indem Ihr die Variabel per WebUI verändert. Sobald sich der Zustand der Variable ändert, wird auch das Licht geschaltet. Nun wollen wir diese Variabel mit unserem Schalter bzw. Taster verbinden. Dazu legen wir ein weiteres kleinen Programm an, was dann so aussieht:

Dieses Programm dient nun dazu, die Variable mit dem Taster zu steuern. Hier gibt es ebenfalls zwei Schleifen, die zuerst überprüfen, in welchem Zustand sich die Variabel befindet. So wird diese bei einer Betätigung immer in den gegengesetzten Zustand geschaltet. Man kann auch sagen, dass die Variabel bei einem Tastendruck immer getoggelt wird.

Damit fangen wir jeden manuellen Eingriff ab. Wenn der Zustand z.B. über ein anderes Programm oder über die Handy-App geändert wird, wird beim drücken des Tasters das Licht trotzdem direkt ein- bzw. ausgeschaltet.

Das ist dann doch ein etwas längerer Quicktipp geworden, doch ich denke, dass dieses Problem bei vielen relevant ist ;-)

4 Kommentare
  1. Avatar
    Christian sagte:

    Guten Abend,
    allerdings funktioniert das Licht ja dann nur noch mit einer Zentrale. Unser Haus ist komplett mit Homatic Wired ausgestattet, hier würde ich mich nicht trauen die Grundfunktionen über die CCU3 laufen zu lassen, wenn da mal ein update schief geht…

    Antworten
    • Sebastian
      Sebastian sagte:

      …wenn es sich um einfache Schaltfunktionen handelt, sollten natürlich immer Direktverknüpfung verwendet werden. Diese werden dann auch ohne ccu ausgeführt. Sobald es aber komplexer werden soll, führt kein Weg mehr an Programmen, die in der Zentrale ablaufen, vorbei.

      Antworten
      • Avatar
        Christian sagte:

        Hallo Sebastian,
        erstmal möchte ich Eicj für Eure Arbeit loben, Eure Webseite ist super und ich verfolge Eure Beitrage regelmäßig.

        Was du schreibst stimmt, ich frage mich gerade ob man das nicht lösen kann, ohne die direktverknüpfung zu löschen? Also Quasi über Systemvariablen bei jedem Tastendruck die Lampen wieder synchronisiert. Man müsste sich merkwn welche Lampe den Status ohne den Taster geändert hat und diese im Script wieder korigieren. Geht denke icj genauso woe du beschrieben hast.

        Mal was anderes, ich habe einen Rollladen der sich Abends gerne mal selbständig rauf fährt, gibt es irgendeinen weg den Auslöser in der CCU zu sehen?

        Danke und Gruß
        Christian

        Antworten
        • Sebastian
          Sebastian sagte:

          Zu deiner 2. Frage eine schnelle Antwort: nutz mal Dir Protokoll-Funktion da kannst du schnell identifizieren was der Auslöser ist

          Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere die Speicherung der Daten.