NB 的 : 放大图像: 右键单击 / 在新选项卡中打开图像
注意/! 30以下% Jeedom上显示的电池信息的可靠性下降,约为20% 在LCD上可见低功耗显示屏,蓝牙丢失
当我们开始家庭自动化时,我们开始摸索,我们的选择迅速转向最便宜的产品。 我们中的许多人从一个不太贵且声誉良好的品牌开始,小米!
考虑到价格,我们中的许多人选择这个产品:

但当我们开始在家庭自动化的那一刻,我们无法想象这个小,美丽和便宜的温度计将把我们放在厨房!
需要什么:
- 传感 器
- 带有蓝牙天线的 Jeedom(本地或驱逐出境)
- 布利 (插头)
- JeeXplorer (插头)
- 的 PC / Mobile with Bluetooth
有几个主题解释了如何使用绑定键,flash和hack或触摸任何东西来破解BLEA,并使用小米网关与Alexa技能相结合,并通过AlexaAPI/智能家居插件在Jeedom中提出。
让我们向所有从这些来源引述他们的人表示敬意:
https://github.com/atc1441/ATC_MiThermometer
http://atcnetz.blogspot.com/2020/09/custom-firmware-fur-das-4-xiaomi.html
https://github.com/pvvx/ATC_MiThermometer#bluetooth-advertising-formats
https://community.jeedom.com/t/refresh-xiaomi-lywsd03mmc/17216
https://community.jeedom.com/t/valeurs-non-remontees/44590/10
https://community.jeedom.com/t/refresh-xiaomi-lywsd03mmc/17216/77
每种方法都有其优点和缺点:
AlexaAPI/smarthome:
优点:
- 没有 黑客
- 非常简单
- 不闪烁
缺点:
- 小米蓝牙网关
- 拥有 Alexa
- 电梯中的孔(非常罕见但驾驶加热器时很烦人)
- 不是无云(依赖互联网)
Blea with the BindKeys:
优点:
- 无云 (依赖互联网)
- 不闪烁
缺点:
- 复数(Recovery @MAC, bindkey)
- 电梯中的孔(非常罕见但驾驶加热器时很烦人)
- 如果连接到 MihHome/Other 则更改 bindkey
- 蓝牙天线
- 安装密钥解密依赖
闪烁的Blea:
优点:
- 简单 简单
- 可调节传感器
- 没有孔的重新组装(或迄今尚未看到)
缺点:
- 闪烁 闪烁
- 蓝牙天线
即使这一切都不是那么复杂,在某些情况下甚至非常简单,它不一定是一开始就可以拥有的愿景。 我挣扎,摸索,犯错误很长一段时间,往往不明白非常简单的事情。
这就是为什么我正在写这篇关于最后一个解决方案的教程,使其尽可能地流行为Jeedom初学者。
为什么选择这种方法?
我测试了它们,我从来没有真正满意过,电梯里有太多的洞,或者太多的束缚。 最后,我保持了最稳定的口味AlexaAPI/smarthome。 当时我没有保留闪光,因为没有办法把它整合到BLEA中。
新的固件终于说服了我,因为在我看来,这个解决方案在升降机方面是最稳定的,更好的电池优化和缺点可以被认为是优势。
为了比较1H与我的探测器仍然在Alexa下:
Alexa 的

Blea 闪烁

毫无吸引力的发现!
重要提醒:
对于那些想长期比较不同方法的人来说,我想提醒你,默认情况下,记录每天在CRON上平滑/平均超过2小时用于存档(大约4小时),每小时1个平均值:

这可以通过以下形式看到:

因此,有必要改变这些参数以进行客观比较。
- 闪烁 闪烁
即使Aaron Christophel提出的旧闪光方法已经相当不错了。
https://atc1441.github.io/TelinkFlasher.html
https://github.com/atc1441/ATC_MiThermometer
http://atcnetz.blogspot.com/2020/09/custom-firmware-fur-das-4-xiaomi.html
Victor pvvx接管并改进了它!
https://github.com/pvvx/ATC_MiThermometer
https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
总之,这个新版本提供最新固件的自动充电,电池优化,以及许多其他设置(包括在测试主轴上的物理动作触发器,需要焊接此:p)
转到页面 https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
注: 如果您的传感器已经以T1441格式闪烁,则可能需要通过闪光器T1441返回小米固件,或使用页面。 https://pvvx.github.io/ATC_MiThermometer/TelinkOTA.html 并执行从T1441到PVVX的OTA更新。 然后回到PVVX闪存器以更改设置。
- 在尝试连接之前激活 PC/Mobile Bluetooth
- 在"BLE设备名称前缀过滤器"(这允许只有小米温度计)中输入"LYWSD03","ATC"将允许将过滤器放入已经闪烁的温度计
- 点击『连接』并选择您的温度计
- 等待连接建立
- 按"Do Activation"
- 等待小米钥匙的恢复
- 按"Custom Firmware ver 2.x"
- 注意它旁边的按钮是返回基本小米版本的按钮。
- 按『开始闪烁』
- Flash需要几秒钟才能看到几分钟。
- 如果不是自己完成的,请按"Reconnect"
- 除非有特殊需要,否则我建议只影响两个值:

