SWPF ルールパラメータ設定 操作説明書
0. この説明書について
この説明書は、SWPF の「かんたん設定」で ルールパラメータ設定 を行うときに起動する Rule Builder / RULE ヘルパー の操作説明書です。
対象読者は、プログラミング経験がほぼないユーザーを想定しています。 そのため、画面に出てくる IF、THEN、ELSE、TEMPLATE、EXPRESSION、LITERAL などの用語も、できるだけ一から説明します。
この画面で行うことは、簡単に言うと次の内容です。
もし ○○ なら
□□ を実行する
それ以外なら
△△ を実行する
たとえば、温度によって通知内容を変える場合は次のようになります。
もし TEMP が 30 以上なら
暑いとき用の通知を実行する
それ以外で、TEMP が 5 以下なら
寒いとき用の通知を実行する
それ以外なら
何もしない
1. RULE ヘルパーでできること
RULE ヘルパーは、自動化処理を どの条件で実行するか を設定する画面です。
SWPF の自動化では、あらかじめ「実行できる処理」が用意されています。 RULE ヘルパーでは、その処理を 条件に応じて実行するかどうか を決めます。
1.1 画面で設定する主な内容
| 画面の項目 | 何を設定するか | 例 |
|---|---|---|
| もし(IF) | 判定条件 | TEMP >= 30 |
| 成立するなら(THEN) | 条件に合ったときの処理 | HOT を実行 |
| それ以外なら(ELSE) | 条件に合わなかったときの処理 | 別のIFを続ける、または何もしない |
| TEMPLATE | 実行する処理の名前 | DISCOMFORT_INDEX, HOT, COLD |
| かつ(AND) | 複数条件をすべて満たす | TEMP >= 30 かつ HUMID >= 70 |
| または(OR) | 複数条件のどれかを満たす | TEMP >= 30 または CO2 >= 1000 |
2. 最初に理解しておく用語
条件設定の説明に入る前に、RULE ヘルパーで出てくる用語を説明します。
2.1 RULE JSON とは
RULE JSON は、RULE ヘルパーで作った条件を保存するためのデータです。
ユーザーは通常、JSON を直接書く必要はありません。 画面で条件を入力すると、SWPF が内部的に RULE JSON を作成します。
例
画面では次のように入力します。
TEMP >= 30
内部的には、次のような意味の RULE JSON として保存されます。
{
"if": {
"op": ">=",
"a": { "var": "TEMP" },
"b": 30
},
"then": {
"templateid": "HOT"
},
"else": {
"nop": true
}
}
この説明書では、基本的に JSON を直接編集する前提ではなく、画面上でどう入力するか を中心に説明します。
2.2 IF / THEN / ELSE とは
IF、THEN、ELSE は、条件分岐を表す言葉です。
| 用語 | 画面表示 | 意味 |
|---|---|---|
| IF | もし(IF) | 判定する条件 |
| THEN | 成立するなら(THEN) | 条件に合った場合に実行する内容 |
| ELSE | それ以外なら(ELSE) | 条件に合わなかった場合に実行する内容 |
具体例
もし TEMP が 30 以上なら
HOT を実行する
それ以外なら
何もしない
このような考え方で条件を作ります。
2.3 AND / OR とは
複数の条件を組み合わせるときに使います。
AND: かつ
AND は、すべての条件を満たしたときだけ成立します。
TEMP >= 30
かつ
HUMID >= 70
この場合、温度が30以上で、さらに湿度も70以上のときだけ成立します。
OR: または
OR は、どれか1つでも条件を満たせば成立します。
TEMP >= 30
または
CO2 >= 1000
この場合、温度が30以上、または CO2 が1000以上のどちらかに合えば成立します。
2.4 TEMPLATE とは
TEMPLATE は、条件に合ったときに実行する処理の名前です。
たとえば、次のような TEMPLATE があるとします。
| TEMPLATE名 | 役割の例 |
|---|---|
DISCOMFORT_INDEX | 不快指数を計算する |
HOT | 暑いとき用のメッセージを作る |
COLD | 寒いとき用のメッセージを作る |
DEFAULT | 通常時の処理を行う |
RULE ヘルパーでは、THEN または ELSE で TEMPLATE を選ぶことで、条件に応じて実行する処理を指定します。
重要
RULE ヘルパーで選ぶ TEMPLATE は、プラグインそのものではなく、TEMPLATE_JSON に定義された処理名です。
COMMAND、EXPRESSION、LITERAL については、次の項目で説明します。
2.5 COMMAND / EXPRESSION / LITERAL とは
TEMPLATE には、主に3種類の定義タイプがあります。
| 種類 | 画面表示 | 何をするか | 例 |
|---|---|---|---|
| COMMAND | COMMAND(プラグイン) | プラグインを実行する | メール送信、ChatGPT診断 |
| EXPRESSION | EXPRESSION(式) | 計算式を実行する | 不快指数を計算する |
| LITERAL | LITERAL(固定値) | 固定値を結果として使う | 「通常状態です」などの固定文 |
COMMAND(プラグイン)
COMMAND は、プラグインを実行するタイプです。
たとえば、メール送信プラグインを使って通知メールを送る場合に使用します。
{
"type": "COMMAND",
"plugin": "mail_send",
"input": {
"message": "気温は {TEMP}℃です。"
}
}
初心者向けに言うと、COMMAND は 実際に何かの処理を動かすボタンのようなものです。
EXPRESSION(式)
EXPRESSION は、計算式を実行するタイプです。
たとえば、温度 TEMP と湿度 HUMID から不快指数を計算する場合に使います。
{
"type": "EXPRESSION",
"label": "Discomfort Index",
"expr": "0.81 * TEMP + 0.01 * HUMID * (0.99 * TEMP - 14.3) + 46.3",
"result_key": "discomfort_index"
}
初心者向けに言うと、EXPRESSION は 電卓の式を登録しておき、必要なときに計算するものです。
LITERAL(固定値)
LITERAL は、固定された値を結果として使うタイプです。
{
"type": "LITERAL",
"label": "固定メッセージ",
"value": "通常状態です。",
"result_key": "fixed_message"
}
初心者向けに言うと、LITERAL は 毎回同じ文章や値を返すメモ のようなものです。
COMMAND / EXPRESSION / LITERAL の使い分け
| やりたいこと | 選ぶタイプ |
|---|---|
| メールを送る | COMMAND |
| ChatGPTを呼び出す | COMMAND |
| 温度と湿度から計算する | EXPRESSION |
| 固定メッセージを用意する | LITERAL |
2.6 NOP / END とは
THEN または ELSE では、TEMPLATE 以外の動作も選べます。
| 選択肢 | 意味 | よく使う場面 |
|---|---|---|
| NOP | 何もしない | 条件に合わないときは処理しない |
| END | 終了する | そこで処理を終わらせたい場合 |
通常ユーザーは、条件に合わない場合は NOP を使うのが分かりやすいです。
もし TEMP >= 30 なら
HOT を実行する
それ以外なら
NOP(何もしない)
3. RULE ヘルパー画面の見方
RULE ヘルパーを開くと、次のような画面が表示されます。
3.0 実際の画面例
ここでは、実際の RULE ヘルパー画面を見ながら、どこを確認すればよいかを説明します。 RULE ヘルパーは表示言語を切り替えられるため、同じルールでも、通常の日本語表示と、子ども向けファンタジー表示のように、表現を変えて確認できます。
3.0.1 ルールパラメータ設定画面(日本語)

