Alexa.ThermostatController.Configurationインターフェース3


Alexa.ThermostatController.Configurationインターフェース3

サーモスタットがAlexaアプリでの設置とセットアップをサポートする場合、AlexaスキルにAlexa.ThermostatController.Configurationインターフェースを実装します。ユーザーがセットアップを完了したら、Alexaは接続された暖房、換気、空調(HVAC)システムの設定情報をスキルに送信します。この設定を使用してサーモスタットの設定を更新できます。HVACシステム設定には、デフォルトの温度単位、燃料源、サーモスタットへの端子接続といった情報が含まれます。

通常、Alexa.ThermostatController.Configurationインターフェースは、Alexa.ThermostatControllerインターフェース、Alexa.TemperatureSensorインターフェースと併せて使用します。

Alexa.ThermostatController.Configurationインターフェースがサポートするロケールについては、Alexaインターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。

発話

Alexa.ThermostatController.Configurationインターフェースは、ほかのAlexaインターフェースとは異なります。スキルは、Alexaとユーザーとの音声対話を直接サポートしません。その代わり、Alexaが、HVAC設定についてスキルと通信します。このインターフェースにはユーザー発話はありません。

サーモスタットの設定

サーモスタットの設定には、接続されたHVACシステムに関する情報が含まれています。

サーモスタットのセットアップ状態

ユーザーがサーモスタットを購入すると、デバイスの設定は工場出荷モードになっています。ユーザーは、Alexaアプリを使い、接続したHVACシステムに応じてデバイスを設定します。設定が完了したら、状態はリモートコントロールに変更され、ユーザーはAlexaにサーモスタットの操作をリクエストできるようになります。

次の表は、想定されるセットアップ状態の一覧です。

状態 説明

FACTORY_DEFAULT

サーモスタットは初期状態です。または、ユーザーが工場出荷のデフォルト状態にリセットした場合が考えられます。工場出荷の状態にリセットすると、デバイスに保存されていた設定はすべて消去されます。

DEVICE_CONTROL_ONLY

ユーザーが一部リセットを行った状態です。この状態のサーモスタットはHVACシステムを制御することはできますが、リセットにより、デバイスに保存されていたHVAC設定を除く設定はすべて消去されています。たとえば、一部リセットにより、アカウント情報、Wi-Fi認証情報、スケジュール、運転温度範囲の値が消去されます。

REMOTE_CONTROL

ユーザーがサーモスタットの設定を完了し、サーモスタットは全面的に運転可能な状態にあります。ユーザーは、Alexaアプリやデバイスアプリを使って、リモートからスケジュールを定義したり、サーモスタットを操作したりできます。

HVACシステムのタイプ

以下の表は、サーモスタットに接続可能なHVACシステムのタイプの一覧です。

説明

CONVENTIONAL_STANDARD_GAS

天然ガスを使用する強制空気加熱システムです。暖房および補助加熱システムで有効です。

CONVENTIONAL_HIGH_EFFICIENCY_GAS

天然ガスを使用する、高効率の強制空気加熱システムです。暖房および補助加熱システムで有効です。

CONVENTIONAL_OIL

石油を使用する強制空気加熱システムです。暖房および補助加熱システムで有効です。

CONVENTIONAL_ELECTRIC

電気を使用する強制空気加熱システムです。暖房および補助加熱システムで有効です。

CONVENTIONAL_HOT_WATER_FAN_COIL

温水コイルを使用する強制空気加熱システムです。暖房および補助加熱システムで有効です。

AIR_TO_AIR_HEATPUMP

外気を熱源として、内気をヒートシンクとして使用するヒートポンプです。冷却の際は、内気を熱源、外気をヒートシンクとして使用します。暖房および冷却システムで有効です。

GEO_THERMAL_HEATPUMP

地表温度を熱源として、内気をヒートシンクとして使用するヒートポンプです。冷却の際は、内気を熱源、地表温度をヒートシンクとして使用します。暖房および冷却システムで有効です。

RADIANT_HOT_WATER

複数のパイプを通して温水を循環させることで空気を温める暖房システムです。暖房システムで有効です。

