PowerSAGMonitor 第1部 概要編 ── 停電・瞬停・サグを記録する装置を Claude と自作した
目次
この記事の内容および実装は Claude Code を使用して開発・記述し、人間が検証・修正しています。文中で 「私」 は人間であり、 「Claude」 は AI が主語であることを表しています。
本 blog には コメント機能があります。GitHub アカウントで投稿できます。
はじめに #
この記事は、私が初めて AI (Claude) と共同で電子回路機器を製作し、運用まで至った記録である。前提として、私は電子回路の知識は少ない。電子キットや人が描いた回路の組み立ては僅かに経験があるが、自分で設計はできない。一方、私は 2025 年に第二種電気工事士の資格を半ば趣味で取得したので、若干の交流電源の知識はあり、自宅の工事はできる。
下記の経緯があり、せっかくなら AI が設計した機器を製作してみようと思い立った。作って終わりな玩具的な作品ではなく、実用的な機器として使っていけそうという点もモチベーションになった。
経緯 #
我が家の Proxmox VE サーバ ( 自宅サーバに Proxmox VE を導入した記事) が、少なくとも 2026 年 2 月頃から、不定期に強制再起動を起こすようになっていたらしい。4 月頃に夜間にリブート音が聞こえて異変に気づき、Claude と原因調査を開始した。

自宅の Proxmox VE サーバ。この機体の不定期な再起動から始まった
下記の順で想定と対策を進めてきた。
- (1) AC アダプターの劣化? → AC アダプター買い替え
- (2) 発熱が原因? → 温度センサーを導入して継続監視
- (3) 温度センサー用の特殊ドライバが逆に悪いのでは? → アンインストール
- (4) 時々見かける瞬停が原因? → UPS を購入
- (5) Linux カーネルの電源制御? → Intel CPU の C-State (省電力状態) を C1E (浅い省電力) に固定
最終的に (5) が決め手となり、再起動は収まった。8 月頭にはこれが主原因と結論づけている。
ただ、7 月以降家の照明が一瞬暗くなるのを何度か見ており、LED 照明に電源が入った瞬間に鳴る「ピッ」という短い音を聞いて、あとから「いまのは瞬停 (ごく短い停電) だったのでは」と思い当たったこともある。当時 (4) についても調査していたので、Claude は「サグ」(電圧が一時的に下がる現象。「瞬低」とも呼ぶ) がサーバ再起動原因の可能性もあると指摘した。
対策として、まずはサーバだけを守るため UPS (無停電電源装置) を購入した。その後も、部屋の電気が1 秒ほど暗くなるのが数日に 1 回は発生していた。

購入した UPS。液晶には入力電圧が出る
ところが、私が買った機種 (APC RSシリーズ) は Smart-UPS のような高性能型ではないので、詳細ログは出ない。比較的長めの瞬停〜停電なら、バッテリーに切り替えてログにも残るが、1 秒以下の浅いサグは、AVR (自動電圧調整機能) が補正してしまいログが出ない。深いサグでバッテリーに切り替わったときも、ログに残るのは「切り替えた」ことだけで、電圧がどこまで下がったかや継続時間は不明。UPS から読める入力電圧も 1 分ごとなので、数十 ms の現象はその間に埋もれてしまう。
サーバの監視の仕組みを整える中で、周囲と CPU の温度を比べて監視するために Home Assistant (オープンソースのホームオートメーションアプリ) も構築していた。せっかく Home Assistant があるなら、電源も監視したい。そこで電力センサーの購入を検討したが、サグを安価に検出できる製品は見つからなかった。市販の電力センサーは、数秒〜数十秒ごとの平均値を送るものが多い。落雷などで起きるサグはふつう 0.1 秒程度で終わるので、平均値に埋もれて見えない。
Claude に相談すると、「電力品質アナライザをレンタルする」「センサー自体を自作する」などの案が出たが、電力品質アナライザは高価な業務用の計測器しかなく、家庭向けの選択肢はない。せっかくなので、Claude と共同で電子回路の製作にチャレンジしてみることにした。
こうしてできたのが、この記事で紹介する PowerSAGMonitor である。構想から完成まで約 2 ヶ月。
この記事は3部作の第1部 (概要編) で、装置で何がわかるか・どういう構成か・Home Assistant でどう見えるかを紹介する。

