用HomeAssistant + HomeBridge树莓派构建智能家居中枢

Posted by Ivan on 2018-02-23

好久没有更新文章啦,最近接了一个私活,也是人越来越懒,懒得更新。

想着不行必须得更新一篇,那就写写最近构建的树莓派吧,话不多说,先上图。

需要的原料

  • 树莓派
  • Hass.io或Hassbian或Raspbian系统
  • DHT22传感器
  • 尽可能多的智能设备

Home Assistant

Home Assistant 是一个好系统,可以这么说,Home Assistant是一个包装好的智能家居控制系统的中心,在2018年看,可扩展性强,社区强大。

我建议安装Hassbian系统,安静纯粹,安装过程如下。

  1. 下载最新的Hassbian景象 (364 MB)

  2. Etcher 刷入你的树莓派储存卡。

  3. 如果你是Wi-Fi链接,请先配置你的网络连接,重新插入sd卡,在根目录下,建立wpa_supplicant.conf文件,修改内容并保存。

    1
    2
    3
    4
    5
    6
    7
    8
    country=SE
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
    ssid="YOUR_SSID"
    psk="YOUR_PASSWORD"
    }

  4. 插入SD卡,开机等待,刷新http://hassbian.local:8123/,直到出现页面。

小提示

  • Etcher一定要使用最新版1.3.1,旧版本可能导致无法开机
  • 不要相信官网所说的等待五分钟,由于中国的网络环境,很可能需要等待一小时到五小时,都是正常的,只要没有出现网页,就不要进入ssh
  • 出现页面后,可以ssh链接进页面,用户名是pi,密码是raspberry,用passwd重置密码。
  • 如果超过五个小时没有页面显示,这时候你再输入sudo systemctl start install_homeassistant.service重试。

HomeBridge

HomeBridge可以让你的Hassbian支持iOS的Homekit,所以,这个插件一定要安装。

安装方法如下:

  1. ssh进入你的树莓派

  2. 安装node

    1
    2
    3
    4
    sudo apt-get update
    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash
    sudo apt-get install -y nodejs
    sudo apt-get install -y build-essential
  3. 安装avahi

    1
    sudo apt-get install libavahi-compat-libdnssd-dev
  4. 安装homebridge

    1
    sudo npm install -g --unsafe-perm homebridge

好了,homebridge安装好后,我们输入homebridge试试可不可以运行?

看到这样的二维码,我们就可以打卡iPhone的家庭.app,然后扫描二维码,添加我们的树莓派中继。

温度和湿度传感器

我们添加一个温度和湿度,接线方式

接线需要并联一个10K电阻

1
2
3
4
5
6
7
8
9
DHT22有3个脚,VCC,DATA,GND
VCC,接 3.3V,PIN 01
DATA,接 GPIO04,PIN 07
GND,接地,PIN 09
其中DATA和VCC之间用10k电阻相连

img

随后,执行以下代码

1
2
3
4
5
6
7
git clone https://github.com/NorthernMan54/homebridge-dht
cd homebridge-dht
sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio
sudo cp dht22 /usr/local/bin/dht22
sudo chmod a+x /usr/local/bin/dht22
dht22

如果看到显示正常的温度,如

1
2
0 25.5 C 14.5 %

智能电视

因为我家有一台三星的智能电视,也可以用homebridge控制,在npm上找到了相应的包,迅速安装,迅速安装

1
npm install -g homebridge-samsungtv2016

配置文件

随后我们配置homebridge

1
2
3
cd ~
cd .homebridge
vi config.json

编辑内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"bridge": {
"name": "Yifan Home",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"description": "Yifan Home",
"accessories": [
{
"accessory": "Dht",
"name": "dht22",
"name_temperature": "Temperature",
"name_humidity": "Humidity",
"service": "dht22",
"gpio": "4"
},
{
"accessory": "SamsungTV2016",
"name": "Bedroom TV",
"ip_address": "192.168.1.8",
"mac_address": "84:A4:66:F1:C7:09"
}
],
"platforms": [
]
}

最后,我们打上homebridge,打开手机的家庭.app,扫描二维码,添加设备,大功告成!

小提示:

  • 如果之前添加错误,想重新配置,请进入~/.homebridge文件夹删除accessoriespersist目录即可重新配置。

参考

https://home-assistant.io/docs/installation/hassbian/installation/

https://www.jianshu.com/p/ec79b2711bd5

http://www.instructables.com/id/RPIHomeBridge-TemperatureHumidity-Sensor/