请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 909|回复: 13

[新奇玩法] 暂时成功将青萍空气监测仪接入HA

[复制链接]

7

主题

77

帖子

458

积分

论坛技术达人

积分
458
金钱
381
HASS币
0
发表于 2019-2-2 13:33:12 | 显示全部楼层 |阅读模式
本帖最后由 iwha 于 2019-2-2 17:37 编辑

上周买了一个米家的青萍空气检测仪, 测试效果比米家那个自己的准确很多,就是这个 qingping.jpeg

但是只能接入青萍app和米家app, 米家app的智能联动条件不支持与或混合实在不方便, 所以想着能不能直接接入HA, 用tcpdump 看看这个检测仪到底有传些什么数据,

Screen Shot 2019-02-02 at 1.26.05 PM.png
隐去的是设备id, 在看红框的1883 看到了吗,这不就是mqtt端口么, 可是mqtt需要用户名密码什么的, 好办! 下载apk,反编译
然后所有需要的信息都在里面了, 配置好mqtt, 终于需要的传感器数据都有了
Screen Shot 2019-02-02 at 1.20.11 PM.png


ha配置如下
  - platform: mqtt
    name: cleargrass_co2
    state_topic: "snow/data/设备id"
    value_template: "{{ value_json.data.co2 }}"

  - platform: mqtt
    name: cleargrass_pm25
    state_topic: "snow/data/设备id"
    value_template: "{{ value_json.data.pm250 / 100.0 }}"

  - platform: mqtt
    name: cleargrass_humidity
    state_topic: "snow/data/设备id"
    unit_of_measurement: "%"
    value_template: "{{ value_json.data.h / 100.0 }}"

  - platform: mqtt
    name: cleargrass_tvoc
    state_topic: "snow/data/设备id"
    unit_of_measurement: "mg/m3"
    value_template: "{{ ((value_json.data.tvoc / 218.77)|float)| round(3) }}"

  - platform: mqtt
    name: cleargrass_temperature
    state_topic: "snow/data/设备id"
    value_template: "{{ value_json.data.t / 100.0 }}"
    unit_of_measurement: "°C"


  - platform: mqtt
    name: cleargrass_battery
    state_topic: "snow/data/设备id"
    value_template: "{{ value_json.data.battery }}"
    unit_of_measurement: "%"


之所以说是暂时, 因为不知道什么时候官方升级就封了这个方法, 能用一会儿是一会儿吧


关于如何获取设备ID, 有另种方式
1, 用tcpdump, 然后就可以如上图黑色覆盖的地方就是设备ID
tcpdump  -i br-lan host {IP}  -vv -X


2, 手机打开青萍空气app 用https抓包程序(比如whistle)抓取  /my_devices请求数据, 返回结果是json格式其中device_id就是所需的设备ID, 顺便可以从header中找到手机的 id, 如果想通过http得到数据,手机id是必须的


评分

参与人数 2金钱 +40 收起 理由
flashsoft + 20 论坛有你更精彩!
Jones + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

105

主题

3568

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
11452
金钱
7804
HASS币
44
发表于 2019-2-2 13:58:59 | 显示全部楼层
楼主厉害了,怎么连mqtt服务没有写啊
回复

使用道具 举报

7

主题

77

帖子

458

积分

论坛技术达人

积分
458
金钱
381
HASS币
0
 楼主| 发表于 2019-2-2 14:02:23 | 显示全部楼层
本帖最后由 iwha 于 2019-2-2 14:09 编辑
Jones 发表于 2019-2-2 13:58
楼主厉害了,怎么连mqtt服务没有写啊

连接mqtt服务没特殊的, 所有需要的信息都可以从源代码中获取, 填写好就行了


其实在用mqtt之前我是模拟设备通过http直接抓数据的,

青萍的工作原理是通过mqtt向服务器发送数据, app则通过http请求数据来显示

用代理得到http请求数据是这样的
向  airapi.cleargrass.com发出get请求/heartbeat?data={data}

{data}的内容是个包含设备id的json,
{"device_id": "设备id"}

用rsa加密后的数据, 公钥也在源代码中, 用于服务器通过设备id返回结果, 也是json

http请求要注意加入header
phoneid: 手机id





回复

使用道具 举报

6

主题

619

帖子

2132

积分

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
1513
HASS币
0
发表于 2019-2-2 14:22:02 | 显示全部楼层
楼主666666
回复

使用道具 举报

3

主题

54

帖子

425

积分

中级会员

Rank: 3Rank: 3

积分
425
金钱
371
HASS币
0
发表于 2019-2-2 15:22:29 | 显示全部楼层
膜拜大神
回复

使用道具 举报

105

主题

3568

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
11452
金钱
7804
HASS币
44
发表于 2019-2-2 16:40:45 | 显示全部楼层
iwha 发表于 2019-2-2 14:02
连接mqtt服务没特殊的, 所有需要的信息都可以从源代码中获取, 填写好就行了

哪里能找到mqtt用户密码?
回复

使用道具 举报

7

主题

77

帖子

458

积分

论坛技术达人

积分
458
金钱
381
HASS币
0
 楼主| 发表于 2019-2-2 17:19:54 | 显示全部楼层
Jones 发表于 2019-2-2 16:40
哪里能找到mqtt用户密码?

已经加上了
回复

使用道具 举报

105

主题

3568

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
11452
金钱
7804
HASS币
44
发表于 2019-2-2 17:32:48 | 显示全部楼层

怎么把你的公开了?还是全都是一样的?
回复

使用道具 举报

7

主题

77

帖子

458

积分

论坛技术达人

积分
458
金钱
381
HASS币
0
 楼主| 发表于 2019-2-2 17:36:21 | 显示全部楼层
本帖最后由 iwha 于 2019-2-2 17:38 编辑
Jones 发表于 2019-2-2 17:32
怎么把你的公开了?还是全都是一样的?

都一样

不过要是被厂家知道后,下次app更新可能就封锁了
先去掉了, 需要的朋友自己反编译就可以了
回复

使用道具 举报

5

主题

160

帖子

933

积分

论坛技术达人

积分
933
金钱
763
HASS币
20
发表于 2019-2-17 19:18:26 | 显示全部楼层
iwha 发表于 2019-2-2 17:36
都一样

不过要是被厂家知道后,下次app更新可能就封锁了

可以直接修改mqtt服务器IP地址吗?修改成自用的MQTT服务器
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2019-8-24 13:01 , Processed in 0.084115 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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