把 OpenClaw 跑在冰箱旁邊:樹莓派家庭儀表板的踩坑紀錄
上個月我在 homelab 多加了一個實驗性的節點,不是為了工作,是為了解決家裡的一個問題。
我跟我老婆一直有個毛病:兩個人各自答應了事情,然後忘了告訴對方。小孩的才藝班要請假、週末要去岳父家吃飯,這些都是典型的「等等,我不知道你有這個安排」場景。Google Calendar 分享過,沒人在看。家庭群組 Line 也有,但訊息一多就淹掉了。
想到一個解法:樹莓派 + 螢幕,放在廚房,跑 OpenClaw。
硬體我用的是 Pi 4 4GB,接了一個 7 吋觸控螢幕,整套裝置用 3M 膠條貼在冰箱側面。軟體面,OpenClaw gateway 跑在 Pi 上,agent 負責接收訊息然後更新顯示內容。
整個流程是這樣:任何一方傳訊息給 agent,比如「週六下午 3 點去媽媽家」,agent 寫進 Google Calendar,然後觸發螢幕那邊的 canvas 重新 render 行程卡片。螢幕一直開著,常駐顯示本週重點和接下來三天的行程。
踩坑的地方比我預期的多。
第一個坑是 systemd service 設定。一開始沒有加 Restart=on-failure,Pi 在某次 OOM kill 之後 gateway 就沒再起來,我以為還在跑,結果我老婆傳了三則訊息全部沒反應。後來加上這行加上 RestartSec=10,穩多了。
第二個坑是螢幕的常駐顯示。Pi 預設會進螢幕保護或關背光,要在 /etc/lightdm/lightdm.conf 和 xset 都處理,才能讓螢幕一直亮著。這個不難,但文件分散,要找一下。
第三個坑是 canvas 的 render 頻率。我一開始設定每次有新事件就立刻重 render,但 canvas 重新整理的時候螢幕會閃一下,站在廚房看很明顯。後來改成 30 秒 polling 一次,閃爍問題就消失了,反正行程又不是毫秒級的資料。
安全性這塊我多想了一下,畢竟這個 agent 能寫 Calendar。我限制了它只能接受家裡兩隻手機的帳號傳來的指令,其他來源一律拒絕,然後 gateway 的 port 沒有對外開,只走家裡內網。不是說有多高風險,但習慣就是習慣。
跑了三週,基本穩定。記憶體常駐在 900MB 左右,Pi 4 足夠。偶爾我老婆會說「啊,原來你今晚要開會」,然後晚餐就等我回來再煮。
這個案例讓我意識到,OpenClaw 不一定要跑在 server 上才有意義。Pi 這種低功耗、安靜、隨時在線的裝置,拿來跑輕量 agent 其實很適合,尤其是「感應環境 → 更新顯示」這種模式,gateway 長跑需求不高,但要夠穩。
如果有人也在玩家用 infra,歡迎交流。尤其是螢幕那塊的管理,我感覺還可以做得更乾淨。
作者:Bo-Han Chen