分電盤の横に取り付けた PowerSAGMonitor
家庭の電気の引き込み方 #
装置の説明の前に、家庭に電気がどう引き込まれているかを整理しておく。この記事の L1・L2 という呼び方や、100V と 200V の話は、これが前提になる。
電気は、電柱の変圧器 (電圧を変える機器) から家に引き込まれる。日本の家庭の引き込み方には、次の 2 つの方式がある。
| 方式 | 線 | 取り出せる電圧 |
|---|---|---|
| 単相2線式 | L (電圧線) と N (中性線) の 2 本 | 100V だけ |
| 単相3線式 | L1・N・L2 の 3 本 | L1–N と L2–N で 100V、L1–L2 で 200V |
単相3線式では、変圧器のコイルの真ん中から N を取り出し、両端を L1・L2 にする。L1 と L2 はそれぞれ N に対して 100V で、向きが逆なので、L1–L2 の間では足し合わさって 200V になる。いまの家庭は、ほとんどがこの単相3線式で、エアコンや IH 調理器などの 200V の機器も使える。
| 地域 | 家庭の電圧 | 周波数 | 引き込み方 |
|---|---|---|---|
| 日本 | 100V / 200V | 50Hz (東日本)・60Hz (西日本) | 単相3線式 |
| 北米 (米国・カナダ) | 120V / 240V | 60Hz | 単相3線式 |
| 欧州 | 230V | 50Hz | 単相2線式。三相交流 (400V) を引き込む家も多い |
| 中国 | 220V | 50Hz | 単相2線式、または三相交流 |
引き込み方は北米と同じで、電圧の 100V は世界でもほぼ日本だけ。日本の中で周波数が東西で分かれているのは、明治時代に、東京がドイツ製 (50Hz)、大阪が米国製 (60Hz) の発電機を入れたことに始まる (パナソニック)。境目は、おおむね静岡県の富士川から新潟県の糸魚川のあたりである (日立エナジー)。各国の電圧・周波数・引き込み方は Wikipedia による。
PowerSAGMonitor でわかること #
PowerSAGMonitor は、家の分電盤 (家に入ってきた電気を各部屋の回路に分ける箱) の横に取り付けて、家全体の電気を常に見張る計測器である。前節の単相3線式の家を対象にしていて、L1・L2 の電圧と電流を別々に測る。わかることは大きく分けて次の 2 つである。
- 電圧の異常: 停電・瞬停・サグ・スウェル (電圧が一時的に上がる現象) が、いつ始まり、どれだけ続き、電圧がどこまで下がった (上がった) か
- ふだんの電気の使い方: L1・L2 それぞれの電圧・電流・電力・電力量 (電力を時間で積み上げたもの。単位は kWh で、電気料金のもとになる値) を 1 分ごとに
電圧の異常の呼び分け #
停電と瞬停には、日本の規格としてはっきりした定義が無い。この記事では、電力の品質の分類でよく使われる米国の規格 IEEE 1159 (IEEE は米国の電気電子学会) にならって、次のように区別する (IEEE の用語の解説)。
| この記事での呼び方 | 何が起きているか | 装置の判定 | 長さ |
|---|---|---|---|
| 停電 | 電気が止まる | 電圧が平常時の 10% 未満 | 1 分以上 |
| 瞬停 | 電気が止まるが、すぐ戻る | 同上 | 1 分未満 |
| サグ | 電気は来ているが、電圧が一時的に下がる | 平常時の 90% を下回ったら開始、92% を超えたら終了 | 問わない |
| スウェル | 電圧が一時的に上がる | 平常時の 110% を超えたら開始、108% を下回ったら終了 | 問わない |
装置そのものは停電と瞬停を区別せず、どちらも「電気が止まった」として長さを記録する。1 分で呼び分けるのは、記録を見る人の側である。開始と終了のしきい値を少しずらしてあるのは、境目の近くで電圧が揺れたときに、開始と終了を何度も繰り返さないようにするため。低い電圧の配電線では、サグの開始を 90%、ずらす幅を 2% にするのが一般的で (Schneider Electric の技術資料)、この装置の値も同じである。
なお、「経緯」で触れた瞬低 (瞬時電圧低下) と、ここでいうサグは、実質的には同じ現象を指す。瞬低は電力会社の用語で、落雷などの送電線の事故が原因のものをいう。この装置は電圧を見るだけで原因までは区別できないので、原因を問わない「サグ」の方を使う。名前が似ている瞬停 (電気が止まる) と瞬低 (電気は止まらず、電圧が下がる) は、別の現象である。
10ms ごとに判定する意味 #
瞬低は、ふつう 0.1 秒程度で終わる。東京電力パワーグリッドの資料によると、いちばん高い電圧の 500kV の送電線で事故が起きた場合、瞬低は約 60ms しか続かない。
PowerSAGMonitor は、交流の波の半分 (半サイクル。50Hz なら 10ms) ごとに電圧の実効値 (交流の大きさを、同じ働きをする直流の値に直したもの。家庭の「100V」も実効値) を求めて、サグかどうかを判定する。60ms のサグなら、6 回ぶんの判定にまたがって捉えられる。
判定の間隔より長く続く下がりなら、取りこぼさずに捉えられる。逆に、1 秒ごとの平均で見ると、60ms の下がりは 1 秒のうちのごく一部なので、平均の値はほとんど変わらない。
実は UPS のログにも、「2 秒間バッテリーに切り替えた」という記録が残ったことがある。ただし、この 2 秒は電圧の乱れの長さではない。UPS が入力の安定を待ってから商用電源に戻るまでの待ち時間である。切り替えた理由も、電圧がしきい値を割ったからではなく、電圧の変化が急だったからと記録されていた。サーバの再起動について相談していた Claude は、実際の乱れを数サイクル (数十 ms) ほどと予想した。これは測った値ではない。前述のように、UPS の下流からは、実際に1次側 (入力側) の電圧がどこまで、どれだけの時間下がったのかはわからない。
数十 ms の出来事を記録するには、やはり 10ms 刻みで判定する必要がある。
全体構成 #
PowerSAGMonitor から Home Assistant までの全体の構成は、次の図のとおりである。

