Ampoule Yeelight Blue

De IoT
Aller à : navigation, rechercher

Aller au parent Périphériques ThingConnect


L'ampoule Yeelight Blue, Yeelight Blue Light Bulb, est une ampoule Bluetooth LED avec 16 millions de couleurs offrant des nuances de lumière blanche chaudes et lumineuses.

Utilisez le composant TVeraAeotecLEDBulb TYeelightBlue pour communiquer avec l'ampoule Yeelight Blue Light.

Projets exemple de la démo

Après l'installation du composant, les projets exemple associés au composant Yeelight Blue Light Bulb se trouvent dans les répertoires démo IoT suivants :

  • Démarrer | Programmes | Embarcadero RAD Studio Berlin | Exemples puis naviguez jusqu'à :
    • Delphi : Internet of Things\Object Pascal\Thing Connect\Yeelight Bulb
    • C++ : Internet of Things\CPP\Thing Connect\Yeelight Bulb

Services pris en charge

Le composant Yeelight Blue Light Bulb prend en charge les services et les caractéristiques Bluetooth LE suivants :

Service Caractéristique Propriété Evénement Lecture Abonnement Ecriture
Device Information Firmware Revision String FirmwareRevision OnFirmwareRevisionUpdate
YesSubscriptionFeature.png
Hardware Revision String HardwareRevision OnHardwareRevisionUpdate
YesSubscriptionFeature.png
IEEE 11073-20601 Regulatory Certification Data List IEEERegulatory OnIEEERegulatoryUpdate
YesSubscriptionFeature.png
Manufacturer Name String ManufacturerName OnManufacturerNameUpdate
YesSubscriptionFeature.png
Model Number String ModelNumber OnModelNumberUpdate
YesSubscriptionFeature.png
PnP ID PnPID OnPnPIDUpdate
YesSubscriptionFeature.png
Serial Number String SerialNumber OnSerialNumberUpdate
YesSubscriptionFeature.png
Software Revision String SoftwareRevision OnSoftwareRevisionUpdate
YesSubscriptionFeature.png
System ID SystemID OnSystemIDUpdate
YesSubscriptionFeature.png

Le composant Yeelight Blue Light Bulb prend en charge les services personnalisés suivants :

Service Propriété Evénement Lecture Abonnement Ecriture Description
Custom Service ControlCharacter OnControlCharacterUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 1 du service personnalisé Yeelight Blue : ControlCharacter

Renvoie un TControlCharacter.

DelayOnOff OnDelayOnOffUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 2 du service personnalisé Yeelight Blue : DelayOnOff

Renvoie un TDelayOnOff.

DelayOnOffStatusQuery OnDelayOnOffStatusQueryUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 3 du service personnalisé Yeelight Blue : DelayOnOffStatusQuery

Renvoie un TGenericQuery.

OnDelayOnOffStatusResponseUpdate
YesSubscriptionFeature.png
Caractéristique 4 du service personnalisé Yeelight Blue : DelayOnOffStatusResponse

Renvoie un TDelayOnOffStatusResponse.

StatusQuery OnStatusQueryUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 5 du service personnalisé Yeelight Blue : StatusQuery

Renvoie un TGenericQuery.

OnStatusQueryResponseUpdate
YesSubscriptionFeature.png
Caractéristique 6 du service personnalisé Yeelight Blue : StatusQueryResponse

Renvoie un TStatusQueryResponse.

ColorFlow OnColorFlowUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 7 du service personnalisé Yeelight Blue : ColorFlow

Renvoie un TColorFlow.

LEDName OnLEDNameUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 8 du service personnalisé Yeelight Blue : LEDName

Renvoie un TLEDName.

OnLEDNameResponseUpdate
YesSubscriptionFeature.png
Caractéristique 9 du service personnalisé Yeelight Blue : LEDNameResponse

Renvoie un TLEDNameResponse.

YeeLightCustomChar10 OnYeeLightCustomChar10Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 10 du service personnalisé Yeelight Blue

Renvoie un TYeeLightBlueCustomChar.

