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

 找回密码
 立即注册
12
返回列表 发新帖
楼主: goodheartman

[技术探讨] 米家门锁如何接入Homekit

[复制链接]

2

主题

44

帖子

3114

积分

论坛元老

Rank: 8Rank: 8

积分
3114
金钱
3070
HASS币
0
 楼主| 发表于 2021-1-6 09:23:19 | 显示全部楼层
昨天重新想了一下再加上国外HA的资料, 竟然被我搞出来, 所以就来自问自答

[思路]
Binary sensor 无法处理 event, 所以先建立一个 input boolean 转换资讯
之后 event 透过 automation 进行辨识

Event -> Automation -> input boolean -> binary sensor -> Homekit

以下是我自己编出来的, 仅截取门开阖状态以及上锁状态 Event 给 Homekit 生成传感器

====

input_boolean:
  mi_door:
    name: Xiaomi Door
    icon: mdi:door
  mi_doorlock:
    name: Xiaomi Door Lock
    icon: mdi:lock


binary_sensor:
  - platform: template
    sensors:
      xiaomi_door:
        friendly_name: "Xiaomi Door"
        device_class: "door"
        value_template: "{{ is_state('input_boolean.mi_door', 'on') }}"
        
      xiaomi_doorlock:
        friendly_name: "Xiaomi Door Lock"
        device_class: "lock"
        value_template: "{{ is_state('input_boolean.mi_doorlock', 'on') }}"


automation:
  - alias: door open
    trigger:
      platform: state
      entity_id: sensor.门锁编号_action
      to: door
    condition:
      condition: template
      value_template: "{{ trigger.to_state.attributes['action_id'] == 0 }}"
    action:
      service: input_boolean.turn_on
      data:
        entity_id: input_boolean.mi_door
  - alias: door closed
    trigger:
      platform: state
      entity_id: sensor.门锁编号_action
      to: door
    condition:
      condition: template
      value_template: "{{ trigger.to_state.attributes['action_id'] == 1 }}"
    action:
      service: input_boolean.turn_off
      data:
        entity_id: input_boolean.mi_door
  - alias: door locked
    trigger:
      platform: state
      entity_id: sensor.门锁编号_action
      to: lock
    condition:
      condition: or
      conditions:
        -  condition: template
           value_template: "{{ trigger.to_state.attributes['action_id'] == 1 }}"
        -  condition: template
           value_template: "{{ trigger.to_state.attributes['action_id'] == 5 }}"
    action:
      service: input_boolean.turn_on
      data:
        entity_id: input_boolean.mi_doorlock
  - alias: door unlock
    trigger:
      platform: state
      entity_id: sensor.门锁编号_action
      to: lock
    condition:
      condition: or
      conditions:
        -  condition: template
           value_template: "{{ trigger.to_state.attributes['action_id'] == 0 }}"
        -  condition: template
           value_template: "{{ trigger.to_state.attributes['action_id'] == 4 }}"
    action:
      service: input_boolean.turn_off
      data:
        entity_id: input_boolean.mi_doorlock  

回复

使用道具 举报

0

主题

39

帖子

324

积分

中级会员

Rank: 3Rank: 3

积分
324
金钱
285
HASS币
0
发表于 2021-3-9 21:25:05 | 显示全部楼层
goodheartman 发表于 2021-1-6 09:23
昨天重新想了一下再加上国外HA的资料, 竟然被我搞出来, 所以就来自问自答

[思路]

请问这个是要用哪个接入?
回复

使用道具 举报

2

主题

44

帖子

3114

积分

论坛元老

Rank: 8Rank: 8

积分
3114
金钱
3070
HASS币
0
 楼主| 发表于 2021-3-11 17:01:23 | 显示全部楼层
gosrak 发表于 2021-3-9 21:25
请问这个是要用哪个接入?

先把多模网关接上 HA
确认实体有被HA接入之后就是编写configuration.yaml
接着就是上面的程式码接入Homekit
回复

使用道具 举报

0

主题

39

帖子

324

积分

中级会员

Rank: 3Rank: 3

积分
324
金钱
285
HASS币
0
发表于 2021-3-11 18:41:34 | 显示全部楼层
goodheartman 发表于 2021-3-11 17:01
先把多模网关接上 HA
确认实体有被HA接入之后就是编写configuration.yaml
接着就是上面的程式码接入Hom ...

这个全部复制到configuration.yaml吗
回复

使用道具 举报

2

主题

44

帖子

3114

积分

论坛元老

Rank: 8Rank: 8

积分
3114
金钱
3070
HASS币
0
 楼主| 发表于 2021-3-11 20:19:12 | 显示全部楼层
gosrak 发表于 2021-3-11 18:41
这个全部复制到configuration.yaml吗

应该是可以的, 记得程式码门锁编号的部分替换成你门锁实体编号
回复

使用道具 举报

0

主题

3

帖子

24

积分

新手上路

Rank: 1

积分
24
金钱
21
HASS币
0
发表于 2021-11-16 10:24:42 | 显示全部楼层
dscao 发表于 2021-1-5 01:18
思路有点像,多模网关接入的,没有之前mqttl的分开状态了,我是用自动化修改模板sensor或binary sensorr的 ...

您好,13356775995,我想在家里搞点智能控制东西,能加您微信请教吗?谢谢。
回复

使用道具 举报

3

主题

50

帖子

532

积分

高级会员

Rank: 4

积分
532
金钱
482
HASS币
0
发表于 2021-12-10 14:26:10 | 显示全部楼层
这个很有用!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 20:26 , Processed in 0.266050 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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