[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/
Comments 1 条评论
博主 JohannesYang
哈哈哈