Alexa.ThermostatController.Scheduleインターフェース3.2
ユーザーがサーモスタットのスケジュールを定義できるようにするには、AlexaスキルにAlexa.ThermostatController.Schedule
インターフェースを実装します。ユーザーは、デバイスまたはAlexaアプリから、温度のスケジュールを設定できます。
通常、Alexa.ThermostatController.Schedule
インターフェースは、Alexa.ThermostatController
インターフェース、Alexa.TemperatureSensor
インターフェースと併せて使用します。
Alexa.ThermostatController.Schedule
インターフェースがサポートするロケールについては、Alexaインターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。
発話
Alexa.ThermostatController.Schedule
インターフェースは、ほかのAlexaインターフェースとは異なります。スキルは、Alexaとユーザーとの音声対話を直接サポートしません。その代わり、Alexaがスキルと通信して、サーモスタットのスケジュールの設定と取得を行います。このインターフェースにはユーザー発話はありません。
プロパティとオブジェクト
Alexa.ThermostatController.Schedule
インターフェースには、次のプロパティとオブジェクトが含まれます。
出力可能なプロパティ
以下の表は、Alexa.ThermostatController.Schedule
インターフェースが定義するプロパティの一覧です。検出応答で、サポートするプロパティを指定します。すべてのプロパティはオプションです。サーモスタットデバイスの機能に対応するプロパティのみを含めてください。
プロパティ | 説明 | 型 |
---|---|---|
|
スケジュール内の予熱および予冷を有効/無効にする場合に使用します。たとえば、次のスケジュールが開始する前に、暖房、換気、エアコン(HVAC)システムの暖房をオンにし、次のスケジュール開始時に目標温度に達するようにします。 |
ブール値 |
|
サーモスタットのスケジュールを有効/無効にする場合に使用します。 |
ブール値 |
WeeklyScheduleオブジェクト
WeeklySchedule
オブジェクトは、サーモスタットデバイスのスケジュールを定義します。
プロパティ | 説明 | 型 | 必須 |
---|---|---|---|
|
サーモスタットに設定する温度単位です。この値は通常、 |
文字列 |
◯ |
|
月曜日のスケジュールを指定します。 |
|
◯ |
|
火曜日のスケジュールを指定します。 |
|
◯ |
|
水曜日のスケジュールを指定します。 |
|
◯ |
|
木曜日のスケジュールを指定します。 |
|
◯ |
|
金曜日のスケジュールを指定します。 |
|
◯ |
|
土曜日のスケジュールを指定します。 |
|
◯ |
|
日曜日のスケジュールを指定します。 |
|
◯ |
ScheduleEntryオブジェクト
ScheduleEntry
オブジェクトは、特定の曜日のサーモスタット温度設定の詳細を定義します。スケジュールエントリに終了時間は含まれません。次のスケジュールエントリが開始するときに終了します。
プロパティ | 説明 | 型 | 必須 |
---|---|---|---|
|
温度変更の開始時間を、日付が変わってからの分数で指定します。たとえば、午前5時は300分と指定します。有効な値: 0~1439。 |
整数 |
◯ |
|
次のスケジュールエントリまでに到達および維持したい、生活空間の目標温度を定義します。 |
|
◯ |
|
ファンの運転設定を指定します。 |
|
✕ |
|
温度変更の原因となるアクティビティの種類を指定します。 |
|
✕ |
SetPointsオブジェクト
SetPoints
オブジェクトは、生活空間の目標温度を定義します。
プロパティ | 説明 | 型 |
---|---|---|
|
このプロパティに温度を指定すると、サーモスタットは温度をこの設定値よりも下に維持しようとします。 | |
|
このプロパティに温度を指定すると、サーモスタットは温度をこの設定値よりも上に維持しようとします。 |
FanSettingオブジェクト
FanSetting
オブジェクトはファンの運転モードを定義します。
プロパティ | 説明 | 型 |
---|---|---|
|
ファンの運転設定を指定します。たとえば、 |
文字列 |
ActivityTypeオブジェクト
ActivityType
オブジェクトにより、ユーザーはアクティビティの種類に基づいてスケジュールを設定できるようになります。
プロパティ | 説明 | 型 |
---|---|---|
|
アクティビティの種類を指定します。 |
文字列 |
検出
Alexa.ThermostatController.Schedule
をサポートするエンドポイントは、Alexa.Discovery
の標準検出メカニズムを使用して表します。
Alexaからスキルに状態レポートリクエストが送信されたら、レポートするプロパティのretrievable
をtrue
に設定します。変更レポートでAlexaにプロアクティブにレポートするプロパティのproactivelyReported
をtrue
に設定します。
表示カテゴリーにはTHERMOSTAT
を使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。
configurationオブジェクト
Alexa.ThermostatController.Schedule
には、標準の検出応答フィールドのほかに、次のフィールドを含むconfiguration
オブジェクトを含めます。
プロパティ | 説明 | 型 | 必須 |
---|---|---|---|
|
ファンのサポートされる運転モードを指定します。 |
文字列の配列 |
◯ |
|
予熱または予冷をサポートするかどうかを指定します。 |
ブール値 |
◯ |
|
各日のスケジュールエントリの最大数です。制限が複雑な場合、スキルまたはデバイスでスケジュールを検証できます。 |
整数 |
✕ |
検出応答の例
以下は、サーモスタットの設定を受け入れ、Alexa.ThermostatController
インターフェースとAlexa.EndpointHealth
インターフェースをサポートするAlexaスキルのDiscover.Response
メッセージの例です。この例のサーモスタットデバイスは、状況に応じた復旧をサポートします。
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい"
},
"payload": {
"endpoints": [{
"endpointId": "エンドポイントの一意のID",
"manufacturerName": "サンプルメーカー",
"description": "Alexaアプリに表示される説明",
"friendlyName": "Alexaアプリに表示されるデバイス名",
"displayCategories": ["THERMOSTAT"],
"additionalAttributes": {
"manufacturer": "サンプルメーカー",
"model": "サンプルモデル",
"serialNumber": "デバイスのシリアル番号",
"firmwareVersion": "デバイスのファームウェアバージョン",
"softwareVersion": "デバイスのソフトウェアバージョン",
"customIdentifier": "デバイスのカスタム識別子"
},
"cookie": {},
"capabilities": [{
"type": "AlexaInterface",
"interface": "Alexa.ThermostatController",
"version": "3.2",
"properties": {
"supported": [
{
"name": "thermostatMode"
}
],
"proactivelyReported": true,
"retrievable": true
},
"configuration": {
"supportedModes": [
"HEAT",
"COOL",
"AUTO",
"OFF"
],
"supportsScheduling": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.ThermostatController.Schedule",
"version": "3.2",
"properties": {
"supported": [{
"name": "adaptiveRecoveryEnabled"
},
{
"name": "scheduleEnabled"
}
],
"proactivelyReported": true,
"retrievable": true
},
"configuration": {
"supportedFanModes": [
"ON",
"AUTO"
],
"supportsAdaptiveRecovery": true,
"maxEntryPerDay": 4
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.EndpointHealth",
"version": "3.1",
"properties": {
"supported": [{
"name": "connectivity"
}],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
}
]
}]
}
}
}
ディレクティブ
Alexaは次のAlexa.ThermostatController.Schedule
インターフェースディレクティブをスキルに送信します。
SetWeeklyScheduleディレクティブ
SetWeeklySchedule
ディレクティブをサポートすると、サーモスタットのセットアップ中またはAlexaアプリで後からユーザーが設定したスケジュールを取得できます。
SetWeeklyScheduleディレクティブの例
以下は、Alexaがスキルに送信するSetWeeklySchedule
ディレクティブの例です。
SetWeeklyScheduleディレクティブのペイロード
以下の表は、Alexaがスキルに送信するSetWeeklySchedule
ディレクティブのペイロードの詳細です。
プロパティ | 説明 | 型 | 必須 |
---|---|---|---|
|
サーモスタットデバイスが各曜日に従うスケジュールを指定します。 |
|
✕ |
SetWeeklySchedule応答
SetWeeklySchedule
ディレクティブを正しく処理したら、Alexa.Response
イベントを使用して応答します。
SetWeeklyScheduleディレクティブのエラー処理
SetWeeklySchedule
ディレクティブを正常に処理できない場合、デバイスのスケジュールを変更せずに、Alexa.ThermostatController.Schedule.ErrorResponse
イベントで応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponse
イベントを使用して応答することもできます。
SetScheduleStateディレクティブ
SetScheduleState
ディレクティブをサポートすると、ユーザーはサーモスタットのスケジュールを有効または無効にできます。ユーザーがスケジュールをもう一度有効にできるようにするには、以前に設定したスケジュールを保存しておく必要があります。
SetScheduleStateディレクティブの例
以下は、Alexaがスキルに送信するSetScheduleState
ディレクティブの例です。
{
"directive": {
"header": {
"namespace": "Alexa.ThermostatController.Schedule",
"name": "SetScheduleState",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3.2"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2ベアラートークン"
},
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {
"scheduleEnabled": true
}
}
}
SetScheduleStateディレクティブのペイロード
次の表は、SetScheduleState
イベントのペイロードの詳細を示しています。
プロパティ | 説明 | 型 | 必須 |
---|---|---|---|
|
サーモスタットのスケジュールを有効( |
ブール値 |
◯ |
SetScheduleState応答
SetScheduleState
ディレクティブを正しく処理したら、Alexa.Response
イベントを使用して応答します。
SetScheduleStateディレクティブのエラー処理
SetScheduleState
ディレクティブを正しく処理できなかった場合は、Alexa.ThermostatController.Schedule.ErrorResponse
イベントを使用して応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponse
イベントを使用して応答することもできます。
SetAdaptiveRecoveryディレクティブ
デバイスが状況に応じた復旧をサポートする場合、AlexaはSetAdaptiveRecovery
ディレクティブを送信して、ユーザーが予熱や予冷を有効/無効にできるようにします。
SetAdaptiveRecoveryディレクティブの例
以下は、Alexaがスキルに送信するSetAdaptiveRecovery
ディレクティブの例です。
{
"directive": {
"header": {
"namespace": "Alexa.ThermostatController.Schedule",
"name": "SetAdaptiveRecovery",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3.2"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2ベアラートークン"
},
"endpointId": "endpoint-id",
"cookie": {}
},
"payload": {
"adaptiveRecoveryEnabled": true
}
}
}
SetAdaptiveRecoveryディレクティブのペイロード
次の表は、SetAdaptiveRecovery
イベントのペイロードの詳細を示しています。
プロパティ | 説明 | 型 | 必須 |
---|---|---|---|
|
状況に応じた復旧を有効( |
ブール値 |
◯ |
SetAdaptiveRecovery応答
SetAdaptiveRecovery
ディレクティブを正しく処理したら、Alexa.Response
イベントを使用して応答します。
SetAdaptiveRecoveryディレクティブのエラー処理
SetAdaptiveRecovery
ディレクティブを正しく処理できなかった場合は、Alexa.ThermostatController.Schedule.ErrorResponse
イベントを使用して応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponse
イベントを使用して応答することもできます。
状態レポート
Alexaはエンドポイントの状態についての情報をリクエストするために、ReportState
ディレクティブを送信します。AlexaがReportState
ディレクティブを送信したら、それに対する応答としてStateReport
イベントを送信します。応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。
StateReport応答の例
この例のサーモスタットデバイスは、setupState
とtemperatureScale
の両方をサポートします。
{
"event": {
"header": {
"namespace": "Alexa",
"name": "StateReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {}
},
"context": {
"properties": [{
"namespace": "Alexa.ThermostatController.Schedule",
"name": "adaptiveRecoveryEnabled",
"value": true,
"timeOfSample": "2020-02-26T16:20:50Z",
"uncertaintyInMilliseconds": 1000
},
{
"namespace": "Alexa.ThermostatController.Schedule",
"name": "scheduleEnabled",
"value": true,
"timeOfSample": "2020-02-26T16:20:50Z",
"uncertaintyInMilliseconds": 500
},
{
"namespace": "Alexa.ThermostatController",
"name": "thermostatMode",
"value": "HEAT",
"timeOfSample": "2020-02-26T16: 20: 50Z",
"uncertaintyInMilliseconds": 500
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2020-02-26T16: 20: 50Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
変更レポート
エンドポイントの状態の変化をプロアクティブにレポートするために、ChangeReport
イベントを送信します。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。
payload
には変更されたプロパティの値が含まれ、context
にはその他の関連プロパティの値が含まれます。
ChangeReportイベントの例
以下は、ユーザーがスケジュールを無効にした後のChangeReport
の例です。
{
"event": {
"header": {
"namespace": "Alexa",
"name": "ChangeReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [{
"namespace": "Alexa.ThermostatController.Schedule",
"name": "scheduleEnabled",
"value": false,
"timeOfSample": "2020-02-26T16: 20: 50Z",
"uncertaintyInMilliseconds": 500
}]
}
}
},
"context": {
"properties": [{
"namespace": "Alexa.ThermostatController.Schedule",
"name": "adaptiveRecoveryEnabled",
"value": true,
"timeOfSample": "2020-02-26T16:20:50Z",
"uncertaintyInMilliseconds": 1000
},
{
"namespace": "Alexa.ThermostatController",
"name": "thermostatMode",
"value": "HEAT",
"timeOfSample": "2020-02-26T16: 20: 50Z",
"uncertaintyInMilliseconds": 500
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2020-02-26T16: 20: 50Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
関連トピック
最終更新日: 2024 年 07 月 11 日