ボックスの中身。手前は蓋と電流センサー (CT)
PowerSAGMonitor は、単相3線式の L1 と L2 の電圧・電流を別々に測る。
| 構成要素 | 役割 |
|---|---|
| 分電盤 | 測る対象。電圧は、主幹ブレーカーの2次側 (出口側) から直接配線すると危険なので、PowerSAGMonitor 専用に増設した分岐ブレーカーから取る。電流は、主幹ブレーカーの線に、電流センサー (CT) を挟んで測る |
| PowerSAGMonitor | 分電盤の横に置く樹脂ケース (以下、ボックス)。センサーの信号をマイコン (ここでは ESP32-C6) が読み取り、測る・判定する・記録する・送るを、ボックスの中で完結させる |
| Zigbee | マイコンから家のネットワークへの無線。家電やセンサー向けの、低消費電力・メッシュ型無線規格 |
| Zigbee2MQTT | Zigbee の機器を Home Assistant に中継するソフトウェア。Zigbee の親機 (コーディネータ) で受けたデータを、電圧・電力などの名前の付いた値に直して渡す。装置のファームウェアの更新でも使う |
| Home Assistant | 値を貯める・グラフにする。通知の自動化も作れる。電力量は、Home Assistant の「エネルギー」画面でそのまま使える |
CT (電流センサー) は、電線を挟んで、流れる電流に比例した小さな電流を取り出すセンサーである。開いて挟むクランプ式なので、既存の配線を外さずに取り付けられる。
ボックスに入る 100V の電線 (L1・N・L2 の 3 心) は、電圧の測定とボックス自体の電源を兼ねる。
判定をマイコンで行う理由 #
10ms ごとの判定結果は、1 秒に 100 回ぶんになる。これをすべて無線で送るのは現実的ではない。そこで、マイコンが自分で「いつ・何が・どれだけ続いたか」を 1 件のイベントにまとめ、その結果だけを送る。ふだんの電圧・電流・電力などは、1 分ごとのまとめ (平均・最小・最大) を送る。
Zigbee を選んだ理由 #
送信するのは 1 分に 1 回のまとめと、稀に発生するイベントだけなので、小さなデータで足りる。Zigbee は Wi-Fi より消費電力が小さい。停電すると、ボックスはコンデンサに蓄えた電気だけで動くので、消費電力が小さいほど長く動ける。ボックスは停電後も約 1 分動き続け、その間にマイコンが停電の始まった時刻を記録に残す。
Home Assistant でこう見える #
ボックスの値は、HA (Home Assistant) の画面ではこう見える。詳しい使い方は第3部で紹介する。

HA のダッシュボード。いまの値と、直近 24 時間の電圧・電流
停電やサグが起きると、ボックスはそれを 1 件のイベントにまとめて送る。次は、試験でブレーカーを切ったときの記録例である。

