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

 找回密码
 立即注册
查看: 40641|回复: 35

[基础教程] 通过miio_raw创建所有米家实体--以智能马桶为例

[复制链接]

24

主题

358

帖子

4733

积分

元老级技术达人

积分
4733
金钱
4350
HASS币
120
发表于 2021-1-26 15:55:43 | 显示全部楼层 |阅读模式
本帖最后由 121665460 于 2021-10-18 16:42 编辑

1. 按装https://github.com/syssi/xiaomi_raw
2.通过破解版米家app(https://www.kapiba.ru/2017/11/mi-home.html#more)抓控制数据(理论上米家app里有的都可以控制),ios用户请自己抓包。
路径/vevs/logs/miio/xxx.txt
小鲸洗relax:(部分控制的log我提取好了,自己在app点响应的操作就会出现)get_prop不能随意组合获取,只能按照app里日志有的几种组合。
192.168.31.81
xjx.toilet.relax
xxxxxxxxxxxxxxzxxxx(token)
// 状态
2021-01-25 12:10:07 -> {"id":8568,"method":"get_prop","params":["seating"]} //着坐状态
#   - status_seatheat  //是否开启加热
#   - status_led                
#   - status_selfclean
#   - bubble_level
#   - status_tunwash
#   - status_womenwash
//控制
send_seat_heat
work_seatheat
2021-01-25 12:09:49 -> {"id":8559,"method":"work_night_led","params":[1]}  //开灯
2021-01-25 12:09:53 -> {"id":8562,"method":"work_night_led","params":[0]}  //关灯
2021-01-25 12:10:08 -> {"id":8570,"method":"self_clean_on","params":[]}      //自清洁
2021-01-25 12:10:34 -> {"id":8618,"method":"flush_on","params":[]}             //冲洗
2021-01-25 12:11:05 -> {"id":8626,"method":"bubble_shield_on","params":[]}//防臭泡沫
2021-01-25 12:11:23 -> {"id":8630,"method":"set_auto_led","params":[1]}     //自动开灯
2021-01-25 12:11:23 -> {"id":8631,"method":"set_auto_close","params":[1]}  //自动关盖
2021-01-25 12:11:29 -> {"id":8633,"method":"set_bubble","params":[1]}       //设置泡沫量(app里没有对应功能)
2021-01-25 12:11:29 -> {"id":8634,"method":"set_auto_bubble","params":[0]}//自动防臭泡沫
2021-01-25 12:11:29 -> {"id":8635,"method":"set_freq_bubble","params":[1024]}//定期防臭泡沫
2021-01-25 12:11:36 -> {"id":8638,"method":"set_flush","params":[0]}           //水量
2021-01-25 12:09:52 -> {"id":8560,"method":"get_prop","params":["status_led"]}
2021-01-25 12:09:52 <- {"code":0,"exe_time":140,"id":8560,"net_cost":68,"ot_cost":3178,"otlocalts":1611547793551648,"result":[1]}
2021-01-25 12:09:52 -> {"id":8561,"method":"get_prop","params":["bubble_level"]}
2021-01-25 12:09:52 <- {"code":0,"exe_time":170,"id":8561,"net_cost":67,"ot_cost":3163,"otlocalts":1611547794240165,"result":[3]}
2021-01-25 12:09:25 -> {"id":8542,"method":"get_prop","params":["status_womenwash","water_temp_w","water_strong_w","water_pos_w","moving_w","status_massage_w"]}
2021-01-25 12:09:25 <- {"code":0,"exe_time":130,"id":8542,"net_cost":74,"ot_cost":3224,"otlocalts":1611547766568440,"result":[0,2,2,1,0,0]}
2021-01-25 12:09:25 -> {"id":8543,"method":"get_prop","params":["status_tunwash","water_temp_t","water_strong_t","water_pos_t","moving_t","status_massage_t"]}
2021-01-25 12:09:25 <- {"code":0,"exe_time":200,"id":8543,"net_cost":108,"ot_cost":2944,"otlocalts":1611547766688603,"result":[0,2,2,1,0,0]}



3.配置yaml(没写全)
sensor:
  - platform: xiaomi_miio_raw
    name: xjx_seating
    host: 192.168.xx
    token: xxx
    sensor_property: "seating"
    default_properties_getter: "get_prop"
    default_properties:
      - seating
- platform: xiaomi_miio_raw
    name: xjx_status_seatheat
    host: 192.168.xx
    token: xxx
    sensor_property: "status_seatheat"
    default_properties_getter: "get_prop"
    default_properties:
      - seat_temp
      - status_seatheat
  - platform: xiaomi_miio_raw
    name: xjx_status_led
    host: 192.168.xx
    token: xxx
    sensor_property: "status_led"
    default_properties_getter: "get_prop"
    default_properties:
      - status_led
  - platform: template
    sensors:
      xjx_seating_state:
        friendly_name: "着坐"
        value_template: "{{ state_attr('sensor.xjx_seating','seating')==1 }}"

script:
  xjx_flush_on:
    alias: 马桶冲水
    sequence:
      - service: xiaomi_miio_raw.sensor_raw_command
        data_template:
          entity_id: sensor.xjx_status_led
          method: flush_on
          params: ""
  xjx_seat_on:
    alias: 马桶圈加热开
    sequence:
      - service: xiaomi_miio_raw.sensor_raw_command
        data_template:
          entity_id: sensor.xjx_status_led
          method: work_seatheat
          params: 1
      - service: xiaomi_miio_raw.sensor_raw_command
        data_template:
          entity_id: sensor.xjx_status_led
          method: send_seat_heat
          params: 1
  xjx_seat_off:
    alias: 马桶圈加热关
    sequence:
      - service: xiaomi_miio_raw.sensor_raw_command
        data_template:
          entity_id: sensor.xjx_status_led
          method: work_seatheat
          params: 0
  xjx_led_on:
    alias: 马桶夜灯开
    sequence:
      - service: xiaomi_miio_raw.sensor_raw_command
        data_template:
          entity_id: sensor.xjx_status_led
          method: work_night_led
          params: 1
  xjx_led_off:
    alias: 马桶夜灯关
    sequence:
      - service: xiaomi_miio_raw.sensor_raw_command
        data_template:
          entity_id: sensor.xjx_status_led
          method: work_night_led
          params: 0
      
switch:
  - platform: template
    switches:
      xjx_seat_switch:
        unique_id: xjx_seat_switch
        value_template: "{{ is_state('sensor.xjx_status_seatheat','1') }}"
        turn_on:
          service: script.xjx_seat_on
        turn_off:
          service: script.xjx_seat_off
      xjx_led_switch:
        unique_id: xjx_led_switch
        value_template: "{{ is_state('sensor.xjx_status_led','1') }}"
        turn_on:
          service: script.xjx_led_on
        turn_off:
          service: script.xjx_led_off


4.使用
WX20210126-152135@2x.png

5.为什么使用miio而不使用miot,
查询http://miot-spec.org/miot-spec-v ... 000A02E:xjx-relax:1,发现miot只能控制坐圈加热和夜灯。而miio可以控制所有app里的操作。

6.写好的插件米家 马桶/马桶圈插件 -- xiaomi_miio_toilet - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)

