当前位置: 首页 > news >正文

吃灰树莓派应用之HomeAssistant安装与Tuya插件应用

目录

一、HomeAssistant安装爬坑

1、安装依赖

2、更新Python3.9

3、安装编译cryptography所需环境

4、安装homeassistant

5、启动 Home Assistant

5、配置Home Assistant自启动

7、错误排除

二、Tuya插件应用

1、Hass注册账号及登录

 2、获取登录Tuya账号

3、在“配置”->“集成”,点击“添加集成”,输入“Tuya”添加

4、点击“Tuya”->“配置”,输入步骤5申请的账号

5、点击对应设备,即可控制设备


Home Assistant 是一款基于Python的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

Homebridge 是一个轻量级的 NodeJS 服务器,它可以把 N 多第三方设备(如米家、博联)模拟成 HomeKit 认证配件,从而接入 HomeKit 智能家居。

Home Assistant官网:Home Assistant

Home Assistant有2种安装方式:Home Assistant Operating System和Home Assistant Core,我使用的是Home Assistant Core安装到树莓派4B上。

官方有安装流程文档:https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-core

一、HomeAssistant安装爬坑

1、安装依赖

依次执行:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libffi6  libffi-dev libtiff5-dev libtiff5 libturbojpeg0-dev tzdata libsqlite3-dev sqlite3 bzip2 libbz2-dev libssl-dev openssl libncursesw5-dev

2、更新Python3.9

(1)HomeAssistant最新版需要Python3.9及以上版本,树莓派系统默认的版本为Python3.7版本,需要手动安装。按照以下步骤按照:

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0
sudo ./configure --enable-loadable-sqlite-extensions --enable-optimizations --with-ssl --prefix=/usr/local/python3 
sudo make -j4 && sudo make install

(2)安装完成后,创建软连接

sudo ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
sudo ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

(3)确定python3和pip3版本

python3 -V
pip3 -V

3、安装编译cryptography所需环境

安装homeassistant最新版失败最重要的原因就是cryptography编译失败,所以我们需要提前安装设置cryptography编译环境。

​sudo curl https://sh.rustup.rs -sSf | sh​

安装过程中出现下图所示,输入1回车即可

source ~/.cargo/env
export CRYPTOGRAPHY_DONT_BUILD_RUST=1
export CARGO_NET_GIT_FETCH_WITH_CLI=true

4、安装homeassistant

(1)创建名为 homeassistant 的用户:

sudo useradd -rm homeassistant -G dialout,gpio,i2c
sudo passwd homeassistant

(2)为 Home Assistant Core 的安装创建一个目录,并将所有者更改为该homeassistant帐户。

创建安装文件夹:

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

(3)为 Home Assistant Core 创建和更改虚拟环境

sudo su -s /bin/bash homeassistant
cd /srv/homeassistant
python3 -m venv .
source bin/activate

