树莓派2B+Hassbian+Homebridge+Homekit(环境搭建)

由于有位楼主跟我说引用了他的文章,我这里说明下,引用的文章会很多,碰到的问题也多,文末有各路大神的文章,需要的自己去看。我的目标:用Ipad中的HomeKit智能家居!用Siri来控制你的家用电器,最近苹果的智能家居平台比较火热,什么值得买平台以及少数派报告都有比较多的文章介绍。目前自己手上的硬件有Ipad,树莓派2B,nodemcu(esp8266),DTH11 温湿度传感器等等。刚好Home Assistant是一个运行在Python 3的开源家庭自动化平台。它可以追踪、控制你家里的所有设备,并且能实现自动化控制。先用图描述下几者关系,方便理清思路。


树莓派上运行的就是HomeAssistant

下面说下具体的安装实现过程,安装过程中的软件我会上传到百度云分享给大家。

1:格式化TF卡


格式化TF卡

2:刻录hassbian镜像,使用的是etcher刻录软件

刻录镜像

查看U盘,发现容量只有40M了,不用担心,只是启动文件。


树莓派启动文件


启动文件目录

3:上电运行

将烧写好的TF卡插到树莓派上,插上网线,上电启动。


上电启动完成

上电完成之后,提示用户名登录,用户名:pi      密码:raspberry


putty已经可以SSH登陆

4:查看hassbian是否安装成功

打开谷歌浏览器(切记一定用谷歌浏览器,360浏览器是打不开的),浏览器输入:192.168.1.121( 树莓派的IP):8123


homeassistant安装成功

出现这个界面,说明hassbian已经安装成功,并且服务已经自动启动。

5:替换安装更新源

更换一下源:sudo nano /etc/apt/sources.list在第一行首添加”#“号,再在最上方添加如下代码(如果不安装KODI,最后一行(第三个安装源)可忽略):

deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib

deb http://pipplware.pplware.pt/pipplware/dists/jessie/main/binary /

然后按ctrl+x,y,回车

在第一行前面加#号,然后复制下面两行到末尾,ctrl + x 保存然后 y 确认退出。


编辑文件

6:更新软件包

sudo apt-get update:这一步是更新你的源列表,由于我们第五步,更新过安装源,所以这步必须执行。

执行更换自己的安装源

sudo apt-get upgrade:此命令将本地已安装的软件与刚下载的软件列表里对应软件进行对比,如果你对新版本软件的需求不是那么迫切,可以不执行,当然如果发现已安装的软件版本太低,就会提示你更新,y 确认安装。这个过程需要时间按比较久,我花了15分钟左右。


更新自己的软件包


sudo apt-get clean:彻底卸载安装包。

7:安装图形界面

图形界面,方便新手操作,我这里就给你具体链接地址

Raspberry Pi 树莓派 Zero W 安装Homeassistant-Homebridge教程及避坑指南

由于每个人的树莓派硬件版本可能存在区别,可以参照安装方式,但是不能全部复制,不然是无法安装成功

HomeAssistant,大家切记切记。

8:安装Samba和MQTT

Hassbian内置了一个快速安装Homeassistant需要的一些软件的工具包叫hassbian-config,通过这个工具可以快速安装MQTT、Samba等软件,帮助我们快速实现Homeassistant的强大功能,安装MQTT和Samba只需要简单的两个命令。

hassbian-config show  #查看支持快速安装的软件


可以安装的插件

sudo hassbian-config install samba  #快速安装samba


安装Samba完毕

看到右下角的的地址没有,\\192.168.1.121\homeassistant


Samba同步成功

左边是树莓派的目录,右边是windows下的目录,已经同步完毕。

sudo hassbian-config install mosquitto:安装MQTT服务,进行物联网设备接入。安装过程中提示输入mqtt的帐号和密码。

我也是输入帐号pi密码raspberry

安装MQTT的方式还可以这样:

安装MQTT方式2

9:安装libavahi-compat-libdnssd-dev软件包(完整版Raspbian此时可能提示因依赖关系而出错)

