Ir al contenido

← 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:

plaintext
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:

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

Respuesta:

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

La respuesta siempre incluye todos los canales del dispositivo direccionado.

Notas:

  • El nivel 0 apaga 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:

plaintext
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:

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

Respuesta:

json
{"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:

plaintext
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:

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

Respuesta:

json
{"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 0 significa 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:

plaintext
DlStatus[]
Parámetro Tipo Rango Descripción
dev entero 1-4 Número de dispositivo (opcional; predeterminado = 1)

Ejemplos:

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

Respuesta:

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"
  }
}

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:

json
{
  "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:

plaintext
DlReset[]
Parámetro Tipo Rango Descripción
dev entero 1-4 Número de dispositivo (opcional; predeterminado = 1)

Ejemplos:

plaintext
DlReset             # Reset device 1
DlReset2            # Reset device 2

Respuesta:

json
{"Command":"Done"}

Notas:

  • Escribe 0x01 en el registro COMMAND (0x01).
  • Después del reinicio, el indicador ready del dispositivo se establece en false. 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:

plaintext
DlRecalibrate[]
Parámetro Tipo Rango Descripción
dev entero 1-4 Número de dispositivo (opcional; predeterminado = 1)

Ejemplos:

plaintext
DlRecalibrate       # Recalibrate device 1
DlRecalibrate2      # Recalibrate device 2

Respuesta:

json
{"Command":"Done"}

Notas:

  • Escribe 0x02 en 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:

plaintext
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:

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)

Respuesta (consulta):

json
{"DlAddress":"0x50"}

Respuesta (después de un cambio exitoso):

json
{"DlAddress":"0x51"}

Notas:

  • La dirección se acepta en hexadecimal (con prefijo 0x o 0X) 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 DlStatus para 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