Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

FAQ - 常见问题 #100

Open
al-one opened this issue Jun 4, 2021 · 8 comments
Open

FAQ - 常见问题 #100

al-one opened this issue Jun 4, 2021 · 8 comments
Labels
FAQ Frequently Asked Questions good first issue Good for newcomers

Comments

@al-one
Copy link
Owner

al-one commented Jun 4, 2021


TG交流群:@xiaomi_miot
QQ交流群:198841186 (已满)
微信交流群:
xiaomi miot weixin group

Repository owner locked and limited conversation to collaborators Jun 4, 2021
@al-one
Copy link
Owner Author

al-one commented Jun 5, 2021

❓️ 支持哪些设备?是否支持XX型号?


🙋 本插件是通过miot-spec规范接入设备的,因此是通过设备所提供的服务(service)对其提供支持。比如一个风扇灯设备,在其型号对应的spec中定义了灯、风扇两个服务,本插件则会根据这两个服务及其属性(property)、方法(action)将设备集成到HA中。查看目前已支持的设备服务请点击这里

@al-one
Copy link
Owner Author

al-one commented Jun 5, 2021

❓️ 账号集成还是token集成?


🙋 账号集成通过小米云获取该账号下的所有设备,并可通过筛选设备、型号、WiFi等批量将符合条件的设备集成到HA。且一个小米账号可被多次添加,可将不同类型的设备添加至不同的集成配置以方便管理。
v0.4.4版本开始,插件新增支持账号集成时选择连接设备的模式

  • 自动模式:插件定期更新支持本地miot协议的设备,并自动将用户筛选的设备中符合条件的型号使用本地连接(推荐)
  • 本地模式:集成配置所筛选的所有设备都将使用本地连接,如勾选了不支持本地协议的设备将不可用
  • 云端模式:集成配置所筛选的所有设备都将使用云端连接,建议旧版miio、蓝牙、ZigBee设备使用

🙋 token集成可以将在局域网环境下支持miot-spec协议已适配miio2miot的设备接入HA。

⭐️ 目前支持本地模式的设备有:

@al-one
Copy link
Owner Author

al-one commented Jun 5, 2021

❓️ 为什么XX型号的设备需要开启云端模式?如何开启?


🙋 由于部分设备使用的是旧版的miio协议,在局域网环境下无法通过miot-spec协议读写数据,但是却可以在小米云端使用miot-spec协议,因此此类设备需要开启云端模式后才可以正常接入。

开启云端模式的具体方法:

  • 使用账号集成
    • 在集成配置选择中将连接模式选为Automatic (自动模式)Cloud (云端模式)
    • v0.4.4以下版本账号集成的设备默认已开启云端模式
  • 使用token集成
    • configuration.yaml中配置账号密码
      xiaomi_miot:
        username: xiaomi_username
        password: xiaomi_password
        # server_country: cn
    • ⚙️ 配置 > 🧩 集成 > Xiaomi Miot Auto > 选项 > ☑️ 开启云端模式

@al-one al-one pinned this issue Jun 5, 2021
@al-one
Copy link
Owner Author

al-one commented Jun 21, 2021


❓️ 怎样为一个实体添加自定义选项?


🙋 添加自定义属性有以下三种方式(任选一种):

  1. 通过UI自定义实体/设备 (推荐)

    v0.6.5版本开始,本插件支持通过UI管理自定义选项(自定义属性)

    1. 添加Xiaomi Miot Auto集成
    2. Customizing device (自定义设备) <推荐>
      • 选择要自定义的设备型号
      • 指定设备型号支持通配符如:brand.device.* *.device.*
    3. Customizing entity (自定义实体)
      • 选择实体类型
      • 选择要自定义的实体
    4. 重复以上步骤就可自定义其他实体或设备
    5. 通过UI自定义的选项会覆盖customize.yamlconfiguration.yaml中的自定义
    6. 视频教程
  2. 为指定型号的设备添加

    • 在HA配置文件configuration.yaml中加入以下代码:
      xiaomi_miot: # 此行在配置文件中只能出现一次
        device_customizes:
          brand.device.model:
            # attribute_name: attribute_value # 注意本行前面有六个空格
            sensor_properties: temperature,humidity
            switch_properties: on,power
    • 🔨 开发者工具 > YAML 重载 > 配置重载 > 🔍 重载 XIAOMI MIOT AUTO

  3. 通过customize.yaml添加 (不推荐)

    • 在你的HA目录下找到customize.yaml如果没有该文件请先创建
    • 首次配置自定义属性,你可能还需要在配置文件configuration.yaml中加入以下代码:
      homeassistant:
        customize: !include customize.yaml # 注意本行前面有两个空格
    • 按照以下格式在customize.yaml文件中添加自定义属性:
      sensor.your_entity_id:
        # attribute_name: attribute_value # 注意本行前面有两个空格
        switch_properties: 'on' # 单个属性on需要加引号,不然会被识别成布尔值true
      
      climate.xiaomi_ac1_xxxx:
        bind_sensor: sensor.your_temp_entity_id # 给空调实体绑定温度传感器
    • 🔨 开发者工具 > YAML 重载 > 配置重载:位置和自定义

添加自定义属性只要是为了扩展功能和解决不同型号的设备对miot-spec及HA的兼容问题,查阅目前本插件支持的自定义属性请参考这里这里

@al-one
Copy link
Owner Author

al-one commented Jul 6, 2021


❓️ 如何翻译实体的选项文本?