激活虚拟环境后(注意提示更改(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $),您将需要运行以下命令来安装所需的 Python 包。

(4)安装 Home Assistant:

pip3 install homeassistant

5、启动 Home Assistant

在虚拟环境命令行中输入:hass,启动Home Assistant,第一次启动需要等待一会。

启动成功后,可以在浏览器中输入http://X.X.X.X:8123(将XXXX 替换为树莓派的 IP地址)

5、配置Home Assistant自启动

(1)在虚拟环境输入:which hass,确定hass所在目录:

/srv/homeassistant/bin/hass


(2)使用vim编辑器编辑服务的配置文件,终端输入:

sudo vim /etc/systemd/system/home-assistant@pi.service

然后输入:

[Unit]
Description=Home Assistant
After=network.target
[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass
[Install]
WantedBy=multi-user.target

保存退出。

(3)然后输入指令,将配置文件加入系统中

sudo systemctl enable home-assistant@pi

(4)手动启动 刚刚安装的两个服务。

sudo systemctl start home-assistant@pi

这样下次就不用在终端输入命令来启动服务了,直接开启树莓派就可以使用。

7、错误排除

在启动过程中,查看日志是否有错误,根据相关错误日志排除

(1)错误1

Unable to load auth provider homeassistant: libffi.so.7: cannot open shared object file: No such file or directory

解决方案:

sudo ln -s /usr/lib/arm-linux-gnueabihf/libffi.so.6 /usr/lib/arm-linux-gnueabihf/libffi.so.7

(2)错误2

[haffmpeg.tools] Error starting FFmpeg.

解决方案:

sudo apt-get install ffmpeg 或pip3 install ffmpeg

二、Tuya插件应用

启动hass成功后,在浏览器中输入http://X.X.X.X:8123(将XXXX 替换为树莓派的 IP 地址)

1、Hass注册账号及登录

如在局域网中有已经配置好的智能设备,Hass会自动弹出对应设备厂家,点击完成。

2、获取登录Tuya账号

参考:涂鸦 IoT 开发平台配置指南(全屋智能开发方式)-涂鸦 IoT 开发平台-涂鸦开发者文档,获取登录Tuya账号。

(1)您的账户国家(地区)代码:在下拉框中选择涂鸦智能或智能生活 App 账户所在地区。

说明:在 App 中轻按 我的 > 设置 > 账号与安全 > 账号所在地 即可查询所在地信息。

(2)Tuya IoT Access ID 和 Tuya IoT Access Secret:

访问 Tuya IoT 平台云开发项目,在对应项目的 授权密钥 区域中找到 Access ID 和 Access Secret。

(3)用户名和密码:涂鸦智能或智能生活 App账户和密码

3、在“配置”->“集成”,点击“添加集成”,输入“Tuya”添加

4、点击“Tuya”->“配置”,输入步骤3申请的账号

即可导入账号下的设备

5、点击对应设备,即可控制设备

相关文章:

  • 基于Springboot+Vue实现智能停车场管理系统
  • 【模型训练】YOLOv7行人摔倒检测
  • 基于JAVA校园外卖系统Web端计算机毕业设计源码+系统+数据库+lw文档+部署
  • 4_卷积神经网络
  • [C++基础]-入门知识
  • Java8-19新特性(附官网传送门)
  • 加解密相关
  • 【TypeScript教程】# 6:使用webpack打包ts代码
  • Pytorch环境配置(anaconda安装+独显+CUDA+cuDNN)
  • Incorrect string value: ‘\xE6\x9D\x91\xE4\xB8\x8A...‘ for column ‘name‘错误解决
  • git --- git撤销commit(未push)
  • python爬虫的防盗链
  • 【UI自动化】实现C站三连功能
  • 网络规划与部署—ACL命名实验
  • MATLAB-随机森林实现数据回归分析预测
  • 【翻译】babel对TC39装饰器草案的实现
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CentOS 7 防火墙操作
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Java多线程(4):使用线程池执行定时任务
  • Js基础知识(四) - js运行原理与机制
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • PHP面试之三:MySQL数据库
  • React Native移动开发实战-3-实现页面间的数据传递
  • React-Native - 收藏集 - 掘金
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 从setTimeout-setInterval看JS线程
  • 码农张的Bug人生 - 见面之礼
  • 面试遇到的一些题
  • 微服务核心架构梳理
  • 责任链模式的两种实现
  • 带你开发类似Pokemon Go的AR游戏
  • 浅谈sql中的in与not in,exists与not exists的区别
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (23)Linux的软硬连接
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (七)理解angular中的module和injector,即依赖注入
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)深入super,看Python如何解决钻石继承难题
  • ***检测工具之RKHunter AIDE
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net Core和.Net Standard直观理解
  • .net core控制台应用程序初识
  • .NET DataGridView数据绑定说明
  • .Net FrameWork总结
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .net6Api后台+uniapp导出Excel
  • .NetCore项目nginx发布
  • .NET单元测试