この画面は、日本語表示の RULE ヘルパーです。 画面上部には、条件を追加するための 「+ 条件を追加」 ボタン、表示言語を選ぶリスト、入力状態を示す OK(全ブロック完了) が表示されています。
画面中央では、条件を上から順番に作ります。 この例では、最初に TEMP <= 15 を判定し、条件に合えば DISCOMFORT_INDEX と COLD を実行します。 条件に合わなかった場合は、それ以外なら(ELSE) で IF(継続) を選び、次の条件として TEMP >= 30 を判定しています。
もし TEMP が 15 以下なら
DISCOMFORT_INDEX と COLD を実行する
それ以外で TEMP が 30 以上なら
DISCOMFORT_INDEX と HOT を実行する
初心者の方は、まず次の順番で画面を見ると分かりやすくなります。
右下の 「適用して終了」 を押すと、ここで作成したルールが呼び出し元のルールパラメータ設定に反映されます。 変更を反映しない場合は、「保存せずに終了」 を押します。
3.0.2 ルールパラメータ設定画面(子ども向けファンタジー)

この画面は、同じ RULE ヘルパーを、子ども向けファンタジー風の表示に切り替えた例です。 表示される言葉はやさしい表現に変わりますが、設定している内容は通常の日本語表示と同じです。
たとえば、日本語表示の もし(IF)、成立するなら(THEN)、それ以外なら(ELSE) は、表示言語を変えることで、より直感的な言葉に置き換えて確認できます。 そのため、プログラミングに慣れていないユーザーでも、
どんなときに?
そのとき何をする?
そうでなければ何をする?
という流れで条件を理解しやすくなります。
ただし、画面の見た目や言葉が変わっても、入力する基本構造は同じです。
| 通常の考え方 | 画面で設定する内容 | 意味 |
|---|---|---|
| どんなときに? | IF の条件 | TEMP <= 15 などの判定条件 |
| そのとき何をする? | THEN の動作 | COLD などの TEMPLATE を実行 |
| そうでなければ? | ELSE の動作 | 次の IF に進む、または NOP にする |
表示言語を変えても、最後は必ず画面上部の OK表示 を確認し、問題なければ 「適用して終了」 を押してください。

