官网:https://www.home-assistant.io/components/fan.mqtt/
1 添加配置文件
要在安装中启用MQTT风扇,请将以下内容添加到您的configuration.yaml
文件中:
手动模式
# Example configuration.yaml entry
fan:
- platform: mqtt
name: "Bedroom Fan"
state_topic: "bedroom_fan/on/state"
command_topic: "bedroom_fan/on/set"
oscillation_state_topic: "bedroom_fan/oscillation/state"
oscillation_command_topic: "bedroom_fan/oscillation/set"
speed_state_topic: "bedroom_fan/speed/state"
speed_command_topic: "bedroom_fan/speed/set"
qos: 0
payload_on: "true"
payload_off: "false"
payload_oscillation_on: "true"
payload_oscillation_off: "false"
payload_low_speed: "low"
payload_medium_speed: "medium"
payload_high_speed: "high"
speeds:
- low
- medium
- high
添加后重启hass生效。
网友的设置,可参考
fan:
- platform: mqtt
name: "fengshan2"
state_topic: "home/fengshan/2/stat"
command_topic: "home/fengshan/2"
oscillation_state_topic: "home/fengshan/2/stat"
oscillation_command_topic: "home/fengshan2"
speed_state_topic: "home/fengshan/2/stat"
speed_command_topic: "home/fengshan/2"
retain: false
qos: 0
payload_on: "1"
payload_off: "0"
payload_low_speed: "1"
payload_medium_speed: "2"
payload_high_speed: "3"
payload_oscillation_on: "4"
payload_oscillation_off: "5"
speeds:
- low
- medium
- high
自动模式
将上述配置信息打包成 json包,发送给 配置话题,hass自动发现
- esp8266硬件受限制于mqtt库发送数据包有长度限制,没法一次性发送完。
- 可以用手机或电脑调试助手MQTT调试助手发送这个配置信息,他们能够发送的更长。
2 具体操作
登陆服务器
找到配置文件
添加风扇的信息
保存。
重启hass
hass开在某一个screen里面
找到这个背后screen,然后进去就是hass运行的命令窗口
连着三次 ctrl + c 关闭,重启
正常运行后,打开网页
http://www.dongvdong.top:8123/states
输入hass密码
发现多了个风扇设备。
3HASS调试
手机mqtt调试助手---模拟风扇
分别订阅风扇的所有命令话题--看看不同的命令收到什么消息
点击打开
发现收到 true
但是风扇并没有因为网页按钮打开就开了,我们发现这个按钮马上自动回到关闭状态,它必须是风扇设备本身往状态话题里发送 我开了,网页才会更新风扇是开的状态。
利用手机状态话题 发送一个开的命令
然后看到网页开关自动更新为 开
在开着的状态下电机风扇,出现更多控制界面
这些按键都按一遍--
三个挡位的速度
摇头开启
这么多话题,不如全部搞到一个话题里。
三个挡位命令不冲突,但是开关和摇头都是 true ,放在一个话题容易误判。
当然可以修改配置文件,不用的命令
挡位只有三个,能不能更多,我们来看下参数说明,寻找下
官网说明:https://www.home-assistant.io/components/fan.mqtt/
开和关
command_topic
(字符串)(必需)要发布更改扇区状态的命令的MQTT主题。
state_topic
(字符串)(可选)订阅MQTT主题以接收状态更新。
摇头功能
oscillation_state_topic
(字符串)(可选)订阅MQTT主题以接收振荡状态更新。
oscillation_command_topic
(字符串)(可选)用于发布更改振荡状态的命令的MQTT主题。
速度挡位
speed_state_topic
(字符串)(可选)订阅MQTT主题以接收速度状态更新。
speed_command_topic
(字符串)(可选)用于发布命令以更改速度状态的MQTT主题。
具体挡位--貌似就三个挡位
payload_low_speed
(字符串)(可选)表示风扇低速的有效负载。
默认值:低
payload_medium_speed
(字符串)(可选)表示风扇中速的有效负载。
默认值:中等
payload_high_speed
(字符串)(可选)表示风扇高速的有效负载。
默认值:高
下面这个不知道是干啥的
speed_value_template
(字符串)(可选)定义模板以从速度有效负载中提取值。
4 天猫精灵控制
上一步我们已经在hass上随意控制风扇了,现在接入天猫精灵语音控制。
1添加hass已有设备到天猫精灵中。
登陆 https://bbs.hassbian.com/tmall/information.php
首先看到之前添加的设备,有的已经在hass中没有了,但是猫精这里必须手动删除,不会自动跟随消失。
增加--真实设备
这个列表只会出现hass上正存在的设备。(有的esp8266是自动配置的,必须在hass正常运行给hass发送一次自己的配置信息,hass重启后就没有了,需要重发)
凡是和风扇相关的属性都选择
添加
打开天猫精灵手机APP,发现多了个设备
点开后,按照常理,应该有教程信息
比如 请说打开风扇
将卧室的风扇调为慢速模式
。。。。
但是空白的,不管了
6语音调试
由于没有显示提示语,半天找不到怎么设置风速
论坛网友: https://bbs.hassbian.com/forum.php?mod=viewthread&tid=502&highlight=%E9%A3%8E%E6%89%87
演示视频:http://www.le.com/ptv/vplay/30322261.html
他在视频中使用的是 苹果siri
hey siri 将卧室的风扇设置为 50%
我按照类似说法,天猫精灵就是没反应。
看了下面总说明,目前hass论坛 仅支持打开和关闭,风扇的摇头和速度没添加。
灯倒是支持 开关 亮度 颜色
接入总说明:
https://bbs.hassbian.com/thread-2914-1-1.html
-----------------------------------------------------------------论坛内容-------------------------------------------------------------------------
- 目前支持HomeAssistant里以switch、light、media_player、fan、cover 前缀设备的打开、关闭和他们电源状态查询,灯光颜色亮度(‘把灯的亮度调到80’,最大100)调节。
- sensor 温湿度传感器的查询(要求传感器id里必须包含 temperature、humidity、pm25的关键字),其他传感器天猫官方还未支持。
- deviceId请直接在列表里勾选
- deviceType按你实际控制的东西在列表中选择
- deviceName请跟deviceType保持一致
- 最开始配置的hass公网地址时 一定要带 http:// "http://你的域名:端口号"
特殊控制说明
操作action
设置颜色 SetColor 命令:把(客厅)的(落地灯)调成(白色)
设置亮度 SetBrightness 命令:把(客厅)的(吸顶灯)亮度调到(80)【范围0-100】
打开 TurnOn
关闭 TurnOff
查询action
Query
QueryPowerState (客厅)的(吸顶灯)开着呢嘛?
QueryPm2.5 (客厅)的(传感器)的(PM2.5)是多少?
QueryHumidity (客厅)的(传感器)的(湿度)是多少?
QueryTemperature (客厅)的(传感器)的(温度)是多少?
QueryIllumination (客厅)的(传感器)的(亮度)是多少?
-----------------------------------------------------------------论坛内容-------------------------------------------------------------------------