一、前言
最近买了坚果N1S投影仪,官方没有提供插件可接入homeassistant 或者米家 homekit,只有一个坚果控App,但是想打开投影仪还是需要解锁手机、打开App、找到遥控器页面、点击开机键,很是不爽,还是希望能够实现 “嘿 Siri,打开投影仪”。于是尝试使用charles对手机坚果控App进行HTTP抓包,很遗憾竟然抓取不到任何HTTP请求。沮丧了几天之后突然灵机一动,不抓HTTP了直接抓TCP数据包一定能抓到东西了吧。于是乎使用wireShark对手机TCP流量进行抓包果然有所收获。同时也发现HA论坛上之前也有大佬用MQTT做过坚果投影仪的控制遥控器:https://bbs.hassbian.com/thread-8528-1-1.html 害,只怪之前看这个帖子的时候只怪没仔细往后看,发现里面有个返回指令与我抓到的数据包一模一样。不过这个帖子年代久远有些指令已经变了。 二、指令解读
坚果控APP截图:
除了控制音量的volume之外,每个指令都是两个,一个00结尾,一个01结尾,实验可得01是按下,00结尾的是松开,如果只发送01指令则会相当于按着这个键不松手。 音量控制键则是直接set到对应的音量值,具体使用可参照代码。自动对焦命令使用频率比较低,没有抓取 。 代码已公开到github: https://github.com/XvZipo/JMGO-projector-controller
后续考虑接入home assistant ,可能要参照之前大佬的做法,写个界面,用MQTT,希望顺利能做到让小爱同学和Siri都能控制
。
|