AIが見落とす「データの罠」――賃貸市場分析で学んだ前処理の本当の難しさ

「データさえあればAIが分析してくれる」――そう思っていないだろうか。

筆者は最近、ある地域の賃貸物件データを使って家賃トレンドの分析を行い、その結果を別の記事として公開した。「物価高騰は賃貸家賃に波及していない」「1月は割高、2月以降は割安」「追焚設備が家賃の最強予測変数」といった知見が得られた分析だ。

だがその裏側では、本格的な分析を始める前に、何時間もかけてデータセットの「確立」に苦労していた。AIを使いながらも、AIだけでは絶対に見つけられない問題が次々と現れた。そしてその問題を見逃していたら、統計的には「有意」に見えるが事実とは異なる間違った結論が導き出されていた。

今回はその前処理の過程を正直に公開する。データサイエンスの「格好いい部分」の前にある、泥臭くて地味だが最も重要な工程の話だ。


そもそも「前処理」とは何か

データ分析の工程は大まかに以下の流れになる。

  1. データ収集(スクレイピング等)
  2. 前処理・データセット確立 ← ここが今回のテーマ
  3. 探索的分析(EDA)
  4. モデル構築・検定
  5. 結果の解釈・レポート

前処理とは「生データを分析できる状態に整える」作業のことだ。具体的には欠損値の処理、型変換、外れ値の除去、重複の排除などが含まれる。

教科書的にはシンプルに聞こえる。しかし現実のデータは教科書とは全く違う顔を持っている。


罠①「文字列で格納された数値」――AIは気づかない

スクレイピングで取得した家賃データの形式はこうだった。

rent: "4.1万円"
admin: "4500円"
sikik: "1.5万円"

数値のように見えるが、Pythonの内部では全て文字列(string)型として格納されている。そのままモデルに渡せばエラーになるか、全件NaN(欠損値)になる。

「4.1万円」→ 41,000円への変換は一見単純だが、実際のデータには「-」(敷金なし)「応相談」「無料」など例外が無数に存在した。変換ロジックを書いても、次々と変換失敗するパターンが出てくる。

AIへの指示で自動変換を試みたところ、AIは「変換成功」と報告した。しかし実際には変換失敗した行が大量にNaN化していた。AIは処理を実行したことは正確に報告するが、結果の妥当性を自ら検証する習慣を持たない。確認コードを別途書いて人間が検証する必要があった。

データ解析と問題発見
データ解析と問題発見

罠②「DateTime型がモデルに混入する」――エラーなく通ってしまう

データには取得日(today)と取得タイムスタンプ(source_timestamp)という時系列の列があった。これらは当然、説明変数から除外すべき列だ。

ところがStandardScaler(標準化処理)にこれらをそのまま渡したとき、エラーは出なかった。Pythonは自動的にdatetime型を数値に変換して処理を続行したのだ。

結果として「取得日が新しいほど家賃が高い/低い」という意味のない相関がモデルに混入し、係数が歪んでいた。エラーが出ないため発見が遅れた。AIもこの異常を指摘しなかった。

「エラーなく動く」≠「正しく動いている」。これが前処理の恐ろしさだ。


罠③「ユニークキーの誤設定」――最も危険な罠

今回のデータは「同一物件を複数の取得日にわたってスクレイピングした」時系列パネルデータだ。分析するには「1物件 = 1レコード」に集約する必要がある。そのためにはまず「同一物件を識別するユニークキー」を正しく定義しなければならない。

これが最も深刻な罠だった。3回の定義変更を経て、ようやく正しい答えにたどり着いた。

v1: 物件名(title)単体をキーとして使う

最初は「物件名が同じなら同一物件」と考えた。しかしすぐに問題が発覚した。

「Tiare」「Bonheur」のようなマンション名は、同一棟の複数の部屋(1階・2階・異なる間取り)が同じ名前で掲載されている。title単体でキーを引くと、本来は別レコードであるべき複数の部屋が1件に誤集約される。

v2: SUUMO物件コードをキーとして使う

次に「サイトが付与している物件コード(suumo_code)が最も信頼できるはず」と考えた。しかしここに大きな落とし穴があった。

大手賃貸サイトは同一物件の掲載コードを定期的に更新する仕様だった。

これを確認したときのデータはこうだった。

suumo_code観測期間取得率
1004930303312026-03-10〜03-101日のみ
1004930422852026-03-13〜03-202日

これは実際には同一物件なのに、コード更新によって2件に分裂している。レオパレス系の物件では取得率の中央値がわずか26.5%――つまり38時点中約10回しか同じコードで観測されていない。同一物件が平均4コードに分裂していた計算になる。

この誤集約版でモデルを動かしたときのR²(決定係数)は0.836。見かけ上は非常に高精度なモデルに見えた。しかし実態は水増しされたサンプル数による見せかけの精度だった。

v3(最終): Union-Findアルゴリズムで連結する

最終的な解決策は、Union-Find(素集合データ構造)というアルゴリズムを使った連結だ。

「物件名・不動産会社コード・階数・間取り・家賃が同一で、旧コードの最終観測日と新コードの初回観測日のギャップが7日以内」という条件を満たすものを同一物件として連結する。

連結前: 1,522件
連結後: 1,371件(151件を連結)
募集期間の中央値: 4日(異常)→ 52日(現実的)

募集期間の中央値が4日から52日に変化した時点で「ようやく正しい集約ができた」と確認できた。入居が決まるまでの期間として4日は明らかに異常で、52日は現実的な値だ。

そして正しい集約後のモデルのR²は0.750。v2の0.836より低い。これが正しい精度だ。高いR²が必ずしも「良いモデル」を意味しない典型例だ。


罠④「多重共線性」――変数を増やすほど精度が下がる逆転現象

ユニークキーが確立した後、次の罠が待っていた。

間取り(1K・2LDKなど)と専有面積(㎡)は、直感的には別の情報のように見える。しかし統計的にはほぼ同じ情報を異なる形で表しているに過ぎない。

両方を同時にモデルに投入すると、VIF(分散拡大係数)が以下のようになった。

変数VIF判定
madori_1K(間取り)69.8❌ 深刻
madori_2LDK57.2❌ 深刻
menseki(面積)22.5❌ 問題

VIF>10は多重共線性ありの目安とされる。間取りダミー変数を全て除外して面積のみにしたところ、VIFは全変数で10以下に収まり、調整済みR²も改善した。

「変数を増やす = 精度が上がる」という思い込みは危険だ。不適切な変数の追加は、むしろモデルを壊す。


「見かけの下落トレンド」が前処理の重要性を証明した

これら全ての前処理を経て初めて、時系列分析が意味を持つようになった。

生データの平均家賃をそのまま時系列でプロットすると、月▲380円という明確な下落トレンドが見えた(p<0.001)。もし前処理が不十分なままここで分析を終えていれば、「この地域の家賃は有意に下落している」と結論づけていただろう。

