← Build & Flash | Contenido | Next: Web, MQTT & HTTP →
Referencia de comandos — controlador nativo DimmerLink para Tasmota
Todos los comandos siguen las convenciones estándar de Tasmota:
- Los comandos no distinguen entre mayúsculas y minúsculas.
- Un sufijo de número de dispositivo opcional (del 1 al 4) selecciona qué dispositivo detectado direccionar. Sin sufijo, o con sufijo
0, el valor predeterminado es el dispositivo 1. - Enviar un comando sin argumento devuelve el estado actual sin cambiar nada.
- Todos los comandos devuelven respuestas JSON.
El controlador nativo usa el prefijo Dl para todos los comandos (diferente del prefijo DimmerLink del controlador Berry).
DlDim — Establecer el brillo del canal
Sintaxis:
DlDim[] [,] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
ch |
entero | 1-4 | Número de canal (opcional; predeterminado = 1) |
level |
entero | 0-100 | Brillo en porcentaje |
Ejemplos:
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 1Respuesta:
{"DlDim1":{"Ch1":50,"Ch2":30,"Ch3":0,"Ch4":0}}La respuesta siempre incluye todos los canales del dispositivo direccionado.
Notas:
- El nivel
0apaga el canal. El dispositivo no almacena memoria del nivel anterior — la reactivación requiere enviar un nuevo nivel distinto de cero. - Los valores de nivel superiores a 100 son silenciosamente limitados a 100 por el controlador.
- Si el dispositivo devuelve un código de error distinto de cero después de la escritura, el controlador lo registra a nivel DEBUG pero no devuelve un error al llamador.
DlCurve — Establecer la curva de regulación
Sintaxis:
DlCurve[] [,] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
ch |
entero | 1-4 | Número de canal (opcional; predeterminado = 1) |
curve |
entero | 0-2 | Curva: 0 = LINEAR, 1 = RMS, 2 = LOG |
Ejemplos:
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 1Respuesta:
{"DlCurve1":{"Ch1":"LINEAR","Ch2":"LOG","Ch3":"LINEAR","Ch4":"LINEAR"}}Notas:
- La configuración de curva se aplica por canal y es independiente entre los canales del mismo dispositivo.
- Los valores de curva fuera del rango 0-2 son rechazados; el comando no tiene efecto y devuelve el estado actual.
- Los cambios de curva tienen efecto en el siguiente comando de brillo. Establecer una curva no cambia por sí solo el nivel de salida.
Consulte Curvas de regulación explicadas para descripciones detalladas de cada curva y recomendaciones por tipo de carga.
DlFade — Establecer el tiempo de transición de fundido
Sintaxis:
DlFade[] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
value |
entero | 0-255 | Duración del fundido en unidades de 100 ms |
Ejemplos:
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 1Respuesta:
{"DlFade":0}Notas:
- El fundido es una configuración a nivel de dispositivo, no por canal. Todos los canales de un dispositivo usan el mismo tiempo de fundido.
- El fundido está implementado en el hardware MCU. Una vez que se escribe un cambio de brillo a través de I2C, el dispositivo sube internamente al nuevo nivel durante la duración configurada.
- El tiempo de fundido
0significa cambio inmediato. El fundido se aplica a todas las escrituras de brillo, incluidas las de los controles deslizantes de la interfaz web.
DlStatus — Mostrar el estado completo del dispositivo
Sintaxis:
DlStatus[] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
Ejemplos:
DlStatus # Status of device 1
DlStatus2 # Status of device 2Respuesta:
{
"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"
}
}Los campos Temperature y ThermalState aparecen solo si el firmware MCU tiene la función de temperatura habilitada. El campo LastError aparece solo si la última operación I2C produjo un código de error distinto de cero:
{
"DimmerLink1": {
"Addr": "0x50",
"Bus": 1,
"Ready": true,
"FW": 1,
"ACFreq": 50,
"Fade": 0,
"Ch1": {"Level": 0, "Curve": "LINEAR"},
"LastError": "0xFE"
}
}DlReset — Reinicio por software
Sintaxis:
DlReset[] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
Ejemplos:
DlReset # Reset device 1
DlReset2 # Reset device 2Respuesta:
{"Command":"Done"}Notas:
- Escribe
0x01en el registro COMMAND (0x01). - Después del reinicio, el indicador
readydel dispositivo se establece enfalse. Se restaura automáticamente en el siguiente sondeo de tick de segundo una vez que el dispositivo informa el estado READY. - El reinicio reinicializa el firmware MCU, incluyendo el desencadenamiento de un nuevo ciclo de calibración de frecuencia AC. Durante la calibración, los comandos de brillo pueden ser ignorados o producir resultados inconsistentes.
DlRecalibrate — Recalibrar la frecuencia AC
Sintaxis:
DlRecalibrate[] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
Ejemplos:
DlRecalibrate # Recalibrate device 1
DlRecalibrate2 # Recalibrate device 2Respuesta:
{"Command":"Done"}Notas:
- Escribe
0x02en el registro COMMAND. - Inicia un nuevo ciclo de medición de frecuencia AC. Útil si la frecuencia de red se informa incorrectamente, o después de mover el dispositivo a una fuente de alimentación AC diferente.
- El dispositivo establece READY = 0 durante la calibración. La operación normal se reanuda automáticamente después de que la calibración se completa (típicamente 1-2 segundos).
- A diferencia de
DlReset, la recalibración no reinicia los niveles de canal ni las configuraciones de curva.
DlAddress — Cambiar o consultar la dirección I2C
Sintaxis:
DlAddress[] [] | Parámetro | Tipo | Rango | Descripción |
|---|---|---|---|
dev |
entero | 1-4 | Número de dispositivo (opcional; predeterminado = 1) |
new_addr |
hex o decimal | 0x08-0x77 | Nueva dirección I2C (opcional; sin argumento = consulta) |
Ejemplos:
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)Respuesta (consulta):
{"DlAddress":"0x50"}Respuesta (después de un cambio exitoso):
{"DlAddress":"0x51"}Notas:
- La dirección se acepta en hexadecimal (con prefijo
0xo0X) o decimal. - Después de escribir, el controlador espera 50 ms y lee el registro VERSION desde la nueva dirección para verificar el cambio. Si la verificación falla, el comando devuelve un error, pero el hardware del dispositivo puede haber cambiado ya — use
DlStatuspara verificar. - La nueva dirección se almacena en la memoria flash interna del MCU y persiste a través de los ciclos de alimentación.
- La dirección anterior se vuelve inválida inmediatamente después de que el comando tenga éxito.
- Las direcciones 0x00-0x07 y 0x78-0x7F son rechazadas como direcciones I2C reservadas.
Tabla completa de comandos
| Comando | Argumento | Dispositivo | Canal | Devuelve |
|---|---|---|---|---|
DlDim[N] |
[ch,]level |
Opcional | Opcional | Todos los niveles de canal |
DlCurve[N] |
[ch,]curve |
Opcional | Opcional | Todas las curvas de canal |
DlFade[N] |
value |
Opcional | -- | Valor de fundido actual |
DlStatus[N] |
-- | Opcional | -- | Estado completo del dispositivo |
DlReset[N] |
-- | Opcional | -- | Done |
DlRecalibrate[N] |
-- | Opcional | -- | Done |
DlAddress[N] |
[new_addr] |
Opcional | -- | Dirección actual o nueva |