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

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

[修仙教程] 感谢n大!ESP Home基于蓝牙网关-TTL的米家蓝牙设备接入,好用

[复制链接]

7

主题

397

帖子

2231

积分

金牌会员

Rank: 6Rank: 6

积分
2231
金钱
1834
HASS币
0
发表于 2020-6-21 18:37:28 | 显示全部楼层
先收藏了,日后再说!!!!!!!
回复

使用道具 举报

17

主题

760

帖子

5260

积分

论坛元老

Rank: 8Rank: 8

积分
5260
金钱
4495
HASS币
0
发表于 2020-6-25 18:48:02 | 显示全部楼层
icase 发表于 2020-6-20 15:21
我的观点略有不同,离家/在家更多是安防的需求更大,的确很重要,不过基于iCloud,手机、ble蓝牙、路由等 ...

主要在家里,你不一定身上随时带着设备,哪怕是手环也不是随时在手上。
最终实际还是要去追踪人。
追踪设备这种还是比较适合在家/离家的判断。
回复

使用道具 举报

16

主题

171

帖子

757

积分

高级会员

Rank: 4

积分
757
金钱
581
HASS币
40
发表于 2020-6-25 19:58:26 | 显示全部楼层
sirakawa 发表于 2020-6-25 18:48
主要在家里,你不一定身上随时带着设备,哪怕是手环也不是随时在手上。
最终实际还是要去追踪人。
追踪设 ...

这个可能也不能一概而论吧,现在我看很多人手环都是24小时佩戴的,至少我在周遭看到和了解到的是这样的情况,因为长续航没有电量焦虑,当然也应该有不同的情况,但是我个人只能评价个人的见闻了。
回复

使用道具 举报

17

主题

760

帖子

5260

积分

论坛元老

Rank: 8Rank: 8

积分
5260
金钱
4495
HASS币
0
发表于 2020-6-25 20:03:02 | 显示全部楼层
icase 发表于 2020-6-25 19:58
这个可能也不能一概而论吧,现在我看很多人手环都是24小时佩戴的,至少我在周遭看到和了解到的是这样的情 ...

嗯,个人习惯不同~~。
回复

使用道具 举报

4

主题

105

帖子

815

积分

高级会员

Rank: 4

积分
815
金钱
710
HASS币
0
发表于 2020-6-26 21:11:26 | 显示全部楼层
大神啊 我跟你的情况一样,但是看你这个配置文件是esp32的,我刷到esp01s里边怎么都启动不了?把配置里边esp32改成esp8266又提示配置文件错误,请问如果用esp01s加到榉树网关该怎么改啊?
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11435
金钱
8504
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-26 21:45:49 | 显示全部楼层
caoxi1988 发表于 2020-6-26 21:11
大神啊 我跟你的情况一样,但是看你这个配置文件是esp32的,我刷到esp01s里边怎么都启动不了?把配置里边es ...

既然提示配置文件错误,那是不是有详细的错误信息啊?

是不是板子型号没改?

不行的话把yaml文件发上来看看
回复

使用道具 举报

4

主题

105

帖子

815

积分

高级会员

Rank: 4

积分
815
金钱
710
HASS币
0
发表于 2020-6-27 10:31:47 | 显示全部楼层
XCray 发表于 2020-6-26 21:45
既然提示配置文件错误,那是不是有详细的错误信息啊?

是不是板子型号没改?

谢谢回复!
esphome:
  name: esp8266
  platform: ESP8266
  board: esp01_1m
  includes:
    - ttlsensors.h
wifi:
  ssid: "TP-LINK_5D8E"
  password: "caoxi1988"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp8266 Fallback Hotspot"
    password: "Yi2gUMmSbY6u"

captive_portal:

# Enable logging
logger:
  baud_rate: 0
# Enable Home Assistant API
api:
  password: "caoxi1988"

ota:
  password: "caoxi1988"
uart:
  id: uart_bus
  rx_pin: 3
  baud_rate: 115200
sensor:
  - platform: wifi_signal
    name: "WiFi node32s"
    update_interval: 360s
  - platform: custom
    lambda: |-
      auto ttlsensors = new TTLSensor(id(uart_bus));
      App.register_component(ttlsensors);
      return {ttlsensors->door_status, ttlsensors->lock_event, ttlsensors->levt_keyid, ttlsensors->levt_time, ttlsensors->door_event, ttlsensors->door_evttime, ttlsensors->lock_battery, ttlsensors->lock_batttime, ttlsensors->bt_temp, ttlsensors->bt_humi, ttlsensors->bt_batt, ttlsensors->flora_temp_a, ttlsensors->flora_temp_b, ttlsensors->flora_mois_a, ttlsensors->flora_mois_b, ttlsensors->flora_lumi_a, ttlsensors->flora_lumi_b,ttlsensors->flora_soil_a, ttlsensors->flora_soil_b};

    sensors:
      - name: "Door Status"
      - name: "Lock Event"
      - name: "Lock Event: KeyID"
      - name: "Lock Event: Time"
      - name: "Door Event"
      - name: "Door Event: Time"
      - name: "Lock Battery"
      - name: "Lock Battery: Time"
      - name: "BT Temp"
        unit_of_measurement: °C
        accuracy_decimals: 1
      - name: "BT Humi"
        unit_of_measurement: '%'
        accuracy_decimals: 1
      - name: "BT Batt"
      - name: "Flora Temp A"
        unit_of_measurement: °C
        accuracy_decimals: 1
      - name: "Flora Temp B"
        unit_of_measurement: °C
        accuracy_decimals: 1
      - name: "Flora Mois A"
      - name: "Flora Mois B"
      - name: "Flora iLumin A"
      - name: "Flora iLumin B"
      - name: "Flora Soil A"
      - name: "Flora Soil B"

