参考网站

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如果没有定义状态主题,则为else false

payload_on

(字符串)(可选)表示启用状态的有效内容。

默认值:ON

payload_off

(字符串)(可选)表示禁用状态的有效内容。

默认值:OFF

服务质量

(整数)(可选)状态主题的最大QoS级别。

默认值:0

保留

(布尔值)(可选)如果发布的消息应该具有保留标志。

默认值:false

rgb_command_template

(字符串)(可选)定义用于撰写将发送到的消息的模板rgb_command_topic。可用变量:redgreenblue

rgb_command_topic

(字符串)(可选)用于发布命令以更改灯光RGB状态的MQTT主题。

rgb_state_topic

(字符串)(可选)订阅MQTT主题以接收RGB状态更新。例如,预期有效载荷是由逗号分隔的RGB值255,0,127

rgb_value_template

(字符串)(可选)定义用于提取RGB值的模板

state_topic

(字符串)(可选)订阅MQTT主题以接收状态更新。

state_value_template

(字符串)(可选)定义用于提取状态值的模板。模板应与有效负载onoff值匹配,因此如果您的灯用于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设备--灯系列的更多相关文章

  1. (二 -3-1) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列 esp8266程序

    设备1 上电自动注册自己是个1个开关 HASS网页和手机APP控制 外部开关上升沿中断控制 天猫精灵语音控制 一键配网 记录以往WIFI信息 设备2 上电后,自动注册自己有三个开关控制 HASS网页和 ...

  2. (二 -3-1) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列 实战

    #本片教程介绍了具体如何实现天猫精灵控制一个灯. 前提: HASS平台 你已经搭建一个可以在公网IP访问到的HASS平台--- 我用的是租了阿里云服务器,买了个域名,ubuntu1604系统 你已经搭 ...

  3. (二 -4) 天猫精灵接入Home Assistant-自动发现Mqtt设备--传感器系列

    https://www.home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/ 最 ...

  4. (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备

    参考中文教程:  https://www.hachina.io/docs/7230.html 英文官网 两个温度传感器:https://www.home-assistant.io/docs/mqtt/ ...

  5. (二 -5) 天猫精灵接入Home Assistant-自动发现Mqtt设备--电风扇

    官网:https://www.home-assistant.io/components/fan.mqtt/ 1 添加配置文件 要在安装中启用MQTT风扇,请将以下内容添加到您的configuratio ...

  6. (二 -3-3) 天猫精灵接入Home Assistant-自动发现Mqtt设备-自动生成配置信息

    http://www.hassmart.com/products/switches/#tab=config switch: - platform: mqtt name: keting state_to ...

  7. (四) 天猫精灵接入Home Assistant-ESP-WIFI模块通过mqtt协议接入HASS

    总过程 1 ESP8266上电后,初始化 连接MQTT服务器 发布自身配置信息----hass自动发现该设备 订阅hass的命令话题---接收命令 发布hass的状态话题---返回自身状态 2 ESP ...

  8. (二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备

    关于hass对接mqtt 请参考官网 https://www.hachina.io/docs/7083.html 1 登陆运行着hass的阿里云服务器 2 修改hass配置文件,添加mqtt服务信息 ...

  9. (零 ) 天猫精灵接入Home Assistant-总说明

    天猫精灵设备管理 https://bbs.hassbian.com/tmall 自己的hass访问地址 http://[自己的IP或域名]:8123/states 自己的MQTT服务器访问 http: ...

随机推荐

  1. mapper代理查询

    对于查询来说,要根据具体的业务,来指定mapper接口中方法的返回值类型1:如果只返回一条记录,mapper接口中方法的返回值类型应指定为pojo类型或其他简单类型,这样mybatis内部就会使用se ...

  2. vuejs-指令详解

    v-if v-if指令可以完全根据表达式的值在DOM中生成或移除一个元素.如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除:否则,对应元素的一个克隆将被重新插入DOM中,代码如下: ...

  3. 2018-06-21 中文代码示例视频演示Python入门教程第五章 数据结构

    知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如T ...

  4. Android图片采样缩放

    为什么要对Android中的图片进行采样缩放呢? 是为了更加高效的加载Bitmap.假设通过imageView来显示图片,很多时候ImageView并没有图片的原始尺寸那么大,这时候把整张图片加载进来 ...

  5. Python高级特性:列表生成式

    列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 最常见的例子: 生成list [, , , , , , , , , ]可以用li ...

  6. mac os安装多个版本的chrome

    1.下载chrome69安装程序后,双击dmg文件 2.将chrome拖到Application文件夹,如图,选择保留两者,不要替换 打开应用程序,会多出一个Google Chrome2,重命名为Go ...

  7. 【效率工具】史上最好用的SSH一键登录脚本,超强更新!

    说明 虽然已经是凌晨,但丝毫不能掩盖我激动的心情,今天完成了对GotoSSH的一次大更新,新增了两个肥肠实用的功能,我只能说,是真的好用,话不多说,先来看效果图: 普通的一键登录: 一键登录跳板机,然 ...

  8. 列表转换为字典(setdefault())

    li=[11,22,33,44,66,77,88] dict={} li_less=[] li_large=[] for i in li: if i == 66:continue if i < ...

  9. 适用于VS C++环境的注释代码段,可以让你的代码被使用时有高可读性的注释

    编码时,在对高级语言(C#/VB etc)函数的访问时,经常会有很明确的函数功能提示,参数提示,与返回值提示.微软的VisualStudio C++集成开发环境同样有这样的功能,只是常见开源的代码很少 ...

  10. 微服务扩展新途径:Messaging

    [编者按]服务编排是微服务设置的一个重要方面.本文在利用 ActiveMQ 虚拟话题来实现这一目标的同时,还会提供实用性指导.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 目前,微服务使用 ...