🙋 通过本插件集成的设备实体,比如风扇的预设模式等选项可能为英文,这是因为设备厂家在定义miot-spec协议的时候填写的是英文。而本插件在v0.3.7版本开始支持翻译这些选项文本,目前可通过配置configuration.yaml实现,具体方法如下:

  1. 使用插件默认的翻译词库
    xiaomi_miot:
      language: zh # 目前仅支持翻译到中文,且只支持扫地机、洗衣机,将随着版本升级陆续完善
  2. 扩展自己的翻译词库示例
    xiaomi_miot:
      language: zh
      translations:
        # 全局词库,对所有实体生效
        idle: '空闲'
        busy: '工作中'
        # 指定风扇模式的词典
        fan.mode:
          'straight wind': '直吹模式'
          'natural wind': '自然风'
        # 指定洗衣机烘干模式的词典
        washer.drying_level:
          moist: '微湿'
          extra: '特干'

@al-one al-one added the FAQ Frequently Asked Questions label Jul 9, 2021
@al-one
Copy link
Owner Author

al-one commented Jul 24, 2021


❓️ 如何让小爱同学播放文本(TTS)和执行语音命令?


🙋 通过本插件集成小爱音响后会生成一个media_player实体,该实体可以控制播放暂停、调节音量和静音等,更多的功能需要通过HA服务去调用,服务还可被用于自动化、脚本、模板实体等。本插件为小爱提供了xiaomi_miot.intelligent_speaker服务可以实现TTS和执行语音命令。

  • 播放文本(TTS)
    service: xiaomi_miot.intelligent_speaker
    data:
      entity_id: media_player.xiaoai_entity_id
      text: 你好
      execute: false # 不执行,朗读text文本
  • 执行语音命令
    service: xiaomi_miot.intelligent_speaker
    data:
      entity_id: media_player.xiaoai_entity_id
      text: 开灯
      execute: true # 执行text命令
      silent: false # 是否静默执行,为true时小爱将在执行命令后无反馈

部分小米电视(支持小爱同学)也可用此服务执行语音命令,但是由于协议限制,无法TTS

@al-one
Copy link
Owner Author

al-one commented Aug 21, 2021

❓️ 如何在HA查看摄像头实体回放(看家助手)视频?


🙋 本插件在v0.4版本中添加了对摄像头猫眼可视门铃的回放视频支持,原理是通过米家接口获取设备的最后一个看家助手视频。如接入摄像头后仍看不到回放视频,请在米家APP中开启摄像头的看家助手
由于小米云端视频文件编码的问题,部分型号摄像头的回放视频仍然无法播放,你可以尝试为主实体添加自定义属性motion_stream_slice: -1,经测试此方法可能会显示一个静止的视频画面,原因未知。

# customize.yaml
# 以下自定义属性不是必须
camera.your_entity_id:
  use_motion_stream: true # 在主实体开启回放,猫眼默认已开启
  sub_motion_stream: true # 为回放视频单独生成一个camera实体,与`use_motion_stream`属性选其一
  motion_stream_slice: -1 # 视频切片文件索引,-1表示最后一个切片文件,0表示第一个

@al-one
Copy link
Owner Author

al-one commented Aug 31, 2021


❓️ 为什么设备状态会有延迟?如何减小延迟?


🙋 延迟通常是指通过米家APP或物理按键等操作设备后,设备在HA中的实体状态要等几秒甚至十几秒后才会更新。原因是本插件目前主要是通过轮询的方式获取设备状态,通俗的讲就是每隔几十秒去刷新一次状态。在token方式集成时,这个时长是可以直接修改的(添加集成和修改集成选项均可),目前默认是30秒。而通过账号集成时,由于一个集成配置会对应多个设备,因此无法统一配置,需要为每个设备实体添加自定义属性interval_seconds来修改轮询时长:

# configuration.yaml
xiaomi_miot:
  device_customizes:
    brand.device.model:
      interval_seconds: 10

一般情况下,对于开关、灯、环境传感器等设备,我们推荐使用默认轮询时长即可,过于频繁的请求状态可能会使设备负载过高,且大部分请求是无意义的。
对于人体传感器、门磁、无线开关类设备,它们的状态通常为瞬时状态(即:事件),部分型号支持获取最后一次事件触发的时间,且默认轮询时长为15秒,对于无法获取最后触发事件的设备,即使修改轮询时间到1秒,也可能无法获取正确的状态。因此此类设备通过本插件集成后不太推荐用于触发实时自动化,仅适合作为如几分钟无人移动关灯这类自动化的条件。如果需要实时更新状态,推荐使用多模网关配合XiaomiGateway3集成。
另外还有一种延迟,比如在HA打开某个实体开关后,几秒内开关回弹到操作前的状态,然而实际上已经操作成功,并在一分钟内实体状态又恢复到实际状态。这种情况通常发生在小米账号(云端)接入的设备,具体原因是操作后指令发送给设备后HA会立即请求新的状态,而这个时候设备还未将新的状态同步到小米云端,导致获取到操作之前的状态,一分钟后HA重新获取到实际的状态。目前本插件针对这种情况已经做了优化(操作后延迟几秒再获取状态),大部分设备已不会出现,如果你的设备有出现,请提交issue或通过自定义属性cloud_delay_update来修改延迟时长:

# configuration.yaml
xiaomi_miot:
  device_customizes:
    brand.device.model:
      cloud_delay_update: 6 # 延迟时长(秒)

# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
FAQ Frequently Asked Questions good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant