『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 9740|回复: 4

[进阶教程] (一) 天猫精灵+Home Assistant+MQTT+ esp8266+彩灯控制

[复制链接]

13

主题

62

帖子

209

积分

中级会员

Rank: 3Rank: 3

积分
209
金钱
147
HASS币
0
发表于 2018-8-31 12:23:25 | 显示全部楼层 |阅读模式
#本片教程介绍了具体如何实现天猫精灵控制一个灯。
前提:
HASS平台
  • 你已经搭建一个可以在公网IP访问到的HASS平台--- 我用的是租了阿里云服务器,买了个域名,ubuntu1604系统
  • 你已经搭建一个可以在公网IP访问到的MQTT服务器----没有好的话也可以使用官方测试用的服务器凑合下
  • 在HASS论坛注册一个账户和密码---- 一般人不给注册,你需要给管理员发送邮件证明你会基本的HASS搭建(这都不会玩个蛇)
天猫精灵
  • 花60元在咸鱼买个二手的 天猫精灵-方糖  (官网89元新的)
  • 下载天猫精灵手机APP,绑定自己的 天猫精灵-方糖
ESP8266模块
  • 随便找个能够使用arduino ide 开发的ESP8266(这里使用的是  esp8266 d1 pro min  14元)
  • 一个继电器,控制台灯开和关
运行服务器
  • 远程登录阿里云服务器


3运行 mqtt 服务器

进入 emqtt 文件路径下

1
cd Dongdong/emqttd






                               
登录/注册后可看大图

命令行进入路径,开启mqtt服务

?
1
./bin/emqttd start






                               
登录/注册后可看大图


  • ./bin/emqttd stop   关闭命令
4 运行hass
?
1
hass




  

                               
登录/注册后可看大图

回车开始运行
5 查看hass
打开谷歌游览器
输入   域名:8123
密码



登陆hass看到自己的页面
图中是我默认添加的两个测试设备

一 HASS配置-发现灯设备目的:告诉HASS平台,现在有一个新的设备---灯要被你控制管理

手动添加模式
0 打开配置文件手动配置HASS要连接的MQTT服务器
这里两个选择
一 蹭一下别人的mqtt服务器
二 直接在HASS的服务器上运行一个,这里我安装了EMQ版本的MQTT服务器,所以网址是本地的MQTT服务器  127.0.0.1:1883

?
1
2
3
4
5
6
7
8
9
10
# configuration.yaml配置样例
mqtt:
  # MQTT Broker的IP地址或者域名,这里蹭的官网测试服务器
  #broker: broker.mqtt-dashboard.com<br>  #我在hass同一个服务器上,开了一个MQTT服务器<br>  broker: 127.0.0.1<br>  # MQTT Broker的端口号,缺省为1883
  port: 1883
  #client_id: home-assistant-1
  # 用户名 不用设置
  #username: homeassistant
  # 密码  不用设置
  #password: 123456





1 打开配置文件手动增加一个设备
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
platform: mqtt
    name: "light_on"
    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




  手动添加的需要重启 hass服务。自动添加模式
0 HASS配置要连接的MQTT服务器
1 HASS配置文件中开启自动发现设备。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
# configuration.yaml配置样例
mqtt:
  # MQTT Broker的IP地址或者域名,这里蹭的官网测试服务器
  #broker: broker.mqtt-dashboard.com
  #我在hass同一个服务器上,开了一个MQTT服务器
  broker: 127.0.0.1
  # MQTT Broker的端口号,缺省为1883
  port: 1883
  #client_id: home-assistant-1
  # 用户名 不用设置
  #username: homeassistant
  # 密码  不用设置
  #password: 123456







2 ESP8266 WIFI模块(灯)发送自己的配置信息给HASS的配置话题。
hass配置话题 位置
?
1
homeassistant/light/garden/config




