Yeelight Blue 電球
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
- Delphi の場合:
サポートされているサービス
Yeelight Blue 電球では、次の Bluetooth LE サービスおよびキャラクタリスティックをサポートしています。
サービス | キャラクタリスティック | プロパティ | イベント | 読み取り | サブスクライブ | 書き込み |
---|---|---|---|---|---|---|
Device Information | Firmware Revision String | FirmwareRevision
|
OnFirmwareRevisionUpdate
|
|||
Hardware Revision String | HardwareRevision
|
OnHardwareRevisionUpdate
|
||||
IEEE 11073-20601 Regulatory Certification Data List | IEEERegulatory
|
OnIEEERegulatoryUpdate
|
||||
Manufacturer Name String | ManufacturerName
|
OnManufacturerNameUpdate
|
||||
Model Number String | ModelNumber
|
OnModelNumberUpdate
|
||||
PnP ID | PnPID
|
OnPnPIDUpdate
|
||||
Serial Number String | SerialNumber
|
OnSerialNumberUpdate
|
||||
Software Revision String | SoftwareRevision
|
OnSoftwareRevisionUpdate
|
||||
System ID | SystemID
|
OnSystemIDUpdate
|
Yeelight Blue 電球コンポーネントでは、次のカスタム サービスをサポートしています。
サービス | プロパティ | イベント | 読み取り | サブスクライブ | 書き込み | 説明 |
---|---|---|---|---|---|---|
カスタム サービス | ControlCharacter
|
OnControlCharacterUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 1: ControlCharacter TControlCharacter インスタンスを返します。 | |||
DelayOnOff
|
OnDelayOnOffUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 2: DelayOnOff TDelayOnOff インスタンスを返します。 | ||||
DelayOnOffStatusQuery
|
OnDelayOnOffStatusQueryUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 3: DelayOnOffStatusQuery TGenericQuery インスタンスを返します。 | ||||
OnDelayOnOffStatusResponseUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 4: DelayOnOffStatusResponse TDelayOnOffStatusResponse インスタンスを返します。 | |||||
StatusQuery
|
OnStatusQueryUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 5: StatusQuery TGenericQuery インスタンスを返します。 | ||||
OnStatusQueryResponseUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 6: StatusQueryResponse TStatusQueryResponse インスタンスを返します。 | |||||
ColorFlow
|
OnColorFlowUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 7: ColorFlow TColorFlow インスタンスを返します。 | ||||
LEDName
|
OnLEDNameUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 8: LEDName TLEDName インスタンスを返します。 | ||||
OnLEDNameResponseUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 9: LEDNameResponse TLEDNameResponse インスタンスを返します。 | |||||
YeeLightCustomChar10
|
OnYeeLightCustomChar10Update
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 10 TYeeLightBlueCustomChar インスタンスを返します。 | ||||
OnYeeLightCustomChar11Update
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 11 TYeeLightBlueCustomChar インスタンスを返します。 | |||||
EffectSetting
|
OnEffectSettingUpdate
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 12: EffectSetting TGenericQuery インスタンスを返します。 | ||||
YeeLightCustomChar13
|
OnYeeLightCustomChar13Update
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 13 TYeeLightBlueCustomChar インスタンスを返します。 | ||||
YeeLightCustomChar14
|
OnYeeLightCustomChar14Update
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 14 TYeeLightBlueCustomChar インスタンスを返します。 | ||||
YeeLightCustomChar15
|
OnYeeLightCustomChar15Update
|
Yeelight Blue のカスタム サービスのキャラクタリスティック 15 TYeeLightBlueCustomChar インスタンスを返します。 | ||||
YeeLightCustomChar16
|
OnYeeLightCustomChar16Update
|
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
のインスタンスを初期化します。- パラメータ:
AValue
(TBytes 型)
- パラメータ:
- 2 番目のオーバーロード メソッド: デバイスに色成分値を書き込みます。
- パラメータ:
Color
(TAlphaColor 型)とIntensity
(Integer 型)
- パラメータ:
- 3 番目のオーバーロード メソッド: LED の色成分のオン/オフを書き込みます。
- パラメータ:
Command
(TLEDCommand
型)。Command
パラメータにはControlCharacterOn
コマンドとControlCharacterOff
コマンドのみ指定できます。
- パラメータ:
- 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列で
Value
: デバイスから受信した未加工のバイト配列。ColorValue
: 色の制御値を示す TAlphaColor インスタンスを返します。Brightness
: 明るさの制御値を示す Int8 を返します。
Yeelight Blue 電球の遅延オン/オフ
TDelayOnOff
型には、YeeLight の LED 遅延オン/オフ キャラクタリスティック(UUID:FFF2)のビット フィールドが格納されています。TDelayOnOff
は、LED の遅延オン/オフを設定するのに使用されます。
Create
: コンストラクタには 2 つのオーバーロード メソッドがあります。Value
: デバイスから受信した未加工のバイト配列。DelayTime
: 遅延時間(分単位)を Int32 インスタンスとして返します。DelayOnOff
: 遅延のオン/オフ状態を Int8 として返します。
Yeelight Blue 電球の汎用クエリ
TGenericQuery
型には、3 つの YeeLight キャラクタリスティック(UUID:FFF3、UUID:FFF5、UUID:FFFC)のビット フィールドが格納されています。TGenericQuery
は、LED とその時間遅延の状態を問い合わせるのに使用されるほか、効果設定を設定するのに使用されます。
Create
: コンストラクタには 2 つのオーバーロード メソッドがあります。- 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列で
TGenericQuery
のインスタンスを初期化します。- パラメータ:
AValue
(TBytes 型)
- パラメータ:
- 2 番目のオーバーロード メソッド: 汎用クエリであり、その機能は所有側プロパティによって異なります。所有側プロパティは
DelayOnOffStatusQuery
、StatusQuery
、EffectSetting
のいずれかで、これらはそれぞれ、LED 状態の問い合わせ、時間遅延状態の問い合わせ、効果設定の設定に使用されます。- パラメータ:
Command
(TLEDCommand
型)。Command
パラメータには、次のように、所有側プロパティに応じて、異なるコマンドを指定できます。DelayOnOffStatusQuery
-DelayOnOffStatusQuery
コマンドを指定できます。StatusQuery
-StatusQuery
コマンドを指定できます。EffectSetting
-DefaultColor
、Gradual
、NonGradual
の各コマンドを指定できます。
- パラメータ:
- 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列で
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
のインスタンスを初期化します。- パラメータ:
AValue
(TBytes 型)
- パラメータ:
- 2 番目のオーバーロード メソッド: デバイスにカラー フロー値を書き込みます。
- パラメータ:
Sequence
(Integer 型)、AColor
(TAlphaColor 型)、Intensity
(Integer 型)、Time
(Integer 型)。
- パラメータ:
- 3 番目のオーバーロード メソッド: カラー フローのオン/オフを書き込みます。
- パラメータ:
Command
(TLEDCommand
型)。Command
パラメータにはColorFlowStart
コマンドとColorFlowStop
コマンドのみ指定できます。
- パラメータ:
- 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列で
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
のインスタンスを初期化します。- パラメータ:
AValue
(TBytes 型)
- パラメータ:
- 2 番目のオーバーロード メソッド: デバイスに LED 名を書き込みます。「電球の名前を定義する」を参照してください。
- パラメータ:
Sequence
(Integer 型、値の範囲は 0 ~ 5)およびName
(文字列型、最大 11 文字)
- パラメータ:
- 3 番目のオーバーロード メソッド: 名前の挿入が完了したことを示すため、または、デバイスの名前を問い合わせるために使用できます。「電球の名前を定義する」や「電球の名前を問い合わせる」を参照してください。
- パラメータ:
Command
(TLEDCommand
型)。Command
パラメータにはLEDNameEnd
コマンドとLEDNameQuery
コマンドのみ指定できます。
- パラメータ:
- 1 番目のオーバーロード メソッド: デバイスから受信したバイト配列で
Value
: デバイスから受信した未加工のバイト配列。QueryType
: クエリの種類をTLEDCommand
インスタンスとして返します。QueryType
の値はLEDName
、LEDNameEnd
、LEDNameQuery
のいずれかです。LEDNameSequence
: LED 名が 11 文字より長い場合、LED 名シーケンス番号を Int8 として返します。LEDName
: LED 名の文字列を返します。
Yeelight Blue 電球の LED 名応答
TLEDNameResponse
レコードには、YeeLight の LED 名キャラクタリスティック(UUID:FFF9)のビット フィールドが格納されています。
Create
: デバイスから受信したバイト配列でTLEDNameResponse
のインスタンスを初期化します。Value
: デバイスから受信した未加工のバイト配列。QueryType
: クエリの種類をTLEDCommand
インスタンスとして返します。QueryType
の値はLEDName
、LEDNameEnd
、LEDNameQuery
のいずれかです。LEDNameSequence
: LED 名が 11 文字より長い場合、LED 名シーケンス番号を Int8 として通知します。LEDName
: LED 名の文字列を返します。
Yeelight Blue 電球のカスタム キャラクタリスティック
TYeeLightBlueCustomChar
型には、その他の YeeLight カスタム キャラクタリスティックのビット フィールドが格納されています。
デバイスの詳細
- デバイス:
Yeelight Blue II
- モデル:
BUL22BL0101
- ファームウェア:
1.0
既知の問題
- Yeelight Blue 電球デバイスは、Windows マシンとペアにすることはできません。アプリケーションのターゲット プラットフォームが 32 ビット Windows か 64 ビット Windows の場合は、Yeelight Blue 電球とペアにすることはできません。
デバイス固有の情報
電球の名前を定義する
電球の名前を設定するには、LEDName
プロパティと、少なくとも次の 2 つのコマンドを使用します。
- 電球名の文字を指定する最初のコマンド。
- 名前の終わりを指定する
LEDNameEnd
コマンド。
この電球では、いくつかの異なる文字シーケンスで名前を設定することにより、長い名前を使用することができます。そのために、最大 11 文字のシーケンスを最大 6 個使用することができます。各文字シーケンスは、シーケンス番号を指定する整数と、名前の文字を指定する文字列で構成されます(TLEDName
プロパティの Create
の第 2 オーバーロード メソッドを参照)。次のサンプル コードでは、3 つの文字シーケンスで電球の名前を設定しています。
YeelightBlue1.LEDName := TLEDName.Create(0, 'MyPretty');
YeelightBlue1.LEDName := TLEDName.Create(1, 'AndColorful');
YeelightBlue1.LEDName := TLEDName.Create(2, 'LightBulb');
YeelightBlue1.LEDName := TLEDName.Create(TLEDCommand.LEDNameEnd);
YeelightBlue1->LEDName = TLEDName(0, "MyPretty");
YeelightBlue1->LEDName = TLEDName(1, "AndColorful");
YeelightBlue1->LEDName = TLEDName(2, "LightBulb");
YeelightBlue1->LEDName = TLEDName(TLEDCommand::LEDNameEnd);
電球の名前を問い合わせる
電球の名前を問い合わせるには、次のようにコーディングします。
YeelightBlue1.LEDName := TLEDName.Create(TLEDCommand.LEDNameQuery);
YeelightBlue1->LEDName = TLEDName(TLEDCommand::LEDNameQuery);
カラー フロー キャラクタリスティックを使用する
カラー フロー キャラクタリスティックを使用するには、特定のカラー フローを設定するために TColorFlow
コンストラクタを使用します。そのあと、ColorFlowStart
コマンドまたは ColorFlowStop
コマンドを使用して、カラー フローを開始または停止します。
次のサンプル コードでは、TColorFlow
の 2 番目のコンストラクタを使用して、赤、黄、緑の 3 色のカラー フローを定義しています。このフローの最初の色は赤で、強度 50% で定義されており、1 秒間持続します。2 番目の色は黄で、強度 70% で定義されており、3 秒間持続します。最後の色は緑で、強度 90% で定義されており、2 秒間持続します。
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);
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
コマンドを使用して、カラー フローを開始または停止します。次のサンプル コードを参照してください。
YeelightBlue1.ColorFlow := TColorFlow.Create(TLEDCommand.ColorFlowStart);
// ...
YeelightBlue1.ColorFlow := TColorFlow.Create(TLEDCommand.ColorFlowStop);
YeelightBlue1->ColorFlow = TColorFlow(TLEDCommand::ColorFlowStart);
// ...
YeelightBlue1->ColorFlow = TColorFlow(TLEDCommand::ColorFlowStop);