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

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的开放源代码应用服务器&#xff0…...

Go单元测试及框架使用

Go自带测试框架 单元测试 建议Go 语言推荐测试文件和源代码文件放在一块,测试文件以 _test.go 结尾。函数名必须以 Test 开头,后面一般跟待测试的函数名参数为 t *testing.T 简单测试用例定义如下: func TestXXXX(t *testing.T) {// ...}…...

TreeMap类型实体类数据进行排序

实体类Student类代码如下所示&#xff1a; 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模型格式转换!

行业&#xff1a; 电力和公用事业、化工、造船、能源、采矿业 挑战&#xff1a; 创建大规模复杂资产的客户需要汇集多种类型的数据&#xff0c;以支持初始设计和创建强大的数字双胞胎&#xff1b;现有版本的产品只支持半打CAD格式&#xff1b;有限的内部开发资源限制了增加对新…...

(转载)基于遗传模拟退火的聚类算法(matlab实现)

1 理论基础 1.1 模糊聚类分析 模糊聚类是目前知识发现以及模式识别等诸多领域中的重要研究分支之一。随着研究范围的拓展&#xff0c;不管是科学研究还是实际应用&#xff0c;都对聚类的结果从多方面提出了更高的要求。模糊C-均值聚类(FCM)是目前比较流行的一种聚类方法。该…...

【C++】struct 和 class 的区别

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快。时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 在 C 中&#xff0c;struct 和 class 唯一的区别就在于 默认的访问权限不同。区别如下&#xff1a; …...

活动笔记丨物业行业人效提升与灵活用工新路径

近日&#xff0c;盖雅工场成功举办物业行业人效提升专场交流&#xff0c;来自广深地区央企和民营的领先物业企业和现场服务业的多位代表齐聚深圳招商积余大厦&#xff0c;共同研讨行业人效提升的挑战和实践。 本次闭门交流会聚焦于人效提升&#xff0c;讨论话题包括各自企业在人…...

学习笔记:吴恩达ChatGPT提示工程

以下为个人笔记&#xff0c;原课程网址Short Courses | Learn Generative AI from DeepLearning.AI 01 Introduction 1.1 基础LLM 输入 从前有一只独角兽&#xff0c;输出 它和其他独角兽朋友一起住在森林里输入 法国的首都在哪&#xff1f;输出 法国的首都在哪&#xf…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...