garden可以随意换--设备ID
发送的配置信息
?
1
{"name": "light_on", "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}







 然后可以看到 HASS平台上多了一个灯   light_on(其他两个设备忽略)

                               
登录/注册后可看大图

light_on是我用esp8266自动注册的一个只有开关状态的灯

                               
登录/注册后可看大图

TestLed2_light_MQTT是我手动在配置文件中添加的灯,具备开关  颜色 亮度

                               
登录/注册后可看大图


上述两个灯除了名字不一样,其他接收开关的话题我设置成一摸一样。
可以直接用HASS来控制灯


手机HASS app
编辑--添加设备--里面有个我们自定义的灯设备 light_on--添加进来

短按开关,长按跳出颜色控制板块

下一步,接入天猫精灵,使用语音间接控制HASS的设备(HASS自带语音识别和播放服务,也可使用)

二 天猫精灵添加灯设备--将HASS上发现的灯设备添加到天猫精灵上,从而确保猫精间接通过HASS来控制灯疑问: 为何猫精不直接控制灯?
世界灯种类千千万,鬼知道你这是什么灯,所以具体控制业务由专门开发智能家居的公司来搞,猫精只负责把语音控制解析信息给智能家居平台公司,由他们自己去控制自己平台下的灯。

1 登陆hass论坛,注册账户和密码   
https://bbs.hassbian.com
2打开天猫精灵APP,在智能家居---绑定平台账号----绑定HASS账户和密码
  这样猫精就和HASS这个具体的智能家居公司对接起来了(然而HASS不是一个公司,是一个开源项目,申请成为开发合作者)
3将HASS上已有的设备同步到天猫精灵手机APP-智能家居控制列表里,从而使得猫精间接通过HASS控制我们的灯
具体过程:
打开HASS论坛架设的配置网址
https://bbs.hassbian.com/tmall/discovery.php
输入自己的HASS地址和密码信息,进入自己的HASS设备管理

将第一步HASS发现的ID为 light_on的灯添加到天猫精灵设备管理中。
选择增加--真实设备

                               
登录/注册后可看大图


                               
登录/注册后可看大图


设置灯的信息
这里 天猫精灵看到hass上有三个设备

                               
登录/注册后可看大图

只具备 开关 不具备颜色 亮度支持

                               
登录/注册后可看大图

只具备 开关 不具备颜色 亮度支持

                               
登录/注册后可看大图

具备 开关 颜色 亮度

这里我们先添加个功能完全的

                               
登录/注册后可看大图



完成后,多出一个彩灯设备

                               
登录/注册后可看大图





打开天猫精灵APP,在智能家居中发现,多出一个彩灯设备(我已经在app里重新改名字,截图不是)

                               
登录/注册后可看大图

为了提高语音识别准确度,我按照天猫精灵APP的设置重新取了名字 --- 卧室的灯。

                               
登录/注册后可看大图

就这样,语音告诉猫精开灯,猫精解析语音后告诉HASS平台,去开哪盏灯。
-------------------------------------------------------------------------
hass是个智能家居管理平台,可以介入各种设备,具体怎么控制灯,这里需要借助MQTT通信协议和服务。
MQTT服务典型: 我想和女朋友说“我爱你”,并不是我直接告诉她,而是我在 “love”这个话题下,发布了“我爱你”这个消息,她订阅“love”话题,这样每次从“love”这个话题下,接收到“我爱你”的消息
这种服务好在哪: 凡是订阅这个话题的人,都能收到同样的消息,反之,也都可以往这个话题发消息。就像QQ和微信讨论组一样。
-------------------------------------------------------------------------

HASS接收到开哪个灯命令后,找到这个灯的信息,把开关,颜色,亮度控制命令通过MQTT放在指定话题上,等待灯来这个话题上取消息。
这个灯如何取到消息?
1能联网----这里选择ESP8266  wifi模块
2能使用MQTT--  esp8266 在 aruino ide开发平台 下有现成的MQTT通信库。使用这个库可以很轻易从对应话题拿到想要的数据。
3能当单片机控制-- ESP8266可以当一块单片机 开发,外接继电器可以控制220V的开和关。

下一篇贴出 硬件程序
回复

使用道具 举报

0

主题

13

帖子

70

积分

注册会员

Rank: 2

积分
70
金钱
57
HASS币
0
发表于 2018-8-31 14:56:52 | 显示全部楼层
先坐沙发,慢慢研究
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-8-31 16:53:37 | 显示全部楼层
楼主如果帖子是你写的,您可以用Markdwon 格式。

[md]

# MarkDown 内容

[\md]


这样把markdown 包起来
Nero
回复

使用道具 举报

13

主题

62

帖子

209

积分

中级会员

Rank: 3Rank: 3

积分
209
金钱
147
HASS币
0
 楼主| 发表于 2018-8-31 22:15:13 | 显示全部楼层
neroxps 发表于 2018-8-31 16:53
楼主如果帖子是你写的,您可以用Markdwon 格式。

[code][md]

直接从我博客上贴过来的,下次加上试试
回复

使用道具 举报

0

主题

257

帖子

915

积分

高级会员

Rank: 4

积分
915
金钱
658
HASS币
0
发表于 2018-10-5 21:25:13 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 05:27 , Processed in 0.054770 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表