RADIANT_FAN_COIL

ファンコイルを使用する暖房および冷却システムです。暖房および冷却システムで有効です。

RADIANT_STEAM

蒸気をラジエーターに送って空気を温める暖房システムです。暖房システムで有効です。

CENTRAL_AIR_CONDITIONING

コンデンサーユニットと空気循環システムを使って空気を冷やす冷却システムです。冷却システムで有効です。

端子の用途

サーモスタットの各端子接続は、特定の目的でHVACシステムに接続します。

以下の表は、端子の用途と説明の一覧です。

用途 説明

AUXILIARY

補助または非常用の暖房または冷却システムを制御します。

COMMON

24ボルトの閉じた電源回路によりサーモスタットに電力を供給します。

COOLING

冷却システムを制御します。

DEHUMIDIFIER

除湿器を制御します。

FAN

空気循環用ファンを制御します。

HEATING

暖房システムを制御します。

HUMIDIFIER

加湿器を制御します。

OTHER

このサーモスタット固有の用途、またはあまり知られていない用途を表します。

POWER

サーモスタットおよび接続された連動システムに電源を供給します。

SENSOR

センサーからの値を読み取る際に使用します。センサーはサーモスタットの外部に取り付けられている場合があります。

STATUS

サーモスタットまたはHVACシステムのステータスを示します。たとえば、赤いライトが点灯すると暖房システムがエラーになったことを表します。

VALVE_CHANGE_OVER

ヒートポンプのバルブを逆に回すことで、システムの運転モードを暖房または冷却に切り替えます。

端子の名称

以下の表は、よく使われる端子の名称、端子の用途、接続されているケーブルの機能の一覧です。HVACシステムによっては、端子の接続が異なる場合があります。

端子の名称 端子の用途 説明

AUX

AUXILIARY

プライマリシステムに障害が発生したり、能力が制限されたりした場合に、セカンダリHVACシステムに信号を送ります。

O/B

VALVE_CHANGE_OVER

ヒートポンプの場合、このケーブルから冷却から暖房、暖房から冷却に変更する信号が送られます。

C

COMMON

連続した電力供給を可能にする24ボルトの汎用ケーブルです。この端子はサーモスタットに電力を供給するために必要です。

DHまたはU

DEHUMIDIFIER

湿度を下げる除湿器を制御します。

E

AUXILIARY

非常用暖房モードをオンにします。

GまたはF

FAN

生活空間に空気を循環させる送風ファンを制御します。

HまたはU

HUMIDIFIER

湿度を上げる加湿器を制御します。

K

OTHER

一部のサーモスタットでYおよびFのケーブルを結合します。

LまたはA

STATUS

デバイスの運転ステータスを示すライト端子です。

RまたはV

POWER

HVACシステムに電力を供給します。HVACシステムには、RcとRhの端子が別々に存在する場合があります。

Rc

POWER

冷却システムに電力を供給します。

Rh

POWER

暖房システムに電力を供給します。

S1S2

SENSOR

外気温度センサーに接続します。

W

HEATING

単段式暖房システムまたは多段式暖房システムの1段目に接続します。

W2

HEATING

多段式暖房システムの2段目または補助暖房システムに接続します。

W3

HEATING

多段式暖房システムの3段目または多段式補助暖房システムの2段目に接続します。

Y

COOLING

単段式冷却システムまたは多段式冷却システムの1段目に接続します。

Y2

COOLING

多段式冷却システムの2段目または補助冷却システムに接続します。

Y3

COOLING

多段式冷却システムの3段目に接続します。

プロパティとオブジェクト

Alexa.ThermostatController.Configurationインターフェースには、次のプロパティとオブジェクトが含まれます。

出力可能なプロパティ

以下の表は、Alexa.ThermostatController.Configurationインターフェースが定義するプロパティを示しています。検出応答で、サポートするプロパティを指定します。すべてのプロパティはオプションです。サーモスタットデバイスのコンポーネントに対応するプロパティのみを含めてください。

プロパティ 説明

setupState

