Die CCU* übermittelt leider nur den Status eines Kanals, wenn er sich ändert. Wird er nur aktualisiert, also ein zweites mal „An“ geschaltet, so wird kein Event gefeuert. Für eine einfache Szenensteuerung möchte ich bei einem Druck auf die (internen) Taster des Unterputz-Dimmaktors HmIP-BDT* auch ein Event bekommen, wenn er nur aktualisiert wird.
Die Szenensteuerung soll dabei so funktionieren, dass ich bei einem bestimmten Tastendruck einen gespeicherten Zustand abfrage und so eine Szene weiterschalte. Dank der vielen virtuellen Kanäle kannst Du einen Workaround nutzen, den ich Dir nachfolgend vorstelle.
Inhalt
Voraussetzungen
- Das Beispiel verwendet einen Dimmaktor mit virtuellen Kanälen, konkret den Dimmaktor HmIP-BDT*. Du benötigst einen freien virtueller Kanal.
- Der Aktor soll in der RedMatic abgefragt werden, also muss auch RedMatic eingerichtet sein. Wie das geht, kannst Du im Artikel „RedMatic auf der RaspberryMatic installieren“ sehen.
Einrichtung des Workarounds
Der Workaround nutzt einen freien virtuellen Kanal, der wiederum durch NodeRED abgefragt werden kann. Bei mir ist es der virtuelle Kanal 6. Dabei mache ich mir die Eigenschaft des Dimmers zu nutze, unterschiedliche (Dimm-)Werte setzen zu können. Für einen Tastendruck auf „Ein“ setze ich den Wert des virtuellen Kanals auf einen willkürlichen Wert größer 0, ich nehme 80%. Ebenso verfahre ich mit dem Tastendruck auf „Aus„, der den Wert des virtuellen Kanals auf 20% setzt. Nach einer Zeitspanne, die ausreichend groß ist, damit NodeRED die Änderung mitbekommt, lasse ich den Wert zurücksetzen. Würde ich 0% für „Aus“ (respektive 100% für „Ein„) einsetzen, so würde bei nochmaligem Druck auf die selbe Taste der virtuelle Kanal nicht aktualisiert – er ist ja bereits beim Zielwert. Erst wenn sich der Wert auch ändert, wird der virtuelle Kanal auch gesetzt.
Direktverknüpfung und Einstellungen im Gerät
Ich nutze zwei Direktverknüpfungen, um etwas anderes als die am Aktor angeschlossene Lampe zu steuern. Je nach Anwendungszweck reicht Dir ggf. auch eine aus.
- Mit der Taste „Ein“ (Kanal 1) wird der virtuelle Kanal 6 für zwei Sekunden auf 80% gesetzt.
- Mit der Taste „Aus“ (Kanal 2) wird der virtuelle Kanal 6 für zwei Sekunden auf 20% gesetzt.
- Am virtuellen Kanal legst Du zudem noch im Gerät fest, dass dieser nicht mit den vorherigen Regeln verknüpft werden soll.
Abfrage in NodeRED
In NodeRED kannst Du nun den „Tastendruck“ auswerten. Das untenstehende Beispiel setzt mein Heizkörperthermostat temporär auf einen festen Wert. Im Wohnzimmer schalte ich so verschiedene Beleuchtungsszenen. Ich bin mir sicher, dass Dir noch viel mehr Anwendungsmöglichkeiten einfallen.
Kennst Du eine andere Möglichkeit, hast Verbesserungsvorschläge oder Anmerkungen?
Updates
- 16.04.2021: Überarbeitung Einleitung