[Home Assistant]esp32 巴法云接入ha

前言

接 https://cloud.tencent.com/developer/article/2067247

现在小爱可以控制台灯了,但是siri不可以啊,那么,可以通过ha进行控制

设置

编辑配置文件configuration.yaml

代码语言:javascript
复制
# mqtt服务设置
mqtt:
  # MQTT Broker的IP地址或者域名
  broker: bemfa.com
  # MQTT Broker的端口号
  port: 9501
  #客户端ID
  client_id: 123456789
  # 心跳设置
  keepalive: 60

添加一个灯

light:

设备类型 MQTT

  • platform: mqtt

设备名字

name: "Bamfa 台灯"

订阅主题

state_topic: "light002"

发布命令的主题

command_topic: "light002"

命令格式 on 开灯 和 off 关灯

payload_on: "on"
payload_off: &#34;off&#34;</code></pre></div></div><blockquote><p> 类型还有

开关型传感器(binary_sensor)
摄像头(camera)
窗帘(cover)
电扇(fan)
灯(light)
传感器(sensor)
开关(switch)
警告: 如果是一个灯,一定要选择好设备类型

代码语言:javascript
复制
当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

这样ha里面就有台灯啦

其他

如果需要接入多个mqtt协议的灯,那么就写多个就可以了

代码语言:javascript
复制
官网给的基本例程,还没有加入自动发现,是在手动添加配置文件前提下,控制灯的ESP8266代码。
可参考用:https://www.home-assistant.io/components/light.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。可用变量: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
(字符串)(可选)表示不可用状态的有效内容。

默认值:离线