環境制御自動化~
AoTのenv_coordinator(画面上は統合環境制御)は、1つの施設のすべてのアクチュエーター — 換気窓、排気・吸気ファン、ヒーター、冷房機、噴霧器、遮光スクリーン、保温カーテン、 補光照明、CO₂インジェクター — を1つにまとめて協調させる3層制御システムです。
異なる2つの場所で決まる、2つのことがあります。この2つを混同するのが、もっとも よくある混乱の原因です。
- 何を目指すか — VPD・CO₂・DLIなど — は、その施設で育っている区画の ものです。区画に付いた栽培プログラムを通じて決まります。
- どう到達するか — どんな設備があるか、越えてはいけない線はどこか、 目標をどれだけ強く追うか — はこの関数のものです。
目標はどこで決まるか~
| 層 | 持っているもの | 編集する場所 |
|---|---|---|
プログラム(GeoProgram) | 参照計画: 生育ステージ、目標項目の語彙、目標カーブ、作物の光合成定数 | プログラムページ |
区画(GeoPlot) | 実際の計画: ステージ境界日と、この区画のステージごとの目標値 | 区画画面(ステージスケジュール) |
| env_coordinator | 到達方法: 設備構成、安全の上下限、優先順位、チューニング、緊急時の挙動 | Function設定 |
区画は選んだプログラムを内在化します。区画画面でステージの目標値を編集すると、 その区画のその項目だけが上書きされ、プログラム本体や同じプログラムを使う他の区画には 影響しません。欄を空にすると、その項目はプログラムの値に戻ります — そのため 「元に戻す」ボタンを別に用意していません。
意図した制約が2つあります。
- 区画は新しい目標項目を作れません。語彙はプログラムのもの(
target_defs) なので、未知のキーは黙って無視されるのではなく拒否されます。 - カーブが設定されている項目は、数値で上書きできません。カーブが優先され、 区画画面ではその項目が読み取り専用として表示されます。
コーディネーターが毎サイクル読み込むもの~
| 値 | 用途 |
|---|---|
| VPD目標(数値またはカーブ) | 主制御目標 |
| CO₂目標(数値またはカーブ) | CO₂施用。ないときはCO₂制御は休止します |
| DLI目標・日別GDD目標 | 累積トラッカー |
T_base | GDDの積算 |
| 区画の開始日 | 経過週数 — ステージ型のカーブはこれで進みます |
光合成定数(A_max, K_L, T_opt, VPD_half) | Big-Leafモデル、およびK_Lから導かれる光飽和点 |
目標項目と制御軸は、項目のキー名ではなく測定値の種類と形で結び付きます — 利用者が「室内CO₂」と名付けた項目でも、測定値がCO₂であればCO₂制御に届きます。 測定値を選んでいない項目はどの軸にも届かず、画面には参考のみと表示されます。
区画がないとき~
コーディネーターは止まりません。 区画がない、プログラムがない、まだ確認されて いないAI下書きしかない、あるいは今日に該当するステージがない場合は、単に目標が ないだけです — 制御は自分自身の推奨範囲の中で動き続けます。これはすでに定義された 挙動であり、栽培中の作物がない温室でも暖房は必要だからです。
2026-09-01以降、コーディネーターには自分自身の終了日オプションはありません。 栽培を続けるかどうかは区画が決めます。以前はFunctionに一度設定した日付のせいで、 新しい作物を植えたあとも施設が止まったままになることがありました。
スコープ内に区画が2つ以上あるとき~
間作・混作は普通に起こることなので、コーディネーターは推測しません。施設・ベイの スコープ内に区画が2つ以上あるときは、そのことを伝えてこれに従うボタンを 出します。同じ選択は、詳細設定の基準区画にも保存されます。指定した区画が 終了したりスコープの外に出たりしても、値は消えません — 画面が「指定した区画は もうここにありません」と伝え、選択ルールをあらためて適用します。
区画に記録されるプログラムのバージョンは、バージョン番号を固定するだけで 内容までは固定しません。プログラムを編集すると、進行中の区画の解釈も 変わります。
VPD(飽差)~
VPDは、植物の蒸散と吸水を左右するもっとも重要な指標です。
| 範囲 | 状態 | 推奨する作物ステージ |
|---|---|---|
| < 0.4 kPa | 低すぎる — カビのリスク | — |
| 0.4–0.8 kPa | 適正 | 発芽期/定植初期 |
| 0.8–1.2 kPa | 適正 | 栄養生長期 |
| 1.2–1.8 kPa | 適正 | 開花・結実期 |
| > 1.8 kPa | 高すぎる — 水ストレス | — |
env_coordinatorの制御レイヤー~
L1 — EnvTarget(設定値)~
上で説明した目標を、このサイクルの設定値へと解決します。Methodに従う目標項目は、 区画の経過週数と施設のローカルタイムゾーンで評価されます。
L2 — SituationReport(評価)~
現在の偏差、制限要因、傾向を評価します。
| 評価項目 | 説明 |
|---|---|
| 偏差 | 現在値 - 目標値 |
| 制限要因 | 温度・湿度・CO₂・光量のうち、どれが目標到達を妨げているか |
| 傾向 | 値が目標の方向へ動いているか |
VPDが使えるとき、温度と湿度は制約に格下げされます — VPDを分解して得られる 範囲であり、越えてはいけない線です。この関数はサーモスタットではありません。
L3 — Coordinator(アクチュエーター指令)~
PI制御 + スルーレート制限 + アンチワインドアップを適用し、アクチュエーターへの 指令を算出します。
e(t) = setpoint - measurement
u(t) = Kp × e(t) + Ki × ∫e dt
slew: |Δu| ≤ slew_rate_per_cycle
output → heater / vent / fan / mister / CO₂ supply
アクチュエーターのドメイン~
負荷の分担はドメインの中で起こり、ドメインの区切りは装置の見た目が似ているか ではなく、エネルギーの行き先が同じかで決まります。設定画面も同じ区切りに 従っています。
| ドメイン | デバイス | 性質 |
|---|---|---|
| 換気 | 開口部・排気ファン・吸気ファン | 室内を室外の方向へしか押し出せない |
| 冷暖房・加湿 | ヒーター、冷房機、フォガー | 外気とは無関係に直接加える/取り除く |
| 光と遮光 | 遮光スクリーン、保温カーテン、補光照明 | 出入りする放射を遮る、または加える |
| CO₂ | CO₂インジェクター | 独自の軸で、競合する相手がない |
ドメーム同士は互いの仕事を見ないため、ドメーム間の調整は効果の暗黙の積み上げでは なく、明示的なインターロック(換気参照)で行います。
屋根換気口と側面換気口は挙動が違う~
どちらもopeningアクチュエーターですが、施設図面は棟(屋根)窓と側窓を区別し、 効果モデルもそれを使います。
| 形状 | 室内が室外より暖かいとき | 室外が室内より暖かいとき |
|---|---|---|
| 屋根(棟) | 浮力が助ける — 同じ面積でもより多くの熱を逃がす | 逆転する — 暖かい外気は下りてきにくい |
| 側面 | 基準ケース | 直接流入し、そのまま加温になる |
図面に形状の指定がない場合は、これまでどおりの挙動になります(補正なし)。
Function設定~
AoT UIでFunction → 統合環境制御に移動します。アクチュエーター自体は別途 登録するか(アクチュエーターの登録参照)、連携施設から自動的に 検出されます。
設定画面の読み方~
この画面は2026-08に全面的に作り直されました。以下の表を読む前に知っておくと よいことが5つあります。
画面の最上部にステータスヘッダーがあります。 施設選択欄の下に、制御が今 何をしているかが表示されます — 現在のVPDとその目標、デバイスの種類ごとの状態 (開口部、冷暖房、加湿、遮光…)、最後に判断してからどれくらい経ったか。その下の 2行の要約は、追従している区画・ステージと、現在適用中の目標を伝えます。動かせない 状態はそれぞれ別の文で示されます — 施設が未連携、制御がオフ、最近の判断なし。 区画が2週間以内に終了する場合は、その旨の1行が追加されます。
設定はオプションの種類ではなく、4つの層に並んでいます。
| 層 | 内容 | 表示 |
|---|---|---|
| 接続 | 施設、ベイ | 常に表示 |
| 取り決め | 温度/湿度の範囲、CO₂許容誤差 | 常に表示 |
| 戦略 | 換気・冷暖房の連携、夜間閉鎖、噴霧の保護 | 常に表示(トグルまたは段階スケール) |
| チューニング | それ以外すべて | [詳細]の中、および折りたたまれた詳細設定グループの中 |
中心となる設定は、その詳細を引き連れて動きます。 誰も答えられない数値 (「緊急判定の倍率は3.0にすべきか4.0にすべきか?」)を尋ねる代わりに、答えられる 質問をして複数の値を一度に動かします — ロボット掃除機の静音/標準/強のような やり方です。そうした操作は3つあります: 制御の性格、換気・冷暖房の連携、噴霧の 頻度です。段階の名前そのものは保存されません — 保存されるのは実際の値だけで、 今どの段階かはその値から逆算されます。どの段階とも一致しない場合はカスタムと 表示されます。
範囲はハンドルが2つの帯として尋ねられます。 温度と湿度には質問が1つだけ あります — どの範囲で育てるか — で、越えてはいけない上下限はそこから固定の 余裕(±5°C、±5%RH)で導かれます。ここには意図した結果が1つあります — ハード上下限が推奨範囲より狭くなることは絶対にないため、「12~32°Cで育てるが 30°Cは絶対に超えない」という表現はできません。この組み合わせこそが、かつて ヒーターと冷房機を互いに逆らって同時に100%まで動かしていた原因でした。
[詳細]スイッチ1つで、すべての数値欄が開きます。 段階スケールごとにその 数値入力欄が併記され、詳細専用の行がすべて現れ、折りたたまれたグループも一度に 展開されます。このスイッチはブラウザ内だけのもので、保存される設定の一部ではない ため、同じFunctionを2人が別の見え方で見ることはありません。親トグルがオフの 設定は無効化されるのではなく非表示になります。 そのため保存済みの値は そのまま送信され続け、トグルをオフ/オンしても消えません。
一部の設定は特定の条件下でのみ読まれます — カスタム駆動周期はプロファイルが カスタムのときだけ、夜間の時刻欄は夜間を固定時刻で判定しているときだけ 使われます。入力されているのに使われていない値がある場合、画面はそれを 知らせます。そうしないと、黙って何も起きないだけになってしまうからです。
コマンド~
| コマンド | 効果 |
|---|---|
| アクチュエーターを再読み込み | Actionsテーブルを再読み込みし、アクチュエータープロファイルを再構築します。 |
| 今すぐ実行 | 現在のセンサー値を使用して、協調サイクルを即座に1回実行します。 |
| 緊急停止 | すべてのアクチュエーターを安全時デフォルト位置に設定し、60秒間制御を一時停止します。 |
施設設定~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 連携施設 | (なし) | このコーディネーターが担当する施設。アクチュエーターとセンサーはここから取得します — 外皮、側面/屋根の換気口、カーテン、ファン、屋内外センサー。方位・面積・熱貫流率などのGISメタデータが各アクチュエータープロファイルに付与され、風向と施設の形状を計算に反映できます。これを設定しないと、残りの設定には対象がありません。 |
| ベイ範囲(任意) | (空) | このコーディネーターを1つのベイに限定します。そのベイの中のセンサー・アクチュエーターだけが使われ、施設の容積・面積もそのベイの持ち分に応じて縮小されます。空欄なら施設全体が対象です。複数のベイを独立して制御したい場合は、ベイごとにコーディネーターを作成します。連携施設のベイ一覧から選ぶドロップダウンです — 施設にもう存在しない保存済みの値は、黙って消されるのではなく、そのままの状態で印を付けて残されます。 |
稼働時間~
トグルをオンにするまでは、それ以外の項目は表示されません。これは時間帯別の 制御ではなくスイッチです。時間帯の外では、暖房・冷房を含めてコーディネーターが 完全に停止します。安全の上下限はそれでも働きます。
| 項目 | 既定値 | 説明 |
|---|---|---|
| 時間帯制限を有効化 | オフ | 有効にすると、開始~終了の間だけ制御が動きます。 |
| 開始時刻(HH:MM) | 06:00 | コーディネーターが毎日いつから働き始めるか。 |
| 終了時刻(HH:MM) | 20:00 | いつ止まるか。その瞬間に各デバイスが何をするかは、そのデバイスのActionで設定します。 |
| 光周期メソッド | (なし) | 固定時刻の代わりに、日長カーブから時間帯を決めます。注意: 日長が短いと、コーディネーターもその時間しか動かないため、夜通し暖房されることはありません。 |
| 光周期基準時刻(HH:MM) | 12:00 | 太陽南中に相当する時刻 — 時間帯はこの時刻を中心に取られます。 |
目標と応答性~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 温度範囲 | 12–32°C | 育てる範囲。上下限を超えると、間違った方向に働くものを止めます — 暑すぎるとき: 暖房を切り遮光スクリーンを閉じる。寒すぎるとき: 冷房を切り、開口部と保温カーテンを閉じる。どの装置も全開/全力にはしません。 |
| 湿度範囲 | 40–85% | 湿度も同じ規則です — 湿りすぎるとき: 噴霧を切る。乾きすぎるとき: 排気ファンを切る。 |
| CO₂許容誤差(ppm) | 100 | CO₂設定値を中心としたデッドバンドの半幅。目安: 50~150 ppm。 |
| 制御の性格 | (カスタム) | 目標をどれだけ強く追うか。1つの段階を選ぶと、サイクル周期・換気窓の駆動プロファイル・VPDデッドバンド・2つの緊急しきい値がまとめて動きます。新規に追加したFunctionの出荷時の値はどの段階とも一致しないため、1つを選ぶまではカスタムと表示されます。 |
[詳細]を開くと、各範囲帯の裏にある4つの数値(推奨最小/最大温度、 最小/最大温度、および湿度の対応する値)が表示され、制御の性格はそのメンバーを 表示します。
| メンバー | ゆったり | 標準 | 敏感に |
|---|---|---|---|
| 周期(秒) | 600 | 120 | 60 |
| 換気窓駆動プロファイル | 緩慢(600秒) | 標準(180秒) | 敏感(60秒) |
| VPD許容誤差(kPa) | 0.15 | 0.1 | 0.05 |
| 緊急判定偏差しきい値(許容誤差の倍数) | 4.0 | 3.0 | 2.0 |
| 緊急判定変化率しきい値(°C / 10分) | 3.0 | 2.0 | 1.5 |
同じ場所にさらに2つのメンバーがありますが、これらは段階では設定されません — 同じ軸の上での微調整だからです。カスタム駆動周期(秒) — プロファイルが カスタムのときだけ使われます — と、緊急時の最小間隔(秒)(既定60)で、 緊急時であっても2回の換気窓指令の間に空ける最小の間隔です。
駆動プロファイルが左右するのは、側面/屋根の換気窓が動くことを許す頻度だけです。 センシングと計算は毎サイクル周期で常に実行され、カーテンや遮光スクリーンは 影響を受けず(一動作で開閉するため)、急な天候変化や安全ゲートは、この設定に 関係なく換気窓を即座に動かします。
換気~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 換気と冷暖房の連携 | 高性能 | 換気と冷暖房が互いに邪魔しないようにします。3段階あり、下で説明します。 |
| 夜間は閉じておく | オフ | 夜間は換気窓を閉じ、暖房・冷房・除湿に負荷を任せます。閉じるのは開口部だけで、暖房・冷房・除湿はそのまま動き続けます。 |
| 強風しきい値(m/s) | 12 | この風速を超えると、開口部を強制的に閉じます。[詳細] |
換気と冷暖房の連携は、3つのトグルを一度に動かします。
| 段階 | 換気で助けられないときは開口部を閉じる | 換気で目標に届くときは冷暖房を休ませる | 冷暖房が動いている間は開口部を閉じたままにする |
|---|---|---|---|
| 高性能(既定) | オン | オフ | オフ |
| 標準 | オン | オン | オフ |
| 省エネ | オン | オン | オン |
- 換気で目標に届かないときは開口部を閉じる — 換気は室内を室外の方向にしか 引っ張れません。目標が外気の反対側にあるとき、開口部を開けば開くほど目標から 遠ざかります。典型例は夜間の除湿で、外気が室内より湿っている場合です。これを オンにすると、開口部と排気・吸気ファンは、一晩中中途半端に開けておくのでは なく、閉じたままパーキングされます。
- 換気で目標に届くときは冷暖房を休ませる — 外気がすでに目標を超えている とき、換気だけで到達でき、そこで冷暖房を一緒に動かすのは外気がタダでやって くれることに料金を払うようなものです。3つの条件がすべて成り立つ必要があります — 外気の値が許容誤差を超えて目標を上回っている、制御対象の変数のすべてが そうなっている、そして開口部にまだ余裕がある(直近サイクルの最大開度が90% 未満)。15分経っても目標に届かない場合は、すべてが暖房・冷房へ戻されます — 予測が外れたということです。
- 冷暖房が動いている間は開口部を閉じたままにする — 稼働中の機器に逆らって 換気すると、その熱や冷気をそのまま外へ捨てることになります。外気が目標に 近づくのを助けてくれる季節であっても、この設定はその助けも一緒に捨てて しまいます。
稼働中の機器を検知するには根拠が必要で、その情報源は2つしかありません — このコーディネーター自身がその機器に指令を出しているか、稼働すると値が上がる 測定値を信号として指定しているかです。室内温度は意図的に使いません。 冷房機の ない温室の実データ30日分で検証したところ、日射300 W/m²以上の条件下で室内外の 温度差の中央値は+0.03°C、最小値は−4.22°Cで、「室内が室外より涼しければ冷房が 動いている」という判定は、1.5°Cの余裕を持たせても昼間サンプルの13%で誤判定 しました。
| 項目(インターロックがオンのとき表示) | 既定値 | 説明 |
|---|---|---|
| 冷暖房の稼働検知信号 | (なし) | このコーディネーター自身が切り替えない機器にのみ必要です。稼働すると上がる測定値を選んでください — スマートプラグのワット数、クランプメーターの電流、補助接点のオン/オフなど。このコーディネーターが直接指令する機器なら空欄のままにしてください。 |
| 稼働判定のしきい値 | 0.5 | この値以上で、信号は稼働中とみなされます。オン/オフ接点なら0.5のままにしてください。ワット数や電流であれば、その機器の待機電力より上に設定してください。 |
信号自身に鮮度の上限がない場合、その信号自身の測定周期(×2、下限300秒)で 判定されます。期限切れの信号は稼働していないとみなされ、その旨が記録されます。
夜間閉鎖があるのは、夜になると湿度が上がり結露するためです — 夕方には 役に立っていた開口部が、朝には作物を濡らしたままにしてしまうことがあります。 そのサブ設定は、トグルがオンのときだけ現れます。
| 項目(夜間は閉じておくがオンのとき表示) | 既定値 | 説明 |
|---|---|---|
| 夜間の基準 | 日没~日の出 | 夜を日没から日の出までとするか、固定時刻で判定するか。 |
| 日没の何分前に閉じるか(分) | 0 | 日没のこの分数だけ前から閉じ始めます。負の値は無視されます — 日没後の遅延を取り除くのがこのオプションの目的だからです。 |
| 夜間の開始/終了(HH:MM) | 18:00 / 06:00 | 夜間を固定時刻で判定する場合にのみ使われます。 |
3つの保証が成り立ちます — 安全ゲートが優先します(真夏の夜の熱でも換気窓は 開きます)、ハードな温度/湿度の上下限がパーキングを解除します、そして太陽時刻を 計算できる座標がない場合は何もパーキングされません。時刻は施設のローカル タイムゾーンで読み取られ、サーバーのものではありません。施設のポップアップでは、 このオプションでパーキングされたデバイスは夜間のため閉じ、冷暖房で管理して いますと表示され、このデバイスが今できることは何もありませんとは区別されます。
冷暖房・加湿~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 加湿にミニスプリンクラーを使う | オン | 湿式の噴霧器を加湿にも使います。同じノズルをかん水にも使っている場合はオフにしてください — かん水向けに口径を決めたスプリンクラーは、短い一噴きでも葉に水膜を残します。 |
| 日焼け・夜間保護を有効化 | オフ | 強い光の中での湿式噴霧を遮断し(水滴が太陽光をレンズのように集めて葉を焦がすことがあります)、任意で日没前も遮断します。噴霧の頻度設定とは独立しています。 |
| 噴霧の頻度 | ひんぱんに | 噴霧をどれくらいの頻度で作動させるか — 1回の作動時間と、次の作動までの間隔。 |
噴霧バルブはほとんどの場合オン/オフしかできないため、流量を絞る手段はありません — 調整できるのは、1回の作動がどれだけ続くかと、次までどれだけ待つかだけです。 この段階スケールが設定するのはそれです。
| 段階 | 1回の噴霧最大時間(秒) | 強制乾燥間隔(秒) |
|---|---|---|
| まれに | 5 | 1200 |
| ふつう | 10 | 900 |
| ひんぱんに | 20 | 600 |
| かなりひんぱんに | 30 | 450 |
日焼け保護は頻度とは別の判断です — この2つは一時期まとめられていて、 「頻繁に噴霧しつつ強い日差しでは遮断する」という組み合わせが表現できません でした。
| 項目(保護がオンのとき表示) | 既定値 | 説明 |
|---|---|---|
| 日差しの強さによる噴霧調節 | 150–250 W/m² | ハンドルが2つの帯です。下の値より暗ければ噴霧は自由に作動し、上の値より明るければ停止し、その間では直線的に弱まります。この間隔があることで、雲が通過するたびに噴霧が入切を繰り返すのを防ぎます。葉をぬらす噴霧にのみ適用されます — 霧タイプの噴霧は強い日差しの中でも作動します。推定された室内光量が基準に使われるため、遮光スクリーンを閉じると遮断が緩和されます。 |
| 日没前の噴霧を許可 | オン | オフにすると、夜通し葉を乾いたままにします。葉が濡れている時間が長いほど、灰色かび病やべと病のリスクが高まります。 |
| 日没前の噴霧停止時間(分) | 120 | 日没の何分前に噴霧を止めるか。 |
| 噴霧原水 | 地下水(未処理) | 未処理の地下水は硬度が高く冷たいことが多く、乾く水滴がミネラルの跡を残したり、日の当たる葉を冷やしたりします。これを選ぶと、遮断/解除のしきい値が自動的に下がります(最大でも150/100 W/m²まで)。 |
保護がオフでも、湿式噴霧器は連続変調ではなくパルス投与されます — 既定では 最大30秒オン、最小180秒オフです。連続的な変調では葉が乾く暇がないためです。
光と遮光~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 遮光・補光の基準 | 0–800 W/m² | とどまるべき範囲ではなく、2本の基準線です。帯より暗ければ: 補光灯が点き、遮光スクリーンが開きます。明るければ: 遮光スクリーンが閉じます。帯の中では何も起きません。 |
どちらの端もオフにでき、オフの意味は両端で異なります — 下側のハンドルを0にすると 補光しない、上側のハンドルをオフにすると遮光しないです。施設に遮光スクリーンや 補光照明が登録されていない場合、画面は何もしないハンドルを出す代わりにその旨を 伝えます。
裏にある実際の値は最小光量しきい値(補光)(既定0)と最大光量しきい値 (既定800)で、どちらも[詳細]の下に表示されます。
関連する2つの設定はこの画面にはありません。
- 遮光生地の透過率は施設側の設定で、施設エディターの遮光カーテンの下に あります。室内の光センサーがないときにのみ使われ、そのときは屋外日射と 開度から室内の光量を推定します。未設定または範囲外の値は0.50にフォール バックし、施設が遮光カーテンを持たないと宣言している場合は1.0が使われます。 1画面だけ生地が異なる場合は、そのActionで個別に上書きできます。
- 光飽和点は遮光しきい値ではなく、プログラムにある作物の
K_Lから導かれます。 この2つが同じ欄だったとき、遮光しきい値を下げると光合成モデルは「もう十分な 光がある」と判断してしまい、250に設定された2つのコーディネーターが、実測日射が 542と650 W/m²の間ずっと光制限を一度も検出しませんでした。K_Lがない場合は、 システムの既定値600 W/m²が使われます。
詳細設定~
このグループは既定で折りたたまれており、Functionを試験するエンジニア向けで、 生産者向けではありません。
| 項目 | 既定値 | 説明 |
|---|---|---|
| センサーデータの最大有効時間(秒) | 0 | これより古いセンサー値を拒否します。0は「未設定」を意味し、「無制限」ではありません — その場合、各センサーは自身の更新周期(×2)で判定されます。ソース自身の周期より短い固定値は絶対に満たせません — 300秒ごとに発信する屋外気象台を、120秒の上限で運用したところ、丸1日、有効なチャンネルがゼロになりました。 |
| 光合成指向制御を有効化 | オフ | 毎サイクル、Big-Leafモデルが現在の制限要因(光・CO₂・温度・VPD)を特定し、その変数の優先度を上げます。光センサーが必要で、作物定数は区画のプログラムから取得します。 |
| 基準区画(任意) | (空) | スコープ内で複数の区画が育っているとき、このコーディネーターがどれに従うか。1つしかないときは空欄のままにしてください。 |
| 温度ウェイト(0–1) | 0.6 | VPD調整のうち、温度で行う割合(残りは湿度で行います)。 |
| VPD優先度 | 1.2 | 処理順序の重み — 値が大きいほど先に処理されます。 |
| CO₂優先度 | 0.8 | CO₂についての同じ重みで、CO₂の補充は副次的なため、VPDより低い値です。 |
| DLI / GDDトラッカーを有効化 | オフ | 日積算光量と有効積算温度を追跡し、施設ローカルの深夜0時にロールオーバーします。光量はセンサー単位に応じてPPFDに変換されます。目標は区画のプログラムから取得し、DLIには光センサーが必要です。 |
効果キャリブレーション~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 効果エンジン | レガシー | レガシー: 内蔵のK_*定数(既定、安全)。シャドウ: グレーボックスモデルを記録目的だけで並行実行します — 制御は変わりません。グレーボックス: 物理モデルによる制御(予報があるときはMPC先読み付き)。推奨の流れ: まずシャドウ、次にグレーボックス。試験中以外は変更しないでください。 |
| RLSキャリブレーションを有効化 | オフ | センサーの応答からアクチュエーターごとの効果係数(K_*)を学習します。収束には数日かかります。それまでは内蔵の既定値にフォールバックします。 |
| アクティブプロービングを有効化 | オフ | アクチュエーターを1つ選んで定期的に±10%摂動させ、キャリブレーションの識別性を高めます。負荷が低く、安全ゲートが作動していないときのみ実行されます。RLSキャリブレーションが必要です。 |
| プロービング間隔(秒) | 3600 | プロービングイベント間の最小間隔。段階: 頻繁に(1800) / 標準(3600) / まれに(10800)。 |
予報フィードフォワード~
| 項目 | 既定値 | 説明 |
|---|---|---|
| 予報フィードフォワードを有効化 | オフ | 短期天気予報を使って、悪天候の到来前に温度/湿度の設定値を先行的に調整し、換気を抑制します。 |
| 予報先読み時間(時間) | 3 | どれだけ先まで確認するか。段階: 短め(1) / 標準(3) / 長め(6)。先読みが長いほど早く警告できますが、過剰補正になる場合があります。 |
デバッグログはもう独立したオプションではありません。 これはフレームワーク 自身のデバッグスイッチと重複しており、それが守っていたもののほとんどはDEBUG レベルで書き出されていたため、単独では何も出力していませんでした。Functionの 詳細設定にある1つのスイッチが、今では両方を兼ねています。重大なイベント — 安全ゲート、送信失敗、実行状態のエラー — は、この設定に関係なく常に記録 されます。
アクチュエーターの登録~
連携施設の図面に描かれたアクチュエーターは自動的に検出されます。それ以外は このFunctionに環境制御アクションを登録します — デバイス1台につき1回、この アクションを追加してください。手動登録は、施設から検出されたリストとマージ されます。
| アクションのオプション | 既定値 | 説明 |
|---|---|---|
| Outputチャンネル | — | 制御するOutputチャンネル。 |
| アクチュエーターの種類 | — | 換気口 / 開口部(側壁、天窓)・冷房機 / エアコン・ヒーター・フォガー / 加湿器・CO₂インジェクター・遮光スクリーン・保温カーテン・補光照明・循環ファン(内部空気の攪拌)・排気ファン(換気・排出)・吸気ファン(外気導入)。 |
| コスト指数 | 5.0 | 値が低いほど優先度が高くなります(1 = 無料の自然換気、10 = 高コストの機器)。 |
| 時間制御ウィンドウ終了時 | 何もしない | 稼働時間の時間帯が終わったとき、このアクチュエーターに何をするか: 何もしない / オフにする / オンにする / 開度%を設定(換気窓専用)。 |
| 終了時の開度% | 0 | その瞬間の目標開度(換気窓/開口部専用)。 |
| 生地の透過率の個別指定(0–1、遮光のみ) | 0 | この画面だけ、生地が他と異なるときに使います。0のままなら連携施設に設定した値を使います。 |
| 効果係数オーバーライド(K_*) | 0 | 0 = 既定値を使用。実測データから校正する場合のみ入力してください。 |
| 全ストローク時間(秒) | 0 | このアクチュエーターが0→100%まで動くのにかかる時間(秒)。サイクルごとの最大コマンド変化量を制限し、物理的に不可能な指令が送られないようにします。作動に10分かかる換気窓モーターなら600。 |
| 最小繰り返し間隔(秒) | 0 | 目標値が変わらなくても、このアクチュエーターに指令を繰り返し送る最小間隔(秒)。0 = システムの既定値を使用(600秒のウォッチドッグ)。動作の遅いモーター式アクチュエーターでは、リレーの寿命を延ばすため大きくしてください。 |
デバイス種類ごとの自動変換~
指令は常に0~100%として算出されます。アダプターはOutputモジュール自身の メタデータから選ばれ、追加設定は不要です。
| Output種類 | アダプター | 変換 |
|---|---|---|
| ペアアクチュエーターモジュール | ペア | 正転/逆転ペア変換(モジュール内部で処理) |
vol / volume(容積式ポンプ) | 容積式 | vol_ml = flow_lpm × on_sec / 60 × 1000 |
pwm | PWM | duty = pct |
on_offリレー | 時間比例 | on_sec = cycle_sec × pct/100。5%未満はOFF |
| それ以外 | 値 | 0~100%をそのまま渡す(DAC、ステッパーなど) |
| 指令(%) | on/offリレー(60秒周期) | PWM | 容積式ポンプ(1.5 L/min) |
|---|---|---|---|
| 0 | OFF | duty 0 | OFF |
| 30 | 18秒間ON | duty 30 | 450 mL/周期 |
| 100 | 60秒間ON(連続) | duty 100 | 1,500 mL/周期 |
湿式噴霧器は、さらにパルス投与でラップされます — 1回の噴霧は最大作動時間で 打ち切られ、乾燥間隔が経過するまでは一切噴霧しません。
かんがいの流量は施設図面から集計されます — あるレイヤー下のすべてのエミッターが そのアクチュエーターのflow_lpmに合算され、容積式アダプターと噴霧器の効果 モデルがそれをそのまま使います。フォールバックの順序は、アクチュエーター ごとの流量、次に施設全体の合計、それもなければ1.0 L/minです。
安全時デフォルト位置~
各アクチュエーターには、安全ゲートが作動したとき、緊急停止時、または外部からの force_safe_state()呼び出し時に移動する安全な位置があります。施設から検出 されたアクチュエーターについては、デバイスの種類に従います — 保温カーテンと 遮光スクリーンは100%でパーキングし、それ以外は0(オフ)です。
Method(設定値カーブ)~
Methodは、設定値が時間とともにどう変わるかを定義します。Methodはこの Functionではなく、プログラム側の目標項目に付けられます — カーブが設定された 項目は区画画面でカーブに従うと表示され、数値で上書きできません。
- Daily — 時刻(HH:MM)ごとの設定値
- Duration — 開始からの経過時間ごとの設定値
- Daily Bezier — なめらかな日周カーブ
- Repeating — 繰り返しパターン
生育週で進行するカーブは、区画の開始日から評価され、施設のローカルタイム ゾーンの深夜0時に読み取られ、区画画面や区画の日誌が使うのと同じ経過週数から 計算されます。
作物ステージスケジュールの例(トマト):
| 日数 | VPD目標 | CO₂目標 |
|---|---|---|
| 播種~7日目 | 0.6 kPa | 800 ppm |
| 8~21日目 | 0.8 kPa | 900 ppm |
| 22~42日目 | 1.0 kPa | 1000 ppm |
| 43日目~ | 1.3 kPa | 1000 ppm |
SEED:から始まるMethodはシードプリセットで、読み取り専用です。編集する前に プリセットを複製してください。
安全ゲート~
安全機構はL1~L3の協調アルゴリズムの外側で動きます — 毎サイクルL1~L3の前に 確認するPre-Gateと、L3の結果を送信前にサニティチェックするPost-Gateです。 一度作動すると、Pre-Gateは最後に作動してから最低300秒はアクティブなままです (急速なオン/オフの繰り返しを防ぐため)。
Pre-Gate(L1~L3の前に確認)~
| ゲート | 発動条件 | 動作 |
|---|---|---|
| 降雨 | 降雨強度 ≥ 0.5 mm/hr(固定、利用者は設定不可) | 側面/屋根の換気窓を閉じます。カーテン・スクリーンは屋内側の設備のため、そのままにします。 |
| 強風 | 風速 ≥ 強風しきい値(既定12 m/s) | 開口部を閉じます。強風だけが作動しているゲートで、風向と換気口の方位の両方がわかっている場合は、風上側の換気口(±60°以内)だけが強制的に閉じられます — 風下側の換気口は通常制御のまま動き続けます。 |
| 高温緊急 | 外気温 ≥ 45°C かつ 室内温度 ≥ 35°C(両方とも固定) | 開口部を全開にし、遮光スクリーンを閉じ、冷房機を100%に強制します。 |
| 低温緊急 | 外気温 ≤ −5°C かつ 室内温度 ≤ 5°C(両方とも固定) | 開口部を閉じ、保温カーテンを閉じ、ヒーターを100%に強制します。 |
| 屋内センサー期限切れ | 屋内の新しい測定値が120秒を超えて届かない(固定) | すべてのアクチュエーターが安全時デフォルト位置に戻ります — 屋内データなしでは制御は成立しません。 |
| 屋外センサー期限切れ(単独) | 屋外の新しい測定値が300秒を超えて届かず、他にどのゲートも作動していない | 部分的なゲートです。開口部/遮光スクリーンだけが控えめに閉じ、ヒーター/冷房機/フォガー/CO₂/カーテンは通常のL1~L3制御のまま動き続けます。 |
| 噴霧遮断 | 強い光、または日没前の遮断時間帯で、日焼け・夜間保護がオンのとき | 湿式噴霧器だけをロックします。局所的なロックであり、施設全体を止めず、300秒間保持されることもありません。 |
降雨・高温・低温のしきい値はコードに固定されています — 強風だけが Functionのオプションとして公開されています。複数のゲートが同時に作動する こともあり(例: 降雨+強風)、その場合は方向にかかわらず開口部は無条件に 閉じます。
ゲートが作動したサイクルも、サイクルであることに変わりありません。 ゲートが サイクルを早期に終わらせると、簡略化されたサマリーが書き込まれ、サイクルには タイムスタンプが付きます — そのため施設ウィジェットは、コーディネーターが 応答不能になったと報告するのではなく、実際に何が起きたかを表示し続けます。この 簡略化されたサマリーは、そのサイクルで計算されなかった環境値をあえて省略し、 ゲートが実際に強制したデバイスだけを一覧にします — 触れていないデバイスには 0%ではなく、指令自体が記録されません。
Post-Gate(L3の後、送信前に確認)~
| チェック | 動作 |
|---|---|
| 非有限な指令値(NaN/Inf) | アクチュエーターは安全時デフォルト位置にフォールバックします。 |
| 範囲外の指令値 | [0, 100]にクランプされます。 |
| 手動ロック中 | ロックされた値で上書きされます。 |
| 冷房機とヒーターが同時にON | 許可されません — コストの低いほう(コスト指数が低いほう)が動き続け、もう一方は0に強制されます。 |
緊急停止と安全状態~
| 起点 | 説明 |
|---|---|
| Functionコマンド → 緊急停止 | UI上のボタン。 |
Conditional / Trigger → force_safe_state | 外部の自動化からの即時発動。 |
RPC output_off | 個別のOutputだけを止めるバイパス経路。 |
緊急停止のあと、次のサイクルは60秒遅延します。直後にアクチュエーターが 動かないのはこの遅延であり、故障ではありません。
トラブルシューティング~
| 症状 | 確認すること |
|---|---|
| 画面に目標が表示されない | この施設/ベイで区画が育っているか、その区画にプログラムが付いているか、そのプログラムが確認済みか。これらのいずれかがないと、コーディネーターは自身の推奨範囲だけで動きます — これは正常であり、故障ではありません。 |
| 目標はあるのに1つの軸だけ無視される | その目標項目に測定値が選ばれていない可能性があります。その場合は参考のみとして扱われます。カーブに従う項目は、区画画面に入力された数値をすべて無視します。 |
| アクチュエーターが動かない | Actionが登録されていて、Outputが有効か。Actionや施設を変更したあとはアクチュエーターを再読み込みを使ってください。 |
| on/offリレーがごく短時間だけオンになる | 指令がおそらく5%未満で、時間比例アダプターがそこでオフになる範囲です。 |
| ポンプが常に1.0 L/minで計算される | 施設のエミッターの流量がゼロでないこと、かんがいレイヤーがそのポンプのOutputを指していることを確認してください。 |
| 強風でも開口部が閉じない | 強風しきい値と、この施設の屋外風センサーの設定を確認してください。 |
| 夜間、開口部が閉じたままになる | 夜間は閉じておくがオンのときの想定どおりの動作です — 施設のポップアップに夜間のため閉じと表示されます。ハードな温度/湿度の上下限と安全ゲートは、それでも優先して解除します。 |
| 屋外の測定値が「なし」と表示される | センサーデータの最大有効時間が、そのソース自身の周期より短い可能性があります。各センサーが自身の周期で判定するよう、0のままにしてください。 |
| 冷暖房が両方動いた | Post-Gateがそれを禁止しています。古い設定で推奨範囲がハード上下限より広い場合、保存画面はブロックせず警告だけを出します。 |
| ある設定が無視されているように見える | 条件付きの可能性があります — カスタム駆動周期はカスタムプロファイルのときだけ、夜間の時刻欄は夜間を固定時刻で判定しているときだけ適用されます。画面は、入力されているのに使われていない値を知らせます。 |
| 施設を変更しても反映されない | アクチュエーターを再読み込みを実行するか、Functionを無効化してから再度有効化してください。 |
| ウォッチドッグが長時間の停止を報告する | 稼働時間の時間帯の外にいる、またはアクチュエーターが1つも登録されていない、といった意図的な休止は、故障ではなく休止として報告されます。本当の停止であれば、それでも警告されます。 |
AI連携~
AIエージェントはanalyze_control_performanceを使って制御品質を診断します。
vpd_rmse → VPD追従誤差(低いほど良い)
oscillation_index → 制御の振動指数(低いほど安定)
assessment → "good" / "moderate" / "poor"
診断結果をもとに、suggest_setpoint_adjustmentが目標値の調整を提案します。 提案はあくまでアドバイスであり、目標そのものは区画のステージ計画にあるため、 それを適用するには区画画面でそのステージの目標値を編集する必要があります。