Yeelight Blue 電球

提供: IoT
移動先: 案内検索

Go Up to ThingConnect デバイス


Yeelight Blue 電球は、色数 1,600 万色以上で調色可能な Bluetooth LED 電球です。

TYeelightBlue コンポーネントを使用すると、Yeelight Blue 電球と通信することができます。

デモ用サンプル プロジェクト

Yeelight Blue 電球のサンプル プロジェクトは、上記コンポーネントのインストール後、次の IoT デモ ディレクトリにあります。

  • [スタート|すべてのアプリ|Embarcadero RAD Studio Berlin|サンプル]を選択したあと、次に移動します。
    • Delphi の場合: Internet of Things\Object Pascal\Thing Connect\Yeelight Bulb
    • C++ の場合: Internet of Things\CPP\Thing Connect\Yeelight Bulb

サポートされているサービス

Yeelight Blue 電球では、次の Bluetooth LE サービスおよびキャラクタリスティックをサポートしています。

サービス キャラクタリスティック プロパティ イベント 読み取り サブスクライブ 書き込み
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

Yeelight Blue 電球コンポーネントでは、次のカスタム サービスをサポートしています。

サービス プロパティ イベント 読み取り サブスクライブ 書き込み 説明
カスタム サービス ControlCharacter OnControlCharacterUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 1: ControlCharacter

TControlCharacter インスタンスを返します。

DelayOnOff OnDelayOnOffUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 2: DelayOnOff

TDelayOnOff インスタンスを返します。

DelayOnOffStatusQuery OnDelayOnOffStatusQueryUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 3: DelayOnOffStatusQuery

TGenericQuery インスタンスを返します。

OnDelayOnOffStatusResponseUpdate
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 4: DelayOnOffStatusResponse

TDelayOnOffStatusResponse インスタンスを返します。

StatusQuery OnStatusQueryUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 5: StatusQuery

TGenericQuery インスタンスを返します。

OnStatusQueryResponseUpdate
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 6: StatusQueryResponse

TStatusQueryResponse インスタンスを返します。

ColorFlow OnColorFlowUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 7: ColorFlow

TColorFlow インスタンスを返します。

LEDName OnLEDNameUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 8: LEDName

TLEDName インスタンスを返します。

OnLEDNameResponseUpdate
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 9: LEDNameResponse

TLEDNameResponse インスタンスを返します。

YeeLightCustomChar10 OnYeeLightCustomChar10Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 10

TYeeLightBlueCustomChar インスタンスを返します。

OnYeeLightCustomChar11Update
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 11

TYeeLightBlueCustomChar インスタンスを返します。

EffectSetting OnEffectSettingUpdate
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 12: EffectSetting

TGenericQuery インスタンスを返します。

YeeLightCustomChar13 OnYeeLightCustomChar13Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 13

TYeeLightBlueCustomChar インスタンスを返します。

YeeLightCustomChar14 OnYeeLightCustomChar14Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 14

TYeeLightBlueCustomChar インスタンスを返します。

YeeLightCustomChar15 OnYeeLightCustomChar15Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 15

TYeeLightBlueCustomChar インスタンスを返します。

YeeLightCustomChar16 OnYeeLightCustomChar16Update
YesSubscriptionFeature.png
YesSubscriptionFeature.png
Yeelight Blue のカスタム サービスのキャラクタリスティック 16

TYeeLightBlueCustomChar インスタンスを返します。

カスタム データ型

Yeelight Blue 電球では、次のユニットにカスタム データ型が定義されています。

  • Iot.Device.YeeLightBlueTypes

Yeelight Blue 電球のコマンド