- 广告类型是帧的格式,默认情况下是"ALL",因此也以小米格式发送帧,我认为这是你在上一个视频中看到的疯狂的值来源,因为我忘记了在开始时更改这个参数。
所以我们选择 Atc1441 年 因为正是针对这种格式,以后将要使用的代码才被开发出来。 5000ms。
选择"Atc1441"而不是"ALL"可以避免不一致的温度(例如。 3000°C,除了保持『所有』会浪费电池不必要的信息,并将您感兴趣的格式的发布除以4。

- 广告间隔是帧的刷新值,我选择了这个值,因为它可以在不影响刷新频率的情况下优化7个月的电池寿命。

- 选中设置后,按"Send Config"

闪光结束了!
- 编辑 lywsd03.py 文件
注: 似乎原始的.Py设法读取这个闪烁的版本而没有修改(待确认),代码差异(parse)将允许在验证存在时返回数据(在头中注明),而不建立连接,有点像如果你正在寻找一个wifi网络,名字后面有清晰的信息。 因此,下面的代码可以用于间接强制刷新而不会阻塞探针。
当你习惯了Jeedom时,它可能看起来很愚蠢,但当你开始思考如何修改一个文件; WinSCP不工作没有根右,PuTTY是不切实际的,如果你不完全熟悉linux。
答案很简单,JeeXplorer。
JeeXplorer是一个『探索者』插件,顾名思义,它允许、修改、创建、删除文件/文件夹。
- 打开 JeeXplorer
- 导航树到 HTML/plugins/blea/resources/blead/devices/
- 保存文件 lywsd03.py
- 右键 点击

- 留下重复的文件,它将服务,如果你想恢复它
# 编码: 来自Bluepy import btle import time import logging 导入日志的 UTF-8 从多连接导入连接器从通知导入通知类 Lywsd03()导入全局导入: DEF __init __(self): self.name = 'lywsd03' self.ignoreRepeat = False def isvalid(self,name,manuf='',data=',mac=''): logging.debug('LYWSD03---isvalid data=)%s, Mac%s, 姓名=%s, 制造(Manuf)%s, 》 % (data, mac, name, manuf))如果 name.lower()在 [self.name] 中: 如果 data.lower().startswith("1a18")和(mac.lower().startswith("a4:c1:38")返回 True: #广播广告数据返回 True def parse(self,data,mac,name,manuf): logging.info('LYWSD03---adv data=)%s, Mac%s, 姓名=%s, 制造(Manuf)%s, 》 % (data, mac, name, manuf))action={} action['present'] = 1 bd = bytes.fromhex(temp,)= struct.unpack('>H', bd[8:10])如果temp > 60000: Temp = 0 -(65530 - temp)temp = temp = temp / 10 humi = bd[10] batt = bd[11] action["temperature"] = temp action["month"] = humi action["battery"]] = batt logging.info('LYWSD03---mac=%s, Temp=%s, 胡米%s, 巴特%s, 》 % (Mac,temp,humi,batt))返回动作 def read(self,mac): 结果={} 尝试: Conn = Connector(mac)conn.connect()如果没有conn.isconnected: conn.connect()如果没有 conn.isconnected: return batt = bytearray(conn.readCharacteristic('0x3a'))电池 = batt[0x3a')通知 = Notification(conn,Lywsdd03)notification.subscribe(''battery'] = battery result['''id'] = mac logging.debug('LYWSD03-'-'+str(result)))返回结果除外: logging.error(str(e)返回结果def handlenotification(self,conn,handle,data,action={}): 结果={} 如果 hex(handle)== '0x36': has = bytearray(data)temperature = float(received[1] * 256 + receive[0])/ 100 水分 = [2] 结果['moisture'] = 温度结果['temperature'] = temperature result['id'] = conn.mac result['source'] = globals.daemonname globals.JEEDOM_COM.add _changes('devices:'+conn.mac,result)globals.COMPATIBILITY(Lywsd03)
- 保存和退出

- 通过复制和重命名来备份您的文件

- Blea :
- 重新启动恶魔

! 重要 : 如果您使用被驱逐的天线,请考虑一下。

以及

- 运行扫描
- ! 请记住切断PC / Mobile的蓝牙,因为它仍然连接,这是传感器的情况,无法检测到或检查@ MAC是否已经存在于BLEA的未知设备中。
- 选择 lywsd03 并遵循经典的包含
- 取消 强制 刷新
- 检查Historiser,如果你想有图表或检查你的电梯。

就这样 你完蛋了
NB: 如果您有野生温度,请检查您是否更改了不良类型,如果是这样,您可以通过应用最大值来使用第二种安全性:


Alexa插件(ASH)
对于那些想将温度计发送到Alexa进行语音访问的人来说,这里是如何配置它们的:
- 查找 Alexa 插件中的设备,检查 传输 器, 选择类型 温度传感器

- 如果你遇到A NOK 》 (它也与 好的 好的) 点击它,它告诉你它需要什么。

- 按适当顺序报告:


齿轮温度控制

- 备份,回到Alexa插件,再次备份。
- 在 ALEXA 应用程序上运行扫描
通常情况下,您的温度计会在插件中发现并确定。
奖金 奖金
在上一张图片中,如果我的冰箱超过11度超过10分钟,我将温度控制设置为通知(声乐和sms)。 这避免了创建场景。
