litas.AI BUILDER & TECH EXPLORER

家庭自動化 / 跨裝置整合 / LITAS

FamilyBridge 餵奶與尿布提醒

餵奶、換尿布,不必再靠一個人記住。

孩子抱在手上,怎麼記下餵奶與換尿布的時間?我和 AI 把 HomePod 語音、GO/NOW 按鈕、大字看板與 Google Nest 提醒串起來,記下從家中需求到區網、時間與播報的設計取捨。

個人應用開發作者:Litas完整實作紀錄
家庭自動化語音與按鈕區網整合提醒可靠性
Litas 家中的 iPhone 餵奶換尿布看板、Google Nest Mini 與 HomePod mini 實拍組圖
Litas 實拍組圖 · 家中的看板、Nest 與 HomePod

THE CASE IN A MINUTE

先看重點,再看細節。

01 要解決的問題
抱小孩、餵奶時沒有手記錄;事情做完了,接手的人卻未必知道上一次是幾點。
02 我的實作方式
用 HomePod 接收語音,按鈕支援記錄現在與補登時間;由家中電腦保存紀錄、更新 iPhone 看板,再讓 Nest 播報提醒。
03 做到的成果
把時間紀錄放進家中的大字看板,保留語音與按鈕兩種入口,串起跨品牌音箱的提醒流程。

成果範圍以家中區網與既有設備為前提的個人實作。本文記錄設計與取捨;提醒時間由家庭設定,不提供照護或醫療判斷。

WORKFLOW AT A GLANCE

  1. 01語音/按鈕
  2. 02保存事件時間
  3. 03更新共用看板
  4. 04Nest 提醒

Litas 自行開發的家庭自動化案例|實拍畫面經隱私處理|無贊助、無聯盟連結|記錄與提醒不取代照顧者判斷

完整故事餵奶、換尿布,不必再靠一個人記住:我用 AI 串起 HomePod、Google Nest 與家中看板

這個專案最後最像產品的地方,是一支立在杯架上的 iPhone。

旁邊放著杯子,前面是一顆 Google Nest Mini。手機畫面沒有華麗動畫,也沒有要人先研究的選單,只有很大的時間:下次什麼時候餵奶、什麼時候換尿布。下面再放上一次的紀錄,以及兩顆按鈕。

我喜歡這個畫面,因為它已經走出電腦,放進家裡原本就有的位置。

家中的實際擺放情境。影片已遮蔽區網位址、移除原音;它呈現的是看板與設備的位置。

孩子出生後,我經常雙手都在抱小孩或餵奶。這也是我會研究 Even G2 語音與 AI 互動的原因:有事情想做,卻不一定有手可以操作。照顧孩子時,記一個時間也有同樣的問題。當下沒有記,稍後就要回想;自己記得,接手的人卻未必知道。

我想要的很具體:能說一句話就留下紀錄,方便時也能按一下;下次需要注意的時間,放在大家看得到的地方,到時候再透過音箱提醒。

這就是 FamilyBridge 的起點。Siri、Homebridge 和 Google Cast 都是現成工具,我和 AI 做的,是把中間的紀錄、看板、按鈕與提醒流程接起來。這篇先談餵奶與換尿布這一段,後來延伸的擠奶與其他紀錄,則沿用同樣的設計思路。

先決定要回答什麼,才決定要放多少功能

「剛剛幾點餵的?」「尿布上一次什麼時候換?」

這類問題的答案很短,卻散在不同人的記憶裡。個人的鬧鐘可以提醒本人,卻不會自然變成一份大家都看得懂的交接資訊。

我把看板需要回答的問題縮成兩個:上次是什麼時候,下次預計什麼時候。

上次時間讓人知道這個提醒是從哪一筆紀錄算出來的,下次時間則支援眼前的安排。兩者要一起存在,否則只看見一個倒數,很難判斷系統到底有沒有收到剛才的操作。

早期的設計討論,其實列過更多資訊:經過多久、提醒狀態、連線狀態,以及各種顏色提示。後來收斂成照片裡的兩張卡片,把下次時間做得很大,上次紀錄留在下面。技術上可以顯示的東西很多,但我不希望家人每看一眼,都還要先解讀一個監控畫面。

這裡的時間是依家庭設定計算的提醒,不是系統對孩子狀況的判斷。餵奶與換尿布仍應看實際需要,不能因為畫面還沒到點就延後處理;本文也不把某一組間隔當成所有家庭的照護標準。

為什麼同時用 HomePod 和 Google Nest?

看起來都是智慧音箱,放進這個流程裡,工作卻不相同。

