← 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
0verwendet 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:
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:
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 1Antwort:
{"DlDim1":{"Ch1":50,"Ch2":30,"Ch3":0,"Ch4":0}}Die Antwort enthält immer alle Kanäle des adressierten Geräts.
Hinweise:
- Pegel
0schaltet 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:
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:
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 1Antwort:
{"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:
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:
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 1Antwort:
{"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
0bedeutet sofortige Änderung. Die Einblendung gilt für alle Helligkeitsschreibvorgänge, einschließlich solcher von Web-UI-Schiebereglern.
DlStatus — Vollständigen Gerätestatus anzeigen
Syntax:
DlStatus[] | Parameter | Typ | Bereich | Beschreibung |
|---|---|---|---|
dev |
Ganzzahl | 1-4 | Gerätenummer (optional; Standard = 1) |
Beispiele:
DlStatus # Status of device 1
DlStatus2 # Status of device 2Antwort:
{
"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:
{
"DimmerLink1": {
"Addr": "0x50",
"Bus": 1,
"Ready": true,
"FW": 1,
"ACFreq": 50,
"Fade": 0,
"Ch1": {"Level": 0, "Curve": "LINEAR"},
"LastError": "0xFE"
}
}DlReset — Software-Reset
Syntax:
DlReset[] | Parameter | Typ | Bereich | Beschreibung |
|---|---|---|---|
dev |
Ganzzahl | 1-4 | Gerätenummer (optional; Standard = 1) |
Beispiele:
DlReset # Reset device 1
DlReset2 # Reset device 2Antwort:
{"Command":"Done"}Hinweise:
- Schreibt
0x01in das COMMAND-Register (0x01). - Nach dem Reset wird das
ready-Flag des Geräts auffalsegesetzt. 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:
DlRecalibrate[] | Parameter | Typ | Bereich | Beschreibung |
|---|---|---|---|
dev |
Ganzzahl | 1-4 | Gerätenummer (optional; Standard = 1) |
Beispiele:
DlRecalibrate # Recalibrate device 1
DlRecalibrate2 # Recalibrate device 2Antwort:
{"Command":"Done"}Hinweise:
- Schreibt
0x02in 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
DlResetsetzt die Rekalibrierung keine Kanalpegel oder Kurveneinstellungen zurück.
DlAddress — I2C-Adresse ändern oder abfragen
Syntax:
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:
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):
{"DlAddress":"0x50"}Antwort (nach erfolgreicher Änderung):
{"DlAddress":"0x51"}Hinweise:
- Die Adresse wird in Hexadezimal (mit Präfix
0xoder0X) 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
DlStatuszur Ü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 |