しかし物件条件(面積・築年数・設備など)を除去したヘドニック残差で同じ分析をすると、トレンドは月▲106円でp値=0.190——統計的に有意でない

「下落トレンド」の正体は、安価な物件の大量新規掲載によるミックス効果だった。前処理が正しくなければ、この区別は絶対にできなかった。


なぜAIだけでは限界があるのか

今回の分析でAIは非常に重要な役割を果たした。Pythonコードの生成、統計的な解釈、可視化スクリプトの作成——これらはAIなしでは数倍の時間がかかっていた。

しかし以下の判断は、人間の「データへの疑い」なしには気づけなかった。

問題なぜAIが見落とすか
文字列型の数値変換失敗「処理した」事実を報告するが、結果の妥当性を自ら検証しない
DateTime型のモデル混入エラーが出ないため異常として認識されない
suumo_codeの定期更新仕様ドメイン知識(サイトの仕様)を持っていない
募集期間「中央値4日」の異常「4日は短すぎる」という現実感覚がない
R²=0.836の見かけ上の高精度高いR²を「良い結果」として肯定してしまう傾向がある

AIは与えられた指示を忠実に実行する。しかし「この結果はおかしい」「この集約方法は現実と合っているか」というドメイン知識に基づいた懐疑心は、人間が持ち込まなければならない。

データサイエンスは「AIに任せれば終わり」ではない。むしろAIを使えば使うほど、人間側の「問いを立てる力」と「結果を疑う目」が重要になる。


まとめ:前処理は「分析の9割」である

今回の分析で前処理に費やした時間は、モデル構築や解釈の時間をはるかに超えていた。そしてその前処理の品質が、最終的な結論の正否を決定的に左右した。

前処理の重要なチェックポイントをまとめる。

  1. 型変換の結果を必ず検証する(変換後のNaN率、値の範囲を確認)
  2. 除外すべき列を明示的にリストアップする(ID列・日付列・生テキスト)
  3. 集約結果が現実と整合するか確認する(「募集期間4日」は現実的か?)
  4. ユニークキーの定義を慎重に行う(データソースの仕様を調査する)
  5. VIFで多重共線性を確認する(変数を増やす前に必ず確認)
  6. 高いR²を盲信しない(集約バグや過学習の可能性を疑う)

「正しいデータセット」なしに「正しい結論」はあり得ない。前処理はデータサイエンスの花形ではないかもしれない。しかし、それが全ての土台だ。


データ分析のご相談はhoscmへ

「自社のデータを分析したいが、どこから手をつければいいかわからない」「AIを使ってみたが正しい結果が出ているか不安」——そんなご相談を承っています。

データの収集設計から前処理・モデル構築・結果の解釈まで、一貫してサポートします。まずはお気軽にご相談ください。

 hoscm サービスサイト

Claude MCP × WordPress連携でハマった落とし穴──wp_healthの403は「接続失敗」ではなかった

ClaudeのMCP(Model Context Protocol)を使ってWordPressと連携する環境を構築しました。昨日まで正常に動いていたのに、今日は突然つながらない──そんなトラブルを経験しました。結論から言うと、原因はClaudeの思い込みによるデバッグミス(とアプリケーションパスワードの保存忘れ)でした。同じ失敗を繰り返さないための記録として残します。