sudo apt-get -y install libavahi-compat-libdnssd-dev


安装更新成功

10:确认系统硬件版本

安装node.js之前最重要的一步,由于各个版本的树莓派硬件不同,树莓派zero,树莓派1,树莓派2/2B,树莓派3/3B。

如果没确认清楚,就会导致node.js出错。

下面我说下几种硬件的安装方式:

(1)树莓派zero是arm6l平台,具体的安装方式如下图所示。

树莓派zero的安装方式

(2)树莓派2也是arm6l平台,具体实现方式更上面一样

(3)那树莓派2B是不是跟树莓派2,树莓派zero一样,也是arm6l平台呢,答案是不是的。

查看树莓派的硬件平台,使用命令   uname -a


树莓派2B硬件平台

(4)树莓派3和树莓派3B由于手上没有硬件,这里说不再说明。

11:安装node.js

安装node.js的具体方式如下:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

sudo apt-get install -y nodejs

本来安装node.js需要这两个命令就行,但是网上有人说小米网关不支持setup_4x,所以我放弃了这两条命令。

正确的参考命令如下:

安装node.js命令
安装setup_6x
安装node.js完成


安装build-essential

build-essential的作用说明下


如果安装不成功的话,请参照下面的文章。

重装Ubuntu 14.04后使用apt-get安装build-essential(即sudo apt-get install build-essential)时出现包依赖项问题的解决方法

查看node.js是否安装成功,使用命令 node -v

查看node

12:安装Homebridge,这个安装arm7l平台的,其他平台是其他安装方式。

armv7:

sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp

cd /usr/lib/node_modules/homebridge/

cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns

armv6的安装方式:

armv6安装方式

HB 提供一行安装指令:sudo npm install -g --unsafe-perm homebridge

也有人说采用这条命令:sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp

至于node-gpy的作用,可以百度下查看问题。上面两种方式都可以安装。

如果出现安装不成功的话,使用如下命令。

手动安装


安装Homebridge

安装完成后,建议大家直接输入homebridge运行一次 HB,以生成示例配置文件,然后 Ctrl + C 退出。


运行bridge之后,发现未找到配置文件

使用命令 sudo nano /home/pi/.homebridge/config.json

编辑配置文件

重新启动homebridge,能运行说明配置文件正确,不能运行说明配置文件错误


配置文件错误

解决方式:使用命令#   sudo  npm install homebridge

如果碰到 the  requested accessory 'http' was not registered by any plugin

就使用命令#  sudo  npm install homebridge-http

安装完毕之后在用homebridge命令,看是否正常启动。


接着,安装 Homeassistant-homebridge 插件,实现平台联动:

sudo npm install -g homebridge-homeassistant

日后插件更新,请使用下列命令:

sudo npm upgrade -g homebridge-homeassistant

如果是小米的网关,还需要安装相应的协议。

小米网关协议安装

13:让homebridge开机自动启动

方式一:比较麻烦的配置,可以参考一下配置说明。不过我估计很多人都可能看不懂是啥原理。

https://bbs.hassbian.com/forum.php?mod=viewthread&tid=1074&highlight=hass

#将homebridge设置成随系统启动

cd/

sudo useradd--system homebridge

sudo mkdir/var/homebridge

sudo cp ~/.homebridge/config.json/var/homebridge/

sudo cp-r ~/.homebridge/persist/var/homebridge

sudo chmod-R0777/var/homebridge

cd/etc/default

sudo nano homebridge

#将下面的内容复制粘贴进去,然后Ctrl+X,然后Y,回车,保存退出

HOMEBRIDGE_OPTS=-U/var/homebridge

# Defaults / Configuration options for homebridge

# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)

# If you uncomment the following line, homebridge will log more

# You can display this via systemd's journalctl: journalctl -f -u homebridge

# DEBUG=*

#分界线

cd/etc/systemd/system

sudo nano homebridge.service

#将下面的内容复制粘贴进去,然后Ctrl+X,然后Y,回车,保存退出

[Unit]