HomePod Mini 是語音入口。 人可以透過 Siri 發出指令,Apple 家庭那一側再經由 Homebridge 接到我自己的服務。Apple 的 HomePod 說明介紹了用 Siri 控制家庭配件的方式;Homebridge則提供把第三方功能接入 HomeKit 的橋接機制。

Google Nest Mini 是提醒出口。 到了需要提醒的時間,程式準備好要說的內容與音訊,再透過 Google Cast 交給 Nest 播放。Google Cast 的架構區分發出控制的 Sender 和處理媒體的 Receiver。這裡用的是媒體播放路線,沒有讓程式假裝有人在旁邊喊「Hey Google」。

中間還需要一個地方,統一回答「剛剛記下了什麼」。我把這份工作放在家中的 Windows 電腦,由 FamilyBridge 保存狀態、提供看板資料,並安排提醒。

HomePod/Siri → Apple 家庭 → Homebridge ─┐
                                        ├→ FamilyBridge 保存紀錄
iPhone 看板上的 GO/NOW ────────────────┘      ├→ 更新共用看板
                                              └→ 到時產生語音 → Cast → Nest

這樣分工之後,家裡不必為了這個小應用全部換成同一個品牌。更重要的是,不管從語音還是按鈕進來,都回到同一份紀錄,不會因為換了一個入口,就出現兩種「上次餵奶時間」。

這是我自己的組合,不代表每個人都需要買兩顆音箱。值得借用的是入口、紀錄和提醒的分工,而不是完整複製我的購物清單。

HomePod mini 作為語音入口。片段已裁切私人背景並移除原音;亮燈本身不代表指令已成功寫入。

語音入口的第一個坑,竟然是指令怎麼取名

一開始很容易覺得,既然可以用 Siri,口令就取成平常會說的話就好了。

實際上,太像系統既有功能的名稱,有時反而不好用。開發紀錄裡就遇到過口令被導向提醒事項或其他原生功能的問題,因此曾把捷徑名稱改成辨識度比較高的「喝奶打卡」。Homebridge 的說明也提醒,Siri 可能優先採用自己的預設語意,而不是同名的家庭配件。

我學到的第一個細節是:語音操作也有介面設計,只是那個介面沒有畫在螢幕上。名稱要說得順,也要盡量減少歧義。

這個專案走過兩種入口。比較直接的一種是 iPhone 捷徑呼叫家中的服務,再取得回覆文字;另一種則透過 Homebridge,把「開始餵奶」「結束餵奶」「換尿布」包成 Apple 家庭裡的動作。

後者用的是會自動復位的開關。打開一次,就是送出一次動作,接著回到關閉。它不是用「開著」表示一直在餵奶;持續時間與紀錄,另外由後端處理。把這兩件事分開,下一次才能用相同的口令再操作。

但 Siri 有反應,還不代表每一層都完成了。我們也遇過一個人聽到「好的」、另一個人只聽到提示音的情況。這時要回去查紀錄有沒有保存,而不是只依那聲回應猜測成敗。

目前這條 Homebridge 開關實作會檢查 HTTP 呼叫結果,卻不會把服務回傳的每一句文字重新交給 Siri 朗讀。因此,確認音和自訂口頭回覆不能當成同一項功能看待。

那兩顆 GO、NOW,處理的是生活裡不同的時間

NOW:現在做了,就現在記

如果剛完成一次操作,按 NOW 就用當下時間送出紀錄,不必另外選小時、分鐘。

這是最短的路徑。語音不方便時,手指仍然可以完成同一件事。我沒有把語音當成按鈕的升級版,然後把按鈕拿掉;孩子在旁邊、環境吵,或者自己只想安靜操作時,按鈕就有它的位置。

GO:剛才做了,現在才有空補記

另一種情況是事情早就發生,只是現在才騰出手。

這時可以調整「上次時間」,再按 GO 送出選定的時間。如果全部都記成按鈕按下去的那一刻,下一次提醒也會跟著往後偏移。

所以兩顆按鈕真正區分的是「直接記現在」和「送出我選好的時間」,不是開始與停止。這也是只看兩個英文縮寫容易誤會的地方。如果之後整理成給其他家庭使用的版本,我會優先把文案改得更直白,例如「記錄現在」和「儲存時間」。

存下來的應該是事件時間,不只是送出時間

按鈕背後還有跨午夜與時區的問題。半夜補登前一晚的紀錄,如果只有時分、沒有日期脈絡,系統就可能把昨天晚上理解成今天晚上。