環境

  • サーバー:Xserver(hoscm.xsrv.jp)
  • MCPプラグイン:claudeus-wp-mcp
  • MCPユーザー権限:編集者(Editor)
  • 接続設定:wp-sites.json(Claude Desktop

何が起きたか──事象の時系列

昨日まで正常に動作していたMCP連携が、今朝から突然失敗するようになりました。Claudeは接続確認のために wp_health__test_auth を繰り返し実行しましたが、すべて403エラーが返ってきました。

手順実施内容結果
wp_health__test_auth で接続確認❌ 403エラー
WP Fastest Cache を無効化❌ まだ403
CloudSecure WP Security を無効化❌ まだ403
Xserver WAF を調査❌ 関係なし
アプリケーションパスワードを再生成❌ まだ失敗
PowerShellで認証テスト✅ 通った
「更新ボタン押し忘れ」に気づく原因判明
パスワード正しく保存・再起動❌ まだ失敗
wp_healthではなく通常エンドポイントで確認✅ 正常動作!

本当の原因は2つあった

原因①:アプリケーションパスワードの「保存ボタン押し忘れ」

WordPressのアプリケーションパスワードを再生成した後、プロフィール画面の「プロフィールを更新」ボタンを押さずに離脱していたため、新しいパスワードが保存されていませんでした。これが真の認証失敗の原因でした。

PowerShellで認証テストをしたところ通ったことで、この事実が判明しました。パスワード更新後は必ずブラウザ上で「更新完了」のメッセージを確認してください。

原因②:wp_healthエンドポイントは編集者権限では使えない

Claudeが接続確認に使い続けた wp_health__test_auth は、管理者権限が必要なエンドポイントです。このサイトのMCPユーザーは編集者権限しか持っていないため、パスワードが正しくても403が返り続けます。これは「接続失敗」ではなく「権限不足」による正常な拒否でした。

エンドポイント必要権限編集者での結果
get_taxonomies不要(公開情報)✅ 正常
get_posts編集者✅ 正常
create_post編集者✅ 正常
get_settings管理者❌ 403
wp_health__test_auth管理者❌ 403

無実だったプラグインたち

今回の騒動で無効化・調査したプラグインやセキュリティ設定は、すべて無関係でした。

  • WP Fastest Cache:.htaccessを書き換えていたが、無効化しても403は続いた → 無関係
  • CloudSecure WP Security:セキュリティプラグインだが、無効化しても403は続いた → 無関係
  • Xserver WAF:XSS・SQL・PHP等の6項目を確認したが、REST APIの権限制御とは無関係

最終確認として、両プラグインを再有効化した状態で get_taxonomies を実行したところ正常に動作しました。環境は最初から正常だったのです。

一番の失敗:Claudeの思い込みに振り回された

今回最大の問題は、Claudeが「wp_health = 接続確認ツール」「403 = 接続失敗」と思い込み、その前提を疑わなかったことです。

その結果、ユーザーは本来まったく不要だった以下の作業をさせられました。

  • プラグインの無効化・再有効化
  • WAFの各項目調査
  • アプリケーションパスワードの再生成
  • Claude Desktopの複数回再起動
  • .htaccessの内容確認

「低権限エンドポイントから順に確認する」という基本的なデバッグ手順を踏んでいれば、これらの作業のほとんどは不要でした。

正しいMCP接続確認の手順

今後の再発防止のために、正しいデバッグ手順をまとめます。

Step 1:低権限エンドポイントで疎通確認

get_taxonomies  ← 認証不要・公開情報。まずここから。

✅ 通る → ネットワーク・サーバーは正常

Step 2:編集者権限エンドポイントで認証確認

get_posts または create_post(下書き)← 認証が必要。

✅ 通る → 認証(アプリケーションパスワード)も正常
❌ 失敗 → パスワードの確認、保存忘れがないか確認

wp_health系は使わない

管理者権限が必要なため、編集者権限の環境では常に403が返ります。接続確認には使用しないこと。

読者・ユーザーへの教訓

MCP連携でトラブルが発生したとき、最初にClaudeに伝えるべき情報があります。

「このサイトのMCPユーザーは編集者権限です。接続確認は get_taxonomies など低権限エンドポイントから順に試してください。wp_health系は使わないでください。」

この一言をセッション冒頭に伝えるだけで、今回のような無駄なデバッグを防ぐことができます。AIは間違った前提で動き続けることがあります。ユーザーが正しい制約条件を最初に伝えることが、AI活用の重要なスキルです。

まとめ

項目内容
真の原因①アプリケーションパスワードの保存ボタン押し忘れ
真の原因②wp_healthは管理者権限が必要(編集者権限では使えない)
Claudeのミス403=接続失敗と思い込み、低権限エンドポイントから試さなかった
無関係だったものWP Fastest Cache・CloudSecure・Xserver WAF・.htaccess
再発防止策接続確認はget_taxonomiesから。セッション冒頭に権限を明示する

MCP連携は非常に便利な仕組みですが、AIの思い込みに振り回されないためには、ユーザー側からの適切な制約条件の提示が重要です。この記録が同じ環境で構築する方の参考になれば幸いです。

コメント

このパターンにはまった場合、初心者はAIに振り回されて数日間を棒に振る可能性があります。最悪の場合、放棄するかもしれません。いあー。まだまだ、MCPはエンジニアレベルの絶賛開発中ツールでしょうかね。 このようなトラブルをサクッと解決できる人しか生き残れないのか?。。。 厳しいな。

関連記事

AI活用というけど、2026年の進化はMCP活用がポイントか。Claude code、Claude.aiでの進化

「ツールをClaudeに接続」について

生成AIの進化で様々なシーンでAI活用が進んでいるが、2026年はさらに次のステップに入ろうとしている。それは。一言で言うとMCP活用の爆誕である。 これは端的に言えば、(生成)AIとコンピュータを連携させる仕組みの登場である。 さらに言い換えると、AIにIoTへのアクセス権を許可する仕掛けである。これは、一つの新たなリスク領域に踏み込んでしまったともいえる。AIとは何かを理解せぬまま、AIがコンピューターだと誤解したままこの領域に踏み込んでしまった人が引き起こす不幸は見たくはないものだが、間違いなくそれは起こるに違いない。このコンテンツおよび関連記事が、そのような人を一人でも減らすことができることになれば幸いです。

AIとIoTの連携でのリスク
AIとIoTの連携でのリスク

MCPとの関係

はい、認識は正しいです。「ツールをClaudeに接続」はMCP(Model Context Protocol)の連携設定をする機能です。GoogleドライブやSlack、GitHubなどの外部サービスをClaudeに接続し、会話の中でそれらのデータにアクセスしたり操作したりできるようになります。


ブラウザ版とClaude Desktopの違い

別設定です。 それぞれ独立した設定になっています。

ブラウザ版(claude.ai)Claude Desktop
設定場所ブラウザ上の設定ローカルの設定ファイル(JSON)
接続できるものAnthropicが提供するコネクタ中心ローカルのMCPサーバーを含む何でも接続可
柔軟性比較的簡単・限定的自由度が高い
設定の共有アカウントに紐づくそのPCのみ

Claude Desktopの方がより高度なカスタマイズが可能で、自作のMCPサーバーや、ローカルファイルシステムへのアクセスなども設定できます。


コネクタの追加費用について

見分け方はシンプルで、追加費用は一切かかりません。

コネクタの利用に際して、既存のプランのサブスクリプション以上の追加料金は発生しません。 Max Productive AI

ただしプランによる制限はあります:

ディレクトリのコネクタ(50種以上)カスタムコネクタ(MCP URL手入力)
Freeプラン✅ 利用可✅ 1つまで
Proプラン以上✅ 利用可✅ 無制限

カスタムコネクタはFree・Pro・Max・Team・Enterpriseすべてのプランで利用可能ですが、Freeユーザーは1つに制限されます。 Claude

つまり「追加費用がかかるコネクタ」はなく、プランの壁があるだけ、という理解でOKです。


BufferのClaudeコネクタについて

現時点ではブラウザ版の公式コネクタディレクトリには存在しません。

ただし状況が進展中で:

  • Buffer用のMCPサーバーが有志によって作成されており、BufferのGraphQL API(2026年2月パブリックベータ)を使って、Claudeから投稿の作成・スケジュール・管理ができます。 LobeHubただしこれはClaude Desktopへの手動設定が必要なカスタムMCPです。
  • Buffer公式の回答によれば、MCPはベータ機能として提供されており、公式Claudeコネクタは近日公開予定とのことです。 Threads

現時点でBufferをブラウザ版で使う方法としては、ZapierのMCPコネクタ経由で間接的に連携する方法があります(ただしZapierのプランが別途必要)。

公式コネクタが来るまで待つか、Claude Desktopでカスタムメーカー MCP設定をするか、という選択肢になりそうです。


MCP連携 コネクタの有償/無償の確認方法

残念ながら一覧で一括確認する方法はなく、現状では個別に調べるしかありません。また、どんどん更新されているため、動作しない場合は、その都度、調べるのが必要があります。
参考までに2026年3月27日時点での主要コネクタの無料プランの有無をまとめると:

コネクタ無料プラン
Google Drive / Gmail / Calendar✅ あり
GitHub✅ あり
Notion✅ あり(機能制限あり)
Slack✅ あり(履歴制限あり)
Linear✅ あり
Asana✅ あり(機能制限あり)
Jira✅ あり(10人まで)
Canva✅ あり
Figma✅ あり(プロジェクト数制限)
Stripe❌ 無料プランなし(従量課金)
Ahrefs❌ 無料プランなし

入力枠右下の小さなアイコンとの関係

関係あります。 あのアイコン(🔧 や + のようなもの)は、接続済みのツールのオン/オフを切り替えるボタンです。

流れとしては:

  1. 「ツールをClaudeに接続」 → MCPサービスを登録・連携設定する場所
  2. 入力枠のアイコン → 登録済みのツールを、その会話で使うかどうかを選ぶ場所

つまり、まず接続設定をしておいて、会話ごとに必要なツールをアイコンから有効化する、という使い方になります。

各アプリのProプランでの利用可否

アプリProプランで追加費用なし?
Claude Code(ターミナル)✅ 追加費用なし
Cowork✅ 追加費用なし
Claude in Excel✅ 追加費用なし
Claude in Chrome✅ 追加費用なし(有料プランのみ)
デスクトップアプリ・モバイル✅ 追加費用なし
Claude in PowerPoint⚠️ 要注意

PowerPointだけは注意が必要

Claude for PowerPointは現在、Max(月$100)、Team、Enterpriseプランのみ対応で、Proプランには含まれていません。 Pasquale Pillitteri

公式の料金ページでも、Claude for ExcelとClaude for PowerPointはProプランの機能一覧に記載されていますが、 Claude実際の提供状況はExcelとPowerPointで異なります。


本題の危機、リスクとは

MCP連携は非常に有用な仕組みです。しかし、何をしているのかを理解したうえで使わないと、想定外?の危機に見舞われる。1つめは、MCP連携は、AIに何かをする権限を委譲すると言うことである。何を委譲しようとしているのかを理解したうえで「ボタン」を押す必要がある。
つぎに、AIをコンピューターと思ってはいけない。これが重要なポイントだが、AIは見も知らない他人で、基本的には協力してくれるが、そうでもないこともある。具体的には「ハルシネーション」である。単に「誤回答」のことだろうと思っているあなた、まだまだAIに難題をだしていませんね。AIは、自己解決できない問題を無理やり解決しようと想定外の行動に出ることがある。MCP連携で権限委譲しているものの中にやってはいけない行為を許可していることはありませんか?たとえば、WordPress連携で投稿文の編集権を渡している場合、コンテンツを勝手に書き換えや削除してしまうことが考えられます。この損失は軽微なように思われるかもしれませんが、MCP連携で権限委譲する範囲が広がれば、取り返しができない「想定外だった」というような話が今後出てくるかもしれません。

そのようなことがないように、権限委譲の設計をしっかりしながら作業を進めましょう


関連記事

Claude Desktop × WordPress MCP連携:何度目の正直か、すったもんだした設定記録

Claude Desktop と WordPress を MCP で連携させる——この設定が意外に一筋縄ではいかなかった。「AIから直接成果物を作成できる」と聞いて、いろいろ試しているうちにWordPressに直接投稿できるMCPが提供されていることに気づきどこまでできるのかと始めたものの、思いのほか手こずった体験をそのまま記事にしました。この記事自体、完成した Claude Desktop × WordPress MCP連携 を使って投稿しています。
この情報は、2026年3月28日時点の情報です

AIアシスタントとWordPressの連携フロー
あなた(会話)→ Claude → MCP → WordPress という連携の流れ

Claude Desktop × WordPress MCP連携とは?

MCP(Model Context Protocol)とは、AIアシスタント(Claude)が外部ツールやサービスと連携するための標準プロトコルです。Anthropic が提供する Claude Desktop に「claudeus-wp-mcp」というMCPサーバーを設定することで、Claudeが直接WordPressの投稿・編集・取得などを行えるようになります。

実現できることのイメージはこうです。

人間(会話) → Claude Desktop → MCP → WordPress

プログラムを書かなくても、Claudeとの会話だけで記事の作成・更新・取得ができるのは大きな進歩です。

必要なもの

  • Claude Desktop(インストール済み)
  • Node.js / npx(インストール済み)
  • WordPressサイト(REST APIが有効なもの)
  • WordPressのアプリケーションパスワード

アプリケーションパスワードはWordPress管理画面の「ユーザー → プロフィール → アプリケーションパスワード」から生成できます。通常のログインパスワードとは別物なので注意してください。

Claude Desktop × WordPress MCP連携の設定ファイルは2つ

設定に必要なファイルは2つです。この2つの関係をしっかり理解することが、つまずかないための一番のポイントです。

claude_desktop_config.jsonとwp-sites.jsonの構成比較
claude_desktop_config.json と wp-sites.json の関係
ファイル役割場所
claude_desktop_config.jsonMCPサーバーの起動設定Claude Desktopの設定フォルダ
wp-sites.jsonWordPressサイトの接続情報任意の場所(パスを指定)

① claude_desktop_config.json の設定例

Windowsの場合は %APPDATA%\Claude\claude_desktop_config.json にあります。claudeus-wp-mcp は npm で公開されているため、npx で直接実行できます。

{
  "mcpServers": {
    "claudeus-wp-mcp": {
      "command": "npx",
      "args": ["-y", "claudeus-wp-mcp"],
      "env": {
        "WP_SITES_PATH": "C:\\Users\\yourname\\.config\\claudeus\\wp-sites.json"
      }
    }
  }
}

② wp-sites.json の設定例

{
  "default_test": {
    "URL": "https://あなたのサイト.com/xxxx",
    "USER": "WordPressユーザー名",
    "PASS": "アプリケーションパスワード",
    "authType": "basic"
  }
}

※設定情報を参考にするときは適宜、設定を更新してください。(特に太字箇所)

ハマりやすい落とし穴3つ

🚨 落とし穴①:キー名は必ず “default_test”

claudeus-wp-mcp は内部で default_test というエイリアスをデフォルトで参照します。ここを default や別の名前にすると、以下のエラーが出てツールが一切認識されません。

"error": {"code": -32603, "message": "Unknown site: default_test"}

🚨 落とし穴②:複数サイトを併記しない

試行錯誤の過程で default_testdefault を両方書いていた時期がありましたが、これが認証エラー(401)の原因になりました。シンプルに default_test だけにするのが正解です。

🚨 落とし穴③(最大):Xserverの .htaccess 問題

設定は完璧なのに投稿作成(POST)だけ401エラーが出続けました。サーバーのアクセスログを確認するとリクエスト自体は届いているのに認証が通らない状態でした。

原因はXserverがAuthorizationヘッダーをPHPに渡していないことでした。WordPressのアプリケーションパスワード認証はこのヘッダーを必要とするため、常に失敗していたのです。これは Xserver に限らず、WordPress REST API の Basic 認証を使う場合に共通して起こりうる問題です。

Xserverの認証ヘッダー修正前後の比較
.htaccess修正前(上)と修正後(下):ヘッダーがWordPressに届くようになる

解決策は .htaccess(WordPressのルートディレクトリ)に以下の1行を # BEGIN WordPress の直前に追加するだけです。

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ai/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ai/index.php [L]
</IfModule>
# END WordPress

注意:Xserverのテーマ更新やプラグイン追加の際に .htaccess が上書きされる可能性があります。定期的に確認してください。

正常起動のログで接続を確認する

Claude Desktopのログを確認することで、MCP接続状態を把握できます。正常な起動の場合は以下のように表示されます。

[INFO] Loaded 1 site configurations
[INFO] Initialized API clients for site: default_test
[INFO] Initialized MCP server
[INFO] Registered MCP tools
[INFO] Starting server with stdio transport

tools/list にエラーが返る場合はキー名を再確認してください。

まとめ:Claude Desktop × WordPress MCP連携のハマりポイント

  1. wp-sites.jsonのキー名は必ず default_test ← 最初の関門
  2. 複数サイトを併記しない ← シンプルに1つだけにする
  3. Xserverの場合は .htaccess に1行追加 ← 最大の落とし穴(テーマ更新後も要確認)

設定さえ通れば、Claudeとの会話だけでWordPressの投稿・編集・取得が自由にできるようになります。同じところでつまずいている方の参考になれば幸いです。


この記事は Claude Desktop + claudeus-wp-mcp を使って投稿しました。

NAS HDDの知らないと危ない ― SMRとCMRとの違い・内部処理・電源断リスクを解説

故障したNAS(LS210D)の復活をしてみよう:交換用HDDの機種選定までの検討でふれたSMR(Shingled Magnetic Recording)とCMR(Conventional Magnetic Recording)の話です

HDDの選択は、この2つの違いを理解したうえで、用途に合わせてHDDを選択するべきですね。ところが、SMRなのか、CMRなのか情報がほとんど公開されてないですよね。さらにそれは、外付けHDDとなった時点で、さらに分かりにくい状態になっていると思います。NAS用途では特にその問題が顕著です。これは多くのユーザーやNAS運用者が感じている共通の問題だと思います。

SMRとCMRの違いって、一般利用者には理解しがたい仕組みだと思います。よく瓦型という表現で説明されますが、それが何を意味しているのかを、分かるように解説してくれる人はほとんどいないんじゃないでしょうか?動画とかで、動的に解説しないと理解するのは難しいでしょう? 分かりやすい動画があったので紹介しておきます。

参照元:https://ytscribe.com/pt/v/wtdnatmVdIg


13分頃から、CMRとSMRについて解説されています。
それから、 過去からの記録密度を上げてきた歴史がかなり端折って紹介されています。別途その歴史の話をまとめてみましょうか…ね。

動画では瓦状に磁気記録されているかのように見せていますが、実質は上書きされるので上書きされた部分は消えるということです。つまり、ディスク面の内から外、もしくは外から内と隣のトラックが使われていないことを前提に順番に書き込む必要があります。従来使われているかどうかの管理は、OSレベルのNTFSや、ext4などのディスクシステム管理で行うだけでした。これを、SMRでは、HDD内部で書き込み順の管理を行い、TPI(Tracks Per Inch トラック密度)を上げることで、面記録密度を上げる工夫をしています。

SMR HDDの内部で起きていること|NASでSMR HDDが問題になる理由

書き込み順管理・電源断時処理・コンセント抜きのリスク

SMRでは、後から書いたトラックが前のトラックの端を部分的に上書きします。そのため途中のトラックだけを書き換えると隣も壊れるという性質があります。そのためSMRではトラック単位の部分書き込みができません。更新が必要な場合、内部でデータを別の場所へ書き直す処理が発生します。

SMRで行われる実際の処理

SMR HDDでは内部で次のように書き込み順管理の処理を行います。Drive Managed SMR(DM-SMR)ではOSはSMRを知らないためHDD内部で管理します。管理要素は主に「LBA → 物理位置、ゾーン書き込みポインタ、無効ブロック」があります。HDDにより、どこに永続的に保持するかは変わりますが、磁気記録領域などから読みだしてHDD内のDRAM上に置いて管理します。DRAMは電源を切ると消えるので、管理情報は定期的にディスク側へ書き戻されます。多くのSMRではログ構造で管理され、電源投入時に整合性チェックを行って復旧します。これにより何が起こるのかというと、CMRの場合の電源断時はDRAM上のキャッシュを磁気記録するのを待つだけです。それに対して、SMRの場合は、書き込み順番を調整・管理しながらキャッシュを書き込んで、さらに管理情報を磁気記録し終わるのを待つ必要があります。このため、NASの電源スイッチを切ってもすぐにはディスクへの書き込みは終わらずかなりの時間待たされることがあります。

補足:
なおSMRには
Drive Managed(DM-SMR)
Host Managed(HM-SMR)
Host Aware(HA-SMR)
の3種類があります。一般に市販されているHDDの多くはDM-SMRです。

コンセントを突然抜くと何が起きるか

ここが重要なポイントです。SMRでは通常HDD(CMR)より影響が大きい可能性があります。


①DRAMキャッシュ消失

未書き込みデータが消えます。これは通常HDDでも同じです。


②マッピング更新途中で停止

例えば

旧データ

新データ

マッピング更新

の途中で電源断すると

参照先が失われる

可能性があります。

多くのSMRでは

ログ構造

で復旧するよう設計されていますが

最悪の場合

ゾーン単位破損

が起きる可能性があります。
※電源スイッチで電源を切っても、NASが停止するのに時間がかかるのは、このような状況を防ぐためです。しかし、コンセントを足で引っ掛けて抜いてしまうとか、落雷で停電とかいくらでも突然電源が落ちることはありえるので、無停電電源とか工夫が必要です。


③ガーベジコレクション途中停止

SMRでは

ゾーン再配置(ゾーン内のデータ整理(ガーベジコレクション))

が頻繁に行われます。

途中で停止すると

未完了状態

になります。

再起動後

復旧処理

が走ります。


④ゾーン整合性修復

起動時に

SMR内部チェック

が行われます。

これが

電源投入後の長い待ち時間

になる場合があります。


なぜNASで問題が起きやすいのか

NAS用途では

ランダム書き込み
大量のファイル更新
RAID rebuild

が発生します。

SMRは

順次書き込み向け

なので

内部GC

書き込み遅延

RAIDタイムアウト

が起きることがあります。


まとめ

SMR HDDは

トラックを瓦状に重ねる

部分書き込み不可

内部ログ構造

マッピング管理

という HDD内部にSSD的な管理構造を持つストレージ です。

そのため

電源断
内部GC
メタデータ更新

などの影響を受けやすく特にNAS用途では CMRより挙動が複雑 になります。

SMR は「昔で言うところの 磁気テープの高速版と思って使え」って感じですかね

昔、コンピューターを使っていることを端的に表現したある作品に磁気テープの映像が使われていました。テープが巻き取られたり、戻ったりしながら動いているものです。テープでもランダムアクセスができていました。それにかなり近いイメージですね。その映像はこちら。

26秒あたりなど複数個所で登場します。コンピュータ周りでメカニカルに動くものといえば、この辺の機器だったのでしょう。

そして、いまだに、HDDはメカニカルに動く数少ないコンピュータ関連機器として存続しています。この先も当面この状態は続きそうです。少なくとも、スピントロニクスなど次世代記録技術が安価に普及する時代が来るまでは。


関連記事

同じデータでも──意味や価値が違えば、別物になる |ストレージ再考 第2話

見た目が同じでも、意味は同じではない

スマートフォンの中にある一枚の画像。
それはただの「写真」かもしれないし、二度と取り戻せない記録かもしれない。

画素数も、ファイル形式も、見た目も同じ。
それでも、その扱いはまったく変わる。

例えば──
・たまたま撮れた風景
・仕事の記録
・家族の思い出
・証拠として残す必要のある写真

どれも「画像データ」であることに違いはない。
しかし、同じ扱いでよいとは、誰も思わないはずだ。

ここで起きているのは、技術の違いではない。
意味と価値の違いだ。


use
use

画像は「データ」ではなく「位置づけ」で価値が変わる

画像という形式だけを見れば、それは単なるデータだ。
だが、人がそこに意味を与えた瞬間、別の存在になる。

同じ構図の写真でも、

  • 落書きの記録
  • 美術作品の記録
  • 事故の記録
  • 成長の記録

それぞれの立場によって、役割はまるで違う。

画像の本質は「ピクセルの集合」ではない。
どの位置づけで存在しているかが、その正体を決めている。


use2
useB

媒体が変われば、意味も変わる

同じ「画像」でも、残され方はさまざまだ。

洞窟の壁に描かれたもの。
紙に描かれた絵。
油絵。
版画。
写真。

それぞれの時代、それぞれの方法で、
「残す」という行為は繰り返されてきた。

そして、残されたものの中には、
意味がはっきりしているものもあれば、
何のために描かれたのか分からないものもある。

それでも共通しているのは、
“残った”という事実そのものに価値が生まれることがあるという点だ。


極端な例で考えてみる

同じ「絵」でも、価値は極端に変わる。

子どもの落書き。
名画。

どちらも画像であり、どちらも記録だ。
しかし、扱いはまったく違う。

捨てられることもあれば、守られることもある。
複製されることもあれば、唯一のものとして扱われることもある。

ここで起きているのは、
媒体の違いでも、画質の違いでもない。

“何として存在しているか”の違いだ。


画像は、使われ方で別物になる

同じ画像でも、状況によって意味が変わる。

・個人的な記録
・共有される情報
・作品
・資料

そして、その扱いは自然に分かれていく。

気軽に消されるもの。
いつの間にか残り続けるもの。
意図して守られるもの。

人は無意識のうちに、
画像を「同じもの」として扱っていない。


しかし、私たちは深く考えていない

日常の中で、画像は大量に生まれる。
保存され、共有され、忘れられていく。

その一つひとつが、
どのような意味を持ち、
どのような価値を持ち、
どのように扱われるべきなのか。

そこまで意識していることは、ほとんどない。

同じように保存され、
同じように並び、
同じように消えていく。

けれど本当は、
同じであるはずがない。


同じ扱いのままでいいのか

同じ形式。
同じ見た目。
同じ保存先。

それでも、意味は違う。
価値も違う。
置かれている位置も違う。

本当は、全部同じ扱いでいいはずがない。

でも、どう違うのかは、
まだ整理されていない。

だから一度、
考えないといけない。


関連記事

SSDは本当に速くなったのか?- 3年後に感じる“あの重さ”の正体 –

https://mic.or.jp/info/2026/02/05/3-reasons-systems-feel-slower/

データとは何か──「意味」と「価値」から始める記憶の話|ストレージ再考 第1話

ロゼッタ・ストーン ── 読めた記録

記録は、残るだけではデータにならない。
そこに刻まれたものが、誰かに解釈され、意味を持った瞬間、初めて「使えるもの」になる。

ロゼッタ・ストーンは、まさにその象徴だった。
同じ内容が異なる文字で刻まれていたことで、人は古代の文字を読み解く手がかりを得た。
石そのものはただの記録だったが、「読めた」ことでデータになった。

それは、理解された記録だった。

rosetta
Rosetta Stone

チバニアン ── 残った記録

人が残そうとしなくても、痕跡は残る。
地層に刻まれた磁気の向きは、遥かな時間を超えてそのまま保存されていた。
意図も目的もなく、ただ存在し続けることで記録となったもの。

人の手によらない記憶も、この世界には確かにある。

それは、意図せず残った記録だった。

第7話 SRAM/DRAM/NVMの違いとは?記録と時間で読み解くメモリ構造


洞窟壁画 ── 残された記録

洞窟の壁に描かれた絵の多くは、その目的が明確には分かっていない。
祈りだったのか、記録だったのか、ただの表現だったのか。

それでも、数万年の時間を越えて残っている。
意味が分からなくても、残存そのものが価値を帯びる。

それは、理由が分からなくても残った記録だった。
第2話 同じデータでも──意味や価値が違えば、別物になる


粘土板 ── 使われた記録

やがて人は、残すために記録を作るようになる。
交易、約束、数量、出来事。
日々の営みの中で、記録は「使うもの」になった。

そこには、残るだけではない役割があった。
読み、参照し、必要に応じて書き直される。

それは、役割を持って使われた記録だった。

第3話 記憶方式は階層ではない──すみ分けと多様性という考え方
第4話 parameter/使い分けの軸を定義する──データとデバイスの分析パラメータ
第5話 SSDは本当に速いのか──見落とされがちな「速度の盲点」


石碑・金属刻印 ── 変わらない記録

一方で、書き換えないこと自体に価値が置かれる記録も生まれる。
石に刻まれた文字、金属に残された印。
そこには「変えてはならない」という意思が込められていた。

変わらないことで、信頼が生まれる。
時間が経っても同じであることが、意味を支える。

それは、変えないことに価値がある記録だった。


paper
paper

巻物・書物 ── 蓄えられた記録

知識は、単発の記録から連なりへと変わっていく。
巻物や書物は、断片ではなく「蓄積」を前提とした形だった。

一つひとつの記録が、積み重なり、つながり、参照される。
知識は保存されるだけでなく、増えていく。

それは、積み重ねられていく記録だった。


図書館 ── 集められた記録

記録は、単体ではなく集合として扱われるようになる。
書物が集められ、分類され、共有される場所が生まれる。

そこでは一つの記録ではなく、全体としての知識が意味を持つ。
記録は「個」から「群」へと変わった。

それは、体系として集められた記録だった。


口承 ── 人が担った記録

記録媒体が整う以前、人そのものが記憶の担い手だった。
語り継ぐことで知識は残り、世代を越えて伝えられた。

しかし、人がいなくなれば、それも消える。
記録は人の存在と切り離せなかった。

それは、人が背負っていた記録だった。


焼失した図書館 ── 失われた記録

集められた記録であっても、永遠に残るとは限らない。
火災や戦乱によって、多くの書物が失われてきた。

残したはずのものが、ある日突然消える。
保存されていることと、安全であることは同じではない。

それは、残したはずの記録だった。


未解読文字 ── 読めない記録

記録は存在していても、読めなければ使えない。
文字が残っていても、解釈の手がかりが失われれば、意味は閉ざされる。

そこに情報はある。
しかし、それを取り出す方法がない。

それは、存在していても使えない記録だった。

nazo
不解読文字

関連記事

https://mic.or.jp/info/2026/02/05/3-reasons-systems-feel-slower/

SSDは本当に速くなったのか?- 3年後に感じる“あの重さ”の正体 –

速くなった、という確信

私たちはいつから、
「ストレージは速くなった」と疑わなくなったのだろう。

HDDからSSDへ。
OSの起動は明らかに短くなり、
アプリケーションは即座に立ち上がる。
ファイル検索やコピーも、
体感できるほど速くなった。

ベンチマークの数値を見れば、
その差はさらに明白だ。
SSD化は成功した。
少なくとも、多くの人がそう感じている。

いまや「遅いならSSDにすればいい」という言葉は、
何の違和感もなく使われている。
速くなった、という認識は、
すでに前提条件になっている。

HDD_SSD
HDD_SSD

使い続けたあとに現れる、あの感覚

ところが、しばらく使い続けていると、
多くの人が似たような違和感を口にする。

「最近、少し重い気がする」
「前はもっとキビキビしていた」

再起動すると、一時的に戻る。
初期化すれば、確かに速くなる。
だが、しばらくすると、
また同じ感覚が戻ってくる。

この現象は、もはや珍しいものではない。
それでも私たちは、
深く考えないまま受け入れてきた。


重くなる理由として語られてきたもの

遅くなった理由はいくつも語られてきた。

データが増えたから。
設定が複雑になったから。
そして、もっとも納得しやすい説明がこうだ。

「アップデートで機能が増えたから」

確かに、アップデートのたびに
新しい機能が追加され、
画面は華やかになり、
内部処理も増えていく。

それなら、多少重くなるのは仕方がない。
多くの人が、そう考えている。


本当に増えたのは「機能」なのか

だが、ここで一度立ち止まってみたい。

アップデートとは、
実際には何をしている行為なのだろう。

大量のファイルが書き換えられ、
差分や履歴が保存され、
ロールバックのための情報が積み重なっていく。
ログやキャッシュも増え続ける。

アップデートとは、
極めて書き込みの多い作業だ。

機能が増えたことによる負荷は、確かに存在する。
しかし、その裏で起きている
「書き換えられた量」は、
どれほど意識されてきただろうか。


「速さ」は、何を測っているのか

ストレージの速さは、
多くの場合、数値で語られる。

シーケンシャルリード。
ランダムアクセス。
IOPS。

それらは確かに重要だ。
だが、そこで測られているのは
ある瞬間の性能でしかない。

時間の経過は考慮されているだろうか。
使い方の違いは反映されているだろうか。
書き込みが積み重なったあとの状態は、
どこまで想定されているのだろう。

速さとは、
初速のことなのか。
それとも、
使い続けた先まで含めた性質なのか。


過去の常識が、いまも残っている

かつて、性能低下の代名詞だったものがある。
断片化だ。

HDDの時代、
データが物理的に散らばることは、
確かに速度低下の大きな原因だった。

だが、少なくともSSDにおいて、
それが支配的な要因であった時代は
すでに終わっている。

それでもなお、
私たちは説明しやすい物語を
手放せずにいる。


本当に、そうなのか

データが増えたから、遅くなった。
本当にそうなのか。

アップデートで機能が増えたから、重くなった。
本当にそうなのか。

古くなったから、仕方がない。
環境が汚れたから、仕方がない。
本当に、そうなのか。

私たちは、
何が起きているのかを理解した上で
「遅くなった」と言っているのだろうか。

それとも、
もっと見えにくい原因から
目をそらしているだけなのだろうか。


再スタート

さあ、はじまりました。久しぶりのストレージネタです。張り切っていきましょう。ストレージといえば、以前のMIC-NETの主要コンテンツで、読者の多いネタでした。そのネタを新らたな角度から見直してみましょう。過去コンテンツに興味のある方はヒストリ検索とかしてみてください。再度取り上げてほしいものがあればコメントください。

第1話 データとは何か──「意味」と「価値」から始める記憶の話


関連記事

なぜ壁は膨らんだのか?IT駆使で迫るコンクリート劣化の原因調査 ~2から6週間分 中間まとめ ~

昨年12月に本格着手して、さまざまな角度でITを駆使しながら進めてきています。以下は、ここまでに確認できた結果の要点の書き出してまとめます。 当初計画した調査環境の整備が整ってから2週間ほどしか経っていませんが、当初の仮説とは少し異なる新たな仮説を立てています。

ATOMCAM2撮影、画像キャプチャ(コンクリート劣化)


カメラでの定点観測は2025/12/23より運用開始: 上のとおり、キャプチャ開始時点から、後述のAEセンサー、温度センサー(熱電対)を追加しています。また、上右よりの2本のテープ状のものは水濡れ検知シールです。水に濡れると下の写真のように赤色に変わり乾いても赤のままなので、水が垂れてきたことがあったかどうか分かります。今のところ、水は出てきていません。同様に熱電対を入れた塩ビ管内にも。このシールを入れたので、壁の内側で結露が発生したかどうかを判別できるでしょう。

mizu
水検知シール

MCR-4TCでの温度測定

温度測定
温度測定

今のところ気温が一瞬0℃になりましたが、コンクリート裏はそこまでは下がっていません。気温が下がってコンクリート内の温度が連動するところもあれば、連動しないところもあります。単純に外気温だけがコンクリート裏側の温度に効いているわけではないようです。

 また、場所によって外気温の影響が異なるように見えます。

AE測定

[ EEPROM Data Analysis Report ]
Type | Date Time (UTC/Local) | Millis (raw) | Details
--------------------------------------------------------------------------------
SYNC | 2026-01-14 13:25:51 | 325120 | Time Synchronized (Unix:1768364751)
DATA | 2026-01-14 14:25:45 | 3919360 | CH0:0, CH1:19, CH2:0, CH3:0
DATA | 2026-01-15 06:45:30 | 62704128 | CH0:0, CH1:8, CH2:0, CH3:0
DATA | 2026-01-16 00:26:07 | 126341632 | CH0:0, CH1:8, CH2:0, CH3:1
DATA | 2026-01-16 06:11:56 | 147090432 | CH0:0, CH1:6, CH2:0, CH3:0
DATA | 2026-01-16 07:11:10 | 150644736 | CH0:0, CH1:0, CH2:3, CH3:7
DATA | 2026-01-16 10:10:08 | 161382912 | CH0:0, CH1:16, CH2:0, CH3:0
DATA | 2026-01-16 10:16:08 | 161742848 | CH0:0, CH1:7, CH2:0, CH3:0
DATA | 2026-01-16 10:57:17 | 164211968 | CH0:0, CH1:6, CH2:0, CH3:0
DATA | 2026-01-16 12:33:41 | 169995520 | CH0:0, CH1:6, CH2:0, CH3:0
DATA | 2026-01-16 12:47:02 | 170796544 | CH0:0, CH1:7, CH2:0, CH3:0
DATA | 2026-01-17 16:21:30 | 270064640 | CH0:0, CH1:11, CH2:1, CH3:1
DATA | 2026-01-18 01:01:31 | 301265664 | CH0:0, CH1:6, CH2:0, CH3:0
DATA | 2026-01-18 05:01:11 | 315645696 | CH0:0, CH1:6, CH2:0, CH3:0
DATA | 2026-01-18 12:22:00 | 342094336 | CH0:0, CH1:1, CH2:6, CH3:6
DATA | 2026-01-19 00:38:54 | 386308608 | CH0:0, CH1:45, CH2:0, CH3:0
DATA | 2026-01-19 06:01:51 | 405686016 | CH0:0, CH1:8, CH2:0, CH3:0
DATA | 2026-01-20 12:54:55 | 516869376 | CH0:0, CH1:6, CH2:0, CH3:0
DATA | 2026-01-20 18:41:19 | 537653504 | CH0:0, CH1:7, CH2:0, CH3:0
DATA | 2026-01-22 01:14:26 | 647640576 | CH0:0, CH1:7, CH2:0, CH3:3
DATA | 2026-01-25 12:50:54 | 948628992 | CH0:0, CH1:9, CH2:0, CH3:2
DATA | 2026-01-29 15:48:20 | 1304874752 | CH0:0, CH1:23, CH2:3, CH3:4
RSET | 2026-01-30 12:55:41 | 0 | System Boot / Reset Detected
SYNC | 2026-01-30 12:58:24 | 162304 | Time Synchronized (Unix:1769745504)
--------------------------------------------------------------------------------
Analysis Finished.

顕著なAE信号検出はなさそうで、たまに何かを検出してはいますが、ほとんど発生していないようです。1/16がちょっと多い感じがしますが、今のところ顕著な問題は起きていなさそうです。

コンクリート壁穿孔工事関連

熱電対を設置した状況からそれぞれの場所ごとにコンクリート壁と、壁内の土の間に隙間があり、場所によってその隙間が、約5mmから約48mmと大きなばらつきがあるように見えます。

中間まとめ 

 今のところ、新たに見えた事象は、コンクリート裏に隙間があるようにみえるということです。その隙間と、コンクリート奥の温度に関連性があるように見えます。つまり、隙間が大きいほど、外気温が下がっても温度が下がりにくそうということです。

 それとは別に隙間に関係なく、タイミングによってどの面の温度が低くなるのかが変わりそうです。

温度測定が終わる4月頃に、熱電対をとおした塩ビパイプを取り出して、内視鏡カメラで壁の裏側の隙間の状態を調査しようと考えています。

今年はほとんど雨降っておらず、乾ききっている感じなので問題事象は発生しにくそうです。

新たな仮説

これまでの仮説はすべての面が均等にアイスレンズが成長するように考えていましたが、片面だけ発生するケースもありそうな感触です。つまり、東面と南面で交互に発生し隙間が広がったり、逆に押されてほとんどなくなったりすることが繰り返されたのかもしれません。

さらにここまでの仮説で将来発生することが予想されていた西面北寄りでの事象発生ですが、下の写真のように新たに発生していることを確認しました。

crack
ひび割れ

ここまでの仮説を補強する材料と言ってよいでしょう。 

関連記事

hsBoxで、ATOM Cam 2の映像をキャプチャで発生した問題と課題と対処策について

約1か月連続キャプチャできていましたが、キャプチャできなくなる事象が発生したのでその原因調査と対策をしていきます。そして恒久対策に向けた対策案も検討して、以前に公開したツールの今後の強化項目にしていきます。

cam
cam

調査 その1

まず、状況整理ですが、キャプチャは、1回のcron起動で、3つのATOM CAM2を順にキャプチャしてファイル保存するように実装していました。一番最初にキャプチャするカメラ画像は10:00にキャプチャしたものが最後で、そのほかの2つは、14:40が最後でした。つまり、1つ目のキャプチャに失敗しても2つめ以降のキャプチャはできていましたが、その後3つともキャプチャできなくなっています。運用点検のため、hsBoxを再起動したタイミングあたりでキャプチャできなくなっていたようです。
 まずは、切り分けしていくためウォークスルー方式で問題となりそうなところを順にチェックしていきます。まずは、NASのマウント状況を確認しました。マウントはできており問題ありませんでした。
次に、ATOM CAM2のIP探索の確認です。 スマホでATOM CAM2のIPを確認して、そのIPが取れているかを、arpコマンドで確認します。 すると、3台のカメラともにMACが取れていないことが判明した。

暫定対処 その1

それぞれの、IPにpingを打ってみます。 それぞれ、反応がありMACがとれました。これにより、14:40が最後だった2台のカメラのキャプチャが復旧しました。
 残りの1台は、NAS上へのフォルダ作成には成功したものの、画像ファイルがまだ置かれていない状況になっています。

根本対策 その1

 今後の強化策です。 既存実装でもブロードキャストでpingを打つ実装を入れていますが、ブロードキャストではarpに反映されないのが問題のようです。そこで、MACが取れなかったとき、DHCPで割り振られる範囲に対して明示的に個別にpingを打つ実装を追加することにします。

調査 その2

まだ復旧できていない1台分のカメラについて調査を行います。

実装を、最後にキャプチャできたタイミングで何かあったかを確認してみましたが、特に問題はないようです。手動で、FFMPEGコマンドを実行すると、次の結果が返ってきました。

> python3 .\cap_once.py
FFmpeg failed: Command '['ffmpeg', '-rtsp_transport', 'tcp', '-i', 'rtsp://**:***@192.168.*.*/live', '-ss', '00:00:01', '-vframes', '1', '-q:v', '2', '-y', '\\\\192.168.*.*\\***\\2026-01-25\\20260125_124510.jpg']' timed out after 20 seconds

タイムアウトしていますが、pingは通っている。 前のセッションが残っていて接続待ちの状態になっている?のかという説はあるが、 スマホからの確認では動作している。 スマホでの画像表示と、rtspは別動作なので、rtsp側だけの問題(セッション残留?)の可能性がある。

暫定対処 その2

セッション残留の問題だと仮定して、rtspの再起動での復旧を試みる。スマホでの操作で一度「PCで再生」をオフにして再起動してみる。
 この操作を行うとrtsp用のユーザとパスワードが更新された。新たなユーザとパスワードを反映すると、キャプチャに成功し、 自動キャプチャは復旧した。

問題の原因は、残留セッションとみてよいようだ。 これは、ATOM CAM2側で何とかしてほしいが、 録画の都合(解像度の高い録画をしたい)から古いバージョンのファームウェアを使用している。このため最新パッチを適用することができず、ATOM CAM2側での”残留セッション”の改善は望めない。そこで、hsBox側での別の改善策を取ることにする。

その2の問題の 改善策案

”残留セッション”問題の対処方針は、上の”暫定対処”の問題を早期検知し、できるだけ手間をかけずに復旧できるようにするというものである。

 復旧手順を明記した内容での問題検知通知を出し、スマホ操作で「PCで再生」を再起動し、あらたなユーザ名・パスワードをGUI設定画面で更新するというものである。
とりあえず今時点での簡便な復旧策はこの辺でしょう。

他に良い案があれば、コメント投稿をお願いします。


関連記事

https://mic.or.jp/info/2026/01/30/cam-4/