TLEDCommand 型は、Yeelight Blue 電球の使用可能な機能を制御するためのさまざまなコマンドを列挙したものです。以下のコマンドがあります。

  • ControlCharacterOn - 電球を点けます。
  • ControlCharacterOff - 電球を消します。
  • DelayOnOffStatusQuery - DelayOnOff 状態を問い合わせます。
  • StatusQuery - 電球の状態(色、明るさ、カラー フロー)を問い合わせます。
  • ColorFlowStart - 定義済みのカラー フローを開始します。
  • ColorFlowStop - カラー フローを停止します。
  • LEDName - 各 LEDNameQuery コマンドで、名前のシーケンス番号および文字がこのコマンドに渡され、結果が返されます。詳細については、「電球の名前を定義する」を参照してください。
  • LEDNameEnd - 電球の名前を設定する際には、このコマンドを使用して名前の終わりを示します。また、各 LEDNameQuery コマンドで返され、返された名前の終わりを示します。詳細については、「電球の名前を定義する」を参照してください。
  • LEDNameQuery - 電球の名前を問い合わせます。詳細については、「電球の名前を問い合わせる」を参照してください。
  • DefaultColor - 現在の色を LED の電源投入時のデフォルト色として設定します。
  • Gradual - グラデーション モードを設定します。したがって、LED の色を変更すると、一方の色からもう一方の色に徐々に切り替わります。
  • NonGradual - 非グラデーション モードを設定します。したがって、LED の色を変更すると、一方の色からもう一方の色に即座に切り替わります。

Yeelight Blue 電球の制御特性

TControlCharacter 型には、YeeLight の LED 制御特性キャラクタリスティック(UUID:FFF1)のビット フィールドが格納されています。TControlCharacter は、LED のオン/オフ、色、明るさを設定するのに使用されます。

  • Create: コンストラクタには 3 つのオーバーロード メソッドがあります。
    • 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列TControlCharacter のインスタンスを初期化します。
      • パラメータ: AValueTBytes 型)
    • 2 番目のオーバーロード メソッド: デバイスに色成分値を書き込みます。
    • 3 番目のオーバーロード メソッド: LED の色成分のオン/オフを書き込みます。
      • パラメータ: CommandTLEDCommand 型)。Command パラメータには ControlCharacterOn コマンドと ControlCharacterOff コマンドのみ指定できます。
  • Value: デバイスから受信した未加工のバイト配列
  • ColorValue: 色の制御値を示す TAlphaColor インスタンスを返します。
  • Brightness: 明るさの制御値を示す Int8 を返します。

Yeelight Blue 電球の遅延オン/オフ

TDelayOnOff 型には、YeeLight の LED 遅延オン/オフ キャラクタリスティック(UUID:FFF2)のビット フィールドが格納されています。TDelayOnOff は、LED の遅延オン/オフを設定するのに使用されます。

  • Create: コンストラクタには 2 つのオーバーロード メソッドがあります。
    • 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列TDelayOnOff のインスタンスを初期化します。
      • パラメータ: AValueTBytes 型)
    • 2 番目のオーバーロード メソッド: デバイスに遅延のオン/オフを書き込みます。
      • パラメータ: Time および StatusInteger 型)
  • Value: デバイスから受信した未加工のバイト配列
  • DelayTime: 遅延時間(分単位)を Int32 インスタンスとして返します。
  • DelayOnOff: 遅延のオン/オフ状態を Int8 として返します。

Yeelight Blue 電球の汎用クエリ

TGenericQuery 型には、3 つの YeeLight キャラクタリスティック(UUID:FFF3、UUID:FFF5、UUID:FFFC)のビット フィールドが格納されています。TGenericQuery は、LED とその時間遅延の状態を問い合わせるのに使用されるほか、効果設定を設定するのに使用されます。

  • Create: コンストラクタには 2 つのオーバーロード メソッドがあります。
    • 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列TGenericQuery のインスタンスを初期化します。
      • パラメータ: AValueTBytes 型)
    • 2 番目のオーバーロード メソッド: 汎用クエリであり、その機能は所有側プロパティによって異なります。所有側プロパティは DelayOnOffStatusQueryStatusQueryEffectSetting のいずれかで、これらはそれぞれ、LED 状態の問い合わせ、時間遅延状態の問い合わせ、効果設定の設定に使用されます。
      • パラメータ: CommandTLEDCommand 型)。Command パラメータには、次のように、所有側プロパティに応じて、異なるコマンドを指定できます。
        1. DelayOnOffStatusQuery - DelayOnOffStatusQuery コマンドを指定できます。
        2. StatusQuery - StatusQuery コマンドを指定できます。
        3. EffectSetting - DefaultColorGradualNonGradual の各コマンドを指定できます。
  • CommandValue: 所有側プロパティの対応するコマンド値を TLEDCommand 型インスタンスとして返します。
  • Value: デバイスから受信した未加工のバイト配列