この画面では、次のようなルールを設定しています。
もし TEMP <= 15 なら
DISCOMFORT_INDEX と COLD を実行する
それ以外なら
さらに IF を続ける
もし TEMP >= 30 なら
DISCOMFORT_INDEX と HOT を実行する
つまり、温度が低い場合は COLD、温度が高い場合は HOT を実行する構成です。
3.1 画面上部
画面上部には、次の操作があります。
| 項目 | 説明 |
|---|---|
+ 条件を追加 | 新しい条件ブロックを追加します |
| 表示言語 | 日本語、英語などの表示を切り替えます |
| OK / NG 表示 | 全体の入力が完了しているか表示します |
| × | 画面を閉じます |
OK(全ブロック完了) と表示されていれば、最低限必要な項目が入力されています。
3.2 IF 行
IF 行では、条件を入力します。
もし(IF) TEMP >= 30
| 入力欄 | 入れる内容 | 例 |
|---|---|---|
| 左側 | 判定したい値の名前 | TEMP |
| 中央 | 比較方法 | >= |
| 右側 | 比較する値 | 30 |
この例は、次の意味です。
TEMP が 30 以上なら成立
3.3 THEN 行
THEN 行では、IF 条件に合った場合に何をするかを選びます。
成立するなら(THEN...) TEMPLATE DISCOMFORT_INDEX
ここで TEMPLATE を選ぶと、右側で実行する TEMPLATE を選択できます。 TEMPLATE の意味は、2.4 TEMPLATE とは を参照してください。
複数の TEMPLATE を実行したい場合は、+ 追加 を押して行を増やします。
TEMPLATE DISCOMFORT_INDEX
TEMPLATE HOT
この場合、条件に合ったときに DISCOMFORT_INDEX と HOT の両方を実行します。
3.4 ELSE 行
ELSE 行では、IF 条件に合わなかった場合に何をするかを選びます。
それ以外なら(ELSE...) IF(継続)
IF(継続) を選ぶと、さらに下に新しい IF 条件を続けられます。
これにより、次のような分岐を作れます。
寒い場合
暑い場合
それ以外の場合
4. 条件設定の基本操作
ここからは、実際に条件を作る手順を説明します。 この章では、TEMPLATE や EXPRESSION などの用語は説明済みとして扱います。意味が分からない場合は、2.4 TEMPLATE とは、2.5 COMMAND / EXPRESSION / LITERAL とは を参照してください。
4.1 例1: 温度が30以上ならHOTを実行する
作りたい条件は次のとおりです。
もし TEMP が 30 以上なら
HOT を実行する
それ以外なら
何もしない
入力手順
- IF 行の左側に
TEMPと入力します。 - 比較方法で
>=を選びます。 - 右側に
30と入力します。 - THEN 行で
TEMPLATEを選びます(TEMPLATE参照)。 - TEMPLATE の候補から
HOTを選びます。 - ELSE 行は
NOPを選びます。 - 右下の
適用して終了を押します。
4.2 例2: 低温ならCOLD、高温ならHOTを実行する
作りたい条件は次のとおりです。
もし TEMP が 15 以下なら
DISCOMFORT_INDEX と COLD を実行する
それ以外で、TEMP が 30 以上なら
DISCOMFORT_INDEX と HOT を実行する
それ以外なら
何もしない
画面例は次のとおりです。