サーモスタット設定の現在の状態です。ユーザーがサーモスタットに何らかの操作を行う前に、Alexaはサーモスタットのセットアップ状態を知っておく必要があります。

文字列

temperatureScale

サーモスタット設定の現在の温度単位です。

文字列

ComponentConfigurationConstraintsオブジェクト

ComponentConfigurationConstraintsオブジェクトは、サーモスタットデバイスの設定中の制約を定義します。フィールドはすべて任意です。適用される制約のみ指定します。

プロパティ 説明 必須

supportedTerminals

サーモスタットで利用できる端子の一覧です。ユーザーからの入力がなくても、サーモスタットで端子を検出できる場合、このフィールドは不要です。このリストは、TerminalInformation.connectionsで使用できる端子の一覧です。

TerminalDescriptionオブジェクトの配列

maximumStages.heating

サポートされる暖房システムの最大段数です。
デフォルト: 3

整数

maximumStages.cooling

サポートされる冷却システムの最大段数です。
デフォルト: 3

整数

maximumStages.combined

サポートされる暖房システムの最大段数です。
デフォルト: 3

整数

supportedSwitchOverTypes

サポートされる切り替えタイプのリストです。切り替えタイプとは、暖房と冷却を切り替える方法を表します。このフィールドを含めない場合、Alexaはサーモスタットがすべての切り替えタイプをサポートしていると見なします。配列には、1つ以上のエントリを含める必要があります。
有効な値: AUTOMATICMANUAL

文字列の配列

lockoutTemperature.heating.minimum

暖房の最低ロックアウト温度です。
デフォルト: 35.0 °F、2.0 °C
有効な値: 50~90 °F、11.5~32 °C

Temperatureオブジェクト

lockoutTemperature.heating.maximum

暖房の最高ロックアウト温度です。
デフォルト: 50.0 °F、10.0 °C
有効な値: 50~90 °F、11.5~32 °C

Temperatureオブジェクト

lockoutTemperature.cooling.minimum

冷却の最低ロックアウト温度です。
デフォルト: 50.0 °F、10 °C
有効な値: 50~90 °F、11.5~32 °C

Temperatureオブジェクト

lockoutTemperature.cooling.maximum

冷却の最高ロックアウト温度です。
デフォルト: 65.0 °F、18.0 °C
有効な値: 50~90 °F、11.5~32 °C

Temperatureオブジェクト

lockoutTemperature.increment

ユーザーが最低および最高ロックアウト温度を設定する際に使用する上昇幅です。上昇幅は、1.0 °Fまたは0.5 °Cの倍数で定義します。
デフォルト: 1.0 °F、0.5 °C
最大値: 5.0 °F、2.5 °C

Temperatureオブジェクト

TerminalDescriptionオブジェクト

プロパティ 説明 必須

name

端子の名称です。
よく使用される端子の名称については、端子の名称を参照してください。

文字列

purpose

端子の用途です。Alexaはこの情報を使用して、セットアップ中のユーザーにヘルプを提供します。サーモスタットの運転に関する情報は必要ありません。有効な値については、端子の用途を参照してください。
デフォルト: OTHER

整数

ComponentConfigurationオブジェクト

ComponentConfigurationオブジェクトは、接続された端子、HVACシステム、その他サーモスタットの運転に必要な設定に関する情報を提供します。

プロパティ 説明

terminalInformation

サーモスタットの端子に接続されるケーブルを識別します。

TerminalInformationオブジェクト

systemInformation

HVACシステムに関する情報です。

SystemInformationオブジェクト

TerminalInformationオブジェクト

TerminalInformationオブジェクトは、サーモスタットの端子にケーブル接続するHVACシステムの接続情報を提供します。このオブジェクトは、TerminalConnectionオブジェクトの配列です。

TerminalConnectionオブジェクト

TerminalConnectionオブジェクトは、サーモスタットの各端子に関する情報を提供します。

プロパティ 説明

name

端子の名称です。
よく使用される端子の名称については、端子の名称を参照してください。

1~5文字の文字列

state

端子の接続状態です。
有効な値: NOT_CONNECTEDCONNECTED

文字列

connectionType

