当前位置:网站首页>炎炎夏日教你利用小米智能家居配件+树莓派4接入Apple HomeKit
炎炎夏日教你利用小米智能家居配件+树莓派4接入Apple HomeKit
2022-08-05 03:42:00 【Jerry逸风】
前言
Apple HomeKit智能家居方案,是苹果2016年在WWDC大会上提出来的,至今已经6个年头。在国内一直是不温不火的状态,除了有小米智能家居的米家方案等一大堆国内厂商跟进外,苹果特有的“贵”也是其阻碍因素之一,一个智能插座或者空调伴侣动辄几百块的价格吓退了不少果粉(包括我)。另外小米的智能家居也是支持HomeKit(需要单独购买HomeKit的网关),以下则是如何不购买额外HomeKit网关前提下,利用树莓派实现Apple HomeKit智能家居方案。
接入过程
一、使用ssh登录树莓派,并配置相应软件包
接入Apple HomeKit 我们需要在树莓派使用npm包管理,如果没有安装npm请自行Goole解决,一般树莓派是使用apt-get安装,如果不行只能通过下载官网包安装。
然后通过npm安装,homebridge,以及homebridge-mi-acpartner(一个homebridge支持小米配件的插件)
sudo npm install -g -unsafe-perm homebridge
sudo npm install -g homebridge-mi-acpartner
然后输入homebridge回车,如果控制台出现一个二维码则为安装成功。
homebridge
二、获取小米(绿米)空调伴侣token
此处获取方式网上五花八门,如通过旧版米家一顿乱点(估计几年前的安卓包,能否使用位置)等等。这里推荐一个靠谱的方案,通过miio 插件。
//这里是使用自己的macbook获取,而非树莓派,window机器一样可行。
首先安装miio
npm install miio
之后将小米空调伴侣长按重置,它会出现不带密码的wifi,通过macbook连接该wifi.然后输入以下命令
miio discover
接下来就是见证奇迹的时刻,空调伴侣的token已经被发现了。

接下来就是按照小米官方的教程,连入自家Wifi,以及配置好智能空调遥控。基本上打开米家,点击添加就OK了。
此时再执行一次
miio discover
记录下空调伴侣的路由Wifi地址,一会需要用。

三、配置Homebridge的config.json文件
Homebridge的运行实际上是依赖config.json文件的配置来运行,结合homebridge-mi-acpartner插件上的参数,我们写入下面的配置。
cd .homebridge
//新建文件
touch config.json
//编辑文件,我这里使用nano, 看个人爱好
sudo nano config.json
写入如下配置
{
"platforms": [
{
"platform": "XiaoMiAcPartner",
"devices": {
"上面保存的米家空调伴侣的路由ip地址": "上面获取到的token"
},
"accessories": [
{
"name": "learnir_switch",
"type": "learnIR"
},
{
"name": "AC Partner",
"type": "climate"
},
{
"name": "ir_switch",
"type": "switch",
"data":{
"on": "FE00000000000000000000000006003222580031003C00AC01C2037A1388430201010101010101010202020202020202020101010101010100020202020202020201010101010101010202020202020583",
"off": "FE00000000000000000000000006003222580034003E00AB01C0037A1388430201000000010000000202020202020202020001000001000001020202020202020201010001000001010202020202020578"
}
}
]
}
]
}
重新启动homebridge
homebridge
通过iPhone家庭App扫描接入homeBridge,此时一顿确认后,家庭App就会出现三个开关了,分别是空调、风扇(已改名,对应的是上面的ir_switch),下面会继续讲解它是怎么来的(红外码的获取)。learnir_switch(红卡学习开关),用于获取红外设备的红外码。

四、配置自定义红外码
此处家里刚好有台风扇是有遥控的,我以此为例,聊聊如何复制风扇的红外码。上面的learnir_switch 开关配置后,通过家庭app打开learn开关,此时树莓派控制台会提示你可以开始记录了,这时你一分钟所有红外设备的红外码都会被捕捉并打印,如下,我们捕捉后填入on,off栏,此时一个自定义红外开关就完成了。

