树莓派构建智能家居控制系统 篇二:米家智能扫地机器人接入树莓派Domoticz
上一篇末提到接下来要写写具体如何使用这两个开关来学习、导入博联e-Control中的遥控信号,又得先放放了,有需要的请先看外文自学吧。 按张大妈的规矩,先推介下产品:小米扫地机,入手近一年。 米家扫地机器人,真心不错,价格有良心、品质有保证、性能拿得出的国产扫地机。这是小米最让我满意的产品。完全替代了家里服役了近十年的irobot roomba(它的故事以后再讲)。 今天要谈的是如何将小米扫地机接入Domoticz,接入Domoticz的用处其实并不太大,意义只是在于过程,学习应用下抓包的过程。还有就是若是用的是iOS10以上的苹果手机、平板,并在装有domoticz的终端上安装了homebridge服务,并让苹果手机、平板联上。那么恭喜你,你有时可以“犯二”下,对着手机说“嗨siri,开始爱妃扫地”、“嗨siri,停止爱妃扫地”、“嗨siri,开始爱妃回家吃饭”、“嗨siri,开始爱妃吱一声”,仅此而于。不过,有时“犯二”下也不错,是吧? 开始前,还是先感谢下大神Sevift,是他将这方法分享出来。我只是搬运工,我是雷锋,不谢。 先看下最终成果: 接入思路:我们可以通过手机应用——米家下指令让小米扫地机开始扫地、暂停、回充、定位等等,那么如果我们能将这个看不见摸不着的通过wifi发送的指令抓出来,再告诉domoticz是啥内容,那么我们也就能实现用domoticz来控制小米扫地机了。(关键是这个小米扫地机在接收指令时没有握手的过程,只是简单地听到干啥就干啥,并不去确认发放指令的是谁。) 因此接入步骤: 一、电脑模拟手机发送指令、拦截发送的指令(抓包); 二、找出电脑发送的指令、并测试确认; 三、在安装 domoticz的终端设备中新建运行脚本; 四、domoticz新增虚拟选择开关; 五、让siri来指派干活; 六、搞定、结束。 前提: 1、你准备好了装有domoticz的终端(树莓派或windows电脑或Mac电脑等domoticz支持的终端); 2、你具备了最基本的domoticz操作能力(比如会增虚拟硬件、设备等等); 3、知道你当前电脑和小米扫地机的IP地址(都是在同一局域网中,将小米的IP地址设为静态的); 4、需要软件:安卓模拟软件BlueStacks、抓包软件wireshark、数据包发送软件packetsender; 5、如果最后还想试试“犯二”用siri来指令扫地机,那你的domoticz终端还必须装有homebridge,并且你的苹果手机或平板中的homekit也已配置正常。(过程在此不详述)
过程(下面的配图是基于用苹果电脑SSH连接装有domoticz的树莓派): 一、电脑模拟手机发送指令,拦截发送的指令(抓包)1.1 找到米家应用发送相应指令的位置:在电脑(PC或Mac)安装安卓模拟软件BlueStacks(PC版、Mac版),并在BlueStacks中安装mi home应用,并登录mi home,找到你家的扫地机(什么?你没找到?那出门右拐,小米家、京东家、天猫家都有货,到货了再往下看)。我们总共要找到四个指令(清扫、暂停、回充、定位。你也可以花时间找更多,强力扫、安静扫......然并卵。),先于找“定位”指令为例做说明。先找到安卓模拟软件中米家应用扫地机定位按钮。 1.2 抓包前的准备:安装抓包软件wireshark,并打开。界面如下: 点击第四个按纽Capture Options,打开Wireshark - Capture Interfaces窗口,选择你当前电脑的上网端(无线或网卡。我是无线网卡,选Wi-Fi en0),点击开始,进入Wireshark软件的抓包界面,自动开始抓包。 先让它停下来,点击工具栏第二个,红色停止按纽(先别抓包、我们还没给扫地机发指令呢)。再点击第一个蓝色鲨鱼图标(Start Capturing packets)出现个确认保存窗口。暂停。 1.3 抓包: 先将第1.1的窗口和第1.2的窗口并排,方便一会两窗口间快速切换操作。接下来运作要快哦(慢也行,就是到时抓包软件抓到太多不相关的信息,不好找指令代码)。点击上面1.2不保存按钮(Continue without Saving),开始抓包,立马回到第1.1在bluestaacks软件已进入的mi home应用定位界面,点击定位我的扫地机,在听到扫地机回答“皇上,臣妾在此。”时,说明电脑已发出我们要找的定位指令,小米扫地机也收到了,立马回到wireshark界面,点击第二个停止按纽停止抓包。指令已被抓,就看你筛选了。 二、找出电脑发送的指令、并测试确认2.1 找出正确数据包:按目标列IP地址排序 ,根据你源头列——操作电脑的IP、目标列——小米扫地机的IP地址、协议列DUP进行筛选,如下图操作,在数据串上点右键,点击copy - ...as a Hex Stream,复制(...as a Hex Stream)。 2.2 测试找到的数据包:打开数据包发送软件packetsender,将复制内容填入,点击发送。 点击发送后,若扫地机有回复“皇上,臣妾在此。”,就说明定位指令找到。将该指令保存在一个文本文件中备用。若发送后,扫地机没反应,就说明找错数据包了,再找符合条件(源头列是电脑IP 地址、目标列是扫地机IP地址、协议列是UDP)的数据包,再复制、再发送测试。直到扫地机有回应。一般也就两三个数据包符合条件的。实在找不到,再重来一遍抓包,动作快点,减少抓包数据,免得无关数据太多。 另外几个指令也是按此操作,找出。
最后你就得到所需的四组数据都是长度为120个的字符串。 你会发现这四个字条串的前28个字符都是相同的。 至此,你的抓包、找指令的活是干好了,不错!
三、在安装 domoticz的终端设备中新建运行脚本(以终端是树莓派为例)
建议大家先用文本代码编辑器(我是用atom)修改好后,再一次复制粘贴过来。至于为什么要将四个字符串中的前28位相同的字符单列出来,然后在指令中用 + 再合并,没啥,就是为了减少代码字符数,只是程序员的工作习惯。好吧,保留原创者的工作习惯,向他致敬。 保存、退出nano。 sudo chmod 777 MiRobotVacuum.py 赋予文件权限 在终端添加python脚本的工作完成。 四、domoticz新增虚拟选择开关在domoticz中新增硬件,名称自取,类型选择dummy。 在开关页手动添加开关,类型选为选择开关。 进入新建开关的编辑页面: 编辑选择开关的名称及相关的脚本命令,保存。 不出差错的话,你的小米扫地机接入domoticz的活就完成了,试着控制看看。
五、让siri来指派干活苹果手机、平板中的homekit是不支持选择开关的,为了偶尔的“犯二”,让siri来控制扫地机,我们要在domoticz做些设置。不细讲。新建硬件,新建虚拟开关。 在苹果手机、平板中的homekit多了三个开关。归到客厅。开始“犯二”,没办法,本来设定为爱妃的,可siri总听成艾菲,好吧,没皇上命,叫不成爱妃。 六、搞定,收工。值友们,开工吧...... 参考资料: https://www.domoticz.com/forum/viewtopic.php?f=17&t=11520&hilit=Mi+Robot+Vacuum&start=280 上一篇 |
香港服务器多少钱一个月?哪家的香港服务器
4核4g6M50G盘20G防御云服务器价格多少钱?T
特发集团与华为签署全面合作协议
【身边的AI】高空抛物智能追溯解决方案,站
中海&华为签署战略深化合作协议
华为赵博:数字化转型成为地产企业最确定的
这款TCL K6V指纹锁不到千元即可买到?大品
凯迪仕指纹锁哪款好用?买凯迪仕指纹锁选哪
极光尔沃3d打印机怎么样?极光尔沃a6详细介
企业上云对企业有什么帮助?企业上云有哪些