目前這版會處理選定時分與前一天的關係,畫面則明確用台灣時間呈現。不過,這種簡化輸入仍有取捨:它適合補最近一次紀錄,並不是完整的歷史編輯器;若要回補好幾天前的資料,就需要讓日期也能明確選擇。

我認為這比按鈕長得多漂亮還重要。好按只是第一步,按完之後留下的時間要符合人原本想記的事情。

把 iPhone 放在杯架上,重新決定「一眼看懂」

手機握在手裡時,看小字不一定覺得困難。把它立在家中,隔一段距離看,要求就完全不同了。

這次留下的照片與短片,是當時兩列大字看板的樣子:餵奶和尿布各一張卡片,下次時間佔掉大部分空間,上次紀錄和操作放在下方。直式可以上下閱讀,不用在幾個分頁之間來回切換。

這個比例不是為了看起來像一個專業軟體,而是因為看板最重要的資訊只有那幾個數字。照片裡的霧藍底、白卡片與深色時間,也把不同資訊的層級分開了。

最初想過把它做成鎖定畫面上的即時資訊,也比較過原生 iOS 介面。最後先用家中區網上的網頁,讓 iPhone 開啟就能顯示。這條路比較容易修改字級、欄位和排列,也不必先把整個手機 App 開發流程走完。

代價是,這是一張需要開著的網頁。我不會把它描述成鎖定後仍持續更新的系統小工具。離開畫面、手機休眠、再回來,與一直停留在前景,是不同的使用情況。

後來也真的遇到過:語音操作完成了,看板卻要手動重整才看到變化。現在程式已有事件通知與定期重新讀取,但這不等於所有背景恢復情境都已經處理得完美。那次經驗讓我更重視「這是剛更新的資料,還是上一次留下的畫面」。

家人需要的是能放心參考的資訊。數字再大,如果停在舊狀態,仍然會讓人判斷錯誤。

區網不是背景設定,而是整個應用的一部分

「電腦上能開,手機卻連不到」「有找到音箱,卻沒有聲音」,看起來很像同一種網路問題,實際上可能卡在不同地方。

這套系統有幾條各自要通的路:iPhone 要拿得到看板,Homebridge 要呼叫得到 FamilyBridge,Nest 則要取得要播放的音訊。只確認 Windows 自己能打開網頁,還不夠。

我的開發過程也因此碰到 Windows 防火牆、服務綁定的介面、裝置探索與音訊位址。尤其 Cast 不只需要找到喇叭;發出的媒體位址,也要是那顆喇叭連得到的地方。

這裡最容易踩的觀念,是把「在同一個家裡」當成「彼此一定連得通」。訪客網路或裝置隔離都可能把設備分開。Google 的 Cast 裝置探索疑難排解也列出同一網路、AP 隔離與裝置探索廣播等檢查方向。

程式裡後來保留了指定 Nest 主機位址的做法,作為自動探索不穩時的補充。但固定住位址不會自動解決所有事,媒體取用、防火牆和電腦本身的服務,仍然要各自正常。

我選擇讓這張照護看板留在家中的網路,沒有為了方便開啟就把控制介面掛到公開網站。這也代表它是以受信任的家用區網為前提的個人實作;如果要交給其他家庭,甚至從外網使用,存取驗證與安全設計都需要重新檢查,不能直接照搬。

音箱沒有出聲時,AI 說「成功」沒有用

這個專案最值得留下的一段修正,是重新定義提醒到底送到了哪裡。

原本看到播送程式正常結束,很容易認為音箱已經播報。但真正的路徑還包含產生音訊、讓音箱取得檔案,以及實際播放。前面完成,不會自動替後面保證。

後來我把「這一次提醒」和「這一份音訊」對應起來。程式必須等到相符的媒體被取用,才記下這個傳遞確認;不相干的音訊不能替另一則提醒作證,等不到也要留下失敗結果。

這仍然不是人在現場的耳朵。音訊被取用,不能保證音量合適、整段播完,或家人真的有聽見。它的價值,是讓除錯多了一個可追查的位置。

我現在會把問題拆開問:

  1. 這次餵奶或換尿布,有沒有記錄下來?
  2. 提醒有沒有依這筆紀錄安排?
  3. Nest 有沒有取得這一次的音訊?
  4. 現場實際有沒有聽到?

這樣才知道下一步要查哪裡,而不是因為音箱沒說話,就把語音、網路和排程全部改一遍。

這個習慣和我做 HyperFrames 影片時檢查音畫時間軸很像:AI 可以協助產生程式,也能協助找問題,但最後要對照的是實際產物與現場行為,不是它對自己工作的描述。

從第一次播出,到隔天還能用