Description=Node.js HomeKit Server

After=syslog.targetnetwork-online.target

[Service]

Type=simple

User=homebridge

EnvironmentFile=/etc/default/homebridge

ExecStart=/usr/lib/node_modules/homebridge/bin/homebridge $HOMEBRIDGE_OPTS

Restart=on-failure

RestartSec=10

KillMode=process

[Install]

WantedBy=multi-user.target

#分界线

cd/

sudo systemctl daemon-reload

sudo systemctl enable homebridge

sudo systemctl start homebridge

sudo systemctl status homebridge

方式二:采用init.d的方法

把 HomeBridge 服务加入到树莓派的系统服务里。

首先我们要开启 root 账户,首先在终端输入:

sudopasswd root

然后会提示你设置 root 账户密码,第一次输入之后还要确认一次,一样两次输入不会有任何字符显示。输入完毕之后,启用 root 账户,输入以下命令:

sudopasswd --unlock root

然后会提示报错:passwd: password expiry information changed.,原因是新版的系统默认禁止 ssh 登录 root 账户,我们需要修改一下配置文件。在终端输入以下命令:

sudonano /etc/ssh/sshd_config

用 Ctrl + W 搜索「 PermitRootLogin 」,找到之后将PermitRootLogin without-password改成PermitRootLogin yes,然后按 Ctrl + O 保存,回车之后退出编辑器。

此时你会发现root登录还是提示密码错误,但是我自己用su - root 又可以切换到root用户下,说明我的密码没问题。后来百度一下,发现是服务没重启。重启服务就好,解决办法如下图。

重启sshd服务

配置到这里,只要在终端输入homebridge就可以运行了。但是关闭终端后就会关闭,而且万一出现断电重启的情况,服务就会关闭。因此我们要配置一个开机启动homekit的配置。homebrige的github页面上推荐了三种方式,我采用里面最方便的方式init.d的方法。

首先从这里下载一个配置文件,并复制所有内容。

下载地址:raw.githubusercontent.com/fhd/init-script-template/master/template

然后使用如下命令在init.d目录下创建一个homebridge启动的文件:

sudonano /etc/init.d/homebridge[进入后粘贴上下载的配置文件的内容]

修改文件内容如下,不要忘记provide也要写:

需要修改的地方

我发现网上很多人都设置之后,发现开机还是不能自启。

还会出现这样的错误

需要注意的是:

(1)用户名用pi登录的话,user就是pi

(2)cmd 命令失效,网上很多人都是用 cmd="DEBUG=* /usr/local/bin/homebridge",

而我用的是cmd="DEBUG=* /usr/bin/homebridge"。

修改文件的权限:

sudochmod755/etc/init.d/homebridge

sudoupdate-rc.d homebridgedefaults

启动:

sudo/etc/init.d/homebridge start

之后在关机重启,homebridge就会自动启动了。

开机以后查看日志文件

开机启动正常的日志文件

如果发现无法开机自动启动,查看log日志就可以发现错误问题。

方式三:目前还没看到,知道的朋友跟我简信说下。

14:相关链接及参考(再次感谢诸大神)

树莓派打造家庭中枢教程(完整版)

【再更新】小米网关接入Homekit完整教程,声控家中设备!

Home Assistant + 树莓派:强大的智能家居系统 · 安装篇

首发威锋!我们一起来玩HomeKit智能家居!用Siri来控制你的家用电器!

linux(ubuntu)下安装nodejs并配置环境,(树莓派2代ARM6处理器)

hassbian镜像地址

新手:树莓派快速安装HomeAssistant

Raspberry Pi 树莓派 Zero W 安装Homeassistant-Homebridge教程及避坑指南

node.js安装版本

homebridge自启动出现问题

树莓派2 HomeKit

小白贴-Hass.io安装、sonoff、黑豆接入HA

借助树莓派与 HomeBridge ,将 YeeLight 彩光灯接入 Apple HomeKit | Matrix 精选

[不定期更新]Homekit智能家庭实现计划

开启自启动homebridge,不过好像不行,待解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容