製品にThing Specification Language (TSL) 機能を追加できます。 機能には、プロパティ、イベント、およびサービスが含まれます。 このトピックでは、IoT PlatformコンソールでTSL機能を定義する方法について説明します。
前提条件
プロダクトが作成されます。 詳細については、「プロダクトの作成」をご参照ください。
使用上の注意
モジュールでTSL機能を設定する必要があります。 デフォルトモジュールの数と各製品のカスタムモジュールの数の合計は20を超えることはできません。
製品が公開されている場合、製品のTSLモデルを変更することはできません。 TSLモデルを変更するには、TSLモデルが定義されている製品を非公開にする必要があります。
TSLモデルの履歴バージョンを変更して、新しいバージョンを生成できます。
IoT Platformは、TSLモデルの最新バージョン10を保存できます。 以前のバージョンは上書きされます。
TSLモデルを変更した後、更新が有効になるようにTSLモデルをリリースする必要があります。
詳細については、「制限事項」をご参照ください。
手順
IoT Platformコンソールにログインします。
IoT Platformコンソールの左上隅で、IoT Platformがアクティブ化されているリージョンを選択します。
[概要] ページの [すべての環境] タブで、管理するインスタンスを見つけ、インスタンスIDまたはインスタンス名をクリックします。
左側のナビゲーションウィンドウで、 を選択します。 製品リストで、管理する製品を見つけて、[操作] 列の [表示] をクリックします。
製品の詳細ページで、[機能の定義] タブをクリックし、[ドラフトの編集] をクリックし、[デフォルトモジュール] または [モジュールの追加] をクリックします。
オプションです。 モジュールを追加する場合は、必要なパラメーターを設定し、[OK] をクリックします。 追加したモジュールの名前をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
モジュール名
名前は4 ~ 30文字で、英数字、アンダースコア (_) を使用できます。
モジュール識別子
モジュールのID。 IDは製品内で一意である必要があります。 IDは1 ~ 30文字で、英数字、アンダースコア (_) を使用できます。
モジュールの説明
モジュールの説明。 説明の長さは1 ~ 4096文字である必要があります。
オプションです。 [バージョン履歴] ドロップダウンリストからバージョンを選択し、[ロールバック] をクリックします。 その後、過去のバージョンに基づいてTSLモデルを変更できます。
カスタム機能を追加します。
[自己定義機能の追加] をクリックします。 その後、プロパティ、サービス、またはイベントを製品に追加できます。
プロパティの追加: [自己定義フィーチャの追加] ダイアログボックスで、[フィーチャタイプ] フィールドの [プロパティ] を選択します。 パラメーターを設定し、[OK] をクリックします。
下表に、各パラメーターを説明します。
パラメーター
説明
機能名
プロパティの名前です。 例: パワー消費量。 名前は製品内で一意である必要があります。
名前は1 ~ 30文字で、英数字、ハイフン (-) 、アンダースコア (_) 、スラッシュ (/) 、ピリオド (.) を使用できます。 名前は文字または数字で始まる必要があります。
識別子
プロパティのID。 IDは製品内で一意である必要があります。 IDは、Alink JSON形式のidentifierパラメーターの値で示されます。 デバイスはIDをキーとして使用してプロパティデータを報告します。 IoT PlatformはIDをチェックして、データを受信するかどうかを判断します。 IDは1 ~ 50文字で、英数字、アンダースコア (_) を使用できます。 例: PowerConsumption。
説明このパラメーターを、set、get、post、property、event、time、valueのいずれかに設定することはできません。
データ型
int32: 32 ビット整数。 値の範囲、ステップサイズ、および単位を指定する必要があります。
float: 単精度浮動小数点数。 値の範囲、ステップサイズ、および単位を指定する必要があります。
double: 倍精度浮動小数点数。 値の範囲、ステップサイズ、および単位を指定する必要があります。
enum: 列挙型。 Enumアイテムの値と説明を指定する必要があります。 例: 1-暖房モードと2-冷却モード。
bool: ブール型。 ブール値を定義するには、0または1を使用する必要があります。 例: 0はオフを示し、1はオンを示す。
text: 文字列。 文字列の長さを指定する必要があります。 文字列の長さは1〜10,240バイトである必要があります。
date: timestamp。 文字列形式のUTCタイムスタンプ。 単位:ミリ秒。
struct: JSONオブジェクト。 JSON構造体を定義し、JSONパラメーターを構造体に追加する必要があります。 たとえば、ランプの色を、赤、緑、青のパラメーターで構成される構造体として定義できます。 ネストされた構造体はサポートされません。
array: array。 配列のデータ型と要素数を指定する必要があります。 要素型の有効な値: int32、float、double、text、struct。 配列内の要素は同じ型でなければなりません。 要素数の有効値: 1 ~ 512。
説明製品のゲートウェイ接続プロトコルパラメーターがModbusに設定されている場合、このパラメーターは必要ありません。
値の範囲
Data Typeパラメーターがint32、float、またはdoubleに設定されている場合、プロパティの値の範囲を指定します。
手順
プロパティ値を変更できる最小ステップサイズ。 Data Typeパラメーターがint32、float、またはdoubleに設定されている場合、ビジネス要件に基づいてステップサイズを指定できます。
たとえば、温度プロパティを温度計製品に追加したいとします。 Data Typeパラメーターをint32に、Stepパラメーターを2に、Unitパラメーターを °Cに、Value Rangeパラメーターを0〜100に設定できます。 この場合、温度が2 ℃ 変化するたびに、温度計製品のデバイスは、0 ℃ 、2 ℃ 、4 ℃ 、6 ℃ 、または8 ℃ などの温度値を報告する。
インスタンス価格の単位。
ビジネスシナリオに基づいてなしまたは他の値を選択できます。
読み取り/書き込みタイプ
読み取り /書き込み: GETリクエストとSETリクエストがサポートされています。
読み取り専用: GETリクエストのみサポートされています。
説明製品のゲートウェイ接続プロトコルパラメーターがModbusに設定されている場合、このパラメーターは必要ありません。
説明
機能の説明。 説明の長さは100文字を超えることはできません。
詳細情報
拡張情報は、接続プロトコルとデバイスの標準TSLモデルとの間のマッピングを指定する。 TSLモデルで拡張設定を構成した後、IoT PlatformコンソールのTSLモデルの [TSL拡張情報] タブで設定を表示できます。
ゲートウェイサブデバイスの [ゲートウェイ接続プロトコル] パラメーターが [カスタム] 、[OPC UA] 、または [Modbus] に設定されている場合、拡張情報を指定する必要があります。
[ゲートウェイ接続プロトコル] パラメーターが [カスタム] に設定されている場合、カスタム設定のためにJSON形式で説明を指定します。 説明は 1~1024 文字である必要があります。
Gateway Connection ProtocolパラメーターがOPC UAに設定されている場合、ノード名を入力します。 プロパティに指定する各ノード名は一意である必要があります。
ゲートウェイ接続プロトコルパラメーターがModbusに設定されている場合、次のパラメーターを設定します。
操作タイプ: このパラメーターは、次のいずれかの値に設定できます。
ディスクリート入力 (読み取り専用、0x02)
コイルステータス (読み取り専用、0x01)
コイルの状態 (読み書き、0x01-read、0x05-write)
コイルの状態 (読み書き、0x01-read、0x0F-write)
コイルステータス (書き込みのみ、0x05)
コイルステータス (書き込み専用、0x0F)
レジスタの保持 (読み取り専用、0x03)
レジスタの保持 (読み取りと書き込み、0x03-read、0x06-write)
レジスタの保持 (読み取りと書き込み、0x03-read、0x10-write)
レジスタの保持 (書き込みのみ、0x06)
レジスタの保持 (読み取り専用、0x10)
入力レジスタ (読み取り専用、0x04)
レジスタアドレス: 0xで始まる16進値を指定する必要があります。 有効な値:
0x0〜0xFFFF
例: 0xFE。元のデータ型: 複数のデータ型がサポートされます。 有効な値: int16、uint16、int32、uint32、int64、uint64、float、double、string、bool、およびbits。
ビット位置: Original Data Typeパラメーターがbitsに設定されている場合は、このパラメーターを設定する必要があります。 データが格納されるビット位置を選択します。
値の範囲: 値の範囲は、指定されたスケールファクタを使用して元のデータを処理した後に取得されます。 値の範囲を超えるデータは破棄されます。 IoT Platformは、次のタイプの操作のデフォルト値の範囲を定義します。
コイルステータス: 0〜1
ディスクリート入力: 0〜1
レジスタの保持:-2147483647に2147483648
入力レジスタ:-2147483647への2147483648
レジスタ内のHigh ByteとLow Byteの切り替え: レジスタ内の16ビット整数の最初の8ビットと最後の8ビットをスワップするかどうかを指定します。 有効な値:
true: システムは最初の8ビットと最後の8ビットを交換します。
false: システムは最初の8ビットと最後の8ビットを交換しません。
スイッチレジスタビットシーケンス: 元の32ビット整数の最初の16ビットと最後の16ビットをスワップするかどうかを指定します。 有効な値:
true: システムは最初の16ビットと最後の16ビットを交換します。
false: システムは最初の16ビットと最後の16ビットを交換しません。
スケールファクター: 整数または浮動小数点数を指定します。 デフォルト値は 1 です。 値は0または負にすることはできません。
データレポート: [特定の時間] または [レポートの変更] を選択できます。
サービスの追加: [自己定義機能の追加] ダイアログボックスで、[機能タイプ] フィールドの [サービス] を選択します。 パラメーターを設定し、[OK] をクリックします。
説明Gateway Connection ProtocolパラメーターがModbusに設定されている場合、サービスを追加することはできません。
下表に、各パラメーターを説明します。
パラメーター
説明
機能名
サービス名。 名前は1 ~ 30文字で、英数字、ハイフン (-) 、アンダースコア (_) 、スラッシュ (/) 、ピリオド (.) を使用できます。 文字または数字で始まる必要があります。
識別子
サービスのID。 IDは製品内で一意である必要があります。 IDは、Alink JSON形式でサービスに指定されているidentifierパラメーターの値によって示されます。 IDは1 ~ 50文字で、英数字、アンダースコア (_) を使用できます。
説明このパラメーターを、set、get、post、property、event、time、valueのいずれかに設定することはできません。
呼び出し方法
非同期: IoT Platformは、サービスが呼び出された後に結果を返します。 IoT Platformは、デバイスからの応答を待機しません。
同期: IoT Platformはデバイスからの応答を待ちます。 応答が返されない場合、サービス呼び出しはタイムアウトします。
入力パラメーター
オプションです。 サービスの入力パラメータ。
表示されるダイアログボックスで、[+ パラメーターの追加] をクリックして入力パラメーターを追加します。
ゲートウェイ接続プロトコルパラメーターがOPC UAに設定されている場合、パラメーターインデックスを設定してパラメーターの順序を指定する必要があります。
説明このパラメーターを、set、get、post、property、event、time、valueのいずれかに設定することはできません。
プロパティを入力パラメーターとして使用したり、カスタム入力パラメーターを設定したりできます。 たとえば、Automatic Sprinklingサービスを定義する場合、入力パラメーターとして定義済みのSprinkling IntervalおよびSprinkling Amountプロパティを使用できます。 IoT PlatformがAutomatic Sprinklingサービスを呼び出すと、スプリンクラーデバイスは指定されたスプリンクラー間隔と量に基づいてスプリンクラーを開始します。
サービスごとに最大20の入力パラメータを追加できます。
出力パラメーター
オプションです。 サービスの出力パラメータ。
表示されるダイアログボックスで、[+ パラメーターの追加] をクリックして出力パラメーターを追加します。
ゲートウェイ接続プロトコルパラメーターがOPC UAに設定されている場合、パラメーターインデックスを設定してパラメーターの順序を指定する必要があります。
説明このパラメーターを、set、get、post、property、event、time、valueのいずれかに設定することはできません。
プロパティを出力パラメーターとして使用するか、カスタム出力パラメーターを設定できます。 たとえば、Automatic Sprinklingサービスを定義する場合、出力パラメーターとして定義済みのSoil Humidityプロパティを使用できます。 IoT PlatformがAutomatic Sprinklingサービスを呼び出すと、土壌湿度に関連するデータが返されます。
サービスごとに最大20個の出力パラメータを追加できます。
詳細情報
拡張情報は、接続プロトコルとデバイスの標準TSLモデルとの間のマッピングを指定する。 TSLモデルで拡張設定を構成した後、IoT PlatformコンソールのTSLモデルの [TSL拡張情報] タブでこれらの設定を表示できます。
ゲートウェイサブデバイスの [ゲートウェイ接続プロトコル] パラメーターが [カスタム] または [OPC UA] に設定されている場合、拡張情報を指定する必要があります。
[ゲートウェイ接続プロトコル] パラメーターが [カスタム] に設定されている場合、カスタム設定のためにJSON形式で説明を指定します。 説明は 1~1024 文字である必要があります。
Gateway Connection ProtocolパラメーターがOPC UAに設定されている場合、ノード名を入力します。 サービスに指定する各ノード名は一意である必要があります。
説明
サービスの説明。 説明の長さは1 ~ 100文字である必要があります。
イベントの追加: [自己定義機能の追加] ダイアログボックスで、[機能タイプ] フィールドの [イベント] を選択します。 パラメーターを設定し、[OK] をクリックします。
説明Gateway Connection ProtocolパラメーターがModbusに設定されている場合、イベントを追加できません。
下表に、各パラメーターを説明します。
パラメーター
説明
機能名
イベント名。 名前は1 ~ 30文字で、英数字、ハイフン (-) 、アンダースコア (_) 、スラッシュ (/) 、ピリオド (.) を使用できます。 文字または数字で始まる必要があります。
識別子
イベントの ID。 IDは製品内で一意である必要があります。 IDは、Alink JSON形式のidentifierパラメーターの値で示されます。 デバイスはIDをキーとして使用してイベントデータを報告します。 例: ErrorCode。 IDは1 ~ 50文字で、英数字、アンダースコア (_) を使用できます。
説明このパラメーターを、set、get、post、property、event、time、valueのいずれかに設定することはできません。
イベントのタイプ。
さまざまなタイプのイベントに対してロジック処理または分析を実行できます。
Info: デバイスは、タスク完了通知などの一般的な通知を報告します。
アラート: デバイスは、デバイスの実行中に発生する緊急事態または例外を報告します。 このタイプのイベントには高い優先度が割り当てられます。
エラー: デバイスは、デバイスの実行中に発生した緊急事態または例外を報告します。 このタイプのイベントには高い優先度が割り当てられます。
出力パラメーター
イベントの出力パラメーターです。 表示されるダイアログボックスで、[+ パラメーターの追加] をクリックして出力パラメーターを追加します。 プロパティを出力パラメーターとして使用するか、カスタム出力パラメーターを設定できます。 たとえば、定義済みのVoltageプロパティを出力パラメーターとして使用できます。 デバイスが電圧関連のエラーを報告した場合、デバイスの電圧もトラブルシューティングのために報告されます。
ゲートウェイ接続プロトコルパラメーターがOPC UAに設定されている場合、パラメーターインデックスを設定してパラメーターの順序を指定する必要があります。
説明このパラメーターを、set、get、post、property、event、time、valueのいずれかに設定することはできません。
イベントに対して最大50個の出力パラメーターを定義できます。
詳細情報
拡張情報は、接続プロトコルとデバイスの標準TSLモデルとの間のマッピングを指定する。 TSLモデルで拡張設定を構成した後、IoT PlatformコンソールのTSLモデルの [TSL拡張情報] タブでこれらの設定を表示できます。
ゲートウェイサブデバイスの [ゲートウェイ接続プロトコル] パラメーターが [カスタム] または [OPC UA] に設定されている場合、拡張情報を指定する必要があります。
[ゲートウェイ接続プロトコル] パラメーターが [カスタム] に設定されている場合、カスタム設定のためにJSON形式で説明を指定します。 説明は 1~1024 文字である必要があります。
Gateway Connection ProtocolパラメーターがOPC UAに設定されている場合、ノード名を入力します。 イベントに指定する各ノード名は一意である必要があります。
説明
イベントの説明。 説明の長さは1 ~ 100文字である必要があります。
TSLモデルの公開
TSLモデルは、モデルがパブリッシュされた後にのみ有効になります。
[機能の定義] > [ドラフトの編集] を選択します。 表示されるページの左下隅にある [オンラインリリース] をクリックします。 オンラインリリースモデル? ダイアログボックスが表示されます。
オプションです。 + 投稿メモの追加をクリックし、バージョン番号とメモを入力します。
パラメーター
説明
バージョン番号
TSLモデルのバージョン番号。 バージョン番号に基づいてTSLモデルを管理できます。
バージョン番号の長さは1 ~ 16文字で、英数字、ピリオド (.) を使用できます。
注
TSLモデルの説明。 説明には、文字、数字、および特殊文字を含めることができます。 説明の長さは1 ~ 100文字である必要があります。
オンラインバージョンが利用可能な場合は、リリースする現在のバージョンとオンラインバージョンの違いを確認する必要があります。
[違いの表示] をクリックします。 [違いの表示] パネルでは、バージョン間の違いを表示できます。 設定を確認したら、[確認] をクリックします。 オンラインリリースモデルで? ダイアログボックスで、チェックボックスが自動的に選択されます。
バージョン間の違いを表示したくない場合は、「現在のバージョンとオンラインバージョンの違いを確認したことを確認する」を選択します。
[OK] をクリックしてTSLモデルを公開します。
実行結果
TSLモデルを公開した後、IoT Platformコンソールで公開されたモデルを表示できます。 [プロダクトの詳細] ページの [機能の定義] タブでは、次の操作を実行できます。
[TSLモデル] をクリックして、JSON形式のTSLモデルを表示します。
関連する API 操作
API | 説明 |
製品のTSLモデルに機能または拡張情報を追加します。 | |
製品のTSLモデルの詳細を照会します。 | |
製品のTSLモデルを別の製品にコピーします。 | |
製品のTSLモデルをリリースします。 | |
IoT Platformで事前定義されているすべての製品カテゴリを照会します。 | |
指定されたカテゴリに関する標準TSLモデル情報を照会します。 | |
指定された製品のTSLモデルバージョンを照会します。 | |
指定した製品のTSLモデルを照会します。 | |
TSLモデルを指定された製品にインポートします。 拡張情報はインポートできません。 | |
指定した製品の公開済みTSLモデルの詳細を照会します。 | |
指定された製品の公開TSLモデルに関する基本情報を照会します。 | |
指定された製品のTSLモデルに関する拡張情報を照会します。 | |
リリースされたTSLモデルの拡張情報を照会します。 |
次に何をすべきか
デフォルトでは、製品のデバイスによって送信されたTSLデータは、ホットデータストレージ領域に自動的に書き込まれます。 ビジネス要件に基づいて、一部またはすべてのTSLモデルのホットデータストレージサービスを停止できます。