入力手順
- 最初の IF 行に
TEMP <= 15を入力します。 - 最初の THEN 行で
TEMPLATEを選びます(TEMPLATE参照)。 - TEMPLATE に
DISCOMFORT_INDEXを選びます(EXPRESSION参照)。 + 追加を押して、次の TEMPLATE 行にCOLDを選びます(LITERALまたはCOMMAND参照)。- 最初の ELSE 行で
IF(継続)を選びます。 - 追加された IF 行に
TEMP >= 30を入力します。 - 2つ目の THEN 行で
DISCOMFORT_INDEXとHOTを選びます。 - 最後の ELSE は必要に応じて
NOPを選びます。 OK(全ブロック完了)になっていることを確認します。適用して終了を押します。
この設定では、先に寒い条件を判定し、寒くない場合だけ次に暑い条件を判定します。
4.3 例3: 高温を先に判定し、それ以外で低温を判定する
次の画面では、高温条件を先に判定しています。

この画面の意味は次のとおりです。
もし TEMP >= 30 なら
DISCOMFORT_INDEX と HOT を実行する
それ以外で、TEMP <= 5 なら
TOOCOLD を実行する
注意点
条件は上から順番に判定されます。 そのため、どの条件を先に書くかで、実行される処理が変わる場合があります。
たとえば、次のような条件では、先に「危険な条件」や「優先したい条件」を上に置くと分かりやすくなります。
1. TEMP >= 35 なら危険通知
2. TEMP >= 30 なら暑い通知
3. それ以外なら通常
4.4 複数条件をANDでつなぐ
AND を使うと、複数の条件をすべて満たす場合だけ成立します。
TEMP >= 30
かつ(AND)
HUMID >= 70
この場合、温度が高く、さらに湿度も高い場合だけ成立します。
操作手順
- 1行目に
TEMP >= 30を入力します。 かつ(AND)ボタンを押します。- 追加された行に
HUMID >= 70を入力します。 - THEN に実行したい TEMPLATE を選びます(TEMPLATE参照)。
4.5 複数条件をORでつなぐ
OR を使うと、複数条件のどれか1つでも満たせば成立します。
TEMP >= 30
または(OR)
CO2 >= 1000
操作手順
- 1行目に
TEMP >= 30を入力します。 または(OR)ボタンを押します。- 追加された行に
CO2 >= 1000を入力します。 - THEN に実行したい TEMPLATE を選びます(TEMPLATE参照)。
4.6 条件行を削除する
不要な条件行は、右側の 削除 ボタンで削除できます。
ただし、条件を削除すると分岐の意味が変わることがあります。 削除後は、必ず OK(全ブロック完了) になっているか確認してください。
4.7 THEN / ELSE に複数のTEMPLATEを設定する
THEN または ELSE で TEMPLATE を選んだ場合、+ 追加 ボタンで複数の処理を並べられます。
TEMPLATE DISCOMFORT_INDEX
TEMPLATE HOT
この場合、条件に合ったときに、上から順番に複数の TEMPLATE が実行されます。
使いどころ
たとえば、次のような場合に使います。
1. まず EXPRESSION で不快指数を計算する
2. 次に COMMAND または LITERAL で通知文を作る
EXPRESSION の意味は 2.5 COMMAND / EXPRESSION / LITERAL とは を参照してください。
5. 比較演算子の選び方
IF 行の中央では、比較方法を選びます。
| 演算子 | 意味 | 例 | 説明 |
|---|---|---|---|
== | 等しい | TEMP == 25 | TEMP が 25 のとき成立 |
!= | 等しくない | STATUS != normal | STATUS が normal 以外のとき成立 |
> | より大きい | TEMP > 30 | TEMP が 30 より大きいとき成立 |
>= | 以上 | TEMP >= 30 | TEMP が 30 以上のとき成立 |
< | より小さい | TEMP < 10 | TEMP が 10 より小さいとき成立 |
<= | 以下 | TEMP <= 15 | TEMP が 15 以下のとき成立 |
contains | 含む | MESSAGE contains error | 文字列の中に error が含まれるとき成立 |
in | 含まれる | STATUS in warning,error | STATUS が候補の中にあるとき成立 |
ALWAYS TRUE | 常に成立 | 条件なしで実行 | 必ず実行したいときに使う |
数値と文字列の違い
右側に 30 のような数値を入れると、数値として扱われます。 normal や error のような文字を入れると、文字列として扱われます。
初心者の場合は、まず次の使い方から始めると分かりやすいです。
TEMP >= 30
TEMP <= 15
CO2 >= 1000
STATUS == error
6. よく使う条件パターン
6.1 しきい値を超えたら通知する
もし CO2 >= 1000 なら
CO2_ALERT を実行する
それ以外なら
NOP
6.2 温度の範囲で分ける
もし TEMP <= 15 なら
COLD
それ以外で TEMP >= 30 なら
HOT
それ以外なら
NORMAL
6.3 複数条件で判定する
もし TEMP >= 30 かつ HUMID >= 70 なら
DISCOMFORT_ALERT
それ以外なら
NOP
7. 画面下部のボタン
画面右下には、次のボタンがあります。
| ボタン | 意味 |
|---|---|
| 適用して終了 | 入力したルールを保存して画面を閉じます |
| 保存せずに終了 | 入力内容を反映せずに画面を閉じます |
適用して終了
設定した条件を反映したい場合に押します。
保存せずに終了
変更を取り消したい場合に押します。
8. 入力チェックとOK表示
画面上部には、入力状態が表示されます。
OK(全ブロック完了)
この表示になっていれば、RULE ヘルパーとして必要な項目が入力されています。
NG になりやすい例
| 状態 | 原因 |
|---|---|
| IF の左側が空 | 何を判定するか分からない |
| IF の右側が空 | 何と比較するか分からない |
| THEN が未設定 | 条件成立時に何をするか分からない |
| ELSE が未設定 | 条件不成立時に何をするか分からない |
| TEMPLATE が空 | 実行する処理が指定されていない |
空行について
IF 条件は AND/OR で複数行を追加できます。 最後の空行は無視されますが、空行が途中にある場合や、空行が多すぎる場合は NG になることがあります。
9. TEMPLATE候補が表示されない場合
THEN または ELSE で TEMPLATE を選んだとき、候補が表示されない場合があります。
主な原因は次のとおりです。
| 原因 | 対処 |
|---|---|
| TEMPLATE_JSON が空 | 先に TEMPLATE_JSON を設定してください |
| TEMPLATEキーが未定義 | TEMPLATE_JSON に HOT や COLD などのキーを作成してください |
| EXPRESSION / LITERAL の定義が壊れている | TEMPLATE定義タイプを確認してください |
| 画面を開いたあとにTEMPLATE_JSONを変更した | RULEヘルパーを開き直してください |
RULE ヘルパーは、呼び出し元画面の TEMPLATE_JSON から候補を読み込みます。
10. COMMAND / EXPRESSION / LITERAL と RULE ヘルパーの関係
RULE ヘルパーでは、THEN / ELSE で TEMPLATE を選びます。 その TEMPLATE の中身が COMMAND なのか、EXPRESSION なのか、LITERAL なのかは、TEMPLATE_JSON 側で決まります。
例
RULEヘルパー:
TEMP >= 30 のとき HOT を実行
TEMPLATE_JSON:
HOT は LITERAL(固定値)として「暑いです」を返す
この場合、RULE ヘルパーは HOT という名前を選ぶだけです。 HOT が実際に何をするかは、TEMPLATE_JSON の HOT 定義で決まります。
11. 初心者向けの推奨設定手順
はじめて設定する場合は、次の順番で操作してください。
最初から複雑な AND/OR や IF(継続)を使わず、まずは次のような1条件から始めるのがおすすめです。
もし TEMP >= 30 なら HOT
それ以外なら NOP
慣れてきたら、次のように条件を追加します。
もし TEMP <= 15 なら COLD
それ以外で TEMP >= 30 なら HOT
それ以外なら NORMAL
12. よくある間違い
12.1 THEN に何も設定していない
IF 条件だけ入力しても、条件に合ったときの処理がなければ実行できません。
NG:
もし TEMP >= 30
成立するなら 空欄
OK:
もし TEMP >= 30
成立するなら TEMPLATE HOT
12.2 ELSE を空のままにしている
ELSE は、条件に合わなかった場合の動作です。
何もしない場合でも、NOP を選んでおくと分かりやすくなります。
もし TEMP >= 30 なら HOT
それ以外なら NOP
12.3 TEMPLATE とプラグインを混同している
RULE ヘルパーで選ぶのは、プラグイン名ではなく TEMPLATE名です。
RULEヘルパーで選ぶもの:
HOT
COLD
DISCOMFORT_INDEX
TEMPLATE_JSONの中身:
HOT が COMMAND / EXPRESSION / LITERAL のどれなのかを定義する
12.4 EXPRESSION や LITERAL に plugin がないことをエラーだと思ってしまう
EXPRESSION と LITERAL は、プラグインを使わない定義です。 そのため、plugin が空でも問題ありません。
| type | plugin が必要か |
|---|---|
| COMMAND | 必要 |
| EXPRESSION | 不要 |
| LITERAL | 不要 |
12.5 IF(継続)を使いすぎて分かりにくくなる
IF(継続)を使うと、条件を何段にも分けられます。 ただし、深くしすぎると読みにくくなります。
初心者の場合は、まず2段階程度までにするのがおすすめです。
1段目: TEMP <= 15
2段目: TEMP >= 30
13. 画面例の読み方
次の画面は、寒い条件を先に判定する例です。

