Claude Media
Claudeでビル管理の空調苦情を測定値と突き合わせ原因を切り分ける — 入居者苦情ログと空気環境測定の突合

Claudeでビル管理の空調苦情を測定値と突き合わせ原因を切り分ける — 入居者苦情ログと空気環境測定の突合

入居者の空調苦情ログを空気環境測定と設備稼働記録に突き合わせ、設備起因か運用起因かを切り分ける手順です。測定頻度の限界と基準値の読み方にも触れます。

「暑い」「空気が悪い」「乾燥する」。入居者から届く空調の苦情は、どれも同じ一行のログに見えます。ところが原因は、設備の調整不良のこともあれば、運転時間の設定や使い方のこともあります。

この切り分けで先に押さえたいのは、苦情と測定値では記録の粒度がまったく違う点です。空気環境の測定は2か月以内ごとに1回、各階の居室の中央部で行います。苦情は「何階の誰が、何日の何時に、何を感じたか」です。だから突合は、測定値で白黒をつける作業になりません。苦情ごとに「見るべき測定項目」を決め、「その苦情を説明できる記録があるか」を仕分ける作業になります。

本記事では、苦情ログ・空気環境測定・設備稼働記録の3つをCSVにそろえ、Claudeに突き合わせさせる手順を書きます。数値の比較はコードで行わせ、Claudeには仕分けの理由を文章にさせる分担です。

苦情と測定値は、そもそも粒度が合わない

先に両者の違いを表にします。ここを誤解したまま突合すると、「測定値は基準内なのに苦情が出ている」という結果が、設備の問題なのか測り方の問題なのか区別できません。

比べる点入居者の苦情ログ空気環境の測定
頻度入居者の苦情ログ苦情のたび空気環境の測定2か月以内ごとに1回、定期に
場所入居者の苦情ログ席・ゾーン・部屋空気環境の測定各階ごとに居室の中央部(床上75〜150cm)
時間入居者の苦情ログ受付の日時空気環境の測定通常の使用時間中
値入居者の苦情ログ暑い・乾燥などの訴え空気環境の測定温度・相対湿度・気流・CO2などの数値

測定の方法は、建築物における衛生的環境の確保に関する法律施行規則の第3条の2が定めています。この規則は、空調設備のある建物で浮遊粉じん・一酸化炭素・二酸化炭素・温度・相対湿度・気流の6項目を、2か月以内ごとに1回測ると定めています。機械換気だけの建物では、温度と相対湿度を除く項目が対象です。

さらに、浮遊粉じん・一酸化炭素・二酸化炭素は、基準値と比べる数値が「一日の使用時間中の平均値」とされています。つまり、ある日の午後3時に席が暑かったという苦情を、その測定の平均値だけで説明することはできません。

この粒度の差を埋めるのが、設備の稼働記録です。運転・停止の時刻、設定温度の変更、フィルタの清掃日といった記録があれば、測定のない日の状況にも見当が付きます。

症状から、見る測定項目を決める

苦情の文面を読み、どの測定項目を見るかを先に決めます。基準値は、施行令の第2条に定める、建物の衛生環境を保つための管理基準です。

苦情の症状まず見る項目基準値
暑い・寒いまず見る項目温度基準値18度以上28度以下。冷房時は外気との差を著しくしない
乾燥する・蒸し暑いまず見る項目相対湿度基準値40%以上70%以下
風が当たる・空気が動かないまず見る項目気流基準値毎秒0.5m以下
空気がこもる・眠くなるまず見る項目二酸化炭素基準値100万分の1,000以下
ほこりっぽいまず見る項目浮遊粉じん基準値空気1立方メートルにつき0.15mg以下
臭い・目や喉の刺激まず見る項目ホルムアルデヒド基準値空気1立方メートルにつき0.1mg以下

症状と項目の対応は、切り分けの出発点として置いた見立てです。基準値の側は法令の数値で、一酸化炭素は100万分の6以下も定められています。

ここで一つ注意があります。施行令は、これらの基準に「おおむね適合する」ように空気を調整することを求めています。基準は建物の管理水準であって、個々の入居者が不快かどうかの判定線ではありません。基準内でも苦情は出ます。その場合の結論は「設備は管理水準を満たしている。局所の条件を現地で確かめる」になります。

ホルムアルデヒドだけは測り方が違います。建築や大規模な修繕・模様替えを行ったとき、その階の居室で、使用開始後に最初に来る6月1日から9月30日の期間に1回測る決まりです。定期の2か月ごとの測定には入りません。

渡すデータを3つのCSVにそろえる

Claudeに渡す前に、記録を3つの表にそろえます。列の名前と形式を固定しておくと、毎回同じ指示で再実行できます。