OnYeeLightCustomChar11Update
YesSubscriptionFeature.png
Caractéristique 11 du service personnalisé Yeelight Blue

Renvoie un TYeeLightBlueCustomChar.

EffectSetting OnEffectSettingUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 12 du service personnalisé Yeelight Blue : EffectSetting

Renvoie un TGenericQuery.

YeeLightCustomChar13 OnYeeLightCustomChar13Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 13 du service personnalisé Yeelight Blue

Renvoie un TYeeLightBlueCustomChar.

YeeLightCustomChar14 OnYeeLightCustomChar14Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 14 du service personnalisé Yeelight Blue

Renvoie un TYeeLightBlueCustomChar.

YeeLightCustomChar15 OnYeeLightCustomChar15Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 15 du service personnalisé Yeelight Blue

Renvoie un TYeeLightBlueCustomChar.

YeeLightCustomChar16 OnYeeLightCustomChar16Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Caractéristique 16 du service personnalisé Yeelight Blue

Renvoie un TYeeLightBlueCustomChar.

Types de données personnalisés

Le composant Yeelight Blue Light Bulb définit ses types de données personnalisés dans l'unité suivante :

  • Iot.Device.YeeLightBlueTypes

Commandes Yeelight Blue Light Bulb

Le type TLEDCommand énumère les différentes commandes contrôlant les fonctionnalités disponibles de l'ampoule Yeelight. Il s'agit des commandes suivantes :

  • ControlCharacterOn - Allume l'ampoule.
  • ControlCharacterOff - Eteint l'ampoule.
  • DelayOnOffStatusQuery - Demande l'état de DelayOnOff.
  • StatusQuery - Demande l'état de l'ampoule (couleur, luminosité, flux de couleurs).
  • ColorFlowStart - Démarre le flux de couleurs prédéfini.
  • ColorFlowStop - Arrête le flux de couleurs.
  • LEDName - Cette commande est renvoyée avec le numéro de la séquence et les caractères du nom de chaque LEDNameQuery. Pour plus d'informations, voir Définition du nom de l'ampoule.
  • LEDNameEnd - Lors de la définition du nom de l'ampoule, utilisez cette commande pour indiquer la fin du nom. Ce code est également renvoyé à chaque LEDNameQuery pour indiquer la fin du nom renvoyé. Pour plus d'informations, voir Définition du nom de l'ampoule.
  • LEDNameQuery - Demande le nom de l'ampoule. Pour plus d'informations, voir Interrogation du nom de l'ampoule.
  • DefaultColor - Définit la couleur en cours comme couleur par défaut lorsque la LED est allumée.
  • Gradual - Définit la couleur du mode graduel. Ainsi, lorsque vous changez la couleur de la LED, cette dernière effectue une transition en douceur d'une couleur à l'autre.
  • NonGradual - Définit la couleur du mode non graduel. Ainsi, lorsque vous changez la couleur de la LED, cette dernière effectue une transition immédiate d'une couleur à l'autre.

Caractère de contrôle Yeelight Blue Light Bulb

Le type TControlCharacter contient le champ de bits de la caractéristique caractère de contrôle YeeLight de la LED (UUID: FFF1). TControlCharacter est utilisé pour définir le paramétrage de la LED (activée/désactivée/couleur/luminosité).

  • Create : Le constructeur comporte trois méthodes surchargées.
    • Première méthode surchargée : Initialise une instance de TControlCharacter avec un tableau d'octets reçu du périphérique.
      • Paramètres : AValue avec le type TBytes.
    • Deuxième méthode surchargée : Ecrit les valeurs du composant couleur sur le périphérique.
    • Troisième méthode surchargée : Ecrit la valeur On/Off du composant couleur pour la LED.
      • Paramètres : Command avec le type TLEDCommand. Le paramètre Command admet uniquement les commandes ControlCharacterOn et ControlCharacterOff.
  • Value : Tableau d'octets brut reçu du périphérique.
  • ColorValue : Renvoie un TAlphaColor indiquant le contrôle de la couleur.
  • Brightness : Renvoie un Int8 indiquant le contrôle de la luminosité.

Délai d'activation/désactivation Yeelight Blue Light Bulb

