【子育てママ・パパの時間節約 スマートホームダッシュボード #1】Windows PCをサーバーにしてCO2・温湿度を可視化する構成とセットアップ準備
- #SwitchBot
- #Grafana
- #HomeAssistant
- #k3s
- #RancherDesktop
- #スマートホーム
- #子育て
- #Windows
このシリーズについて
子育てママ・パパの時間節約をテーマに、部屋のCO2濃度や温湿度をリアルタイムでグラフ化し、換気のタイミングをアラートで知らせるスマートホームダッシュボードを手持ちの Windows PC で作るシリーズです。
「今換気した方がいい?」と毎回考えなくてよくなる分、抱っこや授乳の合間のちょっとした判断を減らせます。新たにサーバー専用機を買う必要はなく、ゲーミングPCや普段使いのデスクトップがあれば十分です。
使用する機器・ソフトウェア
| 種別 | 内容 |
|---|---|
| センサー | SwitchBot CO2センサー(温湿度も計測可) |
| ハブ | SwitchBot Hub(初代・Hub 2 どちらでも可) |
| サーバー | Windows PC(常時起動、またはゲーミングPC) |
| コンテナ環境 | Rancher Desktop(k3s on WSL2) |
| アプリ | Home Assistant / InfluxDB / Grafana |
シリーズ全体の流れ
| 回 | テーマ |
|---|---|
| #1(本記事) | 全体構成とWindows PCのセットアップ準備 |
| #2 | Rancher Desktop(k3s)インストールとクラスター構築 |
| #3 | Home Assistant + InfluxDB + Grafana のデプロイ |
| #4 | SwitchBot連携とデータパイプライン設定 |
| #5 | Grafanaダッシュボード作成とアラート設定 |
システム構成の全体像
SwitchBot CO2センサー(BLE)
└─ SwitchBot Hub(Wi-Fi経由でクラウドAPI)
└─ Home Assistant(SwitchBot integration)
└─ InfluxDB(時系列データ保存)
└─ Grafana(可視化・アラート)
※ Home Assistant / InfluxDB / Grafana はすべて
Windows PC 上の k3s(Kubernetes)コンテナで動作
なぜ k3s(Kubernetes)を使うのか?
Docker Compose でも同じスタックは動きます。ただ k3s を選ぶメリットは:
- Pod の自動再起動(プロセス落ちても自動復帰)
- Helmfile で構成をコードで管理できる
- 将来的に複数ノードへ拡張しやすい
軽量さが必要なら docker-compose でも問題ありません。このシリーズでは k3s ベースで進めますが、適宜読み替えてください。
事前準備:Windows PC 側の設定
MacやLinuxから SSH でリモート操作するための準備です。PC に直接キーボードを繋いで操作する場合はスキップできます。
1. OpenSSH サーバーの有効化
管理者権限で PowerShell を開く(Win + X → Terminal(管理者))
# インストール状態の確認
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
State: NotPresent の場合はインストールします:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
SSH サービスを起動・自動起動に設定:
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
2. ファイアウォールの設定
SSH(ポート22)と、後でデプロイするサービスのポートを開放します。
# SSH(ポート22)
netsh advfirewall firewall add rule name="Allow SSH" protocol=TCP dir=in localport=22 action=allow
# ICMP(pingを通す)
netsh advfirewall firewall add rule name="Allow ICMPv4" protocol=icmpv4:8,any dir=in action=allow
後で使うポートも先に開けておきます:
# Grafana (30300), InfluxDB (30086), Home Assistant (30880)
netsh advfirewall firewall add rule name="Allow SmartHome Ports" protocol=TCP dir=in localport=30086,30300,30880 action=allow
3. パスワード認証を有効化する
Windows の OpenSSH はデフォルトでパスワード認証が無効になっています。有効化しておきます:
# sshd_config を編集してパスワード認証を有効化
(Get-Content C:\ProgramData\ssh\sshd_config) `
-replace '#PasswordAuthentication yes', 'PasswordAuthentication yes' |
Set-Content C:\ProgramData\ssh\sshd_config
# sshd を再起動して設定を反映
Restart-Service sshd
4. ネットワークプロファイルを「プライベート」に設定する
Windows のファイアウォールはネットワークプロファイル(パブリック/プライベート)によって動作が変わります。自宅の Wi-Fi や有線 LAN は必ず「プライベート」に設定してください。「パブリック」のままだとファイアウォールルールを追加しても SSH が通らないことがあります。
# 現在のプロファイルを確認
Get-NetConnectionProfile
# プライベートに変更(InterfaceIndex は上記コマンドで確認)
Set-NetConnectionProfile -InterfaceIndex <番号> -NetworkCategory Private
または GUI から:設定 → ネットワークとインターネット → Wi-Fi(または イーサネット)→ ネットワークプロファイルの種類 → プライベート
5. 接続確認(Mac / Linux 側から)
# pingで疎通確認
ping -c 3 <Windows PCのIPアドレス>
# ポート22が開いているか確認
nc -zv <Windows PCのIPアドレス> 22
# SSH接続
ssh <Windowsのユーザー名>@<Windows PCのIPアドレス>
Windows のユーザー名・IP アドレスは PC 側で確認できます:
whoami # → DESKTOP-XXXX\username の \ 以降がユーザー名
ipconfig # → IPv4 Address を確認
トラブルシューティング
| 症状 | 原因 | 対処 |
|---|---|---|
| ping は通るが port 22 がタイムアウト | ネットワークプロファイルが「パブリック」 | プロファイルを「プライベート」に変更 |
Permission denied (publickey,password) | パスワード認証が無効 | sshd_config の PasswordAuthentication を有効化して sshd 再起動 |
Connection refused | sshd が起動していない | Start-Service sshd を実行 |
| SSH は通るが毎回パスワードが必要 | 公開鍵が未登録 | Mac の公開鍵を ~/.ssh/authorized_keys に追加(後述) |
公開鍵認証を設定する(推奨)
パスワード入力を省略するには Mac の公開鍵を Windows に登録します:
# Mac 側:公開鍵を Windows にコピー
ssh-copy-id <ユーザー名>@<Windows PCのIPアドレス>
登録後は ssh <ユーザー名>@<IPアドレス> だけで接続できます。
WSL2 の有効化
Rancher Desktop は内部で WSL2(Windows Subsystem for Linux)を使います。事前に有効化しておきます。
管理者権限の PowerShell で:
wsl --install
インストール完了後、PCを再起動してください。
再起動後、WSL2が正しくインストールされたか確認:
wsl --status
# → Default Version: 2 と表示されればOK
次回予告
次回(#2)は Rancher Desktop のインストールと k3s クラスターの起動を行います。
インストール後に kubectl get nodes で1ノードのクラスターが立ち上がることを確認し、Helmfile でスマートホームスタックをデプロイする準備を整えます。
まとめ
| 作業 | 内容 |
|---|---|
| OpenSSH Server | インストール・自動起動設定 |
| ファイアウォール | SSH + サービスポートの開放 |
| WSL2 | 有効化・再起動 |
これで Windows PC をサーバーとして使うための下準備が完了しました。次のステップで Rancher Desktop をセットアップしていきましょう。