入力

突合に使う3つの記録

  • 苦情ログ

    受付日時、階、ゾーン、症状、受付者のメモ。

  • 空気環境測定

    測定日、階、温度、相対湿度、気流、二酸化炭素、一酸化炭素、浮遊粉じん。

  • 設備稼働記録

    日時、階または系統、運転・停止、設定温度、保守作業(フィルタ清掃など)。

列の名前は、例えば次のようにします。

kujo_log.csv        : 苦情ID, 受付日時, 階, ゾーン, 症状, メモ
kuki_sokutei.csv    : 測定日, 階, 温度, 相対湿度, 気流, CO2, CO, 浮遊粉じん
setsubi_kiroku.csv  : 日時, 階, 区分, 内容

測定結果や設備の点検・整備の記録は、施行規則の第20条が帳簿書類として備えることを求めています。空気環境の調整や測定の結果、設備の点検・整備の状況を記載した帳簿書類は、5年間保存します。過去の苦情を遡って突き合わせるときの材料は、おおむね5年分あるということです。

入居者の情報は外してから渡す

苦情ログには、入居者の氏名や連絡先、部屋番号が入りがちです。切り分けに必要なのは階・ゾーン・症状・日時だけなので、氏名と連絡先の列は削除し、苦情IDに置き換えて渡します。対応窓口が個人名を追う場合は、IDと氏名の対応表を手元に残しておけば足ります。

API経由で自動化する場合は、データの置き場にも注意が要ります。コード実行ツールのコンテナのデータは最長30日間保持されます。Files APIに置いたファイルは、削除するまで残ります。ゼロデータ保持の対象にはならない機能と明記されているため、個人情報を渡さない設計が前提です。

指示文を書き、突合をコードで行わせる

指示は、役割・入力・禁止事項を分けて書きます。ポイントは、数値の突合と基準値との比較を、計算させる対象として明示することです。

あなたはビル管理の記録を整理する補助役です。
添付の3つのCSVを使い、苦情1件ごとに次を行ってください。
計算は必ずコードを実行して行い、結果の表を示してください。
 
1. 苦情と同じ階で、受付日時より前の直近の測定を1件ひも付ける
2. 症状に対応する項目を、施行令第2条の基準値と比べる
3. 受付日時の前後24時間の設備稼働記録を抜き出す
4. 次の区分に仕分ける
   A 測定が基準外  B 測定は基準内で稼働記録に異常
   C 測定も稼働も異常なし  D 測定が古く判断できない
 
禁止: 原因の断定。区分ごとに「疑い」と根拠の行番号を示すこと。
禁止: 測定がない項目の値を推測で埋めること。

Claudeは、計算やファイル解析が役立つ依頼ではコードを実行します。単純な暗算のような依頼では実行しないこともあるため、「コードを実行して確かめてください」と明示しておくと、突合の結果が毎回同じ手順で出ます。

ここで、Claudeが書くコードの形を例として示します(例示であり、実際の出力そのものではありません)。階ごとに直近の測定をひも付けるには、pandasのmerge_asofが使えます。

import pandas as pd
 
kujo = pd.read_csv("kujo_log.csv", parse_dates=["受付日時"])
sok = pd.read_csv("kuki_sokutei.csv", parse_dates=["測定日"])
 
kujo = kujo.sort_values("受付日時")
sok = sok.sort_values("測定日")
 
# 同じ階の、受付日時より前の直近の測定を1件ひも付ける
m = pd.merge_asof(
    kujo, sok,
    left_on="受付日時", right_on="測定日",
    by="階", direction="backward",
)
m["測定からの日数"] = (m["受付日時"] - m["測定日"]).dt.days
 
# 施行令第2条の基準値(下限, 上限)
LIMIT = {
    "温度": (18, 28), "相対湿度": (40, 70), "気流": (None, 0.5),
    "CO2": (None, 1000), "CO": (None, 6), "浮遊粉じん": (None, 0.15),
}
 
def is_out(row, item):
    lo, hi = LIMIT[item]
    v = row[item]
    return (lo is not None and v < lo) or (hi is not None and v > hi)

測定からの日数が長い苦情は、区分Dにします。基準内に見えても、その測定は苦情の時点を表していないからです。

設備起因か運用起因かを、順番に仕分ける

区分の考え方は、次の順番に整理できます。上から確かめ、「いいえ」になった時点でその区分が候補に残ります。

切り分け

