Zum Inhalt springen

← Build & Flash | Inhalt | Next: Web, MQTT & HTTP →

Befehlsreferenz — nativer DimmerLink Tasmota-Treiber

Alle Befehle folgen den Standard-Tasmota-Konventionen:

  • Befehle sind nicht case-sensitiv.
  • Ein optionales Gerätennummer-Suffix (1 bis 4) wählt aus, welches erkannte Gerät angesprochen werden soll. Kein Suffix oder Suffix 0 verwendet standardmäßig Gerät 1.
  • Das Senden eines Befehls ohne Argument gibt den aktuellen Zustand zurück, ohne etwas zu ändern.
  • Alle Befehle geben JSON-Antworten zurück.

Der native Treiber verwendet das Präfix Dl für alle Befehle (anders als das Präfix DimmerLink des Berry-Treibers).


DlDim — Kanalhelligkeit einstellen

Syntax:

plaintext
DlDim[] [,]
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)
ch Ganzzahl 1-4 Kanalnummer (optional; Standard = 1)
level Ganzzahl 0-100 Helligkeit in Prozent

Beispiele:

plaintext
DlDim 50            # Device 1, channel 1 to 50%
DlDim 75            # Device 1, channel 1 to 75%
DlDim 2,30          # Device 1, channel 2 to 30%
DlDim2 100          # Device 2, channel 1 to 100%
DlDim2 3,0          # Device 2, channel 3 to 0% (off)
DlDim               # Query — returns all channel levels for device 1

Antwort:

json
{"DlDim1":{"Ch1":50,"Ch2":30,"Ch3":0,"Ch4":0}}

Die Antwort enthält immer alle Kanäle des adressierten Geräts.

Hinweise:

  • Pegel 0 schaltet den Kanal aus. Das Gerät speichert den vorherigen Pegel nicht — zur Wiederaktivierung muss ein neuer Nicht-Null-Pegel gesendet werden.
  • Pegelwerte über 100 werden vom Treiber stillschweigend auf 100 begrenzt.
  • Wenn das Gerät nach dem Schreiben einen Nicht-Null-Fehlercode zurückgibt, protokolliert der Treiber dies auf DEBUG-Ebene, gibt aber keinen Fehler an den Aufrufer zurück.

DlCurve — Dimmkurve einstellen

Syntax:

plaintext
DlCurve[] [,]
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)
ch Ganzzahl 1-4 Kanalnummer (optional; Standard = 1)
curve Ganzzahl 0-2 Kurve: 0 = LINEAR, 1 = RMS, 2 = LOG

Beispiele:

plaintext
DlCurve 0           # Device 1, channel 1 to LINEAR
DlCurve 2           # Device 1, channel 1 to LOG
DlCurve 2,1         # Device 1, channel 2 to RMS
DlCurve2 1          # Device 2, channel 1 to RMS
DlCurve             # Query — returns all channel curves for device 1

Antwort:

json
{"DlCurve1":{"Ch1":"LINEAR","Ch2":"LOG","Ch3":"LINEAR","Ch4":"LINEAR"}}

Hinweise:

  • Die Kurveneinstellung wird pro Kanal angewendet und ist unabhängig zwischen den Kanälen desselben Geräts.
  • Kurvenwerte außerhalb von 0-2 werden abgelehnt; der Befehl hat keine Wirkung und gibt den aktuellen Zustand zurück.
  • Kurvenänderungen treten beim nächsten Helligkeitsbefehl in Kraft. Das Einstellen einer Kurve ändert den Ausgangspegel nicht von sich aus.

Siehe Dimmkurven erklärt für detaillierte Beschreibungen jeder Kurve und Empfehlungen für Lasttypen.


DlFade — Übergangszeit für Einblendung einstellen

Syntax:

plaintext
DlFade[] 
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)
value Ganzzahl 0-255 Einblendungsdauer in Einheiten von 100 ms

Beispiele:

plaintext
DlFade 0            # Instant change (no fade)
DlFade 10           # 1.0 second fade
DlFade 50           # 5.0 second fade
DlFade 255          # 25.5 second fade (maximum)
DlFade2 20          # Device 2: 2.0 second fade
DlFade              # Query — returns current fade value for device 1

Antwort:

json
{"DlFade":0}

Hinweise:

  • Einblendung ist eine geräteweite Einstellung, nicht pro Kanal. Alle Kanäle eines Geräts verwenden dieselbe Einblendungszeit.
  • Die Einblendung ist in der MCU-Hardware implementiert. Sobald eine Helligkeitsänderung über I2C geschrieben wird, rampt das Gerät intern über die konfigurierte Dauer auf den neuen Pegel.
  • Einblendungszeit 0 bedeutet sofortige Änderung. Die Einblendung gilt für alle Helligkeitsschreibvorgänge, einschließlich solcher von Web-UI-Schiebereglern.

DlStatus — Vollständigen Gerätestatus anzeigen

Syntax:

plaintext
DlStatus[]
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)

Beispiele:

plaintext
DlStatus            # Status of device 1
DlStatus2           # Status of device 2

Antwort:

