HomeAssistant 发现MQTT设备(温度,湿度,开关)

要通过 MQTT 将温度、湿度数据以及一个灯的开关状态传输到 Home Assistant 并实现设备自动发现,可以按照以下步骤操作:

1.前期准备工作

  1. 安装MQTT服务器(EMQX)配置好(可以在HA加载项中安装,也可以在NAS上Docker安装)
    在这里插入图片描述

  2. HA的集成中安装MQTT,并且连接上(EMQX)
    在这里插入图片描述

2.设备需要通过 MQTT 发送三条配置消息,HA会自动识别:

  1. 温度传感器配置消息:
    发布到主题:homeassistant/sensor/temp_sensor/config
{"name": "Temperature Sensor","device_class": "temperature","state_topic": "homeassistant/sensor/esp8266/state","unit_of_measurement": "°C","value_template": "{{ value_json.temperature }}","unique_id": "temp_sensor","device": {"identifiers": ["esp8266_sensor"],"name": "ESP8266 Sensor","manufacturer": "Espressif","model": "ESP8266EX"}
}

在这里插入图片描述


  1. 湿度传感器配置消息:
    发布到主题:homeassistant/sensor/hum_sensor/config
{"name": "Humidity Sensor","device_class": "humidity","state_topic": "homeassistant/sensor/esp8266/state","unit_of_measurement": "%","value_template": "{{ value_json.humidity }}","unique_id": "hum_sensor","device": {"identifiers": ["esp8266_sensor"]}
}

在这里插入图片描述


  1. 灯的开关配置消息:
    发布到主题:homeassistant/switch/light/config
{"name": "Light Switch","command_topic": "homeassistant/switch/light/set","state_topic": "homeassistant/switch/light/state","unique_id": "light_switch","device": {"identifiers": ["esp8266_sensor"]}
}

在这里插入图片描述


上面只是分别将3个传感器暴露给HA,并没有附带数据

3.状态消息

设备需要定期发送状态消息,包含温度、湿度和灯的状态:
发布到主题:homeassistant/sensor/esp8266/state

{"temperature": 23.5,"humidity": 45.2,"light": "ON"
}

在这里插入图片描述

"light": "ON"  // 或 "OFF"

灯的状态也可以单独发布到 homeassistant/switch/light/state

"ON"

4.配置分析

{"name": "Temperature Sensor","device_class": "temperature","state_topic": "homeassistant/sensor/esp8266/state","unit_of_measurement": "°C","value_template": "{{ value_json.temperature }}","unique_id": "temp_sensor","device": {"identifiers": ["esp8266_sensor"],"name": "ESP8266 Sensor","manufacturer": "Espressif","model": "ESP8266EX"}
}
  1. name
"name": "Temperature Sensor"

作用:在 Home Assistant 的设备列表或仪表盘中,这个传感器会显示为“Temperature Sensor”。

  1. device_class
"device_class": "temperature"

作用:指定设备的类别。device_class 告诉 Home Assistant 这是一个温度传感器,从而可以正确地处理和显示数据。Home Assistant 会根据设备类别自动选择合适的图标和单位显示方式。

