將笨拙的空調單元變成智慧空調,且不失去我的保證金

TL;DR – 這個破解可行且成本約 ~$15

使用 ESP32 控制的步進馬達來旋轉空調溫度旋鈕的 DIY 改裝,讓租客能透過 Home Assistant 自動化純模擬的 PTAC 單元,且無需在機器上鑽孔或違反租約。


為何步進馬達改裝是最簡單的解決方案

Conclusion: 機械驅動現有旋鈕可避免高壓配線、智慧插座不相容,以及房東的反對。

  • PTAC 的控制電路使用市電且沒有低電壓控制腳位,直接電氣改裝既不安全,也可能使租約失效。
  • 智慧插座無法支援該單元的 NEMA 5‑20P 插頭,且在壓縮機運轉時斷電重啟可能會損壞設備。
  • 將步進馬達安裝在溫度旋鈕上(原文中的選項 2)只需要低電壓供電、少量廉價零件,且不需對機殼做永久性改動。

"我越是玩弄 ESP32 和家庭自動化,就越發現對軟體工程師而言看起來像是糟糕的做法,其實正是這些東西的運作方式。" – timvdalen (HN comment)

零件清單與成本細目 (V0 & V1)

Conclusion: 整個系統可使用現成零件組裝,成本低於 $15。

零件 V0 成本 V1 成本 來源
ESP32 開發板 $6.00 $3.30 (smaller board) Amazon / Temu
軸耦合器 $6.69 $2.42 Amazon / Temu
步進馬達 + 驅動器 $2.66 (3‑pack) $2.66 Amazon
L 型支架 free (reused IKEA) $0.50 Amazon
螺絲 / 螺母 free (spare) negligible Amazon
USB 線與充電器 free (junk drawer) $5.00 Temu
活頁夾與紙板墊 free negligible Office supplies
Total: V0 約 ~$16,V1 約 ~$14。

機械設計 – 無需鑽孔的安裝

Conclusion: 使用 L 型支架、活頁夾與紙板墊可打造可拆卸的安裝方式,符合租約限制。

  • 步進馬達以螺栓固定於 L 型支架;支架邊緣壓在空調控制腔壁上,將馬達扭力轉換為旋鈕旋轉。
  • 活頁夾將組件固定在機內金屬板上,紙板墊則防止金屬與金屬之間的磨損。
  • 這個「臨時」解決方案對租屋而言已足夠,因為可在不留下痕跡的情況下拆除。

"如果你只需要將電位器換成電子控制,vactrol 或數位電位器也能使用,但會較為侵入。" – kazinator (HN comment)

韌體 – 最小化 MQTT 橋接

Conclusion: 只需數十行程式碼即可讓 ESP32 將馬達以 MQTT cover 方式公開,從而支援 Home Assistant 控制。

// Pseudocode excerpt
void mqttCallback(char* topic, byte* payload, unsigned int len) {
  String msg = String((char*)payload).substring(0, len);
  if (String(topic) == COMMAND_TOPIC) handleCoverCommand(msg);
}

void handleCoverCommand(const String& cmd) {
  if (cmd == "OPEN")  moveMotor(stepsPerRev, speed);
  else if (cmd == "CLOSE") moveMotor(-stepsPerRev, speed);
  else if (cmd == "STOP") stopMotor();
}

裝置會發布 MQTT discovery 負載,使 Home Assistant 自動建立 cover 實體。cover 的 OPEN/CLOSE 指令會使旋鈕正向或反向旋轉一整圈,分別對應「最冷」與「關閉」位置。

"https://esphome.io/ 會讓此軟體部分只需 10 分鐘即可完成" – vayun (HN comment)

Home Assistant 整合 – 通用恆溫器

Conclusion: 將 MQTT cover 映射至 generic_thermostat 實體即可提供完整恆溫器邏輯,無需自訂程式碼。

climate:
  - platform: generic_thermostat
    name: Living Room AC
    heater: cover.ac_stepper_cover
    target_sensor: sensor.airgradient_temperature
    min_temp: 65
    max_temp: 80
    ac_mode: true
    cold_tolerance: 0.5
    hot_tolerance: 0.5

恆溫器會監測房間溫度感測器(例如 AirGradient ONE),並向 cover 發送 OPEN/CLOSE 指令,當溫度超過設定值時自動開啟空調,低於設定值時關閉。

實際表現與限制

Conclusion: 系統可運作,但會出現機械下垂與偶發馬達卡住的情況,與手動調整旋鈕相比仍可接受。

  • 隨著時間推移,活頁夾安裝可能鬆動,增加摩擦,導致馬達卡住,需手動重新定位。
  • 儘管有下垂,使用者仍報告手動操作減少,且電費略有節省。
  • 未來可改進為 3D 列印支架或更堅固的固定方式。

"如果只需要按鈕元件,ESPHome 可以完全取代自訂韌體。" – timvdalen (HN comment)

社群觀點

  • 標準化介面: 多位評論者(例如 EvanAnderson)希望製造商提供模擬/數位控制腳位,以避免此類改裝。
  • 替代方法: 有些使用者透過紅外線控制 PTAC(見 vrighter)或將 ESPHome 直接接到恆溫器端子(ethnt),但這些方法通常需要較侵入的布線。
  • 可靠性疑慮: scottlamb 指出若 Linux 主機失效,MQTT/HA 設定可能脆弱,建議使用 ESPHome 內建的恆溫器元件以獲得更自足的解決方案。

最後的要點

Conclusion: 以低預算、非破壞性的機械改裝(使用 ESP32 與步進馬達)為租客提供實用的智慧空調解決方案,說明 DIY 家庭自動化如何彌補傳統模擬設備的不足。

  • 成本:總零件費用 <$15。
  • 安裝:無需鑽孔,可拆卸安裝。
  • 控制:透過 MQTT 完全整合至 Home Assistant。
  • 權衡:機械磨損與偶發馬達卡住,但較手動旋轉旋鈕不那麼不便。

本專案示範了「臨時」硬體結合現代 IoT 軟體,能在不違反租約或超出預算的情況下解決真實的租屋限制。

摘要:一位租客使用 ESP32、步進馬達與廉價硬體,將模擬 PTAC 單元改造成可由 Home Assistant 控制的智慧空調,成本低於 $15,展示了低成本、非侵入式的改裝方式。

將笨拙的空調單元變成智慧空調,且不失去我的保證金

Sources