Se rendre au contenu

← Build & Flash | Sommaire | Next: Web, MQTT & HTTP →

Référence des commandes — pilote natif DimmerLink pour Tasmota

Toutes les commandes suivent les conventions standard de Tasmota :

  • Les commandes sont insensibles à la casse.
  • Un suffixe de numéro d'appareil optionnel (de 1 à 4) sélectionne l'appareil détecté à adresser. Sans suffixe, ou avec le suffixe 0, l'appareil 1 est utilisé par défaut.
  • L'envoi d'une commande sans argument retourne l'état actuel sans rien modifier.
  • Toutes les commandes retournent des réponses JSON.

Le pilote natif utilise le préfixe Dl pour toutes les commandes (différent du préfixe DimmerLink du pilote Berry).


DlDim — Régler la luminosité du canal

Syntaxe :

plaintext
DlDim[] [,]
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)
ch entier 1-4 Numéro de canal (optionnel ; défaut = 1)
level entier 0-100 Luminosité en pourcentage

Exemples :

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

Réponse :

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

La réponse inclut toujours tous les canaux de l'appareil adressé.

Remarques :

  • Le niveau 0 éteint le canal. L'appareil ne mémorise pas le niveau précédent — la réactivation nécessite l'envoi d'un nouveau niveau non nul.
  • Les valeurs de niveau supérieures à 100 sont silencieusement limitées à 100 par le pilote.
  • Si l'appareil retourne un code d'erreur non nul après l'écriture, le pilote l'enregistre au niveau DEBUG mais ne retourne pas d'erreur à l'appelant.

DlCurve — Régler la courbe de variation

Syntaxe :

plaintext
DlCurve[] [,]
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)
ch entier 1-4 Numéro de canal (optionnel ; défaut = 1)
curve entier 0-2 Courbe : 0 = LINEAR, 1 = RMS, 2 = LOG

Exemples :

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

Réponse :

json
{"DlCurve1":{"Ch1":"LINEAR","Ch2":"LOG","Ch3":"LINEAR","Ch4":"LINEAR"}}

Remarques :

  • Le réglage de courbe est appliqué par canal et est indépendant entre les canaux du même appareil.
  • Les valeurs de courbe en dehors de 0-2 sont rejetées ; la commande n'a aucun effet et retourne l'état actuel.
  • Les modifications de courbe prennent effet à la prochaine commande de luminosité. La définition d'une courbe ne modifie pas par elle-même le niveau de sortie.

Voir Courbes de variation expliquées pour des descriptions détaillées de chaque courbe et des recommandations par type de charge.


DlFade — Régler le temps de transition

Syntaxe :

plaintext
DlFade[] 
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)
value entier 0-255 Durée de fondu en unités de 100 ms

Exemples :

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

Réponse :

json
{"DlFade":0}

Remarques :

  • Le fondu est un réglage au niveau de l'appareil, pas par canal. Tous les canaux d'un appareil utilisent le même temps de fondu.
  • Le fondu est implémenté dans le matériel MCU. Une fois qu'un changement de luminosité est écrit via I2C, l'appareil monte en rampe en interne vers le nouveau niveau sur la durée configurée.
  • Le temps de fondu 0 signifie un changement immédiat. Le fondu s'applique à toutes les écritures de luminosité, y compris celles provenant des curseurs de l'interface web.

DlStatus — Afficher l'état complet de l'appareil

Syntaxe :

plaintext
DlStatus[]
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)

Exemples :

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

Réponse :

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

Les champs Temperature et ThermalState apparaissent uniquement si le firmware MCU a la fonctionnalité de température activée. Le champ LastError apparaît uniquement si la dernière opération I2C a produit un code d'erreur non nul :

json
{
  "DimmerLink1": {
    "Addr": "0x50",
    "Bus": 1,
    "Ready": true,
    "FW": 1,
    "ACFreq": 50,
    "Fade": 0,
    "Ch1": {"Level": 0, "Curve": "LINEAR"},
    "LastError": "0xFE"
  }
}

DlReset — Réinitialisation logicielle

Syntaxe :

plaintext
DlReset[]
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)

Exemples :

plaintext
DlReset             # Reset device 1
DlReset2            # Reset device 2

Réponse :

json
{"Command":"Done"}

Remarques :

  • Écrit 0x01 dans le registre COMMAND (0x01).
  • Après la réinitialisation, le drapeau ready de l'appareil est mis à false. Il est restauré automatiquement lors du prochain sondage par tick de seconde une fois que l'appareil signale le statut READY.
  • La réinitialisation réinitialise le firmware MCU, y compris le déclenchement d'un nouveau cycle de calibration de fréquence AC. Pendant la calibration, les commandes de luminosité peuvent être ignorées ou produire des résultats incohérents.

DlRecalibrate — Recalibrer la fréquence AC

Syntaxe :

plaintext
DlRecalibrate[]
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)

Exemples :

plaintext
DlRecalibrate       # Recalibrate device 1
DlRecalibrate2      # Recalibrate device 2

Réponse :

json
{"Command":"Done"}

Remarques :

  • Écrit 0x02 dans le registre COMMAND.
  • Déclenche un nouveau cycle de mesure de fréquence AC. Utile si la fréquence du réseau est signalée incorrectement, ou après avoir déplacé l'appareil vers une autre alimentation AC.
  • L'appareil définit READY = 0 pendant la calibration. Le fonctionnement normal reprend automatiquement après la fin de la calibration (typiquement 1-2 secondes).
  • Contrairement à DlReset, la recalibration ne réinitialise pas les niveaux de canal ni les réglages de courbe.

DlAddress — Modifier ou interroger l'adresse I2C

Syntaxe :

plaintext
DlAddress[] []
Paramètre Type Plage Description
dev entier 1-4 Numéro d'appareil (optionnel ; défaut = 1)
new_addr hex ou décimal 0x08-0x77 Nouvelle adresse I2C (optionnel ; sans argument = requête)

Exemples :

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)

Réponse (requête) :

json
{"DlAddress":"0x50"}

Réponse (après changement réussi) :

json
{"DlAddress":"0x51"}

Remarques :

  • L'adresse est acceptée en hexadécimal (avec le préfixe 0x ou 0X) ou en décimal.
  • Après l'écriture, le pilote attend 50 ms et lit le registre VERSION depuis la nouvelle adresse pour vérifier le changement. Si la vérification échoue, la commande retourne une erreur, mais le matériel de l'appareil peut avoir déjà changé — utilisez DlStatus pour vérifier.
  • La nouvelle adresse est stockée dans la mémoire flash interne du MCU et persiste à travers les cycles d'alimentation.
  • L'ancienne adresse devient invalide immédiatement après le succès de la commande.
  • Les adresses 0x00-0x07 et 0x78-0x7F sont rejetées comme adresses I2C réservées.

Tableau complet des commandes

Commande Argument Appareil Canal Retourne
DlDim[N] [ch,]level Optionnel Optionnel Tous les niveaux de canaux
DlCurve[N] [ch,]curve Optionnel Optionnel Toutes les courbes de canaux
DlFade[N] value Optionnel -- Valeur de fondu actuelle
DlStatus[N] -- Optionnel -- État complet de l'appareil
DlReset[N] -- Optionnel -- Done
DlRecalibrate[N] -- Optionnel -- Done
DlAddress[N] [new_addr] Optionnel -- Adresse actuelle ou nouvelle