苦情1件ごとの切り分けの順番

  1. Q同じ階に、苦情の時期に近い空気環境の測定がありますか?
    答えがいいえのとき

    追加測定の対象です。既存の記録では、この苦情の原因は言えません。測定日が苦情から離れているときも同じ扱いにします。

    答えがはい
  2. Q症状に対応する測定項目は、基準の範囲内ですか?
    答えがいいえのとき

    設備の調整不良の疑いが残ります。設定温度・加湿器・外気の取り入れ量・フィルタの状態を、稼働記録と保守記録で確かめます。

    答えがはい
  3. Q苦情の時刻に、設備は予定どおり稼働していましたか?
    答えがいいえのとき

    運用側の疑いが残ります。始業前の立ち上げ時間、昼休みの停止、残業時間帯の運転設定が、入居者の使い方と合っているかを見ます。

    答えがはい

測定も稼働も異常なしの苦情

局所の条件を現地で確かめます。吹出口の真下か、窓際か、レイアウト変更の後か、といった席の条件です。

このうち設備起因と運用起因の線引きは、記録だけでは決まりません。設定温度が下がったままだったのは、設備の不具合なのか、誰かの操作なのか。稼働記録に操作者が残っていない場合は、現場の担当者への聞き取りが必要です。

区分Cに多くの苦情が集まる場合は、苦情の出る階やゾーンに偏りがないかを見ます。月や曜日、時間帯の偏りも手がかりになります。Claudeには「区分ごとに、階・ゾーン・時間帯の集計表を作ってください」と頼めば、偏りが一覧で出ます。

結果は台帳に残し、入居者への回答は事実欄から作る

仕分けた結果は、苦情ごとに次の列で台帳にします。

列内容
苦情ID内容個人名を含まない通し番号
区分内容A〜Dのいずれか
根拠内容ひも付けた測定の日付と値、稼働記録の該当行
疑い内容設備側か運用側かと、その理由
次の確認内容追加測定・現地確認・業者への点検依頼

入居者への回答文は、この「根拠」の列だけを材料に起こします。「基準内でした」とだけ伝えると、苦情を退ける印象になりがちです。測定した日付と値、次に行う確認を添えると、事実に沿った返答になります。

苦情そのものの受付から再発防止までを様式にしたい場合は、介護の苦情対応記録の手順の様式の分け方が参考になります。件数が増えて分類管理簿にしたいときは、保険の苦情を分類して管理簿に集計する手順と同じ型が使えます。

使うときの落とし穴と限界

落とし穴

2か月に1回の測定で、苦情当日の状態を説明してしまう

定期の測定は、通常の使用時間中の各階1か所ずつの記録です。苦情の席の状態を直接測ったものではありません。測定日が離れた苦情は、区分Dとして追加測定に回します。

法令の適用範囲も確かめておきます。施行令第1条は、興行場・百貨店・店舗・事務所などの用途に使う部分の延べ面積が3,000平方メートル以上の建物を特定建築物としています。学校教育法の学校などは8,000平方メートル以上です。この範囲に入らない建物では、同じ基準値を目安にしても、2か月ごとの測定が義務として行われているとは限りません。

また、Claudeの仕分けは疑いの整理までです。次の点を守ります。

  • 数値の比較は、コードの実行結果を見て人が確かめる。一部の行を抜き出して検算する
  • 担当者や業者の責任を決める材料にしない。見直す対象は手順と設定にとどめる
  • 頭痛や体調不良の訴えは、空調の切り分けと別に、産業医や保健所などの相談窓口へつなぐ

自動化するとき、APIのコード実行で押さえる点

毎月の苦情を定期的に処理するなら、APIのコード実行ツールが使えます。実行環境の要点は次のとおりです。

  • Python 3.11、メモリ5GiB、ディスク5GiB、CPU1つ
  • 外部のインターネットには接続できない
  • pandasとopenpyxlなどが入っており、CSVやExcelのファイルはFiles API経由で渡せる
  • 実行時間に応じた課金が別にかかる。1組織あたり月1,550時間までは無料で、超えた分は1コンテナあたり1時間0.05ドル

ウェブ検索やウェブ取得のツール(2026年2月版以降)と同じリクエストで使う場合、コード実行そのものの追加料金は発生しません。

まとめ

空調の苦情は、測定値と並べても、それだけでは原因が決まりません。測定は2か月以内ごとに各階1か所、苦情は席と時刻の訴えという粒度の差があるからです。

そこで、症状から見る項目を決め、基準値と比べ、設備の稼働記録を足して、A〜Dに仕分けます。測定が古い苦情は「判断できない」と書き、追加測定へ回します。この線引きを台帳にしておくと、次に同じ階で苦情が出たときに、過去の根拠をそのまま引き継げます。

この記事を共有:XはてブLinkedIn