示範成功一次,和放在家裡持續使用,中間還隔著電腦休眠、程式結束、網路中斷,以及手機畫面沒更新。

開發紀錄裡有一段很典型:表面上是 HomePod 的指令失敗,往下查卻是 Windows 上的 FamilyBridge 服務已經不在。Siri 仍然可以聽見人說話,後面卻沒有服務接手。

後來處理的方向,包含讓服務分離啟動、留下啟停與錯誤資訊,以及檢查服務是否健康。這些都沒有漂亮的畫面,但如果每隔一段時間就需要我回電腦重開,家人再喜歡那張看板,也很難真正依賴它。

提醒本身也不能只靠一個存在記憶體裡的倒數。現在的設計會依保存的狀態重新核對;重啟後,可以知道哪些事情已經提醒、哪些尚未到時間,以及哪些早就過期,不應該突然補播。

安靜時段也需要分開處理:不播音,不代表不記錄。反過來,已經失去時效的提醒,也沒有必要在系統恢復後把全家叫來聽一次。

我沒有把「失敗就一直重送」當成可靠性的解法。尤其語音入口的一次動作可能已經寫入,只是回覆沒有順利送回;盲目重試,反而可能創造第二筆紀錄。比起讓程式看起來一直很努力,先辨認是哪一段失敗更有幫助。

AI 幫忙做應用,不等於讓 AI 決定何時照顧孩子

這篇放在 AI 實作裡,我覺得有必要把 AI 的角色說清楚。

我和 AI 一起討論需求、比較入口、整理版面,讓生活問題變成可以開發與修正的程式。但運作時,餵奶紀錄、時間計算與提醒安排,應該依照明確的事件和規則處理,不需要每次重新問一個語言模型「你覺得現在該不該提醒」。

在這類小應用裡,AI 的價值是讓我更有能力把需求做出來;家人使用時,最好不必一直感覺到背後有 AI。

隱私也是同樣的道理。FamilyBridge 的主要紀錄與看板放在家裡,卻不代表整條語音路線完全離線。現有播報使用 edge-tts,它呼叫的是 Microsoft 的線上文字轉語音服務。送去產生語音的提醒文字,本身也可能含有生活資訊,不能因為沒有上傳整份紀錄,就說完全沒有資料離開區網。

因此,公開分享的是方法與必要畫面,不包含家人的完整紀錄、私密控制連結或帳號資訊。若想把播報也移到本機,就要另外評估本地 TTS 的聲音、速度與維護成本;那是另一個選擇,不能當作這版已經具備的能力。

專案也走過把紀錄寫往 Google Sheets 的延伸需求。我的看法是,這類雲端整理可以加,但不應拖住最基本的本機記錄。同步失敗先保留待送資料,與雲端表格已成功更新,是兩個不同的結果。

這個應用留下來的成果

最後做出來的,是一張已經放進家中的大字看板,以及把語音、按鈕、事件與音箱串起來的程式。

它讓「記一下時間」有了不只一條入口,也讓資訊不必永遠留在負責紀錄的那個人身上。手機可以被拿來操作,也可以固定放著,變成共同空間裡大家都能看的提示。

我還不能把它說成任何家庭拿回去都能直接使用的完整產品。裝置配對、家庭網路、電腦常駐和操作回饋,仍有各自的條件。但這不會抹掉它的價值:我已經把一個原本只能靠記憶與口頭交接的小問題,做成了看得見、能操作,也能繼續改善的東西。

如果要分享這個案例,我最希望別人帶走的也不是某一個指令,而是幾個設計選擇:讓人能用語音,也能按按鈕;把補登與記錄現在分開;把最重要的資訊放大;遇到失敗時,能分清楚是沒記到、沒更新,還是沒播出。

這和 Ring Remote其實有相同的出發點。那一篇處理不方便拿遙控器時怎麼操作,這一篇處理忙著照顧孩子時,怎麼少記一件事、少找一次手機。

對我來說,AI 應用走進生活,大概就是這個樣子:不一定要做出一個很大的平台,有時候,一支放在杯架上的手機,加上需要時才出現的一句提醒,就已經值得花時間把它做好。

工具資料與延伸閱讀

本文為 Litas 的家庭自動化開發紀錄,不是 Apple、Google 或其他工具專案的官方合作案例。系統用於記錄與提醒,不提供醫療判斷,也不取代照顧者對孩子當下需求的觀察。

LET’S MAKE IT USEFUL

你有一個想法。
我們先找到值得做的那一步。

AI 工作流、應用原型,或一篇真正說清楚產品價值的內容。從具體問題、使用情境與限制開始聊。

討論合作方向