(任意)よく使われる端子の接続タイプです。外部接続は、アダプターからの接続です。
有効な値: EXTERNALINTERNAL.

文字列

SystemInformationオブジェクト

SystemInformationオブジェクトは、サーモスタットに接続されるHVACシステムに関する情報を提供します。

プロパティ 説明

systemConfigurations

暖房、冷却、補助システムの設定のリストです。設定を含むシステムに対してのみ指定します。

SystemConfigurationオブジェクトの配列

coolingSystem

冷却システムの設定です。

CoolingSystemオブジェクト

heatingSystem

暖房システムの設定です。

HeatingSystemオブジェクト

multimodeConfiguration

1つで暖房および冷却を処理するシステムの設定です。

MultimodeConfigurationオブジェクト

lockoutTemperatures

サーモスタットがHVACシステムを停止する温度を超える外気温。設定されている場合は、補助システムに切り替えます。

LockoutTemperaturesオブジェクト

SystemConfigurationオブジェクト

SystemConfigurationオブジェクトを使用して、HVACシステムの設定を定義します。通常、ヒートポンプを使うシステムには設定が必要です。

プロパティ 説明

type

システムのタイプです。
有効な値: AIR_TO_AIR_HEATPUMPGEO_THERMAL_HEATPUMP

文字列

configuration

システムの設定です。

HeatPumpConfigurationオブジェクト

HeatPumpConfigurationオブジェクト

以下の表は、HeatPumpConfigurationオブジェクトの詳細を示しています。

プロパティ 説明

reversingValve

ヒートポンプの値を逆にするタイミングを表します。
有効な値: ON_HEATON_COOL

文字列

CoolingSystemオブジェクト

CoolingSystemオブジェクトを使用して冷却の段を定義します。

プロパティ 説明

stages

各段の冷却タイプです。配列の要素は、冷却システムの段に対応します。たとえば、配列の最初の要素は1段目を定義します。

SystemStageオブジェクトの配列

HeatingSystemオブジェクト

HeatingSystemオブジェクトを使用して、暖房の段を定義します。

プロパティ 説明

stages

各段の暖房システムのタイプです。配列の要素は、暖房システムの段に対応します。たとえば、配列の最初の要素は1段目を定義します。

SystemStageオブジェクトの配列

auxiliaryHeatingSystem

(任意)補助暖房システムのタイプです。サーモスタットは、プライマリシステムの暖房能力が十分でないとき、または運転を停止したときに、補助暖房システムをオンにします。補助システムが、ヒートポンプであることは決してありません。また補助システムは単段式です。

AuxiliaryHeatingSystemオブジェクト

SystemStageオブジェクト

SystemStageオブジェクトは、その段に紐づけられたシステムを表します。

プロパティ 説明

type

段に紐づけられたシステムです。有効な値については、HVACシステムのタイプを参照してください。

文字列

AuxiliaryHeatingSystemオブジェクト

AuxiliaryHeatingSystemオブジェクトは、補助暖房システムのタイプを識別します。

プロパティ 説明

type

補助暖房システムのタイプです。有効な値については、HVACシステムのタイプを参照してください。

文字列

MultimodeConfigurationオブジェクト

MultimodeConfigurationオブジェクトは、1つのシステムで暖房と冷却の両方をサポートするHVACシステムの切り替えを指定します。

プロパティ 説明

switchOverType

暖房と冷却を切り替える方法を表します。たとえば、サーモスタットはモードの切り替えを自動で行うことも、ユーザーが手動でモードを切り替えることもできます。
有効な値: AUTOMATICMANUAL

文字列

LockoutTemperaturesオブジェクト

LockoutTemperaturesオブジェクトは、サーモスタットが補助システムに切り替わる外気温を表します。暖房システムにも冷却システムにもロックアウト温度が定義されている場合があります。

プロパティ 説明

heating

この外気温で、サーモスタットはプライマリ暖房システムを停止し、補助暖房システムの運転を開始します。
有効な値: 50~90 °F、11.5~32 °C

Temperatureオブジェクト

cooling