device_class用途单位示例
temperature测量温度°C 或 °F温度传感器、恒温器等
humidity测量湿度%(百分比)湿度传感器
pressure测量压力hPa(百帕)等气压传感器、水压传感器
gas测量气体浓度ppm(百万分之一)、ppb(十亿分之一)等一氧化碳传感器、天然气传感器
pm25(PM2.5)浓度µg/m³(微克/立方米)空气质量传感器
pm10(PM10)浓度µg/m³(微克/立方米空气质量传感器
voltage测量电压V(伏特)电池电压传感器、电源电压传感器
current测量电流A(安培)电流传感器、电源电流传感器
power测量功率W(瓦特)功率传感器、智能插座功率监测
energy测量能量消耗kWh(千瓦时)电表、智能插座能量监测
frequency测量频率Hz(赫兹)频率传感器
distance测量距离m(米)、cm(厘米)等超声波距离传感器、激光测距仪
illuminance测量光照强度lx(勒克斯)光照传感器
carbon_dioxide测量二氧化碳浓度ppm(百万分之一)室内空气质量传感器
battery测量电池电量%(百分比)设备电池电量传感器
signal_strength信号强度dB(分贝)、dBm(分贝毫瓦)Wi-Fi 信号强度传感器、蓝牙信号强度传感器
water水位或水量m³(立方米)、L(升)等水表、水位传感器
door / window检测门或窗的开合状态无(状态为 open 或 closed)门磁传感器、窗磁传感器
smoke检测烟雾无(状态为 detected 或 clear)烟雾报警器
carbon_monoxide检测一氧化碳无(状态为 detected 或 clear)一氧化碳报警器
flame检测火焰无(状态为 detected 或 clear)火焰传感器
moisture检测水浸或湿度无(状态为 detected 或 clear)水浸传感器
  1. state_topic
"state_topic": "homeassistant/sensor/esp8266/state"

作用:指定设备状态消息的主题。设备会将温度数据发送到这个 MQTT 主题。设备定期发送如下消息到该主题:

{"temperature": 23.5}

Home Assistant 会从这个主题读取数据并更新传感器的状态。

  1. unit_of_measurement
"unit_of_measurement": "°C"

作用:指定传感器数据的单位。这会影响 Home Assistant 如何显示数据。在 Home Assistant 的界面中,温度数据会显示为 23.5°C。

  1. value_template
"value_template": "{{ value_json.temperature }}"

作用:定义如何从设备发送的 JSON 数据中提取实际的温度值。假设设备发送的消息是:

{"temperature": 23.5, "humidity": 45.2}

使用 {{ value_json.temperature }},Home Assistant 会提取 temperature 的值23.5 作为温度传感器的值。

  1. unique_id
"unique_id": "temp_sensor"

作用:为设备设置一个唯一的标识符,用于区分不同的设备。
重要性:确保每个设备的 unique_id 是唯一的,否则 Home Assistant 可能会覆盖或拒绝重复的设备。
示例:temp_sensor 是这个温度传感器的唯一标识符。

  1. device
"device": {"identifiers": ["esp8266_sensor"],"name": "ESP8266 Sensor","manufacturer": "Espressif","model": "ESP8266EX"
}

作用:定义设备的详细信息,这些信息用于将传感器与其他设备关联起来,形成一个设备的“设备”。
identifiers:设备的唯一标识符,用于在 Home Assistant 中识别设备。
name:设备的名称,用于在 Home Assistant 的设备列表中显示。
manufacturer:设备的制造商。
model:设备的型号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20235.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【stm32】DAC实验(stm32f4hal库)

一、DAC简介 1、DAC 数字到模拟转换器(DAC)是一种电子设备,用于将数字信号转换为模拟信号。它通常用于将数字数据转换为模拟信号,以便在模拟电路中进行处理。DAC在许多领域都有广泛的应用,如音频设备、通信系统、仪器…

云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色

一、Ansible-playbook实战 1.Ansible-playbook安装软件 bash #编写yml [rootansible ansible]# cat wget.yml - hosts: backup tasks: - name: Install wget yum: name: wget state: present #检查playbook的语法 [rootansible ansible]…

前端工程化的具体实现细节

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Chapter 3 Differential Voltage Current amplifiers

Chapter 3 Differential Voltage & Current amplifiers 这一章介绍差分电压和电流放大器. Current mirrors 我们首先分析电流镜Current Mirror. 由一个diode-connected MOSCS放大MOS组成, diode-MOS将电流转换成电压, 再由CS MOS转换成电流. 考虑沟道调制效应, M1和M2的…

确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…

[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义

上周简单整理了《deepseek-r1的不同版本(满血版、蒸馏版、量化)》,这次继续完善对其的认知——补充“剪枝”,并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…

Java 反射机制深度解析:类信息的来源、declared 的区别、赋值操作及暴力反射

在 Java 开发中,反射机制是一个强大且灵活的工具,它允许程序在运行时动态地获取类的信息、创建对象、调用方法和访问字段等。本文将结合代码示例和图示,深入探讨以下四个问题: 类信息来自哪里? 获取类信息时加不加 de…

Transformer 模型介绍(四)——编码器 Encoder 和解码器 Decoder

上篇中讲完了自注意力机制 Self-Attention 和多头注意力机制 Multi-Head Attention,这是 Transformer 核心组成部分之一,在此基础上,进一步展开讲一下编码器-解码器结构(Encoder-Decoder Architecture) Transformer 模…

电脑系统损坏,备份文件

一、工具准备 1.U盘:8G以上就够用,注意会格式化U盘,提前备份U盘内容 2.电脑:下载Windows系统并进行启动盘制作 二、Windows启动盘制作 1.微软官网下载启动盘制作工具微软官网下载启动盘制作工具https://www.microsoft.com/zh-c…

Linux下Ollama下载安装速度过慢的解决方法

问题描述:在Linux下使用默认安装指令安装Ollama,下载安装速度过慢,进度条进度缓慢,一直处于Downloading Linux amd64 bundle中,具体如下图所示: 其中,默认的Ollama Linux端安装指令如下&#xf…

uniapp中@input输入事件在修改值只有第一次有效的问题解决

在uniapp中使用输入框,要求输入不超过7个字,所以需要监听输入事件,当每次输入文字的时候,就把输入的值截断,取前7个值。但是在input事件中,重新赋值的值发生了变化,但是页面上的还是没有变&…

DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

VMware按照的MacOS升级后无法联网

背景 3年前公司使用Flutter开发了一款app,现在app有微小改动需要重新发布到AppStore 问题 问题是原来的Vmware搭建的开发环境发布App失败了 提示:App需要使用xcode15IOS 17 SDK重新构建,这样的话MacOS至少需要升级到13.5 Xcode - 支持 - Ap…

Day01 【苍穹外卖】环境搭建与前后端联调

一、环境搭建 1.JDK安装与IDEA安装: JDK安装与IDEA安装:【JAVA基础】01、JAVA环境配置----JDK与 IDEA集成开发环境的安装(2025最新版本)_配置jdk-CSDN博客 注意,这里要下载JDK1.8版本的,不然会报错&…

STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失

HAL_UART_Receive接收最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失,需要在此基础优化一下. 本文介绍STM32F103 HAL库USART串口中断,利用环形缓冲区来防…

Vulnhub:DC-1靶机渗透

渗透过程 一,信息收集 1,探测目标IP地址 探测目标IP地址,探测主机的工具有很多,常见的有arp-scan、nmap还有netdiscover,这里使用arp-scan arp-scan -l确定了DC-1主机的IP地址为 192.168.126.1452,探测…

MySQL 之存储引擎(MySQL Storage Engine)

MySQL 之存储引擎 常见存储引擎及其特点 ‌InnoDB‌: ‌特点‌:支持事务处理、行级锁定、外键约束,使用聚簇索引,适合高并发读写和事务处理的场景‌。‌适用场景‌:需要高可靠性、高并发读写和事务处理的场景‌。 ‌M…

EasyX安装及使用

安装链接:EasyX Graphics Library for C 安装完成包含头文件graphics.h即可使用 RGB合成颜色(红色部分,绿色部分,蓝色部分) 每种颜色的值都是(0~255) 坐标默认的原点在窗口的左上角&#xf…

20.【线性代数】——坐标系中,平行四边形面积=矩阵的行列式

三 坐标系中,平行四边形面积矩阵的行列式 定理验证 定理 在坐标系中,由向量(a,b)和向量(c,d)组成平行四边形的面积 矩阵 [ a b c d ] \begin{bmatrix} a&b\\ c&d \end{bmatrix} [ac​bd​]的行列式,即&#x…

Grafana——Rocky9安装Grafana相关步骤记录

安装Grafana 安装 直接进下面这个页面,可以看到这边可以选择版本以及操作系统 并且如果是Linux平台的,下面会给出不同平台的命令,直接复制粘贴执行一下就可以了! 验证 运行命令 ## 运行service systemctl start grafana-server## 自启…