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

 找回密码
 立即注册
查看: 26324|回复: 25

[进阶教程] (更新)米家蓝牙温湿度计2接入

[复制链接]

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
发表于 2020-1-11 09:25:22 | 显示全部楼层 |阅读模式
本帖最后由 chiunownow 于 2020-1-15 09:41 编辑

米家蓝牙温湿度计2 通过具有蓝牙的 Linux 设备作为网桥,接入 MQTT,并被HASS 订阅

请忘了原来那一版愚蠢的方法……

lLDiid.png

lLBvM6.png

先决条件

  1. 有一台具有蓝牙功能的 Linux 设备,包括但不限于 树莓派 山寨派 x86 设备等
  2. 请参考 JsBergbau/MiTemperature2,安装好 Python3 Python3-pip Bluez setuptools wheel 等。

食用方法

  1. 克隆源项目
git clone https://github.com/JsBergbau/MiTemperature2
cd MiTemperature2 
  1. 建立一个 Shell 脚本,供LYWSD03MMC.py回调
touch sendtoMQTT.sh
  1. 编辑 Shell 脚本,保存并退出
vim sendtoMQTT.sh
# 将以下内容粘贴到文件中,并修改 mqtt.host mqtt.username mqtt.passwd
# 例如:mosquitto_pub -h 192.168.1.77 -t "mibridge/$2/temp" -u mqtt -P mqtt -i "mibridge" -m "$3"
#!/bin/bash
mosquitto_pub -h mqtt.host -t "mibridge/$2/temp" -u mqtt.username -P mqtt.passwd -i "mibridge" -m "$3"
mosquitto_pub -h mqtt.host -t "mibridge/$2/humidity" -u mqtt.username -P mqtt.passwd -i "mibridge" -m "$4"
mosquitto_pub -h mqtt.host -t "mibridge/$2/batterylevel" -u mqtt.username -P mqtt.passwd -i "mibridge" -m "$5"
  1. 给脚本赋予运行权限
chmod +x sendtoMQTT.sh
  1. 让程序在后台运行,并回调脚本向 mqtt 发布信息
# 修改 device.name device.MAC-Address 并运行
# 例如 nohup python3 LYWSD03MMC.py --callback sendtoMQTT.sh -b 1 --name ciwo -d AA:BB:CC:CD:EE:FF
nohup python3 LYWSD03MMC.py --callback sendtoMQTT.sh -b 1 --name device.name -d device.MAC-Address &
# 每次重启设备,需要重新运行以上命令,或想办法配置成启动时自动执行
# 退出当前 bash 时,请使用 exit 命令,而不是直接关闭窗口,保证程序能在后台持续运行
  1. 配置 HASS mqtt 传感器,订阅相关主题
# 修改 device.name 到与上面运行命令相同
sensor:
  - platform: mqtt
    state_topic: "mibridge/device.name/temp"
    # 例如:state_topic: "mibridge/ciwo/temp"
    name: 次卧温度
    unit_of_measurement: "°C"
    force_update: true
    device_class: temperature
  - platform: mqtt
    state_topic: "mibridge/device.name/humidity"
    name: 次卧湿度
    unit_of_measurement: "%"
  - platform: mqtt
    state_topic: "mibridge/device.name/batterylevel"
    name: 次卧温湿度计电池
    unit_of_measurement: "%"
  1. 重启 hass,到前端添加三个 sensor

琐碎话

  1. 之后也许可能大概会尝试改成 hass 自定义组件的方式接入。但因为我自己没有这个需求(hassio on hyper-v on j3455,且主板无蓝牙),且能力非常非常低劣(如果懂python的人见过上一次改的版本就知道了),所以可能是猴年马月的事情。(刚搜到大概很快 sensor.mitemp_bt 项目就会支持这一款了 https://github.com/custom-components/sensor.mitemp_bt/issues/7
  2. hass 本身是有 RESTAPI 的,如果没有 mqtt 的朋友,可以考虑在 hass 中创建一些 input_number 和 template sensor,用 curl POST 数据,实现接入。(方法更新在18楼,可自行研究)
  3. 希望大家多学,多研究,多交流。
  4. 请忽略下面过时的附件





1488343_1.jpg
批注 2020-01-11 091102.png

LYWSD03MMC.py.zip

3.6 KB, 下载次数: 65

回复

使用道具 举报

6

主题

243

帖子

1864

积分

金牌会员

Rank: 6Rank: 6

积分
1864
金钱
1621
HASS币
0
发表于 2020-1-11 10:04:12 | 显示全部楼层
要 python3.7?
回复

使用道具 举报

0

主题

68

帖子

246

积分

中级会员

Rank: 3Rank: 3

积分
246
金钱
178
HASS币
0
发表于 2020-1-11 10:17:33 | 显示全部楼层
要是能通过青萍网关连就好了
回复

使用道具 举报

65

主题

853

帖子

3044

积分

论坛元老

Rank: 8Rank: 8

积分
3044
金钱
2184
HASS币
40
发表于 2020-1-11 10:59:39 | 显示全部楼层
这个蓝牙版的温湿度传感器就是小了点儿,可能是看习惯了墨水屏pro版的吧
回复

使用道具 举报

8

主题

736

帖子

4572

积分

论坛元老

Rank: 8Rank: 8

积分
4572
金钱
3831
HASS币
40
QQ
发表于 2020-1-11 17:35:14 | 显示全部楼层
我还是等esphome更新支持吧
回复

使用道具 举报

21

主题

188

帖子

1483

积分

金牌会员

Rank: 6Rank: 6

积分
1483
金钱
1290
HASS币
60
 楼主| 发表于 2020-1-11 18:43:37 | 显示全部楼层
Aiden1 发表于 2020-1-11 17:35
我还是等esphome更新支持吧

哈哈哈哈试试看嘛 我已经在家里用上了(狗头
回复

使用道具 举报

8

主题

870

帖子

5218

积分

论坛元老

Rank: 8Rank: 8

积分
5218
金钱
4348
HASS币
0
发表于 2020-1-12 11:28:22 | 显示全部楼层
谢谢分享
回复

使用道具 举报

3

主题

149

帖子

1292

积分

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1138
HASS币
20
发表于 2020-1-12 23:00:36 | 显示全部楼层
chiunownow 发表于 2020-1-11 18:43
哈哈哈哈试试看嘛 我已经在家里用上了(狗头

esphome版的已经用上了?
回复

使用道具 举报

6

主题

156

帖子

1459

积分

金牌会员

Rank: 6Rank: 6

积分
1459
金钱
1303
HASS币
10
发表于 2020-1-13 11:05:16 | 显示全部楼层
对小白不友好
回复

使用道具 举报

19

主题

130

帖子

720

积分

高级会员

Rank: 4

积分
720
金钱
590
HASS币
0
发表于 2020-1-13 19:17:52 | 显示全部楼层
这个文件修改好以后 放哪个文件夹  configuration.yaml文件需要配置吗
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 12:35 , Processed in 0.810376 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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