Soracom

Users

ドキュメント
Home ドキュメント SORACOM Flux Getting Started

センサーデータと天気予報から最適なエアコン設定温度を AI に質問する

GPS マルチユニット SORACOM Edition (以下、GPS マルチユニット) が SORACOM に送信したデータと、Open-Meteo で取得した天気予報をもとに、AI に最適なエアコン設定温度を質問して、結果を LINE に通知します。

GPS マルチユニットは、位置情報 (GPS)、温度、湿度を送信するデバイスです。

操作を始める前に準備が必要です (クリックして確認してください)

(1) SORACOM アカウント (オペレーター) を作成する

SORACOM アカウント (オペレーター) を作成します。また、支払い方法の登録も必要です。詳しくは、STEP 1: SORACOM アカウント (オペレーター) を作成する を参照してください。

(2) GPS マルチユニット SORACOM Edition を準備する

GPS マルチユニット SORACOM Edition を使用します。

なお、GPS マルチユニットがない場合でも、GPS マルチユニットが送信するデータと同じフォーマットで Unified Endpoint のエントリポイントにデータを送信することで、このページの操作を進められます。詳しくは、GPS マルチユニット SORACOM Edition からデータを送信する を参照してください。

準備完了

ステップ 1: LINE Notify のトークンを発行する

ステップ 7: LINE 通知アクションを作成する の操作で必要な LINE Notify のトークンを発行します。

LINE Notify のトークンは、パーソナルアクセストークンや、Personal Access Token と表記されることがあります。

  1. LINE Notify にアクセスし、[ログイン] をクリックして、LINE アカウントでログインします。

    画面の指示に従って操作してください。ログインに成功すると、[ログイン] の代わりにユーザー名が表示されます。

  2. ユーザー名をクリックし、[マイページ] をクリックします。

  3. [トークンを発行する] をクリックします。

  4. 以下の項目を設定します。

    項目説明
    [トークン名を記入してください]トークン名を入力します。
    [通知を送信するトークルームを選択してください]通知先のトークルームを選択します。たとえば、「1:1 で LINE Notify から通知を受け取る」を選択すると、「LINE Notify」というアカウントから通知が届きます。

  5. [発行する] をクリックします。

    LINE Notify のトークンが発行されます。

  6. [コピー] をクリックして、クリップボードにコピーします。

認証情報ストアに API トークン認証情報を登録する

Flux アプリから LINE Notify にメッセージを送信するために、LINE Notify に関する認証情報 (LINE Notify のトークン) を、ユーザーコンソールの認証情報ストアに登録します。認証情報ストアの「認証情報を登録」画面の表示方法については、認証情報を登録する を参照してください。

認証情報は、以下のように登録します。

項目説明
[認証情報 ID]認証情報を識別するために任意の名前を入力します。例: LINE-Notify-for-air-conditioning-settings
[種別]「API トークン認証情報」を選択します。
[API トークン]LINE Notify のトークンを入力します。例: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ステップ 2: SIM グループを作成する

Unified Endoint を利用するために、SIM グループを作成して GPS マルチユニットで使用している IoT SIM をその SIM グループに所属させます。

SIM グループの作成および IoT SIM が所属するグループを変更する操作については、以下のページを参照してください。

Unified Endpoint のエントリポイントにデータを送信したときに Flux アプリが起動するように設定します

ステップ 4: IoT デバイスイベントソースを利用するチャネルを作成する では、イベントソースとして「IoT デバイス」を選択します。その場合は、以下の条件をすべて満たすときに、デバイスが Unified Endpoint のエントリポイントに送信したデータが Flux アプリのイベントソースとして扱われます。

  • IoT SIM が SIM グループに所属すること。
  • その SIM グループをチャネルのイベントソースに設定すること。
  • IoT SIM を利用するデバイスで、Unified Endpoint のエントリポイント にデータを送信すること。

ステップ 3: Flux アプリを作成する

  1. ユーザーコンソールにログイン し、Flux アプリを作成するカバレッジタイプを選択します。

    たとえば、plan01s の IoT SIM がデータを送信したときに Flux アプリが実行されるようにする場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][SORACOM FLUX][Flux アプリ] の順にクリックします。

  3. [新しい Flux アプリを作成する] をクリックします。

  4. 以下の項目を設定します。

    項目説明
    [名前]Flux アプリの名前を入力します。
    [概要]Flux アプリの概要を入力します。

  5. [作成] をクリックします。

    Flux アプリが作成され、SORACOM Flux Studio の [STUDIO] タブが表示されます。