この外気温で、サーモスタットはプライマリ冷却システムを停止し、補助冷却システムの運転を開始します。
有効な値: 50~90 °F、11.5~32 °C

Temperatureオブジェクト

検出

Alexa.ThermostatController.Configurationをサポートするエンドポイントは、Alexa.Discoveryの標準検出メカニズムを使用して表します。

Alexaからスキルに状態レポートリクエストが送信されたら、レポートするプロパティのretrievableをtrueに設定します。変更レポートでAlexaにプロアクティブにレポートする場合はプロパティのproactivelyReportedをtrueに設定します。

表示カテゴリーにはTHERMOSTATを使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。

サーモスタットデバイスがリモート設定をサポートする場合、setupStateプロパティを含めます。デバイスが温度単位の変更をサポートする場合、temperatureScaleプロパティを含めます。

configurationオブジェクト

Alexa.ThermostatController.Configurationには、標準の検出応答フィールドのほかに、次のフィールドを含むconfigurationオブジェクトを含めます。フィールドはすべて任意です。サーモスタットデバイスのコンポーネントに対応するフィールドのみを含めてください。

プロパティ 説明 必須

supportedResetStates

サーモスタットがサポートする状態です。ユーザーがAlexaアプリでサーモスタットをリセットできる場合にのみ、このフィールドを含めてください。含まれない場合、AlexaはResetDeviceConfigurationディレクティブを送信しません。

ThermostatSetupState文字列の配列

componentConfigurationConstraints

サーモスタットでサポートされる設定の制約を定義します。Alexaは、制約を使ってユーザーまたは技術者が提供したHVACシステムの情報を検証します。サーモスタットがコンポーネントの設定更新をサポートしている場合にのみ、このフィールドを含めてください。含まれない場合、AlexaはGetComponentConfigurationディレクティブとSetComponentConfigurationディレクティブを送信しません。

ComponentConfigurationConstraintsオブジェクト

requiredSetupInformation

サーモスタットをセットアップして、setUpStateREMOTE_CONTROLに変更するために必要な最小設定です。
このフィールドを含めない場合、ユーザーはAlexaアプリでサーモスタットを設定できません。また、AlexaはSetupDeviceディレクティブを送信しません。デバイスの設定名に対応する値(componentConfigurationtemperatureScaleなど)、またはその他デバイス固有の値を使用します。

文字列の配列

supportedTemperatureScales

サーモスタットがサポートする温度単位のリストです。
デフォルト:[CELSIUSFAHRENHEIT]

温度単位文字列の配列

検出応答の例

以下は、サーモスタットの設定を受け入れ、Alexa.ThermostatControllerインターフェースとAlexa.EndpointHealthインターフェースをサポートするAlexaスキルのDiscover.Responseメッセージの例です。この例のサーモスタットデバイスは、setupStateプロパティとtemperatureScaleプロパティをサポートします。

ディレクティブ

Alexaは、次のAlexa.ThermostatController.Configurationインターフェースディレクティブをスキルに送信します。

GetComponentConfigurationディレクティブ

GetComponentConfigurationディレクティブをサポートすると、AlexaがHVACシステムの詳細をユーザーに表示したり、同じHVACシステムに接続されている別のサーモスタットをセットアップしたりできます。

このディレクティブにはペイロードがありません。

GetComponentConfigurationディレクティブの例

以下は、Alexaがスキルに送信するGetComponentConfigurationディレクティブの例です。

