# TeamWorks 様 確認事項（第13回）

**作成: 2026-10-19 / 作成者: DFA Robotics**

D-Security の制御盤まわりについて、新たにご相談したいことがございます。
第12回へのご回答はお待ちしております。本書は第12回とは別の話題ですので、あわせてご確認いただけますと幸いです。
**以前の確認事項を開かなくても、本書だけでご回答いただけます。**
各設問には選択肢（A / B / C …）を付けておりますので、**記号だけでご回答いただければ結構です**（補足が必要なものは設問の中に書いております）。

## ご相談の目的

制御盤まわりで問題が起きたときに、原因を D-Watch 上で後から追えるようにしたいと考えております。
現状と、当方で予定していることは次のとおりです。

- `control_reports` は制御盤1台につき1行で、最終報告日時を上書きすると伺っております（第10回のご回答）。そのため、いつ報告が途絶え、いつ戻ったかが残りません。
- 制御盤のエラー（`robot_error_reports` の `error_type` が `D-S_CONTROL_FAILURE` の行）の `error_detail` は、固定の文「no regular report from the D-S control.」と伺っております（第10回のご回答）。何が起きたかの詳しい内容は分かりません。
- 制御盤の中のログは、当方で D-Watch の画面から取り出せるようにする予定です。そのための D-Watch のサーバーの設定をお願いしたく存じます（2章）。

そこで、まず「いま何が残っているか」を伺い（1章）、そのうえでお願い（2章。サーバーの設定を含みます）と、費用・時期（3章）を伺います。
1章のご回答によって2章の一部が不要になる場合は、その旨を各設問に書いております。

# 1. いま残っているもの

### S-1. 制御盤の報告（通信）の記録は、`control_reports` の上書き以外に、どこかに残っていますでしょうか

| 選択肢 | 内容 |
|---|---|
| A | DB の別のテーブルにある（テーブル名をお教えください） |
| B | 制御サーバーのログファイルにある（保存期間と、記録される内容をお教えください） |
| C | 残していない |

A の場合は、S-3 のご回答は不要です。

### S-2. `security_status_histories` は、セキュリティの状態が変わるたびに1行追加され、消されずに残る、という理解でよろしいでしょうか

第2回で、`security_status_histories` は `security_statuses` の「変更履歴であっています」と伺っております。
行が残る期間について確認させてください。

| 選択肢 | 内容 |
|---|---|
| A | そのとおり（期限なく残る） |
| B | 一定期間で消す（期間をお教えください） |
| C | その他（お教えください） |

当方の画面ではまだ読んでおりませんが、セキュリティの状態の移り変わりを表示するために使いたいと考えております。

# 2. お願い

### S-3. 制御盤の通信の履歴を DB に残していただくことは可能でしょうか

当方の希望は A です。

| 選択肢 | 内容 |
|---|---|
| A | 制御盤の状態が変わったときだけ1行を追加する（例: 報告が途絶えて「異常」になった時刻と、報告が戻って「正常」になった時刻） |
| B | 毎回の報告をすべて1行ずつ残す |
| C | 難しい |

B の場合、現在の設定（10秒〜60秒）では、1台あたり1日1,440〜8,640行になります。
A であれば、1台あたり1日数行で済む見込みです。
A・B のいずれの場合も、次の2点をお教えください。

- 残す期間（当方の希望: 90日以上）
- 古い行を消す処理をどちらが行うか（当方は書き込みの権限がございませんので、TeamWorks 様にお願いしたく存じます）

S-1 が A の場合は、ご回答は不要です。

### S-4. 制御盤のエラー（`D-S_CONTROL_FAILURE`）の `error_detail` に、何が起きたかの詳しい内容を書いていただくことは可能でしょうか

列はすでにございますので、テーブルの変更は不要と理解しております。

| 選択肢 | 内容 |
|---|---|
| A | 可能（書く内容の例をお教えください。例: 報告が途絶えた時刻、最後に受け取った報告の内容） |
| B | 固定の文のまま |
| C | その他（お教えください） |

### S-5. 制御盤の中のログを D-Watch の画面から取り出すために、D-Watch のサーバー（nginx）の設定をお願いできますでしょうか

当方で、制御盤の中のログを D-Watch の画面から取り出す機能を作る予定です（制御盤側のプログラムも当方で用意いたします）。
仕組みは次のとおりです。

- 制御盤から D-Watch のサーバーへ、HTTPS で外向きに接続しておきます。
- 画面でファイルが選ばれたら、制御盤がそのファイルを 4MB 以下に小分けにして送り、サーバーはそれを保存せず、そのままブラウザへ渡します。
- サーバーから制御盤への接続は開きません。

そのため、D-Watch のサーバー（nginx）について、次の4点が可能かをお教えください。設定名は例として書いております。

1. 店舗に置いた制御盤から D-Watch のサーバーへ、HTTPS（443番）で接続できること（制御盤は、いま制御サーバーへ報告しているのと同じ店舗のネットワークを使います）。当方でも制御盤から確かめます。
2. 制御盤からの送信（`/api/ds-agent/` 配下）について、リクエストの本体を 5MB まで受け付けること（例: `client_max_body_size`）。あわせて、受け取った本体を一時ファイルに書かないよう、`client_body_buffer_size` を 5MB 以上にするか、`proxy_request_buffering off` にしていただくこと。サーバーのディスクの一時ファイルに書かないためです。
3. ブラウザへのダウンロードの応答を、nginx でバッファしないこと。D-Watch はこの応答に `X-Accel-Buffering: no` を付けますので、これを有効のままにしていただくこと（`proxy_ignore_headers` で無視しない）。または、`/api/ds-devices/（制御盤）/logs/exports/` 配下で `proxy_buffering off` にしていただくこと。サーバーのディスクの一時ファイルに書かないためです。
4. 応答の待ち時間（`proxy_read_timeout`）を60秒より短くしないこと。D-Watch は1回の応答を最大50秒お待たせすることがあります（制御盤からの問い合わせは最大25秒、制御盤からの送信の受け取りは最大45秒、画面からの取り出しの準備は最大50秒）。既定の60秒のままで足ります。

| 選択肢 | 内容 |
|---|---|
| A | 4点とも可能 |
| B | 条件付きで可能（条件をお教えください） |
| C | 難しい（理由をお教えください） |

1回あたりの送信の大きさ（4MB）は当方の設定で変えられます。

# 3. 費用と時期

### S-6. 2章のうち対応いただけるものについて、費用と時期はいかがでしょうか

| 選択肢 | 内容 |
|---|---|
| A | 現在のご契約の範囲で対応できる |
| B | 別途お見積もりが必要 |
| C | 検討のうえ、改めて回答する |

対応いただける時期の目安も、あわせてお教えください。
ご回答は「S-3: A」のように、設問ごとでも結構です。

**以上です。ご確認のほど、よろしくお願いいたします。**
