小米智能插座2蓝牙网关版 接入homeassistant

发布于 2021-02-27  9892 次阅读


 

[infobox title="2022.3更新"] 现可以使用Xiaomi Miot Auto 快速接入,无需复杂配置,详见https://github.com/al-one/hass-xiaomi-miot/blob/master/README_zh.md [/infobox]

开始之前,先使用米家APP将插座配置联网

1.获取设备token

祖传的root方法无法使用,刚好在github找到一个脚本,可以非常快速的获取到设备token

网址:https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor

使用方法:

下载token_extractor.exe [bdbtn]https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/token_extractor.exe[/bdbtn],运行,根据提示输入账号密码即可获取到设备token,复制备用

2.接入homeassistant

[success]

[2021.8.19更新] 方法1:使用 xiaomi-miot(推荐)

1.下载 https://github.com/al-one/hass-xiaomi-miot/archive/refs/heads/master.zip,将 ./custom_components/xiaomi_miot 文件夹复制到 /config/custom_components 目录下,重启homeassistant。

2.在homeassistant集成界面添加 Xiaomi Miot Auto,选择本地模式,输入插座的token和IP,确定。

[/success]

方法2:使用 xiaomi_miio_raw (可能失效)

仓库地址:https://github.com/syssi/xiaomi_raw

安装方法:

下载xiaomi_miio_raw源码 [bdbtn]https://wwa.lanzous.com/ij1F9m8nbba[/bdbtn],复制到./custom_components/ 下,重启homeassistant

编辑configuration.yaml,配置如下

sensor:
  - platform: xiaomi_miio_raw
    name: server_plug # 自定义名称
    host: 192.168.0.43 # 插座IP
    token: "xxx" # 前面获取到的token
    max_properties: 10
    default_properties_getter: get_properties
    default_properties: 
      - "{'did': 'power', 'piid': 1, 'siid': 2}"       
      - "{'did': 'temperature', 'piid': 6, 'siid': 2}"       
      - "{'did': 'indicator_light', 'piid': 1, 'siid': 3}"       
      - "{'did': 'on_duration', 'piid': 1, 'siid': 4}"       
      - "{'did': 'off_duration', 'piid': 2, 'siid': 4}"       
      - "{'did': 'countdown', 'piid': 3, 'siid': 4}"       
      - "{'did': 'task_switch', 'piid': 4, 'siid': 4}"       
      - "{'did': 'countdown_info', 'piid': 5, 'siid': 4}"       
      - "{'did': 'power_consumption', 'piid': 1, 'siid': 5}"       
      - "{'did': 'electric_current', 'piid': 2, 'siid': 5}"       
      - "{'did': 'voltage', 'piid': 3, 'siid': 5}"       
      - "{'did': 'electric_power', 'piid': 6, 'siid': 5}"

重启后,就可以在开发者工具中找到插座了

其中功率等参数还需要进一步计算才能插入面板(此处只演示了温度和功率的配置,其他参数同理)

sensor:
  - platform: template
    sensors:
        server_plug_power: # 自定义
            unique_id: server_plug_power # 自定义
            unit_of_measurement: W # 单位
            value_template: "{{ state_attr('sensor.server_plug', 'electric_power') | int / 100 }}" # 计算
        server_plug_temp: # 自定义
            unique_id: server_plug_temp # 自定义
            unit_of_measurement: ℃ # 单位
            value_template: "{{ state_attr('sensor.server_plug', 'temperature')}}"

重启后,在面板中就能找到刚才添加的参数了

最后再封装出一个switch控制插座开关

 

参考链接: https://post.smzdm.com/p/az5g23x0/