7.目前app里没有开盖的控制和状态,所以不能实现人体传感器感应后自动开盖等(有设备的可以尝试下sensor_raw_command各种参数)







评分

参与人数 2金钱 +32 收起 理由
令狐鸣 + 12 膜拜大神!
27hh + 20

查看全部评分

回复

使用道具 举报

0

主题

83

帖子

939

积分

高级会员

Rank: 4

积分
939
金钱
856
HASS币
0
发表于 2021-1-26 17:42:09 | 显示全部楼层
谢谢,把小沐马桶也这么接入了,也可以用miiocli命令行来看控制命令
回复

使用道具 举报

24

主题

358

帖子

4733

积分

元老级技术达人

积分
4733
金钱
4350
HASS币
120
 楼主| 发表于 2021-1-28 14:04:02 | 显示全部楼层
发现开马桶盖是 work_open,0:关,1开盖,2开两个盖。
但获取马桶盖状态试不出来。。。
回复

使用道具 举报

0

主题

7

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
金钱
360
HASS币
0
发表于 2021-2-2 00:46:03 | 显示全部楼层
mickey50 发表于 2021-1-26 17:42
谢谢,把小沐马桶也这么接入了,也可以用miiocli命令行来看控制命令

可以分享小沐的程序吗?感谢!
回复

使用道具 举报

0

主题

39

帖子

227

积分

中级会员

Rank: 3Rank: 3

积分
227
金钱
188
HASS币
0
发表于 2021-2-2 03:34:50 | 显示全部楼层
破解版下好了。怎么抓包?
回复

使用道具 举报

0

主题

39

帖子

227

积分

中级会员

Rank: 3Rank: 3

积分
227
金钱
188
HASS币
0
发表于 2021-2-2 03:50:37 | 显示全部楼层
能详细讲解下如何用破解的米家app来抓包吗?
回复

使用道具 举报

24

主题

358

帖子

4733

积分

元老级技术达人

积分
4733
金钱
4350
HASS币
120
 楼主| 发表于 2021-2-2 08:47:44 | 显示全部楼层
woodencow 发表于 2021-2-2 03:34
破解版下好了。怎么抓包?

在根目录建立eves/logs
回复

使用道具 举报

0

主题

39

帖子

227

积分

中级会员

Rank: 3Rank: 3

积分
227
金钱
188
HASS币
0
发表于 2021-2-2 11:02:04 | 显示全部楼层
121665460 发表于 2021-2-2 08:47
在根目录建立eves/logs

好的,谢谢我试一下。
回复

使用道具 举报

0

主题

5

帖子

22

积分

新手上路

Rank: 1

积分
22
金钱
17
HASS币
0
发表于 2021-2-3 00:17:18 | 显示全部楼层
大哥可否写个云米浴霸的,之前那个我改来改去还是控制不了,谢谢
回复

使用道具 举报

0

主题

83

帖子

939

积分

高级会员

Rank: 4

积分
939
金钱
856
HASS币
0
发表于 2021-2-9 11:01:32 | 显示全部楼层
lee869882 发表于 2021-2-2 00:46
可以分享小沐的程序吗?感谢!
sensor:
  - platform: xiaomi_miio_raw
    name: toiletlid
    host: 192.168.1.107
    token: xxxxxxxxxxxxxxxxxxxxx
    # Optional and device specific config parameters
    sensor_property: 'work_state'
    default_properties_getter: 'get_prop'
    default_properties:
      - work_state
      - filter_use_flux
      - filter_use_time
binary_sensor:
  - platform: template
    sensors:
      toiletlid_status:
        friendly_name: "马桶状态"
        device_class: "motion"
        value_template: >-
           {{ states('sensor.toiletlid') |int != 1 }}    
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 14:38 , Processed in 0.396311 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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