ステップ 4: IoT デバイスイベントソースを利用するチャネルを作成する

  1. SORACOM Flux Studio の [STUDIO] タブで、[+イベントチャネルを作成する] をクリックします。

    「新しいイベントチャネルを作成」画面が表示されます。

  2. イベントソースとして [IoT デバイス] を選択して、[次へ] の順にクリックします。

    この Flux アプリでは、SIM グループに所属する IoT デバイスが Unified Endpoint のエントリポイントにデータを送信したときに、イベントメッセージをチャネルに送信するように設定します。

    IoT デバイスイベントソースから、チャネルに送信されるイベントメッセージについて詳しくは、IoT デバイスイベントソース を参照してください。

  3. 以下の項目を設定します。

    項目説明
    [名称]チャネルの名前を入力します。
    [概要]チャネルの概要を入力します。
    [イベントソース設定]

    チャネルにイベントメッセージが送信される条件を設定します。

    項目説明
    [有効]この条件を有効化する場合は、「有効」にします。
    [グループ]ステップ 2: SIM グループを作成する で作成した SIM グループの ID を入力します。ここで指定したグループに所属する IoT デバイスが Unified Endpoint のエントリポイントにデータを送信すると、チャネルにイベントメッセージが送信されます。

  4. [イベントチャネルを作成する] をクリックします。

    イベントソースに連結したチャネルが作成され、チャネルの詳細画面が表示されます。

  5. Esc キーを押すか、[×] (閉じる) をクリックします。

    SORACOM Flux Studio の [STUDIO] タブに戻ります。

ステップ 5: Webhook アクションを作成する

この Flux アプリでは、イベントにあわせて Open-Meteo からイベントに含まれる位置情報の天気予報を取得するように設定します。具体的には、Webhook アクションと、Webhook アクションのアウトプットを送信するチャネル (例: 天気予報チャネル) を作成します。

  1. ステップ 4: IoT デバイスイベントソースを利用するチャネルを作成する で作成したチャネルをクリックします。

  2. [アクション][+アクションを追加] の順にクリックします。

    「新しいアクションを作成」画面が表示されます。

  3. [Webhook][OK] の順にクリックします。

    「新しい Webhook アクションを作成する」画面が表示されます。

  4. 以下の項目を設定します。

    項目説明
    [名前]Webhook アクションの名前を入力します。
    [概要]Webhook アクションの概要を入力します。
    [有効]Webhook アクションを有効化する場合は「有効」にします。
    [CONDITION]

    Webhook アクションの実行条件を設定します。ここでは、GPS マルチユニットが Unified Endpoint のエントリポイントに送信したデータに位置情報 (lat および lon) が含まれていることを実行条件にするために、[アクションの実行条件]payload.lat != null && payload.lon != null を入力します。

    GPS マルチユニットが送信するデータ

    GPS マルチユニットは、Unified Endpoint のエントリポイントに以下のような データを送信します。

    {
        "lat": 35.677226,
        "lon": 139.73307,
        "bat": 3,
        "rs": 4,
        "temp": 29.7,
        "humi": 53.4,
        "x": null,
        "y": null,
        "z": null,
        "type": 0,
        "binaryParserEnabled": true
    }
    
    • イベントソース IoT デバイスからチャネルに送信されるデータは IoT デバイスイベントソース を参照してください。

    • アクションに関連するチャネルからのメッセージを扱う場合、payload. のように指定します。イベントやメッセージの値を使ってアクションを実行する条件を指定する場合は、[アクションの実行条件] の入力欄の下に表示される [] をクリックして説明を確認してください。

  5. 続けて、以下の項目を設定します。

    項目説明
    [CONFIG]

    Webhook アクションで Webhook を送信する際の送信先や送信データなどを設定します。

    • [HTTP メソッド]: 「GET」を選択します。

    • [URL]: Open-Meteo のエントリポイントのリクエストパラメータに、位置情報 (payload.latpayload.lon) を含めるために、以下の内容を入力します。リクエストパラメータについて詳しくは、Open-Meteo の API Documentation (英語) を参照してください。

      https://api.open-meteo.com/v1/forecast?latitude=${payload.lat}&longitude=${payload.lon}&daily=temperature_2m_max&daily=windspeed_10m_max&timezone=Asia/Tokyo&daily=temperature_2m_min&temperature_unit=celsius
      
    • [HTTP ヘッダー][HTTP ボディ]: 今回は設定しません。

    [OUTPUT]

    Webhook アクションのレスポンスを、別のチャネルに送信するかどうかを設定します。

    • [アクションのアウトプットを別のチャネルに送信する]: 「有効」にします。
    • [送信先チャネル]: [新しくチャネルを作成する] を選択して、[チャネル名] に「天気予報」を入力します。

  6. [作成する]をクリックします。

    Webhook アクションが作成され、チャネルの詳細画面の [アクション] タブに戻ります。

  7. Esc キーを押すか、[×] (閉じる) をクリックします。

    SORACOM Flux Studio の [STUDIO] タブに戻ります。