五、给你的HomeKit配置远程启动
上面的操作都处理完之后,你的HomeKit其实只能在家里本地网络使用才有效(手机和树莓派连接同一个路由器),如果你想要在回家的路上就远程打开空调预热,那你想要给HomeKit提供一个家庭中枢。简单点来说就是你需要有一个iPad或者Home Pod常驻家里,连接wifi,和iphone以及macbook等使用同一个Apple 帐号,并打开家庭中枢功能。我刚好有台iPad Pro在家,如下即可,那你就能享受回家前就提前打开空调的待遇啦。

六、树莓派启动进程保护
最后,也就是如何让homebridge常驻线程了,正常情况下如果你关闭了ssh,homebrige自然也给你close掉。我们如何实现退出树莓派,进程还在呢?那就要进程保护了,进程保护有很多种方案,这里我用一种最简单的。
安装screen
sudo apt install screen
在scrren中启动homebidge,然后直接关闭树莓派即可,具体screen的用法,请自行google.
//启动一个名字叫homekit的 screen
screen -S homekit
//此时会新建了一个新的窗口,然后启动homebridge
homebridge
末尾
本篇文章就到此为止,如果你有什么想法,欢迎留言评论哈,感谢大家耐心看完,也还请各位走过路过的来个一键三连,感谢~
边栏推荐
- 36-Jenkins-Job迁移
- Web3.0 Dapps——通往未来金融世界的道路
- [Paper Notes] MapReduce: Simplified Data Processing on Large Clusters
- Dameng 8 database export and import
- UE4 通过互动(键盘按键)开门
- UE4 为子弹蓝图添加声音和粒子效果
- 905. Interval selection
- Fifteen. Actual combat - MySQL database building table character set and collation
- 关于#SQL#的迭代、父子结构查询问题,如何解决?
- UE4 通过与其它Actor互动开门
猜你喜欢

Increasing leetcode - a daily topic 1403. The order of the boy sequence (greed)
![[Filter tracking] based on matlab unscented Kalman filter inertial navigation + DVL combined navigation [including Matlab source code 2019]](/img/c9/fff226b6d33a773b59a0314a99a788.png)
[Filter tracking] based on matlab unscented Kalman filter inertial navigation + DVL combined navigation [including Matlab source code 2019]

Spark基础【介绍、入门WordCount案例】

用Unity发布APP到Hololens2无坑教程

2022-08-04T17:50:58.296+0800 ERROR Announcer-3 io.airlift.discovery.client.Announcer appears after successful startup of presto

UE4 更改组件变量 (以修改第一人称角色模板的最大行走速度和跳跃高度为例)

如何在WordPress中添加特定类别的小工具

静态方法获取配置文件数据

After the large pixel panorama is completed, what are the promotion methods?
![[Software testing] unittest framework for automated testing](/img/80/caedd5cf6dd61c9d75475866613cac.png)
[Software testing] unittest framework for automated testing
随机推荐
Dive into how it works together by simulating Vite
Initial solution of the structure
包拉链不可用,但是是被另一个包。
[TA-Frost Wolf_may-"Hundred Talents Project"] Graphics 4.3 Real-time Shadow Introduction
36-Jenkins-Job Migration
达梦8数据库导出导入
You may use special comments to disable some warnings. Three ways to report errors
public static
List asList(T... a) What is the prototype? 数据库设计的酸(ACID)碱(BASE)原则
[论文笔记] MapReduce: Simplified Data Processing on Large Clusters
Use CH341A to program external Flash (W25Q16JV)
[Software testing] unittest framework for automated testing
Why is the pca component not associated
队列题目:最近的请求次数
MRTK3 develops Hololens application - gesture drag, rotate, zoom object implementation
From "useable" to "easy to use", domestic software is self-controllable and continues to advance
ffmpeg -sources分析
How to Add Category-Specific Widgets in WordPress
Based on holding YOLOv5 custom implementation of FacePose YOLO structure interpretation, YOLO data format conversion, YOLO process modification"
Growth-based checkerboard corner detection method