首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 17376|回復(fù): 4
上一主題 下一主題
[分享]

當(dāng)貝投影儀通過(guò)ESP32接入HA方案 實(shí)現(xiàn)開(kāi)關(guān)機(jī)自由

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-1-11 16:24 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來(lái)自云南
家里的投影儀是當(dāng)貝F3 Air,藍(lán)牙遙控器,無(wú)紅外,支持上電開(kāi)機(jī)。為了接入HA實(shí)現(xiàn)自動(dòng)化,嘗試了三個(gè)不同的方案:
先是直接接了個(gè)智能插座,簡(jiǎn)單粗暴,開(kāi)關(guān) = 上下電。覺(jué)得不夠優(yōu)雅,尤其是關(guān)機(jī),棄用了。

后來(lái)買了個(gè)Zigbee的手指機(jī)器人,通過(guò)模擬點(diǎn)按機(jī)器上的開(kāi)關(guān)實(shí)現(xiàn)自動(dòng)化。用了一段時(shí)間,缺點(diǎn)很明顯:

1. 穩(wěn)定性一般,延遲高。有時(shí)候發(fā)指令剛執(zhí)行完,還會(huì)隔個(gè)十幾秒,又執(zhí)行一次。

2. 無(wú)法獲取到投影儀真實(shí)開(kāi)機(jī)的狀態(tài),沒(méi)法實(shí)現(xiàn)更多玩法。當(dāng)然也可以通過(guò)智能插座的功率來(lái)判斷,但是這就有些多余了。

3. 噪音大,用過(guò)的朋友應(yīng)該知道,這個(gè)小電機(jī)聲音不小。
又棄用了。

最終還是選擇ESP32玩點(diǎn)兒花的。這里講下思路:

1、喚醒方式

官方的APP都不支持網(wǎng)絡(luò)喚醒,本地也掃了一下mdns,確實(shí)在關(guān)機(jī)狀態(tài)下沒(méi)什么能用的服務(wù),所以只能走藍(lán)牙模擬。

拿nf52840抓了一下包,發(fā)現(xiàn)在關(guān)機(jī)狀態(tài)下,按下開(kāi)機(jī)鍵,遙控器會(huì)持續(xù)5秒廣播帶有特殊Manufactor Data的報(bào)文,5秒后消失,那推測(cè)大概率就是這段神秘?cái)?shù)據(jù)觸發(fā)了喚醒。

當(dāng)貝投影儀通過(guò)ESP32接入HA方案 實(shí)現(xiàn)開(kāi)關(guān)機(jī)自由


實(shí)踐證明猜測(cè)正確。有沒(méi)有懂行的老哥知道怎么解析這串?dāng)?shù)據(jù),求科普。

2、關(guān)機(jī)方式

起初選擇走網(wǎng)絡(luò)途徑,實(shí)現(xiàn)直接簡(jiǎn)單一些,畢竟官方APP自帶局域網(wǎng)遙控功能。

抓包發(fā)現(xiàn)指令是通過(guò)WebSocket明文傳輸?shù)?,地址就是ws://投影儀IP:6689,數(shù)據(jù)內(nèi)容忘記截圖了,大概就只需要里面的Command和Value兩個(gè)字段即可。后來(lái)代碼也寫了,通過(guò)mdns先找到投影儀的IP,再發(fā)送按鍵指令。不過(guò)ESP32上面的mdns一直不是很穩(wěn),服務(wù)掃描時(shí)有時(shí)無(wú),也沒(méi)心情仔細(xì)研究,就又轉(zhuǎn)向了藍(lán)牙抓包(有興趣的朋友可以繼續(xù)嘗試一下)。

同樣用nf52840抓了一下按下關(guān)機(jī)鍵時(shí)刻的BLE報(bào)文,發(fā)現(xiàn)電源鍵按下時(shí),對(duì)應(yīng)的HID Report值會(huì)變?yōu)?x0000660000,松開(kāi)就會(huì)發(fā)0x0000000000,那么方向明晰了。

當(dāng)貝投影儀通過(guò)ESP32接入HA方案 實(shí)現(xiàn)開(kāi)關(guān)機(jī)自由

玩過(guò)HID抓包的朋友可能會(huì)發(fā)現(xiàn)這個(gè)數(shù)值格式并不是鍵盤鼠標(biāo)這類設(shè)備的常見(jiàn)格式,又仔細(xì)研究了一番他的HID描述符,發(fā)現(xiàn)的確是自定義的。

當(dāng)貝投影儀通過(guò)ESP32接入HA方案 實(shí)現(xiàn)開(kāi)關(guān)機(jī)自由

看來(lái)現(xiàn)成的ESP32 HID Keyboard輪子還不能用,只能手?jǐn)]一個(gè)了,說(shuō)干就干。

最終實(shí)現(xiàn)的效果是通過(guò)ESP32模擬藍(lán)牙報(bào)文觸發(fā)投影儀開(kāi)關(guān),同時(shí)藍(lán)牙連接的狀態(tài)也能夠反映出投影儀當(dāng)前的工作狀態(tài)。把這些信息通過(guò)MQTT,就可以接入到Home Assistant中,以一個(gè)開(kāi)關(guān)的實(shí)體存在,配置代碼如下:

  1. mqtt:
  2.   - switch:
  3.       unique_id: esp32_projector_switch
  4.       name: "ESP32 Projector Switch"
  5.       state_topic: "esp32projector006"
  6.       command_topic: "esp32projector006"
復(fù)制代碼

當(dāng)貝投影儀通過(guò)ESP32接入HA方案 實(shí)現(xiàn)開(kāi)關(guān)機(jī)自由

至于是否穩(wěn)定,容我再觀察一段時(shí)間。

最終代碼實(shí)現(xiàn)已經(jīng)開(kāi)源:https://github.com/fentensoft/esp32-dangbei-projector ,README還沒(méi)寫。

歡迎大家自由嘗試,目前當(dāng)貝F3 Air能夠正確控制,其余設(shè)備未測(cè)試,但原理雷同。


上一篇:當(dāng)貝F6的節(jié)能模式如何打開(kāi) 當(dāng)貝F6節(jié)能模式打開(kāi)教程
下一篇:當(dāng)貝X5 Ultra的節(jié)能模式如何打開(kāi) 當(dāng)貝X5 Ultra節(jié)能模式打開(kāi)...
沙發(fā)
發(fā)表于 2024-1-11 16:27 | 只看該作者 | 來(lái)自江西
當(dāng)貝X3觀望一下
板凳
發(fā)表于 2024-1-11 16:27 | 只看該作者 | 來(lái)自上海

char manufacturerData[] = {0x46, 0x00, 0x46, 0xFA, 0xC1, 0x69, 0x04,
                           0xC8, 0x38, 0xFF, 0xFF, 0xFF, 0xFF};


z6x pro:cfbb25d6e69b20ffffff3043524b544d

應(yīng)該把這個(gè)替換掉就可以了把
地板
 樓主| 發(fā)表于 2024-1-11 16:27 | 只看該作者 | 來(lái)自云南
黑天 發(fā)表于 2024-1-11 16:27
char manufacturerData[] = {0x46, 0x00, 0x46, 0xFA, 0xC1, 0x69, 0x04,
                           0xC ...

是的,沒(méi)錯(cuò)
5#
發(fā)表于 2024-1-12 09:19 | 只看該作者 | 來(lái)自甘肅
你真是大神啊

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-12-22 15:07 , Processed in 0.067744 second(s), 14 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表