ステップ 6: AI アクションとアウトプットを送信するチャネルを作成する

この Flux アプリでは、イベント (ステップ 5: Webhook アクションを作成する で天気予報を取得したこと) にあわせてリクエスト (空調の設定を質問する) を生成 AI に送信するように設定します。具体的には、AI アクションと、AI アクションのアウトプットを送信するチャネル (例: AI Output チャネル) を作成します。

  1. ステップ 5: Webhook アクションを作成する) で作成されたチャネル (天気予報) をクリックします。

  2. [アクション][+アクションを追加] の順にクリックします。

    「新しいアクションを作成」画面が表示されます。

  3. [AI][OK] の順にクリックします。

    「新しい AI アクションを作成する」画面が表示されます。

  4. 以下の項目を設定します。

    項目説明
    [名前]AI アクションの名前を入力します。
    [概要]AI アクションの概要を入力します。
    [有効]AI アクションを有効化する場合は「有効」にします。
    [CONDITION]

    AI アクションの実行条件を設定します。ここでは、データを受信したことを実行条件にするために、[アクションの実行条件] は空欄のままにします。

    • IoT デバイスイベントソースからチャネルに送信されるデータは IoT デバイスイベントソース を参照してください。

    • アクションに関連するチャネルからのメッセージを扱う場合、payload. のように指定します。イベントやメッセージの値を使ってアクションを実行する条件を指定する場合は、[アクションの実行条件] の入力欄の下に表示される [] をクリックして説明を確認してください。

  5. 続けて、以下の項目を設定します。

    項目説明
    [CONFIG]

    AI アクションで利用する AI モデルや、AI モデルに送信するプロンプトなどを設定します。

    • [AI モデル]: 「Azure OpenAI (GPT-4o)」を選択します。

    • [プロンプト]: 以下の内容を入力します。

      現在の室内の温度湿度は、${event.payload.temp}度、${event.payload.humi}%です。
      また今日の最高・最低気温はそれぞれ、${payload.daily.temperature_2m_max[0]}度、${payload.daily.temperature_2m_min[0]}度の予報です。
      
      空調の設定をどうすればいいのか、以下の JSON フォーマットで答えてください。
      
      {
          "mode": "off|warmup|cooldown|dry",
          "temperature": 24,
          "thougths": "(その設定にした理由)"
      }
      
      一般的に、夏の室内の温度は 25-28度、湿度は 45-60% が適切だとされています。
      また冬の室内の温度は、18-22度、湿度は 55-65% が適切だとされています。
      
    • [AI からの返答を JSON 形式にする]: チェックを入れます。

    • [AI に画像を読み込ませる]: チェックを外したままにします。

    • AI アクションが実行されるトリガーのイベントソースのデータ (この例では、Webhook アクションの実行結果) を扱う場合は、${payload.daily.temperature_2m_max[0]} のように指定します。
    • Flux アプリが起動するトリガーのイベントソースのデータ (この例では、SIM グループに所属する IoT デバイスが Unified Endpoint のエントリポイントに送信したデータ) を扱う場合は、event. を付与して、${event.payload.temp} のように指定します。
    [OUTPUT]

    AI アクションのレスポンスを、別のチャネルに送信するかどうかを設定します。

    • [アクションのアウトプットを別のチャネルに送信する]: 「有効」にします。
    • [送信先チャネル]: [新しくチャネルを作成する] を選択して、[チャネル名] に「空調設定」を入力します。

  6. [作成する]をクリックします。

    AI アクションが作成され、チャネルの詳細画面の [アクション] タブに戻ります。

  7. Esc キーを押すか、[×] (閉じる) をクリックします。

    SORACOM Flux Studio の [STUDIO] タブに戻ります。

ステップ 7: LINE 通知アクションを作成する

