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

 找回密码
 立即注册
楼主: XCray

[修仙教程] YeeLight蓝牙调光开关——最新最完美的用法,纯HA内置组件!

  [复制链接]

2

主题

166

帖子

2791

积分

金牌会员

Rank: 6Rank: 6

积分
2791
金钱
2625
HASS币
0
发表于 2022-4-9 15:23:27 | 显示全部楼层
厉害了,赶紧试试
回复

使用道具 举报

3

主题

48

帖子

1063

积分

金牌会员

Rank: 6Rank: 6

积分
1063
金钱
1015
HASS币
0
发表于 2022-4-10 03:07:04 | 显示全部楼层
可以请教几个问题吗?  ha是怎么连接到这个旋钮开关,才可以让ha可以输出yeelight旋钮开关的mac和key 的 ?            把您提供的文件夹放到esphome目录下后,直接打开yeelight开关电源并连接上远程工具,终端输入# hcitool lescan就可以获取到mac吗?     我好奇的是开关是怎么和ha通信的。   还是我忽略了哪些步骤,我是个小白,但是却想研究一下这个。希望可以不吝赐教。  或者告诉我有什么其他的贴子可以参考一下也行。
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12119
金钱
9100
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-4-10 06:51:19 | 显示全部楼层
本帖最后由 XCray 于 2022-4-10 15:45 编辑
tinatiao 发表于 2022-4-10 03:07
可以请教几个问题吗?  ha是怎么连接到这个旋钮开关,才可以让ha可以输出yeelight旋钮开关的mac和key 的 ? ...

友好讨论当然欢迎了!
ha是怎么连接到这个旋钮开关,才可以让ha可以输出yeelight旋钮开关的mac和key 的 ?

这个问题要分两步,分别获取mac和key,我的做法是:

1. ha和esphome部署好,创建一个新的esp32节点,只需要配置 esp32_ble_tracker,刷好后打开esp32的日志输出,把旋钮开关放置在esp32特别近的地方,随便操作一下(按住配对按钮3秒以上进入配对模式也行),esp32就会发现并在日志里输出信息,找其中信号最强的那个(-30dBm上下)就是了,这一步只能获取mac地址

2. 获取key需要一个具备蓝牙的linux环境,可以用树莓派,我是用笔记本直接启动到debian(虚拟机不行),然后使用https://github.com/psylity/yeelight-dimmer-python这个项目里的demo.py获取key。ble-monitor项目也有一个差不多的脚本。


别忘了这个key是12字节的,后面使用需要手工补足16字节,就是在中间位置插入4个字节(8d3d3c97)。
把您提供的文件夹放到esphome目录下后,直接打开yeelight开关电源并连接上远程工具,终端输入# hcitool lescan就可以获取到mac吗?

不是的!我提供的代码是获取到mac和key后日常使用的,负责接收旋钮开关发出的消息并更新到ha。
我好奇的是开关是怎么和ha通信的。

开关发出蓝牙消息->esp32接收、解密、提取后以传感器的形式更新到ha
或者告诉我有什么其他的贴子可以参考一下也行

我那个蓝牙体重秤的帖子和几个esphome相关的帖子你都可以看看,理解整体思路。另外建议多看看esphome的官方文档。
回复

使用道具 举报

8

主题

158

帖子

1227

积分

金牌会员

Rank: 6Rank: 6

积分
1227
金钱
1069
HASS币
0
发表于 2022-4-10 13:46:29 | 显示全部楼层
谢谢分享
回复

使用道具 举报

3

主题

48

帖子

1063

积分

金牌会员

Rank: 6Rank: 6

积分
1063
金钱
1015
HASS币
0
发表于 2022-4-10 13:53:43 | 显示全部楼层
XCray 发表于 2022-4-10 06:51
友好讨论当然欢迎了!

这个问题要分两步,分别获取mac和key,我的做法是:

太感谢了,还要多学习啊,我平时有什么项目只会依葫芦画瓢,不懂底层原理还是难搞,碰到问题就捉瞎了
回复

使用道具 举报

33

主题

2196