{
  "directive": {
    "header": {
      "namespace": "Alexa.ThermostatController.Configuration",
      "name": "GetComponentConfiguration",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {}
  }
}

GetComponentConfiguration応答

GetComponentConfigurationディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。

以下は、GetComponentConfiguration応答の例です。

応答のペイロード

成功の場合、サーモスタットデバイスに保存されている設定を返します。

プロパティ 説明 必須

componentConfiguration

接続された端子、HVACシステム、その他サーモスタットの運転に必要な設定に関する情報を提供します。

ComponentConfigurationオブジェクト

GetComponentConfigurationディレクティブのエラー処理

GetComponentConfigurationディレクティブを正しく処理できない場合は、Alexa.ThermostatController.Configuration.ErrorResponseイベントを使用して応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponseイベントを使用して応答することもできます。

ResetDeviceConfigurationディレクティブ

ResetDeviceConfigurationディレクティブをサポートすると、Alexaはサーモスタットデバイスの状態を設定できます。

ResetDeviceConfigurationディレクティブの例

次の例は、Alexaがスキルに送信するResetDeviceConfigurationディレクティブを示しています。

{
  "directive": {
    "header": {
      "namespace": "Alexa.ThermostatController.Configuration",
      "name": "ResetDeviceConfiguration",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "targetState": "DEVICE_CONTROL_ONLY"
    }
  }
}

ResetDeviceConfigurationディレクティブのペイロード

以下の表は、Alexaがスキルに送信するResetDeviceConfigurationディレクティブのペイロードの詳細です。

プロパティ 説明 必須

targetState

想定されるデバイスの状態を示します。リクエストされた値は、検出応答のsupportedResetStatesフィールドに指定した設定を反映しています。
有効な値: FACTORY_DEFAULTDEVICE_CONTROL_ONLY

文字列

ResetDeviceConfiguration応答

ResetDeviceConfigurationディレクティブを正常に処理し、デバイスが対象の状態に設定をリセットしたら、Alexa.Responseイベントを使って応答します。

SetupDeviceリクエスト、ResetDeviceConfigurationリクエストのいずれかがすでに進行中の場合、エラータイプをALREADY_IN_OPERATIONに設定してAlexa.ErrorResponseを返します。

ResetDeviceConfigurationディレクティブのエラー処理

ResetDeviceConfigurationディレクティブを正常に処理できない場合、デバイスの設定を変更せずに、Alexa.ThermostatController.Configuration.ErrorResponseイベントで応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponseイベントを使用して応答することもできます。

SetComponentConfigurationディレクティブ

SetComponentConfigurationディレクティブをサポートすると、AlexaはデバイスにHVAC設定を提供できます。ユーザーは、Alexaアプリでのサーモスタットセットアップまたは設定の更新中に、この情報を指定します。

SetComponentConfigurationディレクティブの例

以下は、Alexaがスキルに送信するSetComponentConfigurationディレクティブの例です。

SetComponentConfigurationディレクティブのペイロード

以下の表は、Alexaがスキルに送信するSetComponentConfigurationディレクティブのペイロードの詳細です。

プロパティ 説明 必須

componentConfiguration

HVACとケーブル接続の設定です。検出応答のrequiredSetupInformationにコンポーネントの設定を指定した場合は、このプロパティを含めます。

ComponentConfigurationオブジェクト

SetComponentConfiguration応答

SetComponentConfigurationディレクティブを正常に処理し、デバイスが設定を適用できたら、Alexa.Responseを使って応答します。

デバイスのセットアップをすでに完了し、設定の更新を受け入れられない場合、エラータイプをCONFIGURATION_UPDATE_NOT_ALLOWEDに設定し、Alexa.ThermostatController.Configuration.ErrorResponseを返します。

指定した設定がデバイスでサポートされない場合、エラータイプをINVALID_VALUEに設定し、Alexa.ErrorResponseで応答します。

SetComponentConfigurationディレクティブのエラー処理

SetComponentConfigurationディレクティブを正常に処理できない場合、デバイスの設定を変更せずに、Alexa.ThermostatController.Configuration.ErrorResponseで応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponseを使用して応答することもできます。

SetTemperatureScaleディレクティブ

SetTemperatureScaleディレクティブをサポートすると、ユーザーがデバイスの温度単位を更新できます。検出応答のsupportedTemperatureScalesフィールドに、サポートされている温度単位のリストを指定します。

SetTemperatureScaleディレクティブの例

次の例は、Alexaがスキルに送信するSetTemperatureScaleディレクティブを示しています。

{
  "directive": {
    "header": {
      "namespace": "Alexa.ThermostatController.Configuration",
      "name": "SetTemperatureScale",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "temperatureScale": "FAHRENHEIT"
    }
  }
}

SetTemperatureScaleディレクティブのペイロード

以下の表は、Alexaがスキルに送信するSetTemperatureScaleディレクティブのペイロードの詳細です。

プロパティ 説明 必須

temperatureScale

デバイスに表示する温度単位です。

文字列

SetTemperatureScale応答

SetTemperatureScaleディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。

SetTemperatureScaleディレクティブのエラー処理

SetTemperatureScaleディレクティブを正しく処理できない場合は、Alexa.ThermostatController.Configuration.ErrorResponseイベントを使用して応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponseイベントを使用して応答することもできます。

SetupDeviceディレクティブ

SetupDevice ディレクティブをサポートすると、サーモスタットのセットアップ中にユーザーが設定した情報を取得できます。設定情報には、HVAC設定と温度単位が含まれます。

SetupDeviceディレクティブの例

以下は、Alexaがスキルに送信するSetupDeviceディレクティブの例です。

SetupDeviceディレクティブのペイロード

以下の表は、Alexaがスキルに送信するSetupDeviceディレクティブのペイロードの詳細です。

プロパティ 説明 必須

componentConfiguration

HVACとケーブル接続の設定です。検出応答のrequiredSetupInformationにコンポーネントの設定を指定した場合は、このプロパティを含めます。

ComponentConfigurationオブジェクト

temperatureScale

Alexaアプリおよびサーモスタットデバイスに表示したい温度単位です。検出応答のrequiredSetupInformationに温度単位を指定した場合は、このプロパティを含めます。

文字列

SetupDevice応答

SetupDeviceディレクティブを正常に処理し、デバイスが設定を適用できた場合、デバイスのsetupStateREMOTE_CONTROLに設定し、Alexa.Responseイベントで応答します。

SetupDeviceリクエスト、ResetDeviceConfigurationリクエストのいずれかがすでに進行中の場合、エラータイプをALREADY_IN_OPERATIONに設定してAlexa.ErrorResponseを返します。デバイスのセットアップをすでに完了し、設定の更新を受け入れられない場合、エラータイプをCONFIGURATION_UPDATE_NOT_ALLOWEDに設定し、Alexa.ThermostatController.Configuration.ErrorResponseを返します。

SetupDeviceディレクティブのエラー処理

SetupDeviceディレクティブを正常に処理できない場合、デバイスの設定を変更せずに、Alexa.ThermostatController.Configuration.ErrorResponseイベントで応答します。サーモスタット固有のエラーではない場合は、汎用のAlexa.ErrorResponseイベントを使用して応答することもできます。

状態レポート

Alexaはエンドポイントの状態についての情報をリクエストするために、ReportStateディレクティブを送信します。AlexaがReportStateディレクティブを送信したら、それに対する応答としてStateReportイベントを送信します。応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。

StateReport応答の例

この例のサーモスタットデバイスは、setupStatetemperatureScaleの両方をサポートします。

クリップボードにコピーされました。

{
    "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.Configuration",
                "name": "setupState",
                "value": "REMOTE_CONTROL",
                "timeOfSample": "2020-02-26T16:20:50Z",
                "uncertaintyInMilliseconds": 1000
            },
            {
                "namespace": "Alexa.ThermostatController.Configuration",
                "name": "temperatureScale",
                "value": "CELSIUS",
                "timeOfSample": "2017-02-03T16: 20: 50.52Z",
                "uncertaintyInMilliseconds": 500
            },
            {
                "namespace": "Alexa.ThermostatController",
                "name": "thermostatMode",
                "value": "HEAT",
                "timeOfSample": "2017-02-03T16:20:50.52Z",
                "uncertaintyInMilliseconds": 500
            },
            {
                "namespace": "Alexa.ThermostatController",
                "name": "targetSetpoint",
                "value": {
                    "value": 20.0,
                    "scale": "CELSIUS"
                },
                "timeOfSample": "2017-02-03T16:20:50.52Z",
                "uncertaintyInMilliseconds": 500
            },
            {
                "namespace": "Alexa.EndpointHealth",
                "name": "connectivity",
                "value": {
                    "value": "OK"
                },
                "timeOfSample": "2020-02-26T16: 20: 50Z",
                "uncertaintyInMilliseconds": 0
            }
        ]
    }
}

