Wenn eine Lampe ausgeschaltet ist, schaltet das Ändern der Helligkeit die Lampe ein. Gibt es eine Möglichkeit, die Lampe ausgeschaltet zu lassen, während die Helligkeitseinstellung gespeichert bleibt? (Vielleicht in z2m?)
Hallo @Chris75,
Dieses Verhalten kommt nicht von Gladys, sondern von Zigbee selbst. Wenn man die Helligkeit ändert, wird der Befehl « Move to Level (with On/Off) » gesendet, der die Lampe nach Design einschaltet. Die meisten Lampen können ihren Helligkeitspegel nicht ändern, ohne eingeschaltet zu sein.
Zwei Ansätze bei Zigbee2MQTT, falls deine Lampe sie unterstützt. Gehe zu Z2M, wähle das Gerät aus und schaue, ob es einen Block level_config in den Exposes gibt:
on_level: Dies ist der Helligkeitspegel, der beim nächsten Einschalten der Lampe angewendet wird. Genau das, was du suchst, du speicherst die Helligkeit, ohne die Lampe einzuschalten.execute_if_off: Erlaubt das Senden einer Helligkeitsänderung ohne die Lampe einzuschalten. Die Unterstützung hängt stark vom Firmware ab, manche Lampen ignorieren dies komplett.
Es gibt auch current_level_startup, falls dein Bedarf eher darin besteht, den Helligkeitspegel nach einem Stromausfall festzulegen.
Wenn das Endziel einfach ist, dass die Lampe in einem bestimmten Fall mit der richtigen Helligkeit eingeschaltet wird, ist es am einfachsten, die Aktion « Helligkeit ändern » direkt in die Szene zu stellen, die die Lampe einschaltet. Es ist nicht nötig, etwas vorher zu speichern, die Lampe wird auf den gewünschten Helligkeitspegel eingeschaltet.
Eigentlich habe ich die folgende Lösung gefunden: Ich habe einen Tag/Nacht-Modus (Ein/Aus) in einem Widget mit einer allgemeinen Helligkeitseinstellung für die Nacht (virtuelle MQTT-Variable) erstellt. Dadurch muss ich die Helligkeit in jeder betroffenen Szene nicht ändern, da die Lampe mit dem in dem Nachtmodus definierten Helligkeitsniveau eingeschaltet wird.
Aber es gibt tatsächlich eine andere Möglichkeit mit den folgenden Exposés:
aber ich vermute, dass sie nicht in Gladys übernommen werden und ich Node-RED verwenden muss?
Hallo @Chris75,
Deine Tag-/Nacht-Modus-Lösung ist sehr gut, sie ist sogar oft lesbarer als eine versteckte Einstellung in der Lampe: Du siehst auf einen Blick, in welchem Zustand du bist, und es funktioniert genauso für alle deine Lampen, unabhängig von der Marke. Wenn es dir gefällt, behalte sie bei ![]()
Um auf deine Frage zu antworten: Du hast Recht, diese Exposes werden nicht in Gladys übernommen. Der Zigbee2MQTT-Dienst konvertiert die Exposes in Gladys-Funktionen über eine explizite Zuordnung (state, brightness, color_temp, Temperatur, Luftfeuchtigkeit, usw.), und alles, was außerhalb dieser Liste liegt, wird ignoriert. level_config gehört dazu: Es ist ein zusammengesetzter Parameterobjekt, und heute verwaltet Gladys nur die zusammengesetzten Objekte für die Farbe.
Allerdings brauchst du keinen Node-RED. Zwei Optionen:
1. Das Einfachste: Einmal in der Zigbee2MQTT-Oberfläche einstellen. Diese Werte werden in der Lampe selbst gespeichert, nicht in z2m. Du gehst zum Tab Exposes deiner Lampe in der Z2M-Benutzeroberfläche, du setzt deinen on_level (oder du aktivierst execute_if_off), und das war’s: Gladys muss nichts wissen, das Verhalten ändert sich für alle, einschließlich deiner bestehenden Szenen.
2. Wenn du es dynamisch ändern möchtest (typischerweise: on_level je nach Tag-/Nacht-Modus umschalten), gibt es eine dedizierte Szenenaktion in Gladys: Zigbee2MQTT → MQTT-Nachricht senden. Du setzt:
- Topic:
zigbee2mqtt/name_deiner_lampe/set - Nachricht:
{"level_config": {"on_level": 50}}
Und es geht direkt über die MQTT-Verbindung von Gladys, ohne zusätzliche Abhängigkeiten. Die Nachricht akzeptiert Handlebars-Variablen, sodass du sogar einen Wert aus einer anderen Szene in der Szene injizieren kannst.
Zwei Warnungen zu diesen Attributen: execute_if_off und on_level sind optional in der Zigbee-Spezifikation, nicht alle Lampen implementieren sie (und einige akzeptieren sie, ohne sie anzuwenden). Die Tatsache, dass z2m sie in den Exposes anzeigt, ist ein gutes Zeichen, aber keine Garantie: Teste, bevor du deine gesamte Logik darauf aufbaust.
Danach, wenn mehrere Personen diesen Bedarf haben, können wir die Unterstützung von level_config im Zigbee2MQTT-Dienst problemlos hinzufügen. Die eigentliche Frage ist, wie man sie auf Gladys-Seite exponiert: Es ist ein Konfigurationsparameter des Geräts, eher als ein Wert, der täglich gesteuert wird, und es passt nicht natürlich in die aktuellen Kategorien von Funktionen.
