オートメーション設定ガイド
対象画面:オートメーション設定(ルールとアクション一覧) / 目的:運用・設計・デバッグの観点で「自動化の実行構造」と「各ボタンの出力内容」を理解する
1. オートメーション設定について 概要
SWPF の自動化は、イベント(トリガー)を起点に、対象グループのテンプレートを順次実行し、テンプレート内からコマンド(プラグイン)を呼び出す形で構成されます。
Trigger (発火条件)
↓ resolve
Group ID (実行対象のまとまり)
↓ list / sort
Template Entities (順序付きの処理ひな型)
↓ execute
Commands (Plugin invocations)
↓ persist
Results / Trace (実行結果の保存・ログ)
設計上の要点
トリガーとグループは「ルーティング」、テンプレートが「制御(ルール/フロー)」、コマンド(プラグイン)が「副作用を持つ実処理」を担当します。
トリガーとグループは「ルーティング」、テンプレートが「制御(ルール/フロー)」、コマンド(プラグイン)が「副作用を持つ実処理」を担当します。
2. 名前の定義と説明 定義
Triggerトリガー
- 自動化の入口。CRONや外部イベントなどの「起動条件」。
- 「何を実行するか」は持たず、実行対象(グループ)への紐付けが主。
- 運用では「発火しているか」「対象ユーザー/UIDが正しいか」が重要。
Groupグループ(GROUP_ID)
- テンプレートを束ねる識別子。エンティティではなくGroup IDとして扱う。
- 1つのトリガーが複数グループを持つ/呼ぶことも可能。
- グループ内のテンプレートはweight順に並ぶ想定。
Templateテンプレート
- ルール判定(rule_json)と処理フロー(template_json)を内包する「自動化の中枢」。
- パラメータ(params_json)で外部接続・閾値・文言などを受け取る。
- テンプレート単位で「何を実行し、何を出力し、どこに記録するか」が決まる。
Commandコマンド/Pluginプラグイン
- 実処理(API呼び出し、通知、DB保存、AI実行など)を行う再利用部品。
- テンプレートから呼び出される。
- 同じプラグインを複数テンプレートで共用可能(標準化・保守性向上)。
3. 画面構成と処理の流れ 説明
この画面は「実行チェーン」をそのまま左から右へ並べたものです。
| 列 | 目的 | 運用で見るポイント |
|---|---|---|
| トリガー | 起動条件の一覧 | 期待するトリガーが存在するか/有効か |
| グループ | 実行対象のまとまり | トリガーに紐づく GROUP_ID が正しいか |
| テンプレート | ルールとフローの定義 | weight順・ルール内容・必要パラメータの有無 |
| コマンドとプラグイン | 実処理の一覧 | 呼び出されるプラグインが想定通りか/副作用の把握 |
診断の基本手順
「トリガーが正しい」→「グループが正しい」→「テンプレート順と条件が正しい」→「プラグインが正しい」へ順に疑うと最短で原因に到達します。
「トリガーが正しい」→「グループが正しい」→「テンプレート順と条件が正しい」→「プラグインが正しい」へ順に疑うと最短で原因に到達します。
5. 手動実行および自動実行における注意点注意点
5.1 手動実行(テンプレートを手動で実行する)
- 運用確認・検証・障害復旧で使用します。
- 「CRONを待たずにすぐ試す」用途に適しています。
- 実行前に、副作用(メール送信、デバイス制御、外部API課金)を必ず意識してください。
5.2 権限・スコープ(ユーザー別)
- ユーザー単位(UID)でテンプレート/トリガーが紐づく場合、表示・実行対象が一致しているか確認します。
- 管理者は「全体」を見られる一方、一般ユーザーは「自分の分」だけ見えるのが安全です。
5.3 失敗時の観点
- 入力が来ているか(トリガー発火/スケジュール動作)
- グループが解決できているか(対象 GROUP_ID)
- テンプレートの順序が正しいか(weight)
- 必要パラメータが揃っているか(params_json)
- プラグイン実行が成功しているか(外部API、認証、タイムアウト)
6. 【プラグイン開発者向け】データ構造・拡張ポイント・テスト観点 プラグイン開発者向け
6.1 典型的なデータ責務
| 要素 | 責務 | 変更頻度 | 影響範囲 |
|---|---|---|---|
| Trigger | 起動点(スケジュール/イベント) | 低 | 広(入口) |
| Group ID | テンプレート束ね | 中 | 中 |
| Template | ルール/フロー/パラメータ | 高 | 広(挙動を決める) |
| Plugin | 実処理(副作用) | 中 | 広(外部接続) |
6.2 拡張ポイント(よく追加される箇所)
- 新規プラグイン追加:外部API連携、通知方式、デバイス制御を増やす
- テンプレートJSON拡張:新しいノードタイプ(EXPRESSION/COMMAND/TRANSFORMなど)
- params_map 拡張:コンテキスト(raw.*)の追加、テンプレート差し込みキーの追加
- バリデーション:rule_json/params_json の整合性チェックを強化
6.3 テスト観点(最小セット)
機能テスト
- トリガー発火 → グループ解決 → テンプレート順実行
- ルールの真/偽で分岐が変わること
- プラグイン呼び出し成功・失敗の挙動
安全性テスト
- 副作用のあるプラグイン(メール/制御)は二重実行されない
- 認証情報がログに出ない
- 異常時にトレースが残る(原因追跡できる)
開発メモ:
画面の「表/図」は、運用者が内部構造を理解するための“デバッグUI”でもあります。
変更時は「表示の意味が変わっていないか」「誤解を生まないか」もテスト項目です。
画面の「表/図」は、運用者が内部構造を理解するための“デバッグUI”でもあります。
変更時は「表示の意味が変わっていないか」「誤解を生まないか」もテスト項目です。
7. 自動実行チェックリスト チェックリスト
- ✅ 期待するトリガーが存在し、定期実行(CRON)が動いている
- ✅ トリガーが参照する GROUP_ID が正しい
- ✅ グループ内テンプレートが weight 昇順で並んでいる
- ✅ パラメータ(APIキー・宛先・閾値)が欠落していない
- ✅ コマンド一覧に想定外の外部送信先・副作用がない
- ✅ 失敗時にログ/トレースが残り、原因追跡できる
当サイトまたはIoTカスタムモジュール、開発支援に関するお問い合わせはこちらのメールフォームからお気軽にお問い合わせください。