Le type TDelayOnOff contient le champ de bits de la caractéristique délai d'activation/désactivation YeeLight de la LED (UUID: FFF2). TDelayOnOff est utilisé pour définir le délai d'activation/désactivation de la LED.

  • Create : Le constructeur comporte deux méthodes surchargées.
    • Première méthode surchargée : Initialise une instance de TDelayOnOff avec un tableau d'octets reçu du périphérique.
      • Paramètres : AValue avec le type TBytes.
    • Deuxième méthode surchargée : Ecrit le délai d'activation/désactivation du périphérique.
      • Paramètres : Time et Status avec le type Integer.
  • Value : Tableau d'octets brut reçu du périphérique.
  • DelayTime : Renvoie un Int32 avec le délai en minutes.
  • DelayOnOff : Renvoie un Int8 avec l'état du délai d'activation/désactivation.

Requête générique Yeelight Blue Light Bulb

Le type TGenericQuery contient le champ de bits des trois caractéristiques YeeLight (UUID: FFF3, UUID: FFF5 et UUID:FFFC). TGenericQuery est utilisé pour interroger les états de la LED et du délai d'activation/désactivation et pour définir les paramètres d'effet.

  • Create : Le constructeur comporte deux méthodes surchargées.
    • Première méthode surchargée : Initialise une instance de TGenericQuery avec un tableau d'octets reçu du périphérique.
      • Paramètres : AValue avec le type TBytes.
    • Deuxième méthode surchargée : En tant que requête générique, sa fonction dépend de la propriété du propriétaire. Les propriétés du propriétaire peuvent être : DelayOnOffStatusQuery, StatusQuery et EffectSetting, qui sont respectivement utilisées pour interroger l'état de la LED et l'état du délai, et pour définir les paramètres d'effet.
      • Paramètres : Command avec le type TLEDCommand. Le paramètre Command admet différentes commandes, selon la propriété du propriétaire :
        1. DelayOnOffStatusQuery - Admet la commande DelayOnOffStatusQuery.
        2. StatusQuery - Admet la commande StatusQuery.
        3. EffectSetting - Admet les commandes DefaultColor, Gradual et NonGradual.
  • CommandValue : Renvoie un type TLEDCommand avec la valeur de commande correspondante de la propriété du propriétaire.
  • Value : Tableau d'octets brut reçu du périphérique.

Réponse d'état de délai d'activation/désactivation Yeelight Blue Light Bulb

Le type TDelayOnOffStatusResponse contient le champ de bits de la caractéristique réponse d'état du délai d'activation/désactivation YeeLight de la LED (UUID: FFF4). TDelayOnOffStatusResponse est utilisé pour notifier l'état du délai d'activation/désactivation.

  • Create : Initialise une instance de TDelayOnOffStatusResponse avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.
  • DelayStatusQueryResponse : Renvoie une chaîne avec l'état de la notification.
  • DelayStatusResponseTime : Notifie les minutes du délai d'activation/désactivation sous la forme d'un Int32.
  • DelayStatusResponseOnOff : Notifie l'état du délai d'activation/désactivation sous la forme d'un Int8.

Réponse de requête d'état Yeelight Blue Light Bulb

Le type TStatusQueryResponse contient le champ de bits de la caractéristique réponse de requête d'état YeeLight (UUID: FFF6). TStatusQueryResponse est utilisé pour notifier l'état de la LED.

  • Create : Initialise une instance de TStatusQueryResponse avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.
  • Color : Notifie le composant couleur de la LED sous la forme d'un TAlphaColor.
  • Brightness : Notifie la luminosité de la LED sous la forme d'un Int8.
  • ColorFlow : Notifie le flux de couleurs de la LED sous la forme d'un Int8.
  • Delay : Notifie le délai de la LED sous la forme d'un Int8.

Flux de couleurs Yeelight Blue Light

