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

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

自制开源ESPHome通用蓝牙网关(ESP32)

  [复制链接]

26

主题

357

帖子

2843

积分

金牌会员

Rank: 6Rank: 6

积分
2843
金钱
2486
HASS币
10
发表于 2022-5-19 21:16:10 | 显示全部楼层
本帖最后由 shavn1984 于 2022-5-20 00:11 编辑
riceball 发表于 2022-5-19 20:37
我的意思是HA上找不到蓝牙适配器硬件, 所以 bt_interface 是 disable 的(没激活的)

你是在 docker 容器 ...

是在主机和容器都能执行。
容器里是不是要授权?但是我进入容器输入官方那两条命令是错误的命令,应该怎么用?
回复

使用道具 举报

26

主题

357

帖子

2843

积分

金牌会员

Rank: 6Rank: 6

积分
2843
金钱
2486
HASS币
10
发表于 2022-5-20 02:45:17 | 显示全部楼层
我删除ui集成,用yaml模式配置hci0,可以扫描到usb蓝牙适配器下的设备了。
ble_monitor:
  hci_interface:
    - 0
  bt_auto_restart: True
  discovery: True
  devices:
    - mac: 'E8:FE:8B:ED:4F:09'
      name: 'b1-miscale'
    - mac: 'A4:C1:38:FF:37A'
      name: 'b1-temp'
    - mac: 'B8:7C:6F:32:95F'
      name: '4F-ketter'

但是esphome网关还不行,两者可以共存吗?还是只能用一种方式?
回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
 楼主| 发表于 2022-5-20 08:38:21 | 显示全部楼层
shavn1984 发表于 2022-5-20 02:45
我删除ui集成,用yaml模式配置hci0,可以扫描到usb蓝牙适配器下的设备了。
ble_monitor:
  hci_interface:

1. esphome网关如何不行?  detail
2. 可以共存.
回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
 楼主| 发表于 2022-5-20 08:40:05 | 显示全部楼层
nucleic_acid 发表于 2022-5-19 12:10
刚才看了你之前的帖子

使用Passive BLE Monitor集成代替蓝牙网关直接接入HA

`重启后恢复状态` 如果没有勾选,那么重启后在没有收到广播前,设备状态为 `Unavailable`.
回复

使用道具 举报

26

主题

357

帖子

2843

积分

金牌会员

Rank: 6Rank: 6

积分
2843
金钱
2486
HASS币
10
发表于 2022-5-20 12:46:41 | 显示全部楼层
本帖最后由 shavn1984 于 2022-5-20 12:57 编辑
riceball 发表于 2022-5-20 08:40
`重启后恢复状态` 如果没有勾选,那么重启后在没有收到广播前,设备状态为 `Unavailable`.
...

esp32编译烧录正常,启动后有扫描到设备日志。ha没有自动扫描添加实体
配置如下
esphome:
substitutions:
  # Name the device and it's entities
  device: ble_gateway
  device_name: ble_gateway4

esphome:
  name: esphome-web-084270
  comment: $device
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: nodemcu-32s
  framework:
    type: arduino
    version: 2.0.2
    platform_version: https://github.com/tasmota/platform-espressif32/releases/download/v2.0.2.3/platform-espressif32-2.0.2.3.zip
    
external_components:
  - source: github://myhomeiot/esphome-components


esp32_ble_tracker:

# Enable logging
logger:

web_server: 
  port: 80
# Enable Home Assistant API
api:
  reboot_timeout: 1h

ota:
  password: "wxb1984626**"

wifi:
  ssid: "XXX"
  password: "XXX"
#  manual_ip: 
#    static_ip: "192.168.2.41"
#    gateway: "192.168.2.1"
#    subnet: "255.255.255.0"
#    dns1: "192.168.2.1"
  # Enable fallback hotspot in case wifi connection fails
  ap:
    ssid: "4fblegateway"
    password: "XXX"

ble_gateway:
  id: $device_name
#  devices:
#     - mac_address: B8:7C:6F:32:95:DF
  #   - mac_address: !secret lywsd03mmc_mac
  on_ble_advertise:
    then:
      - homeassistant.service:
          service: ble_monitor.parse_data
          data:
            packet: !lambda return packet;
            gateway_id: $device_name
      - homeassistant.event:
          event: esphome.on_ble_advertise
          data:
            packet: !lambda return packet;

text_sensor:
  - platform: homeassistant
    id: ble_gateway_devices
    entity_id: binary_sensor.ble_gateway
    attribute: devices
    on_value:
      then:
        lambda: id($device_name).set_devices(x);

ha configuration.yaml:
配置相同
ha automations.yaml
- id: '1652780647472'
  alias: HA Start automation
  trigger:
    platform: homeassistant
    event: start
  action:
    service: input_boolean.turn_on
    entity_id: input_boolean.ha_started
  initial_state: true


回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
 楼主| 发表于 2022-5-20 19:19:47 | 显示全部楼层
shavn1984 发表于 2022-5-20 12:46
esp32编译烧录正常,启动后有扫描到设备日志。ha没有自动扫描添加实体
配置如下
esphome:

你没注意看我给你的回复, `重启后恢复状态` 是我回复别人的.

esphome 网关不会发现添加设备, 你必须手动在ble_monitor集成中添加.
自动发现添加只能在ble_monitor集成上的蓝牙适配器上完成.
回复

使用道具 举报

26

主题

357

帖子

2843

积分

金牌会员

Rank: 6Rank: 6

积分
2843
金钱
2486
HASS币
10
发表于 2022-5-20 21:17:44 | 显示全部楼层
riceball 发表于 2022-5-20 19:19
你没注意看我给你的回复, `重启后恢复状态` 是我回复别人的.

esphome 网关不会发现添加设备, 你必须手动 ...

我用了官方的配置,自动发现也可以了,感谢回复
回复

使用道具 举报

6

主题

27

帖子

198

积分

论坛积极会员

积分
198
金钱
171
HASS币
0
发表于 2022-5-21 14:17:28 | 显示全部楼层
本帖最后由 ljw 于 2022-5-21 14:19 编辑

我想问下,你们使用 ble monitor 会不会不稳定,偶尔会有这条日志
HCIdump thread: Something wrong - interface hci0 not ready, and will be skipped for current scan period.
我在容器使用 hciconfig 是能发现 hci0 是 running 的  

使用是正常的,就是偶尔传感器的数据读不了。。

对于温湿度是没多大影响,但对于门窗传感器就影响大了,一次没更新自动化都触发不了了。。

回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
 楼主| 发表于 2022-5-21 15:12:00 | 显示全部楼层
shavn1984 发表于 2022-5-20 21:17
我用了官方的配置,自动发现也可以了,感谢回复

看到了一周前才加的新功能, 已更新.
回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
 楼主| 发表于 2022-5-21 15:17:19 | 显示全部楼层
ljw 发表于 2022-5-21 14:17
我想问下,你们使用 ble monitor 会不会不稳定,偶尔会有这条日志
HCIdump thread: Something wrong - inte ...

没有出现过这个问题, 看看是docker的问题,还是蓝牙适配器硬件的瓶颈: 无法持续扫描

ESP32就存在这样的硬件的瓶颈,因为它与WIFI是共用通道,所以只能分时间片处理.可以调校scan_parameters,但是如果蓝牙占用太多的时间,那么WIFI就会出问题.

最好的办法是ESP32只开蓝牙,另外加ESP8266芯片单独处理WIFI


回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 06:14 , Processed in 1.793816 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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