Yeelight Blue 電球の遅延オン/オフ状態応答

TDelayOnOffStatusResponse 型には、YeeLight の遅延オン/オフ状態応答キャラクタリスティック(UUID:FFF4)のビット フィールドが格納されています。TDelayOnOffStatusResponse は、時間遅延の状態を通知するのに使用されます。

  • Create: デバイスから受信したバイト配列TDelayOnOffStatusResponse のインスタンスを初期化します。
  • Value: デバイスから受信した未加工のバイト配列
  • DelayStatusQueryResponse: 通知の状態の文字列を返します。
  • DelayStatusResponseTime: 遅延オン/オフの時間(分単位)を Int32 として通知します。
  • DelayStatusResponseOnOff: 遅延オン/オフの状態を Int8 として通知します。

Yeelight Blue 電球の状態クエリ応答

TStatusQueryResponse 型には、YeeLight の状態クエリ応答キャラクタリスティック(UUID:FFF6)のビット フィールドが格納されています。TStatusQueryResponse は、LED の状態を通知するのに使用されます。

  • Create: デバイスから受信したバイト配列TStatusQueryResponse のインスタンスを初期化します。
  • Value: デバイスから受信した未加工のバイト配列
  • Color: LED の色成分を TAlphaColor インスタンスとして通知します。
  • Brightness: LED の明るさを Int8 として通知します。
  • ColorFlow: LED のカラー フローを Int8 として通知します。
  • Delay: LED の遅延を Int8 として通知します。

Yeelight Blue 電球のカラー フロー

TColorFlow 型には、YeeLight のカラー フロー キャラクタリスティック(UUID:FFF7)のビット フィールドが格納されています。TColorFlow は、LED のカラー フローの設定/開始/停止を行うのに使用されます。

  • Create: コンストラクタには 3 つのオーバーロード メソッドがあります。
    • 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列TColorFlow のインスタンスを初期化します。
      • パラメータ: AValueTBytes 型)
    • 2 番目のオーバーロード メソッド: デバイスにカラー フロー値を書き込みます。
    • 3 番目のオーバーロード メソッド: カラー フローのオン/オフを書き込みます。
      • パラメータ: CommandTLEDCommand 型)。Command パラメータには ColorFlowStart コマンドと ColorFlowStop コマンドのみ指定できます。
  • Value: デバイスから受信した未加工のバイト配列
  • ColorSequence: LED のカラー フロー シーケンスを Int8 として返します。
  • ColorValue: LED のを返します。
  • ColorBrightness: LED の明るさを Int8 として返します。
  • ColorTime: LED のカラー フロー変更時間(秒単位)を Int8 として返します。

Yeelight Blue 電球の LED 名