変更レポート

エンドポイントの状態の変化をプロアクティブにレポートするために、ChangeReportイベントを送信します。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。

payloadには変更されたプロパティの値が含まれ、contextにはその他の関連プロパティの値が含まれます。

デバイスのリセットの例

以下は、ユーザーがデバイスのボタンを押してサーモスタットのリセットを試みた後の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.Configuration",
              "name": "setupState",
              "value": "DEVICE_CONTROL_ONLY",
              "timeOfSample": "2020-02-26T16:20:50Z",
              "uncertaintyInMilliseconds": 500
            }
          ]
        }
      }
    },
  "context": {
      "properties": [{
              "namespace": "Alexa.ThermostatController.Configuration",
              "name": "temperatureScale",
              "value": "CELSIUS",
              "timeOfSample": "2017-02-03T16: 20: 50.52Z",
              "uncertaintyInMilliseconds": 500
          },
          {
              "namespace": "Alexa.ThermostatController",
              "name": "thermostatMode",
              "value": "HEAT",
              "timeOfSample": "2017-02-03T16:20:50.52Z",
              "uncertaintyInMilliseconds": 500
          },
          {
              "namespace": "Alexa.ThermostatController",
              "name": "targetSetpoint",
              "value": {
                  "value": 20.0,
                  "scale": "CELSIUS"
              },
              "timeOfSample": "2017-02-03T16:20:50.52Z",
              "uncertaintyInMilliseconds": 500
          },
          {
              "namespace": "Alexa.EndpointHealth",
              "name": "connectivity",
              "value": {
                  "value": "OK"
              },
              "timeOfSample": "2020-02-26T16: 20: 50Z",
              "uncertaintyInMilliseconds": 0
          }
      ]
  }
}

