Homepoint 是一個基於螢幕的介面,適用於在 ESP32 晶片組上運行的 MQTT 和 HomeKit 連接的智慧家庭設備。
特徵
示範
安裝
建造
配置
場景&設備
無線網路和MQTT
NTP 時間(可選)
範例
路線圖
已知錯誤和問題
貢獻
給我買杯咖啡
執照
在前螢幕上檢視並觸發場景(裝置群組)。
透過深入場景(透過點擊指示器或長按按鈕)來觸發各個裝置。
一目了然地查看多個設備部分打開的場景。
支援溫度、濕度、空氣品質感測器和 Tasmota 能量讀數。
遠端設定:透過 Web 介面設定並重新啟動 HomePoint。無需重新刷新。
無線更新(測試版) :透過無線方式刷新 HomePoint 新版本。
HomeKit 開關支援(在 Home 應用程式中設定自動化以從 Homepoint 進行切換)*
支援觸控螢幕或基於按鈕的導航。
反應式:每當設備從其他地方觸發時,螢幕就會更新。
透過 JSON 檔案輕鬆配置,無需額外程式碼。
螢幕保護程式會在 10 分鐘後關閉螢幕以節省電力。
狀態列顯示 WiFi 和 MQTT 的連線情況以及時間。
故障安全模式:在配置損壞的情況下,提供遠端存取的故障安全模式。
預先編譯的二進位檔案:只需在 ESP32 裝置上刷新 HomePoint 即可,無需編譯。
*目前在實驗分支上。
HomePoint 包含 2 個預編譯的 .bin 文件,可在通用 ESP32 模組或 M5Stack 上刷新。有關硬體設定的更多詳細信息,請參閱 Wiki。
安裝步驟:
從 https://github.com/espressif/esptool/releases 下載 ESPTools
使用python setup.py install
安裝 ESPTools
執行esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(或 homepoint_m5stack.bin 對於 M5Stack)
或者,觀看下面的安裝影片:
Homepoint 是使用 ESP-IDF SDK 建立的。
詳細的構建說明可在 Wiki 中找到。
配置位於data/config.json
中。
HomePoint 支援兩種類型的場景,每種場景都有多種裝置選擇:
場景類型 | 設備類型 |
---|---|
燈、開關 | (無,所有設備應為交換器) |
感應器 | 使用可自訂的圖示一次顯示一個或兩個值(singleValue/combinedValues) |
分組感測器最多支援兩個裝置(由於螢幕空間)。
燈和開關支援組中無限數量的設備。
有些感測器使用JSON作為資料格式,在這種情況下可以定義金鑰。這些可以位於感測器 json 有效負載的任何級別,對於 Tasmota 智慧插頭,鍵值「Power」可用於顯示當前功耗。
WiFi 和 MQTT 憑證將在頂層定義。
為了設定正確的時區,請將 NTP TZ 設定複製並貼上到timezone
鍵。
一些 IL9341 顯示單元似乎在觸控螢幕座標如何與顯示器相對應或如何控制 LED 背光方面有所不同。因此,我們提供了一些選項來覆蓋設定檔中的預設值。
鑰匙 | 類型 | 價值 |
---|---|---|
“led 腳上拉” | 布林值 | true 或false - 控制背光功率,可依單元上拉/下拉 |
“螢幕旋轉角度” | INT | 旋轉參數可以是 0、1、2 或 3 - 以 90 度角度遞增 |
“螢幕保護分鐘” | INT | 顯示幕關閉前的分鐘數(預設 10) |
“觸摸X軸反轉” | 布林 | 預設值: false ,反轉觸控螢幕的 X 軸,以防未對齊 |
“觸摸Y軸反轉” | 布林 | 預設值: true ,反轉觸控螢幕的 Y 軸,以防未對齊 |
“顯示顏色反轉” | 布林 | 預設值: false ,反轉色彩空間(即 ILI9342C 顯示器) |
根據 MQTT 規範,MQTT 主題區分大小寫。
{ "wifi": "MyWifiSSID", "password": "我的Wifi 密碼", "hostname": "可選主機名稱", "login": "admin", "webpass": "admin", "mqttbroker" : "mqtt: //192.168.1.2", "mqttusername": "mqttusername", "mqttpasswd": "mymqttpassword", "timezone": "CET-1CEST-2,M3.5.0/02:00:00,M10. 5.0/03: 00:00", "場景": [{ "名稱": "客廳", "類型": "燈光", "圖示": "客廳", "裝置": [{ "名稱": "一些燈光" , "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue 彩色燈1", “onValue”:“true”,“offValue”:“false” }, { "name": "門燈", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status /lights/Hue 彩色燈1", "onValue": "true", "offValue": "false", "icon": "door" }, ] }, { "name": "臥室", "type": "感應器", "icon": "門", "devices": [{ "name": "溫度 DHT 感應器", "type": "singleValue", " jsondata": true, "firstIcon": "Temperature_small", "firstKey": "溫度", "getTopic": "bedroom/esptemp" }, { "name": "Tasmota Smart Plug", "type": "singleValue", "jsondata": true, "firstKey": "Power", "firstIcon":"wattage_small", "getTopic": "tele/DVES_2F73BE/感應器" }] }] }
此處提供了更完整配置的範例。
與 Homebridge-Hue 和 HomeAssistant / ZigBee2MQTT 整合的文檔
HomeKit 支持
測試
如果您發現任何錯誤或需要幫助,請不要猶豫並提出問題:)
歡迎貢獻!只需破解並打開拉取請求即可。但請遵循已有程式碼的風格(即沒有製表符、空格)。
我在空閒時間開發了 HomePoint,因為我想了解有關 ESP32 上的 C++ 的更多資訊並解決我的智慧家庭中的具體問題。
隨著開發的不斷進行,我思考瞭如何使這個專案開源,並且對創客社群來說更容易訪問和用戶友好。
如果您喜歡使用 HomePoint 或這項工作,請考慮捐贈一小筆。但別擔心,無論如何我都會繼續努力;-)。
麻省理工學院©馬蒂亞斯‧弗里克