ultraedit比较文件没反应_论macOS x HASS x HomeKit的碰撞产生的化学反应与自己造轮子...

e863d274b143ab9250ebb3446727e1c8.png

“这一切的一切,都要从一位0号病人说起” ——本文写于CoVID-2019疫情期间,主要目的是记录一下自己踩过的坑并发泄一下情绪

一切的开始

约莫一个多月前,因为无法复工,在家闲着实在是无聊的不行,每天使用电脑的时间大大增加,逐渐发现自己家庭的网络系统实在是难以忍受,经过细致调查以后发现使用的路由器是联发科方案,和我的苹果全家桶可能有兼容性问题

d2ef49c2eaca21f98f2a3f729b4de3de.png

于是斥资购买了Apple官网上架的Linksys Velop Mesh路由器,花了一些时间构建了一套家庭网络系统,期间想着每次Time Machine备份都要连接硬盘比较繁琐,于是把放在抽屉里5年多都没碰过的Mac mini拿出来设置了一下,作为家庭服务器使用,具体网络架构如下图

2244a2b59e578258a5cb7bc36d3391f1.png

构建完成以后意识到一件事,Mac mini的性能相对是不错的,只用于跑Time Machine,做NAS,同时跑个MineCraft服务器什么的都太简单了,有点浪费,于是将目光转向了自己手上的米家生态链,想着搞个HASS把米家接入HomeKit,这样在米家云端服务器出现问题或者我自己的网络出现问题的时候,HASS和HomeKit依旧可以完成本地操作

这时候问题来了,找了很多教程,都是基于树莓派的,而我希望运行在macOS下,具体该怎么办我也没了主意,毕竟我也不是程序员,这方面是真的啥也不会,这个计划就被无限延期了

一个契机

约莫一个星期之前,我闲着没事刷知乎的时候看到了一篇有关HASS的文章,而在文章的末尾,作者@蛀大米 表示要出macOS系列的教程,一下吸引了我的注意力,开始了给自己和大佬挖坑的路

4d53897d7003b29df0fb2a9281661125.png
https://zhuanlan.zhihu.com/p/115131411

具体的安装流程均由这位大佬提供帮助,后面的设置部分才是真正的天坑,无数次坑到我们俩。。。

配置过程

我的米家有30个设备,全部接入一定是有难度的,一开始其实心里有点底,但是没想到会这么坑

其他的设备都还算比较简单,我来重点说一下米家空调,以下是配置过程中参考的部分文档

Homebrew国内如何自动安装(国内地址) - 金牛肖马的文章 - 知乎
金牛肖马:Homebrew国内如何自动安装(国内地址)​zhuanlan.zhihu.com
04c442f3be67f3273a8aece7a2fe6299.png
米家互联网空调接入HA - NodeRED 版
https://bbs.hassbian.com/thread-7875-1-1.html​bbs.hassbian.com
MAC 下配置MQTT 服务器Mosquitto
MAC 下配置MQTT 服务器Mosquitto​blog.csdn.net
d63f2789ba9d5ed395e543bf84fba7e1.png

非常感谢这些开路人,为我减轻了很多负担MAC 下配置MQTT 服务器Mosquitto非常感谢这些开路人,为我减轻了很多负担

米家空调尚未提供官方接口,所以需要用到NodeRED,MQTT

MQTT是一个大坑

我找了很久都没找到一个告诉我MQTT到底怎样安装的帖子,最后好不容易找到了一个如何配置的文章,却需要用到HomeBrew,然后我花了三个小时琢磨HomeBrew,不管怎么搞下载速度都慢得令人发指,在我即将抓狂的时候,我找到了一个大佬打包好的HomeBrew国内地址安装器,那一瞬间我的天空都亮了,而我丝毫没有意识到前方还有一个更大的坑等着我

MQTT Mosquitto配置以后,我想当然的认为MQTT服务器只需要分配一个没有占用的端口就好了,于是分配了1088,于是我卡在这5个小时搞不懂到底哪里错了,为什么HASS无法发现MQTT服务。。。。。。直到5个小时后群里有个大佬看到了我的图,跟我说你的端口配置有问题,改回默认的1883,HASS立刻就有了反应,那一刻的我只想咆哮

NodeRED同样是个大坑

NodeRED的配置过程相对简单很多,JSON文件什么的都写好了,但是我犯了一个错误,因为之前我MQTT配置有问题,所以我在HASS的配置文件里没有使用自动发现,而是手写了Broker地址和port地址,于是至此以来最坑的无底洞出现了,我在这里花了将近20小时解决这个问题

由于HASS已经能接受到MQTT传来的信息,我以为我需要自己手写实体将相应的参数对应,用于控制空调,官方文档每个词都看得懂,到最后连起来就不知道啥意思了,于是就抱着写写看的心态开始了,几个小时过去了,我写成了这样

56b5f3d8395a1dd900578cf8b13c91dc.png

然而这里我没注意到我把command topic对应在了接收的数据上,于是这货当然不工作,又过了几个小时,我发现了问题,并把代码改成了这样

8ab35c2bd9a49ee0bab450a9aa281c9d.png

从这里开始,HASS和HomeKit对应的UI终于有了一些反应,至少能监控空调状态了,但还是不能控制

这时候我看了看之前的代码,把MQTT的自动发现代码加上去了

重启了HASS以后我看到了两个空调实体

一个是我写的,一个是已经配置好的

然后我发现写NodeRED教程的大佬已经把文件配置在NodeRED里了,只要开自动发现就能完成自动配置

我心态崩了

我自己造轮子造了20多个小时,还**是个椭圆的轮子

最终成功

其实还是挺有成就感的,智能家居Project第二阶段算是告一段落了,未来的一段时间里我应该还是想搞下去,毕竟成功的一瞬间还是很有成就感的

9661674f9946adef05695991e1da4c92.png

bf6c6fd5b25731f4eb9d9d0adfb4e8ad.png

最后对给予我帮助的一众大佬表示真诚的感谢,谢谢你们的帮助,让我没有放弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值