Skip to content
New issue

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

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

Already on GitHub? Sign in 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来修改轮询时长:

# customize.yaml
sensor.your_entity_id:
  interval_seconds: 10 # 轮询间隔时长(秒)

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

# customize.yaml
sensor.your_entity_id:
  cloud_delay_update: 6 # 延迟时长(秒)

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

No branches or pull requests

1 participant