帖子

5845

积分

论坛元老

Rank: 8Rank: 8

积分
5845
金钱
3649
HASS币
60
QQ
发表于 2022-4-11 21:26:17 | 显示全部楼层
大佬太厉害了。
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

3

主题

48

帖子

1063

积分

金牌会员

Rank: 6Rank: 6

积分
1063
金钱
1015
HASS币
0
发表于 2022-4-13 16:43:38 | 显示全部楼层
我已经用esphome中的esp32_ble_tracker获取了其mac地址
但在操作过程中还是有几个问题还需要向您请教一下:
1.这段代码  
external_components:
  - source: mine
esp32_ble_tracker:
  scan_parameters:
   interval: 180ms
   window: 120ms
sensor:
  - platform: yeelight_dimmer
    mac_address: $mac
    bindkey: $beaconkey
    dimmerevt:
      name: "DimmerEvt"

是添加到configuration.yaml中吗?

我添加到esp32.yaml中显示  - source是不存在的path
所以我就添加到configuration.yaml中,出现以下错误
Platform error sensor.yeelight_dimmer - Integration 'yeelight_dimmer' not found.
Integration error: external_components - Integration 'external_components' not found.
Integration error: esp32_ble_tracker - Integration 'esp32_ble_tracker' not found
是这三个都显示没找到

2.您提供的文件yeelight_dimmer和xiaomi_bley是放在esphome的目录下吗?
我放到了esphome的目录下,但是重启后并没有在实体里面找到yeelight_dimmer
我猜有可能是这个原因导致configuration.yaml报错的


3.还有自动化的这段代码我也是直接复制到了automations.yaml中,但是重启后我同样也没有在ha的自动化中找到对应的变化
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12119
金钱
9100
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-4-13 17:32:32 | 显示全部楼层
tinatiao 发表于 2022-4-13 16:43
我已经用esphome中的esp32_ble_tracker获取了其mac地址
但在操作过程中还是有几个问题还需要向您请教一下: ...

https://esphome.io/components/external_components.html
回复

使用道具 举报

2

主题

166

帖子

2791

积分

金牌会员

Rank: 6Rank: 6

积分
2791
金钱
2625
HASS币
0
发表于 2022-4-13 17:39:12 | 显示全部楼层
tinatiao 发表于 2022-4-13 16:43
我已经用esphome中的esp32_ble_tracker获取了其mac地址
但在操作过程中还是有几个问题还需要向您请教一下: ...

  - source: mine
这个要改你自己的目录
    mac_address: $mac
    bindkey: $beaconkey
这个要改你获取的MAC和KEY,KEY还要加8字节。要esphome配置里。

自动化你要手动添加input的辅助元素
回复

使用道具 举报

3

主题

48

帖子

1063

积分

金牌会员

Rank: 6Rank: 6

积分
1063
金钱
1015
HASS币
0
发表于 2022-4-14 05:21:35 | 显示全部楼层
谢谢两位大佬的解答,不好意思,但是我还是没有完全理解意思,目前只解决了一部分的问题,还是有两个问题请教一下

对于这段代码,mac地址和bindkey已经获取了,我是这么添加在esphome里yaml文件里的:
esp32_ble_tracker:
  scan_parameters:
   interval: 180ms
   window: 120ms
external_components:
  - source:
      type: local
      path: /config/esphome/yeelight_dimmer
sensor:
  - platform: yeelight_dimmer
    mac_address:
    bindkey:
    dimmerevt:
      name: "DimmerEvt"


但是我在这里碰见了两处错误:
1.yeelight_dimmer这个类型的platform总是会报错 component not found: sensor
2.sourced我填的是yeelight_dimmer文件所在的路径 照着esphome官方文档填的 不知道是不是这样搞的,但是还有一个xiaomi_bley的文件还没用上

请问一下source具体填什么,我只知道要填自己的目录,但是不知道填自己的哪个文件目录,是不是yeelight_dimmer文件的存放路径呢?  还有就是为何platform填yeelight_dimmer会报错?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-28 01:11 , Processed in 1.258011 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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