json
{
  "DimmerLink1": {
    "Addr": "0x50",
    "Bus": 1,
    "Ready": true,
    "FW": 1,
    "ACFreq": 50,
    "Fade": 10,
    "Ch1": {"Level": 75, "Curve": "LOG"},
    "Ch2": {"Level": 30, "Curve": "RMS"},
    "Ch3": {"Level": 0, "Curve": "LINEAR"},
    "Ch4": {"Level": 0, "Curve": "LINEAR"},
    "Temperature": 42,
    "ThermalState": "NORMAL"
  }
}

Die Felder Temperature und ThermalState erscheinen nur, wenn die MCU-Firmware die Temperaturfunktion aktiviert hat. Das Feld LastError erscheint nur, wenn die letzte I2C-Operation einen Nicht-Null-Fehlercode erzeugt hat:

json
{
  "DimmerLink1": {
    "Addr": "0x50",
    "Bus": 1,
    "Ready": true,
    "FW": 1,
    "ACFreq": 50,
    "Fade": 0,
    "Ch1": {"Level": 0, "Curve": "LINEAR"},
    "LastError": "0xFE"
  }
}

DlReset — Software-Reset

Syntax:

plaintext
DlReset[]
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)

Beispiele:

plaintext
DlReset             # Reset device 1
DlReset2            # Reset device 2

Antwort:

json
{"Command":"Done"}

Hinweise:

  • Schreibt 0x01 in das COMMAND-Register (0x01).
  • Nach dem Reset wird das ready-Flag des Geräts auf false gesetzt. Es wird automatisch beim nächsten Sekunden-Tick-Poll wiederhergestellt, sobald das Gerät den READY-Status meldet.
  • Der Reset initialisiert die MCU-Firmware neu, einschließlich der Auslösung eines neuen AC-Frequenz-Kalibrierungszyklus. Während der Kalibrierung können Helligkeitsbefehle ignoriert werden oder inkonsistente Ergebnisse liefern.

DlRecalibrate — AC-Frequenz neu kalibrieren

Syntax:

plaintext
DlRecalibrate[]
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)

Beispiele:

plaintext
DlRecalibrate       # Recalibrate device 1
DlRecalibrate2      # Recalibrate device 2

Antwort:

json
{"Command":"Done"}

Hinweise:

  • Schreibt 0x02 in das COMMAND-Register.
  • Löst einen neuen AC-Frequenz-Messzyklus aus. Nützlich, wenn die Netzfrequenz falsch gemeldet wird oder nach dem Verschieben des Geräts an eine andere AC-Versorgung.
  • Das Gerät setzt READY = 0 während der Kalibrierung. Der normale Betrieb wird automatisch nach Abschluss der Kalibrierung wieder aufgenommen (typischerweise 1-2 Sekunden).
  • Im Gegensatz zu DlReset setzt die Rekalibrierung keine Kanalpegel oder Kurveneinstellungen zurück.

DlAddress — I2C-Adresse ändern oder abfragen

Syntax:

plaintext
DlAddress[] []
Parameter Typ Bereich Beschreibung
dev Ganzzahl 1-4 Gerätenummer (optional; Standard = 1)
new_addr Hex oder Dezimal 0x08-0x77 Neue I2C-Adresse (optional; ohne Argument = Abfrage)

Beispiele:

plaintext
DlAddress           # Query current address of device 1
DlAddress 0x51      # Change device 1 address to 0x51
DlAddress2 0x52     # Change device 2 address to 0x52
DlAddress 81        # Change device 1 to decimal 81 (= 0x51)

Antwort (Abfrage):

json
{"DlAddress":"0x50"}

Antwort (nach erfolgreicher Änderung):

json
{"DlAddress":"0x51"}

Hinweise:

  • Die Adresse wird in Hexadezimal (mit Präfix 0x oder 0X) oder Dezimal akzeptiert.
  • Nach dem Schreiben wartet der Treiber 50 ms und liest das VERSION-Register von der neuen Adresse, um die Änderung zu verifizieren. Wenn die Verifizierung fehlschlägt, gibt der Befehl einen Fehler zurück, aber die Gerätehardware hat sich möglicherweise bereits geändert — verwenden Sie DlStatus zur Überprüfung.
  • Die neue Adresse wird im internen Flash-Speicher des MCU gespeichert und bleibt bei Stromzyklen erhalten.
  • Die alte Adresse wird sofort nach erfolgreichem Befehl ungültig.
  • Adressen 0x00-0x07 und 0x78-0x7F werden als reservierte I2C-Adressen abgelehnt.

Vollständige Befehlstabelle

Befehl Argument Gerät Kanal Gibt zurück
DlDim[N] [ch,]level Optional Optional Alle Kanalpegel
DlCurve[N] [ch,]curve Optional Optional Alle Kanalkurven
DlFade[N] value Optional -- Aktueller Einblendungswert
DlStatus[N] -- Optional -- Vollständiger Gerätestatus
DlReset[N] -- Optional -- Done
DlRecalibrate[N] -- Optional -- Done
DlAddress[N] [new_addr] Optional -- Aktuelle oder neue Adresse