# 舊控制程式沒有定時？用 REA 找到介面，再替它補上功能

- 網址：https://blog.valenvan.uk/posts/morluto-rea.html
- 發布日期：2026-10-19
- 測試設備：Mac mini M4 Pro（12 核、64GB）
- 專案：morluto/rea（https://github.com/morluto/rea），MIT 授權
- 測試版本：REA 6.7.0；Wakaru 1.14.0 未能執行
- 實測影片：https://www.youtube.com/shorts/CACxNnHS4Ds

## 重點摘要

- REA MCP 分析自製範例，找到 remote.send 與 remote:send，一組呼叫成功靜態配對。
- 新增定時模組共有 30 組原訊號、15 項定時測試、5 項替身整合驗證，50/50 通過。
- 一小時案例使用虛擬時鐘，另有30毫秒真實計時驗證；沒有測試紅外線或實體冷氣。
- 現有 ARM 環境無法執行官方 x64 Wakaru 引擎，程式碼還原未成功。
- **結論：** REA 介面分析能協助定位擴充接點；本次證據僅涵蓋自製軟體範例。
- **適合：** 已有合法樣本、想理解介面後擴充功能的人
- **不適合：** 期待沒有協定與硬體就能自動控制所有家電的人

| 實測項目 | 結果 |
|---|---|
| 原訊號 | 30/30 |
| 定時功能 | 15/15 |
| 原通道替身整合 | 5/5 |
| 實體設備 | 未測 |
| 付費API費用 | US$0 |

睡前想讓冷氣一小時後關機，遙控器偏偏不見了。這時真正想解決的是「能不能把原本的控制方式弄懂，換成自己需要的操作」，而不是多看一張程式功能表。REA 的定位正是提供 AI 逆向分析工具，讓它從應用程式、原生執行檔或執行行為中找證據，再協助開發。官方也以「理解別人的功能，再為自己的專案做一版」說明用途：[REA 官方專案](https://github.com/morluto/rea)。

這次沒有實體冷氣與紅外線發射器，所以不會把軟體測試當成冷氣控制成功。我們使用自製、可公開的 Electron 結構範例：原介面只有開與關，新增目標是一小時後自動關機。示範訊號是自訂的四位元組格式，不是任何廠牌的冷氣協定。

測試設備：Mac mini M4 Pro（12 核、64GB）。受測 REA 6.7.0，AI 使用既有 Codex 訂閱，配音使用免費 Edge；本次付費 API 費用為零。

## 先找功能接在哪裡

這次確實啟動 REA 的 MCP 服務，完成初始化與工具呼叫，而非只讀 README。它找出 `remote` 的 `send` 介面，以及 `remote:send` 控制通道，靜態分析中有一組成功配對的呼叫。這讓新增功能有明確的接點：到期時呼叫既有的關機介面，不另造一條無法驗證的路。

```bash
npm install --global rea-agents@6.7.0
rea --mcp
# MCP 工具 analyze_javascript_application 的必要參數是 input_path
rea analyze-javascript-application /tmp/owned-remote --json > analysis.json
```

![REA 找出控制介面與通道](https://blog.valenvan.uk/img/morluto-rea-article_1.png)

第一次 MCP 呼叫把參數寫成 `path`，工具明確拒絕，尚未分析。核對實際 schema，改用 `input_path` 後成功；兩份收據都保留，沒有把錯誤結果當成功。

## 再補功能，不能只把分析表重唸一次

Codex 根據介面新增定時模組：設定到期時間、取消、重新設定，以及檢查不合法的時間與溫度。測試另外載入原本的主程序與 preload 程式，以 Electron 替身串起原控制通道，核對定時到期確實經由原處理器回傳關機訊號。沒有啟動完整 Electron 視窗，因此視窗操作不在這次驗收範圍。

```bash
node /tmp/verify-feature.js
```

| 驗證項目 | 結果 |
| --- | --- |
| 原訊號：開／關乘 16–30 度 | 30 組通過 |
| 定時、取消、重設、輸入與真實短計時 | 15 項通過 |
| 原介面、IPC、回傳訊號等替身整合 | 5 項通過 |
| 合計 | 50/50，零失敗 |

![定時到期與驗證結果](https://blog.valenvan.uk/img/morluto-rea-article_2.png)

一小時案例使用虛擬時鐘快轉，不能說真的等過一小時；另有 30 毫秒到期、等待 90 毫秒核對的真實計時案例。關機輸出 `a5001abf` 只對應自製範例，不能直接拿去控制家電。

## 讓它成功的做法，以及實際限制

先用自己持有的程式或允許分析的資料，請 REA 找到控制入口與參數，再讓 AI 寫最小功能，最後同時驗證新增行為與原介面。拿到分析關係圖只是第一步；靜態配對本身不證明實際執行，還得補測。若目標是手機遙控冷氣，另外需要實際紅外線協定、發射硬體，以及設備回應驗證。

我們也嘗試程式碼還原：依官方文件下載 Wakaru 1.14.0，其 SHA-256 與文件相符，但官方引擎要求 Linux x64，現有環境是 ARM，執行時缺少 x64 動態載入器，REA 回報能力不可用。這項未成功，沒有修改正式環境來硬繞。安裝 REA 不表示所有分析後端已齊備。

適合已有程式或設備研究材料、想查清楚功能接點再自行擴充的人。若期待沒有樣本、沒有協定或硬體，就一句話自動控制所有家電，這次證據無法支持。REA 的價值在於把「不知道從哪改」往前推進到「有介面與證據可動手」，成功與否仍由實測決定。

專案：[morluto/rea](https://github.com/morluto/rea)，MIT 授權。Wakaru：[pionxzh/wakaru](https://github.com/pionxzh/wakaru)，Apache-2.0。