型号改了,就是esphome里选的8266然后把后边的代码改成您改的那个。

下边是报错信息


In file included from /root/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/Arduino.h:261:0,
                 from src/esphome/core/component.h:5,
                 from src/esphome/components/api/api_connection.h:3,
                 from src/esphome.h:2,
                 from src/main.cpp:3:
src/ttlsensors.h: In member function 'virtual void TTLSensor::loop()':
/root/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/WString.h:39:34: error: initializer fails to determine size of '__c'
#define F(string_literal) (FPSTR(PSTR(string_literal)))
                                  ^
/root/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/WString.h:38:76: note: in definition of macro 'FPSTR'
#define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
                                                                            ^
src/esphome/core/log.h:63:36: note: in expansion of macro 'F'
#define ESPHOME_LOG_FORMAT(format) F(format)
                                    ^
src/esphome/core/log.h:88:59: note: in expansion of macro 'ESPHOME_LOG_FORMAT'
   esp_log_printf_(ESPHOME_LOG_LEVEL_DEBUG, tag, __LINE__, ESPHOME_LOG_FORMAT(format), ##__VA_ARGS__)
                                                           ^
src/esphome/core/log.h:148:28: note: in expansion of macro 'esph_log_d'
#define ESP_LOGD(tag, ...) esph_log_d(tag, __VA_ARGS__)
                            ^
src/ttlsensors.h:114:5: note: in expansion of macro 'ESP_LOGD'
     ESP_LOGD("TTLSensor", topic.c_str());
     ^
/root/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/WString.h:39:34: error: array must be initialized with a brace-enclosed initializer
#define F(string_literal) (FPSTR(PSTR(string_literal)))
                                  ^
/root/.platformio/packages/framework-arduinoespressif8266/cores/esp8266/WString.h:38:76: note: in definition of macro 'FPSTR'
#define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
                                                                            ^
src/esphome/core/log.h:63:36: note: in expansion of macro 'F'
#define ESPHOME_LOG_FORMAT(format) F(format)
                                    ^
src/esphome/core/log.h:88:59: note: in expansion of macro 'ESPHOME_LOG_FORMAT'
   esp_log_printf_(ESPHOME_LOG_LEVEL_DEBUG, tag, __LINE__, ESPHOME_LOG_FORMAT(format), ##__VA_ARGS__)
                                                           ^
src/esphome/core/log.h:148:28: note: in expansion of macro 'esph_log_d'
#define ESP_LOGD(tag, ...) esph_log_d(tag, __VA_ARGS__)
                            ^
src/ttlsensors.h:114:5: note: in expansion of macro 'ESP_LOGD'
     ESP_LOGD("TTLSensor", topic.c_str());
     ^
*** [.pioenvs/esps32/src/main.cpp.o] Error 1
========================== [FAILED] Took 7.70 seconds ==========================
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11435
金钱
8504
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-27 10:45:45 | 显示全部楼层
本帖最后由 XCray 于 2020-6-27 10:56 编辑
caoxi1988 发表于 2020-6-27 10:31
谢谢回复!

型号改了,就是esphome里选的8266然后把后边的代码改成您改的那个。

1、yaml没看出问题来,就是你家wifi密码暴露啦。。。
2、好像是114行 ESP_LOGD 这个语句的问题,你把这一行 ESP_LOGD语句注释掉吧,或者干脆删掉。
貌似 topic.c_str() 这种用法不对,我上传的时候搞错了版本,忘记删掉了
见笑,以前学的C语言我也早就都还给谭浩强教授了。。。


回复

使用道具 举报

4

主题

105

帖子

815

积分

高级会员

Rank: 4

积分
815
金钱
710
HASS币
0
发表于 2020-6-27 11:12:48 来自手机 | 显示全部楼层
XCray 发表于 2020-6-27 10:45
1、yaml没看出问题来,就是你家wifi密码暴露啦。。。
2、好像是114行 ESP_LOGD 这个语句的问题,你把这一 ...

谢谢编译通过了,难道是8266不支持这种语法?不该平台esp32变异没问题啊。改成固定不影响使用么?不好意思,我是新手。不明白这句啥意思
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11435
金钱
8504
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2020-6-27 11:18:02 | 显示全部楼层
本帖最后由 XCray 于 2020-6-27 11:19 编辑
caoxi1988 发表于 2020-6-27 11:12
谢谢编译通过了,难道是8266不支持这种语法?不该平台esp32变异没问题啊。改成固定不影响使用么?不好意 ...

不好意思,是我的问题。在esp32上那句话也出错。

我上传时为了去掉我家的wifi密码,结果就搞错了,把带病句的版本给上传了。。。
那是一句打印日志的句子,没用。前面该打印的都打印了。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-19 17:10 , Processed in 0.346525 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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