1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【树莓派不吃灰】基础篇⑩ 搭建Homeassistant 开源智能家居平台平台(非Hass OS搭

【树莓派不吃灰】基础篇⑩ 搭建Homeassistant 开源智能家居平台平台(非Hass OS搭

时间:2018-08-31 21:57:24

相关推荐

【树莓派不吃灰】基础篇⑩ 搭建Homeassistant 开源智能家居平台平台(非Hass OS搭

目录

1. 前言2. 搭建Homeassistant 家庭助手2.1 环境要求:Pytho3 & pip32.1.1 Python系列之包管理工具pip32.1.2 pip3 常用命令 2.2 安装&启动HA2.2.1 安装homeassistant依赖的python库2.2.2 启动Hass2.2.3 整理搭建问题2.2.3.1 AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK2.2.3.2 error while attempting to bind on address ('::', 8123, 0, 0): address already in use2.2.3.3 多次重复安装,还是失败2.2.3.4 一直下载失败2.2.3.5 pip3.9 找不到对应目录2.2.3.6 hass启动过程中提示 libXXXX.so.3: cannot open shared object file: No such file or directory 3. 关联巴法云MQTT设备云3.1 巴法云创建主题 light0023.2 homeassistant配置规则映射3.2.1 .homeassistant文件夹创建 mqtts.yaml3.2.2 修改 configuration.yaml 文件3.2.3 找到mqtt设置,配置连接信息3.2.4 概览添加巴法云 light灯3.2.5 整理搭建问题 4. 设置树莓派开机自启动hass4.1 生成一个home-assistant.service文件4.2 给home-assistant.service创建一个链接4.3 使用 systemctl 命令设置自启动 5. 总结
❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 -10-29 ❤️❤️ 本篇更新记录 -10-29 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言 📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志🔥

1. 前言

Home Assistant 中文网

Home Assistant是一个开源的智能家居系统软件,主要有两大功能:

能接入所有平台的智能设备,打破不同厂商之间的壁垒,即使是不支持联网的传统家电,也可以通过 DIY 一些传感器和开关将其整合到 HA 中;可以自由地编程与控制,完全定制自动化场景,满足一切需求,万物互联,如你所愿。

基于HA可以连接各种外部设备(智能设备、摄像头、邮件、短消息、云服务等),手动或按照自己的需求自动的连接这些设备,构建随心所欲的智慧空间。

Home Assistant 是一个基于Python 3开发的开源家庭自动化平台。可以跟踪和控制家庭中的所有设备,并实现自动化控制。 可以完美的运行在Raspberry Pi

HomeAssistant官方支持以下几种安装方式:

Home Assistant Operating System

官方推荐的安装方式,HassOS是专门优化出的支持Home Assistant的操作系统,能够管理Home Assistant Core进程,并预安装了加载项。

Home Assistant Container

基于Docker容器安装。

Home Assistant Core

在系统python环境或python虚拟环境中安装。也是我们本篇的重点

Home Assistant Supervised

相对繁琐的安装方式,可在常规linux系统上使用。

2. 搭建Homeassistant 家庭助手

2.1 环境要求:Pytho3 & pip3

分别输入命令:

python3 -Vpip3 -V

测试表明,不换速度也很快哈哈哈。我们这里可以先试试不换的效果。

pip是Python的一款软件安装包,在安装HA前需对其换国内镜像源,树莓派输入命令::

备份

sudo cp pip.conf pip.conf.bak

修改源

sudo nano pip,conf

打开文件后,用一下命令内容覆盖原有内容(测试表明,不换速度也很快哈哈哈):

[global]

index-url=/pypi/simple/

extra-index-url=/simple

ctrl+o保存,之后回车确认,然后ctrl+x退出。

2.1.1 Python系列之包管理工具pip3

Python系列之包管理工具【pip3】

pip3(Python3 Install Package)是python3用来管理包的工具,可以用来安装、升级、卸载第三方库,当然也可以查看包信息,更加可以发布自己所写的包到Pypi。

pip3的用法,在命令行直接输入命令pip3,回车后,会有很命令的选项说明与帮助:

默认情况下树莓派系统自带了pip3工具,当然如果没有也没有关系,我们给它下一个。

安装setuptools工具

wget --no-check-certificate /packages/source/s/setuptools/setuptools-19.6.tar.gztar -zxvf setuptools-19.6.tar.gzcd setuptools-19.6/python3 setup.py buildpython3 setup.py install
安装pip3
wget --no-check-certificate /packages/source/p/pip/pip-20.3.4.tar.gztar -zxvf pip-20.3.4.tar.gzcd pip-20.3.4/python3 setup.py buildpython3 setup.py installln -s /usr/local/bin/pip3 /usr/bin/pip3ln -s /usr/local/bin/pip /usr/bin/pip

最后面这两条命令很关键,有些下载不到就是因为这个目录不对。

查看pip3版本

pip3 -V

2.1.2 pip3 常用命令

pip3安装和卸载以及常用命令

安装包

pip3 install <包名> <包名> <包名> <包名>pip3 install --upgrade <包名> <包名> <包名> <包名>
查看已安装包

pip3 list

查看已安装包信息、安装位置

pip3 show <包名>

也可以看到 homeassistant依赖了非常多的包。

卸载包

pip3 uninstall <包名>

2.2 安装&启动HA

Installation on your computer

2.2.1 安装homeassistant依赖的python库

sudo pip3 install sqlalchemy

sudo pip3 install pillowsudo pip3 install aiohttp-cors

输入命令:

sudo pip3 install homeassistant

因为homeassistant会依赖很多包,所以如果遇到某一个包下载失败,可以使用命令:

sudo pip3 install <包名>

如果在安装第三方库时出现报错"These Packages Do Not Match The Hashes From The Requirements File.问题,通常是因为网速问题导致的下载错误,导致对应的哈希值不匹配。

解决方法:需要在pip时,添加"–upgrade"参数即可。通常这时下载还会报错timeout,因此多加一个"–default-timeout=100000" 更为保险(timeout的赋值可以视情况变化)。

sudo pip3 install --upgrade <包名>

经验总结:

通过Python安装的方式,最麻烦的就是各个库版本问题以及依赖问题。需要慢慢一个个解决。最好的方式还是直接安装 homeassistant 的OS系统,树莓派可支持该系统。

如果一直无法成功,也可以尝试删掉.homeassistant文件,看看会不会是旧版本影响。

2.2.2 启动Hass

输入命令

hass --open-ui(启动成功会帮我我们自动打开web)

或者

hass -v (会打印启动过程中的日志)

上面这个图还是有问题的,解决方法看2.2.3.6小节

随便输入一个账号密码。博主这里是:

dpjcn123456

2.2.3 整理搭建问题

2.2.3.1 AttributeError: module ‘lib’ has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

解决思路:主要原因是系统当前的python和pyOpenSSL版本不对应。

卸载再重装pyOpenSSL。

pip3 uninstall pyOpenSSLpip3 install pyOpenSSL

2.2.3.2 error while attempting to bind on address (‘::’, 8123, 0, 0): address already in use
端口占用问题,提示我 8123端口有人用了。

-10-30 06:29:46.292 ERROR (MainThread) [ponents.http] Failed to create HTTP server at port 8123: [Errno 98] error while attempting to bind on address (‘::’, 8123, 0, 0): address already in use

解决方法:找到对应端口,kill掉对应PID

就两条命令:

netstat -anp | grep 8123sudo kill -9 <PID号>
2.2.3.3 多次重复安装,还是失败
如果发现安装过多次,最好是删掉历史配置文件。

我们也顺便看看文件夹里面有什么文件。

2.2.3.4 一直下载失败
如果一直下载失败,最好换成国内镜像源。

[global]

index-url=/pypi/simple/

extra-index-url=/simple

2.2.3.5 pip3.9 找不到对应目录

原因:安装的时候没有做到sysemlink关联。可以查看目录

/usr/local/bin/pip3/usr/bin/pip以及/usr/local/bin/pip3.9

ln -s /usr/local/bin/pip3 /usr/bin/pip3ln -s /usr/local/bin/pip /usr/bin/pipln -s /usr/local/bin/pip3.9 /usr/bin/pip3.9

2.2.3.6 hass启动过程中提示 libXXXX.so.3: cannot open shared object file: No such file or directory

解决思路:

Troubleshooting ImportError

输入三条命令:

sudo apt-get install libatlas-base-devpip3 uninstall numpy # remove previously installed versionapt install python3-numpy

3. 关联巴法云MQTT设备云

上面说了那么多,那么我们怎么把物联网设备关联到homeassistant。

这里我们选择巴法云mqtt来配置。

参考官方文档:

https://home-assistant-china.github.io/components/#search/mqtt

3.1 巴法云创建主题 light002

3.2 homeassistant配置规则映射

这里主要是处理.homeassistant文件下的configuration.yaml文件。

3.2.1 .homeassistant文件夹创建 mqtts.yaml

输入命令

sudo touch mqtts.yaml

sudo nano mqtts.yaml

填入以下内容:

GNU nano 5.4 mqtts.yaml #客户端IDclient_id: xxxxxxxxlight:- name: "巴法云Light"# 订阅主题state_topic: "light002"# 发布命令的主题command_topic: "light002"# 命令格式 on 开灯 和 off 关灯payload_on: "on"payload_off: "off"

xxxxxxxx 是自己在巴法云上面的私钥。保存一下这个文件。

3.2.2 修改 configuration.yaml 文件

输入命令

sudo nano configuration.yaml

填入以下内容:

GNU nano 5.4 configuration.yaml # Loads default set of integrations. Do not remove.default_config:# Text to speechtts:- platform: google_translateautomation: !include automations.yamlscript: !include scripts.yamlscene: !include scenes.yamlmqtt: !include mqtts.yaml

保存文件之后,重启一下树莓派。

sudo reboot

3.2.3 找到mqtt设置,配置连接信息

3.2.4 概览添加巴法云 light灯

找到我们的巴法云灯

操作一下开关看看,是不是状态也同步到巴法云那边。

这样接入就是OK了。

3.2.5 整理搭建问题

一些老版本的文档用其他的配置,会导致失败。

-10-30 08:36:56.637 WARNING (MainThread) [ponents.mqtt.mixins] Manually configured MQTT light(s) found under platform key ‘light’, please move to the mqtt integration key, see https://www.home-assistant.io/integrations/light.mqtt/#new_format

-10-30 08:36:56.665 WARNING (MainThread) [ponents.mqtt] The ‘broker’ option near /home/pi/.homeassistant/configuration.yaml:14 is deprecated, please remove it from your configuration

-10-30 08:36:56.675 WARNING (MainThread) [ponents.mqtt] The ‘port’ option near /home/pi/.homeassistant/configuration.yaml:14 is deprecated, please remove it from your configuration

-10-30 08:36:56.764 WARNING (MainThread) [ponents.mqtt.mixins] MQTT integration is not setup, skipping setup of manually configured MQTT light

-10-30 08:37:09.782 WARNING (MainThread) [homeassistant.setup] Setup of default_config is taking over 10 seconds.

解决思路:新旧版本问题。

4. 设置树莓派开机自启动hass

4.1 生成一个home-assistant.service文件

这里我们参考其他软件,直接复制一个,比如参考pm2.

输入命令:

sudo cp pm2-pi.service home-assistant.service

修改文件内容:

sudo nano home-assistant.service

[Unit]Description=Home AssistantAfter=network.target[Service]Type=simple User=piExecStart=/usr/local/bin/hass[Install]WantedBy=multi-user.target

保存文件。

课外知识:我们也看看/usr/local/bin/hass内容是什么?

#!/usr/bin/python3# -*- coding: utf-8 -*-import reimport sysfrom homeassistant.__main__ import mainif __name__ == '__main__':sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])sys.exit(main())

这里是直接执行一个脚本。目测也没有停止命令。

4.2 给home-assistant.service创建一个链接

输入命令:

sudo ln -s /etc/systemd/system/home-assistant.service /etc/systemd/system/multi-user.target.wants/home-assistant.service

4.3 使用 systemctl 命令设置自启动

输入命令:

sudo systemctl start home-assistant

这次我们重启一下看看。

sudo reboot

等几分钟,我们再用浏览器访问一下或者命令行查看一下。

输入命令:

netstat -anp | grep 8123

留个小问题?要屏蔽自启动要怎么做?

systemctl命令直接干掉链接文件

5. 总结

虽然用docker或者 hass os系统的方式可以免除这些操作坑,但作为一个爱好者还是希望能拆拆坑。从头到尾在树莓派官方推荐系统上安装Homeassistant 并且解决所遇到的所有问题(包括各种依赖包、链接文件、下载等等),同时也是为了折腾linux下的一些学习经验。

【树莓派不吃灰】基础篇⑩ 搭建Homeassistant 开源智能家居平台平台(非Hass OS搭建方式) 记录搭建过程的各种坑

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。