2026年11月5日 ・ スマートホーム

お風呂掃除を深夜0時の自動運転にしたら、初日に失敗して翌朝直っていた話

毎日0時、直近18時間に浴槽を洗っていなければ自動で洗う。ドアが開いている日は浴槽洗浄だけにする。

そんなオートメーションを組んで、さあ初回実行という深夜0時。結果は 失敗 でした。

原因はタイムゾーン

時刻の比較で、タイムゾーンなしの日時とありの日時を引いてしまいエラーになっていた、という古典的なバグです。しかも記録用のヘルパーの値が再起動で巻き戻る可能性もあることが分かり、二重判定に作り替えました。

  • 判定は「ヘルパーの記録」と「履歴DBから読む最終洗浄時刻センサー」の両方を見る二重判定にした
  • 時刻の経過判定は epoch 秒同士の比較にして、タイムゾーンの落とし穴を回避

翌朝、成功を確認

修正後の初回自動実行は無事に成功。0:00 に2か所洗浄が始まって約31分で終了していました。ドアが閉まっていたので分岐も正しい動きです。

「寝ている間に家が勝手に掃除されていて、失敗したら朝には原因まで分かっている」くらいの自動化が、個人宅でも普通にできる時代になりました。