← Comandos | Contenido | Siguiente: Funciones avanzadas →
Web UI, MQTT & HTTP — DimmerLink Native Tasmota Driver
Uso de la interfaz web
Panel de control

Controles deslizantes de brillo
Cuando se detectan uno o más dispositivos DimmerLink, la página principal de Tasmota (http://) muestra un control deslizante de brillo para cada canal activo.
El diseño del control deslizante es:
- Para un único dispositivo, los controles deslizantes están etiquetados como
DL Ch1,DL Ch2, etc. - Para múltiples dispositivos, los controles deslizantes están etiquetados como
DL1 Ch1,DL1 Ch2,DL2 Ch1, etc.
Los controles deslizantes van de 0 (apagado) a 100 (brillo máximo). Arrastrar el control deslizante y soltarlo envía un comando DlDim al canal correspondiente. El control deslizante refleja el nivel de brillo actual almacenado en el controlador y se actualiza cuando el nivel cambia desde cualquier fuente (comando, MQTT, etc.).
Visualización del sensor
La sección de sensores de la página principal muestra una tabla de estado de solo lectura para cada dispositivo:
| Etiqueta de fila | Valor mostrado | Ejemplo |
|---|---|---|
DimmerLink1 Ch1 |
Brillo y curva | 75% (LOG) |
DimmerLink1 Ch2 |
Brillo y curva | 30% (RMS) |
DimmerLink1 AC |
Frecuencia de red detectada | 50 Hz |
DimmerLink1 Fade |
Tiempo de fundido (valor bruto y segundos) | 10 (1.0s) |
DimmerLink1 Temp |
Temperatura y estado térmico | 42 C (NORMAL) |
La fila Temp aparece solo si la función de temperatura está disponible en el hardware. Todas las filas se actualizan en cada recarga de la página web; la sección de sensores no es un flujo push en tiempo real.
Telemetría MQTT
Publicación de telemetría
El controlador contribuye al mensaje periódico tele/ de Tasmota (el hook FUNC_JSON_APPEND). El intervalo de telemetría está controlado por el ajuste TelePeriod de Tasmota (predeterminado: 300 segundos).
Estructura JSON — dispositivo único
{
"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"
}
}Estructura JSON — múltiples dispositivos
Cuando hay varios dispositivos presentes, todos aparecen como claves separadas en el mismo mensaje SENSOR:
{
"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"}
}
}Descripción de los campos
| Campo | Tipo | Descripción |
|---|---|---|
Addr |
cadena | Dirección I2C en hex, p. ej. "0x50" |
ACFreq |
entero | Frecuencia de red detectada, 50 o 60 Hz |
Fade |
entero | Configuración del tiempo de fundido actual (0-255, unidades de 100 ms) |
Ch1 ... Ch4 |
objeto | Datos por canal |
Ch1.Level |
entero | Brillo en porcentaje (0-100) |
Ch1.Curve |
cadena | Curva de regulación: "LINEAR", "RMS" o "LOG" |
Temp |
entero | Temperatura en Celsius (solo si el hardware lo admite) |
Thermal |
cadena | Estado de protección térmica (solo con sensor de temperatura) |
Los campos Temp y Thermal se omiten si el firmware MCU no tiene FEATURE_TEMPERATURE habilitado, o si el registro de temperatura devuelve 0xFF.
Envío de comandos vía MQTT
Los comandos se envían a cmnd/ con la carga útil como argumento:
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: 10Las respuestas a los comandos se publican en stat/:
{"DlDim1":{"Ch1":75,"Ch2":30,"Ch3":0,"Ch4":0}}API HTTP
Todos los comandos de Tasmota son accesibles a través de HTTP GET usando el punto de acceso /cm.
Sintaxis
http:///cm?cmnd=%20 El espacio entre el comando y el argumento debe estar codificado en URL como %20.
Ejemplos con curl
# 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"Formato de respuesta
Todas las respuestas son JSON, devueltas con HTTP 200:
{"DlDim1":{"Ch1":75,"Ch2":30,"Ch3":0,"Ch4":0}}Respuesta de error (número de dispositivo inválido, argumento fuera de rango, etc.):
{"Command":"Error"}