温度単位変更の例

以下は、ユーザーがAlexaアプリを使って温度単位を変更した後のChangeReportの例です。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa",
      "name": "ChangeReport",
      "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2ベアラートークン"
      },
      "endpointId": "エンドポイントID"
    },
    "payload": {
      "change": {
        "cause": {
          "type": "APP_INTERACTION"
        },
        "properties": [
          {
            "namespace": "Alexa.ThermostatController.Configuration",
            "name": "temperatureScale",
            "value": "FAHRENHEIT",
            "timeOfSample": "2020-02-26T16:20:50Z",
            "uncertaintyInMilliseconds": 500
          }
        ]
      }
    }
  },
  "context": {
      "properties": [{
             "namespace": "Alexa.ThermostatController.Configuration",
             "name": "setupState",
             "value": "DEVICE_CONTROL_ONLY",
             "timeOfSample": "2020-02-26T16:20:50Z",
             "uncertaintyInMilliseconds": 500
          },
          {
              "namespace": "Alexa.ThermostatController",
              "name": "thermostatMode",
              "value": "HEAT",
              "timeOfSample": "2017-02-03T16:20:50.52Z",
              "uncertaintyInMilliseconds": 500
          },
          {
              "namespace": "Alexa.ThermostatController",
              "name": "targetSetpoint",
              "value": {
                  "value": 20.0,
                  "scale": "CELSIUS"
              },
              "timeOfSample": "2017-02-03T16:20:50.52Z",
              "uncertaintyInMilliseconds": 500
          },
          {
              "namespace": "Alexa.EndpointHealth",
              "name": "connectivity",
              "value": {
                  "value": "OK"
              },
              "timeOfSample": "2020-02-26T16: 20: 50Z",
              "uncertaintyInMilliseconds": 0
          }
      ]
  }
}

AddOrUpdateReport

エンドポイントの機能サポートが変更された場合は、Alexa.Discovery.AddOrUpdateReportイベントをプロアクティブに送信する必要があります。たとえば、ファームウェアの更新後に設定の制約が変更された場合などです。詳細については、AddOrUpdateReportイベントを参照してください。

AddOrUpdateReportイベントの例


このページは役に立ちましたか?

最終更新日: 2024 年 07 月 03 日