(二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列
参考网站
1该mqtt光平台可以让您控制您的MQTT启用灯。它支持设置亮度,色温,效果,闪烁,开/关,RGB颜色,过渡,XY颜色和白色值。
https://www.home-assistant.io/components/light.mqtt/
2 如何自动发现MQTT设备-hass外文教程(全面)
https://www.home-assistant.io/docs/mqtt/discovery/
3 如何自动发现MQTT设备-hass中文教程(简洁)
https://www.hachina.io/docs/7230.html
1 开启自动发现MQTT设备功能----------修改HASS配置文件
HomeAssistant支持自动发现,需要在配置文件中增加:
mqtt:
# 此处为mqtt原有的一些配置
# ……
# 配置自动发现
discovery: true
# 自动发现使用的主题位置前缀,缺省为homeassistant
discovery_prefix: homeassistant
2hass自动发现配置话题格式
设备将自己的配置信息发布在主题位置:
例如:一个编号ID为 “led1091289” 的开关(switch)需要把自己的配置信息发送到如下位置,hass才能自动识别它是一个开关类型设备
homeassistant/switch/led1091289/config

除了开关还有支持自动发现的设备包括:
- 开关型传感器(binary_sensor)
- 摄像头(camera)
- 窗帘(cover)
- 电扇(fan)
- 灯(light)
- 传感器(sensor)
- 开关(switch)
警告: 如果是一个灯,一定要选择好设备类型
例如一个 七彩可调亮度和颜色的灯
正确话题;
homeassistant/light/led1091289/config
在此话题下,hass判定这是一个灯,可以正确使用开关,颜色,亮度修改API
错误话题:
homeassistant/switch/led1091289/config
在此话题下,hass判定这是一个开关(例如插座),只能使用开关API,其余颜色和亮度API无法使用
3设备自身配置变量
例如,一个mqtt设备在配置文件中,一个只具备开关功能的灯配置信息。
switch:
- platform: mqtt
name: "garden"
command_topic: "hachina/switch/irrigation/set"
state_topic: "hachina/switch/irrigation/state"
hachina / 设备类型 /设备编号/ set
hachina / 设备类型 /设备编号/ state
为了给hass能够识别,需要把这些信息打包成json格式;
{"name": "garden", "command_topic": "hachina/switch/irrigation/set", "state_topic": "hachina/switch/irrigation/state"}
然后发送给配置话题
homeassistant/light/led1091289/config
4 示例使用
4.1仅支持开和关的一般灯
配置话题
homeassistant/light/led1/config
发送您内容
{"name": "garden", "command_topic": "hachina/switch/irrigation/set", "state_topic": "hachina/switch/irrigation/state"}
当HomeAssistant读取此信息,相当于配置文件中存在以下内容:
switch:
- platform: mqtt
name: "garden"
command_topic: "hachina/switch/irrigation/set"
state_topic: "hachina/switch/irrigation/state"
4.2支持亮度和RGB
------设备(例如ESP8266)上电后检查和MQTT连接状态,每次断连后重新往配置话题发送自己的配置信息。
配置话题
homeassistant/light/rgb_led1/config
发送内容:
{"name": "RGBlight", "command_topic": "hachina/rgb1/light/switch", "state_topic": "hachina/rgb1/light/status","brightness_command_topic": "hachina/rgb1/brightness/set", "brightness_state_topic": "hachina/rgb1/brightness/status","rgb_command_topic": "hachina/rgb1/rgb/set","rgb_state_topic": "hachina/rgb1/rgb/status","state_value_template": "{{ value_json.state }}","brightness_value_template": "{{ value_json.brightness }}","rgb_value_template": "{{ value_json.rgb | join(',') }}","optimistic": false}
当HomeAssistant读取此信息,相当于配置文件中存在以下内容:
platform: mqtt
name: "Office Light RGB"
state_topic: "hachina/rgb1/light/status"
command_topic: "hachina/rgb1/light/switch"
brightness_state_topic: "hachina/rgb1/brightness/status"
brightness_command_topic: "hachina/rgb1/brightness/set"
rgb_state_topic: "hachina/rgb1/rgb/status"
rgb_command_topic: "hachina/rgb1/rgb/set"
state_value_template: "{{ value_json.state }}"
brightness_value_template: "{{ value_json.brightness }}"
rgb_value_template: "{{ value_json.rgb | join(',') }}"
qos: 0
payload_on: "ON"
payload_off: "OFF"
optimistic: false
5 硬件实现
官网给的基本例程,还没有加入自动发现,是在手动添加配置文件前提下,控制灯的ESP8266代码。
可参考用:https://www.home-assistant.io/components/light.mqtt/

注意修改 esp8266 mqtt库允许发送最大的 数据长度

除了这四个基本参数,还有更多其他参数。
- 名称
-
(字符串)(可选)灯的名称。
默认值:MQTT Light
- command_topic
-
(字符串)(必需)MQTT主题,用于发布更改开关状态的命令。
- brightness_command_topic
-
(字符串)(可选)用于发布命令以更改灯光亮度的MQTT主题。
- brightness_scale
-
(整数)(可选)定义MQTT设备的最大亮度值(即100%)。
默认值:255
- brightness_state_topic
-
(字符串)(可选)订阅的MQTT主题接收亮度状态更新。
- brightness_value_template
-
(字符串)(可选)定义用于提取亮度值的模板。
- color_temp_command_topic
-
(字符串)(可选)要发布命令以更改灯的色温状态的MQTT主题。色温命令滑块的范围为153到500 mired(微倒数)。
- color_temp_state_topic
-
(字符串)(可选)订阅的MQTT主题接收色温状态更新。
- color_temp_value_template
-
(字符串)(可选)定义模板以提取色温值。
- effect_command_topic
-
(字符串)(可选)要发布命令以更改灯光效果状态的MQTT主题。
- effect_state_topic
-
(字符串)(可选)订阅的MQTT主题接收效果状态更新。
- effect_value_template
-
(字符串)(可选)定义模板以提取效果值。
- effect_list
-
(字符串列表)(可选)灯光支持的效果列表。
- on_command_type
-
(字符串)(可选)定义何时发送payload_on。使用
last(默认)将首先发送任何样式(亮度,颜色等)主题,然后payload_on发送到command_topic。使用first将发送payload_on然后发送任何样式主题。使用brightness只会发送亮度命令而不是payload_on打开灯。 - 乐观
-
(boolean)(可选)用于定义switch是否在乐观模式下工作的标志。
默认值:
true如果没有定义状态主题,则为elsefalse。 - payload_on
-
(字符串)(可选)表示启用状态的有效内容。
默认值:ON
- payload_off
-
(字符串)(可选)表示禁用状态的有效内容。
默认值:OFF
- 服务质量
-
(整数)(可选)状态主题的最大QoS级别。
默认值:0
- 保留
-
(布尔值)(可选)如果发布的消息应该具有保留标志。
默认值:false
- rgb_command_template
-
(字符串)(可选)定义用于撰写将发送到的消息的模板
rgb_command_topic。可用变量:red,green和blue。 - rgb_command_topic
-
(字符串)(可选)用于发布命令以更改灯光RGB状态的MQTT主题。
- rgb_state_topic
-
(字符串)(可选)订阅MQTT主题以接收RGB状态更新。例如,预期有效载荷是由逗号分隔的RGB值
255,0,127。 - rgb_value_template
-
(字符串)(可选)定义用于提取RGB值的模板。
- state_topic
-
(字符串)(可选)订阅MQTT主题以接收状态更新。
- state_value_template
-
(字符串)(可选)定义用于提取状态值的模板。模板应与有效负载
on和off值匹配,因此如果您的灯用于power on打开,则在开关打开state_value_template时应返回字符串power on。例如,如果消息是公正的on,那么您state_value_template应该是power。 - white_value_command_topic
-
(字符串)(可选)要发布命令以更改灯的白色值的MQTT主题。
- white_value_state_topic
-
(字符串)(可选)订阅的MQTT主题接收白值更新。
- white_value_template
-
(字符串)(可选)定义模板以提取白色值。
- xy_command_topic
-
(字符串)(可选)用于发布命令以更改灯的XY状态的MQTT主题。
- xy_state_topic
-
(字符串)(可选)订阅的MQTT主题接收XY状态更新。
- xy_value_template
-
(字符串)(可选)定义用于提取XY值的模板。
- availability_topic
-
(字符串)(可选)订阅MQTT主题以接收可用性(在线/离线)更新。
- payload_available
-
(字符串)(可选)表示可用状态的有效内容。
默认值:在线
- payload_not_available
-
(字符串)(可选)表示不可用状态的有效内容。
默认值:离线
(二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列的更多相关文章
- (二 -3-1) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列 esp8266程序
设备1 上电自动注册自己是个1个开关 HASS网页和手机APP控制 外部开关上升沿中断控制 天猫精灵语音控制 一键配网 记录以往WIFI信息 设备2 上电后,自动注册自己有三个开关控制 HASS网页和 ...
- (二 -3-1) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列 实战
#本片教程介绍了具体如何实现天猫精灵控制一个灯. 前提: HASS平台 你已经搭建一个可以在公网IP访问到的HASS平台--- 我用的是租了阿里云服务器,买了个域名,ubuntu1604系统 你已经搭 ...
- (二 -4) 天猫精灵接入Home Assistant-自动发现Mqtt设备--传感器系列
https://www.home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/ 最 ...
- (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备
参考中文教程: https://www.hachina.io/docs/7230.html 英文官网 两个温度传感器:https://www.home-assistant.io/docs/mqtt/ ...
- (二 -5) 天猫精灵接入Home Assistant-自动发现Mqtt设备--电风扇
官网:https://www.home-assistant.io/components/fan.mqtt/ 1 添加配置文件 要在安装中启用MQTT风扇,请将以下内容添加到您的configuratio ...
- (二 -3-3) 天猫精灵接入Home Assistant-自动发现Mqtt设备-自动生成配置信息
http://www.hassmart.com/products/switches/#tab=config switch: - platform: mqtt name: keting state_to ...
- (四) 天猫精灵接入Home Assistant-ESP-WIFI模块通过mqtt协议接入HASS
总过程 1 ESP8266上电后,初始化 连接MQTT服务器 发布自身配置信息----hass自动发现该设备 订阅hass的命令话题---接收命令 发布hass的状态话题---返回自身状态 2 ESP ...
- (二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备
关于hass对接mqtt 请参考官网 https://www.hachina.io/docs/7083.html 1 登陆运行着hass的阿里云服务器 2 修改hass配置文件,添加mqtt服务信息 ...
- (零 ) 天猫精灵接入Home Assistant-总说明
天猫精灵设备管理 https://bbs.hassbian.com/tmall 自己的hass访问地址 http://[自己的IP或域名]:8123/states 自己的MQTT服务器访问 http: ...
随机推荐
- 二、Laravel手动下载安装及初始化配置(此处以Laravel5.2为例)
1.下载安装Laravel5.2的几种方法 —— 一键安装包下载: —— http://www.golaravel.com/download/ —— github下载 —— https://githu ...
- SQL查询,关联查询的区别 (LEFT JOIN 、LEFT OUTER JOIN、INNER JOIN)
), f2 ) ) ), f2 ) ) ------------------------------------------------ ','a1') ','a2') ','a3') ','a4') ...
- nodeJs express mongodb 建站(mac 版)
基本环境 homebrew.node.npm.express.mongodb 1.node .npm : (1)辅助工具:homebrew安装(mac下一个软件管理工具,相当于Red hat的yum, ...
- 初识HTTP协议web开发
HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的 ...
- Android绘制优化(一)绘制性能分析
前言 一个优秀的应用不仅仅是要有吸引人的功能和交互,同时在性能上也有很高的要求.运行Android系统的手机,虽然配置在不断的提升,但仍旧无法和PC相比,无法做到PC那样拥有超大的内存以及高性能的CP ...
- SAP 销售条件表增强栏位
有时遇到一个比较特殊的业务,比如公司间免费订单,既要让价格为0,不读取VK11里创建的价格, 又要让公司间的价格读取VK11,这实际上是有矛盾的,也就是说一个订单里面的两行,物料一样,客户一样,就会出 ...
- Linux没有最小只有更小----迷你Linux版本大集合(转)
[自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux ...
- Java读取.properties配置文件
一.介绍 Properties文件在Java中主要为配置文件,文件类型为:.properties,格式为文本文件,内容格式为"键=值" 二.读取 这里我采用的是getResourc ...
- SQL Server -- 回忆笔记(一):初见数据库
SQL Server知识点回忆篇(一):初见数据库 1. 主键 primary key 唯一标识, 不会重复的值才会用来当做主键使用. 表可以没有主键,但建议每张表都有主键. 2. 数据冗余 ...
- 简单易懂的程序语言入门小册子(1.5):基于文本替换的解释器,递归定义与lambda演算的一些额外说明
这一篇接在第一篇lambda演算的后面.讲讲一些数学知识. 经常有些看似很容易理解的东西,一旦要描述得准确无误,就会变得极为麻烦. 软件工程里也有类似情况:20%的代码实现了核心功能,剩下80%的代码 ...