官网: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自动发现

  1. esp8266硬件受限制于mqtt库发送数据包有长度限制,没法一次性发送完。
  2. 可以用手机或电脑调试助手MQTT调试助手发送这个配置信息,他们能够发送的更长。

2 具体操作

登陆服务器

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

找到配置文件

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

添加风扇的信息

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

保存。

重启hass

hass开在某一个screen里面

找到这个背后screen,然后进去就是hass运行的命令窗口

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

连着三次 ctrl + c 关闭,重启

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

正常运行后,打开网页

http://www.dongvdong.top:8123/states

输入hass密码

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

发现多了个风扇设备。

3HASS调试

手机mqtt调试助手---模拟风扇

分别订阅风扇的所有命令话题--看看不同的命令收到什么消息

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

点击打开

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

发现收到 true

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

但是风扇并没有因为网页按钮打开就开了,我们发现这个按钮马上自动回到关闭状态,它必须是风扇设备本身往状态话题里发送 我开了,网页才会更新风扇是开的状态。

利用手机状态话题 发送一个开的命令

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

然后看到网页开关自动更新为 开

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

在开着的状态下电机风扇,出现更多控制界面

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

这些按键都按一遍--

三个挡位的速度

摇头开启

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

这么多话题,不如全部搞到一个话题里。

三个挡位命令不冲突,但是开关和摇头都是 true ,放在一个话题容易误判。

当然可以修改配置文件,不用的命令

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

挡位只有三个,能不能更多,我们来看下参数说明,寻找下

官网说明: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中没有了,但是猫精这里必须手动删除,不会自动跟随消失。

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

增加--真实设备

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

这个列表只会出现hass上正存在的设备。(有的esp8266是自动配置的,必须在hass正常运行给hass发送一次自己的配置信息,hass重启后就没有了,需要重发)

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

凡是和风扇相关的属性都选择

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

添加

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

打开天猫精灵手机APP,发现多了个设备

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

点开后,按照常理,应该有教程信息

比如  请说打开风扇

将卧室的风扇调为慢速模式

。。。。

但是空白的,不管了

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

6语音调试

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

由于没有显示提示语,半天找不到怎么设置风速

论坛网友: 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        (客厅)的(传感器)的(亮度)是多少?

-----------------------------------------------------------------论坛内容-------------------------------------------------------------------------

04-14 03:29