当前位置: 首页 > 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…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...