Le type TColorFlow contient le champ de bits de la caractéristique flux de couleurs YeeLight (UUID: FFF7). TColorFlow est utilisé pour définir le flux de couleurs de la LED (définir/démarrer/arrêter).

  • Create : Le constructeur comporte trois méthodes surchargées.
    • Première méthode surchargée : Initialise une instance de TColorFlow avec un tableau d'octets reçu du périphérique.
      • Paramètres : AValue avec le type TBytes.
    • Deuxième méthode surchargée : Ecrit les valeurs du flux de couleurs sur le périphérique.
    • Troisième méthode surchargée : Ecrit la valeur On/Off pour le flux de couleurs.
      • Paramètres : Command avec le type TLEDCommand. Le paramètre Command admet uniquement les commandes ColorFlowStart et ColorFlowStop
  • Value : Tableau d'octets brut reçu du périphérique.
  • ColorSequence : Renvoie la séquence du flux de couleurs de la LED sous la forme d'un Int8.
  • ColorValue : Renvoie la couleur de la LED.
  • ColorBrightness : Renvoie un Int8 avec la luminosité de la LED.
  • ColorTime : Renvoie le délai de changement du flux de couleurs en secondes pour la LED sous la forme d'un Int8.

Nom de LED Yeelight Blue Light Bulb

