KOS.LOG
tech

【子育てママ・パパの時間節約 スマートホームダッシュボード #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のセットアップ準備
#2Rancher Desktop(k3s)インストールとクラスター構築
#3Home Assistant + InfluxDB + Grafana のデプロイ
#4SwitchBot連携とデータパイプライン設定
#5Grafanaダッシュボード作成とアラート設定

システム構成の全体像

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 refusedsshd が起動していない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 をセットアップしていきましょう。