Zum Inhalt springen

← Befehle | Inhalt | Weiter: Erweiterte Funktionen →

Web UI, MQTT & HTTP — DimmerLink Native Tasmota Driver

Web-UI Nutzung

Dashboard

Helligkeitsschieberegler

Wenn ein oder mehrere DimmerLink-Geräte erkannt werden, zeigt die Tasmota-Hauptseite (http:///) einen Helligkeitsschieberegler für jeden aktiven Kanal an.

Das Schieberegler-Layout ist:

  • Für ein einzelnes Gerät sind die Schieberegler mit DL Ch1, DL Ch2 usw. beschriftet.
  • Für mehrere Geräte sind die Schieberegler mit DL1 Ch1, DL1 Ch2, DL2 Ch1 usw. beschriftet.

Schieberegler reichen von 0 (aus) bis 100 (volle Helligkeit). Das Ziehen und Loslassen des Schiebereglers sendet einen DlDim-Befehl an den entsprechenden Kanal. Der Schieberegler spiegelt den aktuellen, im Treiber gespeicherten Helligkeitspegel wider und aktualisiert sich, wenn sich der Pegel aus einer beliebigen Quelle ändert (Befehl, MQTT usw.).

Sensoranzeige

Der Sensorbereich der Hauptseite zeigt eine schreibgeschützte Statustabelle für jedes Gerät:

Zeilenbeschriftung Angezeigter Wert Beispiel
DimmerLink1 Ch1 Helligkeit und Kurve 75% (LOG)
DimmerLink1 Ch2 Helligkeit und Kurve 30% (RMS)
DimmerLink1 AC Erkannte Netzfrequenz 50 Hz
DimmerLink1 Fade Einblendungszeit (Rohwert und Sekunden) 10 (1.0s)
DimmerLink1 Temp Temperatur und Wärmezustand 42 C (NORMAL)

Die Zeile Temp erscheint nur, wenn die Temperaturfunktion auf der Hardware verfügbar ist. Alle Zeilen werden bei jeder Webseitenaktualisierung aktualisiert; der Sensorbereich ist kein Live-Push-Feed.


MQTT-Telemetrie

Telemetrie-Veröffentlichung

Der Treiber trägt zur periodischen tele//SENSOR-Nachricht von Tasmota bei (der FUNC_JSON_APPEND-Hook). Das Telemetrieintervall wird durch die Tasmota-Einstellung TelePeriod gesteuert (Standard: 300 Sekunden).

JSON-Struktur — einzelnes Gerät

json
{
  "Time": "2026-04-16T12:00:00",
  "DimmerLink1": {
    "Addr": "0x50",
    "ACFreq": 50,
    "Fade": 10,
    "Ch1": {"Level": 75, "Curve": "LOG"},
    "Ch2": {"Level": 30, "Curve": "RMS"},
    "Ch3": {"Level": 0, "Curve": "LINEAR"},
    "Ch4": {"Level": 0, "Curve": "LINEAR"},
    "Temp": 42,
    "Thermal": "NORMAL"
  }
}

JSON-Struktur — mehrere Geräte

Wenn mehrere Geräte vorhanden sind, erscheinen alle als separate Schlüssel in derselben SENSOR-Nachricht:

json
{
  "Time": "2026-04-16T12:00:00",
  "DimmerLink1": {
    "Addr": "0x50",
    "ACFreq": 50,
    "Fade": 0,
    "Ch1": {"Level": 75, "Curve": "LINEAR"},
    "Ch2": {"Level": 0, "Curve": "LINEAR"},
    "Ch3": {"Level": 0, "Curve": "LINEAR"},
    "Ch4": {"Level": 0, "Curve": "LINEAR"}
  },
  "DimmerLink2": {
    "Addr": "0x51",
    "ACFreq": 50,
    "Fade": 5,
    "Ch1": {"Level": 50, "Curve": "LOG"},
    "Ch2": {"Level": 0, "Curve": "LINEAR"},
    "Ch3": {"Level": 0, "Curve": "LINEAR"},
    "Ch4": {"Level": 0, "Curve": "LINEAR"}
  }
}

Feldbeschreibungen

Feld Typ Beschreibung
Addr Zeichenkette I2C-Adresse in Hex, z.B. "0x50"
ACFreq Ganzzahl Erkannte Netzfrequenz, 50 oder 60 Hz
Fade Ganzzahl Aktuelle Einblendungszeit-Einstellung (0-255, Einheiten von 100 ms)
Ch1 ... Ch4 Objekt Kanalspezifische Daten
Ch1.Level Ganzzahl Helligkeit in Prozent (0-100)
Ch1.Curve Zeichenkette Dimmkurve: "LINEAR", "RMS" oder "LOG"
Temp Ganzzahl Temperatur in Celsius (nur wenn Hardware dies unterstützt)
Thermal Zeichenkette Wärmeschutzstatus (nur mit Temperatursensor)

Die Felder Temp und Thermal werden weggelassen, wenn die MCU-Firmware nicht FEATURE_TEMPERATURE aktiviert hat oder wenn das Temperaturregister 0xFF zurückgibt.

Befehle über MQTT senden

Befehle werden an cmnd// mit der Nutzlast als Argument gesendet:

plaintext
Topic:   cmnd/my-device/DlDim
Payload: 75
Topic:   cmnd/my-device/DlDim
Payload: 2,30
Topic:   cmnd/my-device/DlCurve
Payload: 2
Topic:   cmnd/my-device/DlFade
Payload: 10

Befehlsantworten werden an stat//RESULT veröffentlicht:

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

HTTP API

Alle Tasmota-Befehle sind über HTTP GET mit dem /cm-Endpunkt zugänglich.

Syntax

plaintext
http:///cm?cmnd=%20

Das Leerzeichen zwischen Befehl und Argument muss als %20 URL-kodiert werden.

Beispiele mit curl

bash
# Set device 1, channel 1 to 75%
curl "http://192.168.1.100/cm?cmnd=DlDim%2075"
# Set device 1, channel 2 to 30%
curl "http://192.168.1.100/cm?cmnd=DlDim%202,30"
# Set device 2, channel 1 to 50%
curl "http://192.168.1.100/cm?cmnd=DlDim2%2050"
# Set dimming curve to LOG on channel 1
curl "http://192.168.1.100/cm?cmnd=DlCurve%202"
# Set fade time to 1 second (value 10)
curl "http://192.168.1.100/cm?cmnd=DlFade%2010"
# Query full status of device 1
curl "http://192.168.1.100/cm?cmnd=DlStatus"
# Query full status of device 2
curl "http://192.168.1.100/cm?cmnd=DlStatus2"
# Recalibrate AC frequency on device 1
curl "http://192.168.1.100/cm?cmnd=DlRecalibrate"
# Change device 1 I2C address to 0x51
curl "http://192.168.1.100/cm?cmnd=DlAddress%200x51"

Antwortformat

Alle Antworten sind JSON, zurückgegeben mit HTTP 200:

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

Fehlerantwort (ungültige Gerätenummer, Argument außerhalb des Bereichs usw.):

json
{"Command":"Error"}