智能家居DIY老司机手把手带你入坑Hassbian(无坑版)
前言
这几年,随着物联网所兴起的智能家居,热度逐渐上升,价格屠夫小米入场后,去年的小米感恩节着实普及了一把智能家居,站内也有不少装修文章和系列文章,基本都是使用小米套装,初步使用还是不错,但限制了系统的兼容性,也不能充分利旧,所以是时候考虑DIY,引入开源系统了,开源智能家居可以使用的系统比较多,综合考虑,一般都会使用HomeAssistant和HomeBridge来对接前端各厂家设备,后端直接自动化控制或者接入Apple的Homekit实现操作,之前站内主要都是介绍利用树莓派安装Hass.io的,具体可参看@Jun-long 的系列文章。
系列篇章主要介绍了Hass.io的安装配置及设备接入,对新手着实很是友好,了解的人也都能看懂,但对于小白,缺少step by step的引导,一些小白的错误很容易导致半途而废,而且就个人的理解,每个人的需求和现有设备都不一样,要最大化利用,同样是利用树莓派,上hass.io还是不如直接安装Hassbian系统。
系统区别介绍
Home Assistant 是一个基于Python 3开发的开源家庭自动化平台。可以跟踪和控制家庭中的所有设备,并实现自动化控制。殊途同归,不管如何安装,最终同时通过HomeAssistant对接Apple的Homekit,可以完美的运行在Raspberry Pi(树莓派),简单的方式可以通过直接安装Hassbian或者Hass。
Hassbian是一个内置了Home Assistant的树莓派安装镜像。Homeassistant安装在了python的虚拟环境内,与系统python相对独立。而且hassbian目前只有树莓派的版本 Hass.io是一个基于Docker的系统,用于管理Home Assistant安装和相关应用程序【Addon】。该系统通过与宿主通信的Homeassistant进行控制。Hassio提供了一个API来管理安装。这对新手很是友好,但因为基于resinOS,性能不如直接安装Hassbian,远比不上diban9+docker+hassioso。
so,就简单和性能的均衡,一样都是安装镜像,不如安装hassbian。
而我一贯的风格
,喜欢详细的引你入坑,不了解风格的可以看我之前的文章,而这个系列初衷也是仅仅以我浅薄的知识一步步的带感兴趣的你入坑。
入坑须知
1、首先需要有足够的耐心!有没有基础都无所谓,毕竟很多辅助工具,只要有耐心,结合细心,无坚不破!
2、和安装其他系统镜像一样,你要有一个树莓派,如果你想在群晖等nas上安装,相信也不会看我这篇文章了
3、充分的想象力,没有做不到的,只有想不到的,而且你还可以顺带练练焊接和电路知识(当然也可以不学)
4、所需要的软件、镜像、工具下载,截止文章发布时最新版本,百度盘地址 密码: buie
5、主要用到的硬件有:笔记本电脑(windows或者Mac OS)、16G以上Class 10等级TF卡、树莓派3代、TF读卡器。
教程(step by step)
我将按照入坑流程手把手教你hassbian系统环境搭建、hassbian系统的个性化改造、设备接入及配置(DIY的智能开关,传感器及小米全家桶)、智能音箱和homekit的联动
1、系统安装
1.1 首先安装工具包中的Win32DiskImager(Mac可以用Etcher)、Notepad++,先点击镜像选择2017-10-11-Hassbian.img,然后选择TF所在盘符,点击右侧Flash开写,稍等一杯茶的功夫,镜像就成功写入了TF卡。(以下为etcher界面)
1.2 此时,将TF卡弹出,再重新插入电脑,将附件中ssh文件拷贝进根目录,这样就能开启ssh登陆,如果你想让树莓派摆脱网线的束缚(如果不需要可以省略这步),可以将附件中wpa_supplicant.conf用Notepad++打开,将你相连接的无线网络名称和密码替换其中的中文,保存退出,弹出TF卡。
1.3 将TF卡插入树莓派,树莓派插上网线(如果不连无线的话,插上电源也就自动开机了(记得树莓派供电电源5V 2.4A),如果你是普通网络,那可能要开始漫长的等待,Hassbian从国外服务器下载HomeAssistant自动安装很慢很慢(大概20分钟到半个小时),而且还有可能失败,失败了就得重新写卡。
1.4 这时,打开你的路由器管理界面(或者按照附件里面的MyLanViewer),即可看到对应的树莓派ip地址,此处建议ip地址绑定,方便后期管理和配置(具体参见不同路由器配置,以下仅为梅林的示意),等浏览器能正常访问http://树莓派IP:8123/,才说明安装完成了。
1.4 输入树莓派地址http://192.168.XX.XX:8123(中间的冒号为英文冒号),譬如为 http://192.168.10.34:8123(后面的配置都以这个示意,记得都要改为自己的),这样就开心的看到了Hassbian的界面了,跟Hass.io的区别就是左侧没有了AddOn模块。
2、系统环境配置
2.1 树莓派启动后,从路由器中查看到对应的树莓派ip及mac地址,记牢,然后打开附件中的putty,输入树莓派地址,帐户名和密码(默认的为pi和raspberry),ssh登陆树莓派。
点击连接后会弹出key注意事项,点击accept&save即可正常进入。
2.2 环境搭建跟着附件中的“树莓派环境搭建命令.txt”一步一步输入回车,记得将其中标记的需要修改的修改了再黏贴进去(为了方便,我就没有改默认用户名和密码),对应的我每一步都标注了,切记要把其中用户名、密码及ip地址改成你自己实际的
。
#更新源信息
sudo nano /etc/apt/sources.list
#用上下左右调整光标在所有源前面将#注释掉,并将如下源复制,右击鼠标右键粘进去,然后Ctrl+x,输入y保存。
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
#然后继续修改源,首先输入如下命令,回车
sudo nano /etc/apt/sources.list.d/raspi.list
#然后跟上面一样的操作方法
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
#然后就能愉快的更新了,等代码跑完就完成了源更新了
sudo apt-get update
#安装必要的Samaba,方便后期直接编辑HomeAssistant的配置文件
sudo apt-get install -y samba
#设置用户名和密码(下面示例用户名为pi,你可以改成自己的,但是要记住)
sudo smbpasswd -a pi
#编辑配置文件
sudo nano /etc/samba/smb.conf
#用方向键将光标移至最下,右键黏贴以下代码,然后Ctrl+x,输入y保存
[global]
netbios name = raspberrypi
server string = The Pi File Center
workgroup = WORKGROUP
hosts allow =
remote announce =
remote browse sync =
[HOME ASSISTANT]
path = /home/homeassistant/.homeassistant
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
force create mode = 0777
force directory mode = 0777
hosts allow =
[PI]
path = /home/pi
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
force create mode = 0777
force directory mode = 0777
hosts allow =
#然后就重启samba,samba就装好了
sudo service smbd restart
#接下来安装Mosquitto,这个就是MQTT平台,方便接入第三方设备,比如sonoff等设备
sudo apt-get install mosquitto
#编辑MQTT配置文件,设置MQTT的用户名和密码(这个后面会经常用到,牢记!)
sudo nano /etc/mosquitto/mosquitto.conf
#直接在文件中最后插入如下两行,依旧Ctrl+x,输入y保存
allow_anonymous false
password_file /etc/mosquitto/pwfile
#创建密码文件,用户名是pi(可以按照自己的想法改,但一定记住),回车后会提醒你输入两次你要设置的密码(可以设置成raspberry,方便记忆)即可
sudo mosquitto_passwd -c /etc/mosquitto/pwfile pi
#记得你刚刚输入的两遍密码,切记!!!
#接下来MQTT服务设置开机启动,这样MQTT服务就装好了
sudo /etc/init.d/mosquitto enable
#默认数据库建议更换为MariaDB数据库,毕竟好太多
sudo hassbian-config install mariadb
#新建数据库,回车后会提醒输入密码
sudo mariadb -u root -p
#然后就是新建数据表单,先将下面的用户名“用户名”和“密码”需要手动改成你之前的,再黏贴进去,回车
CREATE DATABASE hass_db;
CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'localhost';
FLUSH PRIVILEGES;
exit
#这样MariaDB数据库就装好了
#接下来就安装HomeKit环境,首先安装git和screen
sudo apt-get install -y screen git
#然后安装nodejs(黏贴一行回车后执行完再黏贴第二行哦)
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
#安装Homekit依赖包libavahi(一行一行输入回车)
sudo apt-get -y install libavahi-compat-libdnssd-dev
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild
#安装HomeBridge的插件HomeBridge-HomeAssitant
cd /
sudo npm install -g homebridge-homeassistant
#安装完了就线运行以下homebridge
homebridge
#然后看到报错信息,按Ctrl+C停止homebridge运行,然后输入如下命令
cd /home/pi/.homebridge
sudo nano config.json
#然后将如下的命令中树莓派MAC地址、访问地址和HomeAssistant的密码(默认是raspberry)和Pin码(这个可改可不改,但要遵循123-45-678的格式)黏贴如下命令
{
"bridge": {
"name": "HomeKit",
"username": "B8:D2:EB:47:4A:71", #树莓派MAC地址,改成你自己的
"port": 51826,
"pin": "123-45-678"
},
"platforms": [
{
"platform": "HomeAssistant",
"name": "HomeAssistant",
"host": "http://192.168.10.34:8123", #HomeAssistant的访问地址,改成自己的
"password": "raspberry", #HomeAssistant的密码,默认是raspberry
"supported_types": ["binary_sensor","cover","fan","garage_door","input_boolean","light","lock","media_player","rollershutter","scene","sensor","switch","climate","script","automation"],
"default_visibility": "visible"
}
]
}
#然后按Ctrl+X键,输入y,保存退出
#然后重新运行homebridge服务,输入如下命令,回车
homebridge
#可以试试iphone上家庭添加,看是否出现homebridge,没什么问题了就按Ctrl+C停止homebridge运行
#上面的设置都按照我的步骤,这边就能显示出你设置的pin码或者就是123-45-678
#然后就正式启动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 -R 0777 /var/homebridge
#快成功了,输入如下命令
cd /etc/default
sudo nano homebridge
#然后黏贴如下内容,按Ctrl+X键,输入y,保存退出
# 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)
HOMEBRIDGE_OPTS=-U /var/homebridge
# 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.target network-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
#最后一步设置下homebridge的开机启动
cd /
sudo systemctl daemon-reload
sudo systemctl enable homebridge
#安装安装了customize_UI
#附件中已经配置文件及目录中已经安装,详情可以参考官方文档https://github.com/andrey-git/home-assistant-custom-ui
#这样基本的环境就搭建好了,然后重启树莓派即可
sudo reboot
#这样基本的环境就搭建好了,然后重启树莓派即可
2.3 没什么问题,如上的一顿操作猛如虎后,重启后就是细嗅蔷薇的时候了,用非IE的浏览器打开Homeassistant地址(比如http://192.168.XX.XX:8123)后,即可开心的看到homeassistant主界面了,这样基本的环境搭建就完成了
。
如下是我一次性买的东西,主要包含有:
1、树莓派3英国版(含原装壳)、闪迪的class10内存卡
2、CH341编程器(上次改AC9时用的,实际只要用到ttl烧录功能)
3、nodeMCU 8266 v3板及其扩展版、ESP-01板、距离传感器、温湿度传感器、人体红外传感器等(主要用来做小的室内气象站和感应器,方便接入HomeAssistant)
4、Sonoff开关,用来Diy成智能模块,改造家里的墙插及插排为智能插座
这些改造过程和方法依然会在这个系列里面step by step的分享给大家。
欲知后事如何、且听下回分解
。





















校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
昨天又试了很久,homebridge就是不能自动运行。
校验提示文案
cd /
sudo systemctl daemon-reload
sudo systemctl enable homebridge
我到sudo systemctl enable homebridge这一步的时候提示failed to enable unit:invalid argument,ranhou homebridge 也没办法自动运行,重启完以后都要手动输入homebridge,iso设备上面的homekit才显示连接状态。
请问是哪一个步骤我操作失误吗?
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案