TLEDName 型には、YeeLight の LED 名キャラクタリスティック(UUID:FFF8)のビット フィールドが格納されています。TLEDName は、LED の名前の設定や問い合わせに使用されます。

  • Create: コンストラクタには 3 つのオーバーロード メソッドがあります。
    • 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列TLEDName のインスタンスを初期化します。
      • パラメータ: AValueTBytes 型)
    • 2 番目のオーバーロード メソッド: デバイスに LED 名を書き込みます。「電球の名前を定義する」を参照してください。
      • パラメータ: SequenceInteger 型、値の範囲は 0 ~ 5)および Name(文字列型、最大 11 文字)
    • 3 番目のオーバーロード メソッド: 名前の挿入が完了したことを示すため、または、デバイスの名前を問い合わせるために使用できます。「電球の名前を定義する」や「電球の名前を問い合わせる」を参照してください。
      • パラメータ: CommandTLEDCommand 型)。Command パラメータには LEDNameEnd コマンドと LEDNameQuery コマンドのみ指定できます。
  • Value: デバイスから受信した未加工のバイト配列
  • QueryType: クエリの種類を TLEDCommand インスタンスとして返します。QueryType の値は LEDNameLEDNameEndLEDNameQuery のいずれかです。
  • LEDNameSequence: LED 名が 11 文字より長い場合、LED 名シーケンス番号を Int8 として返します。
  • LEDName: LED 名の文字列を返します。

Yeelight Blue 電球の LED 名応答

TLEDNameResponse レコードには、YeeLight の LED 名キャラクタリスティック(UUID:FFF9)のビット フィールドが格納されています。

  • Create: デバイスから受信したバイト配列TLEDNameResponse のインスタンスを初期化します。
  • Value: デバイスから受信した未加工のバイト配列
  • QueryType: クエリの種類を TLEDCommand インスタンスとして返します。QueryType の値は LEDNameLEDNameEndLEDNameQuery のいずれかです。
  • LEDNameSequence: LED 名が 11 文字より長い場合、LED 名シーケンス番号を Int8 として通知します。
  • LEDName: LED 名の文字列を返します。

Yeelight Blue 電球のカスタム キャラクタリスティック

TYeeLightBlueCustomChar 型には、その他の YeeLight カスタム キャラクタリスティックのビット フィールドが格納されています。

  • Create: デバイスから受信したバイト配列TYeeLightBlueCustomChar のインスタンスを初期化します。
  • Value: デバイスから受信した未加工のバイト配列

デバイスの詳細

  • デバイス: Yeelight Blue II
  • モデル: BUL22BL0101
  • ファームウェア: 1.0

既知の問題

  • Yeelight Blue 電球デバイスは、Windows マシンとペアにすることはできません。アプリケーションのターゲット プラットフォームが 32 ビット Windows64 ビット Windows の場合は、Yeelight Blue 電球とペアにすることはできません。

デバイス固有の情報

電球の名前を定義する

電球の名前を設定するには、LEDName プロパティと、少なくとも次の 2 つのコマンドを使用します。

  1. 電球名の文字を指定する最初のコマンド。
  2. 名前の終わりを指定する LEDNameEnd コマンド。

この電球では、いくつかの異なる文字シーケンスで名前を設定することにより、長い名前を使用することができます。そのために、最大 11 文字のシーケンスを最大 6 個使用することができます。各文字シーケンスは、シーケンス番号を指定する整数と、名前の文字を指定する文字列で構成されます(TLEDName プロパティの Create の第 2 オーバーロード メソッドを参照)。次のサンプル コードでは、3 つの文字シーケンスで電球の名前を設定しています。

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);

電球の名前を問い合わせる

電球の名前を問い合わせるには、次のようにコーディングします。

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

カラー フロー キャラクタリスティックを使用する

カラー フロー キャラクタリスティックを使用するには、特定のカラー フローを設定するために TColorFlow コンストラクタを使用します。そのあと、ColorFlowStart コマンドまたは ColorFlowStop コマンドを使用して、カラー フローを開始または停止します。

次のサンプル コードでは、TColorFlow の 2 番目のコンストラクタを使用して、赤、黄、緑の 3 色のカラー フローを定義しています。このフローの最初の色は赤で、強度 50% で定義されており、1 秒間持続します。2 番目の色は黄で、強度 70% で定義されており、3 秒間持続します。最後の色は緑で、強度 90% で定義されており、2 秒間持続します。

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);

いったんカラー フローを定義したら、ColorFlowStart コマンドまたは ColorFlowStop コマンドを使用して、カラー フローを開始または停止します。次のサンプル コードを参照してください。

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

関連項目