Z2M - Gerät wird in HA nicht vollständig unterstützt Lösung: Template - number)

Hallo,

ich habe ein LED Treiber für einfarbige LED eingerichtet, Das Gerät wird in Z2M erfasst, und vollständig unterstützt. Als Steuerungsmöglichkeiten habe ich den Status, Helligkeit, Do not Disturb und einen Effekt.

In HA wird mir nur der Status und Do not Disturb angezeigt. Der Effect ist als versteckte Entität da, und die Helligkeit fehlt leider komplett.

Was müsste gemacht werden, um das Gerät vollständig sichtbar zu machen?
Liegt das an der HA Integration von Z2M oder muss auf der HA Seite selbst etwas dafür angepasst werden?

Da bin ich noch nicht so firm,

Danke und Gruß
Christian

Kannst du mal einen Screenshot von dem Gerät unter Entwicklerwerkzeuge - Zustände machen? Gibt es evtl. mehrere Entitäten zu diesem Gerät?

Edit:
Du kannst auch mal versuchen unter Entwicklerwerkzeuge - Dienste den Dienst light.turn_on (Licht: Einschalten) auszuwählen. Dort dann die LED auswählen und dann mit der Helligkeit spielen. Funktioniert das?

Ansicht in X2M:

Ansicht in den Entitäten

Im Log von Z2M erscheint beim schalten folgender Eintrag:

MQTT publish: topic ‘zigbee2mqtt/0_3_Hobbyraum_LED_X1C’, payload ‘{“brightness”:22,“do_not_disturb”:true,“linkquality”:160,“state”:“ON”}’

Dort wird also der Brightness Wert mitgegeben.

Gruß
Christian

Nachtrag:

Jetzt wird bei den Entitäten der brightness Wert mit angezeigt, allerdings eben nicht als eigene Entität

Nein Brightness ist nur ein Attribut. Daher wollte ich den Screenshot sehen. Sollte aber beim Schalten bzw. Auswählen der Helligkeit innerhalb der Entität funktionieren.

Geh mal unter Entwicklerwerkzeuge - Vorlage (Template) und kopiere dir folgendes rein
{{ state_attr('light.0_3_hobbyraum_led_x1c', 'brightness') }}
Wenn die LED an ist, sollte dann dort ein Wert erscheinen.

Hallo, da wird der Wert angezeigt, das ist schon mal fein.
Jetzt habe ich daraus einen Template Sensor erstellt, den ich aber nicht bedienen kann, weil Sensor.

Besser wäre es, es würde ein Regler/Schieber geben. Dann muss es ein Number Template.
Da wäre erstmal auch kein Problem, aber für die notwendige “set_value” Aktion fehlt mir aktuell die Idee

number:
- name: 0_3_Hobbyraum_LED_Helligkeit
  step: "5"
  unique_id: "0_3_Hobbyraum_LED_Helligkeit"
  state: "{{ state_attr('light.0_3_hobbyraum_led_x1c', 'brightness') }}"
  set_value: {}

Wenn ich das richtig sehe müsste ich einen MQTT Request absetzen, der den Brightness-Wert ändert.

Da werde ich wohl noch recherchieren müssen.

Gruß
Christian

Was willst du erreichen?

Wenn es nur um einen Schiebregler im Dashboard geht, geht das z. B. über die Entitäten-Karte. Wenn du auf die Entität klickst, erscheint ein Popup mit Schiebregler etc.

ja genau, ein Schieberegler würde schon ausreichen, dann ist die Helligkeit ja steuerbar.

Beim Code nicht wundern, das steht in einem Verzeichnis für Templates als eigene Datei, habe ich so konfiguriert, um gleich aufgeräumt zu starten.

number:
- name: 0_3_Hobbyraum_LED_X1C_Helligkeit
  step: "5"
  unique_id: "0_3_Hobbyraum_LED_X1C_Helligkeit"
  state: "{{ state_attr('light.0_3_hobbyraum_led_x1c', 'brightness') }}"
  set_value:
    - alias: "LED dimmen"
      service: mqtt.publish
      data:
        topic: zigbee2mqtt/0_3_Hobbyraum_LED_X1C/set
        payload: '{"brightness":"{{states("number.0_3_Hobbyraum_LED_X1C_Helligkeit")| int}}"}'

Das scheint jetzt nur ein Zirkelbezug zu sein, denn es wird jetzt immer der Wert 50 gesendet, und nicht der Wert, den ich in der Oberfläche gesetzt habe. 50 Ist de aktuelle Wert, der von Z2M an HA gesendet wird.

mit payload:'{"brightness":"50"} wird der Wert korrekt auf 50% gesetzt.

Und hier jetzt das Ergebnis, falls einer mal was ähnliches hat:

number:
- name: 0_3_Hobbyraum_LED_X1C_Helligkeit
  step: "5"
  unique_id: "0_3_Hobbyraum_LED_X1C_Helligkeit"
  state: "{{ state_attr('light.0_3_hobbyraum_led_x1c', 'brightness') }}"
  set_value:
    - alias: "LED dimmen"
      service: mqtt.publish
      data:
        topic: zigbee2mqtt/0_3_Hobbyraum_LED_X1C/set
        payload: '{"brightness":"{{value}}"}'
  min: "0"
  max: "255"

Das Geheimnis steckt in der Variable “value”, darin landet der aktuell gewählte Wert, mit der vorherigen Version lese ich den hinterlegten Wert aus.

Gruß
Christian