前言
接 https://cloud.tencent.com/developer/article/2067247
现在小爱可以控制台灯了,但是siri不可以啊,那么,可以通过ha进行控制
设置
编辑配置文件configuration.yaml
# 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: "off"
代码语言:javascript复制类型还有 开关型传感器(binary_sensor) 摄像头(camera) 窗帘(cover) 电扇(fan) 灯(light) 传感器(sensor) 开关(switch) 警告: 如果是一个灯,一定要选择好设备类型
当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
(字符串)(可选)表示不可用状态的有效内容。
默认值:离线