SOP ファンイン: MQTT
MQTT メッセージは SOP の実行を開始できます。MQTT リスナーはブローカーにサブスクライブし、メッセージごとに SOP イベントを構築してエンジンにディスパッチします。このパスは channel-mqtt ビルドフィーチャーによってゲートされます。
トランスポート側(ブローカーURL、認証情報、TLS、QoS)はMQTT channelで設定します。このページではトリガーについて説明します。
トリガー
MQTTメッセージの到着。ライブ: MQTTリスナーによって配信されます。
| フィールド | 型 | default | 意味 |
|---|---|---|---|
condition | string? | null | メッセージペイロードに対して評価されるオプションの式。実行 |
topic* | string | — | トピックフィルター。+ は 1 階層に一致し、# は残りの階層に一致します。 |
SOP を読み込んで検証する:
定義
Syntax で説明されているように、mqtt トリガーを付けて SOP を記述します。上記のトリガーフィールドはサポートされているキーです。ページはファイル全体を辿ります。
検証
zeroclaw sop validate
検査
zeroclaw sop list
zeroclaw sop show <name>
マッチング
トピックパターンは +(単一レベル)と #(複数レベル)のワイルドカードをサポートします。MQTT ペイロードは SOP イベントペイロードに転送され、オプションのトリガー condition で利用できます。ステップコンテキストには、上限が設定され、サニタイズされ、フレーム化された形式が渡されます。$.value > 85 のような JSON パスの condition を使用するには、パブリッシャーが JSON 本文を送信する必要があります。
実行する
SOPを読み込みMQTTチャネルを購読した状態で、トリガーパターンに一致するトピックへメッセージを発行します(例えば mosquitto_pub や任意のブローカークライアントを使用)。リスナーはトピックとペイロードからイベントを構築してディスパッチします。読み込まれたSOPのうち、topic パターンが一致し、かつ(存在する場合)condition がペイロードに対して成立するものごとに実行が開始されます。
何も開始されない場合は、トピックがトリガーパターンと一致していること、ブローカーのサブスクリプションがライブであること、および condition がペイロードと一致していることを確認してください。fan-in の概要のトラブルシューティング表 を参照してください。
承認して観察する
チェックポイントに到達した実行は WaitingApproval として一時停止します。CLI(zeroclaw sop list、zeroclaw sop approve)またはゲートウェイAPIの承認エンドポイント(GET /admin/sop/pending、POST /admin/sop/approve、POST /admin/sop/deny)を介した帯域外操作で、これらをクリアまたは確認できます。