Skip to content

Das Gerät zum ersten Mal steuern ​

Welchen Datenpunkt nehme ich zum Ein- und Ausschalten, das ganze Gerät oder nur ein Segment? ​

Dieser Abschnitt wird noch geschrieben.

Wie nutze ich die Helligkeit in Prozent (0 bis 100), zum Beispiel für Alexa? ​

Kurz: bri arbeitet wie WLED selbst mit Werten von 0 bis 255, nicht in Prozent. Für 0 bis 100 % legst du einen Alias auf bri an, der beim Lesen durch 2,55 teilt und beim Schreiben mit 2,55 malnimmt.

Der Adapter stellt bri nicht auf Prozent um, weil 255 Stufen feiner sind und eine Umstellung bestehende Skripte und Visualisierungen brechen würde. Der Datenpunkt hat die Rolle level.brightness mit Minimum 0 und Maximum 255. Das gilt für die Gesamthelligkeit wled.0.<Gerät>.bri und genauso für die Segmenthelligkeit wled.0.<Gerät>.seg.<Segment>.bri.

Schaubild: Ein Prozent-Alias von 0 bis 100 % rechnet beim Schreiben mit Math.ceil(val * 2.55) auf bri von 0 bis 255 um und beim Lesen mit Math.round(val / 2.55) zurück.

Brauchst du überhaupt eine Umrechnung? ​

Für Alexa und Google Home über den iot-Adapter meist nicht: Weil bri Minimum und Maximum mitbringt, kann der iot-Adapter eine Prozentangabe selbst auf 0 bis 255 umrechnen. Den Alias brauchst du, wenn du Prozent in VIS, in Skripten oder in einer anderen Integration sehen oder schreiben willst, oder wenn die Umrechnung im iot-Adapter bei dir nicht greift.

So legst du einen Prozent-Alias an ​

  1. Öffne im Admin den Reiter „Objekte“ und lege unter alias.0 einen Datenpunkt an, zum Beispiel alias.0.WLED.Wohnzimmer.helligkeit.
  2. Gib ihm den Typ number, die Rolle level.dimmer, Minimum 0, Maximum 100 und die Einheit %.
  3. Trag als Ziel des Alias den WLED-Datenpunkt ein: wled.0.<Gerät>.bri.
  4. Trag die Umrechnung ein. Lesen: Math.round(val / 2.55). Schreiben: Math.ceil(val * 2.55).
  5. Speichere und setze den Alias testweise auf 50. bri muss dann auf 128 springen, und der Streifen leuchtet mit halber Helligkeit.

Im Objekt sieht der Alias-Teil so aus:

json
"common": {
  "name": "Helligkeit Wohnzimmer",
  "type": "number",
  "role": "level.dimmer",
  "min": 0,
  "max": 100,
  "unit": "%",
  "read": true,
  "write": true,
  "alias": {
    "id": "wled.0.<Gerät>.bri",
    "read": "Math.round(val / 2.55)",
    "write": "Math.ceil(val * 2.55)"
  }
}

TIP

Beim Schreiben rundest du auf (Math.ceil). Sonst wird aus 1 % der Wert 0 und das Licht geht aus, obwohl du es nur sehr dunkel haben wolltest.

WARNING

Bau die Umrechnung nicht mit zwei Skripten, die sich gegenseitig auslösen (Prozent-Datenpunkt schreibt bri, bri schreibt den Prozent-Datenpunkt). Durch das Runden können die beiden Werte hin- und herspringen. Ein Alias hat dieses Problem nicht, weil es nur einen echten Wert gibt.

Siehe auch: Wie binde ich WLED in den iot-Adapter ein und schalte Effekte, Presets und Farbe per Alexa oder Google Home?

Wo wähle ich Effekt und Palette aus? ​

Kurz: Effekt und Palette stellst du je Segment ein: wled.0.<Gerät>.seg.<Segment>.fx für den Effekt und wled.0.<Gerät>.seg.<Segment>.pal für die Palette. Beide Datenpunkte haben eine Auswahlliste mit den Namen, die dein WLED-Gerät meldet.

Das erste Segment hat die Nummer 0. Hast du in WLED mehrere Segmente angelegt, hat jedes eigene Datenpunkte fx und pal. Gespeichert wird jeweils die Nummer des Effekts oder der Palette; die Auswahlliste zeigt dazu den Namen an.

Schaubild: Im Objektbaum liegen on, bri und ps direkt unter dem Gerät, fx, pal, sx, ix und col unter jedem Segment seg.0, seg.1 und so weiter. fx und pal haben eine Auswahlliste mit Nummer und Namen aus dem Gerät.

So gehst du vor ​

  1. Öffne im Admin den Reiter „Objekte“ und gehe zu wled.0.<Gerät>.seg.0.
  2. Klick beim Datenpunkt fx auf den Wert. Es öffnet sich eine Liste mit den Effektnamen deines Geräts. Wähle einen aus.
  3. Mach dasselbe bei pal für die Palette.
  4. Der Streifen wechselt sofort. Im Datenpunkt steht danach die Nummer des gewählten Eintrags.

Daneben gehören zum Effekt seg.<Segment>.sx (Geschwindigkeit) und seg.<Segment>.ix (Intensität).

Im Skript schreibst du die Nummer, zum Beispiel setState('wled.0.<Gerät>.seg.0.fx', 9). Welche Nummer zu welchem Namen gehört, steht in der Auswahlliste im Objekt (common.states).

Neue Effekte nach einem Firmware-Update fehlen in der Liste ​

Die Namen liest der Adapter aus dem Gerät, die Liste hängt also von deiner WLED-Firmware ab.

Bis v0.9.2: Der Adapter setzt die Auswahlliste nur einmal je Adapterlauf. Effekte und Paletten, die mit einem Firmware-Update dazugekommen sind, erscheinen erst, wenn du die Adapter-Instanz neu startest.

Ab v0.9.3: Der Adapter schreibt die Listen bei jedem Verbindungsaufbau mit dem Gerät neu. Weil WLED beim Firmware-Update neu startet und sich danach wieder verbindet, erscheinen neue Effekte ohne Neustart des Adapters (#912).

TIP

Fehlt die Auswahlliste ganz oder ist sie veraltet, starte die Instanz wled.0 einmal neu. Das hilft in jeder Version.

Siehe auch:

Knowledge has no value unless you use and share it