イベントの履歴 (10 月 19〜21 日)。通し番号 (Event seq) が増えるたびに 1 件。種類の interruption は停電、下のグラフは停電の長さ
主要スペック #
測る対象 #
| 測る対象 | 仕様 |
|---|---|
| 電圧 | L1・L2 の 2 ch。実用上は 205V まで測れる (中性線が切れて 100V の回路に 200V がかかる異常も測れる) |
| 電流 | L1・L2 の 2 ch。定常で 80A まで。確かさは ±5% が目安で、1A 前後より小さい電流は読みが粗い |
| 電力 | 有効電力 (一般に「消費電力」と呼んでいるもの) と無効電力 (電源と機器の間を行き来するだけで、仕事には使われない電力) を L1・L2 別に計算し、1 分平均で送る |
| 電力量 | L1・L2 別の積算値 (0.1Wh 単位)。電力会社のスマートメーターの 1 日の値と ±1% 以内で一致した (2026 年 10 月 22〜31 日の実測。+0.2〜−0.9%) |
| 周波数 | 1 分平均 (0.01Hz 単位) |
| 対応する地域 | 50Hz の地域 (東日本) で使う前提で製作。半サイクルの区切りは 60Hz にも追従する作りだが、電力の計算の補正などに 50Hz を前提にした値が残っており、60Hz では試していない |
| 判定の間隔 | 半サイクル (50Hz で 10ms) ごとに電圧の実効値を求める |
| 判定の基準 | 平常時の電圧は固定値ではなく、直近約 1 分の平均を L1・L2 別に追い続ける。サグ・スウェル・停電のしきい値は、前の「電圧の異常の呼び分け」の表のとおり |
| 時刻 | ボックスに時計は無く、Zigbee のコーディネータから時刻を受け取る (1 時間ごとに合わせ直す) |
L1 と L2 の異常は、まとめて 1 件のイベントにする。どちらかがしきい値を外れたら開始、両方が戻ったら終了と判定する。
電源と停電のときの動き #
| 項目 | 仕様 |
|---|---|
| 電源 | 測定用に引き込んだ AC100V から、ボックスの中の電源モジュールで 5V を作る |
| 停電に備える蓄え | EDLC (電気二重層コンデンサ。普通のコンデンサより桁違いに多くの電気を蓄えられる) 5F |
| 停電中の稼働時間 | 停電後 約 1 分 |
| 停電の記録 | 始まりの時刻をフラッシュメモリに書く。長さは、復電後の起動で確定して送る |
| 停電中の送信 | 1 分ごとのまとめは送らない。送らなかった数だけ記録に残す |
| 復電後 | 自動で起動して Zigbee のネットワークに戻り、たまっていたイベントを古い順に送る |
停電中に送らないのは、家の中の Zigbee の中継器も止まっていて、送っても届かない可能性が高いためである。記録をボックスの中に残しておけば、取りこぼさずに済む。
制作の流れと役割分担 #
構想から完成までは約 2 ヶ月かかった。
| 時期 (2026 年) | 内容 |
|---|---|
| 8 月 26 日 | 構想開始 |
| 8 月 29 日〜9 月 22 日 | 設計・部品の購入・図面 |
| 9 月 23 日〜 | 組み立て (はんだ付け・ケースの加工) |
| 10 月 17 日 | 分電盤に取り付け、運用開始 |
| 10 月 25 日 | ファームウェア 1.0.0 (チューニングを終えた最初の正式版) |
- 私 (人間) の担当: アイディア出し・方針の決定・部品の購入と、はんだ付け・加工・分電盤の工事・測定といった物理的な作業
- Claude (AI) の担当: 回路の設計・図面・組み立ての手順書・ファームウェアといった詳細なハードウェアとソフトウェアの設計
私と Claude のやり取りは、Git のリポジトリを正本にした。設計書は Markdown で、図面は Claude が書いた生成スクリプトで管理している。
進め方の詳細は、第2部 (制作編) で紹介する。
注意 #
ボックスの中には AC100V が来る部分がある。同様の機器を製作する場合は、感電と火災に十分に注意してほしい。
次回予告 #
第2部 (制作編) では、設計から分電盤への設置までを紹介する。Claude が生成した KiCad の図面、ユニバーサル基板の実体配線図、300 手を超える組み立て工程表、そして制作中に起きたハードウェアのトラブルを取り上げる予定である。
参考 #
- パナソニック「単相3線式の意味・解説・呼称 (TERASU 辞書)」
- Wikipedia「Mains electricity by country」 (英語)
- パナソニック「周波数 (電気設備の基礎知識)」
- 日立エナジー「地域間 HVDC 系統連系」
- Consulting-Specifying Engineer「Learning the Lingo: Standard IEEE Terminology」 (英語)
- Schneider Electric「Supply voltage dips (PM8000)」 (英語)
- 東京電力パワーグリッド 群馬給電所「ニュースレター 第4号 瞬時電圧低下のお話」 (PDF)