この Flux アプリでは、生成 AI のレスポンスに応じて、LINE Notify にメッセージを送信するように設定します。具体的には、LINE 通知アクションを作成します。

  1. ステップ 6: AI アクションとアウトプットを送信するチャネルを作成する で作成されたチャネル (例: 空調設定) をクリックします。

    チャネルの詳細画面が表示されます。

    ステップ 6 で作成されたチャネルのイベントソースは変更できません。また、[イベントソース] タブに表示されたエントリポイントに、JSON 形式のデータを POST すると、任意のタイミングで LINE 通知アクションを実行できます。

  2. [アクション][+アクションを追加] の順にクリックします。

  3. [LINE 通知][OK] の順にクリックします。

    「新しい LINE 通知アクションを作成する」画面が表示されます。

  4. 以下の項目を設定します。

    項目説明
    [名前]LINE 通知アクションの名前を入力します。
    [概要]LINE 通知アクションの概要を入力します。
    [有効]LINE 通知アクションを有効化する場合は「有効」にします。
    [CONDITION]

    LINE 通知アクションの実行条件を設定します。ここでは、データを受信したことを実行条件にするために、[アクションの実行条件] は空欄のままにします。

    • ステップ 6 で作成した AI アクションのアウトプットを送信するチャネルに送信されるデータは、AI アクション を参照してください。
    • アクションに関連するチャネルからのメッセージを扱う場合、payload. のように指定します。イベントやメッセージの値を使ってアクションを実行する条件を指定する場合は、[アクションの実行条件] の入力欄の下に表示される [] をクリックして説明を確認してください。

  5. 続けて、以下の項目を設定します。

    項目説明
    [CONFIG]

    LINE 通知アクションで送信するメッセージや、LINE Notify のトークンを設定します。

    • [メッセージ]: 以下の内容を入力します。

      エアコンの推奨設定をお伝えします!
      モード: ${payload.output.mode}
      設定温度: ${payload.output.temperature}
      
      理由: ${payload.output.thoughts}
      
    • [認証情報]: 認証情報ストアに API トークン認証情報を登録する で認証情報ストアに登録した LINE Notify のトークンを選択します。

    • LINE 通知アクションが実行されるトリガーのイベントソースのデータ (この例では、AI アクションの実行結果) を扱う場合は、${payload.output.mode} のように指定します。
    • Flux アプリが起動するトリガーのイベントソースのデータ (この例では、SIM グループに所属する IoT デバイスが Unified Endpoint のエントリポイントに送信したデータ) を扱う場合は、event. を付与して、${event.payload.temp} のように指定します。
    [OUTPUT]

    LINE 通知アクションのレスポンスを、別のチャネルに送信するかどうかを設定します。

    • [アクションのアウトプットを別のチャネルに送信する]: 「無効」にします。

  6. [作成する] をクリックします。

    LINE 通知アクションが作成され、チャネルの詳細画面の [アクション] タブに戻ります。

  7. [登録] をクリックします。

(動作確認) Flux アプリにデータを送信する

GPS マルチユニットからデータを送信する (GPS マルチユニットがある場合)

GPS マルチユニットから Unified Endpoint のエントリポイントにデータを送信します。詳しくは、GPS マルチユニットからデータを送信する を参照してください。

[テスト実行] タブからデータを送信する (GPS マルチユニットが無い場合)

GPS マルチユニットが無い場合は、イベントソースに連結したチャネルの詳細画面の [テスト実行] タブで、GPS マルチユニットと同様のデータを送信することで、Flux アプリの動作を確認できます。

  1. チャネルをクリックします。

  2. [テスト実行] タブをクリックし、[BODY] に以下の内容を入力します。

    {
        "lat": 35.677226,
        "lon": 139.73307,
        "bat": 3,
        "rs": 4,
        "temp": 29.7,
        "humi": 53.4,
        "x": null,
        "y": null,
        "z": null,
        "type": 0,
        "binaryParserEnabled": true
    }
    

LINE Notify でメッセージが届いていることを確認する

ステップ 1: LINE Notify のトークンを発行する で選択したトークルームに、メッセージが届いていることを確認してください。

Flux アプリの実行履歴を確認する

SORACOM Flux Studio の [実行履歴] タブでも、実行履歴を確認できます。

  1. ユーザーコンソールにログイン し、Flux アプリを作成したカバレッジタイプを選択します。

    たとえば、グローバルカバレッジに Flux アプリを作成した場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. [メニュー][SORACOM FLUX][Flux アプリ] の順にクリックします。

  3. 作成した Flux アプリをクリックします。

  4. [実行履歴] をクリックします。

    チャネルごとに、[MESSAGE][CONTEXT]、そのチャネルから実行されたアクションの [入力][出力] が表示されます。詳しくは、実行履歴 (ログ) を参照してください。