← Web, MQTT & HTTP | Sommaire | Suivant : Référence →
Fonctionnalités avancées — Pilote natif DimmerLink pour Tasmota
Courbes de gradation expliquées
La courbe de gradation détermine comment le pourcentage de luminosité est associé à l'angle de déclenchement réel du TRIAC et donc à la puissance fournie à la charge. Trois courbes sont disponibles, chacune adaptée à différents types de charges.
LINEAR (valeur 0)
L'angle de phase est proportionnel au niveau de luminosité demandé. La relation entre la valeur de commande et la puissance électrique est linéaire.
Power delivered
100% | /
| /
50% | /
| /
0% | /
+------------------
0% 50% 100%
Level setCas d'utilisation : Charges polyvalentes, radiateurs résistifs, moteurs à balais, toute charge où la puissance électrique doit suivre directement la valeur définie. Convient comme point de départ lorsque la courbe optimale est inconnue.
Non recommandé pour : Les ampoules LED ou les ampoules à incandescence où la luminosité perçue est importante.
RMS (valeur 1)
L'angle de phase est ajusté de sorte que la tension RMS (et donc la puissance RMS) soit proportionnelle au niveau défini.
Perceived brightness (incandescent)
100% | /
| /
50% | /
| /
0% | /
+------------------
0% 50% 100%
Level setCas d'utilisation : Ampoules à incandescence et lampes halogènes. Avec la courbe RMS, un réglage de 50 produit environ la moitié de la luminosité perçue par rapport à 100.
Non recommandé pour : Les ampoules LED — les pilotes LED dimmables régulent le courant en interne et la relation entre l'angle de phase et la sortie lumineuse est plus complexe.
LOG (valeur 2)
L'angle de phase suit une courbe logarithmique conçue pour produire des niveaux de luminosité perceptuellement uniformes. L'œil humain répond de façon logarithmique à l'intensité lumineuse (loi de Weber-Fechner), de sorte que des incréments égaux produisent des changements de perception approximativement égaux.
Perceived brightness (LED)
100% | /
| /
50% | /
| /
0% | /
+------------------
0% 50% 100%
Level setCas d'utilisation : Ampoules LED dimmables, éclairage d'ambiance, toute application où une gradation douce à faible niveau est importante. Évite la plainte courante selon laquelle les LED passent de « à peine allumées » à « très lumineuses » sur une petite plage.
Non recommandé pour : Les charges résistives ou inductives où le suivi de puissance (et non la luminosité perçue) est l'objectif.
Sélectionner la bonne courbe
| Charge | Courbe recommandée | Commande |
|---|---|---|
| LED dimmable | LOG | DlCurve 2 |
| Ampoule à incandescence | RMS | DlCurve 1 |
| Lampe halogène | RMS | DlCurve 1 |
| Radiateur résistif | LINEAR | DlCurve 0 |
| Moteur à balais (ventilateur, mixeur) | LINEAR | DlCurve 0 |
| Inconnu | Essayer les trois | -- |
La courbe peut être modifiée à tout moment sans affecter le niveau de luminosité actuel. La nouvelle courbe s'applique à partir de la prochaine commande de changement de luminosité.
Contrôle du fondu (Fade)
Fonctionnement
Le temps de fondu contrôle la durée que prend le matériel MCU pour passer du niveau de luminosité actuel à un niveau nouvellement commandé. Le fondu est entièrement implémenté dans le firmware MCU — une fois qu'un nouveau niveau est écrit via I2C, l'appareil monte en puissance en interne sans autre interaction avec Tasmota.
Calcul du temps
Fade time (seconds) = value * 0.1| Valeur | Temps de fondu |
|---|---|
| 0 | Instantané (sans fondu) |
| 1 | 100 ms |
| 5 | 500 ms |
| 10 | 1,0 seconde |
| 20 | 2,0 secondes |
| 50 | 5,0 secondes |
| 100 | 10,0 secondes |
| 255 | 25,5 secondes (maximum) |
Le fondu est par appareil, pas par canal
Tous les canaux d'un seul appareil partagent le même temps de fondu. Pour avoir des vitesses de fondu différentes sur différents canaux, ils doivent être sur des appareils séparés.
Utiliser le fondu avec les curseurs de l'interface web
Le réglage du fondu affecte toutes les commandes de changement de niveau, y compris celles des curseurs de l'interface web. Avec une valeur de fondu non nulle, déplacer le curseur envoie un nouveau niveau cible et l'appareil effectue une transition en douceur. Déplacer à nouveau le curseur avant la fin du fondu démarre une nouvelle transition à partir de la position actuelle.
Définir et interroger le fondu
DlFade 10 # Set device 1 fade to 1.0 second
DlFade2 0 # Set device 2 fade to instant
DlFade # Query device 1 current fade valueSurveillance de la température
Disponibilité de la fonctionnalité
La surveillance de la température est disponible lorsque le firmware MCU est compilé avec FEATURE_TEMPERATURE. Le pilote détecte cela automatiquement au démarrage en lisant le registre TEMP_CURRENT (0x40). Si le registre retourne 0xFF, la température n'est pas disponible et tous les champs de température sont supprimés.
Lecture de la température
La température brute est stockée dans le registre 0x40 avec un décalage de 50 :
Temperature (Celsius) = register_value - 50Cela permet une plage de -50 °C (valeur de registre 0) à +205 °C (valeur de registre 255). La plage de fonctionnement normale est de 20 °C à 100 °C.
États thermiques
Le firmware MCU gère la protection thermique de manière autonome. Six états sont définis :
| État | Valeur | Description | Action du pilote |
|---|---|---|---|
| NORMAL | 0 | Température en dessous du seuil d'avertissement | Aucune |
| WARNING | 1 | Température au-dessus du seuil d'avertissement | Journalisé au niveau DEBUG |
| DERATE | 2 | Réduction active de la sortie pour abaisser la température | Aucune — le matériel gère la sortie |
| CRITICAL | 3 | Réduction agressive de la sortie | Journalisé au niveau ERROR |
| SHUTDOWN | 4 | Toutes les sorties désactivées pour des raisons de sécurité | Journalisé au niveau ERROR |
| FAULT | 5 | Défaillance du capteur de température | Journalisé au niveau ERROR |
Les états CRITICAL, SHUTDOWN et FAULT déclenchent une entrée de journal au niveau ERROR :
DLK: Dev 0x50 thermal CRITICALLa protection thermique est gérée par le matériel
La MCU gère la réduction et l'arrêt de manière autonome. Tasmota ne peut pas contourner la protection thermique — si l'appareil est en état SHUTDOWN, l'écriture d'une valeur de luminosité n'a aucun effet jusqu'à ce que l'appareil refroidisse et quitte l'arrêt.
Surveillance via MQTT
Avec la température activée, chaque message SENSOR inclut la température actuelle et l'état :
{
"DimmerLink1": {
"Addr": "0x50",
"ACFreq": 50,
"Fade": 0,
"Ch1": {"Level": 75, "Curve": "LOG"},
"Temp": 42,
"Thermal": "NORMAL"
}
}Utilisez les règles Tasmota ou un système externe pour répondre aux changements d'état thermique.
Adressage multi-appareils
Le pilote prend en charge jusqu'à quatre appareils DimmerLink sur le même bus I2C (ou répartis sur deux bus). Les appareils sont numérotés de 1 à 4 dans l'ordre détecté lors du scan au démarrage — par ordre croissant d'adresse (0x08 à 0x77).
Numérotation des appareils
| Adresse I2C | Ordre de détection | Numéro d'appareil |
|---|---|---|
| 0x50 | 1er trouvé | Appareil 1 (suffixe 1 ou sans suffixe) |
| 0x51 | 2e trouvé | Appareil 2 (suffixe 2) |
| 0x52 | 3e trouvé | Appareil 3 (suffixe 3) |
Attribution d'adresses uniques
Tous les appareils DimmerLink sont livrés avec l'adresse I2C 0x50. Pour utiliser plusieurs appareils, chacun doit avoir une adresse unique assignée un par un avant de les connecter ensemble.
Étape par étape pour trois appareils :
Step 1: Connect Device A only (boots at 0x50)
Console: DlAddress 0x51
Result: Device A is now at 0x51
Step 2: Power off. Connect Device B only (boots at 0x50)
Console: DlAddress 0x52
Result: Device B is now at 0x52
Step 3: Power off. Connect Device C (keep at 0x50)
Power on all three together.
Three devices detected: 0x50, 0x51, 0x52Vérification de l'adresse
Le pilote vérifie le changement d'adresse en relisant le registre VERSION depuis la nouvelle adresse :
if (DL_ValidRead8(&ver, new_addr, DL_REG_VERSION, dev->bus) && ver == DL_FW_VERSION) {
dev->addr = new_addr;
// success
}Si la vérification échoue, la commande retourne une erreur. L'appareil physique a peut-être déjà changé d'adresse — exécutez DlStatus pour confirmer.
Plage d'adresses valide
Les adresses doivent être dans la plage 0x08 à 0x77 (inclus). Les adresses réservées 0x00-0x07 et 0x78-0x7F sont rejetées.
Notes sur les conflits d'adresses I2C
L'adresse par défaut 0x50 entre en conflit avec les appareils EEPROM/FRAM courants (FM24CXX, AT24Cxx, 24C256, 24LC256). Le pilote identifie les appareils DimmerLink spécifiquement par l'octet de version du firmware au registre 0x03, de sorte que les appareils non-DimmerLink à l'adresse 0x50 sont silencieusement ignorés. Cependant, pour éviter les transactions de bus indésirables, changez l'adresse DimmerLink si des appareils EEPROM partagent le bus.
0x10 to 0x4F are typically free of conflicts in standard Tasmota builds.Ordre de scan entre les bus
Si deux bus I2C sont actifs, le scan traite le bus 0 avant le bus 1. Un appareil sur le bus 0 à l'adresse 0x51 sera trouvé avant un appareil sur le bus 1 à l'adresse 0x50.
Migration depuis le pilote Berry
Si vous avez utilisé le pilote Berry DimmerLink.be et passez au pilote natif, notez les différences suivantes.
Ce qui change
| Aspect | Pilote Berry | Pilote natif |
|---|---|---|
| Préfixe de commande | DimmerLink, DimmerLink_Kitchen, etc. |
Dl |
| Sélection d'appareil | Par étiquette (nom) | Par ordre de détection (suffixe numérique) |
| Adressage des canaux | Chiffre final : DimmerLink_Kitchen2 |
Syntaxe ch,level : DlDim 2,50 |
| Commande de courbe | DimmerLink_KitchenCurve 2 |
DlCurve 2 |
| Commande de fondu | DimmerLink_KitchenFade 10 |
DlFade 10 |
| Relais virtuel | Oui — Power |
Non fourni |
| Préréglages | DimmerLinkPreset night |
Non fourni |
| Scanner de bus | DimmerLink.scan() dans la console Berry |
Non fourni ; utiliser I2CScan |
| Instances nommées | Oui — étiquettes dans dimmerlink.json |
Non fourni — appareils numérotés |
| Configuration | /dimmerlink.json sur le système de fichiers |
user_config_override.h à la compilation |
| Clé de télémétrie MQTT | Étiquette d'appareil (ex. "Kitchen") |
DimmerLink1, DimmerLink2, etc. |
Étapes de migration
- Flasher le nouveau firmware incluant
USE_DIMMERLINK. - Supprimer les fichiers du pilote Berry du système de fichiers (
DimmerLink.be,dimmerlink_loader.be) ou retirer la ligneload('dimmerlink_loader.be')deautoexec.be. Le pilote Berry et le pilote natif peuvent coexister mais répondront tous deux au même appareil et généreront une télémétrie en double. - Mettre à jour les automatisations MQTT — remplacer les noms de commandes
DimmerLink_parDlDim,DlCurve,DlFade. - Mettre à jour les abonnements MQTT — remplacer les clés d'appareils nommés (ex.
"Kitchen") par des clés numérotées ("DimmerLink1","DimmerLink2"). - Mettre à jour les appels HTTP API — remplacer
DimmerLink_Kitchen%2075parDlDim%2075(ouDlDim2%2075pour le deuxième appareil). - Relais virtuels — si vous utilisiez
Powerpour basculer les appareils, implémentez une logique équivalente avec les règles Tasmota et les commandesDlDim. - Préréglages — si vous utilisiez
DimmerLinkPreset, créez des règles Tasmota ou des scripts Berry équivalents qui émettent des commandesDlDim.