Le type TLEDName contient le champ de bits de la caractéristique du nom de LED YeeLight (UUID: FFF8). TLEDName est utilisé pour définir/interroger le nom de la LED.

  • Create : Le constructeur comporte trois méthodes surchargées.
    • Première méthode surchargée : Initialise une instance de TLEDName avec un tableau d'octets reçu du périphérique.
      • Paramètres : AValue avec le type TBytes.
    • Deuxième méthode surchargée : Ecrit le nom de LED sur le périphérique. Voir Définition du nom de l'ampoule.
      • Paramètres : Sequence de type Integer (plage de valeurs : 0 à 5) et Name de type Chaîne (jusqu'à 11 caractères).
    • Troisième méthode surchargée : Elle peut être utilisée pour indiquer la fin de l'insertion du nom ou pour demander le nom du périphérique. Voir Définition du nom de l'ampoule et Interrogation du nom de l'ampoule.
      • Paramètres : Command de type TLEDCommand. Le paramètre Command admet uniquement les commandes LEDNameEnd et LEDNameQuery.
  • Value : Tableau d'octets brut reçu du périphérique.
  • QueryType : Renvoie le type de requête sous la forme d'un TLEDCommand. QueryType peut avoir l'une des trois valeurs possibles : LEDName, LEDNameEnd et LEDNameQuery.
  • LEDNameSequence : Renvoie le numéro de séquence du nom de LED sous la forme d'un Int8 au cas où le nom de LED est supérieur à 11 caractères.
  • LEDName : Renvoie une chaîne avec le nom de la LED.

Réponse de nom de LED Yeelight Blue Light Bulb

L'enregistrement TLEDNameResponse contient le champ de bits de la caractéristique du nom de LED YeeLight (UUID: FFF9).

  • Create : Initialise une instance de TLEDNameResponse avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.
  • QueryType : Renvoie le type de requête sous la forme d'un TLEDCommand. QueryType peut avoir l'une des trois valeurs possibles : LEDName, LEDNameEnd et LEDNameQuery.
  • LEDNameSequence : Notifie le numéro de séquence du nom de LED sous la forme d'un Int8 au cas où le nom de LED est supérieur à 11 caractères.
  • LEDName : Renvoie une chaîne avec le nom de la LED.

Caractéristiques personnalisées Yeelight Blue Light Bulb

Le type TYeeLightBlueCustomChar contient le champ de bits des autres caractéristiques personnalisées YeeLight.

  • Create : Initialise une instance de {{code|TYeeLightBlueCustomChar} avec un tableau d'octets reçu du périphérique.
  • Value : Tableau d'octets brut reçu du périphérique.

Informations sur le périphérique

  • Périphérique : Yeelight Blue II
  • Modèle : BUL22BL0101
  • Microprogramme : 1.0

Problèmes connus

  • Le périphérique Yeelight Blue Light Bulb ne peut pas être appairé à une machine Windows. Si la plate-forme cible de votre application est Windows 32 bits ou Windows 64 bits, elle ne pourra pas être appairée à l'ampoule Yeelight Blue Light.

Informations spécifiques au périphérique

Définition du nom de l'ampoule

Pour définir le nom de l'ampoule, utilisez la propriété LEDName et deux commandes :

  1. La première commande permet de spécifier les caractères composant le nom de l'ampoule.
  2. La commande LEDNameEnd permet de spécifier la fin du nom.

Cette ampoule vous permet d'utiliser des noms longs en définissant le nom sous différentes séquences de caractères. A cet égard, vous pouvez utiliser jusqu'à six séquences de 11 caractères maximum. Chaque séquence de caractères contient un entier qui définit le numéro de la séquence et la chaîne qui compose les caractères du nom (voir la seconde méthode Create surchargée de la propriété TLEDName). L'extrait de code suivant définit le nom de l'ampoule avec quatre séquences de caractères.

Delphi :
YeelightBlue1.LEDName := TLEDName.Create(0, 'MyPretty');
YeelightBlue1.LEDName := TLEDName.Create(1, 'AndColorful');
YeelightBlue1.LEDName := TLEDName.Create(2, 'LightBulb');
YeelightBlue1.LEDName := TLEDName.Create(TLEDCommand.LEDNameEnd);
C++ :
YeelightBlue1->LEDName = TLEDName(0, "MyPretty");
YeelightBlue1->LEDName = TLEDName(1, "AndColorful");
YeelightBlue1->LEDName = TLEDName(2, "LightBulb");
YeelightBlue1->LEDName = TLEDName(TLEDCommand::LEDNameEnd);

Interrogation du nom de l'ampoule

Utilisez l'instruction suivante pour interroger le nom de l'ampoule :

Delphi :
YeelightBlue1.LEDName := TLEDName.Create(TLEDCommand.LEDNameQuery);
C++ :
YeelightBlue1->LEDName = TLEDName(TLEDCommand::LEDNameQuery);

Utilisation de la caractéristique flux de couleurs

Pour employer la caractéristique flux de couleurs, utilisez le constructeur TColorFlow afin de définir un flux de couleurs spécifique. Les commandes ColorFlowStart et ColorFlowStop permettent ensuite de démarrer et d'arrêter le flux de couleurs.

L'extrait de code suivant utilise le deuxième constructeur de TColorFlow pour définir un flux de couleurs avec les trois couleurs suivantes : rouge, jaune et vert. Le rouge est la première couleur du flux ; elle est définie avec une intensité de 50 % et dure 1 seconde. Le jaune est la deuxième couleur du flux ; elle est définie avec une intensité de 70% et dure 3 secondes. Pour finir, le vert est la dernière couleur du flux ; elle est définie avec une intensité de 90% et dure 2 secondes.

Delphi :
YeelightBlue1.ColorFlow := TColorFlow.Create(0, TAlphaColorRec.Red, 50, 1);
YeelightBlue1.ColorFlow := TColorFlow.Create(1, TAlphaColorRec.Yellow, 70, 3);
YeelightBlue1.ColorFlow := TColorFlow.Create(2, TAlphaColorRec.Green, 90, 2);
C++ :
YeelightBlue1->ColorFlow = TColorFlow(0, TAlphaColorRec::Red, 50, 1);
YeelightBlue1->ColorFlow = TColorFlow(1, TAlphaColorRec::Yellow, 70, 3);
YeelightBlue1->ColorFlow = TColorFlow(2, TAlphaColorRec::Green, 90, 2);

Une fois le flux de couleurs défini, utilisez respectivement les commandes ColorFlowStart et ColorFlowStop pour démarrer et arrêter le flux de couleurs. Voir les extraits de code suivants :

Delphi :
YeelightBlue1.ColorFlow := TColorFlow.Create(TLEDCommand.ColorFlowStart);
// ...
YeelightBlue1.ColorFlow := TColorFlow.Create(TLEDCommand.ColorFlowStop);
C++ :
YeelightBlue1->ColorFlow = TColorFlow(TLEDCommand::ColorFlowStart);
// ...
YeelightBlue1->ColorFlow = TColorFlow(TLEDCommand::ColorFlowStop);

Voir aussi