sheeran
发表于 2020-8-19 21:54:28
XCray 发表于 2020-8-19 20:25
在外地。。。
榉树好像只出过这一款网关,从来没关注过型号,固件版本1.6.4_0107。
据客服说只有k1的配套网关能接入米家
固件应该用编程器备份出来就可以吧,我看有块nxp的芯片
我没用榉树的锁。。只有这个网关
dscao
发表于 2020-8-19 23:57:56
本帖最后由 dscao 于 2020-8-20 00:44 编辑
原固件配置成功后就不能再修改mqtt服务器设置,代码中作了如下一处修改,可随时关掉wifi后重新配置新的mqtt服务器,多天测试下来正常。
String ssid = "mqttl_" + String(ESP.getChipId()).substring(0, 4);
strcpy(HOSTNAME,ssid.c_str());
if (!wifiManager.autoConnect(ssid.c_str(), AP_PASSWORD)) {
Serial.println(F("Failed to connect to WIFI and hit timeout"));
ESP.reset();
delay(WIFI_TIMEOUT);
}
if (shouldSaveConfig) { #修改处
strcpy(MQTT_HOST, CUSTOM_MQTT_HOST.getValue());
strcpy(MQTT_PORT, CUSTOM_MQTT_PORT.getValue());
strcpy(MQTT_USER, CUSTOM_MQTT_USER.getValue());
strcpy(MQTT_PASS, CUSTOM_MQTT_PASS.getValue());
}
if (shouldSaveConfig) {
Serial.println(F("Saving WiFiManager config"));
write_eeprom(0, 64, MQTT_HOST); // * 0-63
write_eeprom(64, 6, MQTT_PORT); // * 64-69
write_eeprom(70, 32, MQTT_USER);// * 70-101
write_eeprom(102, 32, MQTT_PASS); // * 102-133
write_eeprom(134, 1, "1"); // * 134 --> always "1"
EEPROM.commit();
}
另外刚买了个小米感应夜灯蓝牙版,测试发现配置如下:
sensor:
- platform: mqtt
name: mi_yedeng_move_NAME
state_topic: 'mqttl/设备ID/15'
value_template: >-
{% if value|int(0,16) == 1 %}
有人移动,环境光-暗
{% elif value|int(0,16) == 100 %}
有人移动,环境光-亮
{% else %}
未知
{% endif %}
- platform: mqtt
name: mi_yedeng_battery_NAME
icon: 'mdi:battery-80'
state_topic: 'mqttl/设备ID/4106'
unit_of_measurement: '%'
value_template: "{{value|int(0,16)}}"
- platform: mqtt
name: mi_yedeng_timedelay_NAME
state_topic: 'mqttl/设备ID/4119'
value_template: "{{value|int(0,16)}}"
homeassistant:
customize:
sensor.mi_yedeng_move_NAME:
friendly_name: 感应夜灯状态
sensor.mi_yedeng_battery_NAME:
friendly_name: 感应夜灯电量
sensor.mi_yedeng_timedelay_NAME:
friendly_name: 无人移动时间#上报0秒,2分钟,5分钟,10分钟,20分钟,30分钟,用秒表示
另等“小米门窗传感器2”(最大的特色是新增光照传感器,实现了开合、光照二合一)发货,介绍说也是蓝牙网关,这两样东西配合就省得用多功能网关也可以实现人体和门磁联动了。
XCray
发表于 2020-8-20 08:45:21
本帖最后由 XCray 于 2020-8-20 08:48 编辑
dscao 发表于 2020-8-19 23:57
原固件配置成功后就不能再修改mqtt服务器设置,代码中作了如下一处修改,可随时关掉wifi后重新配置新的mqtt ...
这个应该是“米家夜灯2 蓝牙版”吧?型号为“MJYD02YL-A”?
代码改进对于经常折腾mqtt服务器的朋友很有用处,等有空了我把它合入主贴的固件,或者你编译上传一个我在主贴里加个链接?
dscao
发表于 2020-8-20 10:15:59
对,就是你说的这个名称。
d1 mini版的固件(改进了修改mqtt服务器)
固件中用户名和密码(其它没改):
const char* update_path = "/update"; //OTA页面地址
const char* update_username = "root"; //OTA用户名
const char* update_password = "password"; //OTA密码
sheeran
发表于 2020-8-20 11:10:03
本帖最后由 sheeran 于 2020-8-20 11:23 编辑
sheeran 发表于 2020-8-19 21:54
据客服说只有k1的配套网关能接入米家
固件应该用编程器备份出来就可以吧,我看有块nxp的芯片
我没用榉树 ...
:) TTL进去的信息https://imgchr.com/i/d3xzhd
算了吧,不麻烦你了
我还是买个小白万能遥控吧
XCray
发表于 2020-8-20 12:07:18
sheeran 发表于 2020-8-20 11:10
TTL进去的信息
算了吧,不麻烦你了
我还是买个小白万能遥控吧
我还真没想过备份和刷蓝牙网关固件的可能性,能做到吗?编程器就算了,太折腾。
不过 我也觉得,与其这么折腾,不如买个小白或者咸鱼捡个榉树网关啥的
evantalk
发表于 2020-8-30 21:04:55
本帖最后由 evantalk 于 2020-8-30 21:07 编辑
感谢大神开发固件,以前killadm的固件刷入esp01不能用(重启后会失效,不明原因),现在我把esp01塞在里面,很稳定!就是我的小米青春版由于硬件原因(纯手动上锁),所以没有门事件(编号7),
maybeloveu
发表于 2020-8-31 22:21:39
dscao 发表于 2020-8-19 23:57
原固件配置成功后就不能再修改mqtt服务器设置,代码中作了如下一处修改,可随时关掉wifi后重新配置新的mqtt ...
这个传感器报状态变化有延迟吗?能用来控制开灯吗?(延迟1秒内)
dscao
发表于 2020-9-1 00:49:54
小米门窗传感器2
- platform: mqtt
name: mi_mengci_huanjingguang_E4AAEC34D824
state_topic: 'mqttl/设备ID/4120'
value_template: >-
{% if value|int(0,16) == 0 %}
环境光暗
{% elif value|int(0,16) == 1 %}
环境光亮
{% else %}
未知
{% endif %}
- platform: mqtt
name: mi_mengci_kaiguan_E4AAEC34D824
icon: mdi:timer
state_topic: 'mqttl/设备ID/4121'
value_template: >-
{% if value|int(0,16) == 0 %}
门窗打开
{% elif value|int(0,16) == 1 %}
门窗关闭
{% elif value|int(0,16) == 2 %}
超时未关
{% else %}
未知
{% endif %}
- platform: mqtt
name: mi_mengci_battery_E4AAEC34D824
icon: 'mdi:battery-80'
state_topic: 'mqttl/设备ID/4106'# 新设备配对后只见过一次消息,后来一直没再出现
unit_of_measurement: '%'
value_template: "{{value|int(0,16)}}"
XCray
发表于 2020-9-1 06:46:50
maybeloveu 发表于 2020-8-31 22:21
这个传感器报状态变化有延迟吗?能用来控制开灯吗?(延迟1秒内)
这个玩法的最大的意义,就是一切都在本地发生,没有任何延迟(本地通信和处理时延不是人类可以感知的,忽略不计)。
小米近年在大力推动蓝牙器件,但官方app及使用方法中的相关自动化只能云端执行,经常造成无法接受的时延(甚至有可能长达十几秒)。