linux安装homeassistant(智能设备远程控制开源框架)
1、安装docker
先切换到root 用户,先安装一些基本环境:
yum install -y yum-utils device-mapper-persistent-data lvm2
添加阿里云软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
然后安装 Docker 社区版
yum -y install docker-ce
启动 docker
systemctl start docker
设定开机自动启动docker
systemctl enable docker
查看docker运行状态
systemctl status docker
查看 docker 版本信息
docker version

docker 服务显示为绿色的 running 了,表示运行中
2、部署hass
拉取hass的最新版镜像(注意:根据自己需求选择对应版本,并不是越新越好)
可访问docker官网搜索:homeassistant

或通过命令行在linux中搜索
docker search homeassistant

拉取docker镜像
docker pull homeassistant/home-assistant:latest
创建容器并运行
docker run -d --name="hass" -v ${HOME}/hass/mac_config -p 8123:8123 homeassistant/home-assistant
注:这里启动docker容器之后每次启动docker容器都会数据初始化建议进行数据挂载
docker run -d --name="hass" -v /var/lib/docker/volumes/mydata/_data/homeassistant:/config -p 8125:8123 homeassistant/home-assistant
将homeassistant/home-assistant容器内的config目录挂载到服务器本地目录的/var/lib/docker/volumes/mydata/_data/homeassistant文件下,相同容器下的目录可以共享
解释:
d:表示在后台运行
name:给容器设置别名(不然会随机生成,为了方便管理)
v:配置数据卷(容器内的数据直接映射到本地主机环境,参考路径配置
p:映射端口(容器内的端口直接映射到本地主机端口最后便是刚才下载的镜像了,运行该容器。
3、访问hass
运行需要放开端口8123,访问链接:ip:8123
4、安装hacs
首先去github官网下载hacs包
https://github.com/hacs/integration/releases

将其上传至服务器,然后使用命令cp到docker容器中,注意homeassistant容器是叫hass,比如将hacs.zip上传至服务器的/opt/文件夹下

1:进入docker容器中:docker exec -it hass bash
2:在config下创建文件夹:custom_components/hacs
3:将下载好的hacs.zip上传值/opt/目录下并使用命令拷贝至docker中:
docker cp /opt/hacs.zip hass:/config/custom_components/hacs
4:进入docker容器中并cd之hacs目录下解压:unzip hacs.zip
5:重启homeassistant并在配置中加入HACS



5、安装MQTT
安装 Mosquitto MQTT Broker
sudo yum install epel-release
sudo yum install mosquitto
启动 Mosquitto 服务
sudo systemctl start mosquitto
安装 Mosquitto MQTT 客户端
sudo yum install mosquitto-clients
测试 Mosquitto 是否正常工作
mosquitto_sub -h localhost -t test
在打开另外一个终端输入:
mosquitto_pub -h localhost -t test -m "hello world"
如果一切正常,您应该会在第一个终端窗口中看到 “hello world”。
创建用户名和密码、打开命令窗口 键入如下命令
mosquitto_passwd -c /etc/mosquitto/pwfile.example 自定义用户名
输入密码:自定义密码
修改配置文件连接MQTT服务器
在homeassistant配置文件configuration.yaml中添加以下代码
MQTT配置 注意格式
mqtt: broker: 192.168.1.207 # MQTT服务器地址 port: 1883 # MQTT端口,默认是1883 username: # MQTT用户名 password: # MQTT密码 # 配置自动发现 discovery: true # 自动发现使用的主题位置前缀,缺省为homeassistantdiscovery_prefix: homeassistant##以下的配置不常用,如果需要使用,可以删除前面的注释###连接MQTT服务器使用的Client ID。不同的客户端应该具有不同的client_id。如果不填,会是一个随机数。#client_id: 32osiwmm23##发送保持连接包的间隔时间(秒),缺省为60秒#keepalive: 60##使用MQTT协议版本,缺省情况下使用3.1.1,如果服务器端不支持,会回退到3.1#protocol: 3.1.1
添加完成后集成homeassistant

配置完成后即可对其进行测试

!
添加MQTT开关(未使用过)
在homeassistant配置文件configuration.yaml中添加以下代码
此配置添加系统内实体light.led_light_over_mqt
light:- platform: mqtt #设备类型 MQTTname: "LED light over MQTT" # 设备名字optimistic: true #打开订阅状态功能state_topic: "outTopic" #状态话题 command_topic: "inTopic" #命令话题 HASS发送控制设备的命令payload_on: "1"payload_off: "0" #命令格式 qos: 0 retain: true #是否保留标志
保存后重启系统。
在Home Assistant系统WEB概览页面编辑仪表盘添加卡片,按卡片下添加名称为LED light over MQTT的按钮,默认保存完成在概览页添加按钮。
启动NodeMCU板,在概览页点击名为LED light over MQTT的按钮即可控制板载LED并反馈在面板上。
参考文档:https://www.home-assistant.io/integrations/switch.mqtt/#retain
6、添加设备
在homeassistant上添加设备并能控制,比如添加一个小米的开关



注意
这里需要注意的一点是目前市面上大部分的智能设备都需要通过蓝牙或者内网才能进行设备控制,如果你的服务器和智能设备连接的同一网段那么没有问题,如果不是的话可在内网弄一台树莓派(树莓派的homeassistant安装可以在淘宝上购买对应的教程,docker树莓派安装且需要能持久化)
手上没有树莓派自己随便找了一个刷ha就好

后续还有一篇文章:java对接homeassistant实现远程控制(配置frp实现内网穿透)
相关文章:
linux安装homeassistant(智能设备远程控制开源框架)
1、安装docker 先切换到root 用户,先安装一些基本环境: yum install -y yum-utils device-mapper-persistent-data lvm2添加阿里云软件源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo然后安装 D…...
TensorRT Triton Inference Server: 版本 error魔术标记不匹配 , NGC使用
魔术标记不匹配错误Serialization assertion magicTagRead kMAGIC_TAG failed.Magic tag does not match 原因: 转换和推理使用的镜像的标签是相同的,但是转换的镜像中pip list得到trt版本为8.6.0,但是推理环境中 rootf2c810ba3976:/# /usr/…...
Elasticsearch 文本分析器(下)
字符过滤器 注意:字符过滤器用于在将字符流传递给分词器之前对其进行预处理 html_strip HTML元素替换过滤器 此过滤器会替换掉HTML标签,且会转换HTML实体 如:& 会被替换为 &。 {"tokenizer": "keyword","…...
Git操作方法
目录 Git是什么 Git特点 Git作用 Git原理 集中式 分布式 Git安装 修改语言 Git操作 1.初始化Git仓库 2.提交工作区的内容到版本库 3.查看版本记录 4.版本回退 5.版本前进 Git 命令 通用操作 工作状态 版本回退 版本前进 远程仓 1.GitHub 2.GitLab 3.码云…...
CorelDRAW矢量绘图2023中文版下载
市面上的矢量绘图工具虽然很多,但权威又专业的却不多,选到不好用的工具,会极大的影响自己创作,CorelDRAW简称cdr,是一款功能强大的矢量图制作软件,一说到矢量图制作,大家都会不由自主地想到cdr。…...
Java-API简析_java.lang.Float类(基于 Latest JDK)(浅析源码)
【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131129886 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…...
pycharm的基本使用
废话文学 本人记录笔记始终遵循“能动手绝不动脑,能动脑绝不动手”的基本原则。不会的操作,跟着笔记干就完事了,还动啥脑袋?留着脑细胞刷抖音擦边小姐姐他不香吗? 什么是IDE IDE即【集成开发环境】,Inte…...
为什么要使用微软的 Application Framework?
我是荔园微风,作为一名在IT界整整25年的老兵,今天来看一下我们为什么要使用微软的 Application Framework? 虽然Application Framework 并不是新观念,它们却在最近数年才成为 PC 平台上软件开发的主流工具。面向对象语言是具体实…...
Python爬虫基础知识点
Python爬虫是使用Python编写的程序,可以自动抓取互联网上的数据。常用的Python爬虫框架包括Scrapy、BeautifulSoup、Requests等。Python爬虫可以应用于众多场合,如大数据分析、信息监测、数据挖掘和机器学习等领域。那么新手应该如何学习python爬虫呢&am…...
K8s运维备忘
1.服务器集群搭建: VagrantFile中加入以下代码,创建3个虚拟机: Vagrant.configure("2") do |config| (1..3).each do |i| config.vm.define "k8s-node#{i}" do |node| # 设置虚拟机的Box …...
激光雷达+rtk+rgb联合使用(4)
因为一直在忙一些乱七八糟的事情,就没顾得上继续写,想着快速收尾算了。 前面写到,我在点云的匹配上花了大量的时间,不断的调参数,换方法,一共几百个点云,想着先每50个匹配一次,得到几…...
【K8S系列】快速初始化⼀个最⼩集群
序言 走得最慢的人,只要不丧失目标,也比漫无目的地徘徊的人走得快。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级重要蓝色:用来标记二级重要 希望这篇文章能让你不仅有…...
Exploit/CVE-2010-0738
打开JBoss的潘多拉魔盒:JBoss高危漏洞分析 *本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。 前言 JBoss是一个基于J2EE的开放源代码应用服务器࿰…...
Go单元测试及框架使用
Go自带测试框架 单元测试 建议Go 语言推荐测试文件和源代码文件放在一块,测试文件以 _test.go 结尾。函数名必须以 Test 开头,后面一般跟待测试的函数名参数为 t *testing.T 简单测试用例定义如下: func TestXXXX(t *testing.T) {// ...}…...
TreeMap类型实体类数据进行排序
实体类Student类代码如下所示: package com.test.Test11;public class Student implements Comparable<Student>{private int age;private String name;private Double height;public int getAge() {return age;}public void setAge(int age) {this.age age…...
HOOPS助力AVEVA数字化转型:支持多种3D模型格式转换!
行业: 电力和公用事业、化工、造船、能源、采矿业 挑战: 创建大规模复杂资产的客户需要汇集多种类型的数据,以支持初始设计和创建强大的数字双胞胎;现有版本的产品只支持半打CAD格式;有限的内部开发资源限制了增加对新…...
(转载)基于遗传模拟退火的聚类算法(matlab实现)
1 理论基础 1.1 模糊聚类分析 模糊聚类是目前知识发现以及模式识别等诸多领域中的重要研究分支之一。随着研究范围的拓展,不管是科学研究还是实际应用,都对聚类的结果从多方面提出了更高的要求。模糊C-均值聚类(FCM)是目前比较流行的一种聚类方法。该…...
【C++】struct 和 class 的区别
欢迎来到博主 Apeiron 的博客,祝您旅程愉快。时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 在 C 中,struct 和 class 唯一的区别就在于 默认的访问权限不同。区别如下: …...
活动笔记丨物业行业人效提升与灵活用工新路径
近日,盖雅工场成功举办物业行业人效提升专场交流,来自广深地区央企和民营的领先物业企业和现场服务业的多位代表齐聚深圳招商积余大厦,共同研讨行业人效提升的挑战和实践。 本次闭门交流会聚焦于人效提升,讨论话题包括各自企业在人…...
学习笔记:吴恩达ChatGPT提示工程
以下为个人笔记,原课程网址Short Courses | Learn Generative AI from DeepLearning.AI 01 Introduction 1.1 基础LLM 输入 从前有一只独角兽,输出 它和其他独角兽朋友一起住在森林里输入 法国的首都在哪?输出 法国的首都在哪…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
