Magidoc

SMARTIO クラウドAPI

このページではSMARTIOのクラウドAPIのご利用方法についてご紹介します。

クラウドAPIとは

#

クラウドAPIでは、インターネット経由でSMARTIOの制御や設定を行う事ができます。
遠隔地のSMARTIOを制御する場合や、多拠点に設置されたSMARTIOを一元管理する場合にご利用ください。

クラウドAPIのご利用には、Microsoft Azureの契約が必要となります。
ローカルネットワーク内でのみAPIを利用する場合は、契約不要で利用頂けるローカルAPIをご検討ください。

クラウドAPIの仕様

#

クラウドAPIは、Azure IoT Hubダイレクトメソッドを使用して実装されています。

  • ダイレクトメソッドのメソッド名にはquery を指定してください。
  • ダイレクトメソッドのリクエストのpayload にGraphQLのリクエスト文を格納してください。
  • ダイレクトメソッドのレスポンスのpayload にGraphQLのレスポンス文が格納されます。

プログラムからダイレクトメソッドを実行する場合は、Azure IoT Hub Service SDKこちらをご参照ください。
具体的なクエリの実行方法については、Examplesの他、GraphQL 公式サイトや使用するクライアントライブラリのドキュメントをご参照ください。

クラウドAPIの利用手順

#

クラウドAPIをご利用頂くには、以下の手順が必要となります。

  1. Microsoft Azureの契約
  2. IoT Hubの作成
  3. IoT Hubのデバイスの作成
  4. SMARTIOにIoT Hubの接続情報の設定

1. 2. については、Microsoft AzureIoT Hubのドキュメントをご参照ください。

3. IoT Hubのデバイスの作成

#

IoT Hubの画面にアクセスし、左メニューから「デバイス」を選択してデバイスの一覧画面にアクセスします。

IoT Hub Device List

「デバイスの追加」を押して、デバイスの作成画面にアクセスします。

IoT Hub Device Add

任意のデバイスIDを入力し、「保存」を押してデバイスの作成を完了します。

  • IoT Edge デバイス: チェック不要
  • 認証の種類: 対称キー
  • 自動生成キー: チェック
  • このデバイスをIoTハブに接続する: 有効化
  • 親デバイス: 指定無し

4. SMARTIOにIoT Hubの接続情報の設定

#

IoT Hubのデバイスの一覧画面にアクセスし、3.で作成したデバイスを選択してデバイスの詳細画面にアクセスします。

IoT Hub Device Select

デバイスの詳細画面に表示されている「プライマリ接続文字列」をコピーします。

IoT Hub Device Detail

SMARTIOの管理画面にアクセスし、左メニューの「クラウド設定」を選択し、クラウド設定画面にアクセスします。

Cloud Settings

「編集」ボタンを押して「クラウド設定ダイアログ」を表示し、クラウドサービスで「Azure IoT Hub」を選択します。
「Azure IoT Hub 接続文字列」の入力欄に、先ほどコピーした「プライマリ接続文字列」を入力し、「更新する」ボタンを押して設定を保存します。

Cloud Settings Edit

SMARTIOのダッシュボード画面にアクセスし、システム情報のクラウドに「Azure IoT Hub 接続済み」が表示されていることを確認します。
以上でクラウドAPIの実行準備は完了となります。

IoT Hubの画面上からクラウドAPIの実行

#

IoT Hubでは、ダイレクトメソッドを実行するためのツールが用意されています。
ツールを使用することで簡単にクラウドAPIを体験頂く事が可能です。

ツールを使用するには、IoT Hubのデバイスの詳細画面にアクセスし、「ダイレクトメソッド」を選択してダイレクトメソッドの画面にアクセスします。

IoT Hub Device Detail2

メソッド名にquery を入力し、ペイロードにGraphQLのリクエスト文を入力します。
「メソッドの呼び出し」ボタンを押すと、クエリが実行されて結果が表示されます。

IoT Hub Direct Method

Examples

#

ここでは、クラウドAPIを実行するいくつかの例をご紹介します。

入力ポート状態の取得

#

入力ポートの状態を取得するには、 inports query を使用します。
以下のコードは入力ポートの状態を取得する例です。

デバイスID はAzure IoT Hub上で設定したデバイスIDを入力してください。

共有アクセスポリシーの接続文字列 は、共有アクセスポリシーのservice のプライマリ接続文字列をご使用ください。

    
  

共有アクセスポリシーの接続文字列 は、共有アクセスポリシーのservice のプライマリ接続文字列をご使用ください。

    
  

SASトークンの取得にazコマンドを使用しています。
Azure Cloud Shell環境ですとazコマンド等のインストールが不要でお試し頂けます。

IoT Hub名 はご使用の環境に合わせて変更してください。

    
  

実行結果は以下の様になります。

    
  

出力ポートの制御

#

出力ポートを制御するには、 writeOutport mutation を使用します。
以下のコードは出力の1番ポートをONにする例です。

デバイスID はAzure IoT Hub上で設定したデバイスIDを入力してください。

共有アクセスポリシーの接続文字列 は、共有アクセスポリシーのservice のプライマリ接続文字列をご使用ください。

    
  

共有アクセスポリシーの接続文字列 は、共有アクセスポリシーのservice のプライマリ接続文字列をご使用ください。

    
  

SASトークンの取得にazコマンドを使用しています。
Azure Cloud Shell環境ですとazコマンド等のインストールが不要でお試し頂けます。

IoT Hub名 はご使用の環境に合わせて変更してください。