読み方は次のとおりです。
1. TEMP <= 15 を判定する
2. 成立したら DISCOMFORT_INDEX と COLD を実行する
3. 成立しなければ、次の IF に進む
4. TEMP >= 30 を判定する
5. 成立したら DISCOMFORT_INDEX と HOT を実行する
次の画面は、暑い条件を先に判定する例です。

読み方は次のとおりです。
1. TEMP >= 30 を判定する
2. 成立したら DISCOMFORT_INDEX と HOT を実行する
3. 成立しなければ、次の IF に進む
4. TEMP <= 5 を判定する
5. 成立したら TOOCOLD を実行する
どちらも正しい作り方ですが、条件は上から順番に判定されます。 優先したい条件を上に置くと、あとで確認しやすくなります。
14. 最後の確認チェックリスト
適用して終了 を押す前に、次を確認してください。
- [ ] IF の左側に、判定したい値の名前が入っている
- [ ] 比較演算子が正しい
- [ ] IF の右側に、比較する値が入っている
- [ ] THEN に、条件成立時の動作が設定されている
- [ ] ELSE に、条件不成立時の動作が設定されている
- [ ] TEMPLATE を選んだ場合、TEMPLATE名が空ではない
- [ ] 複数TEMPLATEを実行する場合、順番が正しい
- [ ] 画面上部が
OK(全ブロック完了)になっている - [ ] 変更を反映する場合は
適用して終了を押す
15. まとめ
RULE ヘルパーは、SWPF の自動化処理に対して、次のような条件を作る画面です。
もし 条件に合うなら
指定したTEMPLATEを実行する
それ以外なら
別の条件へ進む、別のTEMPLATEを実行する、または何もしない
最初は、次の3つだけを意識すれば問題ありません。
1. IF に条件を書く
2. THEN に実行したい TEMPLATE を選ぶ
3. ELSE は迷ったら NOP にする
慣れてきたら、AND / OR、IF(継続)、EXPRESSION、LITERAL を使って、より柔軟な条件分岐を作成できます。